В статье команда рекомендаций из маркетплейса OTTO предлагает модификацию SASRec, которая называется TRON. В этой модификации используется отличная от оригинального SASRec функция потерь и изменённая схема семплирования негативных.
В качестве функции потерь вместо бинарной кросс-энтропии, которая используется в SASRec, авторы решили использовать listwise лосс — sampled softmax (SSM).
Семплирование негативных состоит из следующих этапов:
1. Равномерно семплируем негативные из айтемов в батче (in-batch).
2. Семплируем айтемы пропорционально частоте (frequency).
3. Объединяем списки, полученные в пунктах 1 и 2.
4. Из объединённого списка после получения скоров для каждого айтема, отбирается топ K самых негативных айтемов по скору.
Эту идею авторы взяли из соревнования на Kaggle, которое проводила компания OTTO. Такая схема решает две проблемы: во-первых, из-за меньшего количества негативных айтемов обучение происходит быстрее, а во-вторых, можно брать большое количество айтемов и использовать более широкий контекст.
В экспериментах TRON представлен двумя наборами гиперпараметров:
- TRON L-Negs. 8192 in-batch + 127 frequency негативных.
- TRON XL-Negs. 16384 in-batch + 127 frequency негативных.
В качестве бейзлайнов выступают GRU4Rec и различные модификации SASRec (см. картинку). Авторы сравнивают TRON с этими бейзлайнами на трёх публичных наборах данных по метрикам MRR@20 и recall@20. В итоге TRON победил в пяти из шести экспериментов, а время обучения уменьшилось на 25% по сравнению в SASRec. В A/B-тестах авторы также добились статистически значимого прироста в ~18% в метрике CTR против модели SASRec на SSM лоссе. Код предложенной модели со всеми датасетами выложен на GitHub.
Результаты показывают, что сочетание listwise лосс с отбором топ K негативных из большого семпла даёт значительный результат, поэтому такой подход можно брать на вооружение и пробовать у себя.
Post #79
934
ML — это ОК Статья с #recsys23 SCALING SESSION-BASED TRANSFORMER RECOMMENDATIONS USING OPTIMIZED NEGATIVE SAMPLING AND LOSS FUNCTIONS https://arxiv.org/abs/2307.14906
- ✍ 2
- 👍 2