Need help with NCF?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

186 Stars 46 Forks 10 Commits 3 Opened issues


A pytorch implementation of He et al. "Neural Collaborative Filtering" at WWW'17

Services available


Need anything else?

Contributors list

# 208,348
10 commits


A pytorch GPU implementation of He et al. "Neural Collaborative Filtering" at WWW'17

Note that I use the two sub datasets provided by Xiangnan's repo.

I randomly utilized a factor number 32, MLP layers 3, epochs is 20, and posted the results in the original paper and this implementation here. I employed the exactly same settings with Xiangnan, including batch_size, learning rate, and all the initialization methods in Xiangnan's keras repo. From the results I observed, this repo can replicate the performance of the original NCF. Xiangnan's keras repo:


MovieLens [email protected] MovieLens [email protected] Pinterest [email protected] Pinterest [email protected]
MLP 0.692 0.425 0.868 0.542
GMF - - - -
NeuMF (without pre-training) 0.701 0.425 0.870 0.549
NeuMF (with pre-training) 0.726 0.445 0.879 0.555

This pytorch code:


MovieLens [email protected] MovieLens [email protected] Pinterest [email protected] Pinterest [email protected]
MLP 0.691 0.416 0.866 0.537
GMF 0.708 0.429 0.867 0.546
NeuMF (without pre-training) 0.701 0.424 0.867 0.544
NeuMF (with pre-training) 0.720 0.439 0.879 0.555

The requirements are as follows:

* python==3.6
* pandas==0.24.2
* numpy==1.16.2
* pytorch==1.0.1
* gensim==3.7.1
* tensorboardX==1.6 (mainly useful when you want to visulize the loss, see

Example to run:

python --batch_size=256 --lr=0.001 --factor_num=16

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.