Улучшение точности поиска товаров на маркетплейсе с помощью AI: характеристики для 100 млн товаров

Никита Лалиев, эксперт FlexiTech.ai выступал на конференции Practical ML Conf с докладом о важной задаче для ecommerce - атрибуции товаров на маркетплейсе и о том, как искусственный интеллект может помочь решить эту проблему.

Что такое атрибуция товара?

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

Почему атрибуция так важна?

Атрибуция имеет большое значение для удобства поиска товаров и предотвращения негативного опыта пользователей. По статистике, около 25% товаров, заказанных на маркетплейсах, возвращаются из-за неправильной или недостаточной информации. Кроме того, 20% покупок оказываются неудачными из-за неверного описания товаров. Пользователи, получившие негативный опыт, часто больше не возвращаются к данному поставщику.

Как можно решать эту проблему?

Есть несколько способов указания характеристик для товаров:

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

Почему автоматизация с помощью AI - хороший выбор?

Если мы будем исправлять вручную - это получается дорого, так как цена заполнения одной карточки может варьироваться от 10 до 100 рублей только за одну карточку, а на огромном маркетплейсе таких товарных наименований может быть миллионы. Кроме того, это долго. И сложно контролировать всю эту толпу людей, которая станет редактировать данные на вашем сайте.

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

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

Наш кейс: работа с крупным китайским маркетплейсом

Мы сотрудничали с крупным китайским маркетплейсом, где продавцы сами заполняли карточки товаров без каких-либо регламентов. С ростом маркетплейса эта проблема стала более остро восприниматься. Мы решили применить машинное обучение и создать эффективное решение. Наш flow был стандартным:

1. Бизнес аналитика

  • Какие атрибуты нужны?

  • Какие должны быть значения атрибутов?

  • У разных категорий товаров свои атрибуты

2. Анализ и подготовка имеющихся данных

  • Какие размеченные данные есть?

  • Оценка размера и качества набора данных для обучения и теста

3. Обучение ML модели

  • Выбор архитектуры

  • Реализация и обучение, итеративное улучшение

4. Итоговая оценка качества

5. Внедрение

Теперь, рассмотрим, как мы пришли к тому, что какую-то атрибуцию надо делать и как ее делать. Тут, упомянем про 5 этапов принятия решений.

Бизнес-Анализ

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

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

Но какие характеристики товара выбрать в начале? Для нас выбор был очевиден — мы выбрали цвет.

Этот выбор обоснован несколькими важными факторами:

Во-первых, цвет является наиболее популярным параметром и присутствует в 26 из 31 категории товаров на маркетплейсе. Почти все товары имеют цветовую характеристику.

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

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

И, наконец, цвет - это сложный показатель. Он не всегда однозначно определяется, и один и тот же цвет может иметь разные названия.

Почему? Давайте вспомним старую картинку, какого цвета это платье?

Кто-то видит тут синий, кто-то золотой. Сколько вообще цветов на этой картинке? Вот бизнесу тоже сложно договориться о количестве цветов.

С цветом вообще сложно работать технически. Мы помним, что все наши компьютеры живут в классическом RGB сегменте, прикол в том, что 2 похожих цвета имеют очень большую дистанцию в RGB, и наоборот, два непохожих находятся очень близко.

Итак, задача поставлена! Путем долгих обсуждений мы получили, что

  • Цвет важен для 21 категории из 31
  • Определили 13 приоритетных цветов
  • Поняли, что надо обработать 100 млн артикулов

Анализ и подготовка имеющихся данных

Конечно, же мы, не будь бы ML-щиками, пошли бы по самому простому пути. Нам нужны качественные данные, все должно быть хорошо размечено для тренировки. Берем Пары Изображение/Цвет из наших 13, количество: с учетом вариативности категорий и фонов и качество: Garbage in - Garbage out.

Конечно, желательно ручная валидация.

Естественно, мы ждали и хотели взять уже готовые товары, вдруг селлеры правильно разметили товары. Но этого материала бы не было, если бы все было так хорошо. В реальности:

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

