Skip to content

Fro116/RecommenderSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RecommenderSystem

This is an anime and manga recommender system based off of MyAnimeList, AniList, Kitsu, and Anime-Planet user ratings. This codebase has been used to train a model on over 1.4 billion user-item interactions. See the notebook in notebooks/README.ipynb for usage instructions.

Details on the recommender system can be found by inspecting the source code at notebooks/TrainingAlphas. At a high level, there are four main steps:

  1. Pretraining a transformer model and a bag-of-items model on watch histories
  2. Finetuning the models on recent data to predict the following metrics:
    • The probability that you will watch a series
    • The rating that you will give to the series
    • The probability that you will finish a series after starting it
    • The probability that you will add the series to your plan-to-watch list
  3. Using a ranking model to combine these metrics into a relevance score
  4. Reranking the outputs to generate a list of recommendations

See BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, Deep Neural Networks for YouTube Recommendations, Position-Aware ListMLE: A Sequential Learning Process for Ranking, and Deep Learning for Recommender Systems: A Netflix Case Study for relevant prior work.

Once the system has been trained, run notebooks/Recommendations/start_servers.py to setup a local web app that you can connect to at localhost:5000. This will fetch the latest anime and manga lists for a given user, perform model inference, and display recommendations.

At some point I'll figure out web hosting works and spin up a public website, but until then the local app will have to do.