Как стать автором
Обновить
116.51
X5 Tech
Всё о технологиях в ритейле

Искусственный интеллект в ритейле: как он предсказывает вашу следующую покупку в приложении

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров641

Привет, Хабр! На связи подразделение ad-hoc аналитики X5 Tech. Сегодня мы расскажем о задаче Next Basket Recommendation (NBR) и о том, как она может быть полезна для онлайн-ритейла. В этой статье мы рассмотрим, как с помощью рекомендательных моделей можно предсказать, какие товары пользователь добавит в свою следующую корзину, и как это помогает улучшить взаимодействие с приложением. Вы узнаете о ключевых метриках, которые используются для оценки качества рекомендаций, а также познакомитесь с различными подходами — от простых частотных методов до современных моделей на основе глубокого обучения.

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

Задача Next Basket Recommendation (NBR) состоит в предсказании товаров, которые пользователь приобретёт в следующий раз. Предсказание формируется на основе последовательности его предыдущих корзин.

Мы рекомендуем k товаров, упорядоченных по релевантности, и сравниваем рекомендацию с настоящей корзиной
Мы рекомендуем k товаров, упорядоченных по релевантности, и сравниваем рекомендацию с настоящей корзиной

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

  • Может сэкономить время клиента, так как устраняет необходимость долго искать товары вручную в каталоге. 

  • Может помочь напомнить о нужных товарах. 

  • Стимулирует покупателя попробовать новые продукты, которые могут ему понравиться.

Пример размещения таких рекомендаций на странице корзины
Пример размещения таких рекомендаций на странице корзины

Компания также выигрывает: рост среднего чека способствует улучшению юнит экономики и снижению процентных затрат на заказ. Кроме того, улучшение удобства использования приложения повышает лояльность клиента, что может привести к росту его Lifetime Value (LTV).

Особенности задачи NBR

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

Как и в стандартных рекомендациях, мы имеем дело с exploration и exploitation. Как правило, следующая корзина состоит из ранее купленных товаров (repetition) и новых товаров (exploration). 

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

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

Как оценивать качество?

Самый надёжный способ оценить качество рекомендательной системы — это напрямую протестировать её на пользователях, измеряя бизнес-метрики, такие как средний чек, частота покупок или доля товаров в корзине, добавленных благодаря рекомендациям. Однако A/B-тесты требуют значительных затрат, и использование слабого алгоритма даже на небольшой группе пользователей нежелательно. Поэтому перед запуском онлайн-тестирования обычно используют офлайн метрики для предварительной оценки качества системы.

Для оценки эффективности методов NBR используются две основные метрики: Recall@K и NDCG@K, где K обозначает количество рекомендуемых товаров в выдаче. 

  1. Recall@K измеряет долю товаров из истинной корзины, которые совпали с K наиболее релевантными рекомендациями. Это наиболее важная для нас метрика.

    Recall@K \left(u_j\right)=\frac{\left|P_{u_j} \cap T_{u_j}\right|}{\left|T_{u_j}\right|}
    • P_{u_j}– предсказанная корзина из K элементов для пользователя u_j​,

    • T_{u_j} — истинная (ground truth) корзина для пользователя ​u_j​,

    • |P_{u_j} \cap T_{u_j}| – число товаров, одновременно присутствующих в P_{u_j} и T_{u_j}​​.

  2. NDCG@K – метрика для оценки качества ранжирования, которая учитывает порядок элементов в списке рекомендаций. Метрика нам интересна, т. к. мы стремимся к тому, чтобы наиболее релевантные товары оказались вверху блока с рекомендациями: 

N D C G @ K\left(u_j\right)=\frac{\sum_{k=1}^K p_k / \log _2(k+1)}{\sum_{k=1}^{\min \left(K,\left|T_{u_j}\right|\right)} 1 / \log _2(k+1)}

где:

  • p_k = 1, если k-й товар из рекомендованной корзины присутствует в T_{u_j}​​, и p_k = 0 в противном случае,

  • знаменатель нормирует значение NDCG@K, чтобы оно лежало в диапазоне от 0 до 1,

  • k – позиция товара в ранжированном списке рекомендаций P_{u_j}.

Отдельно отметим, что нет смысла считать такие метрики, как Precision@K = |P_{u_j} \cap T_{u_j}| / K, F1 и т.д. Данные метрики пропорциональны Recall@K, так как мы фиксируем размер списка с рекомендованными товарами числом K, что означает, что Precision@K будет пропорционально Recall@K для каждого пользователя. 

Кроме обычных метрик, можно замерять нестандартные. Например, Novelty@K, которую можно определить как число верно предсказанных товаров, ранее не встречавшихся в истории пользователя.

