推荐系统
本项目从入门到精通全面介绍了工业级推荐系统的理论知识(基于王树森推荐系统公开课,以小红书为例讲解工业界真实的推荐系统),如何基于TensorFlow2训练模型,如何实现高性能、高并发、高可用的Golang推理微服务。同时还包括一些Scikit-learn和TensorFlow的编程基础知识。全面介绍了基于深度学习的工业推荐系统理论,如何使用TensorFlow2训练模型,以及如何基于Golang实现高性能、高并发和高可用的推理服务。
注意:第一部分的理论知识在本仓库,第二、三、四部分的代码在其他仓库,点击链接即可跳转。
注意
如果通过Github站内超链接打开Jupyter Notebook文件发生错误,可以点击根据 https://nbviewer.org 生成的"备用链接"间接访问对应文件。 或者通过以下链接访问整个项目的站外备用链接,注意点击站外备用链接里的非Jupyter Notebook格式文件会跳转回到Github仓库内: ● 推荐系统
一、推荐系统理论
王树森推荐系统公开课 - 基于小红书的场景讲解工业界真实的推荐系统,读书笔记。
01 概要
● 推荐系统的链路 (备用链接)
● AB测试 (备用链接)
02 召回
● 基于物品的协同过滤(ItemCF) (备用链接)
● Swing召回通道 (备用链接)
● 基于用户的协同过滤(UserCF) (备用链接)
● 离散特征处理 (备用链接)
● 矩阵补充 (备用链接)
● 双塔模型:模型和训练 (备用链接)
● 双塔模型:正负样本 (备用链接)
● 双塔模型:线上召回和更新 (备用链接)
● 双塔模型+自监督学习 (备用链接)
● Deep Retrieval召回 (备用链接)
● 其他召回通道 (备用链接)
● 曝光过滤和Bloom Filter (备用链接)
03 排序 (Ranking)
● 多目标排序模型 (备用链接)
● MMoE (备用链接)
● 预估分数融合 (备用链接)
● 视频播放建模 (备用链接)
● 排序模型的特征 (备用链接)
● 粗排模型 (备用链接)
04 特征交叉 (Feature Cross)
● 因子分解机FM (备用链接)
● 深度交叉网络DCN (备用链接)
● LHUC网络结构 (备用链接)
● SENet Bilinear Cross (备用链接)
05 用户行为序列 (User Behavior Sequence)
● 用户行为序列建模 (备用链接)
● DIN模型(注意力机制) (备用链接)
● SIM模型(长序列建模) (备用链接)
06 重排 (Re-rank)
● 物品相似性的度量、提升多样性的方法 (备用链接)
● MMR多样性算法 (备用链接)
● 业务规则约束下的多样性算法 (备用链接)
● DPP多样性算法(上) (备用链接)
● DPP多样性算法(下) (备用链接)
07 物品冷启动
● 优化目标与评价指标 (备用链接)
● 简单召回通道 (备用链接)
● 聚类召回 (备用链接)
● 相似用户召回 (备用链接)
● 流量控制 (备用链接)
● 冷启动的A/B测试 (备用链接)
08 推荐系统指标提升方法
● 概述 (备用链接)
● 召回 (备用链接)
● 排序 (备用链接)
● 多样性 (备用链接)
● 特殊用户群体 (备用链接)
● 交互行为(关注、转发和评论) (备用链接)
二、TensorFlow2模型训练
以"DNN_for_YouTube_Recommendations"模型和电影评分数据集(ml-1m)为基础,详细展示了如何基于TensorFlow2实现推荐系统排序模型。
● YouTube深度排序模型(多值嵌入、多目标学习)
三、模型推理服务Golang
基于Golang、Docker和微服务思想实现了高并发、高性能和高可用的推荐系统推理微服务,包括多种召回/排序服务,并提供多种接口访问方式(REST、gRPC和Dubbo)等,每日可处理上千万次推理请求。
● 推荐系统推理微服务Golang