В результате мы получили из этой выборки 15 тыс. сэмплов для обучения и 5 тыс. Сэмплов разметили для теста с помощью 2-3 асессоров.

Обучение ML модели

При разработке нашего решения мы начали с попытки использовать стандартные методы, включая предварительно обученные сверточные нейронные сети и различные функции потерь, такие как Cross-Entropy или Arcface Loss. Однако, несмотря на наши усилия, результаты были далеки от удовлетворительных. Мы достигли лишь метрики в 40% и начали задумываться о следующих шагах.

Почему же столь низкий результат?

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

Кроме того, большинство существующих моделей для сегментации объектов не подходили для всех категорий товаров (а у SAM сложности с выбором необходимого элемента).

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

CLIP

CLIP (Contrastive Language-Image Pretraining) - это выдающаяся модель, созданная специалистами OpenAI в 2021 году, чтобы объединить изображения и текстовые описания. Эта модель спроектирована для zero-shot и one-shot обучения, что означает, что она способна распознавать объекты без необходимости дополнительного обучения, благодаря предварительному обучению на миллионах пар изображений и текстовых описаний.

И вот здесь начинается самое интересное!

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

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

Так в чем же заключается секрет? Почему наш метод сработал, и что делает его настолько интересным?

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

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

Наш подход демонстрирует высший уровень качества даже по сравнению с самыми новыми разработками на рынке. Мы использовали мощные инструменты, такие как Transformer и Contrastive learning, которые считаются SOTA в классификации изображений, а также продемонстрировали отличную работу с признаками.

Что в итоге получилось?

Создание MVP (Минимального Продукта) было удивительно быстрым и эффективным. Мы собрали его без необходимости проводить обширное обучение, что сократило время, затраченное на портретирование, до минимума. Полученное решение подходит для разнообразных задач и может быть легко адаптировано под новые требования. Добавление дополнительных атрибутов - всего лишь вопрос добавления соответствующего текстового промта. Кроме того, в теории, модель способна анализировать текст описания товара и выявлять характеристики прямо из него.

Самое важное - целевая метрика качества выросла более чем в два раза, достигнув уровня около 84% по F1.

Если вы захотите повторить наш опыт в домашних условиях, вот примерный cookbook:

  1. Набор текстов
  2. Предобученный CLIP
  3. Эмбединги промтов для всех текстов
  4. Прогоняете картинку (или тайтл) товара через CLIP
  5. Получаете эмбеддинг товара
  6. Считаете косинусное расстояние от эмбеддинга товара до эмбеддингов промптов и берете softmax
  7. Проверяете качество!

И как итог:

Это работает на проде. Это в 2 раза эффективнее: быстро, гибко и, это первое, с чего стоит начинать!

0
12 комментариев
Написать комментарий...
Igor Daly

весьма подробно, прочитал с удовольствием, обожаю конкретику. спасибо и давайте ещё. подписываюсь авансом

Ответить
Развернуть ветку
Деловой Крыжополь

характеристика для 100 млн товаров -это широкий охват

Ответить
Развернуть ветку
Viktor Galich

ну смотря какая фильтрация по ним

Ответить
Развернуть ветку
Морозова Анна

без разницы. массив данных огромный

Ответить
Развернуть ветку
Viktor Galich

учите матчасть девушка

Ответить
Развернуть ветку
Семенова Юлия

хорошая работа, спс

Ответить
Развернуть ветку
Михаил Родивец
Во-первых, цвет является наиболее популярным параметром и присутствует в 26 из 31 категории товаров на маркетплейсе. да, работать с цветами та ещё дичь
Ответить
Развернуть ветку
Remedios

Опять ИИ приходит на помощь простым людям

Ответить
Развернуть ветку
Романова Анастасия

какая погрешность в распозновании предмета?

Ответить
Развернуть ветку
Сафонов Михаил

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

Ответить
Развернуть ветку
Елена O

Блин, Ai уже на таком уровне что прекрасно и одновременно страшно

Ответить
Развернуть ветку
Pol Bal

100%

Ответить
Развернуть ветку
9 комментариев
Раскрывать всегда