Миссия рекомендательных систем - угадывать потребности человека. Примитивные модели не способны уловить скрытые паттерны поведения пользователя. Однако эту задачу способно решить моделирование последовательности рекомендаций (Sequential Recommendation). Особенного успеха в последнее время в моделировании последовательностей добились Transformer-подобные архитектуры. Ниже представлен краткий обзор на важные в области статьи, частично покрывающие тематику Recsys+Transformers.

SASRec: Self-Attentive Sequential Recommendation

https://arxiv.org/pdf/1808.09781

Авторы статьи позиционируют свое решение как некий trade-off между примитивными моделями (Markov Chains) и моделями, позволяющими улавливать long-term зависимости (RNN). MC не способно моделировать сложные зависимости, т.к. для предсказания используют только информацию из 1ого или нескольких предыдущих item-ов, в то время как RNN принимает во внимание всю историческую последовательность рекомендаций, в которой много шума. Transformer-модели при анализе последовательностей способны обрабатывать длинный контекст, однако свои предсказания, в основном, они делают, опираясь на информацию небольшого количества item-ов.

Задача рекомендаций формализована и подогнана под сеттинг Transformers путем замены токенов текста на item-ы.

Процесс обучения SASRec
Процесс обучения SASRec

В плане архитектуры - все стандартно: MultiHeadAttention, Position-wise Feed-Forward Network, Layer Normalization, Residual Connection, Dropout, Positional Encoding.

Для получения итоговой меры релевантности item-а к последовательности, в слое предсказания скрытое состояние финального слоя трансформера скалярно умножается на вектор эмбеддинга item-а. Из особенностей - было принято решение использовать общую матрицу эмбеддингов item-ов (shared embedding matrix) как и вход модели, так и на слое предсказания. Прежние модели страдали от того, что не могли улавливать ассиметричные отношения между item-ами, однако SASRec не подвержен этому.

Как обучать эту модель? Каждая исходная последовательность item-ов в итоге бьется на подпоследовательности, для которых Лосс считается как сумма Лосса для положительного примера (реальный последний item) и Лосса для одного случайно выбранного отрицательного примера.

Формула Лосса модели
Формула Лосса модели

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

Метрики считались с помощью техники leave-one-out. Для каждого юзера последний и предпоследний item добавляется в eval и test сеты, соответственно, а остальное - в train. Также была применена техника negative sampling: для каждого верного взаимодействия выбиралось, в соответствии с популярностью, 100 item-ов. Т.о. метрика оценивала отранжированный список из 100 заведомо ложных взаимодействий и 1им верным.

SASRec обогнал все предыдущие SOTA модели по HR, NDCG на датасетах (Amazon Beauty, Steam, MovieLens-1M).

BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer

https://arxiv.org/pdf/1904.06690

Рисерчеры из Alibaba в 2019 году впервые подружили BERT-ы и Recsys, представив архитектуру BERT4Rec. Вообще, идея логично проистекает из SASRec - если модели с однонаправленным контекстом (unidirectional models) отлично справились с бенчмарками Recsys, почему бы не поставить эксперимент над моделями с двунаправленными контекстом (bidirectional models).

Таким образом можно:

  • Обусловить item-ы контекстом справа, получив их лучшее представление, и заодно значительно увеличить обучающую выборку (комбинаторный взрыв количества перестановок маскированных item-ов и немаскированных).

  • Смягчить предположение о жесткой упорядоченности item-ов в последовательности, которая соблюдается не всегда.

Обучали модель на задаче MLM (Masked Language Modelling) или Cloze task, маскируя определенную долю случайных item-ов в последовательности. Во время теста достаточно подать на вход последовательность item-ов с [mask] в самом конце, подсказывая таким образом модели, какое поведение мы от нее ожидаем.

Архитектура BERT4Rec
Архитектура BERT4Rec

BERT4Rec обогнал SASRec по всем метрикам (HR, NDCG, MRR) на всех датасетах (Amazon Beauty, Steam, MovieLens-1M, MovieLens-20M).

На этапе абляции эффект от отказа учета последовательности item-ов оказался гораздо сильнее, чем на SASRec (На датасетах MovieLens-1M и MovieLens-20M наблюдается деградация более чем на 50%, в то время как датасеты, содержащие короткие последовательности в метрике не сильно просели).

