machine-learning
  • Welcome
  • 动手学深度学习
    • 1. 前言
    • 2. 预备知识
    • 3. 线性神经网络
    • 4. 多层感知机
    • 5. 深度学习计算
    • 6. 卷积神经网络
    • 7. 现代卷积神经网络
    • 8. 循环神经网络
    • 9. 现代循环神经网络
    • 10. 注意力机制
    • 11. 优化算法
    • 12. 计算性能
    • 13. 计算机视觉
    • 14. 自然语言处理:预训练
    • 15. 自然语言处理:应用
    • 16. 附录:深度学习工具
  • 百面机器学习
    • 1. 特征工程
    • 2. 模型评估
    • 3. 经典算法
    • 4. 降维
    • 5. 非监督学习
    • 6. 概率图模型
    • 7. 优化算法
    • 8. 采样
    • 9. 前向神经网络
    • 10. 循环神经网络
    • 11. 强化学习
    • 12. 集成学习
    • 13. 生成式对抗网络
    • 14. 人工智能的热门应用
  • 百面深度学习
    • 1. 卷积神经网络 CNN
    • 2. 循环神经网络 RNN
    • 3. 图神经网络 GNN
    • 4. 生成模型
    • 5. 生成式对抗网络 GAN
    • 6. 强化学习 RL
    • 7. 元学习
    • 8. 自动化机器学习 AutoML
    • 9. 计算机视觉 CV
    • 10. 自然语言处理 NLP
    • 11. 推荐系统
    • 12. 计算广告
    • 13. 视频处理
    • 14. 计算机听觉
    • 15. 自动驾驶
  • 统计学习方法
  • 推荐系统实践
    • 1. 推荐系统
    • 2. 特征工程
    • 3. Embedding
    • 4. 精排
    • 5. 召回
    • 6. 粗排/重排
    • 7. 多任务/多场景
    • 8. 冷启动
    • 9. 评估调试
    • 10. 自我修养
  • 深度学习推荐系统
    • 1. 推荐系统
    • 2. 进化之路
    • 3. 深度学习的应用
    • 4. Embedding
    • 5. 多角度审视
    • 6. 工程实现
    • 7. 评估方法
    • 8. 前沿实践
    • 9. 知识框架
  • 强化学习的数学原理
    • 1. 基础概念
    • 2. 贝尔曼公式
    • 3. 贝尔曼最优公式
    • 4. 值迭代与策略迭代
    • 5. 蒙特卡洛方法
    • 6. 随机近似与随机梯度下降
    • 7. 时序差分方法
    • 8. 值函数近似
    • 9. 策略梯度方法
    • 10. Actor-Critic方法
Powered by GitBook
On this page
  • 1. 演化关系图
  • 2. 协同过滤 CF
  • 3. 矩阵分解 MF
  • 4. 逻辑回归 LR
  • 5. FM、FFM
  • 6. GBDT+LR
  • 7. LS-PLM
  • 8. 总结
  1. 深度学习推荐系统

2. 进化之路

Previous1. 推荐系统Next3. 深度学习的应用

Last updated 2 years ago

1. 演化关系图

2. 协同过滤 CF

  • UserCF (社交特性, 新闻推荐 & 及时热点)

    • 用户相似度: 余弦相似度、pearson、引入物品平均分

    • 结果的排序: top k 相似用户 => 加权平均 Ru,p=∑s∈S(wu,s⋅Rs,p)∑s∈Swu,sR_{u,p}=\frac{\sum_{s\in S}(w_{u,s}\cdot R_{s,p})}{\sum_{s\in S}w_{u,s}}Ru,p​=∑s∈S​wu,s​∑s∈S​(wu,s​⋅Rs,p​)​

    • 缺点: a. 相似度矩阵 O(n2)O(n^2)O(n2), b. 用户行为稀疏

  • ItemCF (兴趣稳定, 风格/类型相似)

    • 相似度: Ru,p=∑h∈H(wp,h⋅Ru,h)R_{u,p}=\sum_{h\in H}(w_{p,h}\cdot R_{u,h})Ru,p​=∑h∈H​(wp,h​⋅Ru,h​)

  • 后续发展

    • 泛化能力较弱,头部效应明显 => 矩阵分解 (隐含兴趣/特征)

    • 无法引入 U,I,C 特征信息 => 逻辑回归

