
人工智能机器学习深度学习【免费下载链接】recommendersBest Practices on Recommendation Systems项目地址https://gitcode.com/gh_mirrors/re/recommenders点击查看免费下载导读本篇文章围绕 examples/00_quick_start 目录展开它是 recommenders 项目Best Practices on Recommendation Systems为开发者准备的开箱即跑实验场目录下的 Jupyter 笔记本演示了 ALS、SAR、NCF、DKN、xDeepFM 等经典与前沿算法覆盖数据准备、模型构建、模型评估的完整推荐管线。读完本文你将掌握 Quick Start 目录的算法/数据集/运行环境矩阵理解端到端管线的标准四步范式并借助仓库源码了解 SAR 等算法的底层实现与评估指标的调用方式从而能按自己的场景快速选择笔记本、跑通第一个推荐模型。一、Quick Start 目录是什么Quick Start 目录的定位非常明确为不同算法提供可快速演示的笔记本帮助研究者和开发者以最小成本了解每种算法的用法。正如 Quick Start README 所述这些笔记本展示了如何利用工具函数库 recommenders仓库根目录下即为 recommenders 包搭建一条端到端推荐管线包含三个环节数据准备data preparation下载并加载标准数据集MovieLens、MIND、Criteo、Amazon 等执行训练/测试切分模型构建model building实例化算法对象并完成训练产出 top-K 推荐模型评估model evaluation用 MAP、nDCG、Precision、Recall、RMSE 等离线指标量化推荐质量。作为项目的模型任务入口见仓库根目录 README.md 中 Prepare Data → Model → Evaluate → Model Select and Optimize → Operationalize 的五步主线Quick Start 是后续 深潜教程、评估、调参与优化 以及 生产化 的起点。二、笔记本矩阵算法、数据集、环境一览Quick Start README 的核心是一张覆盖 19 种算法/场景的对照表完整继承如下并补充了笔记本在本仓库中的精确路径算法/场景笔记本数据集运行环境说明ALSalsMovieLensPySpark利用交替最小二乘ALS在 PySpark 环境中预测电影评分DKNdknMINDPython CPU、GPU基于知识图谱的深度知识感知网络DKN[2]用于新闻推荐TensorFlowembdotbiasembdotbiasMovieLensPython CPU、GPU嵌入点乘偏置推荐器预测电影评分PyTorchLightGBMlightgbmCriteoPython CPU用 LightGBM 提升树预测用户是否点击电商广告LSTURlsturMINDPython CPU、GPU长短期用户表征新闻推荐LSTUR[9]TensorFlowNAMLnamlMINDPython CPU、GPU基于注意力多视图学习的新闻推荐NAML[7]利用新闻栏目、子栏目、标题和正文TensorFlowNCFncfMovieLensPython CPU、GPU神经协同过滤NCF[1] 预测电影评分TensorFlowNPAnpaMINDPython CPU、GPU个性化注意力新闻推荐NPA[10]TensorFlowNRMSnrmsMINDPython CPU、GPU多头自注意力新闻推荐NRMS[8]TensorFlowRBMrbmMovieLensPython CPU、GPU受限玻尔兹曼机RBM[4] 预测电影评分TensorFlowRLRMCrlrmcMovieLensPython CPU黎曼低秩矩阵补全RLRMC[6] 预测电影评分SARsarMovieLensPython CPU基于相似度的 SAR 算法预测电影评分SAR AzureMLsar_azuremlMovieLensPython CPU借助 Azure 机器学习服务在云端管理数据、切换到 GPU 机器并监控训练运行内容以 sar quickstart notebook 为基础SAR AzureML Designersar_azureml_designerMovieLensPython CPU在 AzureML Designer 上实现 SAR 的示例A2SVD / Caser / GRU / NextItNet / SLi-Recsequential_recsys_amazondatasetAmazonPython CPU、GPU序列推荐系列A2SVD [11]、Caser [12]、GRU [13]、NextItNet [14]、SLi-Rec [11]预测用户短期内将交互的电影集合Wide-and-Deepwide-and-deepMovieLensPython CPU、GPUWide-and-Deep 模型 [5] 预测电影评分TensorFlowxDeepFMxdeepfmCriteoPython CPU、GPU极深因子分解机xDeepFM[3] 学习低阶与高阶特征交互用于 CTR 预测TensorFlow需要说明的几点同一笔记本可承载多种算法序列推荐A2SVD、Caser、GRU、NextItNet、SLi-Rec共用一个 sequential_recsys_amazondataset.ipynb通过切换模型配置演示不同算法对应实现位于 recommenders/models/deeprec/models/sequential 目录asvd.py、caser.py、gru.py、nextitnet.py、sli_rec.py。新闻推荐集中使用 MIND 数据集DKN、NAML、NRMS、NPA、LSTUR 五个算法均以微软开源的 MIND 新闻数据集为实验对象由 recommenders/datasets/mind.py 提供下载与加载能力。CTR 场景聚焦 CriteoLightGBM 与 xDeepFM 均使用 Criteo 广告点击数据集recommenders/datasets/criteo.py。三、端到端管线的标准范式以 SAR 笔记本为例所有 Quick Start 笔记本都遵循 README 所述的三环节管线。我们以 sar_movielens.ipynb 为例拆解其实际代码流程这同时也是理解其他笔记本结构的模板。3.1 全局设置与导入笔记本首先统一导入工具函数其中核心模块如下与仓库 recommenders 包的目录结构一一对应recommenders.datasets.movielensMovieLens 数据集加载recommenders.datasets.python_splitters.python_stratified_split分层切分工具recommenders.models.sar.SARSAR 单节点实现sar_singlenode.pyrecommenders.evaluation.python_evaluationMAP、nDCG、Precision、Recall、RMSE、MAE、Logloss、R²、Explained Variance 等评估函数recommenders.utils.timer.Timer与recommenders.utils.python_utils.binarize计时与二值化辅助工具。3.2 数据准备加载与切分TOP_K 10 MOVIELENS_DATA_SIZE 100k # 可选 100k / 1m / 10m / 20m data movielens.load_pandas_df(sizeMOVIELENS_DATA_SIZE) data[rating] data[rating].astype(np.float32) # 转为 32 位浮点以降低内存占用 train, test python_stratified_split( data, ratio0.75, col_useruserID, col_itemitemID, seed42 )要点movielens.load_pandas_df支持 100k、1m、10m、20m 四种规模的 MovieLens 数据返回标准的userID / itemID / rating / timestamp四列 DataFrame75/25 的分层切分保证用户层面的样本分布一致seed42确保结果可复现该切分函数实现在 python_splitters.py常量userID / itemID等默认列名定义在 recommenders/utils/constants.py。3.3 模型构建实例化、训练与推荐model SAR( col_useruserID, col_itemitemID, col_ratingrating, col_timestamptimestamp, similarity_typejaccard, # 相似度度量 time_decay_coefficient30, # 评分衰减一半所需的天数 timedecay_formulaTrue, # 启用时间衰减 normalizeTrue # 将预测分还原到原评分量纲 ) with Timer() as train_time: model.fit(train) with Timer() as test_time: top_k model.recommend_k_items(test, top_kTOP_K, remove_seenTrue)从 SAR 源码 可以看出fit阶段的实际计算链路sar_singlenode.py#L226-L323构建用户-物品亲和矩阵compute_affinity_matrix以用户、物品为索引构造稀疏矩阵评分为矩阵值时间衰减compute_time_decay若开启timedecay_formula按time_decay_coefficient换算出的半衰期内部转换为秒time_decay_coefficient * 24 * 60 * 60对评分施加指数衰减越久远的交互权重越低共现矩阵compute_cooccurrence_matrix由二值化亲和矩阵计算C U^T · U并通过threshold参数默认 1过滤掉共现次数过低的物品对相似度矩阵根据similarity_type从共现矩阵派生源码支持七种度量——cooccurrence、cosine、inclusion index、jaccard、lexicographers mutual information、lift、mutual information。评分预测阶段score见 sar_singlenode.py#L325-L377本质是一次稀疏矩阵乘法user_affinity · item_similaritynormalizeTrue时会将原始分缩放回训练数据的评分区间remove_seenTrue则把训练中已交互过的物品分数置为负无穷保证推荐结果的新颖性。3.4 模型评估排序指标与评分指标# 排序指标 eval_map map_at_k(test, top_k, col_useruserID, col_itemitemID, col_ratingrating, kTOP_K) eval_ndcg ndcg_at_k(test, top_k, ...) eval_precision precision_at_k(test, top_k, ...) eval_recall recall_at_k(test, top_k, ...) # 评分指标 eval_rmse rmse(test, top_k, ...) eval_mae mae(test, top_k, ...) eval_rsquared rsquared(test, top_k, ...) eval_exp_var exp_var(test, top_k, ...) # Logloss先将评分按阈值二值化并对预测分做 min-max 归一化 test_bin[rating] binarize(test_bin[rating], positivity_threshold) # threshold2 top_k_prob[prediction] minmax_scale(top_k_prob[prediction].astype(float)) eval_logloss logloss(test_bin, top_k_prob, ...)这些指标的实现集中在 recommenders/evaluation/python_evaluation.py并且 Quick Start 笔记本还通过store_metadatanotebook_utils.py记录关键指标供仓库的自动化笔记本测试直接校验结果。3.5 单用户结果剖析笔记本最后会选取一个具体用户如user_id 54将其测试集真实高评分物品与模型推荐结果做 join直观对比真实偏好与推荐输出帮助理解recommend_k_items返回的userID / itemID / prediction三列结构。这一对比手法在 03_evaluate 评估教程 中有更系统的展开。四、从实现到验证源码与测试佐证Quick Start 使用的算法和工具均有仓库源码与测试支撑方便读者从跑通示例深入到读懂实现SAR 单节点实现sar_singlenode.py599 行核心类SARSingleNode提供fit、score、predict、recommend_k_items、get_item_based_topk面向冷启动用户的物品种子推荐、get_topk_most_similar_users等方法单元测试test_sar_singlenode.py 覆盖了参数初始化相似度类型、半衰期、阈值、fit/predict基本行为、不同threshold与相似度度量下的物品相似度矩阵数值、以及用户亲和矩阵的正确性可作为复现 Quick Start 结果的回归依据其他算法的对应实现NCFrecommenders/models/ncf、DKNrecommenders/models/deeprec/models/dkn.py、xDeepFMrecommenders/models/deeprec/models/xDeepFM.py、序列模型recommenders/models/deeprec/models/sequential、新闻推荐recommenders/models/newsrec/models等数据集工具MovieLensmovielens.py、MINDmind.py、Criteocriteo.py、Amazonamazon_reviews.py评估工具python_evaluation.py 与 Spark 版 spark_evaluation.py对应文档见 docs/evaluation.rst。五、运行环境与准备要求Quick Start 笔记本按运行环境可分为三类选择前请对照仓库根目录 README.md 与 SETUP.md 的准备指南环境代表笔记本依赖说明Python CPUSAR、RLRMC、LightGBM、geoimc安装核心包即可uv pip install recommendersPython CPU GPUNCF、DKN、xDeepFM、Wide-and-Deep、embdotbias、序列推荐、新闻推荐需要recommenders[gpu]扩展TensorFlow/PyTorch 相关依赖PySparkALS需要recommenders[spark]扩展官方推荐用 uv 创建 Python 3.11 虚拟环境、安装recommenders核心包与ipykernel然后在 VSCode 中打开任意 Quick Start 笔记本并选择对应 Jupyter 内核运行。环境依赖的细节GPU、Spark、实验特性请以 SETUP.md 为准。六、从 Quick Start 出发的进阶路径Quick Start 定位是最小可运行示例若要深入每个算法仓库提供了清晰的进阶路线算法深潜Deep Dive在 02_model_collaborative_filtering 与 02_model_content_based_filtering 中每个算法都有讲解数学原理与实现的深度笔记本例如 sar_deep_dive.ipynb、als_deep_dive.ipynb、dkn_deep_dive.ipynb横向对比06_benchmarks 基准评测 在统一数据切分与评估设置下比较 ALS、NCF、SAR、SVD、BiVAE、BPR、LightGCN、embdotbias 等算法的 MAP、nDCGk、Precisionk、Recallk 等指标对应评测细节可参考 03_evaluate调参与优化04_model_select_and_optimize 展示超参数搜索NNI、AzureML HyperDrive生产化05_operationalize 覆盖模型上线与负载测试。参考文献[1]Neural Collaborative Filtering, Xiangnan He, Lizi Liao, Hanwang Zhang, Liqiang Nie, Xia Hu and Tat-Seng Chua. WWW 2017.[2]DKN: Deep Knowledge-Aware Network for News Recommendation, Hongwei Wang, Fuzheng Zhang, Xing Xie and Minyi Guo. WWW 2018.[3]xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems, Jianxun Lian, Xiaohuan Zhou, Fuzheng Chen, Zhongxia Chen, Xing Xie and Guangzhong Sun. KDD 2018.[4]Restricted Boltzmann Machines for Collaborative Filtering, Ruslan Salakhutdinov, Andriy Mnih and Geoffrey Hinton. ICML 2007.[5]Wide Deep Learning for Recommender Systems, Heng-Tze Cheng et al., arXiv:1606.07792 2016.[6]A unified framework for structured low-rank matrix learning, Pratik Jawanpuria and Bamdev Mishra, ICML 2018.[7]NAML: Neural News Recommendation with Attentive Multi-View Learning, Chuhan Wu, Fangzhao Wu, Mingxiao An, Jianqiang Huang, Yongfeng Huang and Xing Xie. IJCAI 2019.[8]NRMS: Neural News Recommendation with Multi-Head Self-Attention, Chuhan Wu, Fangzhao Wu, Suyu Ge, Tao Qi, Yongfeng Huang, Xing Xie. EMNLP-IJCNLP 2019.[9]LSTUR: Neural News Recommendation with Long- and Short-term User Representations, Mingxiao An, Fangzhao Wu, Chuhan Wu, Kun Zhang, Zheng Liu and Xing Xie. ACL 2019.[10]NPA: Neural News Recommendation with Personalized Attention, Chuhan Wu, Fangzhao Wu, Mingxiao An, Jianqiang Huang, Yongfeng Huang and Xing Xie. KDD 2019, ADS track.[11]Adaptive User Modeling with Long and Short-Term Preferences for Personailzed Recommendation, Zeping Yu, Jianxun Lian, Ahmad Mahmoody, Gongshen Liu and Xing Xie. IJCAI 2019.[12]Personalized top-n sequential recommendation via convolutional sequence embedding, Jiaxi Tang and Ke Wang. ACM WSDM 2018.[13]Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation, Kyunghyun Cho, Bart van Merrienboer, Caglar Gulcehre, Dzmitry Bahdanau, Fethi Bougares, Holger Schwenk and Yoshua Bengio. arXiv:1406.1078 2014.[14]A Simple Convolutional Generative Network for Next Item Recommendation, Fajie Yuan, Alexandros Karatzoglou, Ioannis Arapakis, Joemon M. Jose and Xiangnan He. WSDM 2019.赞分享人工智能机器学习深度学习【免费下载链接】recommendersBest Practices on Recommendation Systems项目地址https://gitcode.com/gh_mirrors/re/recommenders点击查看免费下载相关推荐Zotero-mdnotes 快速入门指南从文献管理到Markdown笔记Zotero mdnotes 快速入门指南从文献管理到Markdown笔记 前言 对于学术研究者和知识工作者来说如何高效地管理文献资料并将其转化为可用的知识科研知识管理终极前端开发指南NTH-start-project 快速入门教程终极前端开发指南NTH start project 快速入门教程 想要快速搭建现代化的前端项目NTH start project 开源项目正是你需要的完美解G-Helper华硕笔记本的轻量级控制革命告别臃肿的原厂软件G Helper华硕笔记本的轻量级控制革命告别臃肿的原厂软件 对于华硕笔记本用户来说Armoury Crate奥创控制中心曾经是控制硬件性能的唯一选择桌面应用系统编程上一篇如何通过100个Rust练习从零基础到项目实战终极学习指南下一篇TDengine OPC-DA 数据接入通过 taosExplorer 从 OPC DA 服务器实时同步数据到 TDengine 集群创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考