传统推荐模型

image.png
image.png
  1. 即使是深度学习空前流行的今天,LR、FM等传统CTR模型仍然凭借其可解释性强、轻量级的训练部署要求、便于在线学习等不可替代的优势,拥有大量适用的应用场景。模型的应用不分新旧贵贱,熟悉每种模型的优缺点,能够灵活运用和改进不同的算法模型是算法工程师的基本要求。

  2. 传统CTR模型是深度学习CTR模型的基础。深度神经网络(Deep Nerual Network,DNN)从一个神经元生发而来,而LR正是单一神经元的经典结构;此外,影响力很大的FNN,DeepFM,NFM等深度学习模型更是与传统的FM模型有着千丝万缕的联系;更不要说各种梯度下降方法的一脉相承。所以说传统CTR模型是深度学习模型的地基和入口。

image.png

(1)协同过滤:物品/用户相似度,有矩阵稀疏的问题,引入矩阵分解模型(MF)解决这个问题。用户数量远大于商品数量,导致ItemCF比较受欢迎,UserCF比较少用。(而且用户在一段时间内往往对某一类商品感兴趣)

  • 协同过滤下,头部物品与其他物品相似性高(大家都买),尾部物品与其他物品相似性低(缺数据)。

  • 难以引入年龄,性别等特征


(2)矩阵分解:为每一个用户和视频生成一个隐向量,各自投影到隐向量的空间,在这个隐向量的空间距离越近,越是相似。

  • 用户矩阵:m个用户 X 隐向量(k维) 物品矩阵:隐向量(k维) X n个商品

  • k维越高表达能力越强,信息量越大,泛化程度越低。具体的取值需要多次实验得到推荐效果与工程开销的平衡。

  • 矩阵分解分为:特征值分解(只适用于方阵),奇异值分解(可以用于非方阵),梯度下降。

  • 奇异值分解:,取奇异值topN的对应的向量组成新的分解

  • 奇异值分解的问题:(1)互联网大部分用户历史很少,数据矩阵非常稀疏,但是奇异值分解要求共线矩阵是稠密的。(2)复杂度o(mn^2),对于用户上百万的互联网场景基本上凉凉。

  • 引入目标函数,利用梯度下降求解最优的U,V,加入U和V的L2防止过拟合。

  • 消除偏差系数:引入全局平均值u,物品i的平均评分bi,用户u的平均评分bu

  • 矩阵分解的有缺点:<1> 空间复杂度降到(n+m)*k的水平。<2> 与Embedding的思想不谋而合,可以和别的特征组合和拼接。


(3)LR模型:协同过滤只使用了用户之间,商品之间,还有用户-商品之间的显性还有隐性关系。LR则能融合更多的特征。此外还有增强了非线性能力的LS-PLM(大规模分片线性模型),LR发展出来的FM模型等。

  • LR将预测点击与否作为目标,参数wi可以解释为什么哪些特征更重要,输出y是一个(0,1)的连续型小数。

  • LR没法特征交叉还有筛选(没有交叉能力的模型可能会因为辛普森悖论得出错误的结论)


(4)因子分解机模型:在传统逻辑回归基础上,加入了二阶部分,使模型有了特征组合的能力。在此基础上发展的域感知因子分解机则通过加入特征域加强了特征交叉的能力。

  • LR无法特征交叉,人工特征又累效果又一般

  • POLY2模型:暴力穷举,<1> 处理互联网数据时本来就稀疏,这样暴力一下就更稀疏了,<2> 复杂度直接平方

  • FM模型(隐向量借鉴矩阵分解):

两阶(两特征交叉)

,使用两个特征隐向量做内积作为交叉特征的权重,训练复杂度从n^2降到了n*k级别。对于的组合特征,可以利用对B的隐向量进行更新,也可以利用对C的隐向量进行更新。这大幅减少了模型对数据稀疏度的要求。对于从未出现的也可以根据中A和D的隐向量内积进行计算。FM可以利用梯度下降进行计算。

三阶(三特征交叉)
  • FFM模型(引入特征域):

在FM中计算与其他特征的交叉影响时,使用的都是同一个隐向量

,每个特征对应一组k维的隐向量,对和进行交叉的时候,特征会从底下的一组隐向量中挑出与特征的域对应的隐向量进行交叉。复杂度k*n*n比FM的kn更高。

  • 如果引申到三阶特征交叉,甚至更高阶,又会因为组合爆炸的问题无法突破二阶特征交叉的瓶颈。接下来就需要GBDT上场了。

(5)组合模型:GBDT(生成离散的特征)+LR(CTR预测)

图中有两个树,一般都是多少个类对应多少棵树(多个二分类叠加)

按照决策树的规则落到的叶节点置为1,其他置为0,则有离散输出[0,...,1,...0],将各个子树的离散向量拼接在一起可得[0,..,1,..0..,1,..0,..1],决策树的深度决定了特征组合的阶数。GBDT模型容易过拟合。GBDT这种特征转换方式实际上丢失了大量特征的数值信息(连续变离散),因此我们不能简单说GBDT由于特征交叉的能力更强,效果就比FM或FFM好。

  • GBDT处理高维稀疏特征效果比较差,GBDT的惩罚项通常为叶子节点数和深度等,对于稀疏型数据,需要的树的节点不会太多,所以惩罚也有限,为了解决这个问题,后来的模型一般都加上了叶节点权重的惩罚项。(每棵tree在进行生长时,仅会选取一个特征,所以,高维稀疏特征,大部分是没有被选到是无效的。)
image.png
  • 特征交叉:两个特征年龄和性别,可以组合成 年龄_性别 的一个新特征,比如M_18,F_22等等,然后再对这个特征做one hot编码,即可得到新的特征属性值

  • LS-PLM(大规模分段线性模型,又称MLR模型)

如果对女装预测,显然不需要男生的数据,所以需要对不同用户群体先聚类,然后对各个分类施以LR进行CTR预估。

如图,LR不能拟合非线性数据,MLR可以拟合非线性数据.png

MLR就像它的名字一样,由很多个LR模型组合而成。用分片线性模式来拟合高维空间的非线性模式。

理论上来说,增大分片m可以带来无限制的非线性拟合能力,但是同样会增加计算、存储的开销,同时会带来过拟合的风险。

当我们将softmax函数1/1+e^{-x}作为分割函数σ(x),将sigmoid函数e^x1 / e^x1+...+e^xm作为拟合函数η(x)的时候,MLR模型为:

此时的混合模型可看做一个sum{softmax系数权重*sigmoid概率},当m=1时,退化为普通的LR:

MLR 在建模时引入了 L1 和 L2,1 范数正则,可以使得最终训练出来的模型具有较高的稀疏度。(L2,1范数实为矩阵X每一行的l2范数和)L2,1范数还要求行稀疏(从行的角度看是l1)

image.png

线性偏置:< 1 > Position Bias:排名第1位和第5位的样本,点击率天然存在差异。宝贝展示的页面、位置影响点击率< 2 > Sample Bias:PC和Mobile上的样本,点击率天然存在差异。

?物品特征,偏移向量(场景,页数,位置等),学习联合概率

LS-PLM可看作加了注意力机制的三层神经网络,隐层是m个神经元(分片),注意力机制就是分片函数对神经元的打分权重。

你可能感兴趣的:(传统推荐模型)