本文是《深度学习推荐系统》一书的阅读笔记和思维导图,建议大家入手一本王喆老师的新书,看完绝对会收获颇丰!
一、互联网的增长引擎--推荐系统
1、推荐系统的作用
2、推荐系统的架构
逻辑框架
技术架构
数据部分
数据收集
推荐模型所需的样本数据
推荐模型所需特征
系统监控、商业智能所需的统计数据
数据加工
客户端及服务器端实时数据处理
流处理平台准实时数据处理
大数据平台离线数据处理
模型部分
召回层
排序层
补充策略与算法层
评估模块:离线评估和线上A/B测试
二、前深度学习时代-推荐系统的进化之路
1、协同过滤--经典的推荐算法
2、矩阵分解算法-协同过滤的进化
主要方法
特征值分解:只适用于方阵
奇异值分解:计算复杂度高
梯度下降:主流方法
优缺点
3、逻辑回归-融合多种特征的推荐模型
4、从FM到FFM--自动特征交叉的解决方案
多维度特征交叉的重要性:“辛普森悖论”
POLY2模型--特征交叉的开始
暴力进行特征组合
训练复杂度高、稀疏数据下大部分权重得不到有效训练
FM模型-隐向量特征交叉
为每一个特征赋予一个对应的隐向量
更好地解决数据稀疏性问题
线上推断过程简单,更容易进行线上部署
不易扩展到三阶特征交叉
FFM模型-引入特征域的概念
5、GBDT+LR--特征工程化的开端
利用GBDT构建特征工程、利用LR预估CTR
大大推进了特征工程模型化这一趋势
6、LS-PLM-阿里巴巴曾经的主流推荐模型
对样本先进行分片,再在样本分片中应用LR
优势
可以看作一个加入了注意力机制的三层NN
三、浪潮之巅-深度学习在推荐系统中的应用
1、深度学习时代的模型
表达能力更强,能够挖掘更多数据中潜藏的模式
结构灵活,能够结合业务灵活选择模型结构
两类思路
2、AutoRec-单隐层神经网络推荐模型
自编码器思想和协同过滤结合
模型较为简单,存在一定表达能力不足问题
3、Deep Crossing模型-经典的深度学习架构
4、NeuralCF模型-CF与深度学习的结合
5、PNN模型--加强特征交叉的能力
用Product layer代替了Deep Crossing中的Stack层,使用Product操作对特征进行两两交互
分为IPNN和OPNN
Product操作更强调不同特征之间的交互,模型更容易捕获特征的交叉信息
对所有特征进行无差别的交叉,一定程度忽略了原始特征中包含的有价值信息
6、Wide&Deep模型--记忆能力和泛化能力的综合
7、Wide&Deep模型进化-Deep & Cross模型
8、FM与深度学习模型的结合
结合FM思路的深度学习模型,基本特点是在经典多层神经网络的基础上加入针对性的特征交叉操作,让模型具有更强的非线性能力
FNN:用FM训练好的隐向量来初始化Embedding层,为Embedding预训练提供了借鉴思路
DeepFM:用FM代替了Wide&Deep的Wide部分,加强了浅层网络部分特征组合的能力
NFM:用一个表达能力更强的函数代替FM中二阶隐向量内积的部分
9、注意力机制在推荐模型中的应用
AFM:引入注意力机制的FM
DIN:引入注意力机制的深度学习网络
10、DIEN-序列模型与推荐系统的结合
11、DRN:强化学习与推荐系统的结合
四、Embedding技术在推荐系统中的应用
1、什么是Embedding
2、Word2Vec:经典的Embedding方法
3、Item2Vec:Word2Vec在推荐系统领域的推广
4、Graph Embedding:引入更多结构信息的图嵌入技术
互联网场景下,数据更多呈现图结构
DeepWalk:在图上随机游走,产生物品序列,然后使用word2vec进行训练,游走的概率取决于边的权重
Node2Vec:通过调整随机游走权重的方法使Graph Embedding的结果更倾向于体现网络的同质性和结构性
EGES:在DeepWalk的基础上补充Side Information
5、Embedding与深度学习推荐系统的结合
深度学习中的Embedding层
作为预训练的Embedding特征向量
计算物品和用户的相似度,作为召回层的策略
6、局部敏感Hash
快速Embedding向量最近邻搜索方法
基本思想是让相邻的点落入同一个桶
五、多角度审视推荐系统
1、推荐系统的特征工程
2、推荐系统召回层主要策略
3、推荐系统的实时性
特征的实时性
客户端实时特征
流计算平台的准实时特征处理
分布式批处理平台的全量特征处理
模型的实时性
4、如何合理设定推荐系统中的优化目标
5、推荐系统中比模型结构更重要的是什么
6、冷启动的解决方法
分类:用户冷启动、物品冷启动、系统冷启动
冷启动策略
基于规则
用户冷启动:热门排行榜、最近流行趋势等
物品冷启动:利用相似物品的推荐逻辑
丰富冷启动过程中可获得的用户和物品特征
用户的注册信息
第三方数据管理平台提供的数据
物品的内容特征
引导用户输入的冷启动特征
利用主动学习、迁移学习和“探索与利用”机制
7、探索与利用
六、深度学习推荐系统的工程实现
1、推荐系统的数据流
批处理大数据架构
分布式文件系统如HDFS和Map Reduce
数据处理延迟较大,影响相关应用的实时性
流计算大数据架构
Lambda架构
Kappa架构
大数据平台与推荐系统的融合
2、深度学习推荐模型的分布式离线训练
Spark MLlib
Parameter Server
异步非阻断式梯度下降
要在一致性和并行效率之间取舍
应用一致性Hash管理每个节点负责的参数
Tensorflow
3、深度学习推荐模型的线上部署
预训练Embedding + 轻量级线上模型
利用PMML转换并部署模型
Tensorflow Serving
4、工程与理论之间的权衡
七、推荐系统的评估
1、离线评估方法和指标
主要方法
Holdout检验
交叉验证
自助法Bootstrap
Replay:逐一样本回放的精确线上仿真过程
评估指标
准确率
精确率和召回率
均方误差RMSE
对数损失函数
P-R曲线
ROC曲线与AUC
平均精度均值MAP
归一化折扣累计收益NDCG
2、A/B测试与线上评估指标
3、快速线上评估方法 Interleaving
-
不区分A/B组,同时把A和B模型的推荐结果推荐给同一批用户,通过指标衡量两个模型的效果
需要注意位置偏差,不同模型的推荐结果 等概率交替领先
所需样本少、测试速度快、与A/B测试结果无明显差异
工程框架复杂、只是对“用户对算法推荐结果偏好程度”的相对测量,不能得出一个算法真实的表现
思维导图下载链接:公众号后台回复“推荐笔记”即可!