If you are interested in building up your research on this work, please cite:
@inproceedings{recsys19,
author = {Ga Wu and Kai Luo and Scott Sanner and Harold Soh},
title = {Deep Language-based Critiquing for Recommender Systems},
booktitle = {Proceedings of the 13th International {ACM} Conference on Recommender Systems {(RecSys-19)}},
address = {Copenhagen, Denmark},
year = {2019}
}
- Critiquable and Explainable Variational Neural Collaborative Filtering (CE-VNCF)
- Critiquable and Explainable Neural Collaborative Filtering (CE-NCF)
- Explainable Variational Neural Collaborative Filtering (E-VNCF)
- Explainable Neural Collaborative Filtering (E-NCF)
- Variational Neural Collaborative Filtering (VNCF)
- Neural Collaborative Filtering (NCF)
- Amazon CDs&Vinyl,
- Beer Advocate,
We don't have rights to release the datasets. Please ask permission from Professor Julian McAuley.
Please refer to the preprocess
folder for preprocessing raw datasets steps.
Keyphrases we used are not necessarily the best. If you are interested in how we extracted those keyphrases, please refer to the preprocess
folder. If you are interested in what keyphrases we extracted, please refer to the data
folder.
Please refer to IPython Notebook Critiquing Demo.ipynb
for critiquing demo.
python general_main.py --data_dir data/CDsVinyl/ --epoch 300 --rank 200 --lambda 0.0001 --learning_rate 0.0001 --model CE-VNCF --topk 50 --disable_validation
Resplit data into three datasets: one for train, one for validation, one for test.
python dataset_split.py --data_dir data/CDsVinyl/
Please check out the cluster_bash
folder for all commands details. Below are only example commands.
python tune_parameters.py --data_dir data/CDsVinyl/ --save_path CDsVinyl/cevncf.csv --parameters config/CDsVinyl/cevncf.yml
python reproduce_general_results.py --data_dir data/CDsVinyl/ --tuning_result_path CDsVinyl --save_path CD_final/CD_final_result.csv
python tune_parameters.py --data_dir data/CDsVinyl/ --save_path CD_explanation_tuning/cevncf.csv --parameters config/CDsVinyl/cevncf.yml --explanation
Find the best hyperparameter set for each model from tuning results and put them in folder tables/explanation/beer/hyperparameters.csv
and tables/explanation/CDsVinyl/hyperparameters.csv
. Then run the following command.
python reproduce_explanation_results.py --data_dir data/CDsVinyl/ --load_path explanation/CDsVinyl/hyper_parameters.csv --save_path explanation/CDsVinyl/CD_final_explanation.csv
python reproduce_critiquing.py --data_dir data/beer/ --model_saved_path beer --load_path explanation/beer/hyper_parameters.csv --num_users_sampled 1000 --save_path beer_fmap/beer_Critiquing
We expect the reproduced results will have negligible difference due to values used in hyper-parameter sets.
For baselines we used, please refer to Noise Contrastive Estimation Projected Linear Recommender(NCE-PLRec).