Сегодня разбираем статью о подходе Contrastive Learning в Sequential Recommendation (SR).
Авторы ставят под вопрос существующие методы аугментации цепочек последовательных заказов с целью генерации новых цепочек:
— Маскирование и переупорядочивание истории пользователя, представленной разреженными товарами, может исказить предпочтения.
— Подмена айтема похожим (CoSeRec) не учитывает контекст, так как использует лишь информацию о взаимной встречаемости товаров.
— Двойной forward pass c разными dropout-масками (DuoRec) тоже теряет смысловую последовательность.
Вместо перечисленного предлагается использовать guided-диффузию для оценки условного распределения айтема, обусловленного на контекст прошлых и будущих заказов. Чтобы сблизить латентное пространство диффузионки и SR-модели (в этом случае — SASRec), их обучают вместе, end-to-end, деля между ними эмбеддинги айтемов.
Кодирование последовательности и SR-модель: history += positional embeddings ➡️ transformer ➡️последний токен последовательности. Следующий айтем предсказывается через скалярное произведение векторного представления истории пользователя и эмбеддингов айтемов.
Цель обучения — минимизировать BCE со случайными негативами.
Аугментация
Из последовательности S извлекается подмножество S' с фиксированным соотношением |S'| / |S|. После чего элементы S' заменяются на семантически близкие айтемы, предложенные диффузионкой.
Контрастивное сближение аугментированных последовательностей
Берётся батч последовательностей, каждая из которых аугментируется дважды с помощью случайных подмножеств, после чего аугментации кодируются трансформером. Две аугментированные версии одной последовательности считаются позитивными и противопоставляются оставшимся 2*(batch_size — 1) аугментированным последовательностям, которые выступают как негативы. Лосс рассчитывается с помощью кросс-энтропии.
Диффузия для аугментации
Последовательность прогоняется через трансформер, после чего на полученных эмбеддингах начинается диффузионный процесс. Зашумляются эмбеддинги только тех элементов, которые будут заменены. Остальные элементы обуславливают обратный процесс, они — тот самый контекст. Обратный процесс моделируется двунаправленным трансформером.
Итоговый лосс рассчитывается в end-to-end сценарии, где суммируются три компоненты: BCE для SR-модели, контрастивное сближение и VLB для диффузионки.
@RecSysChannel
Разбор подготовил