Позже вышла статья (https://arxiv.org/pdf/2207.07483), адресованная некоторым несостыковкам в оригинальной статье, которые нашли другие исследователи. Авторы нашли 40 публикаций, в рамках которых велось сравнение BERT4Rec и SASRec на различных метриках и датасетах - в 36% случаев побеждал SASRec, что подтверждает гипотезу о том, что BERT4Rec не всегда стабильно лучше SASRec, и, что воспроизводить результаты оригинальной статьи удается далеко не всем.

Сравнивались 4 различных реализаций BERT4Rec: original, RecBole, BERT4Rec-VAE, и предложенная авторами.

Несмотря на то, что существует мнение, что negative sampling для расчета метрик - не лучшая идея, основные метрики рассчитывались именно с ним - чтобы сделать исследования сравнимым с оригиналом.

Ключевые чекпоинты из статьи:

  • BERT4Rec показывает разные результаты для различных реализаций.

  • BERT4Rec действительно является лучшей архитектурой для моделирования последовательностей, однако требуется гораздо больше времени для обучения (в 30 раз больше!).

  • Другие BERT-подобные модели, используемые в BERT4Rec, способны значимо улучшить метрики.

gSASRec: Reducing Overconfidence in Sequential Recommendation Trained with Negative Sampling

https://arxiv.org/pdf/2308.07192

В этой статье описывается предположение, что основная причина того, что SASRec проигрывает BERT4Rec в метриках - это overconfidence (чрезмерная самоуверенность), появляющаяся благодаря negative sampling-у, в рамках которого положительные взаимодействия имеют большую пропорцию относительно негативных, что расходится с реальной жизнью. Т.о. модель учат различать хорошие item-ы от плохих, в то время как задача сортировки хороших item-ов в топе игнорируется. Причиной превосходства BERT4Rec является не двунаправленное внимание, а отказ от negative sampling, однако это делает невозможным применение этой модели во многих реальных задачах из-за сложности вычислений, т.к. Softmax, используемый BERT4Rec требует хранения для каждой последовательности N*S чисел, где S - кол-во item-ов в последовательности, N - кол-во item-ов в датасете. Также авторы предлагают новую модель, превзошедшую сам BERT4Rec - gSASRec, обученный на новой Лосс-функции - gBCE.

Формула gBCE.
Формула gBCE.

В целом, gBCE является обобщением BCE - в нем фигурирует β, контролирующая форму сигмоиды. В статье аналитически показывается, что BCE, при очень большом количестве item-ов в датасете приравнивает вероятности топовых item-ов почти к 1. Эксперименты показали, что при нужной комбинации гиперпараметров k (n_negatives) и t (калибровочный параметр, фактически определяющий β) SASRec достигает сравнимых показателей с BERT4Rec и даже обгоняет его на некоторых датасетах. Также замечено, что gBCE положительно влияет больше на SASRec, чем на BERT4Rec, поскольку перед первым при обучении ставится задача предсказания последующего item-а, что ближе по духу к Sequence Modelling, чем MLM. И финальный плюс gSASRec - он тренируется гораздо быстрее.

TRON: Scaling Session-Based Transformer Recommendations using Optimized Negative Sampling and Loss Functions

https://arxiv.org/pdf/2307.14906

Session-based рекомендательные системы предсказывают следующие item базируясь на сессии - последовательности item-ов, с которыми он взаимодействовал ранее. Выбирать негативные примеры можно несколькими способами:

  1. Из равномерного распределения над всеми item-ами

  2. Из распределения, полученного из частоты взаимодействия каждого item-а с каждыми user-ом

  3. Комбинация из 1. и 2.

Сэмплировать негативные примеры можно по одному: на каждое позитивное взаимодействие (elementwise), на каждую сессию (sessionwise), на каждый батч (batchwise). Element-wise подход страдает тем, что содержит в себе особую вычислительную сложность, в то время как другие подходы более быстрые.

TRON применяет комбинацию из sessionwise и batchwise подходов, при этом использует top-k сэмплирование. При этом все это поверх SASRec c Sampled Softmax Loss.

Были проведены эксперименты над 2мя вариантами комбинаций техник семплирование: uniform+sessionwise, batchwise+sessionwise, в рамках которых было установлено, что при достаточно большом количестве негативных примеров TRON выигрывает все остальные модели, попавшие в сравнение в большинстве случаев.

Комментарии (1)


  1. odmin227
    12.08.2024 09:30

    Побольше бы картинок объяснялок примеров, например почему софт макс, зачем негативное семплирование, как оно работает, что за елементвайс сессионвайс и тд