推荐系统 (二): 前深度学习时代 -- 推荐系统的进化之路

为什么要学习基于传统机器学习算法的推荐模型?

  • (1) 即使在深度学习空前流行的今天,协同过滤、逻辑回归、因子分解机等传统推荐模型仍然凭借其可解释性强、硬件环境要求低、易于快速训练和部署等不可替代的优势,拥有大量适用的应用场景
  • (2) 传统推荐模型是深度学习推荐模型的基础: 构成深度神经网络 (Deep Neural Network, DNN) 的基本单元是神经元,而应用广泛的传统逻辑回归模型正是神经元的另一种表现形式;深度学习推荐模型中影响力很大的基于因子分解机支持的神经网络 (Factorization machine supported Neural Network, FNN)、深度因子分解机 (Deep Factorization Machine, Deep FM)、神经网络因子分解机 (Neural Factorization Machine, NFM) 等深度学习模型更是与传统的 FM 模型有着千丝万缕的联系

传统推荐模型的演化关系图

在这里插入图片描述

  • (1) 协同过滤算法族 (Collaborative Filtering, CF)。经典的协同过滤算法曾是推荐系统的首选模型,从物品相似度和用户相似度角度出发,协同过滤衍生出物品协同过滤ItemCF) 和用户协同过滤UserCF) 两种算法。为了使协同过滤能够更好地处理稀疏共现矩阵问题、增强模型的泛化能力,从协同过滤衍生出矩阵分解模型 (Matrix Factorization, MF),并发展出矩阵分解的各分支模型
  • (2) 逻辑回归模型族 (Logistic Regression, LR)。与协同过滤仅利用用户和物品之间的显式或隐式反馈信息相比,逻辑回归能够利用和融合更多用户、物品及上下文特征。从 LR 模型衍生出的模型同样“枝繁叶茂”,包括增强了非线性能力的大规模分片线性模型 (Large Scale Piece-wise Linear Model, LS-PLM), 由逻辑回归发展出来的 FM 模型,以及与多种不同模型配合使用后的组合模型,等等
  • (3) 因子分解机模型族 (Factorization Machine, FM)。因子分解机在传统逻辑回归的基础上,加入了二阶部分,使模型具备了进行特征组合的能力。更进一步,在因子分解机基础上发展出来的域感知因子分解机 (Field-aware Factorization Machine, FFM) 则通过加入特征域的概念,进一步加强了因子分解机特征交叉的能力
  • (4) 组合模型。为了融合多个模型的优点,将不同模型组合使用是构建推荐模型常用的方法。Facebook 提出的 GBDT + LR 组合模型是在业界影响力较大的组合方式。此外,组合模型中体现出的特征工程模型化的思想,也成了深度学习推荐模型的引子和核心思想之一

协同过滤 – 经典的推荐算法 (Collaborative Filtering, CF)

2003 年,Amazon 发表论文 Amazon.com recommendations: item-to-item collaborative filtering, 这不仅让 Amazon 的推荐系统广为人知,更让协同过滤成为今后很长时间的研究热点和业界主流的推荐模型

用户协同过滤 (UserCF)

什么协同过滤

  • “协同过滤” 就是协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程

