Какой алгоритм рекомендаций победил в Avito ML Cup
Пока на разных днях датафеста рассказывали про трансформерные рекомендации, интересно было посмотреть, что нарешали победители соревнования, про которое я писал. Напомню, что датасет был серьезный - 5kkk взаимодействий.
🔜 Как вы наверное догадались, это не трансформер. И самое интересное, что не ALS
Победил графовый кандидатогенератор. Базовая идея этого алгоритма очень простая. Это когда вы ходите по графу взаимодействий: юзер - айтем на который он кликал - другой юзер - новый айтем. И так при желании какое-то количество раз. Дальше у алгоритма есть усложнения, как ходить лучше, чем случайно. Примеры вариаций: Pixie от Pinterest аж 2017 года и RP3beta аж 2016 года.
🔜 Все топ решения использовали подобные кандидатогенераторы и ранжирование бустингом поверх
Интересно, почему получилось так? Может быть виной хитрая метрика, которая усредняет перформанс по разным вертикалям (товары, услуги итд). Может быть то, что оставили только прогретых пользователей, у которых был контакт. Может быть гэп в 12 часов между трейном и валидацией. А может быть было мало данных на такой объем пользователей и айтемов. Говорят, трансформер не выучивал item_id (хотя они уже были semantic id).
По итогу, соревнование показало пример, что хорошие рекомендации можно построить достаточно простым подходом.
YouTube - Запись разбора решений
Б/У ML - Канал Толи, автора сорева
Пока на разных днях датафеста рассказывали про трансформерные рекомендации, интересно было посмотреть, что нарешали победители соревнования, про которое я писал. Напомню, что датасет был серьезный - 5kkk взаимодействий.
🔜 Как вы наверное догадались, это не трансформер. И самое интересное, что не ALS
Победил графовый кандидатогенератор. Базовая идея этого алгоритма очень простая. Это когда вы ходите по графу взаимодействий: юзер - айтем на который он кликал - другой юзер - новый айтем. И так при желании какое-то количество раз. Дальше у алгоритма есть усложнения, как ходить лучше, чем случайно. Примеры вариаций: Pixie от Pinterest аж 2017 года и RP3beta аж 2016 года.
🔜 Все топ решения использовали подобные кандидатогенераторы и ранжирование бустингом поверх
Интересно, почему получилось так? Может быть виной хитрая метрика, которая усредняет перформанс по разным вертикалям (товары, услуги итд). Может быть то, что оставили только прогретых пользователей, у которых был контакт. Может быть гэп в 12 часов между трейном и валидацией. А может быть было мало данных на такой объем пользователей и айтемов. Говорят, трансформер не выучивал item_id (хотя они уже были semantic id).
По итогу, соревнование показало пример, что хорошие рекомендации можно построить достаточно простым подходом.
YouTube - Запись разбора решений
Б/У ML - Канал Толи, автора сорева