All Projects → THUDM → Comirec

THUDM / Comirec

Source code and dataset for KDD 2020 paper "Controllable Multi-Interest Framework for Recommendation"

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Comirec

Awesome Causality Algorithms
An index of algorithms for learning causality with data
Stars: ✭ 1,192 (+869.11%)
Mutual labels:  recommender-system
Enmf
This is our implementation of ENMF: Efficient Neural Matrix Factorization (TOIS. 38, 2020). This also provides a fair evaluation of existing state-of-the-art recommendation models.
Stars: ✭ 96 (-21.95%)
Mutual labels:  recommender-system
Tagrec
Towards A Standardized Tag Recommender Benchmarking Framework
Stars: ✭ 113 (-8.13%)
Mutual labels:  recommender-system
Expo Mf
Exposure Matrix Factorization: modeling user exposure in recommendation
Stars: ✭ 81 (-34.15%)
Mutual labels:  recommender-system
Drl Rec
Deep reinforcement learning for recommendation system
Stars: ✭ 92 (-25.2%)
Mutual labels:  recommender-system
Recsys
计算广告/推荐系统/机器学习(Machine Learning)/点击率(CTR)/转化率(CVR)预估/点击率预估
Stars: ✭ 1,350 (+997.56%)
Mutual labels:  recommender-system
Rankfm
Factorization Machines for Recommendation and Ranking Problems with Implicit Feedback Data
Stars: ✭ 71 (-42.28%)
Mutual labels:  recommender-system
Rectorch
rectorch is a pytorch-based framework for state-of-the-art top-N recommendation
Stars: ✭ 121 (-1.63%)
Mutual labels:  recommender-system
Ai Study
人工智能学习资料超全整理,包含机器学习基础ML、深度学习基础DL、计算机视觉CV、自然语言处理NLP、推荐系统、语音识别、图神经网路、算法工程师面试题
Stars: ✭ 93 (-24.39%)
Mutual labels:  recommender-system
Seldon Server
Machine Learning Platform and Recommendation Engine built on Kubernetes
Stars: ✭ 1,435 (+1066.67%)
Mutual labels:  recommender-system
Kgpolicy
Reinforced Negative Sampling over Knowledge Graph for Recommendation, WWW2020
Stars: ✭ 83 (-32.52%)
Mutual labels:  recommender-system
Movie Recommender System
Basic Movie Recommendation Web Application using user-item collaborative filtering.
Stars: ✭ 85 (-30.89%)
Mutual labels:  recommender-system
Carskit
Java-Based Context-aware Recommendation Library
Stars: ✭ 98 (-20.33%)
Mutual labels:  recommender-system
Dream
rnn based model for recommendations
Stars: ✭ 77 (-37.4%)
Mutual labels:  recommender-system
Fmg
KDD17_FMG
Stars: ✭ 116 (-5.69%)
Mutual labels:  recommender-system
Recosystem
Recommender System Using Parallel Matrix Factorization
Stars: ✭ 74 (-39.84%)
Mutual labels:  recommender-system
Flurs
🌊 FluRS: A Python library for streaming recommendation algorithms
Stars: ✭ 97 (-21.14%)
Mutual labels:  recommender-system
Sigir2020 peterrec
Parameter-Efficient Transfer from Sequential Behaviors for User Modeling and Recommendation
Stars: ✭ 121 (-1.63%)
Mutual labels:  recommender-system
Kddcup 2020
6th Solution for 2020-KDDCUP Debiasing Challenge
Stars: ✭ 118 (-4.07%)
Mutual labels:  recommender-system
Movielens Recommender System Javascript
🍃 Recommender System in JavaScript for the MovieLens Database
Stars: ✭ 105 (-14.63%)
Mutual labels:  recommender-system

Controllable Multi-Interest Framework for Recommendation

Original implementation for paper Controllable Multi-Interest Framework for Recommendation.

Yukuo Cen, Jianwei Zhang, Xu Zou, Chang Zhou, Hongxia Yang, Jie Tang

Accepted to KDD 2020 ADS Track!

Prerequisites

  • Python 3
  • TensorFlow-GPU >= 1.8 (< 2.0)
  • Faiss-GPU

Getting Started

Installation

Dataset

Training

Training on the existing datasets

You can use python src/train.py --dataset {dataset_name} --model_type {model_name} to train a specific model on a dataset. Other hyperparameters can be found in the code. (If you share the server with others or you want to use the specific GPU(s), you may need to set CUDA_VISIBLE_DEVICES.)

For example, you can use python src/train.py --dataset book --model_type ComiRec-SA to train ComiRec-SA model on Book dataset.

When training a ComiRec-DR model, you should set --learning_rate 0.005.

Training on your own datasets

If you want to train models on your own dataset, you should prepare the following three(or four) files:

  • train/valid/test file: Each line represents an interaction, which contains three numbers <user_id>,<item_id>,<time_stamp>.
  • category file (optional): Each line contains two numbers <item_id>,<cate_id> used for computing diversity..

Common Issues

The computation of NDCG score.
I'm so sorry that the computation of NDCG score is not consistent with the original definition, as mentioned in the issue #6. I have updated the computation of NDCG score in the dev branch according to the original definition. Therefore, I personally recommend to use the results of recall and hit rate only.

If you have ANY difficulties to get things working in the above steps, feel free to open an issue. You can expect a reply within 24 hours.

Acknowledgement

The structure of our code is based on MIMN.

Cite

Please cite our paper if you find this code useful for your research:

@inproceedings{cen2020controllable,
  title = {Controllable Multi-Interest Framework for Recommendation},
  author = {Cen, Yukuo and Zhang, Jianwei and Zou, Xu and Zhou, Chang and Yang, Hongxia and Tang, Jie},
  booktitle = {Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining},
  year = {2020},
  pages = {2942–2951},
  publisher = {ACM},
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].