推荐系统(二)

主流CTR预估模型的演化及对比

  • 高维、稀疏、多Field是输入给CTR预估模型的特征数据的典型特点。
  • 相对于高维稀疏的one-hot编码表示,embedding-based的方法,学习一个低维稠密实数向量
  • Embedding层的神经元个数即Embeeding向量的维数(m)。输入层与Embedding层的链接对应的权重矩阵 M(n*m) ,即对应 n 个输入实体的 m 维embedding向量。
  • 假设某实体ID的one-hot向量中下标为 i 的值为1,则该实体的embedding向量为权重矩阵 M 的第 i 行。

LR

  • 可以视作没有隐层的神经网络
  • LR模型一直是CTR预估问题的benchmark模型,由于其简单、易于并行化实现、可解释性强等优点而被广泛使用。然而由于线性模型本身的局限,不能处理特征和目标之间的非线性关系,因此模型效果严重依赖于算法工程师的特征工程经验。
  • 通常需要对原始特征做一些非线性转换。常用的转换方法包括:连续特征离散化、特征之间的交叉等。
  • 特征离散化相当于把线性函数变成了分段线性函数,从而引入了非线性结构。
  • 离散化的其他好处还包括对数据中的噪音有更好的鲁棒性(异常值也落在一个划分区间,异常值本身的大小不会过度影响模型预测结果);离散化还使得模型更加稳定,特征值本身的微小变化(只有还落在原来的划分区间)不会引起模型预测值的变化。

GBDT+LR

GBDT模型能够学习高阶非线性特征组合,对应树的一条路径(用叶子节点来表示)。通常把一些连续值特征、值空间不大的categorical特征都丢给GBDT模型;空间很大的ID特征(比如商品ID)留在LR模型中训练,既能做高阶特征组合又能利用线性模型易于处理大规模稀疏数据的优势。

GBDT的缺点

  • 基于树的模型适合连续中低度稀疏数据,容易学到高阶组合。
  • 但是树模型却不适合学习高度稀疏数据的特征组合,
  • 一方面高度稀疏数据的特征维度一般很高,这时基于树的模型学习效率很低,甚至不可行;
  • 另一方面树模型也不能学习到训练数据中很少或没有出现的特征组合

FM

因子分解机(Factorization Machines, FM)通过特征对之间的隐变量内积来提取特征组合,对于训练数据中很少或没有出现的特征组合也能够学习到。

在推荐系统中,常用矩阵分解(MF)的方法把User-Item评分矩阵分解为两个低秩矩阵的乘积,这两个低秩矩阵分别为User和Item的隐向量集合。通过User和Item 隐向量的点积 来预测用户对未见过的物品的兴趣。
给每一个特征学到一个embedding,然后交叉模型的权重就理解为对应embeeding的内积。这样就能解决PLOY2的问题,没有出现的特征对也能得到权重,只要这个特征和其他特征出现过就能学到一个embedding,就能得到权重。

矩阵分解也是生成 embedding 表示的一种方法,示例图如下:
FM

FM的优势是能够将更多的特征融入到这个框架中,并且可以同时使用一阶和二阶特征
而MF只能使用两个实体的二阶特征。
在二分类问题中,采用LogLoss损失函数时,FM模型可以看做是LR模型和MF方法的融合,如下图所示:
在这里插入图片描述

FFM

FFM(Field-aware Factorization Machine)模型是对FM模型的扩展,通过引入field的概念,FFM把相同性质的特征归于同一个field。
例如,“Day=26/11/15”、 “Day=1/7/14”、 “Day=19/2/15”这三个特征都是代表日期的,可以放到同一个field中。
field 的直观理解:
在这里插入图片描述

WDL(Wide & Deep Learning)

像LR这样的wide模型学习特征与目标之间的直接相关关系,偏重记忆(memorization),如在推荐系统中,wide模型产生的推荐是与用户历史行为的物品直接相关的物品。
在这里插入图片描述
WDL分为wide和deep两部分联合训练,单看wide部分与LR模型并没有什么区别;

  • deep部分 则是先对不同的 ID 类型特征做embedding,在embedding层接一个全连接的MLP(多层感知机),用于学习特征之间的高阶交叉组合关系
  • 由于Embedding机制的引入,WDL相对于单纯的wide模型有更强的泛化能力
  • WDL模型混合了宽度模型与深度模型,但是宽度模型的输入依旧依赖于特征工程
  • 上述模型要不然偏向于低阶特征或者高阶特征的提取,要不然依赖于特征工程。

DeepFM