Методы рекомендаций для NBR

Частотные методы

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

  • TopFreq: рекомендуем K самых популярных товаров в каталоге. G-TopFreq, очевидно, не учитывает индивидуальные предпочтения пользователей.

  • PersonalTopFreq: рекомендуем K самых частых товаров в истории покупок конкретного пользователя для формирования следующей корзины. Затем заполняем оставшиеся позиции самыми популярными товарами из глобального датасета. Такой подход делает акцент на повторяющихся элементах. 

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

Давайте рассмотрим что-то поинтереснее. 

TIFU-KNN (Temporal-Item-Frequency-Based User-KNN) 

TIFU-KNN является одной из первых моделей, которая смогла с уверенностью побить бейзлайн PersonalTopFreq на публичных датасетах. Кроме информации о персональной частоте покупок товара пользователем, модель использует популярность позиций среди пользователей с похожей историей. Это позволяет системе рекомендовать “новые” товары, которые заказывают похожие пользователи. 

Основной принцип работы TIFU-KNN: 

1. Каждая корзина пользователя представлена в виде one-hot вектора размера каталога товаров. Данный вектор состоит из 0 и 1, где 1 указывает на то, что товар был куплен в корзине. Таким образом, вся история покупок пользователя представляется как упорядоченная последовательность векторов.

2. Вся история покупок пользователя разбивается на K групп равного размера n (гиперпараметр модели). Если корзины не делятся нацело, последняя группа содержит остаток. Каждой корзине внутри группы присваиваются веса w_1, …, w_n, отражающие её важность, одинаковые для всех групп. Например, более новые корзины внутри группы получают больший вес, а поздние – меньший. Данные веса будем называть внутригрупповыми. 

3. Просуммировав умноженные на веса one-hot векторы внутри каждой группы, получим векторное представление группы. Далее каждому вектору группы присвоим вес r_1, …, r_K. Такие веса характеризуют долгосрочные изменения предпочтений между группами корзин и называются межгрупповыми.

4. Просуммировав умноженные на межгрупповые веса векторы групп, получим итоговое представление пользователя u_t.

5. Для формирования итоговых рекомендаций проделаем описанную выше процедуру для каждого пользователя. Найдём m ближайших соседей для вектора u_t среди представлений остальных пользователей и усредним их векторы. Получим вектор u_n. Итоговые скоры рекомендуемых товаров для пользователя u рассчитаем как: 

P = \alpha u_t + (1 - \alpha)u_n

где \alpha – гиперпараметр, позволяющий варьировать вклад каждой из компонент. Итоговый вектор P представляет собой вектор релевантностей и имеет размер, равный количеству товаров в каталоге. 

Внимательный читатель может заметить, что мы принимаем во внимание только номер корзины, не учитывая временные интервалы между покупками. Кроме того, веса в модели одинаковы для всех товаров, что плохо соответствует реальности e-grocery. Если пользователь купил молоко в прошлый раз, он с большой вероятностью может его купить и в следующий. Однако, если он приобрёл стиральный порошок, то, вероятнее всего, в следующий раз он его купит только через пару месяцев. То есть мы хотим, чтобы как раз через пару месяцев вес именно этого товара поднялся, и его вывело вверх списка рекомендаций в корзине пользователя. В данной модели мы не учитываем различающийся период покупки разных товаров.

TAIW (Time-Aware Item Weighting)

Модель TAIW решает вышеописанные проблемы. 

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

  • Краткосрочный паттерн — пользователи могут купить товар сразу после предыдущей покупки (например, молоко, хлеб).

  • Долгосрочный паттерн — отвечает за длительные периоды между покупками: время, за которое истратится товар, велико (например, порошок, сахар). 

Итоговая релевантность товара i для пользователя u складывается из:  

  1. Некоторой базовой интенсивности P_{u, i}^0, уникальной для пары (u, i). Она учитывает персональные предпочтения пользователя.

  2. Суммы релевантностей \gamma_i, которые являются функциями от временного интервала между текущим моментом и временем какой-либо предыдущей покупки товара i пользователем u

P_{u,i}(t) = P^0_{u,i} + \alpha_i \cdot \sum_{\text{all previous baskets with i purchase at }t^\prime}{\gamma_i (t - t^\prime )}

где \alpha_i — уникальная интенсивность товара, она не зависит от пользователя, обучаемый параметр. 

Исследования показали, что у большинства товаров из публичных датасетов интервалы между покупками имеют экспоненциальное и нормальное распределение. Функция \gamma_i(\Delta t) позволяет учесть краткосрочные и долгосрочные паттерны в покупках товара i. Это достигается за счёт специально подобранного семейства распределений, которое моделирует шанс повторной покупки товара в зависимости от временного интервала: 

