This is an implementation of Convolutional Neural Collaborative Filtering (ConvNCF) using R Keras. The model is described in the following paper and implemented by its authors using Tensorflow (see this GitHub repo).
Du, Xiaoyu, Xiangnan He, Fajie Yuan, Jinhui Tang, Zhiguang Qin, and Tat-Seng Chua. Modeling Embedding Dimension Correlations via Convolutional Neural Collaborative Filtering. ACM Transactions on Information Systems (TOIS) 37, no. 4 (2019): 1-22.
The model implementation is in ConvNCF.R
. This implementation
currently assumes binary feedback (1 = user liked movie, 0 otherwise).
An example using Yelp ratings is provided in yelp.R
.
The bulk of the code in this repo has been completed, however, before it is used for a recommender system application the following items need to be completed:
- Perform grid search to select regularization hyperparameters:
lambda_1
,lambda_2
,lambda_3
, andlambda_4
. See section 6.1 of the referenced paper for grid values. - Pretrain the weights of the model using traditional (non deep learning) recsys methods (see section 5.4 of the paper and authors’ python code).
- Use BPR objective function (starter code in
bpr_loss.R
). - Select negative examples on the fly for each epoch. See example R code here.