深度学习推荐系统
深度学习推荐系统
来源:王喆《深度学习推荐系统 1.0》
第一章 宏观认知
- 互联网的核心需求是“增长”,而推荐系统正处在“增长引擎”的核心位置。
- 推荐系统要解决的“用户痛点”是用户如何在“信息过载”的情况下高效地获得感兴趣的信息。
- 信息:
- 物品信息
- 用户信息
- 场景信息
- 推荐系统处理问题的形式化定义:
对于用户 U (user), 在特定场景 C (context) 下,针对海量的物品信息,构建一个函数 f(U,I,C),预测用户对特定候选物品 I (item) 的喜好程度,再根据喜好程度对所有候选物品进行排序,生成推荐列表的问题。
第二章 传统推荐模型
- 发展脉络
- 协调过滤算法族CF:UserCF、ItemCF、MF
- 逻辑回归模型族LR:LR、LS-PLM、POLY2
- 因子分解机模型族FM:FM、FFM
- 组合模型:GBDT+LR
1. 协同过滤——经典的推荐算法(2003)
- 利用现有数据的物品共现性,计算物品相似度矩阵,用户召回时取最近历史几个物品在矩阵中选出 top N 相似的物品作为结果即可。
- UserCF 具备更强的社交属性、发现热点跟踪热点, ItemCF 更适合兴趣变化较为稳定的。
- 优势:直观、可解释性强
- 局限:泛化能力弱, 头部效应明显, 处理稀疏向量的能力弱, 无法加入更多用户物品上下文信息特征。
2. 矩阵分解算法——协同过滤的进化(2006)
- 在共现矩阵的基础上,加入隐向量概念,强化处理稀疏矩阵的能力。用户和物品的隐向量通过分解协同过滤生成的共现矩阵得到。
- 矩阵分解有三种方法:特征值分解(需要方阵放弃)、奇异值分解(要求矩阵稠密且时间复杂度高放弃)、梯度下降(拟合现有样本对,最小化得分损失,加入正则化约束权重波动越小越好)
- 梯度下降做法:确定目标函数、对目标函数求各参数的偏导、各参数沿梯度反方向更新。
- 推荐时:利用用户隐向量和物品隐向量进行逐一内积运算得到用户对所有物品的评分预测,排序推荐即可。
- 优势:泛化能力强,空间复杂度低,扩展性和灵活性更好。
- 局限性:无法加入更多用户物品上下文信息特征,且在缺乏用户交互历史行为时,无法进行有效推荐(用户冷启动差)。
3. 逻辑回归——融合多种特征
- 推荐问题看成分类问题(点击预估问题,CTR),通过预测正样本的概率,再对概率排序进行推荐。
- 所有特征处理成数值型特征向量 x,将特征向量 作为模型的输入,赋予相应权重 加权求和得到 ,再输入 $sigmoid(z) = \frac{1}{1+e^{-z}} $ 函数使之映射为 0-1 的区间即为点击率。
- 训练方法:梯度下降、牛顿法、拟牛顿法。
- 优势:可以融合较为全面的特征,有数学含义支撑(因变量y符合伯努利分布),可解释性强(计算逻辑符合直观认知)。
- 局限:表达能力有限,无法进行特征交叉、特征筛选等高级操作,不可避免地会损失信息。
辛普森悖论:在分组后的各组比较中都优势的,在不分组总评中反而劣势
4. 从 FM 到 FFM ——自动特征交叉(2010)
- POLY2 模型:暴力组合特征,对所有特征都二维交叉赋权重。(缺陷:向量更加稀疏;参数量上升,计算复杂)
- FM 模型:隐向量特征交叉,为每个特征学习一个隐权重向量,特征交叉时用其内积作为交叉特征的权重(思想与矩阵分解MF异曲同工)。复杂度由 降为 。相比POLY2,虽然丢失了某些精确记忆能力,但泛化能力提高。
- FFM 模型:引入特征域感知,隐向量由原来的 变为 ,每个特征不是唯一一个隐向量,而是一组隐向量。两个特征交叉时,选出特征的域对应的隐向量进行交叉。(同一个独热编码为一个域,需要学习 n 个特征在 f 个域上的 k 维隐向量,参数量 ,计算量 很大)
- 优势:引入了二阶特征交叉,信息丰富。
- 劣势:更高高阶特征交叉会带来计算量爆炸,无法进行高阶特征交叉。
5. GBDT+LR —— 特征工程模型化(2014)
- 利用 GBDT 自动进行特征筛选和组合生成新的离散特征向量,再把该向量当做 LR 模型输入。(GBDT构建特征工程,LR预估CTR,两步独立训练,不存在LR梯度回传GBDT的问题)
- GBDT的基本结构是决策树组成的森林,学习方式为梯度提升,预测方式是把所有子树的结果加起来。后一棵树以前面的树林的结果与真实结果的残差为拟合目标。每棵树生成的过程是一颗标准的回归树生成过程,每一个节点的分裂是一个自然的特征选择过程,而多层节点的结构刚好对应特征的有效组合。这刚好解决了棘手的特征选择和组合问题。
- GBDT 转换特征:训练样本在每个子树都会落入一个叶子节点,落入叶子1其他叶子0,连起来就是一个特征向量,把所有子树特征向量拼接就是最终生成的新离散型特征向量(其实同时也丢失了一部分信息)。
- 树的深度决定了特征交叉阶数(深度N就是分裂N-1次,为N-1阶交叉)。
- 广义上讲,后续深度学习通过各类网络或Embedding层实现特征工程自动化,都是GBDT+LR开启的特征工程模型化的延续。
6. LS-PLM —— 阿里巴巴曾经的主流(2012)
- 大规模分段线性模型 Large Scale Piece-wise Linear Model。也称为 MLR 混合逻辑回归。为了对不同群体不同场景有针对性,先对全量样本进行聚类,再对每个分类使用逻辑回归进行CTR预估。
- 首先使用聚类函数 (softmax) 对样本进行分类,再用 LR 模型计算样本在分片中具体的CTR,然后将两者相乘后求和。
- 分片数 m 在阿里巴巴的经验值为 12。
第三章 深度学习时代
- 演化关系:均以 多层感知机 MLP 为核心,通过改变神经网络的结构。
- 改变神经网络的复杂程度:增加层数/结构。AutoRec, DeepCrossing。
- 改变特征交叉方式:用户向量物品向量互操作方式、多种交叉操作。NeuralCF、PNN。
- 组合模型:组合两种不同特点、优势互补的深度学习网络。Wide&Deep、Deep&Cross、DeepFM。
- FM模型的深度学习演化:提升交叉能力、添加注意力机制、添加初始化。NFM、AFM、FNN。
- 注意力机制结合:应用注意力机制。AFM、DIN。
- 序列模型结合:使用序列模型模拟用户行为或兴趣的演化趋势。DIEN。
- 强化学习结合:应用强化学习,强调在线学习和实时更新。DRN。
1. AutoRec —— 单隐层神经网络
2. DeepCrossing —— 经典深度学习
3. NeuralCF —— CF 结合深度学习
4. PNN —— 加强特征交叉能力
5. Wide&Deep —— 记忆能力与泛化能力的综合
6. FNN、DeepFM、NFM —— FM 与 深度学习
7. AFM、DIN —— 注意力机制应用
8. DIEN —— 序列模型结合
9. DRN —— 强化学习结合
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 isSeymour!
评论


