В качестве первого поста расскажу свои мысли про Yambda
На прошлой неделе мы выложили (по нашим данным) самый большой открытый датасет для исследования рекомендательных систем. Съездив на последний рексис и пообщавшись с академическим сообществом, решили, что нужно обязательно сделать такой проект.
Рекомендательные системы последние годы выступали в качестве догоняющих в нейросетевых технологиях. Мы много всего адаптируем из других областей ML (в первую очередь NLP) и на несколько лет от них отстаем. Связано это во многом с низкой активностью академического сообщества в нашей области, которая в свою очередь связана с отсутствием нормальных публичных датасетов. Ставили себе задачу уменшить разрыв между индустрией и академией.
Что в итоге выложили:
- Датасет, основанный на логах Яндекс.Музыки, 4.79B событий, 1m пользователей
- Код бейзлайновых алгоритмов
- Препринт на архив
- 3 версии датасета для команд с разными вычислительными ресурсами
Используем для валидации Global Temporal Split, нормальный честный эвал, аналогичный тому, как мы замеряем оффлайн метрики в наших реальных сервисах.
Важный результат, который хочется отметить: SASRec начинает уверенно обгонять другие алгоритмы только на достаточно больших датасетах, которые ранее сообществу были недоступны.
Попробую ответить на несколько вопросов, которые поднимались в личных разговорах:
* Почему не завели алгоритм X / не затюнили один из алгоритмов способом Y?
Вообще заводить бейзлайны (и в целом писать статьи) - не наш основной рабочий вид деятельности. На него приходится находить время на выходных и по ночам. Вклад большинства авторов статьи - как раз заведение этих бейзлайнов. Выложили то, на что хватило времени и желающих поучаствовать, остальное оставляем на дальнейший ресерч в сообществе 🙂
* Почему не эмулируется регулярное дообучение моделей / обновление профиля пользователя?
Первая причина здесь такая же, как в предыдущем пункте. Вторая причина - мы хотели сохранить некоторую "честность" в применении алгоритмов. Какие-то из них получат преимущество от регулярного обновления профиля пользователя (например SASRec), у других основное преимущество было бы именно в регулярном дообучении (iALS), у третьих не сработало бы ни то ни другое (например PopSampler, на практике мало у кого реализовано обновление документного индекса на потоке).
* Насколько is_organic "на самом деле" органичен?
Здесь мы отделяли именно рекомендательный поток от всего остального. Справедливо, что поиск (даже если он не персонализированный) тоже индуцирует поведение пользователя. У нас такие прослушивания считаются органическими.
А вообще в такой постановке рассуждений почти никакое прослушивание не является истинно органическим, потому что рекомендательная система влияет как на саму базу, так и на пользователя в прошлом.
Очень надеюсь, что нашим датасетом всерьез заинтересуется академическое сообщество и будет исследовать на нем sequential постановку рекомендаций. Верю, что это может стать большим шагом для всей области.
В конце хочу поблагодарить всех авторов статьи за этот офигенный проект!
https://huggingface.co/datasets/yandex/yambda
https://arxiv.org/abs/2505.22238
Post #7
1.81K