\gamma_i(\Delta t)=\pi^i E\left(\Delta t \mid \beta^i\right)+\left(1-\pi^i\right) \mathcal{N}\left(\Delta t \mid \mu^i, \sigma^i\right)

где E(\Delta t | \beta_i) — плотность вероятности экспоненциального распределения (соответствует краткосрочному паттерну), N(\Delta t | \mu_i, \sigma_i) — плотность вероятности нормального распределения (соответствует долгосрочному паттерну), а \pi_i — коэффициент линейной комбинации для различных паттернов.

Далее, аналогично подходу TIFU-KNN, можно найти m ближайших соседей для вектора P_{u, i}(t) среди представлений остальных пользователей в момент их последней транзакции, усреднить их векторы и прибавить к P_{u, i}(t) с множителем (1-\alpha)

В итоге для каждого пользователя получится вектор, где каждая компонента отражает релевантность соответствующего товара. 

Deep Learning методы

Методы на основе глубокого обучения также находят своё применение в задаче NBR благодаря их способности определять скрытые зависимости и автоматически извлекать представления данных. Вот перечень ключевых DL-подходов, используемых в NBR:

  1. Dream — исторически это первый метод на основе глубокого обучения. Он использует представления корзин, которые затем подаются в рекуррентную нейронную сеть для формирования представлений пользователей и прогнозирования соответствующего следующего набора товаров. 

  2. Sets2Sets — использует механизм внимания для учёта последовательности корзин и информацию о частоте встречаемости товаров для повышения качества предсказаний.

  3. Beacon — это метод на основе RNN, который кодирует корзину с учётом попарных корреляций между товарами для учёта их комплементарности.

  4. DNNTSP — использует GNN и механизмы внимания. Он кодирует отношения между элементами внутри графа и использует механизм внимания для захвата временных зависимостей последовательности корзин пользователей.

Довольно часто DL-модели NBR уступают простым методам на основе частотности. Но нашего внимания определённо заслуживает последняя модель DNNTSP ввиду того, что в ряде независимых обзоров она показала довольно хорошее качество на публичных датасетах. 

DNNTSP (Deep Neural Network for Temporal Sets Prediction) 

Модель DNNTSP предназначена для анализа последовательностей множеств и их прогнозирования с учётом взаимосвязей элементов и временной динамики. Таким образом, она идеально вписывается в постановку задачи NBR. Модель состоит из трёх ключевых компонентов:

  1. Element Relationship Learning
    На первом этапе модель учит взаимосвязи между товарами внутри корзин. Для этого строится граф на основе частоты совместного появления товаров в истории пользователей, где каждый узел является товаром. Затем применяется графовая свёрточная сеть, которая распространяет информацию между узлами графа, что позволяет получить обновлённые представления товаров. Такой подход является одним из вариантов учёта комплементарности товаров. Например, щётку и зубную пасту часто покупают вместе, и вес ребра между данными вершинами будет большим. 

  2. Attention-based Temporal Dependency Learning
    На следующем этапе с помощью механизма внимания находятся временные зависимости между товарами и корзинами. Исторические состояния элементов агрегируются в компактный скрытый вектор, передаваемый на следующий этап.

  3. Слияние информации через механизм обновления (Gated Information Fusing)
    Завершающий этап объединяет неизменные характеристики элементов, общие для всех пользователей, и временные зависимости для конкретного пользователя. В итоге формируется обновлённое представление товаров. Итоговая релевантность получается с помощью применения линейного слоя к представлению товара. 

Таким образом, используя данную модель, мы можем учесть как комплементарность товаров, так и временную последовательность корзин. DNNTSP пока что является единственной DL-моделью, которая обходит частотную модель TIFU-KNN на некоторых публичных датасетах. 

Пришло время подводить итоги

Мы рассмотрели задачу Next Basket Recommendation (NBR) и познакомились с различными подходами — от простых частотных методов до сложных моделей на основе глубокого обучения. Каждый из них имеет свои сильные и слабые стороны. Резюмируя, можно заключить, что на текущий момент в области NBR наиболее оптимальными рекомендательными моделями являются простые методы на основе частотности, а также их улучшенные модификации. 

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

До встречи в следующих наших статьях!

Над статьёй работали: Надеждин Михаил, Сорокин Вадим, Полушкин Андрей, Сахнов Александр.

Теги:
Хабы:
+8
Комментарии14

Публикации

Информация

Сайт
x5-tech.ru
Дата регистрации
Дата основания
2006
Численность
свыше 10 000 человек
Местоположение
Россия