Ended 7 months ago
714 participants
1899 submissions

Data Fusion Contest 2024 - Задача 1 «Геоаналитика»

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

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

Нажимая кнопку «Участвовать» и/или «Отправить решение», вы соглашаетесь с Правилами участия в соревновании Data Fusion Contest 2024.

Постановка задачи

Участникам предоставляются данные о карточных транзакциях клиентов в формате .parquet. Транзакции клиентов даны в привязке к локации. Также предоставляется тренировочная информация о том, в каких банкоматах клиент снимал наличные. 

Необходимо предсказать, в каких локациях клиент будет снимать наличные. Из соображений приватности, координаты закодированы в h3index уровня 9, например 891181840a7ffff.

Клиент может снимать наличные в нескольких банкоматах. Иногда клиент одновременно совершает несколько транзакций в одном месте — по ним считаются статистики (count, sum, min, avg, max, std, count_distinct). Список локаций, в которых возможно снятие наличных, известен. Нужно для каждого клиента и каждого банкомата предсказать вероятность того, что клиент им воспользуется. 

Для удобства предоставляется список всех локаций, где возможно снятие наличности и всех локаций с точками, в которых клиенты могли совершать транзакции. Подробнее про структуру и особенности данных можно узнать на странице “Данные”.

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

Это контейнерное соревнование с подготовкой решений в виде архива с кодом, который будет автономно запускаться на закрытых тестовых данных. 

Необходимо обучить модель на предоставленных данных, упаковать решение в архив и загрузить на платформу.  Модель получает на вход следующие именованные аргументы:

  •  --hexses-target-path -ht список всех геолокаций, где возможно снятие наличности. Этот файл доступен в исходных данных, но мы просим использовать в работе модели именно нашу версию файла hexses_target.lst.
  • --hexses-data-path -hd список всех геолокаций, где пользователь мог совершить какую-либо транзакцию. Этот файл доступен в исходных данных, но мы просим использовать в работе модели именно нашу версию файла hexses_data.lst .
  • --input-path -i входные данные о транзакциях. Формат аналогичен файлу с транзакциями в обучающих данных. Например, test.parquet
  • --output-path -o имя файла, в который вам нужно сохранить результат. Например, submit.parquet

Требуется предсказать вероятность того, что клиент снимет деньги в одной из локаций из hexses_target.lst.

Формат выходного файла — parquet: 

  • Столбец customer_id должен содержать код пользователя
  • Остальные столбцы должны быть кодами локаций из hexses_target.lst
  • (важно) Если в файле отсутствует какой-то из клиентов или какая-то из геолокаций, где возможно снятие наличности, сабмит будет отвергнут (оценочный скрипт выдаст ошибку).

Обратите внимание, что в тестовых данных другие клиенты. Также в тестовых данных могут не использоваться некоторые из локаций, доступных в обучающих данных.

В архиве должны быть все необходимые для работы модели файлы. Как минимум, в архиве должен быть файл metadata.json с указанием используемого докер-образа (рекомендуем `odsai/vtb24-baseline:1.0`) и строки для запуска вашей модели.

{
   "image": "odsai/vtb24-baseline:1.0",
   "entry_point": "python -u run.py"
}

При желании вы можете использовать свой образ, выложив его на https://hub.docker.com. Вебинар о том, как собрать докер

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

Решения проверяются автоматически. Запуск происходит в изолированной среде без доступа в интернет на полностью закрытых тестовых данных, которые не передаются участникам.

И в публичной и в приватной части рейтинга решения запускаются на двух наборах входных данных: для публичной и приватной части лидерборда. 

Соотношение публичной и приватной части лидерборда примерно 1:1. Победители соревнования определяются по результатам приватной части лидерборда. 

Метрика соревнования — Mean Binary Cross Entropy т.е. бинарная кросс-энтропия, усредненная на всех пользователях. Эта метрика сильно штрафует за категоричные утверждения, поэтому при расчете мы обрезаем предсказанные вероятности. Формула расчета

eps = 1e-8
mbce = (-np.log(np.clip(predictuion, eps, 1 - eps)) * target \
       -  np.log(np.clip(1 - predictuion, eps, 1 - eps)) * (1 - target)).sum(axis=1).mean()

где predictuion - вектор предсказанных вероятностей, а target - целевая разметка, где 1 помечены локации, в которых пользователь на самом деле снимал наличные.

Обратите внимание, что пользователь может снимать наличность в нескольких банкоматах в разных локациях, это нормально.

(patch note #1) если ваше решение выдаёт NaN, все NaN заменяются на 1e-8 перед рассчётом метрики.

Доступные ресурсы для решений

  • 8 ядер CPU
  • 96Gb RAM
  • Видеокарта NVidia Tesla V100

Ограничения для решений

  • 5Gb для архива с решением
  • 60 минут на работу решения: 30 минут на public часть и 30 минут на private
  • Docker-образ, используемый в решении, должен быть опубликован и публично доступен на Dockerhub

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

  • В соревновании можно принимать участие из любой точки мира. Участники могут объединяться в команды до 4-х человек. Участвовать можно в любом количестве из предложенных задач и номинаций. Победители соревнования смогут получить денежные призы только на расчетные счета банков, зарегистрированных на территории Российской Федерации.  Просим вас позаботиться об открытии счета в РФ заранее.
  • Ответы на вопросы по всему Data Fusion Contest 2024 доступны на FAQ странице трека.

Призовой фонд задачи 1, Геоаналитика

1 место: 500 000 рублей
2 место: 250 000 рублей
3 место: 150 000 рублей

Номинация Companion по задаче Геоаналитика: 
50 000 рублей (по состоянию на “экватор” соревнования)
50 000 рублей (после дедлайна соревнования)

Cookies help us deliver our services. By using our services, you agree to our use of cookies.