Hi-Tech

Как ускорить работу редакции интернет-магазина в 10 раз с помощью машинного обучения

У любого крупного интернет-магазина есть редакция.

Именно от их работы зависит, найдет ли покупатель товар в нужной категории или по нужному фильтру на сайте. Типичные задачи редакторов – это публикация товаров в нужных категориях на сайте и присвоение товарам свойств и характеристик.

Таким образом, от скорости и качества работы редакции напрямую зависят продажи.

Если редакция успевает обрабатывать меньше товаров, чем поступает от поставщика, то формируется очередь из товаров, которые не видны в категориях на сайте, а значит, не продаются. Частая проблема, с которой сталкиваются крупные интернет-магазины – медленная работа редакции.

Можно ли ускорить работу редакции и автоматизировать рутинные задачи?

Мы в Эпохе8 последний год занимаемся проектами в области машинного обучения и решили поделиться своими наработками в этой теме.

Типовая задача #1: Категоризация товаров

У вас продаются миллионы товаров от тысяч поставщиков. Допустим у вас маркетплейс (китайских) товаров. Для того, чтобы товар появился на сайте, ему нужно присвоить правильную товарную категорию. Каждый день поступают десятки тысяч новых товаров.

Обычно редакторы размечают новые товары поштучно: смотрят на фотографию, читают описание и выбирают нужную категорию на сайте.

Редактор смотрит на товар и присваивает ему категорию с помощью встроенной нейросети.

На публикацию одного товара уходит 15-30 секунд, то есть в день один редактор может опубликовать около 1000 товаров, если очень постарается.

Давайте посмотрим, как машинное обучение может помочь в этой задаче. Что делать, если нужно публиковать 10,000 новых товаров в день?

Этап 1: подготовка данных

Поэтому первый, самый важный, этап – это подготовить хорошие данные, с которыми будет работать модель. Качество работы машинной модели напрямую зависит от качества входных данных.

Для подготовки нам понадобится полное дерево категорий сайта, по которому мы хотим научиться раскладывать товары.

Дерево категорий может иметь несколько уровней вложенности и быть достаточно обширным.

Объем этой выборки должен быть таким, чтобы на каждую категорию в среднем приходилось от 10 до 100 товаров. Также нам понадобится случайная выборка товаров с сайта.

А если дерево категорий обширное, то хватит десятка примеров на каждую. Если категорий на сайте мало, то примеров для каждой категории понадобится больше.

Выбранные случайным образом товары мы отдаем на разметку редакции.

Это скриншот из админки редакции. Слева – трехуровневое дерево категорий, а справа – описания и картинки товаров. Редактор смотрит на картинку и описание и присваивает товару категорию.

Этап 2: обучение модели

На втором этапе нам нужно подготовить модель машинного обучения для автоматической классификации товаров.

Цикл обучения модели похож на цикл обучения школьника.

В результате проверки хороший учитель понимает, где у ученика сильные стороны, а где есть пробелы в знаниях. Сначала учитель “дает” школьнику учебный материал, потом задает домашнее задание, а потом это задание проверяет. Если ученик часто ошибается в задачах определенного типа, учитель посвящает больше времени разбору таких задач.

Точно так же мы поступаем и с нашей моделью.

В качестве “домашнего задания” поручаем модели предсказать категории по всей базе наших товаров. Как только редактор закончил разметку (подготовил нам “учебный материал”), мы обучаем первую модель.

Переносим знания из головы редактора в модель машинного обучения.

Какие-то предсказания модель дает с высокой уверенностью, какие-то – с более низкой. Модель предсказывает категорию для каждого товара.

Первое "домашнее задание", которое мы даём модели.

Теперь нам нужно проверить “домашнее задание”, чтобы понять, в каких категориях модель обучилась хорошо, а где есть пробелы в знаниях.

Для проверки мы берем случайную выборку товаров из той части, где предсказания модели уверенные, и выгружаем их редакции на проверку.

Редакторы либо подтверждают, что разметка корректна, либо присваивает правильную категорию, если разметка ошибочна.

