深度学习CTR预估(二)
FNN
如果有办法将每个特征用其所属的 field 来表示,原始输入将大大减少不少。Factorisation-machine Supported Neural Networks,简称 FNN 就是基于这种思想提出来的。
field i 的输入可以表示成 x[start_i: end_i],Wi 为field i 的 embedding 矩阵。z为 embedding 后的向量,是一个 k 维的向量,它由一次项 wi ,二次项 vi=(vi1,vi2,…vik) 组成,其中 k 是 FM 中二次项的向量的维度。而后面的 l1,l2 则为神经网络的全连接层的表示。
FM 参数需要预训练
FM 部分的 embedding 需要预先进行训练,所以 FNN 不是一个 end-to-end 模型。在其他论文中,有试过不用 FM 初始化 embedding,而用随机初始化的方法,要么收敛速度很慢,要么无法收敛。有兴趣的同学可以实验验证下。
无法拟合低阶特征
FM 得到的 embedding 向量直接 concat 连接之后作为 MLP 的输入去学习高阶特征表达,最终的 DNN 输出作为 CTR 预估值。因此,FNN 对低阶信息的表达比较有限。
PNN
Product-based Neural Network,认为在 embedding 输入到 MLP 之后学习的交叉特征表达并不充分,提出了一种 product layer 的思想,既基于乘法的运算来体现体征交叉的 DNN 网络结构
对比 FNN 网络,PNN 的区别在于中间多了一层 Product Layer 层。Product Layer 层由两部分组成,左边 z 为 embedding 层的线性部分,右边为 embedding 层的特征交叉部分。
这种 product 思想来源于,在 CTR 预估中,认为特征之间的关系更多是一种 and“且”的关系,而非 add"加”的关系。例如,性别为男且喜欢游戏的人群,比起性别男和喜欢游戏的人群,前者的组合比后者更能体现特征交叉的意义。
PNN按product层的功能分为inner product layer和outer product layer,区别如下:
和FM类似,构造好网络之后,对输入数据做embedding处理之后得到低维的连续向量表示,经过任意两个feature的进行inner product or outer product(1也为feature的一部分,所以可以建模线性关系),这里很容易发现,这部分特征大小会变大很多(二次项数量级),尤其是稀疏空间,和PLOY2遇到的问题类似,变得很难训练,受FM启发,可以把这个大矩阵转换矩阵分解为小矩阵和它的转置相乘,表征到低维度连续向量空间,来减少模型复杂度:
NFM
NFM,提出了一种更加简单粗暴的方法,在 embedding 层后,做了一个叫做 BI-interaction 的操作,让各个 field 做 element-wise 后 sum 起来去做特征交叉,MLP 的输入规模直接压缩到 k 维,和特征的原始维度 n 和特征 field 维度 f 没有任何关系。
Bi-interaction 听名字很高大上,其实操作很简单:就是让 f 个 field 两两 element-wise 相乘后,得到 f*(f-1)/2 个向量,然后直接 sum 起来,最后得到一个 k 维的向量。所以该层没有任何参数需要学习。
图中只画了DNN的部分,NFM 等价于 FM + embedding + MLP
AFM
前面提到的各种网络结构中的 FM 在做特征交叉时,让不同特征的向量直接做交叉,基于的假设是各个特征交叉对 CTR 结果预估的贡献度是一样的。这种假设其实是不合理的,不同特征在做交叉时,对 CTR 预估结果的贡献度是不一样的。
Attention Neural Factorization Machines,简称 AFM 模型,利用了近年来在图像、NLP、语音等领域大获成功的 attention 机制,在前面讲到的 NFM 基础上,引入了 attention 机制来解决这个问题。
AFM 的网络结构如图所示。和 NFM 一样,这里也省略了 Wide 部分,只画出了 Deep 部分结构
不过AFM的注意力机制不是通过学习得到而是DIN
受 attention 机制启发,DIN 在 embedding 层后做了一个 action unit 的操作,对用户的兴趣分布进行学习后再输入到 DNN 中去,网络结构如图所示:
DIN 把用户特征、用户历史行为特征进行 embedding 操作,视为对用户兴趣的表示,之后通过 attention network,对每个兴趣表示赋予不同的权值。
Vu:表示用户最终向量
Vi:表示用户兴趣向量(shop_id, good_id..)
Va:表示广告表示向量
Wi: 对于候选广告,attention 机制中该兴趣的权重