Студенческий контест по Machine Learning Обучающие задачи Первый открытый контест ok.ru: Возраст по графу По мотивам онлайн-игр Задача с секретом Предсказание ССЗ ok.ru: Связи пользователей Прогноз отклика аудитории на интернет-опрос Telecom Data Cup Ответы Mail.ru (Хакатон, МФТИ) SNA Hackathon - Коллаборативная система SNA Hackathon - Картинки SNA Hackathon - Тексты ML Boot Camp 9 VK Cup Отборочный раунд VK Cup
Участники
  • 1
    Zaur Zhgunev
  • 2
    Илья Корнаков
  • 3
    Иван Брагин
  • 4
    Алексей Тихонов
  • 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

Темы Сообщения Просмотры Последнее сообщение
Где взять репозиторий для решений? 5 6884 25.03.2020, 19:59:42
Как послать решение?
страницы: 1 2
12 10029 07.03.2020, 21:15:35
Ошибка Неверное количество данных  [Закрыто] 2 6161 20.02.2020, 13:48:06