/reviews4rec

[ SIGIR '20 ] How Useful are Reviews for Recommendation? A Critical Review and Potential Improvements

Primary LanguagePythonMIT LicenseMIT

Reviews4Rec

This repository contains many popular recommender algorithms which use reviews as additional data. The code accompanies the paper "How Useful are Reviews for Recommendation? A Critical Review and Potential Improvements" [ACM] [Public PDF] where we critique different existing review-based recommendation algorithms and questions their reported performance.

If you find any module of this repository helpful for your own research, please consider citing the below SIGIR'20 paper. Thanks!

@inproceedings{SachdevaMcAuley20,
  author = {Noveen Sachdeva and Julian McAuley},
  title = {How Useful are Reviews for Recommendation? A Critical Review and Potential Improvements},
  booktitle = {ACM Conference on Research and Development in Information Retrieval (SIGIR)},
  year = {2020}
}

Code Author: Noveen Sachdeva (ernoveen@gmail.com)


Environents


Setup

Data Setup

Once you've correctly setup the python environments and downloaded the dataset of your choice (Amazon: http://jmcauley.ucsd.edu/data/amazon/), the following steps need to be run:

$ ./prep_all_data.sh <HUMAN_FRIENDLY_DATASET_NAME> path/to/data/file.json

The above command will create the train/test/val splits along with some pre-processing scripts for running review-based methods like DeepCoNN/NARRE/TransNet much faster.

Setup for MPCN (Skip if not needed)

Since running MPCN requires a Python2.7 environment, you will need to modify Line#2 in the script run_MPCN_in_p2.sh to edit how to switch to the Python2.7 environment.


Run Instructions

  • Edit the hyper_params.py file which lists all config parameters, including what type of model to run. Currently supported models:
Model Type Model Name Paper Link
Non-textual bias_only (or) baseline
Non-textual MF_dot (or) NMF
Non-textual SVD (or) SVD++
Non-textual MF-dot
Non-textual MF MLP only version in NeuMF
Non-textual NeuMF LINK
Reviews as regularizer HFT LINK
Reviews as features deepconn (or) deepconn++ LINK
Reviews as features NARRE LINK
Reviews as features transnet (or) transnet++ LINK
Reviews as features MPCN LINK
  • Finally, type the following command to run:
$ CUDA_VISIBLE_DEVICES=<SOME_GPU_ID> python main.py

Contribution

As more and more algorithms using reviews for recommendation are published, please feel free to send a pull request with your algorithm and I'll be happy to merge it into this repository.

License


MIT