以下仅仅为个人对文章的阅读记录,如有错误,欢迎指正。如需转载注明来源即可~~
Lu W, Yu Y, Chang Y, et al. A Dual Input-aware Factorization Machine for CTR Prediction[C]//Proceedings of the 29th International Joint Conference on Artificial Intelligence. 2020: 3139-3145.
原文链接:https://www.ijcai.org/Proceedings/2020/0434.pdf
一、简介
本文在IFM的基础上加入了Transformer中的主要思想,学习vector-wise级别的交互,和 bit-wise的特征进行组合,学到最后的权重,对原始特征进行转化。
和IFM一样,主要考虑同一个特征在不同的输入实例中含义不同。举例来说,当样本是<青年,女性,学生,粉色,连衣裙>,此时女性特征很重要;当样本是<青少年,女性,学生,蓝色,笔记本>,此时女性这个特征就不那么重要了。通过这个例子,说明同一个特征在不同样本中应该有不同的重要性。
二、DIFM模型
(一)、模型整体结构:
(二)、核心: Dual-FEN 层
1、The vector-wise part
这一部分是DIFM模型相对于IFM主要的更新。通过Transformer中结构来学习输入向量之间的关系,然后学习部分权重。 输入是一组 [h,k]的embedding 向量,输出为 [h, ] 的向量。
DIFM主要计算过程。
首先,将embedding输入转化成的矩阵:
接下来就是Transformer中 self-attention计算过程:
接下来是Residual network计算过程:
获得最后的输出:
2、The bit-wise part
这部分是IFM中的内容,这里的bit-wise和DCN中的bit-level相同。因为在进行计算时首先使得输入维度从 [h,k] 变成 [1, h*k],然后使用DNN,这时候DNN学习的就是Bit-level上的关系。最后输出一个向量。
计算过程:
3、Combination layer
可以看到最后还是需要获得一组权重。目前有了bit-wise和vector-wise两个级别的特征,将这两组特征进行组合。
原始的矩阵有h组特征,所有一共需要h个权重。那么首先通过两个全连接层对之前bit-wise 和 vector wise 的特征进行转换。得到两组长度为[h]的特征向量,然后求和,得到最后的权重。
4、 Reweighting Layer 和 Prediction Layer
在Combination layer中得到特征的权重之后,和对应的原始特征相乘。最后按照FM的结构求最后的预测值。
(三)、模型训练
(四)、DIFM和FM、IFM的关系
- DIFM在IFM上进行修改,增加了vector-wise 和 连接的部分。
- IFM 在FM上进行改进,增加了bit-wise的部分
三、实验分析
(一)、超参数对模型的影响
1、Number of heads
2、Size of attention factors
3、activation functions
4、Number of hidden layers
(二)、在DIFM的Dual-FEN中bit-wise 和 vector-wise 两个特征学习组件中,哪个更加重要?
(三)和其他模型的对比表现
四、个人小结
感觉开始卷了。这篇文章使用了self-attention对特征进行转化,虽然说最后使用了FM进行最后的预测,然后学习的过程中,也是包含了特征交互。而且在选择对比模型的时候没有和其他使用self-attention模块的模型进行对比,例如:AutoInt,Interpretable CTR模型。而且实验结果上,Criteo作为CTR任务的经典数据集,AUC在很多模型上都已经是0.8以上,Logloss也小于了0.45。本文的数据划分也只有训练集和测试集。而且对比的CTR模型最好的也是他们19年提出的IFM。DCN、FwFM、PNN、FiBiNET、 AutoInt 表示可以一战。虽然理解你叫FM模型,但是既然是CTR领域,还是要尊重一下其他不叫FM的模型的。
另外:以前通过特征交互然后和DNN直接预测结果,现在思路是不是可以把其他模型的方法先去学权重,然后用FM做最后的预测??