1 FM演化
其一是从FM开始推演其在深度学习上的各种推广(对应下图的红线),另一条是从embedding+MLP自身的演进特点结合CTR预估本身的业务场景进行推演(对应下图黑线部分).
2 论文汇总
https://github.com/shenweichen/DeepCTR
3 经典模型
3.1 FM模型
3.1.1 特征组合
普通的线性模型,我们都是将各个特征独立考虑的,并没有考虑到特征与特征之间的相互关系。但实际上,大量的特征之间是有关联的。最简单的以电商为例,一般女性用户看化妆品服装之类的广告比较多,而男性更青睐各种球类装备。那很明显,女性这个特征与化妆品类服装类商品有很大的关联性,男性这个特征与球类装备的关联性更为密切。如果我们能将这些有关联的特征找出来,显然是很有意义的。
一般线性模型为:
一般的线性模型压根没有考虑特征间的关联。为了表述特征间的相关性,我们采用多项式模型。为简单起见,只讨论二阶多项式。
3.1.2 FM求解
从上面的式子可以很容易看出,组合部分的特征相关参数共有n(n−1)/2个。但是如第二部分所分析,在数据很稀疏的情况下,满足,都不为0的情况非常少,这样将导致无法通过训练得出。
为了求出,我们对每一个特征分量引入辅助向量Vi=(vi1,vi2,⋯,vik)。然后,利用对进行求解。
求解过程如下:
经过这样的分解之后,我们就可以通过随机梯度下降SGD进行求解:
3.1.3 应用
(1)如下数据
进行one-hot编码:
注:特征维度n,是one-hot展开之后的总长度,如有三组特征,两个连续值,一个离散值,有5个取值,那么n=7而不是n=3
(2)tensorflow 网络实现:
3.2 FFM模型
如下数据,国家、日期和广告类型看作一个field,在FFM中,每一维特征 ,针对其它特征的每一种field ,都会学习一个隐向量 。因此,隐向量不仅与特征相关,也与field相关。也就是说,“Day=26/11/15”这个特征与“Country”特征和“Ad_type"特征进行关联的时候使用不同的隐向量,这与“Country”和“Ad_type”的内在差异相符,也是FFM中“field-aware”的由来。
假设样本的 n个特征属于 f个field,每个特征对每个filed都有一个隐向量,那么FFM的二次项有 nf个隐向量。而在FM模型中,每一维特征的隐向量只有一个,可以看作FFM的特例,是把所有特征都归属到一个field时的FFM模型。根据FFM的field敏感特性,可以导出其模型方程。
可以看到,如果隐向量的长度为 k,那么FFM的二次参数有 nfk 个,远多于FM模型的 nk个。此外,由于隐向量与field相关,FFM二次项并不能够化简,其预测复杂度是 。
3.3 FNN模型
FM通过对于每一维特征的隐变量内积来提取特征组合,最终的结果也非常好。但是,虽然理论上来讲FM可以对高阶特征组合进行建模,但实际上因为计算复杂度的原因一般都只用到了二阶特征组合。那么对于高阶的特征组合来说,我们很自然的想法,通过多层的神经网络即DNN去解决。
对于离散特征的处理,我们使用的是将特征转换成为one-hot的形式,但是将One-hot类型的特征维度高且比较稀疏,输入到DNN中,会导致网络参数太多;
为解决该问题,FNN包含两个过程:先通过预训练得到embeding向量,然后把one-hot稀疏数据,映射到稠密层,作为DNN输入。
模型底层先用FM对经过one-hot binary编码的输入数据进行embedding,把稀疏的二进制特征向量映射到 dense real 层,之后再把dense real 层作为输入变量进行建模,这种做法成功避免了高维二进制输入数据的计算复杂度。
3.4 NFM模型
在CTR预估中,为了解决稀疏特征的问题,学者们提出了FM模型来建模特征之间的交互关系。但是FM模型只能表达特征之间两两组合之间的关系,无法建模两个特征之间深层次的关系或者说多个特征之间的交互关系,因此学者们通过Deep Network来建模更高阶的特征之间的关系。
因此,FM和深度网络DNN的结合也就成为了CTR预估问题中主流的方法。有关FM和DNN的结合有两种主流的方法,并行结构和串行结构。
根据FM二阶推导:
去掉FM二阶中的最外层求和,可得到一个f维的向量,因此NFM模型预测公式为:
其中,是用来建模特征之间交互关系的多层前馈神经网络模块,架构图如下所示:
Bi-Interaction Layer名字挺高大上的,其实它就是计算FM中的二次项的过程,因此得到的向量维度就是我们的Embedding的维度。最终的结果是:
3.5 DeepFM模型
参考:推荐系统遇上深度学习(三)--DeepFM模型理论和实践
网络结构如下:
FM部分:
DNN部分:
与其他网络区别:
实现:
3.6 Wide&Deep
https://blog.csdn.net/u010352603/article/details/80590129
参考:
[3] 推荐系统理论及实战