Package: reclearn
RecLearn简体中文|EnglishRecLearn (Recommender Learning)  which summarizes the contents of themasterbranch inRecommender System with TF2.0is a recommended learning framework based on Python and TensorFlow2.x for students and beginners.Of course, if you are more comfortable with the master branch, you can clone the entire package, run some algorithms in example, and also update and modify the content of model and layer. The implemented recommendation algorithms are classified according to two application stages in the industry:matching recommendation stage (Top-k Recmmendation)ranking  recommendeation stage (CTR predict model)Update04/23/2022: update all matching model.InstallationPackageRecLearn is on PyPI, so you can use pip to install it.pip install reclearndependent environment：python3.8+Tensorflow2.5-GPU+/Tensorflow2.5-CPU+sklearn0.23+LocalClone Reclearn to local:gitclone-breclearngit@github.com:ZiyaoGeng/RecLearn.gitQuick StartInexample, we have given a demo of each of the recommended models.Matching1. Divide the dataset.Set the path of the raw dataset:file_path='data/ml-1m/ratings.dat'Please divide the current dataset into training dataset, validation dataset and test dataset. If you usemovielens-1m,Amazon-Beauty,Amazon-GamesandSTEAM, you can call methoddata/datasets/*of RecLearn directly:train_path,val_path,test_path,meta_path=ml.split_seq_data(file_path=file_path)meta_pathindicates the path of the metafile, which stores the maximum number of user and item indexes.2. Load the dataset.Complete the loading of training dataset, validation dataset and test dataset, and generate several negative samples (random sampling) for each positive sample. The format of data is dictionary:data={'pos_item':,'neg_item':,['user':,'click_seq':,...]}If you're building a sequential recommendation model, you need to introduce click sequences. Reclearn provides methods for loading the data for the above four datasets:# general recommendation modeltrain_data=ml.load_data(train_path,neg_num,max_item_num)# sequence recommendation model, and use the user feature.train_data=ml.load_seq_data(train_path,"train",seq_len,neg_num,max_item_num,contain_user=True)3. Set hyper-parameters.The model needs to specify the required hyperparameters. Now, we takeBPRmodel as an example:model_params={'user_num':max_user_num+1,'item_num':max_item_num+1,'embed_dim':FLAGS.embed_dim,'use_l2norm':FLAGS.use_l2norm,'embed_reg':FLAGS.embed_reg}4. Build and compile the model.Select or build the model you need and compile it. Take 'BPR' as an example:model=BPR(**model_params)model.compile(optimizer=Adam(learning_rate=FLAGS.learning_rate))If you have problems with the structure of the model, you can call the summary method after compilation to print it out:model.summary()5. Learn the model and predict test dataset.forepochinrange(1,epochs+1):t1=time()model.fit(x=train_data,epochs=1,validation_data=val_data,batch_size=batch_size)t2=time()eval_dict=eval_pos_neg(model,test_data,['hr','mrr','ndcg'],k,batch_size)print('Iteration%dFit [%.1fs], Evaluate [%.1fs]: HR =%.4f, MRR =%.4f, NDCG =%.4f'%(epoch,t2-t1,time()-t2,eval_dict['hr'],eval_dict['mrr'],eval_dict['ndcg']))RankingWaiting......ResultsThe experimental environment designed by Reclearn is different from that of some papers, so there may be some deviation in the results. Please refer toExperiementfor details.MatchingModelml-1mBeautySTEAMHR@10MRR@10NDCG@10HR@10MRR@10NDCG@10HR@10MRR@10NDCG@10BPR0.57680.23920.30160.37080.21080.24850.77280.42200.5054NCF0.58340.22190.30600.54480.28310.34510.77680.42730.5103DSSM0.54980.21480.2929------YoutubeDNN0.67370.34140.4201------GRU4Rec0.79690.46980.54830.52110.27240.33120.85010.54860.6209Caser0.79160.44500.52800.54870.28840.35010.82750.50640.5832SASRec0.81030.48120.56050.52300.27810.33550.86060.56690.6374AttRec0.78730.45780.53630.49950.26950.3229---FISSA0.81060.49530.57130.54310.28510.34620.86350.56820.6391RankingModel500w(Criteo)CriteoLog LossAUCLog LossAUCFM0.47650.77830.47620.7875FFM----WDL0.46840.78220.46920.7930Deep Crossing0.46700.78260.46930.7935PNN-0.7847--DCN-0.78230.46910.7929NFM0.47730.77620.47230.7889AFM0.48190.78080.46920.7871DeepFM-0.78280.46500.8007xDeepFM0.46900.78390.46960.7919Model List1. Matching StagePaper|ModelPublishedAuthorBPR: Bayesian Personalized Ranking from Implicit Feedback|MF-BPRUAI, 2009Steﬀen RendleNeural network-based Collaborative Filtering|NCFWWW, 2017Xiangnan HeLearning Deep Structured Semantic Models for Web Search using Clickthrough Data|DSSMCIKM, 2013Po-Sen HuangDeep Neural Networks for YouTube Recommendations|YoutubeDNNRecSys, 2016Paul CovingtonSession-based Recommendations with Recurrent Neural Networks|GUR4RecICLR, 2016Balázs HidasiSelf-Attentive Sequential Recommendation|SASRecICDM, 2018UCSDPersonalized Top-N Sequential Recommendation via Convolutional Sequence Embedding|CaserWSDM, 2018Jiaxi TangNext Item Recommendation with Self-Attentive Metric Learning|AttRecAAAAI, 2019Shuai ZhangFISSA: Fusing Item Similarity Models with Self-Attention Networks for Sequential Recommendation|FISSARecSys, 2020Jing Lin2. Ranking StagePaper｜ModelPublishedAuthorFactorization Machines|FMICDM, 2010Steffen RendleField-aware Factorization Machines for CTR Prediction｜FFMRecSys, 2016Criteo ResearchWide & Deep Learning for Recommender Systems｜WDLDLRS, 2016Google Inc.Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features|Deep CrossingKDD, 2016Microsoft ResearchProduct-based Neural Networks for User Response Prediction|PNNICDM, 2016Shanghai Jiao Tong UniversityDeep & Cross Network for Ad Click Predictions｜DCNADKDD, 2017Stanford University｜Google Inc.Neural Factorization Machines for Sparse Predictive Analytics|NFMSIGIR, 2017Xiangnan HeAttentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks|AFMIJCAI, 2017Zhejiang University|National University of SingaporeDeepFM: A Factorization-Machine based Neural Network for CTR Prediction|DeepFMIJCAI, 2017Harbin Institute of Technology|Noah’s Ark Research Lab, HuaweixDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems|xDeepFMKDD, 2018University of Science and Technology of ChinaDeep Interest Network for Click-Through Rate Prediction|DINKDD, 2018Alibaba GroupDiscussionIf you have any suggestions or questions about the project, you can leave a comment onIssue.wechat：