为什么要了解前深度学习时代的推荐模型?
- 即使在深度学习空前流行的今天,协同过滤、逻辑回归、因子分解机等传统推荐模型仍然凭借其可解释性强、硬件环境要求低、易于快速训练和部署等不可替代的优势,拥有大量适用的应用场景
- 传统推荐模型是深度学习推荐模型的基础:逻辑回归模型是神经元(深度神经网络的基本单元)的另一种表现形式;……
1、传统推荐模型的演化关系(汇总)
传统推荐模型的发展脉络:
- 协同过滤 (CF) 算法族:
- 物品协同过滤 ItemCF:利用物品相似度
- 用户协同过滤 UserCF:利用用户相似度
- 矩阵分解模型 MF:更好地处理稀疏共现矩阵问题、增强模型泛化能力
- 逻辑回归 (LR) 模型族:协同过滤仅能利用用户和物品之间的交互信息,而逻辑回归能够利用和融合更多的用户、物品及上下文特征
- 因子分解机 (FM) 模型族:在逻辑回归的基础上,加入了二阶交叉部分,是模型具备了特征组合的能力
- 组合模型:
- GBDT + LR
2、协同过滤 CF
协同过滤的定义:就是协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程
协同过滤的算法流程:(以电商网站商品推荐为例,决定是否向用户 X 推荐商品 A, or 决定用户 X 的推荐物品列表)
- 有 n 种商品 A, B, C, D, ……;有 m 个用户 X, Y, ……
- 可利用的数据:有用户 X 对其它商品的历史评价数据,以及其它用户对各商品的历史评价数据(当然每个用户对每种商品的评价数据不一定全都有)
- 将以上数据转换为共现矩阵:用户作为矩阵行坐标,商品作为列坐标,每个元素代表用户对商品的评分/喜好
- 问题转换:预测共现矩阵中 X 行 A 列这个缺失值
- 如果使用用户协同过滤(UserCF)算法:基于用户相似度,进行推荐
- 如果使用物品协同过滤(ItemCF)算法:基于物品相似度,进行推荐
两个向量 i, j 之间的相似度 计算:
- 余弦相似度:
- 两个向量夹角越小,相似度越大
- 皮尔逊相关系数
- 通过用户/物品平均分对各独立评分进行修正,减小了用户/物品评分偏置的影响
- … …
- 余弦相似度:
2.1 用户协同过滤 UserCF
- 基于历史数据构建 m 行 n 列的共现矩阵(m 个用户,n 种商品)
- 共现矩阵第 i 行的行向量就是第 i 个用户的用户向量
- 计算用户相似度:计算共现矩阵中两两行向量之间的相似度,构建 m×m 的用户相似度矩阵
- 获取和目标用户 X 最相似的 Top k 个相似用户
- 利用用户相似度和相似用户的评价的加权平均获得目标用户 X 对各商品的预测打分
- 用户 u 对物品 p 的预测评分:, 是用户 u 和用户 s 的相似度, 是用户 s 对物品 p 的评分
- 根据预测打分进行排序得到最终的物品推荐列表
缺点:
- 互联网应用场景下,用户数 m 往往远大于物品数 n,User CF 需要存储用户相似度矩阵,以便快速找出 top k 相似用户,开销巨大()
- 用户的历史数据向量往往非常稀疏(可能只有几次购买或点击记录),很难找到准确的相似用户
2.2 物品协同过滤 ItemCF
- 基于历史数据构建 m 行 n 列的共现矩阵(m 个用户,n 种商品)
- 共现矩阵第 j 列的列向量就是第 j 个物品的物品向量
- 计算物品相似度:计算共现矩阵中两两列向量之间的相似度,构建 n×n 的物品相似度矩阵
- 获取和目标用户 X 历史上感兴趣的物品列表(正反馈物品集合)
- 针对正反馈物品集合,通过物品相似度矩阵,计算各物品和正反馈物品的相似性,找出最相似的 Top k 个物品,组成相似物品集合
- 一个物品的相似度是该物品和正反馈物品集合中所有物品相似度的累加
- 用户 u 对物品 p 的预测评分:,H 是目标用户的正反馈物品集合, 是物品 p 与 h 的物品相似度, 是用户 u 对物品 h 的已有评分
- 根据各物品的相似度打分进行排序,生成最终的物品推荐列表
2.3 UserCF 和 ItemCF 的应用场景
推荐算法 | 特点 | 适用场景 |
---|---|---|
UserCF | 基于用户相似度进行推荐 具备更强的社交特性 |
适用于新闻推荐场景 适用于发现热点,以及跟踪热点的趋势 |
ItemCF | 基于物品相似度进行推荐 | 适用于兴趣变化较为稳定的应用: - 电商场景:用户在一段时间内更倾向于寻找一类商品 - 视频推荐场景:用户观看电影、电视剧的兴趣点往往比较稳定 |
2.4 协同过滤的局限性
协同过滤的优点:非常直观、可解释性很强
协同过滤的局限性:
- 泛化能力差,处理稀疏数矩阵的能力差,推荐结果的头部效应明显
- 泛化能力差指的是:CF 无法将两个物品相似这一信息推广(泛化)到其他(特征向量稀疏的)物品相似性计算上
- 热门物品容易跟大量物品产生相似性,而尾部物品由于特征向量稀疏,很少与其它物品产生相似性
- 解决办法:
- 矩阵分解技术 MF:通过分解共现矩阵,得到更稠密的用户和物品的隐向量(将共现矩阵分解为用户矩阵和物品矩阵),提升了处理稀疏矩阵的能力,增强了模型的泛化能力
- AutoRec——单隐层神经网络推荐模型:结合了自编码器 + 协同过滤,分为基于物品的 AutoRec 和基于用户的 AutoRec
- 仅利用用户和物品的交互信息,无法有效引入用户特征(用户年龄、性别等)、物品特征(商品描述、分类等)和上下文特征(当前时间等),造成有效特征的遗漏
- 解决办法:逻辑回归模型 LR:能综合不同类型特征
3、矩阵分解算法 MF
矩阵分解算法 MF 是在协同过滤算法中“共现矩阵”的基础上,加入隐向量的概念,即将共现矩阵分解为用户矩阵和物品矩阵,以得到更稠密的用户和物品的隐向量,加强了模型处理稀疏矩阵的能力,也增强了模型的泛化能力
3.1 矩阵分解算法的原理
矩阵分解算法期望为每个用户和每个物品都生成一个(稠密的)隐向量,将用户和物品都定位到隐向量的表示空间上(如下左图所示),距离相近的用户和物品表明兴趣点相近,因此将距离相近的物品推荐给该用户
矩阵分解就相当于一种 Embedding 方法。矩阵分解的主要过程,就是先分解协同过滤生成的共现矩阵,生成用户和物品的隐向量,再通过用户和物品隐向量间的相似性进行推荐。
- 对某用户进行推荐时,利用该用户的隐向量和所有物品的隐向量进行逐一的内积运算,得到该用户对所有物品的评分预测,再依次进行排序,得到最终的推荐列表
矩阵分解将 m×n 维的共现矩阵 R 分解为 m×k 维的用户矩阵 U 和 k×n 维的物品矩阵 V 相乘的形式:
- m 是用户数量,n 是物品数量,k 是用户/物品隐向量的维度
- k 的大小决定了隐向量表达能力的强弱,k 的取值越小,隐向量包含的信息越少,模型泛化能力越强;k 的取值越大,隐向量的表达能力越强,但泛化程度相应降低
- 在协同过滤算法中,共现矩阵的每一行就相当于一个用户向量(维度为 n),每一列就相当于一个物品向量(维度为 m),往往是很稀疏的;而矩阵分解得到的用户向量(用户矩阵中的一行)、物品向量(物品矩阵中的一列)都是 k 维的稠密向量
用户 u 对物品 i 的预估评分计算:
- 是用户 u 在用户矩阵 U 中对应的行向量, 是物品 i 在物品矩阵 V 中对应的列向量
3.2 矩阵分解的求解过程
矩阵分解主要有三种方法:
- 特征值分解:只能用于方阵,显然不适用于分解用户-物品共现矩阵
- 奇异值分解 SVD:存在两点缺陷,使其不适合作为互联网场景下大规模稀疏矩阵分解的主要方法:
- 要求原始的待分解的共现矩阵是稠密的,而实际上用户-物品的共现矩阵非常稀疏
- 计算复杂度高达 O(),对于商品数量动辄上百万、用户数量动辄上千万的互联网场景不可接受
- 梯度下降:大规模稀疏矩阵分解的主要方法
梯度下降法:
- 由于用户-物品共现矩阵是大规模稀疏矩阵,因此需要使用梯度下降法进行矩阵分解
- 目标函数:
- 目的是让共现矩阵中的原始评分 与预估评分(即用户向量和物品向量之积) 的差尽可能小,尽可能保存共现矩阵的原始信息
- 是正则化项,用于减少过拟合现象
- 对目标函数求偏导,取得梯度下降的方向和幅度
- 沿梯度的反方向更新参数
- 迭代
过拟合现象和正则化:
- 加入正则化项(给模型加入限制),可以避免受个别噪点的影响,使模型的预测输出更稳定
- 正则化项严格的数学形式:
- λ 是正则化系数,λ 越大,正则化的限制越强
- 后面部分就是模型权重的 q 次方之和
- q 取 1 就是 L1 正则化,q 取 2 就是 L2 正则化
- 损失函数中加入正则化项为什么能保持模型稳定?
- 正则化项就是一个系数×(模型权重的 q 次方之和),模型权重越大,正则化项越大,损失函数的值就越大。而梯度下降是朝着损失值减小的方向发展的,因此模型权重会变小,模型输出的波动也就更小,模型更稳定
为什么矩阵分解相较于协同过滤有更强的泛化能力?
- 矩阵分解:
- 有了隐向量后,任意的用户和物品之间都可以计算预测分值
- 矩阵分解生成隐向量的过程是对共现矩阵进行全局拟合的过程,因此隐向量中包含了全局信息,有更强的泛化能力。
- 协同过滤:
- 如果如果两个用户无相同历史行为 or 两个物品没有相同的人购买,那这两个用户 or 这两个物品的相似度就为 0
- 协同过滤不具备泛化利用全局信息的能力
3.3 消除用户和物品打分的偏差
为了消除不同用户对不同物品打分的偏差,常用的做法是在矩阵分解时加入用户和物品的偏差向量:
- 是全局偏差常数
- 是物品偏差系数:可使用物品 i 收到的所有评分的均值
- 是用户偏差系数:可使用用户 u 给出的所有评分的均值
- 当然目标函数也要做出相应改变
为什么要消除用户啊和物品打分的偏差?
- 使得矩阵分解得到的隐向量更能反映不同用户对不同物品的“真实”态度差异,也就更容易捕捉评价数据中有价值的信息,从而避免推荐结果有偏
3.4 矩阵分解的优点和局限性
矩阵分解的优点:
- 泛化能力强:在一定程度上解决了数据稀疏问题
- 空间复杂度低:
- 用户协同过滤 User CF 存储用户相似度矩阵,m 个用户,空间复杂度为 O();
- 物品协同过滤 Item CF 存储物品相似度矩阵,n 个物品,空间复杂度为 O();
- 而矩阵分解存储用户和物品矩阵,空间复杂度降到了
- 更好的扩展性和灵活性:矩阵分解得到用户和物品隐向量,与深度学习中的 Embedding 思想不谋而合,后续可以和深度学习无缝结合
矩阵分解的局限性:
- 和协同过滤 CF 一样,矩阵分解同样仅利用了用户和物品的交互信息,无法有效引入用户特征(用户年龄、性别等)、物品特征(商品描述、分类等)和上下文特征(当前时间等),造成有效特征的遗漏
- 在缺乏用户历史行为时,无法进行有效的推荐
矩阵分解可以用神经网络的形式表示,见 NeuralCF 模型——CF 与深度学习的结合
- 矩阵分解相当于 embedding 层,得到用户隐向量和物品隐向量
- 用户隐向量 u 和物品隐向量 i 内积得到预测评分,则相当于 scoring 层(输出层)
但是,内积的交互形式过于简单,表达能力不足,很可能欠拟合,因此,改进:
- NeuralCF 模型:用神经网络 MLP 来拟合互操作函数(代替矩阵分解的内积),是表达能力加强版的矩阵分解模型
- Neural CF 混合模型:将 元素积 和 神经网络 这两种互操作整合在一起,将两种互操作得到的特征向量拼接起来,交由输出层进行目标拟合
4、逻辑回归 LR——融合多种特征的推荐模型
逻辑回归模型 LR 能综合利用用户、物品、上下文等不同的特征
逻辑回归模型 LR 将推荐问题转换成一个点击率(CTR)预估的二分类问题:
更一般地,逻辑回归将推荐问题看成一个二分类问题,通过预测为正样本的概率对物品进行排序。正样本可以是用户点击了的商品 or 观看了的视频等,是用户产生了正反馈行为的样本
- 将用户、物品、上下文等不同特征转换成数值型特征向量,输入到逻辑回归模型(事先用已有数据训练好模型参数),得到预估的点击率 CTR,再按照预估 CTR 进行排序,得到推荐列表
4.1 逻辑回归模型的数学形式
- 输入:特征向量
- 逻辑回归模型的推断过程:
- 权重向量 代表各特征的重要性差异,是模型训练参数
- 使用 sigmoid 函数将输出映射到 0~1 之间,得到最终的点击率 CTR
4.2 逻辑回归模型的训练方法
梯度下降法:对目标函数进行求导,得到梯度的方向,沿梯度的反方向(下降最快的方向)下降,并迭代此过程直至寻找到局部最小点
- 目的:找到一个函数的局部极小值
上一小节 得到了逻辑回归模型的数学形式 ,对于一个输入样本 ,预测结果为正、负样本的概率:
- 综合:
梯度下降法:
- 目标函数:
- 通过极大似然估计的原理得到如上似然函数
- 可以两边取 log,变成累加的形式,便于求导
- 两边取负数,将求最大值问题转换成求最小值问题
- 对每个参数求导,得到梯度方向
- 沿梯度反方向更新参数
- 迭代… ….
4.3 逻辑回归模型的优势和局限性
逻辑回归模型的优势:
- 形式上适于融合不同的特征:不像协同过滤仅能利用用户和物品之间的交互信息
- 数学含义上的支撑:逻辑回归的假设是因变量 y 服从伯努利分布,而 CTR 模型的因变量(是否发生点击事件)显然是服从伯努利分布的,因此假设相符。作为对比,线性回归的假设是因变量 y 服从高斯分布,不符合点击这类二分类问题的假设
- 可解释性强:逻辑回归模型的数学形式是各特征的加权和(综合不同特征对 CTR 的影响),再施以 sigmoid 函数,将值映射到 0~1 区间内,符合 CTR 的物理意义,也符合人的直觉。可以轻易地根据权重的不同解释哪些特征比较重要;也可以在 CTR 预估有偏差时定位是哪些因素影响力最终结果
- 工程化的需要:GPU 流行之前,逻辑回归模型凭借其易于并行化、模型简单、训练开销小成为主流
逻辑回归模型的局限性:
- 模型不具备特征组合的能力,表达能力不强,无法进行特征交叉、特征筛选等一系列较为高级的操作,因此不可避免地造成信息损失
- 逻辑回归只对单一特征做简单加权,不具备进行特征交叉生成高维组合特征的能力,因此表达能力很弱
- 无法进行多维度特征交叉,严重的话还可能导致辛普森悖论
解决:因子分解机等高维的复杂模型、深度神经网络
5、因子分解机 FM、FMM——特征交叉
以下公式都省略了逻辑回归最后的激活函数 sigmoid,如果做 CTR,还是需要 sigmoid 来讲输出限制在 [0, 1]
5.1 POLY2 模型——特征交叉的开始
POLY2 模型是对特征进行暴力组合
本质上就是逻辑回归模型,只不过输入的特征变成了特征交叉项,是特征交叉项的加权和
- 数学形式:
- 对所有特征进行两两交叉,并对每个特征组合赋予权重
训练方法:本质上仍是线性模型,训练方法与逻辑回归模型没有区别(梯度下降法)
POLY2 的缺陷:
- 对于互联网数据,经常采用 one-hot 编码方式处理类别型数据,使得特征向量很稀疏,而 POLY2 暴力组合特征,就使得组合特征更加稀疏,导致大部分交叉特征的权重缺乏有效的数据进行训练,无法收敛
- 权重参数的数量从 n(逻辑回归模型)上升到 ,极大地增加了训练复杂度
解决:因子分解机 FM
5.2 因子分解机 FM——隐向量特征交叉
FM 的完整公式,其实就是在 LR 的基础上增加了因式分解部分
因子分解机 FM 二阶部分的数学形式:
- FM 为每个特征 学习了一个隐权重向量 (latent vector)
- FM 为所有特征引入隐向量的做法,是矩阵分解用隐向量代表用户和物品的做法的扩展,矩阵分解只是引入了用户和物品隐向量,而 FM 是为所有特征都引入了隐向量(是 Embedding 的雏形)
- 将特征两两交叉时,用两个隐权重向量的内积 取代了 POLY2 模型中单一的权重系数 ,作为交叉特征的权重。(内积得到的是标量)
因子分解机 FM (引入特征权重隐向量)的优势:(就是解决了 POLY2 的两个缺陷)
- 相较于 POLY2,权重参数数量由 减到 nk(k 是隐向量维度),降低了训练开销
- 相较于 POLY2,能更好地解决数据稀疏性的问题(举例见书 p37)
- 相较于 POLY2,FM 虽然丢失了某些具体特征组合的精确记忆能力,但是泛化能力大大提高
例子:假设有性别、学校两个特征,对于某个特征组合
(男,北邮)
:- 在 POLY2 中,只有当
男
和北邮
同时出现在一个训练样本中时,模型才能学到这个组合特征对应的权重 - 在 FM 中,
男
对应的权重隐向量还可以通过(男,北航)
样本进行更新;北邮
的权重因向量还可以通过(女,北邮)
样本进行更新。这大幅降低了模型对数据稀疏性的要求。甚至通过以上两个样本,还能得到(女,北航)
这个从未出现过的特征组合的权重
- 在 POLY2 中,只有当
- 相较于 POLY2,FM 虽然丢失了某些具体特征组合的精确记忆能力,但是泛化能力大大提高
训练方法:梯度下降法
5.3 域感知因子分解机 FFM——引入特征域的概念
FFM 引入了特征域感知(field-aware),使模型的表达能力更强
域感知因子分解机 FFM 的二阶部分的数学形式:
- 每个特征对应的是一组权重隐向量,而不再是 FM 中一个特征对应一个权重隐向量
- 当特征 进行交叉时,特征 会从其对应的一组权重隐向量中挑出与特征 的域 对应的隐向量 进行交叉,同理,特征 会从其对应的一组权重隐向量中挑出与特征 的域 对应的隐向量 进行交叉
域/特征域:域内特征一般是 one-hot 编码的一段特征向量
- eg. 性别特征域:包含三类,分别是男、女、未知,对应的特征向量分别是 [1, 0, 0], [0, 1, 0], [0, 0, 1]
FM 的某个特征和其它所有特征交叉时使用的都是同一个权重隐向量;而 FFM 的某个特征和不同域的特征交叉时使用的是不同的隐向量(详见书 p38)
例子:对于三个特征域:性别、学校、专业,假设分别有一个特征
男
、北邮
、计科
- FM:以上三个特征分别对应一个权重 , , ,特征组合
(男, 北邮)
交叉的权重为 ,特征组合(男, 计科)
交叉的权重为 ,其中特征男
对应的权重隐向量在两个特征交叉中是同一个- FFM:特征组合
(男, 北邮)
交叉的权重为 ,特征组合(男, 计科)
交叉的权重为 ,特征男
对应的权重隐向量在两个特征交叉中是不同的隐向量
FFM 的缺点:
- 训练权重参数数量共 个(n 个特征在 f 个域上的 k 维隐向量),训练的计算复杂度从 FM 的 kn 上升到
FFM 的优点:
- 模型的表达能力更强:相较于 FM,引入了特征域的概念,为模型引入了更多有价值的信息
5.4 POLY2→FM→FFM
n 是特征数量,k 是权重隐向量的维度,f 是特征域个数
模型 | 训练的权重参数数量 | 特点 |
---|---|---|
POLY2 | O(),具体为 n(n-1)/2 | 无选择地对特征进行两两交叉,每个交叉(组合)特征对应一个权重值 缺陷: - 数据稀疏性问题,导致训练无法收敛 - 训练复杂度高 |
FM | O(nk) | 每个特征对应一个 k 维的权重隐向量,两个特征对应的权重隐向量做内积得到交叉特征的权重向量 优点: - 比 POLY2 泛化能力强,但记忆能力有所减弱 - 处理稀疏特征向量的能力远强于 POLY2 - 相较于 POLY2 降低了训练开销 |
FFM | n·f·k,相当于 O() | 每个特征对应一组 k 维的权重隐向量。在做特征交叉时,每个特征选择与对方域对应的隐向量做内积运算,得到交叉特征的权重 优点:模型的表达能力更强 缺点:计算复杂度更高 |
FM 模型族的缺点:
- 只能做二阶特征交叉,不能实现高阶特征交叉来进一步加强模型特征组合的能力
- 虽然理论上可以引申到三阶交叉特征,但由于组合爆炸问题,权重数量和训练的计算复杂度都过高,实际不可行
- 解决方法:组合模型 GBDT + LR 在一定程度上解决了高阶特征交叉的问题
6、GBDT+LR——特征工程模型化的开端
FFM 模型只能做二阶特征交叉,若做高阶特征交叉会遇到组合爆炸和计算复杂度过高的问题,而 GBDT + LR 组合模型能解决这个问题
6.1 GBDT + LR 组合模型的结构
GBDT + LR 组合模型:(以下两步是独立训练的,因此不存在如何将 LR 的梯度回传给 GBDT 这类复杂问题)
- 利用 GBDT 模型自动进行特征筛选和组合(构建特征工程),生成新的离散特征向量
- 将生成的特征向量输入到逻辑回归模型(LR),预估点击率(CTR)
GBDT 模型(梯度提升决策树):书 p42
- GBDT 的基本结构是决策树组成的树林,学习方式是梯度提升
- GBDT 作为集成模型,预测方式是把所有子树的结果加起来
- GBDT 通过逐一生成决策子树的方式生成整个树林
- 生成新子树时,以样本标签值与当前树林预测值之间的残差作为拟合目标
- 每棵树的生成过程是一棵标准的回归树生成过程,因此回归树中每个节点的分裂是一个自然的特征选择过程,而多层节点的结构则对特征进行了有效的自动组合,解决了特征选择和特征组合的问题
6.2 GBDT 进行特征转换的过程
- 先用训练集训练好 GBDT 模型
- 将训练样本(原始特征向量 x)输入到训练好的 GBDT 模型,最终输出转换后的新的离散型特征向量
- 一个训练样本输入 GBDT 的某一棵子树,根据每个节点的规则最终会落入到某个叶子节点,将该叶子节点置 1,其余叶子节点置 0,就得到这棵子树的特征向量
- 将每棵子树生成的特征向量连接起来,就得到了新的离散型特征向量
决策树的深度决定了特征交叉的阶数:
- 如果决策树深度为 4,则通过了 3 次节点分裂,最终的叶结点实际上是进行三阶特征组合后的结果
GBDT 的优点:
- 特征交叉能力强:决策树的深度决定了特征交叉的阶数,深度为 d 的决策树,通过 d-1 次节点分裂,能得到进行 d-1 阶特征组合后的结果,如此强的特征组合能力是 FM 模型族达不到的
GBDT 的缺点:
- 容易产生过拟合
- GBDT 的特征转换方式实际上丢失了大量特征的数值信息
6.3 特征工程模型化
- GBDT + LR 组合模型大大推进了特征工程模型化,真正实现了端到端(End-to-End)的训练,而不必在特征工程上投入过多的人工筛选和模型设计的能力
- 广义上讲,深度学习模型通过各类网络结构、Embedding 层等方法完成特征工程的自动化,都是 GBDT + LR 开启的特征工程模型化这一趋势的延续
7、大规模分段线性模型 LS-PLM (MLR)
即,聚类 + 逻辑回归
大规模分段线性模型 LS-PLM,又称为混合逻辑回归 MLR(阿里巴巴曾经的主流推荐模型):
- 先对全量样本进行聚类(分片)
- 再对每个分类(分片)应用逻辑回归模型(LR)进行点击率(CTR)预估
使得 CTR 模型对不同用户群体、不同使用场景更有针对性
LS-PLM 的数学形式:
- 先用聚类函数 对样本进行分类(这里采用的是 softmax 函数对样本进行多分类)
- 再用逻辑回归模型(LR) 计算样本在分片中具体的 CTR
- 将两者相乘后求和
分片数 m:超参数,可以较好地平衡模型的拟合与推广能力
- 当 m=1 时,LS-PLM 模型就退化成逻辑回归模型(LR)
- m 越大,模型的拟合能力越强,但参数规模也随之增大,模型收敛所需的训练样本也随之增大
- m 的经验值为 12
LS-PLM 模型的优点:
- 端到端的非线性学习能力:LS-PLM 具有样本分片的能力,因此能够挖掘出数据中蕴藏的非线性模式,省去大量的人工样本处理和特征工程的过程,使 LS-PSM 算法可以端到端地完成训练,便于用一个全局模型对不同应用领域、业务场景进行统一建模
- 模型的稀疏性强:LS-PSM 在建模时引入了 L1 和 L2,1 范数(L1 范数比 L2 范数更容易产生稀疏解),可以使最终训练出来的模型具有较高的稀疏度,使模型的部署更加轻量级,在线推断的效率也更高
从深度学习的角度看 LS-PLM 模型:
LS-PLM 可以看作一个加入了注意力机制的两层神经网络模型:
书中说是三层神经网络,但是神经网络的输入层没有进行计算一般不会算作一层,所以应该只有隐层和输出层两层
- 输入层是样本的特征向量,中间层是由 m 个神经元组成的隐层(m 是分片的个数),最后一层是由单一神经元组成的输出层(CTR 预估问题)
- 在隐层和输出层之间应用注意力机制,神经元之间的权重是由分片函数得出的注意力得分确定的,也就是说,样本属于哪个分片的概率就是其注意力得分
8、总结:传统推荐系统模型
模型名称 | 基本原理 | 特点 | 局限性 |
---|---|---|---|
协同过滤 CF | 根据用户的行为历史生成用户-物品共现矩阵,利用用户相似性 or 物品相似性进行推荐 | 原理简单、直接,应用广泛 | 泛化能力差,处理稀疏矩阵的能力差,推荐结果的头部效应明显; 仅利用用户和物品的交互信息,无法有效引入用户特征、物品特征和上下文特征,造成有效特征的遗漏 |
矩阵分解 MF | 将协同过滤算法中的共现矩阵分解为用户矩阵和物品矩阵,利用用户隐向量和物品隐向量的内积进行排序并推荐 | 相教协同过滤,泛化能力有所增强,对稀疏矩阵的处理能力有所加强; | 除了用户历史行为数据(用户和物品的交互信息),难以应用其它用户特征、物品特征及上下文特征 |
逻辑回归 LR | 将推荐问题转换成类似点击率CTR预估的二分类问题,将用户、物品、上下文等不同特征转换成特征向量,输入逻辑回归模型得到CTR,再按照预估CTR进行排序并推荐 | 能够融合多种类型的不同特征 | 模型不具备特征组合的能力,表达能力较差 |
因子分解机 FM | 在逻辑回归的基础上,在模型中加入二阶特征交叉部分,为每一维特征训练得到相应的权重隐向量,通过隐向量间的内积运算得到交叉特征的权重 | 相比逻辑回归,具备了二阶特征交叉能力,模型的表达能力增强 | 由于组合爆炸问题的限制,模型不易扩展到三阶特征交叉阶段 |
域感知因子分解机 FFM | 在FM模型的基础上,加入“特征域”的概念,使每个特征在与不同域的特征交叉时采用不同的隐向量 | 相比FM,进一步加强了特征交叉的能力 | 模型的训练开销达到了O()的量级,训练开销较大; 由于组合爆炸问题的限制,模型不易扩展到三阶特征交叉阶段 |
GBDT+LR | 利用GBDT进行“自动化”的 特征组合,将原始特征向量转换成离散特征向量,并输入逻辑回归模型,进行最终的 CTR 预测 | 特征工程模型化(实现端到端训练);使模型具备了更高阶特征组合的能力 | GBDT 无法进行完全并行的训练,更新所需的训练时长较长 |
大规模分段线性模型 LS-PLM |
首先对样本进行“分片”,在每个“分片”内部构建逻辑回归模型,将每个样本的各“分片”概率与逻辑回归的得分进行加权平均,得到最终的预估值 | 模型结果类似三层神经网络(注意力机制),具备了较强的表达能力 | 模型结构相比深度学习模型仍比较简单,有进一步提高的空间 |