从 FM 推演各深度 CTR 预估模型

https://www.jiqizhixin.com/articles/2018-07-16-17
从 FM 推演各深度 CTR 预估模型

FM:降维版本的特征二阶组合
二阶多项式:从 FM 推演各深度 CTR 预估模型
对特征两两相乘(组合)构成新特征(离散化之后其实就是“且”操作),并对每个新特征分配独立的权重;为了降低该矩阵的维度,可以将其因子分解(Factorization)为两个低维(比如 n∗k)矩阵的相乘。
从 FM 推演各深度 CTR 预估模型
从 FM 推演各深度 CTR 预估模型

用神经网络的视角看 FM:嵌入后再进行内积
W*x 部分就是将离散系数特征通过矩阵乘法降维成一个低维稠密向量。这个过程对神经网络来说就叫做嵌入 (embedding)。所以用神经网络视角来看:
• FM 首先是对离散特征进行嵌入。
• 之后通过对嵌入后的稠密向量进行内积来进行二阶特征组合。
• 最后再与线性模型的结果求和进而得到预估点击率。
从 FM 推演各深度 CTR 预估模型
MLR模型是对线性LR模型的推广,它利用分片线性方式对数据进行拟合。基本思路是采用分而治之的策略:如果分类空间本身是非线性的,则按照合适的方式把空间分为多个区域,每个区域里面可以用线性的方式进行拟合,最后MLR的输出就变为了多个子区域预测值的加权平均。

从 FM 推演各深度 CTR 预估模型
从 FM 推演各深度 CTR 预估模型 是聚类参数,决定分片空间的划分,即某个样本属于某个特定分片的概率;从 FM 推演各深度 CTR 预估模型是分类参数,决定分片空间内的预测;u和w都是待学习的参数。最终模型的预测值为所有分片对应的子模型的预测值的期望。

embedding+MLP:深度学习 CTR 预估的通用框架
具体来说, embedding+MLP 的过程如下:
• 对不同领域的 one-hot 特征进行嵌入(embedding),使其降维成低维度稠密特征。
• 然后将这些特征向量拼接(concatenate)成一个隐含层。
• 之后再不断堆叠全连接层,也就是多层感知机(Multilayer Perceptron, MLP,有时也叫作前馈神经网络)。
• 最终输出预测的点击率。
从 FM 推演各深度 CTR 预估模型
只学习高阶特征组合,对于低阶或者手动的特征组合不够兼容,而且参数较多,学习较困难。

FNN:FM 与 MLP 的串联结合
• 采用 FM 预训练得到的隐含层及其权重作为神经网络的第一层的初始值,之后再不断堆叠全连接层,最终输出预测的点击率。
• 可以将 FNN 理解成一种特殊的 embedding+MLP,其要求第一层嵌入后的各领域特征维度一致,并且嵌入权重的初始化是 FM 预训练好的。
• 这不是一个端到端的训练过程,有贪心训练的思路。而且如果不考虑预训练过程,模型网络结构也没有考虑低阶特征组合。
从 FM 推演各深度 CTR 预估模型
DeepFM: FM 与 MLP 的并联结合
• 不需要预训练。
• 将考虑领域信息的 FM 部分与 MLP 部分并联起来(借用初中电路的术语),其实就是对两个模型进行联合训练。
• 考虑领域信息的 FM 部分的嵌入向量拼接起来作为 MLP 部分的输入特征,也就是是两个模型共享嵌入后的特征。
从 FM 推演各深度 CTR 预估模型

