SDMF
This is our implementation for the paper:
Jun Wu, Fangyuan Luo, Yujia Zhang, Haishuai Wang. Semi-discrete Matrix Factorization. IEEE Intelligent System. 35(5): 73-83 (2020)
Please cite our paper if you use our codes. Thanks!
@article{DBLP:journals/expert/WuLZW20, author = {Jun Wu and Fangyuan Luo and Yujia Zhang and Haishuai Wang}, title = {Semi-discrete Matrix Factorization}, journal = {{IEEE} Intell. Syst.}, volume = {35}, number = {5}, pages = {73--83}, year = {2020}, url = {https://doi.org/10.1109/MIS.2020.3016944}, doi = {10.1109/MIS.2020.3016944}, timestamp = {Wed, 04 Nov 2020 08:43:08 +0100}, biburl = {https://dblp.org/rec/journals/expert/WuLZW20.bib}, bibsource = {dblp computer science bibliography, https://dblp.org} }
Environment Settings
python version: 3.7 numpy version: 1.16.4
Example to run the codes.
python SDMF.py --n_factors 8 --alpha1 10 --alpha2 10 --beta1 3 --beta2 5 --lamda 0.01 --cluster_num_u 50 --cluster_num_i 100
Dataset
We provide one processed dataset: MovieLens 100K and a part of the real-valued embeddings of users and items from Matrix Factorization. ML100K_train.txt
- train file
- each line is a training instance: userID, itemID, rating
ML100K_valid.txt
- valid file
- each line is a valid instance: userID, itemID, rating
ML100K_test.txt
- test file
- each line is a test instance: userID, itemID, rating
P_8_4.csv('8' refers to n_factors, '4' refers to the k value of NDCG@k)
- real-valued embedding of users from well-trained matrix factorization
- the first number of each line is the user ID, and the rest is user's real-valued embedding
Q_8_4.csv('8' refers to n_factors, '4' refers to the k value of NDCG@k)
- real-valued embedding of items from well-trained matrix factorization
- the first number of each line is the item ID, and the rest is item's real-valued embedding