Вопросы по Грифону. Часть I. "Chain-of-Recommendation"
Было много вопросов к докладу, которые мне задали лично или в tg. Понемногу их раскрою, потому что в 25 минут рассказа не успела вместить всё, что на самом деле хотела бы рассказать.
💬 Скорит ли ранжирующий модуль только айтемы внутри коллизии? (Короткий ответ: Нет, это полноценный скоринг всей выдачи GR)
Beam search выдаёт нам пул Semantic IDs (например 1000). Мы делаем маппинг семантиков в айтемы и получаем пул Item ID (например 1200 с учётом того, что какие-то семантики мапятся в несколько айтемов). Мы считаем данный пул айтемов кандидатами для ранжирования. Ранжирующий модуль (ORM) "забывает" скоры beam search, скорит всех кандидатов по собственной логике и выдаёт финальный отранжированный список айтемов.
При обучении ORM на Next-Item-Prediction (InfoNCE лосс как в докладе) задачей Грифона остаётся кандидато-генерация. При этом его выдача будет отличаться от ванильного GR за счёт нескольких пунктов:
1. ORM оценивает релевантность на уровне конкретного айтема, а не на уровне Semantic ID
2. ORM нивелирует накопленную ошибку beam search, в результате которой скоры beam search могут некорректно ранжировать сгенерированные семантики
3. ORM обладает более экспрессивной архитектурой по сравнению с генеративной частью. По сути мы повторили в ORM архитектуру Аргусных ранжирующих моделей на основе Cross-Attention - каждый кандидат "ходит" с помощью Cross Attention в hidden states энкодера над историй пользователя, и итоговый вектор используется для оценки релеватности айтема. Именно экспрессивность архитектуры позволяет нам показывать качество выше полного софтмакса.
4. Для того чтобы в ORM попадал полный пул кандидатов, стоит расширять последний бим (что дёшево), а также либо расширять предыдущие бимы (вариативный бим сайз), либо использовать PRM. Такие расширения бима (у нас не больше чем в 2 раза) в наших экспериментах имели большое влияние на качество выдачи Грифона, и при этом не влияли на качество выдачи ванильного GR (его подводит накопленная ошибка beam search).
💬 Честный ли замер при сравнении с GR в плане компьюта? (Короткий ответ: Да)
Все замеры на моих слайдах показаны при сопоставимом количестве параметров моделей и сопоставимом времени инференса. Для сравнения Грифона с GR мы убираем один слой из декодера GR и отдаём его в ранжирующий модуль.
И тут ещё уточню, что все реколлы, которые я показывала - это recall@1000. Презентация корректная та что скинула в канал)
💬 Есть ли похожие подходы в литературе? (Короткий ответ: Думаю, что скоро будут)
Пока я готовила презентацию для датафеста, как раз вышла первая статья, в которой прямо заявляется именно объединение GR с ранжированием в одной модели. Мне очень понравилось обозначение концепции, авторы назвали такой подход "Chain-of-Recommendation". Он здорово отражает суть происходящего. В этой работе нет речи о внедрении, замеры только на одном публичном датасете, и это скорее клейм на саму концепцию. Но идейно это именно то, к чему мы стремимся с Грифоном. Отличие в том, что мы начали с задачи Next-Item-Prediction, и теперь уже после неё экспериментируем с правильным supervision и рецептом обучения для ранжирующего модуля.
В целом крупные мировые компании активно исследует End-2-end рекомендации, и архитектуры по типу Грифона и Chain-of-Recommendation выглядит в таких направлениях очень органично. Ждём больше интересных работ)
Post #46
1.85K