NFM:通过逐元素乘法延迟 FM 的实现过程
• 利用二阶交互池化层(Bi-Interaction Pooling)对 FM 嵌入后的向量两两进行元素级别的乘法,形成同维度的向量求和后作为 前馈神经网络的输入。计算图中用圈乘⨂表示逐元素乘法运算。
• NFM 与 DeepFM 的区别是没有单独的 FM 的浅层网络进行联合训练,而是将其整合后直接输出给前馈神经网络。
• 当 MLP 的全连接层都是恒等变换且最后一层参数全为 1 时,NFM 就退化成了 FM。可见,NFM 是 FM 的推广,它推迟了 FM 的实现过程,并在其中加入了更多非线性运算。
• 另一方面,我们观察计算图会发现 NFM 与 FNN 非常相似。它们的主要区别是 NFM 在 embedding 之后对特征进行了两两逐元素乘法。因为逐元素相乘的向量维数不变,之后对这些向量求和的维数仍然与 embedding 的维数一致。因此输入到 MLP 的参数比起直接 concatenate 的 FNN 更少。
从 FM 推演各深度 CTR 预估模型
AFM: 对简化版 NFM 进行加权求和
• AFM 与 NFM 都是致力于充分利用二阶特征组合的信息,对嵌入后的向量两两进行逐元素乘法,形成同维度的向量。而且 AFM 没有 MLP 部分。
• AFM 通过在逐元素乘法之后形成的向量进行加权求和,而且权重是基于网络自身来产生的。其方法是引入一个注意力子网络 (Attention Net)。
• 当权重都相等时,AFM 退化成无全连接层的 NFM。
• “注意力子网络”的主要操作是进行矩阵乘法,其最终输出结果为 softmax,以保证各分量的权重本身是一个概率分布
从 FM 推演各深度 CTR 预估模型
PNN:通过改进向量乘法运算延迟 FM 的实现过程
• 利用二阶向量积层(Pair-wisely Connected Product Layer)对 FM 嵌入后的向量两两进行向量积,形成的结果作为之后 MLP 的输入。计算图中用圆点•表示向量积运算。PNN 采用的向量积有内积与外积两种形式。
• 需要说明的是,本计算图中省略了 PNN 中向量与常数 1 进行的乘法运算。这部分其实与 FNN 类似,不是 PNN 的主要创新 点。故在此图中省略。
• 对于内积形式的 PNN,因为两个向量相乘的结果为标量,可以直接把各个标量“拼接”成一个大向量,就可以作为 MLP 的输入 了。
• 当 MLP 的全连接层都是恒等变换且最后一层参数全为 1 时,内积形式的 PNN 就退化成了 FM。
• 对于外积形式的 PNN,因为两个向量相乘相当于列向量与行向量进行矩阵相乘,得到的结果为一个矩阵。各个矩阵向之前内积
形式的操作一样直接拼接起来维数太多,论文的简化方案是直接对各个矩阵进行求和,得到的新矩阵(可以理解成之后对其拉 长成向量)就直接作为 MLP 的输入。
• 观察计算图发现外积形式的 PNN 与 NFM 很像,其实就是 PNN 把 NFM 的逐元素乘法换成了外积。
从 FM 推演各深度 CTR 预估模型
DCN:高阶 FM 的降维实现
从 FM 推演各深度 CTR 预估模型
从 FM 推演各深度 CTR 预估模型

Deep Cross: DCN 由其残差网络思想进化
从 FM 推演各深度 CTR 预估模型
• 对 embedding+MLP 的改进主要是 MLP 部分增加跳跃连接成为残差网络。
• Deep Cross 与传统的残差网络的区别主要是没有采用卷积操作。其中一个原因是在广告点击率预估领域,特征不具备平移不变性。
• DCN 其实是从 Deep Cross 进化出来的版本。DCN 相对 Deep Cross 的主要贡献是解耦了 Deep 与 Cross(特征交叉)部分。
• 因此 DCN 中的 Cross 部分可以理解为残差网络的变体:其将 Deep Cross 的跨越链接缩短为只有一层,而全连接部分改为与权重向量和输入向量的内积。

DIN:对同领域历史信息引入注意力机制的 MLP
• DIN 考虑对同一领域的历史特征进行加权求和,以加强其感兴趣的特征的影响。
• 用户的每个领域的历史特征权重则由该历史特征及其对应备选广告特征通过一个子网络得到。即用户历史浏览的商户特征与当 前浏览商户特征对应,历史浏览的商品特征与当前浏览商品特征对应。
• 权重子网络主要包括特征之间的元素级别的乘法、加法和全连接等操作。
• AFM 也引入了注意力机制。但是 AFM 是将注意力机制与 FM 同领域特征求和之后进行结合,DIN 直接是将注意力机制与同领 域特征求和之前进行结合
从 FM 推演各深度 CTR 预估模型

• FM 其实是对嵌入特征进行两两内积实现特征二阶组合;FNN 在 FM 基础上引入了 MLP;
• DeepFM 通过联合训练、嵌入特征共享来兼顾 FM 部分与 MLP 部分不同的特征组合机制;
• NFM、PNN 则是通过改造向量积的方式来延迟 FM 的实现过程,在其中添加非线性成分来提升模型表现力;
• AFM 更进一步,直接通过子网络来对嵌入向量的两两逐元素乘积进行加权求和,以实现不同组合的差异化,也是一种延迟 FM 实现的方式;
• DCN 则是将 FM 进行高阶特征组合的方向上进行推广,并结合 MLP 的全连接式的高阶特征组合机制;
• Wide&Deep 是兼容手工特征组合与 MLP 的特征组合方式,是许多模型的基础框架;
• Deep Cross 是引入残差网络机制的前馈神经网络,给高维的 MLP 特征组合增加了低维的特征组合形式,启发了 DCN;
• DIN 则是对用户侧的某历史特征和广告侧的同领域特征进行组合,组合成的权重反过来重新影响用户侧的该领域各历史特征的求和过程;

从 FM 推演各深度 CTR 预估模型