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

Постановка задачи

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

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

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

Наша команда приняла этот вызов и разработала эффективный и надежный способ решения проблемы сходства продуктов.

Давайте рассмотрим набор приложений, в которых наше решение будет очень полезно.
- Представьте, что вы, как покупатель, имеете в голове «идеальный» продукт. Вы понимаете, какой вес, цена и ингредиенты сделают его идеальным, но вы не знаете ни одного примера такого продукта.
- Вас, как покупателя, не устраивает цена на какой-то товар, или понравившегося товара нет в наличии. Вас обязательно заинтересует возможность получить наилучший заменитель вашего продукта по более низкой цене.
- Со стороны продавца может быть полезно сравнить ваш ассортимент с конкурентами, чтобы быть в курсе рынка .
Предположим, вы, как продавец, обладаете некоторой информацией о покупках пользователей в другом магазине. Как это может помочь побудить клиентов покупать вашу продукцию?
- Имея портрет своего покупателя, вы можете порекомендовать новые или уже существующие заменители, которые, как вы знаете, его точно заинтересуют.

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

Это всего лишь небольшой список примеров, когда наше решение по сопоставлению товаров определенно пригодится.

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

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

Описание решения

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

Большой объем важной информации о продукте представлен в текстовом формате. Учитывая описания ингредиентов и аллергенов, а также значение названия и бренда, было решено использовать модели обработки естественного языка (NLP), которые позволяют компьютеру понимать значение человеческого языка. Модель полезна для извлечения признаков и семантического сходства. Однако он дает неполные результаты для поставленной задачи. Причина в том, что многие предметы в этой категории могут состоять из почти одних и тех же ингредиентов, но эти предметы различны по своей сути. Например, в соответствии с этой моделью НЛП сравнение хлеба и булочки дало бы высокую оценку сходства, но этот результат описывает только текстовую сторону продуктов и недостаточен в контексте общей проблемы.

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

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

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

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

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

"Имея разные модели, обрабатывающие разные типы информации, мы можем в достаточной мере описать конкретный продукт".

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

Сводка

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

Инструменты и технологии:

- Python, Pandas, NumPy
- Предварительно обученные модели НЛП
- Ансамбль предварительно обученных нейронных сетей для компьютерного зрения
- Машинное обучение без учителя
- Машинное обучение с учителем
- REST API
— MongoDB