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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Итого

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

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

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

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

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

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

3030
21 комментарий

TensorFlow, Keras, PyTorch, Caffe ?

1

Keras на TF. Самое хорошее инструментирование у такой конструкции

7

Или не заморачивайтесь, разгоните ничего не успевающую контентную группу, да закажите карточки у нормальных ребят https://contenthub.ru/

"Или не заморачивайтесь спамом на vc.ru, разгоните непонятно-скучный и депрессивный сайт, да закажите дизайн и верстку у нормальных ребят"

7

Комментарий удалён модератором

Андрей, напишите, пожалуйста, на hello@epoch8.co с деталями вашей задачи (объем базы, предполагаемый размер категорийного дерева, есть ли у вас модераторы), и мы вам обязательно ответим!

Очень интересная тема. Может быть попозже подробнее сделаете статью?

1