/learning-to-rank

LTR with gradient boosting

Primary LanguagePythonMIT LicenseMIT

License: MIT Code style: black

Learning-to-rank

This Repository built a lambdarank algorithm for anime recommendations with gradient boosting algorithm. The code style has been configured to use Black, and the maximum line length has been set to 120 characters.

Dataset

I used Anime Recommendation LTR in the Kaggle dataset.

Requirements

By default, hydra-core==1.3.0 was added to the requirements given by the competition. For pytorch, refer to the link at https://pytorch.org/get-started/previous-versions/ and reinstall it with the right version of pytorch for your environment.

You can install a library where you can run the file by typing:

$ conda env create --file environment.yaml

Run code

CatBoost parameter Setting

params:
  task_type: CPU
  loss_function: StochasticRank:metric=NDCG
  eval_metric: NDCG
  learning_rate: 0.05
  l2_leaf_reg: 0.02
  bagging_temperature: 3
  min_data_in_leaf: 57
  od_type: Iter
  iterations: 20000
  allow_writing_files: False

Running the learning code shell allows learning

$ sh scripts/run.sh

Benchmark

result

Results

LightGBM Recommendation

Anime Name Already Liked Predicted Score
Ningen Doubutsuen Majo no Takkyuubin 3.062
Bakugan Battle Brawlers Tenkuu no Shiro Laputa 2.981
Chain Chronicle: Haecceitas no Hikari Pumpkin Scissors 2.981
Kure-nai Omoide Poroporo 2.821
Break Blade Picture Drama Heisei Tanuki Gassen Ponpoko 2.819
Coral no Tanken Tonari no Totoro 2.805
None Zetsuai 1989 2.795
Rokujouma no Shinryakusha!? (TV) Monster 2.795
Platonic Chain: Web xxxHOLiC Kei 2.793
Seikimatsu Occult Gakuin Specials Shounen Onmyouji 2.793

CatBoost Recommendation

Anime Name Already Liked Predicted Score
Gad Guard Majo no Takkyuubin 4.797
Fuyu no Hi Tenkuu no Shiro Laputa 4.566
Hatsukoi Limited.: Gentei Shoujo Pumpkin Scissors 4.566
Slam Dunk Movie Omoide Poroporo 4.541
Koukaku Kidoutai Nyuumon Arise Heisei Tanuki Gassen Ponpoko 4.522
Joshiochi!: 2-kai kara Onnanoko ga... Futtekita!? Tonari no Totoro 4.266
Ai Yori Aoshi Zetsuai 1989 4.266
Shin Mitsubachi Maya no Bouken Monster 4.141
Denshinbashira no Okaasan xxxHOLiC Kei 4.141
Schoolgirl Strikers: Animation Channel Shounen Onmyouji 4.126

What not worked

  • Stochastic Rank method took a lot of training time.

Reference