Доклад Андрея Семенова по модели BERT4Rec в рамках RecSys Reading Group

Описание к видео Доклад Андрея Семенова по модели BERT4Rec в рамках RecSys Reading Group

📝 Название статьи: BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer
👨‍💻 Авторы: Fei Sun, Jun Liu, Jian Wu, Changhua Pei, Xiao Lin, Wenwu Ou, Peng Jiang (Alibaba)
🔗 Ссылка на статью: https://arxiv.org/pdf/1904.06690.pdf
Краткое резюме статьи BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer (2019 г.)
Авторы статьи обратили внимание на архитектуру BERT из NLP, т.к. до этого самыми продвинутыми методами для sequential recommendation были SasRec и модели на основе RNN. Данные модели являются однонаправленными, то есть учитывающими информацию только слева направо, поэтому они ограничивают возможности скрытого представления в последовательностях поведения пользователей и предполагают строго упорядоченную последовательность, что не всегда является практичным для реального мира.

Раньше модели последовательных рекомендаций обычно обучались “слева направо”, предсказывая следующий элемент для каждой позиции во входной последовательности, но модель BERT учитывает информацию как слева, так и справа, что может привести к утечке информации, т.к. каждый элемент последовательности сможет увидеть целевой. Поэтому авторы меняют схему обучения на Cloze task (Mask Language Model в NLP).

Для обучения необходимо упорядоченный набор interaction-ов по пользователям. Для каждого шага обучения случайным образом маскируются ρ всех элементов во входной последовательности, а затем предсказываются исходные идентификаторы замаскированных элементов. Для каждого замаскированного item-а вычисляется NLLLoss.

Благодаря такому подходу генерируется большее количество примеров для обучения. В примерах для теста и некоторых примерах для трейна добавляется маска в конец последовательности поведения пользователя, чтобы лучше соответствовать задаче последовательных рекомендаций. Важной частью является оценка результатов: каждый истинный элемент сопоставляется со 100 негативными item-ами семплированными с вероятностью пропорциональной их популярности.

Оригинальная архитектура BERT4Rec состоит из:
- Embedding Layer - embedding items + positional embeddings
- Stacking Transformer Layer - 2 блока энкодера с двумя головами в Multi-Head Self-Attention части + Dropout после MHSA и PFFN
- Output Layer - два линейных слоя. После 1-го функция активации GELU, во втором слое вместо матрицы весов используется матрица эмбедингов для item-ов, чтобы избежать переобучения и уменьшить размер модели

Авторы совершили ряд экспериментов, исходя из которых можно сделать следующие выводы:
- Оптимальной размерностью скрытого представления является 64
- Чем длиннее пользовательская история, тем меньше доля маскированных item-ов и больше длина последовательности, которая подается на вход модели
- Чем длиннее пользовательская история, тем больше количество голов в Multi-Head Self-Attention блоке можно использовать
- Увеличение кол-ва transformer layer приводит к улучшению метрик, но на разряженных наборах данных и с короткой пользовательской историей может привести к переобучению

Данная модель показывает отличные результаты качества, благодаря учету информации как слева, так и справа (авторы подтверждают это визуализаций) и увеличению количества обучающих примеров за счет постановки задачи как Cloze task.abstract (от авторов стати):

📄 Modeling users' dynamic and evolving preferences from their historical behaviors is challenging and crucial for recommendation systems. Previous methods employ sequential neural networks (e.g., Recurrent Neural Network) to encode users' historical interactions from left to right into hidden representations for making recommendations. Although these methods achieve satisfactory results, they often assume a rigidly ordered sequence which is not always practical. We argue that such left-to-right unidirectional architectures restrict the power of the historical sequence representations. For this purpose, we introduce a Bidirectional Encoder Representations from Transformers for sequential Recommendation (BERT4Rec). However, jointly conditioning on both left and right context in deep bidirectional model would make the training become trivial since each item can indirectly "see the target item". To address this problem, we train the bidirectional model using the Cloze task, predicting the masked items in the sequence by jointly conditioning on their left and right context. Comparing with predicting the next item at each position in a sequence, the Cloze task can produce more samples to train a more powerful bidirectional model.

📆 Ссылка на календарь мероприятия группы
https://calendar.google.com/calendar/...

Ссылка на группу:
https://t.me/ods_recommender_systems

Ссылка на слайды
https://asash.github.io/pdf/reading_g...

Комментарии

Информация по комментариям в разработке