В работе представлена реализация рекомендательной системы сингапурского онлайн-магазина Shopee. Эта рекомендательная система основана на графовой нейронной сети, где каждый пользователь представлен графом, построенным на основе активности пользователя в онлайн-магазине.
В этом графе:
- вершины – айтемы, с которыми пользователь взаимодействовал;
- признаки вершин – заранее обученные эмбеддинги айтемов;
- рёбра – переходы пользователя от одного товара к другому.
Задача нейронной сети — порекомендовать дополнительные товары на основе графа пользователя и айтема, который он просматривает в данный момент.
Общий алгоритм работы графового рекомендера такой:
1. Пользователь просматривает айтем A.
2. Векторы признаков вершин, из которых можно попасть в айтем A за n шагов, усредняются с некоторыми весами.
3. Полученный вектор признаков подаётся на вход нейронной сети, которая вычисляет предсказание модели.
Авторы статьи предлагают три модификации общего алгоритма: новый алгоритм построения графа, новую архитектуру и новый подход к учёту айтемов из хвоста (long-tail).
Ключевой вклад состоит в построении графа. Идея в том, чтобы использовать только очень существенные действия пользователя для построения ребра между товарами. Мотивация — подавление шума. Например, учитывается только переход из описания айтема A на страницу айтема B. Проблема в том, что если оставить только такие рёбра, то граф получается разреженным. Чтобы уплотнить граф, авторы использовали два алгоритма добавления рёбер:
- Первый — реализация алгоритма Swing за авторством исследователей Alibaba.
- Второй основан на поиске по онлайн-магазину: если пользователь сделал поисковый запрос, и просмотрел айтем A и айтем B, то эти товары соединяются ребром.
Полученный граф используется для обучения модели и предсказаний.
Для улучшения архитектуры нейронной сети авторы уменьшили количество слоёв и убрали из некоторых слоёв нелинейные активации. В итоге по объёму памяти и по числу нелинейных операций сеть стала меньше конкурирующих решений.
Long-tail айтемы обрабатываются двумя разными способами — на обучении и на inference.
- При обучении айтемы из хвоста группируются по похожести. Векторы признаков усредняются внутри групп для дальнейшего использования в графе.
- На inference стратегия меняется — eсли long-tail айтем соединён ребром с айтемом, который сейчас просматривает пользователь, то он обрабатывается как обычный айтем (усреднение по соседям не применяется). В противном случае — long-tail айтем обрабатывается так же, как и при обучении (применяется алгоритм усреднения).
Общая архитектура показана на картинке. Описанный в статье алгоритм был внедрён в продакшен. Он продемонстрировал более высокую точность по сравнению с конкурентами на офлайн-данных и на A/B-тестировании. В эксперименте выросло число заказов и прибыль онлайн-магазина.🎯
Post #90
964
- 🔥 3
- 👍 2