Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Discrete Factorization Machines

This is our experiments codes for the paper:

Han Liu, Xiangnan He, Fuli Feng, Liqiang Nie, Rui Liu, Hanwang Zhang (2018). Discrete Factorization Machines for Fast Feature-based Recommendation. In Proceedings of IJCAI'18.

For any issue, please contact Han Liu:

Environment settings

MATLAB R2016a.

Example to run the codes.

Please run the 'test.m' file by inputting the command below in MATLAB command window, then the training and the testing of DFM will automatically proceed.

Run DFM:


During the training process, the value of loss function and objective function will be printed in MATLAB command window after each optimization iteration.

Output (training process):

DFM at bit 64 Iteration:20
loss value = 1109405916.9047 obj value = 1153073221.0511

After the testing process, the NDCG(NDCG@1 to NDCG@10) of DFM on the testing set will be printed in MATLAB command window.

Output (testing process):

The DFM ndcg@1 is 0.81726
The DFM ndcg@2 is 0.812
The DFM ndcg@3 is 0.81073
The DFM ndcg@4 is 0.81256
The DFM ndcg@5 is 0.81639
The DFM ndcg@6 is 0.82228
The DFM ndcg@7 is 0.83002
The DFM ndcg@8 is 0.83914
The DFM ndcg@9 is 0.84877
The DFM ndcg@10 is 0.85742


We provide two processed datasets: Yelp and Amazon.

train_yelp, train_amazon:

  • Train file.
  • Each Line is a training instance: userID\itemID\rating

test_yelp, test_amazon:

  • Test file.
  • Each Line is a testing instance: userID\itemID\rating

feature_yelp, feature_amazon:

  • Feature file.
  • Each Line is a item's content-based information vector.


Discrete Factorization Machines




No releases published


No packages published