Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FinalProject_2025_Senigout_Etienne

This project explores several approaches to building a recommender system using the KuaiRec dataset.

Given the size and richness of the dataset, we chose to focus on predicting whether a user will like a video. According to the referenced paper, a video is considered "liked" when watch_ratio >= 2.

Models Explored

We experimented with several models, each representing a different paradigm in recommender systems:

  • ALS (ranking, code): A collaborative filtering technique that learns latent user and item factors from implicit feedback.

  • DNN (classification): A fully connected neural network that takes user and item features as input to predict whether a user will like a video.

  • Item2Vec (ranking, code): Inspired by Word2Vec, this model learns item embeddings from co-occurrences in users' interaction sequences. It captures item similarity in an unsupervised way and uses nearest-neighbor search to generate recommendations.

  • Sequence-aware model (classification): A sequence model that uses precomputed Item2Vec embeddings to capture the ordering of user interactions and model the temporal dynamics of user behavior.

  • Decision Tree Classifier (classification, code): A supervised learning model trained on item features to predict whether a user will like a video.

Additionally, the Stats notebook contains exploratory data analysis and useful statistics about the dataset.

Evaluation Metrics

The evaluation metrics vary depending on the type of model:

  • Ranking models (ALS, Item2Vec): Precision@K, Recall@K, MAP@K, NDCG@K, HitRate@K

  • Classification models (Decision Tree, DNN, Sequence-aware model): Accuracy, F1-score, AUC, Recall@K, HitRate@K

Setup

Run the setup script to prepare the dataset and environment:

./setup.sh

Then install the required dependencies:

pip install -r requirements.txt

Project Structure

.
├── README.md
├── data/                    # Generated by running setup.sh
├── requirements.txt         # List of required libraries
├── setup.sh                 # Script to download, unzip, and organize the dataset
└── src/
    ├── ALS.ipynb            # ALS implementation
    ├── DecisionTree.ipynb   # Per-user Decision Tree implementation
    ├── Item2vec.ipynb       # Item2Vec implementation based on Word2Vec
    ├── Stats.ipynb          # Dataset statistics and exploratory analysis
    └── src/                 # Utility code shared across notebooks

About

Recommender system research and experiments on the Kuairec dataset

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages