Отборочный раунд VK Cup

 

До КОНЦА ЭТАПА осталось:
Участники
  • 1
    Илья Корнаков
  • 2
    Иван Брагин
  • 3
    Сергей Фиронов
  • 4
    Eskender Dzhemadinov
  • 5
    Вячеслав Введенский
Задача "Отборочный раунд VK Cup"

Условие

Реклама ВКонтакте работает по тем же принципам, что и большинство рекламных систем – на основе аукциона. Чем больше рекламодатель готов заплатить за показ рекламы пользователю – тем больше людей увидят его рекламу.   

Ваша задача – предсказать, какое количество людей увидят конкретное рекламное объявление в будущем. Если есть потребность в подробностях понять контекст задачи – в выступлениях VK Tech есть рассказы про работу рекламы и задачу предсказания охвата рекламных объявлений: https://vk.com/tech?w=wall-147415323_5400

Вам даны:

  • данные по пользователям users.tsv
  • данные показов рекламы пользователям за два последовательных месяца history.tsv
  • данные с объявлений для валидации алгоритма – validate.tsv
  • данные эталонных ответов алгоритма для валидационного датасета validate_answers.tsv

все файлы в формате `tsv` (разделитель колонок – `\t`) с обязательным заголовком для всех колонок. 

Описание файлов и колонок

Файл users.tsv:

  • user_id – уникальный идентификатор пользователя
  • sex – указанный пользователем пол в анкете
  • age – указанный пользователем в анкете возраст пользователя. 0 – не указан.
  • city_id – указанный пользователем в анкете город проживания. 0 – не указан.

Файл history.tsv:

  • hour – в какой час пользователь видел объявление
  • cpm – цена показанного рекламного объявления в рекламном аукционе. Это значит, что на данном аукционе это была максимальная ставка. 
  • publisher – площадка, на который пользователь видел рекламу
  • user_id – уникальный идентификатор пользователя

Файл validate.tsv:

  • cpm – для какой цены объявления нужно сделать прогноз
  • hour_start – предположительное время запуска рекламного объявления
  • hour_end – предположительное время остановки рекламного объявления. По итогу прогноз делается для рекламного объявление, которое будет запущено в период времени `[hour_start, hour_end]`
  • publishers – на каких площадках объявление может быть показано
  • audience_size – размер аудитории объявления, количество идентификаторов в поле `user_ids`
  • user_ids – аудитория объявления – список пользователей, кому рекламодатель хочет показать объявление.

Файл validate_answers.tsv:

  • at_least_one – доля пользователей, которая увидит объявление хотя бы один раз
  • at_least_two – доля пользователей, которая увидит объявление хотя бы два раза
  • at_least_three – доля пользователей, которая увидит объявление хотя бы три раза

Особенности

Ваш алгоритм будет тестироваться на следующем месяце, после доступной вам истории показов. То есть, hour_start и hour_end в тестовых заданиях не будут пересекаться с hour из доступного вам файла history.tsv.

Пользователи в тестовых заданиях будут выбраны из файла users.tsv, который вам доступен.

Задания выглядят идентично заданиям из файла validate.tsv. Вывод ожидается ровно в таком же формате, что и в файле validate_answers.tsv.

Важные условия работы аукциона и условности задачи:

  • если ставка объявления cpm больше всех ставок всех остальных участников: со 100% вероятность выигрывает объявление со ставкой cpm
  • если ставка объявления cpm равна максимальной ставке среди всех остальных участников: объявление со ставкой cpm выигрывает с вероятностью в 50%. В реальном аукционе объявление может выигрывать по совершенно другим правилам и вероятностям, это упрощение для моделирования конкретно в данном датасете. 
  • система запоминает все объявления, который видел пользователь в течении сессии и не показывает их, даже если это самые дорогие объявления в аукционе.  Новая сессия начинается после отсутсвия показов рекламы пользователю в течении 6 часов.

Метрика

В файле metrics.py представлена метрика, по которой будет оцениваться решение (Smoothed Mean Log Accuracy Ratio, переведенная в проценты). Метрика считается по значениям из всех трех колонок at_least_one, at_least_two и at_least_three.

Метрика интерпретируется следующим образом: это среднее значение относительного расхождения эталона и предсказанного значения в процентах. Например, значение 30% значит, что в среднем модель ошибается на 30% от реальности. Чем ближе метрика к 0 – тем лучше.Сглаживание в метрике нужно, чтобы уменьшить влияние относительной ошибки там, где эталон близок к нулю. Логарифм в метрике берется для того, чтобы overpredict и underpredict расчитывались симметрично.

Контейнер

Данное соревнование проходит на контейнерной технологии. Таким образом, в качестве ответа принимается обученная модель. Точкой монтирования входных данных служит путь: /tmp/data

Результат results.tsv необходимо положить в папку /opt/results/, при этом её необходимо создать. Итоговый путь до файла с решением: /opt/results/results.tsv.

Примеры бейзлайна и Dockerfile доступны в архиве с данными.

Желаем удачи!

Для решения задач необходимо войти на сайт.

Форум: Отборочный раунд VK Cup

Темы Сообщения Просмотры Последнее сообщение
Ошибка Неверное количество данных  [Закрыто] 2 40 1 день, 23 часа назад