Skip to content

The repository contains 3rd place solution of VK-Cup 2022 qualification task

Notifications You must be signed in to change notification settings

Alexuserx/VK-Cup

Repository files navigation

VK-Cup

The repository contains 3rd place solution of VK-Cup 2022 qualification task

Порядок выполнения ноутбуков в репозитории:

  • train_val_test_split.ipynb - разбиение исходного датасета в хронологическом порядке
  • recommenders.ipynb - отбор кандидатов с помощью различных методов
  • merge_candidates.ipynb - скрипты для объединения кандидатов и признаков в один dataframe
  • features.ipynb - построение признаков
  • train_lgb.ipynb - обучение lightgbm ранкера
  • make_prediction_by_chanks.ipynb - финальное предсказание на тесте

Отбор кандидатов:

  • Alternative Least Squares (ALS) - 300 кандидатов
  • BM25 Recommender - 200 кандидатов
  • Наиболее близкие по содержанию (на основании эмбеддингов содержимого, предоставленных организаторами) к 2-3 наиболее релевантным статьям каждого пользователя (релевантность рассчитывалась как timespent / rank, где rank - ранг статьи в истории просмотра пользователя; у последней просмотренной пользователем статьи rank = 1) - 200 кандидатов
  • Наиболее популярные статьи за последнее время - 200 кандидатов

Вычисление признаков

  • скор и ранг, полученные с помощью каждого метода отбора кандидатов
  • степень похожести кандидатов на статьи в истории просмотра пользователя (здесь рассматривались статистики min, max, mean и std). Степень похожести двух элементов рассчитывалась как скалярное произведение для BM25 и как косинусное расстояние для ALS и эмбеддингов содержимого.
  • информация о статьях (item), источниках (source) и пользователях (user):
    • средний timespent на статью за последние 1, 10, 50 и 100 просмотров пользователей
    • средний timespent на источник за последние 1, 10, 50 и 100 просмотров пользователей
    • популярность статьи внутри источника - (timespent на статью) / (timespent на весь источник) и (количество просмотров на статью) / (количество просмотров на весь источник)
    • среднее время, потраченное пользователем на статью
    • среднее время, потраченное пользователем на источник
    • количество просмотренных пользователем источников
    • и др.

Ранжирование кандидатов

Для обучения ранкера train разбивался в хронологическом порядке для каждого пользователя - 20% последних просмотренных статей использовались как таргеты и 80% в качестве тренировочной выборки, на основании которой производился отбор кандидатов и вычисление признаков.

Результаты

  • Только ALS (512 факторов, ~75 итераций) на всём train - 0.087
  • 400 кандидатов, полученных с помощью ALS, и минимальное количество признаков, включающих информацию о популярности статей и источников, + ранжирование с помощью lightgbm - 0.131
  • Полный пайплайн, описанный ранее - 0.146

About

The repository contains 3rd place solution of VK-Cup 2022 qualification task

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published