目前也有很多基于CNN与RNN的用于CTR预估的模型。但是基于CNN的模型比较偏向于相邻的特征组合关系提取,基于RNN的模型更适合有序列依赖的点击数据

而DeepFM模型可以以端对端的方式来学习不同阶的组合特征关系,并且不需要其他特征工程。
DeepFM的结构中包含了因子分解机部分 FM 以及深度神经网络 DNN 部分,分别负责低阶特征的提取和高阶特征的提取。其结构如下:

在这里插入图片描述
上图中红色箭头所表示的链接权重恒定为1(weight-1 connection),在训练过程中不更新,可以认为是把节点的值直接拷贝到后一层,再参与后一层节点的运算操作。

与 Wide&Deep Model 不同,DeepFM 共享相同的输入与embedding向量。在 Wide&Deep Model 中,因为在 Wide 部分包含了人工设计的成对特征组,所以输入向量的长度也会显著增加,这也增加了复杂性。

DIN

1、多样性,一个用户可能对多种品类的东西感兴趣;
2、部分对应,只有一部分的历史数据对目前的点击预测有帮助,比如系统向用户推荐泳镜时会与用户点击过的泳衣产生关联,但是跟用户买的书就关系不大。

  • 于是,DIN设计了一个attention结构,对用户的历史数据和待估算的广告之间部分匹配,从而得到一个权重值,用来进行embedding间的加权求和
    在这里插入图片描述

DIN 模型的输入分为2个部分:用户特征和广告(商品)特征

  • 用户特征由用户历史行为的不同实体ID序列组成。
  • 在对用户的表示计算上引入了attention network (也即图中的Activation Unit) 。
  • DIN把用户特征、用户历史行为特征进行embedding操作,视为对用户兴趣的表示,之后通过attention network,对每个兴趣表示赋予不同的权值。
  • 这个权值是由用户的兴趣和待估算的广告进行匹配计算得到的,如此模型结构符合了之前的两个观察:用户兴趣的多峰分布以及部分对应。Attention network 的计算公式如下,

在这里插入图片描述

模型性能对比

LR

是使用最广泛的模型,一般是结合onehot encoding之后的特征使用,我总结它有以下几个优点:

  • 1,模型简单,可以尽管拍脑袋加特征,
  • 2,容易debug,线上出了问题很容易就能根据模型和结果定位到是哪些特征出了问题,并且可以马上采取补救措施,例如人工修改模型权重,以达到增强或者减弱某些特征对结果的影响。
  • 3,有非常多的优化算法可选择,例如SGD,CD,LBFGS,OWLQN,FTRL等等,而且这些优化算法又有各种变体,可以尽管尝试,
  • 4,繁多的优化算法中,有些算法可以有效的产生稀疏模型并使得效果不损失,这对上线非常有利,也有利于减少线上平响时间。
  • 缺点:1,只是个线性模型,不是对所有的数据都能很有效,不同的业务其数据分布都不同,有些业务的数据可能还是需要非线性的模型来学习。

GBDT

也是一个被广泛使用的模型,一般是配合连续值特征使用,它的特点是:

  • 1,特征值在不断变化,knowledge存在于数据和模型中,因此,即使模型更新频率低一些,结果也暂时不会差到哪里去,从这个角度来讲,GBDT比较“稳定”。
  • 2,非线性模型,能学习复杂的数据分布。和LR相比,他不需要那么频繁的更新模型,而且基本上不存在线上特征miss的问题,如果是LR模型,可能一天之内某些ID特征就发生了很大的变化,导致线上出现大量的新ID特征无法命中。

FM

与LR模型相比较,输入给FM模型的每个特征,除了学到一个对应的权重之外,还能得到一组权重,存在于vector之中,当需要把特征a和特征b进行组合时,就把a的那个vector和b的那个vector拿来做内积,这么做的好处:
1,可以自动的进行特征组合,是的模型具有更强的学习能力
2,不但能做特征组合,vector的方式还解决了特征组合后维度过大的问题。

FFM

FFM是FM的增强版,它也能做特征组合,而且对于每个特征,它可以得到好几个vector,
例如,对于特征a它可以有v1,v2两组权重,这两组权重分别用来和其它不同特征做组合,

  • 当特征a和特征b组合时用v1,当特征a和特征c组合时用v2.
  • 这么做的好处是,即使是同一个特征,和其它不同特征组合时是有强弱之分的,这样使得模型更“个性化”,从而得到更好的效果。

在实际业务中,分为召回、排序、策略这三个环节

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值