Ends in 6 weeks
108 participants
90 submissions

Персональное ранжирование | Avito ML cup 2026

Ранжирование рекомендаций Авито

В этом соревновании вам предстоит построить модель ранжирования объявлений в рекомендательной ленте Авито. Для каждой ленты уже подготовлен набор кандидатов. Задача — расположить выше объявления, с которыми пользователь с большей вероятностью совершит целевое действие.

Участникам доступны обезличенные данные о рекомендательных выдачах: признаки кандидатов, векторные представления пользователей и объявлений, а также история пользовательских событий.ьных выдачах: признаки кандидатов, векторные представления пользователей и объявлений, а также история пользовательских событий.

Задача

Каждая лента определяется идентификатором feed_id. Для каждого объявления в ней необходимо предсказать числовую оценку score: чем выше оценка, тем выше объявление должно находиться в ленте.

Целевая метка target бинарная:

  • 1 — зафиксировано хотя бы одно событие из набора целевых действий;
  • 0 — таких событий не зафиксировано.

Все события из целевого набора имеют одинаковый вес. Ранжирование выполняется внутри каждой ленты; сопоставимость оценок между разными лентами не требуется.

Данные

Датасет разделён по времени на train, val и test. Train предназначен для обучения, val — для локальной проверки качества и подбора параметров, test — для итоговых предсказаний. Метки test участникам не выдаются.

Val и test собраны из выдач, в которых кандидаты были равномерно случайно перемешаны ещё до показа пользователю. Целевые метки сформированы по обратной связи после этих показов. При подготовке файлов кандидаты также перемешаны вместе со всеми их признаками; исходные позиции в val и test не публикуются.

Каждая лента содержит как минимум пять кандидатов после фильтрации. Участникам доступны пять нормализованных числовых признаков, категории, 128-мерные эмбеддинги и история до 256 событий пользователя.

Подробная структура файлов и правила подготовки приведены в разделе «Данные».

Формат решения

Решение загружается в формате Parquet с тремя колонками:

КолонкаТипОписание
feed_idint32Идентификатор тестовой ленты.
item_idint32Идентификатор объявления-кандидата.
scorefloat32Оценка релевантности: большее значение соответствует более высокой позиции.

Используйте sample_submission.parquet как шаблон: сохраните все пары (feed_id, item_id) и замените score предсказаниями модели.

Требования к решению:

  • ровно одна оценка для каждой пары из тестовой выборки;
  • без пропущенных, лишних и повторяющихся пар;
  • без пустых значений, NaN и бесконечных оценок.

Порядок строк не влияет на результат. Объявления сортируются по убыванию score внутри каждой ленты. Оценка не обязана быть вероятностью или находиться в диапазоне от 0 до 1.

Метрика

Основная метрика соревнования — NDCG. Она учитывает положение положительных: чем выше они расположены, тем больше их вклад.

Для каждой ленты сначала рассчитывается:

DCG = Σ target_i / log2(i + 1),  i = 1, …, число кандидатов
NDCG = DCG / IDCG

Здесь i — позиция после сортировки по предсказанной оценке, начиная с 1. IDCG@30 — значение DCG@30 при идеальном порядке, когда все положительные примеры расположены выше отрицательных.

Итоговая метрика — среднее NDCGпо лентам. Все ленты имеют одинаковый вес независимо от числа кандидатов. Чем выше метрика, тем лучше решение.

Особенности эталонного расчёта:

  • при одинаковых score отрицательные примеры располагаются перед положительными;
  • если положительных примеров в ленте нет, NDCG принимается равным 1. Это правило расчёта; сборщик датасета отбирает ленты с положительными примерами.

Public и Private

Тестовая выборка разделена хронологически: примерно первые 30% лент относятся к Public, оставшиеся 70% — к Private.

Граница выбирается максимально близко к 30% по числу лент. Ленты с одинаковым временем записи остаются в одной части, поэтому точная пропорция может немного отличаться. Каждая лента целиком относится к Public или Private; разбиение не гарантирует непересечение пользователей между частями.

Во время соревнования участники видят NDCG на Public. Итоговые места определяются по NDCG на Private после завершения соревнования.

Бейзлайны

Скачайте бейзлайны с Яндекс Диска. Для старта подготовлены два решения:

  • CatBoostRanker с YetiRank — использует числовые признаки, категории и признаки сходства эмбеддингов.
  • Transformer — совместно обрабатывает эмбеддинг пользователя и кандидатов ленты.

Оба бейзлайна сохраняют предсказания в формате feed_id, item_id, score. Команды запуска приведены в разделе «Данные».

Информация для участников

Участники могут объединяться в команды до 4 человек.

Канал общения и обсуждения между участниками всех вопросов — https://t.me/+3bJmHVSkojJkNGJi 

Период выбора итоговых решений с 09 декабря 2026 г. 00:00 по 09 декабря 2026 г. 12:00

Правила участия

Ознакомиться с Правилами участия  можно здесь

Проверка решений

  • Решения проверяются автоматически. Запуск происходит на полностью закрытых тестовых данных, которые не передаются участникам.
  • На лидерборде рейтинг участников будет рассчитываться по Public подвыборке ответов из тестовых данных. Финальные метрики будут рассчитаны на Private подвыборке. Отношение Public/Private - 30/70.
  • Кол-во сабмитов в день: 5
  • Метрика соревнования — NDCG
  • После выбора итогового решения, топ 10 участников должны прислать свое решение 

Данные

Все файлы и их описание вы найдете во вкладке “Данные” после старта соревнований

Призовой фонд

1 место - 750 000 руб. 

2 место - 450 000 руб.

3 место - 300 000 руб.

Our website uses cookies, including web analytics services. By using the website, you consent to the processing of personal data using cookies. You can find out more about the processing of personal data in the Privacy policy