Рекомендации — это набор виджетов на сайте и в приложении с подборкой товаров, которые могут заинтересовать пользователя. Рекомендательная система на Ozon отвечает за отбор товаров, релевантных контексту показа виджетов, и порядок отображения этих товаров. Рекомендации можно разделить на 2 группы: товарные и персональные.
Товарные рекомендации:
- виджет похожих товаров на карточке товара,
- виджет сопутствующих товаров на карточке товара,
- виджет сопутствующих товаров в корзине.
Персональные рекомендации:
- виджет персональных рекомендаций на главной странице Ozon,
- виджет персональных рекомендаций на странице избранных товаров.
Общая схема работы рекомендательной системы на Ozon #
- Отбор кандидатов. Рекомендательный сервис выбирает среди товаров Ozon несколько тысяч кандидатов, релевантных контексту показа рекомендаций. Похожие товары отбираются в той же категории, что и текущий товар. Сопутствующие товары — из тех категорий, которые часто покупаются вместе с категорией текущего товара. Для виджета персональных рекомендаций анализируются категории, в которых пользователь покупал или смотрел товары.
- Ранжирование кандидатов. Отобранные 2000-3000 товаров оцениваются по вероятности покупки пользователем. Ранжирование этих товаров зависит от признаков, которые модель машинного обучения посчитала важными. В результате ранжирования каждый товар получает оценку от 0 до 1.
- Бустинг кандидатов. Полученная на предыдущем шаге оценка повышается для товара, если на него заведено рекламное продвижение. Рекламное продвижение — покупка коэффициента бустинга за деньги.
- Обеспечение разнообразия. В топе могут оказаться похожие товары, поэтому в финальную выдачу отбирается не более 2 товаров из каждой категории. Это ограничение не распространяется на виджет похожих товаров.
- Отображение рекомендаций. В зависимости от виджета в выдачу рекомендаций попадает от 3 до 200 товаров, отобранных на предыдущем шаге.
1-й этап: отбор кандидатов #
Рекомендательный сервис в зависимости от контекста показа виджета выбирает базовые товары, на которые будет ориентироваться при подборе товаров-кандидатов. Для виджета на карточке товара ориентиром будет текущий товар, для виджета в корзине — ранее купленные и добавленные в корзину товары, для виджета персональных рекомендаций — последние просмотренные и купленные товары.
В качестве кандидатов рассматриваются товары, наиболее проходящие к базовым. В виджет похожих товаров отбираются кандидаты из той же категории, что и базовый. В остальные виджеты отбираются товары из категорий, наиболее подходящих к категориям базовых товаров. Категории тем больше подходят друг другу, чем чаще товары из этих категории покупаются пользователями Ozon в одном заказе.
2-й этап: ранжирование кандидатов #
Как работает машинно обученное ранжирование #
На этом этапе рекомендательной системе необходимо оценить, какие из 2000-3000 товаров покупатель может приобрести с наибольшей вероятностью. Вероятность покупки каждого товара неизвестна, поэтому для ранжирования товаров её нужно предсказать.
Предсказание производится в несколько этапов:
- Вычисляются все фичи (свойства, от английского features) каждого отдельного товара, которые могут повлиять на факт продажи. Каждая фича — это вещественное число. Например, фичей может быть рейтинг товара или его цена.
- К набору фичей применяется машинно обученная модель, предсказывающая вероятность продажи на основе значения фичей. В качестве модели Ozon использует один из методов машинного обучения — градиентный бустинг деревьев решений.
- Модель выдаёт число, которое используется для оценки вероятности покупки товара.
- Оценка вероятности покупки товара вписывается в контекст показа виджета рекомендаций. Один и тот же товар будет иметь разную вероятность покупки для разных страниц, на которых показываются рекомендации.
Как работает машинно обученная модель #
Цель работы модели — наиболее точно предсказать вероятность продажи товара на основании фичей этого товара. Фичи товара содержат информацию о том, какими свойствами обладали товары, приобретённые покупателями в прошлом, и какие из этих свойств имеет ранжируемый товар.
Модель на основании данных из прошлого предсказывает покупательское поведение в будущем. Например, есть фича средней конверсии товара из показа в покупку за последние 60 дней. Для многих товаров можно утверждать, что конверсия товара не меняется во времени. Модель использует эту фичу для предсказания вероятности покупки: чем выше конверсия за последние 60 дней, тем выше предсказанная моделью вероятность. Также при прочих равных условиях покупатели предпочитают товары с большим количеством отзывов. Чем больше у товара отзывов, тем выше предсказанная моделью вероятность. При этом разные фичи имеют разную предсказательную силу и по-разному влияют на вероятность покупки.
Модель обучается на данных о зависимости между фичами товаров и итоговыми покупками при помощи специального алгоритма. Многие фичи рассчитываются на основе покупательского поведения: покупатели Ozon влияют на положение товаров в выдаче рекомендаций своими действиями. Больше всего на выдачу влияет факт покупки товара, так как влияние веса фичей на предсказание покупки определяется исходя из продаж товара в прошлом.
Что учитывается при машинно обученном ранжировании #
На этом этапе учитываются все фичи товара, влияющие на его продажу. Это и характеристики товара, и рейтинг, и покупательское поведение, такое как оформление заказа, просмотр товара или добавление в корзину. В общей сложности рекомендательная система Ozon учитывает около 300 различных фичей.
Основные признаки, которые учитывает модель при ранжировании товаров:
- признаки популярности товара-кандидата: количество покупок и показов товаров, добавлений в корзину и в избранное;
- количество совпадающих атрибутов у товара-кандидата и у базовых товаров;
- отношение цен товара-кандидата к ценам базовых товаров;
- отношение дороговизны товара-кандидата к дороговизне базовых товаров;
- совпадение бренда товара-кандидата с брендами базовых товаров;
- расстояния по дереву категорий от категории товара-кандидата до категорий базовых товаров.
На этом этапе рекомендательная система оценивает каждый товар из 2000-3000 кандидатов по шкале от 0 до 1. Чем ближе эта оценка к единице, тем более высокую позицию в выдаче рекомендаций займёт товар и тем выше вероятность его продажи. Все оценки передаются на третий этап.
3-й этап: бустинг кандидатов #
Товары-кандидаты ранжируются по оценке от 0 до 1. Если среди отобранных кандидатов есть товары с рекламным продвижением, то к их оценке применяются заранее определённые повышающие коэффициенты.
4-й этап: обеспечение разнообразия #
На этом этапе все товары-кандидаты уже имеют финальные оценки. В виджетах рекомендаций ограниченное количество мест: от 3 до 200 в зависимости от платформы и страницы расположения виджета. На этой стадии обеспечивается разнообразие рекомендательной выдачи. Для всех виджетов, кроме виджета похожих товаров, гарантируется показ не более 2 товаров из одной категории.
5-й этап: отображение рекомендаций #
Алгоритм отображения рекомендованных товаров:
- Рекомендательная система получает от 3 до 200 товаров с финальными оценками.
- На основании этих оценок товары выдаются покупателю: товары с наибольшей оценкой оказываются в начале выдачи, с наименьшей оценкой — в конце.
- В десктопной и мобильной версии сайта Ozon товары отображаются в виджетах по 6 «плиток» с возможностью горизонтального пролистывания.
- В мобильном приложении в виджетах отображаются первые 3 товара, а следующие подгружаются при горизонтальной или вертикальной прокрутке.
- Для товаров в выдаче подгружаются актуальные характеристики и картинки.