Таким образом, мы получаем оценку качества работы первой модели по каждой категории.

Мы видим, что, например, в категориях Hair Accessories, Gloves & Mittens, Hats & Caps качество работы модели достаточное, категория предсказана правильно в >95% случаев. То есть, модель хорошо научилась отличать такие товары.А вот в категориях Cage Harness, Hang Fans, Jeans, Shorts модель часто ошибается. Это означает, что ей нужно больше обучающих примеров по этим категориям.

Те категории, с которыми модель справляется с достаточным качеством (>95% правильных предсказаний), мы загружаем на сайт без дополнительной проверки со стороны редакции.

Все исправления, сделанные редакцией, собираем и дообучаем модель на их основе.

Как правило, со второго подхода мы получаем гораздо больший процент уверенных предсказаний и качество этих предсказаний гораздо выше.

После каждой новой порции обратной связи от редакции, мы дообучаем модель, тем самым постоянно улучшая качество предсказаний.

Вот так выглядит полный цикл машинного обучения, когда система запущена в бой.

Тем самым мы ускоряем работу редакции от 5 до 50 раз. На практике мы выяснили, что при таком подходе за одним размеченным редактором товаром стоит от 5 до 50 товаров, которые корректно распознает модель.

Промежуточный результат работы: руками редакции размечено 227,673 товара, а автоматически – почти в 5 раз больше.

Типовая задача #2: присвоение товарам характеристик

Вторая типовая задача – это присвоение товарам характеристик, например: “мужское/женское”, “с длинным рукавом/с коротким рукавом”, “синий/зеленый/красный” итп.

Мы используем подход, аналогичный описанному ранее: сначала получаем размеченную обучающую выборку с помощью редакции, а затем обучаем на этой выборке модель.

Для разметки нам понадобится около 100 примеров товаров для каждого значения характеристики.

Частые вопросы

Можно ли отказаться от людей в редакции совсем?

Мы не рекомендуем.

Несмотря на то, что после нескольких итераций обучения качество модели становится достаточно хорошим, редакторы нужны для проверки модели и разметки новых категорий.

Например, у нашего клиента такой проблемной категорией оказалась категория “Зеркала”. К тому же, всегда есть небольшой процент специфических товаров, которые нейросеть распознавать не умеет по тем или иным причинам. Все фотографии зеркал в каталоге были интерьерными, поэтому при распознавании только по картинкам модель их понимала то как “диван”, то как “комод”, то как “стол”.

Поэтому на те же задачи будет хватать меньшего количества сотрудников. Но, тем не менее, поскольку прогнозы нейросети все время улучшаются, редакция начинает работать быстрее.

Сколько времени проходит прежде чем нейросеть начнет выдавать предсказания приемлемого качества?

Всё зависит от скорости, с которой редактора размечают товары.

Нейросеть на текстах учится быстро: от получаса до 2 часов. Один редактор может разметить около 1000 товаров в день. Таким образом, за неделю можно сделать 2-3 полных цикла разметки с обратной связью от редакции и получить хорошее качество предсказаний.

Какую архитектуру нейросети вы используете?

Совсем технические детали: мы используем ансамбль нейросетей из сверточной сети над эмбеддингами слов для извлечения информации из названия и описания товара и сверточной сети resnet50 для извлечения информации из изображения, над которыми надстроен общий классификатор для результирующего предсказания.

Итого

  • Типовые задачи редакции интернет-магазина можно ускорить в 5-50 раз, если усилить редакцию с помощью машинного обучения.

  • Первые хорошие результаты можно получить уже через неделю работы. Категоризация товаров и присвоение товарам характеристик – это хорошо решаемая с помощью нейросетей задача.

  • Но совсем без редакции обойтись не получится: люди нужны для контроля работы нейросети и решения новых возникающих задач.

Над проектом работала команда Эпохи8: Андрей Татаринов, Игорь Галицкий, Алексей Соловьев, Евгения Заворина, Игорь Борщевский

Текст и картинки: Ольга Дёмкина

Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть