python 推荐系统框架_RecQ: 推荐系统的Python框架(基于TensorFlow)

RecQ

Introduction

RecQ is a Python library for recommender systems (Python 2.7.x) in which a number of the state-of-the-art recommendation models are implemented. To run RecQ easily (no need to setup packages used in RecQ one by one), the leading open data science platform Anaconda is strongly recommended. It integrates Python interpreter, common scientific computing libraries (such as Numpy, Pandas, and Matplotlib), and package manager. All of them make it a perfect tool for data science researcher. Besides, GPU based deep models are also available (TensorFlow is required).

Latest News

17/09/2019 - NGCF proposed in SIGIR'19 has been added.

13/08/2019 - RSGAN proposed in ICDM'19 has been added.

09/08/2019 - Our paper is accepted as full research paper by ICDM'19.

02/20/2019 - IRGAN proposed in SIGIR'17 has been added (tuning...)

02/12/2019 - CFGAN proposed in CIKM'18 has been added.

02/04/2019 - NeuMF proposed in WWW'17 has been added.

10/09/2018 - An Adversarial training based Model: APR has been implemented.

10/02/2018 - Two deep models: DMF CDAE have been implemented.

07/12/2018 - Algorithms supported by TensorFlow: BasicMF, PMF, SVD, EE (Implementing...)

Architecture of RecQ

Features

Cross-platform: as a Python software, RecQ can be easily deployed and executed in any platforms, including MS Windows, Linux and Mac OS.

Fast execution: RecQ is based on the fast scientific computing libraries such as Numpy and some light common data structures, which make it run much faster than other libraries based on Python.

Easy configuration: RecQ configs recommenders using a configuration file.

Easy expansion: RecQ provides a set of well-designed recommendation interfaces by which new algorithms can be easily implemented.

Data visualization: RecQ can help visualize the input dataset without running any algorithm.

How to Run it

1.Configure the **xx.conf** file in the directory named config. (xx is the name of the algorithm you want to run)

2.Run the **main.py** in the project, and then input following the prompt.

How to Configure it

Essential Options

Entry

Example

Description

ratings

D:/MovieLens/100K.txt

Set the path to input dataset. Format: each row separated by empty, tab or comma symbol.

social

D:/MovieLens/trusts.txt

Set the path to input social dataset. Format: each row separated by empty, tab or comma symbol.

ratings.setup

-columns 0 1 2

-columns: (user, item, rating) columns of rating data are used; -header: to skip the first head line when reading data

social.setup

-columns 0 1 2

-columns: (trustor, trustee, weight) columns of social data are used; -header: to skip the first head line when reading data

recommender

UserKNN/ItemKNN/SlopeOne/etc.

Set the recommender to use.

evaluation.setup

-testSet ../dataset/testset.txt

Main option: -testSet, -ap, -cv

-testSet path/to/test/file (need to specify the test set manually)

-ap ratio (ap means that the ratings are automatically partitioned into training set and test set, the number is the ratio of test set. e.g. -ap 0.2)

-cv k (-cv means cross validation, k is the number of the fold. e.g. -cv 5)

Secondary option:-b, -p, -cold

-b val (binarizing the rating values. Ratings equal or greater than val will be changed into 1, and ratings lower than val will be changed into 0. e.g. -b 3.0)

-p (if this option is added, the cross validation wll be executed parallelly, otherwise executed one by one)

-tf (model training would be conducted on TensorFlow if TensorFlow has been installed)

-cold threshold (evaluation on cold-start users, users in training set with ratings more than threshold will be removed from the test set)

item.ranking

off -topN -1

Main option: whether to do item ranking

-topN N1,N2,N3...: the length of the recommendation list. *RecQ can generate multiple evaluation results for different N at the same time

output.setup

on -dir ./Results/

Main option: whether to output recommendation results

-dir path: the directory path of output results.

Memory-based Options

similarity

pcc/cos

Set the similarity method to use. Options: PCC, COS;

num.shrinkage

25

Set the shrinkage parameter to devalue similarity value. -1: to disable simialrity shrinkage.

num.neighbors

30

Set the number of neighbors used for KNN-based algorithms such as UserKNN, ItemKNN.

Model-based Options

num.factors

5/10/20/number

Set the number of latent factors

num.max.iter

100/200/number

Set the maximum number of iterations for iterative recommendation algorithms.

learnRate

-init 0.01 -max 1

-init initial learning rate for iterative recommendation algorithms;

-max: maximum learning rate (default 1);

reg.lambda

-u 0.05 -i 0.05 -b 0.1 -s 0.1

-u: user regularizaiton; -i: item regularization; -b: bias regularizaiton; -s: social regularization

How to extend it

1.Make your new algorithm generalize the proper base class.

2.Rewrite some of the following functions as needed.           - readConfiguration()

- printAlgorConfig()

- initModel()

- buildModel()

- saveModel()

- loadModel()

- predict()

Algorithms Implemented

Note:We use SGD to obtain the local minimum. So, there have some differences between the original papers and the code in terms of fomula presentation. If you have problems in understanding the code, please open an issue to ask for help. We can guarantee that all the implementations are carefully reviewed and tested.

Any suggestions and criticism are welcomed. We will make efforts to improve RecQ.

Rating prediction

Paper

SlopeOne

Lemire and Maclachlan, Slope One Predictors for Online Rating-Based Collaborative Filtering, SDM 2005.

PMF

Salakhutdinov and Mnih, Probabilistic Matrix Factorization, NIPS 2008.

SoRec

Ma et al., SoRec: Social Recommendation Using Probabilistic Matrix Factorization, SIGIR 2008.

SVD++

Koren, Factorization meets the neighborhood: a multifaceted collaborative filtering model, SIGKDD 2008.

RSTE

Ma et al., Learning to Recommend with Social Trust Ensemble, SIGIR 2009.

SVD

Y. Koren, Collaborative Filtering with Temporal Dynamics, SIGKDD 2009.

SocialMF

Jamali and Ester, A Matrix Factorization Technique with Trust Propagation for Recommendation in Social Networks, RecSys 2010.

EE

Khoshneshin et al., Collaborative Filtering via Euclidean Embedding, RecSys2010.

SoReg

Ma et al., Recommender systems with social regularization, WSDM 2011.

LOCABAL

Tang, Jiliang, et al. Exploiting local and global social context for recommendation, AAAI 2013.

SREE

Li et al., Social Recommendation Using Euclidean embedding, IJCNN 2017.

CUNE-MF

Zhang et al., Collaborative User Network Embedding for Social Recommender Systems, SDM 2017.

SocialFD

Yu et al., A Social Recommender Based on Factorization and Distance Metric Learning, IEEE Access 2017.

Item Ranking

Paper

BPR

Rendle et al., BPR: Bayesian Personalized Ranking from Implicit Feedback, UAI 2009.

WRMF

Yifan Hu et al.Collaborative Filtering for Implicit Feedback Datasets, KDD 2009.

SBPR

Zhao et al., Leveraing Social Connections to Improve Personalized Ranking for Collaborative Filtering, CIKM 2014

ExpoMF

Liang et al., Modeling User Exposure in Recommendation, WWW 2016.

CoFactor

Liang et al., Factorization Meets the Item Embedding: Regularizing Matrix Factorization with Item Co-occurrence, RecSys2016.

TBPR

Wang et al. Social Recommendation with Strong and Weak Ties, CIKM 2016.

CDAE

Wu et al., Collaborative Denoising Auto-Encoders for Top-N Recommender Systems, WSDM 2016.

DMF

Xue et al., Deep Matrix Factorization Models for Recommender Systems, IJCAI 2017.

NeuMF

He et al. Neural Collaborative Filtering, WWW 2017.

CUNE-BPR

Zhang et al., Collaborative User Network Embedding for Social Recommender Systems, SDM 2017.

IRGAN

Wang et al., IRGAN: A Minimax Game for Unifying Generative and Discriminative Information Retrieval Models, SIGIR 2017.

SERec

Wang et al., Collaborative Filtering with Social Exposure: A Modular Approach to Social Recommendation, AAAI 2018.

APR

He et al., Adversarial Personalized Ranking for Recommendation, SIGIR 2018.

IF-BPR

Yu et al. Adaptive Implicit Friends Identification over Heterogeneous Network for Social Recommendation, CIKM 2018.

CFGAN

Chae et al. CFGAN: A Generic Collaborative Filtering Framework based on Generative Adversarial Networks, CIKM 2018.

NGCF

Wang et al. Neural Graph Collaborative Filtering, SIGIR 2019.

RSGAN

Yu et al. Generating Reliable Friends via Adversarial Learning to Improve Social Recommendation, ICDM 2019.

Category

Generic Recommenders

UserKNN

ItemKNN

BasicMF

SlopeOne

SVD

PMF

SVD++

EE

BPR

WRMF

ExpoMF

Social Recommenders

RSTE

SoRec

SoReg

SocialMF

SBPR

SREE

LOCABAL

SocialFD

TBPR

SERec

Network Embedding based Recommenders

CoFactor

CUNE-MF

CUNE-BPR

IF-BPR

Deep Recommenders

APR

CDAE

DMF

NeuMF

CFGAN

IRGAN

Baselines

UserMean

ItemMean

MostPopular

Rand

Related Datasets

Data Set

Basic Meta

User Context

Users

Items

Ratings (Scale)

Density

Users

Links (Type)

7,375

105,114

284,086

[1, 5]

0.0365%

7,375

111,781

Trust

40,163

139,738

664,824

[1, 5]

0.0118%

49,289

487,183

Trust

2,848

39,586

894,887

[1, 5]

0.794%

2,848

35,770

Trust

1,892

17,632

92,834

implicit

0.27%

1,892

25,434

Trust

Reference

[1]. Tang, J., Gao, H., Liu, H.: mtrust:discerning multi-faceted trust in a connected world. In: International Conference on Web Search and Web Data Mining, WSDM 2012, Seattle, Wa, Usa, February. pp. 93–102 (2012)

[2]. Massa, P., Avesani, P.: Trust-aware recommender systems. In: Proceedings of the 2007 ACM conference on Recommender systems. pp. 17–24. ACM (2007)

[3]. G. Zhao, X. Qian, and X. Xie, “User-service rating prediction by exploring social users’ rating behaviors,” IEEE Transactions on Multimedia, vol. 18, no. 3, pp. 496–506, 2016.

[4] Iván Cantador, Peter Brusilovsky, and Tsvi Kuflik. 2011. 2nd Workshop on Information Heterogeneity and Fusion in Recom- mender Systems (HetRec 2011). In Proceedings of the 5th ACM conference on Recommender systems (RecSys 2011). ACM, New York, NY, USA

Thanks If you our project is helpful to you, please cite one of these papers.

@inproceedings{yu2018adaptive,

title={Adaptive implicit friends identification over heterogeneous network for social recommendation},

author={Yu, Junliang and Gao, Min and Li, Jundong and Yin, Hongzhi and Liu, Huan},

booktitle={Proceedings of the 27th ACM International Conference on Information and Knowledge Management},

pages={357--366},

year={2018},

organization={ACM}

}

@article{yu2019generating,

title={Generating Reliable Friends via Adversarial Training to Improve Social Recommendation},

author={Yu, Junliang and Gao, Min and Yin, Hongzhi and Li, Jundong and Gao, Chongming and Wang, Qinyong},

journal={arXiv preprint arXiv:1909.03529},

year={2019}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值