Алгоритм рекомендаций на Ozon

Оглавление

Рекомендации — это набор виджетов на сайте и в приложении с подборкой товаров, которые могут заинтересовать пользователя. Рекомендательная система на Ozon отвечает за отбор товаров, релевантных контексту показа виджетов, и порядок отображения этих товаров. Рекомендации можно разделить на 2 группы: товарные и персональные.

Товарные рекомендации:

  • виджет похожих товаров на карточке товара,
  • виджет сопутствующих товаров на карточке товара,
  • виджет сопутствующих товаров в корзине.

Персональные рекомендации:

  • виджет персональных рекомендаций на главной странице Ozon,
  • виджет персональных рекомендаций на странице избранных товаров.

Общая схема работы рекомендательной системы на Ozon #

  1. Отбор кандидатов. Рекомендательный сервис выбирает среди товаров Ozon несколько тысяч кандидатов, релевантных контексту показа рекомендаций. Похожие товары отбираются в той же категории, что и текущий товар. Сопутствующие товары — из тех категорий, которые часто покупаются вместе с категорией текущего товара. Для виджета персональных рекомендаций анализируются категории, в которых пользователь покупал или смотрел товары.
  2. Ранжирование кандидатов. Отобранные 2000-3000 товаров оцениваются по вероятности покупки пользователем. Ранжирование этих товаров зависит от признаков, которые модель машинного обучения посчитала важными. В результате ранжирования каждый товар получает оценку от 0 до 1.
  3. Бустинг кандидатов. Полученная на предыдущем шаге оценка повышается для товара, если на него заведено рекламное продвижение. Рекламное продвижение — покупка коэффициента бустинга за деньги.
  4. Обеспечение разнообразия. В топе могут оказаться похожие товары, поэтому в финальную выдачу отбирается не более 2 товаров из каждой категории. Это ограничение не распространяется на виджет похожих товаров.
  5. Отображение рекомендаций. В зависимости от виджета в выдачу рекомендаций попадает от 3 до 200 товаров, отобранных на предыдущем шаге.

1-й этап: отбор кандидатов #

Рекомендательный сервис в зависимости от контекста показа виджета выбирает базовые товары, на которые будет ориентироваться при подборе товаров-кандидатов. Для виджета на карточке товара ориентиром будет текущий товар, для виджета в корзине — ранее купленные и добавленные в корзину товары, для виджета персональных рекомендаций — последние просмотренные и купленные товары.

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

2-й этап: ранжирование кандидатов #

Как работает машинно обученное ранжирование #

На этом этапе рекомендательной системе необходимо оценить, какие из 2000-3000 товаров покупатель может приобрести с наибольшей вероятностью. Вероятность покупки каждого товара неизвестна, поэтому для ранжирования товаров её нужно предсказать.

Предсказание производится в несколько этапов:

  1. Вычисляются все фичи (свойства, от английского features) каждого отдельного товара, которые могут повлиять на факт продажи. Каждая фича — это вещественное число. Например, фичей может быть рейтинг товара или его цена.
  2. К набору фичей применяется машинно обученная модель, предсказывающая вероятность продажи на основе значения фичей. В качестве модели Ozon использует один из методов машинного обучения — градиентный бустинг деревьев решений.
  3. Модель выдаёт число, которое используется для оценки вероятности покупки товара.
  4. Оценка вероятности покупки товара вписывается в контекст показа виджета рекомендаций. Один и тот же товар будет иметь разную вероятность покупки для разных страниц, на которых показываются рекомендации.

Как работает машинно обученная модель #

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

Модель на основании данных из прошлого предсказывает покупательское поведение в будущем. Например, есть фича средней конверсии товара из показа в покупку за последние 60 дней. Для многих товаров можно утверждать, что конверсия товара не меняется во времени. Модель использует эту фичу для предсказания вероятности покупки: чем выше конверсия за последние 60 дней, тем выше предсказанная моделью вероятность. Также при прочих равных условиях покупатели предпочитают товары с большим количеством отзывов. Чем больше у товара отзывов, тем выше предсказанная моделью вероятность. При этом разные фичи имеют разную предсказательную силу и по-разному влияют на вероятность покупки.

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

Что учитывается при машинно обученном ранжировании #

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

Основные признаки, которые учитывает модель при ранжировании товаров:

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

На этом этапе рекомендательная система оценивает каждый товар из 2000-3000 кандидатов по шкале от 0 до 1. Чем ближе эта оценка к единице, тем более высокую позицию в выдаче рекомендаций займёт товар и тем выше вероятность его продажи. Все оценки передаются на третий этап.

3-й этап: бустинг кандидатов #

Товары-кандидаты ранжируются по оценке от 0 до 1. Если среди отобранных кандидатов есть товары с рекламным продвижением, то к их оценке применяются заранее определённые повышающие коэффициенты.

4-й этап: обеспечение разнообразия #

На этом этапе все товары-кандидаты уже имеют финальные оценки. В виджетах рекомендаций ограниченное количество мест: от 3 до 200 в зависимости от платформы и страницы расположения виджета. На этой стадии обеспечивается разнообразие рекомендательной выдачи. Для всех виджетов, кроме виджета похожих товаров, гарантируется показ не более 2 товаров из одной категории.

5-й этап: отображение рекомендаций #

Алгоритм отображения рекомендованных товаров:

  1. Рекомендательная система получает от 3 до 200 товаров с финальными оценками.
  2. На основании этих оценок товары выдаются покупателю: товары с наибольшей оценкой оказываются в начале выдачи, с наименьшей оценкой — в конце.
    • В десктопной и мобильной версии сайта Ozon товары отображаются в виджетах по 6 «плиток» с возможностью горизонтального пролистывания.
    • В мобильном приложении в виджетах отображаются первые 3 товара, а следующие подгружаются при горизонтальной или вертикальной прокрутке.
  3. Для товаров в выдаче подгружаются актуальные характеристики и картинки.