Bootstrap

【GCN-CTR】早期工作Fi-GNN (CIKM‘19)——懂了,要用Transformer~

早期工作Fi-GNN

《Fi-GNN: Modeling Feature Interactions via Graph Neural Networks for CTR Prediction》CIKM’19

类似session-base RS里的SR-GNN,是GNN最早用在CTR上的模型,所以成了经典baseline。

Motivation

CTR模型的输入由以下几部分组成:用户id、用户特征、用户历史行为、物品id、物品特征。由于模型输入有特征,因此简单的 LR 模型就可以实现CTR任务,但是LR只根据一阶特征进行预测,因此大量的CTR模型都在追求有效的“特征组合”方法,以利用到“高阶特征”。

FM、FFM、Wide&Deep、DCN、xDeepFM等模型都是为了学习高阶特征而设计的,然而作者认为这些特征组合方法是“unstructured combination”的! 为了利用特征之间的结构特性,作者利用GNN来建模特征交互。

因此在这篇文章中是把一个特征field当作一个节点(也可以理解为一个特征是一个节点,因为一个field最后只产出一个embedding),构成一个Feature Graph。比如一条样本:用户id、城市、性别、职业,那么Feature Graph就有这四个节点构成,图上的边表示特征交互。

Method

image-20220217150253199

由Fi-GNN的模型图可以看出,需要重点理解的是红框内的模块,其余模块很好理解。

Feature Graph

Feature Graph是个全连通图,每个特征节点都和其他特征节点都有一条边相连(假设共 m m m 种,文章数据集种分别是23和39),边的权重是由Attention计算出来的。
w ( n i , n j ) = exp ⁡ ( LeakyRelu ⁡ ( W w [ e i ∥ e j ] ) ) ∑ k exp ⁡ ( LeakyRelu ⁡ ( W w [ e i ∥ e k ] ) ) w\left(n_{i}, n_{j}\right)=\frac{\exp \left(\operatorname{LeakyRelu}\left(\mathrm{W}_{w}\left[\mathrm{e}_{i} \| \mathrm{e}_{j}\right]\right)\right)}{\sum_{k} \exp \left(\operatorname{LeakyRelu}\left(\mathrm{W}_{w}\left[\mathrm{e}_{i} \| \mathrm{e}_{k}\right]\right)\right)} w(ni,nj)=kexp(LeakyRelu(Ww[eiek]))

;