3. 矩阵分解 MF

  • 算法: 共现矩阵 Rm,n=用户矩阵 Um,k×物品矩阵 Vk,n共现矩阵\ \mathbf{R}_{m,n}=用户矩阵\ \mathbf{U}_{m,k}\times物品矩阵\ \mathbf{V}_{k,n}共现矩阵 Rm,n​=用户矩阵 Um,k​×物品矩阵 Vk,n​

    • 预估评分: r^ui=qiTpu\hat{r}_{ui}=q_i^T p_ur^ui​=qiT​pu​

    • k 越大,表达能力强,泛化能力弱,求解复杂度高

  • 求解

    • 特征值分解: 要求方阵

    • 奇异值分解: 要求矩阵稠密, O(mn2)O(mn^2)O(mn2)

    • 梯度下降: min⁡q∗,p∗∑(u,i)∈K(rui−qiTpu)2+λ(∣∣qi∣∣2+∣∣pu∣∣2)\min_{q^*,p^*} \sum_{(u,i)\in K} (r_{ui}-q_i^Tp_u)^2 + \lambda(||q_i||^2+||p_u||^2)minq∗,p∗​∑(u,i)∈K​(rui​−qiT​pu​)2+λ(∣∣qi​∣∣2+∣∣pu​∣∣2)

  • 消除 UI 打分偏差

    • 偏差向量: rui=μ+bi+bu+qiTpur_{ui}=\mu+b_i+b_u+q_i^Tp_urui​=μ+bi​+bu​+qiT​pu​

    • 目标函数: min⁡q∗,p∗,b∗∑(u,i)∈K(rui−μ−bu−bi−qiTpu)2+λ(∣∣qi∣∣2+∣∣pu∣∣2+bu2+bi2)\min_{q^*,p^*,b^*} \sum_{(u,i)\in K} (r_{ui}-\mu-b_u-b_i-q_i^Tp_u)^2 + \lambda(||q_i||^2+||p_u||^2+b_u^2+b_i^2)minq∗,p∗,b∗​∑(u,i)∈K​(rui​−μ−bu​−bi​−qiT​pu​)2+λ(∣∣qi​∣∣2+∣∣pu​∣∣2+bu2​+bi2​)

  • 优点

    • 泛化能力强,解决数据稀疏问题

    • 空间复杂度低,O(n2)→O((n+m)×k)O(n^2) \rightarrow O((n+m)\times k)O(n2)→O((n+m)×k)

    • 扩展性/灵活性,类似 Embedding 思想,便于结合 NN

  • 局限

    • 无法引入 U,I,C 特征信息

    • 冷启动,无法有效推荐

4. 逻辑回归 LR

  • 问题: CTR 预估

  • 模型: f(x)=11+e−(wx+b)f(x)=\frac{1}{1+e^{-(wx+b)}}f(x)=1+e−(wx+b)1​

  • 训练: J(w)=−1m∑i=1m(yilog⁡fw(xi)+(1−yi)log⁡(1−fw(xi)))J(w)=-\frac1m \sum_{i=1}^m(y^i\log f_w(x^i)+(1-y^i)\log(1-f_w(x^i)))J(w)=−m1​∑i=1m​(yilogfw​(xi)+(1−yi)log(1−fw​(xi)))

  • 优点

    • 融合不同特征,全面的推荐结果

    • 数学含义支撑,GLM 伯努利分布

    • 可解释性强

    • 工程化的需要

  • 局限

    • 表达能力不强

    • 无法进行特征交叉、特征筛选

