ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

FunRec 深度推荐算法实践(小麦书)指南:从级联架构到生成式范式

FunRec 深度推荐算法实践(小麦书)指南:从级联架构到生成式范式 人工智能机器学习深度学习教程示例工程后端前端【免费下载链接】fun-rec推荐系统入门教程在线阅读地址https://datawhalechina.github.io/fun-rec/项目地址https://gitcode.com/datawhalechina/fun-rec点击查看免费下载导读README_en.mdDeep Recommendation Algorithms in Practice又称小麦书/wheat-book是 Datawhale 推荐系统开源项目 fun-rec 的英文入口文档系统阐述了这本书从级联架构Cascade Architecture到生成式范式Generative Paradigm的完整技术演进路线。本文将以该文档的章节体系为主线结合仓库中的源码与配置实现为你梳理 FunRec 两大篇章的知识地图、配套代码的快速上手方式以及生产级推荐系统实战项目web_project的部署路径。读完本文你将能够按图索骥地定位每一类推荐算法在仓库中的实现位置并借助统一实验接口在本地跑通从数据加载、特征工程到模型训练与评估的完整链路。说明本项目仍处于持续开发与频繁更新阶段暂不接受 Pull Request如有建议或问题可通过仓库 Issue 反馈。项目定位一本书 一个可运行的代码仓库FunRec 面向具备机器学习基础、希望系统掌握推荐算法核心原理与工程实践的读者目标是让理论与工程在同一个仓库里闭环。仓库形态上包含三部分书籍内容docs/_sources/下以 reStructuredText 组织的各章节源文件另有已构建的 HTML 文档docs/。算法实现src/funrec/下是覆盖各章算法的统一训练与评估框架。生产级项目web_project/下是一个完整的电影推荐系统示例基于 MovieLens-1M涵盖离线训练、在线服务与前端展示。这一布局意味着读某章算法时可以立刻在src/funrec/models/中找到同名模型实现读生产系统时可以直接按web_project/README.md跑通全流程。中文版入口见 README.md两份文档章节结构一致。Part I级联架构Cascade Architecture级联架构即业界经典的召回 → 排序 → 重排流水线FunRec 上篇用 4 章完成覆盖其章节与源码的对应关系可直接从 章节目录 和配置映射 src/funrec/config/init.py 中交叉验证。1. 推荐系统概述第 1 章回答推荐系统是什么并给出全书概览。它是后续所有章节的地基对应文档见 docs/_sources/chapter_0_introduction/包含绪论与全书大纲两部分。2. 快速候选召回Fast Candidate Retrieval召回阶段的目标是从海量物品中快速圈定候选集FunRec 将其细分为三类每类都在src/funrec/models/中有同名实现召回子方向覆盖方法仓库实现协同过滤Collaborative Filtering物品 CF、用户 CF、矩阵分解含 BiasSVD、FunkSVDitem_cf.py、user_cf.py、biassvd.py、funksvd.py向量召回Embedding-based RetrievalI2I/U2IWord2Vec、Item2Vec、EGES、Airbnb、FM、DSSM、YouTubeDNNitem2vec.py、eges.py、fm.py、dssm.py、youtubednn.py序列召回Sequential Retrieval用户兴趣表示MIND、SDM、全量兴趣建模与流式索引Trinity、Streaming VQmind.py、sdm.py对应书籍内容位于 chapter_1_retrieval按1.cf/、2.i2i/、3.two_tower/、4.sequence/、5.streaming_index/组织。其中向量召回文档还配套了词向量基础附录 word2vec.rst.txt。3. 精准偏好预测Precise Preference Prediction精排阶段在候选集上做细粒度打分FunRec 从五个角度展开源码中同样一一对应记忆与泛化Memorization Generalization以 WideDeep 为典型代表实现见 wide_deep.py。其build_wide_deep_model将特征组 embedding 送入 DNN 得到深度部分 logits同时叠加线性 logits 与交叉 logits最后经 sigmoid 输出见 src/funrec/models/wide_deep.py正是记忆wide 泛化deep双通道合一的落地形式。特征交叉Feature Crossing二阶交叉覆盖 FM、NFM、AFM高阶交叉覆盖 DeepFM、DCN、PNN、xDeepFM、AutoInt、FiBiNET对应 fm.py、nfm.py、afm.py、deepfm.py、dcn.py、pnn.py、xdeepfm.py、autoint.py、fibinet.py 等。序列建模Sequential Modeling局部激活注意力DIN、兴趣演化建模DIEN、行为到会话序列建模DSIN实现见 din.py、dien.py、dsin.py另有通用序列模型 SASRec 提供基线对比。多目标建模Multi-objective Modeling覆盖基础结构演进Shared-Bottom、MMoE、PLE、HMoE、任务依赖建模ESMM、多目标损失融合PEPNet实现见 shared_bottom.py、mmoe.py、ple.py、hmoe.py、esmm.py、pepnet.py。多场景建模Multi-scenario Modeling多塔结构STAR、M2M、APG与动态权重建模PRS实现见 star.py、m2m.py、apg.py、prs.py。对应书籍内容位于 chapter_2_ranking按1.wide_and_deep、2.feature_crossing/、3.sequence、4.multi_objective/、5.multi_scenario/组织。4. 重排与多样性建模Re-ranking Diversity Modeling重排在精排之后做最终列表优化。FunRec 将其分为基于贪心的重排Greedy-based最大边际相关性MMR与行列式点过程DPP。基于个性化的重排PersonalizedTransformer 重排模型PRM与基于排列组合的重排模型PRS实现见 prm.py、prs.py。对应书籍内容位于 chapter_3_rerank。Part II生成式范式Generative Paradigm下篇转向近年前沿的生成式推荐范式是 FunRec 中更具前沿性的部分覆盖从大模型基础、Scaling Law 架构探索到端到端生成式建模、推理增强与扩散模型推荐的完整演进。5. 生成式推荐基础Foundations of Generative Recommendation推荐范式的演进判别式建模与生成式建模的核心思想及本质区别。生成式架构的基石Transformer 与 Diffusion 模型。LLM 建模的基本流程三阶段范式以及从 LLM 到生成式推荐的映射。推荐中的 Tokenizer 技术范式演进、端到端离散化、工业级方案与核心挑战。对应书籍内容位于 chapter_5_gr_basic含1.gr_intro、2.gr_arch_base、3.llm_base、4.codebook四个小节。仓库中 HSTUhstu.py是该部分相关架构的代表实现之一。6. Scaling Law 架构探索HSTU 架构演进Scaling Law 的首次探索、生成式推荐的工程突破、混合范式的突破。HSTUHierarchical Sequential Transduction Unit在仓库中有对应实现与配置见 hstu.py 与 config_hstu.py。硬件感知架构设计Hardware-Aware 统一架构、统一序列与特征交叉建模。对应书籍内容位于 chapter_6_scaling按1.hstu、2.gen_rank、3.mtgr、4.rankmixer、5.one_trans组织。7. 端到端生成式建模End-to-End Generative ModelingOneRec 的架构演进OneRec-V1 的开创性探索与 OneRec-V2 的效率与性能突破。查询补全与商品检索OneSug 查询补全生成、OneSearch 商品检索生成。竞价机制与多场景广告EGA 统一竞价与生成、GPR 预训练驱动广告生成。对应书籍内容位于 chapter_7_gr_e2e含1.recommendation、2.search、3.ad三节。8. 会思考的推荐模型Reasoning-enhanced Recommendation协同语义与语言语义的统一物品索引学习、语义对齐训练、PLUM 框架。OneRec-Think 的思考框架物品对齐、推理激活、推理增强、Think-Ahead 架构。自主推理的探索RecZero、RecOne 与未来图景。对应书籍内容位于 chapter_8_thinking。9. 基于扩散的推荐模型Diffusion-based Recommendation扩散模型基础Diffusion 分类、前向加噪与反向去噪、训练与采样、条件生成。基于扩散的数据增强DiffuASR 序列增强、Diff-MSR 跨场景增强。特征增强与多样性优化AsymDiffRec 特征增强、DMSG 多样性优化。对应书籍内容位于 chapter_9_diffusion。10. 生产级推荐系统构建Production-grade Recommendation System第 10 章是全书工程落地的重头戏对应仓库中的 web_project/ —— 一个基于 MovieLens-1M 数据集的完整电影推荐系统示例。其核心特性包括多路召回YouTubeDNN 向量召回 I2I 相似度召回 偏好类目召回Snake Merge 融合。精准排序DeepFM 点击率预测模型。冷启动处理UCB 类型探索算法平衡探索与利用。多样性重排类型/年代连续打散避免信息茧房。完整工程链路特征工程 → 模型训练 → 在线服务 → 前端交互。系统分三层层次位置职责前端web_project/frontend/首页推荐、电影详情、搜索、用户认证、个人中心离线流水线web_project/backend/offline/特征工程、召回模型训练YouTubeDNN、排序模型训练DeepFM、模型部署到本地目录、特征上线到 Redis在线流水线web_project/backend/online/冷启动检测、多路召回、精排DeepFM、重排打散、结果组装存储层PostgreSQL业务数据、Redis特征缓存、Elasticsearch搜索索引由web_project/docker-compose.yaml统一编排基础设施。生产项目的英文描述同样见于 README_en.md 第 10 章条目。从阅读到运行FunRec 统一实验框架框架流水线src/funrec/是一个把配置 → 数据 → 特征 → 训练 → 评估串成一行的实验框架核心入口为 experiment.py# 1) 加载配置 config load_config(model_name) # 2) 加载数据 train_data, test_data load_data(config.data) # 3) 准备特征 feature_columns, processed_data prepare_features(config.features, train_data, test_data) # 4) 训练模型 models train_model(config.training, feature_columns, processed_data) # 5) 评估模型 metrics evaluate_model(models, processed_data, config.evaluation, feature_columns)框架对外暴露的统一接口见init.pyload_config、load_data、prepare_features、train_model、evaluate_model、run_experiment、compare_models其中run_experiment(wide_deep, return_metricsTrue)即一行跑通一个模型。配置即实验声明框架采用每模型一个配置模块的设计配置文件位于 src/funrec/config/通过 config/init.py 中的CONFIG_MAPPING以模型名字符串索引。以 config_wide_deep.py 为例一份配置由四段组成data数据集名如kuairand_datafeaturesembedding 维度、任务名列表以及每条特征归属的特征组如wide_deep/linear决定该特征进入 wide 侧还是 deep 侧training构建函数路径funrec.models.wide_deep.build_wide_deep_model、模型参数如dnn_units: [64, 32]、dnn_dropout_rate: 0.1、优化器adam、损失binary_crossentropy、评估指标binary_accuracy、batch_size、epochs、validation_split、subsample_size 等evaluation模型类型ranking与评估所需的关键列user_id、item_id。这种配置驱动结构使新增一个算法只需新增一个配置模块并注册进CONFIG_MAPPING与 wide_deep.py 中从model_config读取参数并设置默认值的实现方式一一对应。数据集与前置条件框架依赖FUNREC_PROCESSED_DATA_PATH环境变量指向预处理数据的缓存路径数据集注册在 data_config.py 的DATASET_CONFIG中包括ml_latest_small_youtubednnMovieLens 最新版小样本、kuairand_data快手 Kuairec 短视频数据集、ml-1m_sasrec、ml-1m_recall_data、ml-1m_tiger、ml_latest_small_classical等覆盖召回、排序、序列建模与生成式tiger等不同实验场景。预处理脚本位于 src/funrec/data/preprocess/包含 MovieLens、快手 Kuairec 与电商数据的处理实现。评估指标评估模块 evaluation/metrics.py 提供回归类指标MAE、RMSE、排序类指标precisionk、recallk 等以及 AUC基于sklearn.metrics.roc_auc_score等配合evaluator.py与utils.py中的指标表格/模型对比表格工具便于实验结果的横向对比compare_models即支持多模型一键对比。环境要求项目依赖声明于 pyproject.tomlPython3.8核心依赖为 TensorFlow 2.13.0、pandas 2.0.3、scikit-learn、gensim 4.3.3、networkx 3.1、pyyaml 与 python-dotenv 等依赖版本在仓库中已固定直接pip install -e .或使用 uv即可安装。生产项目本地部署速览对于 web_project/ 中的电影推荐系统本地运行路径如下细节见其 README准备数据与环境下载 MovieLens-1M 数据集并解压复制.env.example为.env设置FUNREC_RAW_DATA_PATH原始数据绝对路径与FUNREC_PROCESSED_DATA_PATH处理后数据缓存绝对路径。启动基础设施docker compose up --build拉起 PostgreSQL、Redis、Elasticsearch。同步依赖并加载数据进入backend目录执行uv sync --python 3.11注意 TensorFlow 2.15 要求 Python 3.11随后make ingest-data-to-database导入约 6000 用户、4000 部电影与约 100 万条评分并创建测试账号testfunrec.com / test123456。索引搜索数据make index-movies-to-elasticsearch将电影写入 Elasticsearch启用前端搜索。运行离线流水线make run-offline-pipeline依次执行召回特征处理 → 排序特征处理困难负样本 随机负样本→ YouTubeDNN 召回模型训练 → DeepFM 排序模型训练 → 特征上线 Redis → 模型部署本地目录。首次运行约需 5-10 分钟之后可通过--steps参数单独执行某个步骤。验证与访问通过curl http://localhost:8000/health、curl http://localhost:9200与docker exec -it funrec-postgres pg_isready -U funrec检查后端、Elasticsearch 与数据库最后访问http://localhost:3000使用前端。文档资源与社区在线文档与学习路径本仓库的书籍源文件位于 docs/_sources/含前言、安装说明、符号约定chapter_notation、各章正文与参考文献chapter_references并已构建出静态 HTML 站点docs/ 目录。建议按上篇 1→4 章建立级联架构直觉下篇 5→9 章理解生成式演进第 10 章完成工程闭环的路径学习每读完一章即可回到src/funrec/models/打开同名模型源码对照理解。FunRec 学习社区README 同时介绍了 FunRec 学习社区微信群 知识星球微信群方便日常交流讨论知识星球便于内容沉淀早期录制的技术分享视频可在 Bilibili 相关合集观看。如需加入讨论群可添加文档中列出的微信号并备注Fun-Rec。致谢与贡献者项目由两位核心贡献者维护Ruyi Luo西安电子科技大学硕士推荐算法工程师与 Bo Kang比利时根特大学访问教授nobl.ai 联合创始人并有多位社区贡献者提供早期帮助与支持名单详见 README_en.md 的 Thanks 小节。许可协议本书内容采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议CC BY-NC-SA 4.0具体声明见 README.md 的 LICENSE 小节。这意味着你可以自由分享与再创作但需署名、非商业使用且以相同方式共享。小结FunRec 的价值在于书与代码同构README 的章节目录直接映射到src/funrec/models/的每一个模型文件、src/funrec/config/的每一份配置与docs/_sources/的每一章文档。从级联架构中的协同过滤、向量召回、序列召回、特征交叉、多目标/多场景建模与重排到生成式范式中的大模型基础、Scaling Law 架构HSTU、端到端生成建模OneRec 系列、推理增强OneRec-Think/PLUM与扩散模型推荐再到可完整跑通的 web_project 生产级系统这条路线为有机器学习基础的读者提供了一条理论与实践相互印证的推荐算法学习路径。赞分享人工智能机器学习深度学习教程示例工程后端前端【免费下载链接】fun-rec推荐系统入门教程在线阅读地址https://datawhalechina.github.io/fun-rec/项目地址https://gitcode.com/datawhalechina/fun-rec点击查看免费下载相关推荐从检索到生成FunRec中GPT模型重构推荐系统范式从检索到生成FunRec中GPT模型重构推荐系统范式 生成式推荐的技术革命 你是否还在为传统推荐系统的记忆 匹配模式所困当用户需求从我喜欢什么升级为人工智能机器学习深度学习教程示例工程后端前端解放双手的明日方舟智能管家MAA助手5分钟快速上手指南解放双手的明日方舟智能管家MAA助手5分钟快速上手指南 你是否厌倦了每天重复的基建换班、公招刷新和理智刷图是否希望有一个智能助手帮你处理这些繁琐的日常任务计算机视觉GUI自动化RPA企业级分布式物联网平台架构深度解析从技术选型到亿级连接实践企业级分布式物联网平台架构深度解析从技术选型到亿级连接实践 在数字化转型浪潮中物联网平台正成为企业构建智能化业务的核心基础设施。面对海量设备连接、异构协议适物联网后端前端上一篇Mac Mouse Fix如何将普通鼠标变成macOS上的专业级输入设备下一篇Wonder3D深度解析跨域扩散技术如何实现单图到3D的突破性转换创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表