例子:商品推荐

  • 如下图所示,某电商平台的推荐系统需要决定是否推荐电视机给用户 X X X。可以利用的数据有用户 X X X 对其他商品的历史评价数据,以及其他用户对这些商品的历史评价数据。用户、商品和评价记录构成了带有标识的有向图,可以转换为 “共现矩阵” 存储 (将 “点赞” 值设为 1, 将 “踩” 的值设为 -1,"没有数据” 置为 0),推荐问题就转换成了预测矩阵中问号元素的值的问题
    在这里插入图片描述
  • 既然是 “协同” 过滤,用户理应考虑与自己兴趣相似的用户的意见。因此,预测的第一步就是找到与用户 X X X 兴趣最相似的 n n n ( T o p Top Top n n n) 个用户,,然后综合相似用户对电视机的评价,得出用户 X X X 对电视机评价的预测。从共现矩阵中可知,用户 B B B 和用户 C C C 跟用户 X X X 的行向量近似,被选为相似用户,他们对电视机的评价都是负面的,因此可预测用户 X X X 对电视机的评价也是负面的,推荐系统不会向用户 X X X 推荐电视机

用户相似度计算

  • 共现矩阵中的行向量代表相应用户的用户向量,因此用户相似度计算就是向量相似度的计算
    • (1) 余弦相似度
    • (2) 皮尔逊相关系数: R i p R_{ip} Rip 代表用户 i i i 对物品 p p p 的评分。 R ˉ i \bar R_i Rˉi 代表用户 i i i 对所有物品的平均评分, P P P 代表所有物品的集合。相比余弦相似度,皮尔逊相关系数通过使用用户平均分对各独立评分进行修正,减小了用户评分偏置的影响
      在这里插入图片描述
    • (3) 基于皮尔逊系数的思路,还可以通过引入物品平均分的方式,减少物品评分偏置对结果的影响
      在这里插入图片描述

最终结果的排序

  • 最终结果的排序: 在获得 T o p Top Top n n n 相似用户之后,利用 T o p Top Top n n n 用户生成最终推荐结果的过程

  • 最常用的方式是利用用户相似度和相似用户的评价的加权平均获得目标用户的评价预测
    在这里插入图片描述其中, 权重 w u , s w_{u,s} wu,s 是用户 u u u 和用户 s s s 的相似度, R s , p R_{s,p} Rs,p 是用户 s s s 对物品 p p p 的评分。在获得用户 u u u 对不同物品的评价预测后,最终的推荐列表根据预测得分进行排序即可得到

缺点

  • (1) 在互联网应用的场景下, 用户数往往远大于物品数, 而 UserCF 需要维护用户相似度矩阵以便快速找出 T o p Top Top n n n 相似用户。 该用户相似度矩阵的存储开销非常大, 而且随着业务的发展,用户数的增长会导致用户相似度矩阵的空间复杂度以术的速度快速增长, 这是在线存储系统难以承受的扩展速度
  • (2) 用户的历史数据向量往往非常稀疏,对于只有几次购买或者点击行为的用户来说, 找到相似用户的准确度是非常低的,这导致 UserCF 不适用于那些正反馈获取较困难的应用场景 (如酒店预定、 大件商品购买等低频应用)

物品协同过滤 (Item CF)

  • ItemCF 是基于物品相似度进行推荐的协同过滤算法。 通过计算共现矩阵中物品列向值的相似度得到物品之间的相似矩阵,再找到用户的历史正反馈物品的相似物品进行进一步排序和推荐

具体步骤

  • (1) 构建 m × n m\times n m×n 的共现矩阵并由此构建 n × n n\times n n×n物品相似度矩阵
  • (2) 获得用户历史行为数据中的正反馈物品列表。针对正反馈物品, 找出相似的 T o p Top Top k k k 个物品, 组成相似物品集合
  • (3) 对相似物品集合中的物品, 利用相似度分值进行排序,生成最终的推荐列表。如果一个物品与多个用户行为历史中的正反馈物品相似,那么该物品最终的相似度应该是多个相似度的累加
    在这里插入图片描述其中, H H H 是目标用户的正反馈物品集合, w p , h w_{p,h} wp,h 是物品 p p p 与物品 h h h 的物品相似度, R u , h R_{u,h} Ru,h 是用户 u u u 对物品 h h h 的已有评分

UserCF 与 ItemCF 的应用场景

  • UserCF 与 ItemCF 在具体应用场景上有所不同。一方面,由于 UserCF 基于用户相似度进行推荐,使其具备更强的社交特性, 用户能够快速得知与自己兴趣相似的人最近喜欢的是什么,即使某个兴趣点以前不在自己的兴趣范围内,也有可能通过 “朋友” 的动态快速更新自己的推荐列表。这样的特点使其非常适用于新闻推荐场景。 因为新闻本身的兴趣点往往是分散的,相比用户对不同新闻的兴趣偏好,新闻的及时性、热点性往往是其更重要的属性, 而 UserCF 正适用于发现热点,以及跟踪热点的趋势
  • 另一方面,ltemCF 更适用于兴趣变化较为稳定的应用, 比如在 Amazon 的电商场景中,用户在一个时间段内更倾向于寻找一类商品,这时利用物品相似度为其推荐相关物品是契合用户动机的。 在 Netflix 的视频推荐场景中 , 用户观看电影、 电视剧的兴趣点往往比较稳定, 因此利用 ltemCF 推荐风格、 类型相似的视频是更合理的选择

协同过滤的下一步发展

  • 协同过滤是一个非常直观、可解释性很强的模型,但它并不具备较强的泛化能力,换句话说,协同过滤无法将两个物品相似这一信息推广到其他物品的相似性计算上。这就导致了一个比较严重的问题:推荐结果的头部效应较明显, 处理稀疏向量的能力弱,也就是说,热门的物品具有很强的头部效应,容易跟大批物品产生相似性;而尾部的物品由于特征向量稀疏, 很少与其他物品产生相似性,导致很少被推荐
  • 为解决上述问题,同时增加模型的泛化能力,矩阵分解技术被提出。该方法在协同过滤共现矩阵的基础上,使用更稠密的隐向量表示用户和物品,挖掘用户和物品的隐含兴趣和隐含特征,在一定程度上弥补了协同过滤模型处理稀疏矩阵能力不足的问题
  • 另外, 协同过滤仅利用用户和物品的交互信息, 无法有效地引人用户年龄、性别、商品描述、商品分类、当前时间等一系列用户特征、物品特征和上下文特征, 这无疑造成了有效信息的遗漏。为了在推荐模型中引入这些特征, 推荐系统逐渐发展到以逻辑回归模型为核心的、能够综合不同类型特征的机器学习模型的道路上

矩阵分解算法 – 协同过滤的进化


  • 矩阵分解在协同过滤算法中共现矩阵的基础上,加入了隐向量的概念,加强了模型处理稀疏矩阵的能力,针对性地解决了协同过滤算法的头部效应较明显、泛化能力较弱的问题

矩阵分解算法的原理

下面以 Netflix 推荐场景的例子说明矩阵分解算法的原理

  • 矩阵分解算法为每一个用户和视频都生成相应的隐向量,将它们投影到同一个隐空间中,并保证相似的用户及用户可能喜欢的物品的距离相近。在推荐过程中,就按照视频向量到目标用户向量的距离由近到远生成推荐列表

矩阵分解

  • 矩阵分解算法将 m × n m\times n m×n 维的共现矩阵 R R R 分解为 m × k m\times k m×k 维的用户矩阵 U U U k × n k\times n k×n 维的物品矩阵 V V V 相乘的形式。其中 m m m 是用户数量, n n n 是物品数量, k k k 是隐向量的维度。 k k k 的大小决定了隐向量表达能力以及模型泛化能力的强弱 k k k 的取值越小, 隐向量包含的信息越少,模型的泛化程度越高;此外, k k k 的取值还与矩阵分解的求解复杂度直接相关。在具体应用中, k k k 的取值要经过多次试验找到一个推荐效果和工程开销的平衡点
    在这里插入图片描述
  • 在完成矩阵分解过程后,即可得到所有用户和物品的隐向量,并由此计算出用户 u u u 对物品 i i i预估评分 (由于很多用户并没有对所有商品都进行评分,因此共现矩阵中很多项都是缺失的。但通过矩阵分解,我们能近似地预测出某个用户对某个物品的打分):
    r ^ u i = q i T p u \hat r_{ui}=q_i^Tp_u r^ui=qiTpu在对某用户进行推荐时,可利用该用户的隐向量与所有物品的隐向量进行逐一的内积运算,得出该用户对所有物品的评分预测,再依次进行排序,得到最终的推荐列表

矩阵分解的求解过程: 梯度下降

  • 首先想到的肯定是截断奇异值分解,即 M ≈ U m × k Σ k × k V k × n M\approx U_{m\times k}\Sigma_{k\times k}V_{k\times n} MUm×kΣk×kVk×n,但其存在两点缺陷,使其不宜作为互联网场景下矩阵分解的主要方法:
    • (1) 奇异值分解要求原始的共现矩阵是稠密的 (注意,这里的稠密是指矩阵中不存在缺失元素)。互联网场景下大部分用户的行为历史非常少,用户-物品的共现矩阵非常稀疏,这与奇异值分解的应用条件相悖。如果应用奇异值分解,就必须对缺失的元素值进行填充。关于稀疏矩阵的奇异值分解可以进一步参考 浅谈张量分解 (三):如何对稀疏矩阵进行奇异值分解?
    • (2) 传统奇异值分解的计算复杂度达到了 O ( m n 2 ) O(mn^2) O(mn2) 的级别,这对于商品数量动辄上百万、用户数量往往上千万的互联网场景来说几乎是不可接受的
  • 由于上述两个原因,传统奇异值分解不适用于解决大规模稀疏矩阵的矩阵分解问题。因此,梯度下降法成了进行矩阵分解的主要方法,下面对其进行具体的介绍

目标函数

  • 目标函数的目的是让原始评分与用户向量和物品向量之积的差尽量小。同时,为了减少过拟合现象,还加入了正则化项
    min ⁡ q ∗ , p ∗ ∑ ( u , i ) ∈ K ( r u i − q i T p u ) 2 + λ ( ∣ ∣ q i ∣ ∣ 2 + ∣ ∣ p u ∣ ∣ 2 ) \min_{q^*,p^*}\sum_{(u,i)\in K}(r_{ui}-q_i^Tp_u)^2+\lambda(||q_i||^2+||p_u||^2) q,pmin(u,i)K(ruiqiTpu)2+λ(qi2+pu2)其中 K K K 是所有用户评分样本的集合

求偏导 (随机梯度下降)
∂ L ∂ q i = 2 ( r u i − q i T p u ) p u + λ q i ∂ L ∂ p u = 2 ( r u i − q i T p u ) q i + λ p u \frac{\partial L}{\partial q_i}=2(r_{ui}-q_i^Tp_u)p_u+\lambda q_i\\ \frac{\partial L}{\partial p_u}=2(r_{ui}-q_i^Tp_u)q_i+\lambda p_u qiL=2(ruiqiTpu)pu+λqipuL=2(ruiqiTpu)qi+λpu

更新参数
q i ← q i − γ ( 2 ( r u i − q i T p u ) p u + λ q i ) p u ← p u − γ ( 2 ( r u i − q i T p u ) q i + λ p u ) q_i\leftarrow q_i-\gamma\left(2(r_{ui}-q_i^Tp_u)p_u+\lambda q_i\right)\\ p_u\leftarrow p_u-\gamma\left(2(r_{ui}-q_i^Tp_u)q_i+\lambda p_u\right) qiqiγ(2(ruiqiTpu)pu+λqi)pupuγ(2(ruiqiTpu)qi+λpu)

消除用户和物品打分的偏差

  • 由于不同用户的打分体系不同 (比如在 5 分为满分的情况下,有的用户认为打 3 分已经是很低的分数了,而有的用户认为打 1 分才是比较差的评价),不同物品的衡量标准也有所区别 (比如电子产品的平均分和日用品的平均分差异有可能比较大),为了消除用户和物品打分的偏差, 常用的做法是在矩阵分解时加入用户和物品的偏差向量
    r u i = μ + b i + b u + q i T p u r_{ui}=\mu+b_i+b_u+q_i^Tp_u rui=μ+bi+bu+qiTpu其中 μ \mu μ全局偏差常数 b i b_i bi物品偏差系数,可使用物品 i i i 收到的所有评分的均值, b u b_u bu用户偏差系数,可使用用户 u u u 给出的所有评分的均值
  • 因此,目标函数可改为:
    min ⁡ q ∗ , p ∗ , b ∗ ∑ ( u , i ) ∈ K ( r u i − μ − b i − b u − q i T p u ) 2 + λ ( ∣ ∣ q i ∣ ∣ 2 + ∣ ∣ p u ∣ ∣ 2 + b u 2 + b i 2 ) \min_{q^*,p^*,b^*}\sum_{(u,i)\in K}(r_{ui}-\mu-b_i-b_u-q_i^Tp_u)^2+\lambda(||q_i||^2+||p_u||^2+b_u^2+b_i^2) q,p,bmin(u,i)K(ruiμbibuqiTpu)2+λ(qi2+pu2+bu2+bi2)

矩阵分解的优点和局限性

优点

  • (1) 泛化能力强。矩阵分解相较协同过滤有更强的泛化能力:在矩阵分解算法中,由于隐向量的存在,使任意的用户和物品之间都可以得到预测分值。而隐向量的生成过程其实是对共现矩阵进行全局拟合的过程,因此隐向量其实是利用全局信息生成的,有更强的泛化能力;而对协同过滤来说,如果两个用户没有相同的历史行为,两个物品没有相同的人购买,那么这两个用户和两个物品的相似度都将为 0 (因为协同过滤只能利用用户和物品自己的信息进行相似度计算,这就使协同过滤不具备泛化利用全局信息的能力)
  • (2) 空间复杂度低。不需再存储协同过滤模型服务阶段所需的 “庞大” 的用户相似性或物品相似性矩阵,只需存储用户和物品隐向量。空间复杂度由 n 2 n^2 n2 级别降低到 ( n + m ) ⋅ k (n+m)\cdot k (n+m)k 级别
  • (3) 更好的扩展性和灵活性。矩阵分解的最终产岀是用户和物品隐向量,这其实与深度学习中的 Embedding 思想不谋而合,因此矩阵分解的结果也非常便于与其他特征进行组合和拼接,并便于与深度学习网络进行无缝结合

局限性

  • 与协同过滤一样,矩阵分解同样不方便加入用户、物品和上下文相关的特征,这使得矩阵分解丧失了利用很多有效信息的机会,同时在缺乏用户历史行为时,无法进行有效的推荐
  • 为了解决这个问题,逻辑回归模型及其后续发展出的因子分解机等模型,凭借其天然的融合不同特征的能力,逐渐在推荐系统领域得到更广泛的应用

逻辑回归 – 融合多种特征的推荐模型

逻辑回归推荐模型

  • 相比协同过滤模型仅利用用户与物品的相互行为信息进行推荐,逻辑回归模型能够综合利用用户、物品、上下文等多种不同的特征,生成较为 “全面” 的推荐结果

点击率 (Click Through Rate, CTR) 预估问题

  • 逻辑回归将推荐问题看成一个分类问题通过预测正样本的概率对物品进行排序。这里的正样本可以是用户 “点击” 了某商品,也可以是用户 “观看” 了某视频,均是推荐系统希望用户产生的 “正反馈“ 行为。 因此, 逻辑回归模型将推荐问题转换成了一个点击率预估问题

基于逻辑回归模型的推荐流程

  • (1) 将用户年龄、性别、物品属性、物品描述、当前时间、当前地点等特征转换成数值型特征向量 (类别特征可使用 one-hot 编码)
  • (2) 确定逻辑回归模型的优化目标 (以优化 ”点击率” 为例),利用已有样本数据对逻辑回归模型进行训练,确定逻辑回归模型的内部参数
  • (3) 在模型服务阶段,将特征向量输入逻辑回归模型,经过逻辑回归模型的推断, 得到用户 “点击“ 物品的概率。利用 “点击” 概率对所有候选物品进行排序,得到推荐列表

逻辑回归模型的优势

  • (1) 数学含义上的支撑: 逻辑回归作为广义线性模型的一种, 它的假设是因变量 y y y 服从伯努利分布。那么在 CTR 预估这个问题上, “点击” 事件是否发生就是模型的因变量 y y y, 而用户是否点击广告是一个经典的掷偏心硬币问题。因此,CTR 模型的因变量显然应该服从伯努利分布。 所以,采用逻辑回归作为 CTR 模型是符合 “点击“ 这一事件的物理意义的。与之相比,线性回归作为广义线性模型的另一个特例,其假设是因变量 y y y 服从高斯分布,这明显不是点击这类二分类问题的数学假设
  • (2) 可解释性强:逻辑回归模型的数学形式是各特征的加权和,再施以 sigmoid 函数。不同权重代表了不同特征的重要程度
  • (3) 工程化的需要:逻辑回归模型易于并行化模型简单训练开销小

逻辑回归模型的局限性

  • 表达能力不强,无法进行特征交叉、特征筛选等一系列较为 “高级” 的操作,因此不可避免地造成信息的损失

从 FM 到 FFM – 自动特征交叉的解决方案

辛普森悖论

  • 逻辑回归模型表达能力不强的问题, 会不可避免地造成有效信息的损失。在仅利用单一特征而非交叉特征进行判断的情况下,有时不仅是信息损失的问题,甚至会得出错误的结论。 著名的 “辛普森悖论” 用一个非常简单的例子, 说明了进行多维度特征交叉的重要性
  • 辛普森悖论: 在对样本集合进行分组研究时,在分组比较中都占优势的一方, 在总评中有时反而是失势的一方

例子:视频推荐

  • 下面两表为某视频应用中男性用户和女性用户点击视频的数据
    在这里插入图片描述从以上数据中可以看出,无论男性用户还是女性用户,对视频 B B B 的点击率都高于视频 A A A,显然推荐系统应该优先考虑向用户推荐视频 B B B
  • 那么,如果忽略性别这个维度,将数据汇总会得岀什么结论呢?
    在这里插入图片描述在汇总结果中,视频 $$A 的点击率居然比视频 B B B 高。如果据此进行推荐,将得岀与之前的结果完全相反的结论,这就是所谓的 “辛普森悖论”
  • 在上述例子中,分组实验相当于使用 “性别” 组合特征计算点击率,而汇总实验则使用 “视频 i d id id” 这一单一特征计算点击率汇总实验对高维特征进行了合并,损失了大量的有效信息,因此无法正确刻画数据模式

POLY2 模型 – 特征交叉的开始

  • POLY2 模型实际上是进行了特征的 “暴力” 组合,数学形式如下所示:
    在这里插入图片描述可以看到,该模型对所有特征进行了两两交叉,并对所有的特征组合赋予权重 w h ( j 1 , j 2 ) w_{h(j_1,j_2)} wh(j1,j2)
  • POLY2 通过暴力组合特征的方式,在一定程度上解决了特征组合的问题。POLY2 模型本质上仍是线性模型,其训练方法与逻辑回归并无区别,因此便于工程上的兼容 (可以将 POLY2 的特征向量看作 n ( n − 1 ) 2 \frac{n(n-1)}{2} 2n(n1) 维的向量,各个分量为 x j 1 x j 2 x_{j_1}x_{j_2} xj1xj2)

这样的特征交叉具有很强的可解释性。例如有 “性别” 和 “是否为会员” 两个特征,那么它们的特征交叉就变成了 {男会员,男普通用户,女会员,女普通用户}


但 POLY2 模型存在两个较大的缺陷

  • (1) 在处理互联网数据时,经常采用 one-hot 编码的方法处理类别型数据,致使特征向量极度稀疏 (e.g. 假设某应用有 1 亿用户,那么将用户 i d id id 进行 one-hot 编码后,将造成 1 亿维特征向量中仅有 1 维是非零的。这是造成互联网模型的输入特征向量稀疏的主要原因),POLY2 进行无选择的特征交叉,导致原本就非常稀疏的特征向量更加稀疏大部分交叉特征的权重缺乏有效的数据进行训练,无法收敛
  • (2) 权重参数的数量由 n n n 直接上升 n 2 n^2 n2, 极大地增加了训练复杂度

FM 模型 – 隐向量特征交叉


  • 下式为 FM 二阶部分的数学形式,与 POLY2 相比, 其主要区别是用两个向量的内积 w j 1 ⋅ w j 2 w_{j_1}\cdot w_{j_2} wj1wj2 取代了单一的权重系数 w h ( j 1 , j 2 ) w_{h(j_1,j_2)} wh(j1,j2)。具体地说,FM 为每个特征学习了一个隐权重向量 (latent vector)。在特征交叉时,使用两个特征隐向量的内积作为交叉特征的权重
    在这里插入图片描述
  • 本质上,FM 引入隐向量的做法,与矩阵分解用隐向量代表用户和物品的做法异曲同工 (相当于构建了一个由特征隐向量组成的 n × k n\times k n×k 的矩阵 W = [ w 1 T . . . w n T ] W=\begin{bmatrix}w_1^T\\...\\w_n^T\end{bmatrix} W=w1T...wnT,然后用 W W T WW^T WWT 去拟合由 w h ( j 1 , j 2 ) w_{h(j_1,j_2)} wh(j1,j2) 组成的权重矩阵)。可以说,FM 是将矩阵分解隐向量的思想进行了进一步扩展,从单纯的用户、物品隐向量扩展到了所有特征上

FM v.s. POLY2

  • FM 通过引人特征隐向量的方式, 直接把 POLY2 模型 n 2 n^2 n2 级别的权重参数数量减少到了 n k nk nk ( k k k 为隐向量维度, n ≫ k n\gg k nk)。在使用梯度下降法进行 FM 训练的过程中, FM 的训练复杂度同样可被降低到 n k nk nk 级别, 极大地降低了训练开销
  • 隐向量的引入使 FM 能更好地解决数据稀疏性的问题。举例来说, 在某商品推荐的场景下,样本有两个特征, 分别是频道 (channel) 和品牌 (brand), 某训练样本的特征组合是(ESPN, Adidas)。在 POLY2 中,只有当 ESPN 和 Adidas 同时出现在一个训练样本中时,模型才能学到这个组合特征对应的权重;而在 FM 中, ESPN 的隐向量也可以通过 (ESPN, Gucci) 样本进行更新,Adidas 的隐向量也可以通过 (NBC, Adidas) 样本进行更新,这大幅降低了模型对数据稀疏性的要求。甚至对于一个从未出现过的特征组合 (NBC, Gucci), 由于模型之前已经分别学习过 NBC 和 Gucci 的隐向量,具备了计箕该特征组合权重的能力, 这是 POLY2 无法实现的。相比 POLY2, FM 虽然丢失了某些具体特征组合的精确记忆能力, 但是泛化能力大大提高
  • 在工程方面, FM 同样可以用梯度下降法进行学习, 使其不失实时性和灵活性。相比之后深度学习模型复杂的网络结构导致难以部署和线上服务,FM 较容易实现的模型结构使其线上推断的过程相对简单, 也更容易进行线上部署和服务。 因此, FM 在 2012 ~ 2014 年前后,成为业界主流的推荐模型之一

FFM 模型 – 引入特征域的概念


域 (field)

  • “域” 代表特征域,域内的特征一般是采用 one-hot 编码形成的一段 one-hot 特征向量
    • 例如,用户的性别分为男、女、未知三类,可用 one-hot 编码表示。这里性别就是一个特征域

FFM: Field-aware Factorization Machine

  • 相比 FM 模型,FFM 模型引入了特征域感知 (field-aware) 这一概念, 使模型的表达能力更强。下式为 FFM 的数学形式的二阶部分:
    在这里插入图片描述其与 FM 的区别在于隐向量由原来的 w j 1 w_{j_1} wj1 变成了 w j 1 , f 2 w_{j_1,f_2} wj1,f2. 这意味着每个特征对应的不是唯一一个隐向量, 而是一组隐向量。当 x j 1 x_{j_1} xj1 特征与 x j 2 x_{j_2} xj2 特征进行交叉时, x j 1 x_{j_1} xj1 特征会从 x j 1 x_{j_1} xj1 的这一组隐向量中挑出与特征 x j 2 x_{j_2} xj2 的域 f 2 f_2 f2 对应的隐向量 w j 1 , f 2 w_{j_1,f_2} wj1,f2 进行交叉。同理, x j 2 x_{j_2} xj2 也会用与 x j 1 x_{j_1} xj1 的域 f 1 f_1 f1 对应的隐向量进行交叉

例子

  • 假设在训练推荐模型过程中接收到的训练样本如下图所示:
    在这里插入图片描述其中,Publisher,Advertiser,Gender 是三个特征域,ESPN,NIKE,Male 分别是这三个特征域的特征值
  • 在 FFM 中,ESPN 有一组隐向量 { w E S P N , P , w E S P N , A , w E S P N , G } \{w_{ESPN,P},w_{ESPN,A},w_{ESPN,G}\} {wESPN,P,wESPN,A,wESPN,G},分别对应特征域 Publisher,Advertiser 和 Gender。,ESPN 与 NIKE,ESPN 与 Male 交叉时的权重分别是 w E S P N , A ⋅ w N I K E , P w_{ESPN,A}\cdot w_{NIKE,P} wESPN,AwNIKE,P w E S P N , G ⋅ w M a l e , P w_{ESPN,G}\cdot w_{Male,P} wESPN,GwMale,P

FFM v.s. FM

  • 在 FFM 模型的训练过程中,需要学习 n n n 个特征在 f f f 个域上的 k k k 维隐向量,参数数量共 n k f nkf nkf 个。在训练方面,FFM 的二次项并不能像 FM 那样简化,因此其复杂度为 k n 2 kn^2 kn2,远大于 FM 的 k n kn kn
  • 相比 FM , FFM 引入了特征域的概念,为模型引入了更多有价值的信息,使模型的表达能力更强

高阶特征交叉?

  • 理论上,FM 模型族利用交叉特征的思路可以引申到三阶特征交叉,甚至更高维的阶段。但由于组合爆炸问题的限制,三阶 FM 无论是权重数量还是训练复杂度都过高,难以在实际工程中实现。那么,如何突破二阶特征交叉的限制,进一步加强模型特征组合的能力,就成了推荐模型发展的方向
  • 下面介绍的组合模型在一定程度上解决了高阶特征交叉的问题

GBDT + LR – 特征工程模型化的开端

GBDT + LR 组合模型的结构

  • GBDT + LR利用 GBDT 自动进行特征筛选和组合,进而生成新的离散特征向量,再把该特征向量当作 LR 模型输入来预估 CTR。也就是说,该模型由独立的两步组成:(1) 先用 GBDT 构建特征工程,(2) 再利用 LR 预估 CTR (第 2 步即为逻辑回归推荐模型,下面主要讲解如何用 GBDT 构建特征工程)
    在这里插入图片描述

GBDT 部分在本质上就是进行了一次 Embedding 操作,将高维稀疏向量转换为低维稠密向量

GBDT 进行特征转换的过程

  • (1) 训练 GBDT:GBDT 可以进行二分类 (推荐 / 不推荐),因此直接用采集到的训练样本先训练出用于二分类的 GBDT 模型即可
    • 回归树中每个节点的分裂是一个自然的特征选择的过程,而多层节点的结构则对特征进行了有效的自动组合,也就非常高效地解决了过去棘手的特征选择和特征组合的问题
    • 决策树的深度决定了特征交叉的阶数。如果决策树的深度为 4 , 则通过 3 次节点分裂,最终的叶节点实际上是进行三阶特征组合后的结果,如此强的特征组合能力显然是 FM 系的模型不具备的
    • 但 GBDT 容易产生过拟合,以及 GBDT 的特征转换方式实际上丢失了大量特征的数值信息,因此不能简单地说 GBDT 的特征交叉能力强,效果就比 FFM 好,在模型的选择和调试上,永远都是多种因素综合作用的结果
  • (2) 假设已经利用训练集训练好了 GBDT 模型,则可以利用该模型完成从原始特征向量到新的离散型特征向量的转化
    • 一个训练样本在输入 GBDT 的某一子树后,会根据每个节点的规则最终落入某一叶子节点,把该叶子节点置为 1,其他叶子节点置为 0 , 所有叶子节点组成的向量即形成了该棵树的特征向量,把 GBDT 所有子树的特征向量连接起来,即形成了后续 LR 模型输入的离散型特征向量
      在这里插入图片描述
  • (3) LR 的输入为 GBDT 得到的离散型特征向量以及原特征向量

特征工程模型化

  • GBDT + LR 组合模型对于推荐系统领域的重要性在于,它大大推进了特征工程模型化这一重要趋势。广义上讲,深度学习模型通过各类网络结构、Embedding 层等方法完成特征工程的自动化,都是 GBDT+LR 开启的特征工程模型化这一趋势的延续

LS-PLM – 阿里巴巴曾经的主流推荐模型

大规模分片线性模型 (Large Scale Piece-wise Linear Model, LS-PLM)

虽然该模型在 2017 年才被阿里巴巴公之于众,但其实早在 2012 年,它就是阿里巴巴主流的推荐模型,并在深度学习模型提出之前长时间应用于阿里巴巴的各类广告场景

LS-PLM 模型的主要结构

分片

  • 考虑广告推荐领域的样本特点:如果 CTR 模型要预估的是女性受众点击女装广告的 CTR,那么显然,我们不希望把男性用户点击数码类产品的样本数据也考虑进来,因为这样的样本不仅与女性购买女装的广告场景毫无相关性,甚至会在模型训练过程中扰乱相关特征的权重
  • 为了让 CTR 模型对不同用户群体、不同使用场景更有针对性,其采用的方法是先对全量样本进行聚类,再对每个分类施以逻辑回归模型进行 CTR 预估。LS-PLM 的实现思路就是由该灵感产生的

MLR (Mixed Logistic Regression, 混合逻辑回归)

  • LS-PLM 又被称为 MLR 模型,它先对样本进行分片,再在样本分片中应用逻辑回归进行 CTR 预估。LS-PLM 的数学形式如下所示,首先用聚类函数 π \pi π 对样本进行分类 (这里的采用了 softmax 函数对样本进行多分类),再用 LR 模型计算样本在分片中具体的 CTR 然后将二者相乘后求和
    在这里插入图片描述其中的超参数 “分片数” m m m 可以较好地平衡模型的拟合与推广能力。当 m = 1 m=1 m=1 时,LS-PLM 就退化为普通的逻辑回归。 m m m 越大,模型的拟合能力越强,模型参数规模也越大,模型收敛所需的训练样本也随之增长。在实践中,阿里巴巴给出的 m m m经验值为 12
  • 在下图中,分别用红色和蓝色表示两类训练数据,传统 LR 模型的拟合能力不足,无法找到非线性的分类面,而 MLR 模型用 4 个分片完美地拟合出了数据中的菱形分类面
    在这里插入图片描述

LS-PLM 模型的优点

LS-PLM 模型适用于工业级的推荐、广告等大规模稀疏数据的场景,主要是因为其具有以下两个优势。

  • (1) 端到端的非线性学习能力:LS-PLM 具有样本分片的能力,因此能够挖掘出数据中蕴藏的非线性模式,省去了大量的人工样本处理和特征工程的过程,使 LS-PLM 算法可以端到端地完成训练,便于用一个全局模型对不同应用领域、业务场景进行统一建模
  • (2) 模型的稀疏性强:LS-PLM 在建模时引人了 L1 和 L2,1 范数,可以使最终训练出来的模型具有较高的稀疏度,使模型的部署更加轻量级。模型服务过程仅需使用权重非零特征,因此稀疏模型也使其在线推断的效率更高

补充:L2,1 范数为一种矩阵的范数。假设 X = [ x 1 T . . . x n T ] X=\begin{bmatrix}x_1^T\\...\\x_n^T\end{bmatrix} X=x1T...xnT,则 ∣ ∣ X ∣ ∣ 2 , 1 = ∑ i = 1 n ∣ ∣ x i ∣ ∣ 2 ||X||_{2,1}=\sum_{i=1}^n||x_i||_2 X2,1=i=1nxi2,也就是由 X X X 行向量的 L2 范数组成的向量的 L1 范数。由于 L1 正则化会产生稀疏解,因此 L2,1 正则化会使 X X X 产生行稀疏性,因此这也是一种结构稀疏

总结 – 深度学习推荐系统的前夜

在这里插入图片描述

参考文献

  • 《深度学习推荐系统》(王喆)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度学习推荐系统领域有着广泛的应用。下面是一些关于深度学习推荐系统的笔记: 1. 数据表示:深度学习推荐系统通常使用向量表示用户和物品,将它们映射到低维空间中。常见的方法包括使用Embedding层将用户和物品ID转换为密集向量表示。 2. 神经网络模型:深度学习推荐系统使用神经网络模型来学习用户和物品之间的复杂交互关系。常见的模型包括多层感知机(Multi-Layer Perceptron,MLP)、卷积神经网络(Convolutional Neural Networks,CNN)和循环神经网络(Recurrent Neural Networks,RNN)等。 3. 个性化排序:深度学习推荐系统可以通过学习用户行为数据,预测用户对物品的喜好程度,并根据预测结果对物品进行个性化排序。常见的模型包括基于DNN的排序模型和序列模型,如Wide & Deep模型、DeepFM模型和Transformer模型等。 4. 强化学习:深度学习推荐系统可以与强化学习相结合,通过与环境交互来优化推荐策略。常见的方法包括使用深度Q网络(Deep Q-Network,DQN)和策略梯度方法等。 5. 多任务学习:深度学习推荐系统可以同时处理多个任务,如点击率预测、商品推荐和用户画像等。多任务学习可以通过共享模型参数来提高模型的泛化能力和效果。 6. 可解释性:深度学习模型在推荐系统中通常具有较强的表达能力,但其可解释性较差。为了提高可解释性,可以

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值