Generator and Critic: A Deep Reinforcement Learning Approachfor Slate Re-ranking in E-commerce - аналог RLHF в рекомендательных системах
Стандартная логика в рекомендациях на этапе ранжирования выглядит так - берём кандидатов, оцениваем каждого из них по отдельности и выдаём пользователю top-K. Работает это достаточно неплохо, но при генерации выдачи никак не учитывается взаимное наличие и порядок этих айтемов.
Один из способов это решить - авторегрессионная генерация последовательности, прямо как в языковых моделях. Для этого нам нужны 2 составляющие:
Critic, она же reward model.
Для её обучения мы собираем датасет пар (последовательность, таргет). Можно обучить модель любой сложности, поскольку она не будет применяться в проде. Это может быть трансформер, применяющийся поверх последовательности документов, и выдающий агрегированный результат по всей выдаче. Таргет нужно выбрать согласно логике бизнеса.
Generator
Пока человечество не придумало более удачного способа генерации последовательности, чем добавление их по одному в конец. Каждый кандидат на текущую позицию является действием агента, аналогично выбору следующего токена в тексте. Модель берёт на вход уже сгенерированный префикс и выдаёт распределение для следующего действия.
Логика обучения такая - "эпизодом" в терминах RL является генерация всей последовательности, награда выдаётся только в конце по результатам оценки от Critic. Обучаться можно любым RL-алгоритмом, например, в данной статье используют PPO.
На самом деле, в реальных рекомендательных системах такой подход почти не используется по простой причине - это не стоит затраченных усилий. В отличие от языка, где выдать top-K токенов в порядке крутости по убыванию было бы весьма неудачным решением, в рекомендациях это нормально. Влияние документов в выдаче друг на друга здесь гораздо меньше, при этом нельзя оценить заранее, что принесёт разработка и внедрение этой штуки.
@knowledge_accumulator
Post #132
3.85K
- 👍 14
- 🔥 2
- 👏 1