推荐系统与深度学习(3):[WWW'18]认识一下带权重的FFM

2020-09-22  本文已影响0人  银色尘埃010

以下为个人对文章的理解记录,如有错误,欢迎指正~~
如果觉得有帮助或者写的还行,点个赞呗~~~

引用:Pan J, Xu J, Ruiz A L, et al. Field-weighted factorization machines for click-through rate prediction in display advertising[C]//Proceedings of the 2018 World Wide Web Conference. 2018: 1349-1357.

2010年Rendle发表的《Factorization Machines》已经成为推荐系统中最经典的模型之一,在深度学习兴起之后,有许多工作在FM的基础上进行,例如FFM、AFM、NFM、DeepFM、xDeepFM等。最近看的这篇FwFMs也是在FM、FFM的基础上做的工作,主要的思想:特征交互的重要性不同,因此要赋予不同的特征交互不同的权重。

一、相关工作简介

多领域分类数据

多领域分类数据的特性对建立有效的机器学习模型进行CTR预测提出了几个独特的挑战:

  1. 特征交互很普遍,需要特别建模
  2. 一个Field中的特征和另一个Field中的特征的交互方式通常不相同
  3. 需要考虑潜在的高模型复杂性
LR模型: LR模型 Poly2模型: Poly2模型 FM模型: FM模型 FFM模型: FFM

以上是文中提及的模型,不过基于FM的模型除了DeepFM等用到DNN的模型之外,其他的例如AFM、NFM也可以拿出来讨论,尤其是AFM,在思路上,和本文模型挺像的。

二、不同Field Pairs交互项之间的强弱

文中通过Mutual information和Heat map可视化特征交互和结果之间的关系。


从而提出了如何通过有效的机器学习模型来捕捉这种交互的强弱。


Mutual Information计算

三、FwFMs模型

1、对交互项的改进

为了实现上述的想法,捕捉交互之间的权重,提出了以下模型:

FwFMs模型公式
可以看到,主要的改动在于为交互项添加了权重: 为交互项添加了权重
通过模型学习

3、改进Linear Terms

在之前,普遍用二元特征x_i来表示feature i,然后学习权重w_i。然后本文中通过embedding vectors来表示feature i,用x_iv_i来表示每一个特征。
然后,为每一个feature学习一个线性权重w_i, 此时线性部分变成了:


通过这种方式模型的参数量是
前者用FwFMs_FeLV(FwFMs with feature-wise linear vectors)表示,后者用FwFMs_FiLV(FwFMs with field-wise linear vectors)表示。

四、实验结果与可视化分析

文中对比使用的数据集:


Criteo和oath数据集

(什么都别说了,我是最好的)

1、和FM、FFM等模型的对比:

2、不同线性部分模型对比

3、特征交互强弱可视化

这一部分还是挺有意思,应该是第一次在研究FM的模型中看到将Field interaction 的强弱可视化。而且始终围绕自己的Key Idea。

计算了皮尔逊相关系数。

五、个人小结

第一次看到对特征交互强弱的直观展示,虽然不是特别难,但是其他文章没有做呀。实验对比也是常规的,和SOTAs对比,和自己对比,消融分析等;我超过了SOTAs,我的这个结构有必要。
在阅读中有部分开始不是很理解,在FM中,通过<v_i,v_j>代替Poly2中的w_{h(i,j)},后者已经表示权重了,所以在FwFMs中再提出一个权重又是表示什么?个人的理解是<v_i,v_j>表示的是特征相乘,因为x_ix_j都是1,无法表示有用的信息,所以<v_i,v_j>表示真正的特征交互指,然后用r_{F(i),F(j)}表示权重。在Linear Term部分也可以这么理解,就说得通了。
其次,在实验部分,还是觉得,AFM模型的想法和本文是相同的。看一下AFM的计算模型:


可以看出来除了实现方式不同,思想是相同的,而且AFM在参数方面也是占优的, 2017年的文章,应该要拿出来对比。

关于文中提到的FM、FFM、AFM、NFM、DeepFM都还没有写,先看新的,旧的再补。

上一篇下一篇

猜你喜欢

热点阅读