CTR模型:AFM

1. 简介

FM模型将所有二阶交叉特征都认为同等重要, 一些二阶交叉特征是没有价值的,可能会引入噪声并且降低模型性能。

AFM(Attentional FM)在2017年被提出,通过Attention机制来自动学习每个二阶交叉特征的重要性。

和Wide&Deep, DeepCross等模型相比,AFM结构简单,参数更少,效果更好,AFM有更好的解释性,通过注意力权重知道哪些交叉特征对于预测贡献大。

2. AFM 模型

CTR模型:AFM
(1)Embedding层
将每个特征映射到dense向量表示, 映射到向量 viRkv_i\in R^k.

一旦得到Embedding向量,输入 x 可以表示为:
CTR模型:AFM
由于输入 x 的稀疏性, Vx 只需要保存非零的特征。

(2)pair-wise Interaction Layer
和NFM的 Bi-Interaction 层不同, AFM的pair-wise Interaction 层将m个向量扩充到 m(m1)/2m*(m-1)/2个交叉向量, 每个交叉向量是两个Embedding向量的逐元素积。 m为 x中非零元素的数量。

pair-wise Interaction层输出:
CTR模型:AFM
如果对这 m(m1)/2m*(m-1)/2个交叉向量,通过一个sum pooling 层得到一个池化向量:
CTR模型:AFM
这和NFM的Bi-Interaction层的输出是一样的。
(3)Attention-based Pooling层
与Bi-Interaction pooling不同, Attention-based Pooling 采用了Attention机制,
CTR模型:AFM
其中, aij 是交叉特征(i,j)的Attention score。
aij 可以作为参数进行学习,但是,对于未在训练集中出现过的交叉特征, Attention score无法训练。

为了解决这个问题,论文用了Attention network来训练 aij。 Attention network的输入为 m(m1)/2m*(m-1)/2个交叉向量, 输出为 aij.

CTR模型:AFM

(4) 输出层
输出预测得分:

CTR模型:AFM

3.实验结果

(1)数据集
使用Frappe数据集,给出了不同上下文时用户的 app 使用日志记录,一共包含 96203 个 app 。

CTR模型:AFM

不同L2正则化的权重:
CTR模型:AFM

CTR模型:AFM


参考:

  1. Attentional Factorization Machines:Learning the Weight of Feature Interactions via Attention Networks∗;
  2. ctr模型汇总