5. FM、FFM

  • POLY2

    • 模型: POLY2(w,x)=∑j1=1n−1∑j2=j1+1nwh(j1,j2)xj1xj2POLY2(w,x)=\sum_{j_1=1}^{n-1}\sum_{j_2=j_1+1}^{n}w_{h(j_1,j_2)}x_{j_1}x_{j_2}POLY2(w,x)=∑j1​=1n−1​∑j2​=j1​+1n​wh(j1​,j2​)​xj1​​xj2​​

    • 缺陷

      • one-hot 编码稀疏,特征交叉更加稀疏,大部分交叉特征无法收敛

      • 参数量 O(n)→O(n2)O(n)\rightarrow O(n^2)O(n)→O(n2)

  • FM

    • 模型: FM(w,x)=∑j1=1n−1∑j2=j1+1n(wj1⋅wj2)xj1xj2FM(w,x)=\sum_{j_1=1}^{n-1}\sum_{j_2=j_1+1}^{n}(w_{j_1}\cdot w_{j_2})x_{j_1}x_{j_2}FM(w,x)=∑j1​=1n−1​∑j2​=j1​+1n​(wj1​​⋅wj2​​)xj1​​xj2​​

    • FM 为每个特征学习了一个 "隐权重向量" => 内积作为权重

    • 优点

      • 参数量/训练复杂度 O(n2)→O(nk)O(n^2)\rightarrow O(nk)O(n2)→O(nk)

      • 解决数据稀疏性问题,泛化能力提高 (虽然降低精确记忆能力)

      • 梯度下降,容易部署

  • FFM

    • field-aware: 特征域感知 (一组 one-hot 特征向量)

    • 模型: FFM(w,x)=∑j1=1n−1∑j2=j1+1n(wj1,f2⋅wj2,f1)xj1xj2FFM(w,x)=\sum_{j_1=1}^{n-1}\sum_{j_2=j_1+1}^{n}(w_{j_1,f_2}\cdot w_{j_2,f_1})x_{j_1}x_{j_2}FFM(w,x)=∑j1​=1n−1​∑j2​=j1​+1n​(wj1​,f2​​⋅wj2​,f1​​)xj1​​xj2​​

    • 复杂度: O(kn2)O(kn^2)O(kn2) > FM

6. GBDT+LR

  • GBDT 特征转换

    • 决策树深度 => 特征交叉阶数

    • 容易过拟合,丢失数值信息,效果不一定比 FFM 好

  • 开启趋势

    • 特征工程模型化,端到端

    • 网络结构、Embedding 层

7. LS-PLM

  • 模型结构

    • Large Scale Piece-wise Linear Model: 大规模分段线性模型

      • MLR, Mixed Logistic Regression, 混合逻辑回归

    • 模型: f(x)=∑i=1mπi(x)⋅ηi(x)=∑i=1meμi⋅x∑j=1meμj⋅x⋅11+e−wi⋅xf(x)=\sum_{i=1}^m \pi_i(x)\cdot\eta_i(x)=\sum_{i=1}^m \frac{e^{\mu_i\cdot x}}{\sum_{j=1}^m e^{\mu_j\cdot x}} \cdot \frac{1}{1+e^{-w_i\cdot x}}f(x)=∑i=1m​πi​(x)⋅ηi​(x)=∑i=1m​∑j=1m​eμj​⋅xeμi​⋅x​⋅1+e−wi​⋅x1​

    • 思想

      • 样本聚类分片: softmax 多分类, m = 12

      • LR CTR 预估

  • 优点

    • 端到端的非线性学习能力,全局模型 => 不同 应用领域/业务场景

    • 模型的稀疏性增强 (L1),部署更加轻量级

  • 可以看作,加入了 attention 机制的 3-layer NN

8. 总结

  • 矩阵分解,隐向量思想,Embedding

  • FM,特征交叉,深度学习模型

  • LS-PLM,三层神经网络

  • GBDT,特征工程模型化