Десять Сталинских ударов NVIDIA по соревнованию по RecSys 🪖
Booking.com, сервис который занимается туризмом, помогая пользователям в планировании путешествий, решил устроить соревнование по RecSys.Данные 🗂
Если кратко, то когда, где и какой пользователь путешествовал
Модель 🤖
Страшная нейросеть (1 картинка), которая состоит из трёх нейронок. На вход нейронкам фичи, а на выходе вероятности, что город будет последним в путешествии.
На вершине каждой находится Matrix Factorization Layer - обычное умножение матриц, а именно умножение матрицы эмбеддингов пользователей, на каждый эмбеддинг сессии, а на выходе получившийся эмбеддинг проходит через softmax.
r = softmax(s * I). s – эмбеддинг сессии, I – эмбеддинг пользователей. Каждое s пробегается по все множеству I.
1️⃣ Первая модель - Обычные FC слои
Фичи входят перемножаются через FC слои, по итогу получается эмбеддинг, который умножается с фичами, а именно эмбеддингами последних пяти городов
2️⃣ Вторая модель - GRU
Эмбеддинги последних пяти городов проходят через GRU, они же конкатятся с фичами и проходят FC слои, затем используется MultiStage Session-based Matrix Factorization head, которая состоит из двух стадий:
a) На первой стадии используется softmax head для того, чтобы выбрать топ 50 городов для следующей стадии
б) На второй стадии конкатим выходы с FC и с первой стадии и перемножаем с эмбеддингами прошлых городов
3️⃣ Третья модель - XLNet
За основу взята модель XLNet, которая обучалась на предсказании пропущенного слова на основе соседних слов, которых мы знаем. Также и здесь, мы знаем соседние города и предсказываем город между ними.
На вход XLNet`у эмбеддинг, который получился из конкатенированных данных пропущенных через FC, на выходе также эмбеддинг, который идёт в Matrix Factorization Head с эмбеддингом последнего города.
Именно так NVIDIA нанесла 13 сталинских ударов по booking.com и вынесла трон, заняв первое место 🦾