Ended 4 months ago
698 participants
7821 submissions

baseline

IPYNB | 49.45 KB

email

НТО 2025/2026 — Профиль «Искусственный интеллект»

Индивидуальный этап

Этот документ является справочником по данным и формату файла решения.


1. Описание данных

Основной формат исходных данных: CSV с разделителем точка с запятой (;) и двойными кавычками (") для экранирования текстовых полей.

1.0. Получение данных

Данные находятся на странице https://ods.ai/competitions/nto25-26-2-individ/dataset/ в виде zip архива "stage1_individual_data"

1.1. Состав предоставляемых файлов

ФайлОписание
train.csvОбучающая выборка, соответствующая первому хронологическому срезу данных (chunk 1). Содержит полную историю взаимодействий пользователей за этот период, включая прочитанные книги (has_read=1) и книги в списке "на прочтение" (has_read=0).
test.csvТестовая выборка, содержащая взаимодействия из второго хронологического среза (chunk 2). Для каждого пользователя из тестовой выборки здесь представлена только одна пара (user_id, book_id), соответствующая его последнему прочитанному произведению. Важно: в test.csv включены только те пользователи, у которых есть достаточная история в train.csv.
books.csvМетаданные книг (автор, год публикации и т.д.).
users.csvМетаданные пользователей (пол, возраст).
genres.csvСправочник жанров.
book_genres.csvТаблица для связи книг и жанров (многие-ко-многим).
book_descriptions.csvТекстовые описания книг. Используется для извлечения признаков через TF-IDF и BERT.

1.2. Описание полей в метаданных

train.csv: Обучающая выборка

ПолеТипОписание
user_idint64Уникальный идентификатор пользователя.
book_idint64Уникальный идентификатор книги.
has_readint64Флаг взаимодействия: 1 - книга прочитана и оценена, 0 - книга добавлена в список "на прочтение" (не оценена).
ratingfloat64Оценка книги по шкале от 0 до 10. Для записей с has_read=0 значение всегда равно 0 и является заглушкой.
timestampstrВременная метка взаимодействия в формате YYYY-MM-DD HH:MM:SS.

Важно: В бейзлайне для обучения используются только записи с has_read=1 (книги, которым была поставлена оценка). Записи с has_read=0 исключаются из обучающей выборки. Однако вполне вероятно, что использование записей сhas_read=0 улучшит значение метрики при правильном использовании.

Принципы формирования данных

  1. Хронологическое разделение: train.csv представляет собой первый по времени чанк данных (chunk_1), а данные для test.csv и solution.csv взяты из следующего чанка (chunk_2). Это гарантирует отсутствие утечек из будущего.

  2. Фильтрация тестовой выборки: В test.csv попадают не все взаимодействия из chunk_2, а только специально отобранные:

    • Последнее взаимодействие: Для каждого пользователя берется только одно, самое последнее по времени взаимодействие с флагом has_read=1.
    • Фильтр "теплых" пользователей: В test.csv включаются только те пользователи, у которых есть история в train.csv. Критерий: не менее 1 прочитанной книги (has_read=1) ИЛИ не менее 3 книг в списке "на прочтение" (has_read=0) в файле train.csv. Это гарантирует, что у участников будут исходные данные для всех пользователей из теста.
  3. Очистка данных: Из исходного набора данных были удалены аномальные записи, у которых has_read=0, но при этом rating > 0.

books.csv: Информация о книгах

ПолеТипОписание
book_idint64Уникальный идентификатор книги (первичный ключ).
titlestrНазвание книги.
author_idint64Уникальный идентификатор автора.
author_namestrИмя автора.
publication_yearint64Год публикации.
languageint64Числовой код языка книги.
avg_ratingfloat64Средняя оценка книги (рассчитана по всем взаимодействиям).
publisherint64Числовой код издательства.

users.csv: Информация о пользователях

ПолеТипОписание
user_idint64Уникальный идентификатор пользователя (первичный ключ).
genderint64Пол пользователя (1 — мужской, 2 — женский).
ageint64Возраст пользователя.

genres.csv: Справочник жанров

ПолеТипОписание
genre_idint64Уникальный идентификатор жанра (первичный ключ).
genre_namestrНазвание жанра.
books_countint64Общее количество книг в данном жанре.

book_genres.csv: Связь книг и жанров

ПолеТипОписание
book_idint64Идентификатор книги (внешний ключ к books.csv).
genre_idint64Идентификатор жанра (внешний ключ к genres.csv).

book_descriptions.csv: Описания книг

ПолеТипОписание
book_idint64Идентификатор книги (внешний ключ к books.csv).
descriptionstrТекстовое описание книги. Может содержать пустые значения.

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

  • TF-IDF: создание разреженных признаков на основе термов и биграмм из описаний
  • BERT embeddings: получение плотных векторных представлений текста через предобученную модель DeepPavlov/rubert-base-cased

2. Формат файла решения (сабмита)

Файл с решением должен быть представлен в формате CSV с разделителем запятая (,). Файл может содержать заголовок, который будет проигнорирован при проверке.

Структура колонок: user_id,book_id,rating_predict

Требования:

  • user_id, book_id — идентификаторы, соответствующие парам из файла test.csv. Порядок строк в файле решения не важен.
  • rating_predict — предсказанное значение оценки. Вещественное число в диапазоне от 0 до 10. Округлять не требуется. Система автоматически ограничит значения диапазоном [0, 10].
  • Файл должен содержать предсказания для всех пар из test.csv.
  • Максимальный размер файла: 50 МБ.

Пример содержимого submission.csv:

user_id,book_id,rating_predict
150,25357,7.854
150,18,9.102
24995,136814,5.500

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