数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
二十七、Fi-GNN [2019]
建模复杂的特征交互,对
CTR
预测的成功起到了核心作用。FM
是一个著名的模型,它通过向量内积来建模二阶特征交互。FFM
进一步考虑了field
信息并引入了field-aware embedding
。然而,这些FM-based
模型只能建模二阶交互。最近,许多基于深度学习的模型被提出来从而学习高阶特征交互,这些模型遵循一个通用的范式:简单地拼接
field embedding
向量,并将其馈入DNN
或其他专门设计的模型,从而学习交互。例如FNN, NFM, Wide&Deep, DeepFM
等。然而,这些基于DNN
的模型都是以bit-wise
的、隐式的方式来学习高阶特征交互,这缺乏良好的模型解释。一些模型试图通过引入专门设计的网络来显式地学习高阶交互。例如,
Deep&Cross
]引入了Cross Network: CrossNet
,xDeepFM
引入了压缩交互网络Compressed Interaction Network: CIN
。尽管如此,它们仍然不够有效和显式,因为它们仍然遵循将feature field
组合在一起的通用范式来建模交互。简单的unstructured combination
将不可避免地限制了灵活地、显式地建模不同feature field
之间复杂交互的能力。在论文
《Fi-GNN: Modeling Feature Interactions via Graph Neural Networks for CTR Prediction》
中,作者考虑了multi-field feature
的结构。具体来说,作者用一个名为feature graph
的图结构来表示multi-field feature
。直观而言,图中的每个节点对应于一个feature field
,不同field
可以通过边进行交互。因此,建模feature field
之间复杂交互的任务可以转化为建模feature graph
上的节点交互的任务。为此,作者在Graph Neural Network: GNN
的基础上设计了一个新的Feature interaction Graph Neural Network: Fi-GNN
,它能够以灵活的、显式的方式建模复杂的节点交互(即,特征交互)。在Fi-GNN
中,节点将通过与邻居节点交流node state
来进行交互,并以recurrent
的方式更新自己。AutoInt
用Transformer Encoder Block
建模multi-field feature
,而这里用GNN
来建模multi-field feature
。Transformer Encoder Block
可以视为一个简单的GNN
。在每一个
time step
中,模型与邻居节点进行one-hop
的交互。因此,interaction step
的数量等同于特征交互的阶次。此外,在feature graph
中,边的权重反映了不同feature interaction
对于CTR
预测的重要性,而节点的权重反映了每个feature field
对于CTR
预测的重要性。这可以提供很好的解释。总的来说,论文提出的模型能够以显式的、灵活的方式建模复杂的特征交互,并提供良好的可解释性。论文贡献如下:
- 论文指出了现有工作的局限性,即把
multi-field feature
视为feature field
的unstructured combination
。为此,作者首次提出用图结构来表示multi-field feature
。 - 论文设计了一个新的模型
Feature interaction Graph Neural Network: Fi-GNN
,从而以更灵活的、显式的方式建模graph-structured feature
上feature field
之间的复杂交互。 - 论文在两个真实世界的数据集上进行的广泛实验表明:所提出的方法不仅可以超越
SOTA
的方法,而且可以提供良好的模型解释。
- 论文指出了现有工作的局限性,即把
相关工作:
Feature Interaction in CTR Predict
:建模特征交互是CTR
预测成功的关键,因此在文献中得到了广泛的研究。LR
是一种线性方法,它只能对原始单个特征的线性组合建模一阶交互。FM
通过向量内积来建模二阶特征交互。之后,FM
的不同变体也被提出:Field-aware factorization machine: FFM
考虑了field
信息并引入了field-aware embedding
。AFM
考虑了不同二阶特征交互的权重。
然而,这些方法只能建模二阶交互,这是不够的。
随着
DNN
在各个领域的成功,研究人员开始用它来学习高阶特征交互,因为它有更深的结构和非线性激活函数。一般的范式是将field embedding
向量拼接在一起,并将其馈入DNN
来学习高阶特征交互。《A convolutional click prediction model》
利用卷积网络建模特征交互。FNN
在应用DNN
之前,在field embedding
上使用预训练的FM
。PNN
通过在field embedding layer
和DNN layer
之间引入一个product layer
来建模二阶交互和高阶交互。- 类似地,
NFM
通过在field embedding layer
和DNN layer
之间引入一个Bi-Interaction Pooling layer
来建模二阶交互,但是随后的操作是sum
操作,而不是像PNN
中的拼接操作。
另一个方向上的一些工作试图通过混合架构来联合建模二阶交互和高阶交互:
Wide&Deep
和DeepFM
包含一个wide
组件来建模低阶交互、一个deep
组件来建模高阶交互。然而,所有这些利用
DNN
的方法都是以隐式的、bit-wise
的方式学习高阶特征交互,因此缺乏良好的模型解释能力。 最近,一些工作试图通过专门设计的网络以显式的方式学习特征交互:Deep&Cross
引入了一个在bit-level
上对特征进行外积的CrossNet
。- 相反,
xDeepFM
引入了一个在vector-level
对特征进行外积的CIN
。
然而,他们仍然没有解决最根本的问题,即把
field embedding
向量拼接起来。对
feature field
进行简单的unstructured combination
将不可避免地限制了以灵活的、显式的方式建模不同field
之间复杂交互的能力。为此,我们提出用图结构表示multi-field feature
,每个节点代表一个field
,不同的feature field
可以通过边进行交互。因此,我们可以在图上建模不同feature field
之间的灵活交互。Graph Neural Network
:图是一种数据结构,它对一组对象(节点)和它们的关系(边)进行建模。早期的工作通常将图结构的数据转换成序列结构的数据来处理。- 无监督的
DeepWalk
算法受word2vec
的启发,用于学习基于random walk
的node embedding
。 - 之后,
LINE
算法保留了图的一阶结构信息和二阶结构信息。 node2vec
引入了一个有偏的随机行走。
然而,这些方法的计算成本很高,而且对于大型图而言也不是最优的。图形神经网络(
graph neural network: GNN
)就是为了解决这些问题而设计的,它是基于深度学习的方法,在graph domain
上运行。现在已经有很多GNN
的变种,这里我们只介绍一些有代表性的经典方法:Gated Graph Neural Network: GGNN
使用GRU
作为更新器。Graph Convolutional Network: GCN
考虑了图的spectral structure
并利用卷积聚合器。GraphSAGE
考虑了空间信息,并引入了三种聚合器:mean aggregator, LSTM aggregator, Pooling aggregator
。graph attention network: GAT
将注意力机制纳入消息传播步骤。
由于
GNN
具有令人信服的性能和较高的可解释性,GNN
已经成为一种广泛应用的图分析方法。在这项工作中,我们提出了一个基于GGNN
的模型Fi-GNN
来为CTR
预测建模特征交互。- 无监督的
27.1 模型
假设训练数据集由
$ m $ 个field
的categorical feature
、以及表示用户点击行为的label
$ y\in \{0,1\} $ 组成。CTR
预测任务是对输入特征(包含 $ m $ 个field
)来预测用户点击的概率 $ \hat y $ 。下图是我们所提出方法的概览(
$ m=4 $ ):- 输入的
sparse m-field feature vector
首先被映射成稀疏的one-hot
向量,然后通过embedding layer
和multi-head self-attention layer
嵌入到稠密的field embedding
向量中。 - 然后,
field embedding
向量被表示为一个feature graph
,其中每个节点对应于一个feature field
,不同的feature field
可以通过边进行交互。因此,建模交互的任务可以转换为建模feature graph
上的节点交互。因此,feature graph
被馈入Fi-GNN
从而建模节点交互。 - 最后,在
Fi-GNN
的输出上应用一个Attentional Scoring Layer
来估计点击率 $ \hat y $ 。
这里的
Multi-head Self-Attention Layer
就是单层的AutoInt
,因此,Fi-GNN
相当于是AutoInt
和GNN
的堆叠。实验并没有表明AutoInt
在这里的贡献,而且即使是AutoInt + Fi-GNN
,模型在所有数据集上的整体效果提升也不明显,因此论文价值不大。- 输入的
Embedding Layer
:我们将每个field
表示为一个ont-hot encoding
向量,然后将其嵌入到一个稠密向量中,记做field embedding
向量 。 $ m $ 个field
的field embedding
向量被拼接为(沿着feature field
维度拼接):其中:
$ \mathbf{\vec e}_i \in \mathbb R^d $ 为field
$ i $ 的embedding
向量, $ d $ 为field embedding
向量的维度, $ || $ 为沿着feature field
维度拼接。Multi-head Self-attention Layer
:我们利用多头自注意力机制来捕获不同语义子空间中的pairwise
特征交互。遵从
《AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks》
,给定feature embedding
矩阵 $ \mathbf E $ ,我们获取feature representation
,它覆盖了attention head
$ i $ 中的pairwise interaction
:其中:
$ \mathbf W_i^{(Q)}, \mathbf W_i^{(K)},\mathbf W_i^{(V)}\in \mathbb R^{d\times d_i} $ 为针对attention head
$ i $ 的权重矩阵, $ d_i $ 为head
$ i $ 的维度。然后,我们将学到的每个
head
的feature representation
结合起来,以保留每个语义子空间中的pairwise feature interaction
:其中:
$ \oplus $ 为拼接操作(沿着embedding
维度), $ h $ 为attention head
数量, $ d^\prime = \sum_{i=1}^h d_i $ 为拼接后的embedding
维度。Feature Graph
:与以往简单地将field embedding
向量拼接在一起并将其馈入模型中从而学习特征交互所不同的是,我们用图结构来表示feature field
。具体而言,我们将每个输入的multi-field feature
表示为一个feature graph
$ \mathcal G=(\mathcal N, \mathcal E) $ ,其中每个节点 $ n_i\in \mathcal N $ 对应一个feature field
$ i $ ,不同的field
可以通过边进行交互,所以 $ |\mathcal N| = m $ 。因此,建模特征交互的任务可以转换为建模图上节点交互的任务。每个样本对应一张图,因此这是一个
graph-level
分类任务(二分类)。Feature Interaction Graph Neural Network
:Fi-GNN
旨在以一种灵活的、显式的方式建模feature graph
上的节点交互。在Fi-GNN
中,每个节点 $ n_i $ 都关联一个hidden state
$ \mathbf{\vec h}_i^t $ ,图的状态由这些节点的状态组成:其中
$ t $ 表示interaction step
。由多头自注意力层学到的feature representation
作为图的初始状态 $ \mathbf H^1 $ 。如下图所示,节点以循环方式进行交互并更新其状态。在每一个
interaction step
中,节点聚合邻居节点的状态信息(经过变换之后),然后根据聚合信息、以及节点历史状态通过GRU
和残差连接来更新节点状态。State Aggregation
:在interaction step
$ t $ ,每个节点将聚合来自邻居节点的状态信息。具体而言,节点 $ n_i $ 的聚合信息是其邻居节点的状态信息(转换之后)之和:其中:
$ A_{j,i} $ 为邻接矩阵 $ \mathbf A\in \mathbb R^{m\times m} $ ,它表示从 $ n_j $ 指向 $ n_i $ 的边 $ (j,i) $ 的权重,反映了这两个节点之间交互的重要性; $ \mathbf W_p $ 是投影矩阵。显然,投影矩阵和邻接矩阵决定了节点之间的交互。由于每条边上的交互应该是不同的,我们的目标是建模边上的交互,这需要对每条边有一个
unique
的权重和投影矩阵。基于注意力的边权重:为了推断不同节点之间交互的重要性,我们建议通过注意力机制来学习边权重。具体而言,从节点
$ n_i $ 到 $ n_j $ 之间的边的权重通过它们的初始节点状态(即,field embedding
向量)来计算:其中:
$ \mathbf W_w\in \mathbb R^{2d^\prime} $ 为权重矩阵, $ \oplus $ 表示拼接操作(沿着embedding
维度)。利用softmax
函数进行归一化,使不同节点的权重容易比较。最终邻接矩阵为:
由于边的权重反映了不同交互的重要性,
Fi-GNN
可以很好地解释输入样本的不同feature field
之间的关系,这一点将在实验部分进一步讨论。edge-wise
变换:如前所述,所有边上的固定的投影矩阵无法建模灵活的交互,对每个边进行unique
的变换是必要的。然而,我们的图是完全图complete graph
(即,任意两个节点之间都存在边),因此包含大量的边。简单地给每条边分配一个unique
的投影矩阵将消耗太多的参数空间和运行时间。为了减少时间和空间的复杂性,同时实现edge-wise transformation
,我们为每个节点 $ n_i $ 分配一个输出矩阵 $ \mathbf W_\text{out}^i $ 和一个输入矩阵 $ \mathbf W_\text{in}^i $ 。如下图所示,当节点 $ n_i $ 向节点 $ n_j $ 发送其状态信息时,状态信息将首先被节点 $ n_i $ 输出矩阵 $ \mathbf W^i_\text{out} $ 转换,然后在 $ n_j $ 接收之前被节点 $ n_j $ 的输入矩阵 $ \mathbf W^i_\text{in} $ 转换。因此,从节点 $ n_i $ 到 $ n_j $ 的边 $ (i,j) $ 上的投影矩阵可以写作:因此聚合信息
$ \mathbf{\vec a}_i^t $ 可以重写为:这样一来,参数的数量与节点的数量成正比,而不是与边的数量成正比,这就大大降低了空间复杂性和时间复杂性,同时也实现了
edge-wise interaction
。
State Update
:聚合状态信息之后,节点将通过GRU
和残差连接来更新状态向量。通过
GRU
进行状态更新:根据传统的GGNN
,节点 $ n_i $ 的状态向量是根据节点 $ n_i $ 的聚合状态信息、以及节点在上一个step
的状态通过GRU
更新的:通过残差连接进行状态更新:我们引入了额外的残差连接(来自初始状态),与
GRU
一起更新节点状态,这可以促进低阶特征重用和梯度反向传播:注意,这里是
$ \mathbf{\vec h}_i^1 $ 的残差连接,而不是 $ \mathbf{\vec h}_i^{t-1} $ 。
Attentional Scoring Layer
:经过 $ T $ 个propagation step
之后,我们得到了final node state
:由于节点已经与它们的
$ T $ 阶邻居交互过,因此Fi-GNN
建模了 $ T $ 阶特征交互。我们需要一个graph-level output
来预测CTR
。我们分别对每个
field
的final state
预测一个得分,并通过注意力机制将它们相加,这个注意力机制衡量它们对整体预测的影响。正式地,每个节点 $ n_i $ 的预测得分、以及它的attentional node weight
可以通过两个MLP
分别得到:整体预测是所有节点的预测的加权和:
训练:损失函数为
logloss
,即:其中:
$ N $ 为总的训练样本数量; $ y_i $ 为第 $ i $ 个训练样本的label
; $ \hat y_i $ 为第 $ i $ 个训练样本的预测CTR
。我们采用
RMSProp
优化器。此外,为了平衡正负样本比例,在训练过程中,对于每个batch
我们随机选择相同数量的正样本和负样本。
27.2 实验
数据集:
Criteo, Avazu
。对于这两个数据集:我们移除了低频特征,并将低频特征替换为
"<unknown>"
。频次阈值分别为:Criteo
数据集为10
、Avazu
数据集为5
。即出现频次低于该阈值则移除。由于数值特征可能具有较大的方差,因此我们进行对数变换:
这是由
Criteo
竞赛的获胜者提出的。数据集以
8:1:1
的比例随机拆分为训练集、验证集、测试集。
数据集的统计信息如下表所示。
评估指标:
AUC, LogLoss, Relative Improvement (RI)
。应该注意的是,对于真实世界的
CTR
任务来说,AUC
方面的微小改进被认为是显著的。为了估计我们的模型相对于baseline
模型的相对改进,我们在此测量RI-AUC
和RI-Logloss
:其中
X
为AUC
或LogLoss
。baseline
方法:LR
:通过原始特征的线性组合来建模一阶特征交互。FM
:通过field embedding
向量的内积来建模二阶特征交互。AFM
:是FM
的一个扩展,利用注意力机制考虑不同二阶特征交互的权重。DeepCrossing
:利用具有残差连接的DNN
以隐式的方式学习高阶特征交互。NFM
:利用Bi-Interaction Pooling layer
来建模二阶特征交互,然后将拼接的二阶组合特征馈入DNN
来建模高阶特征交互。CrossNet(Deep&Cross)
:是Deep&Cross
模型的核心,它通过采用拼接的feature vector
的外积,从而显式地在bit-wise level
上建模特征交互。CIN(xDeepFM)
:是xDeepFM
模型的核心,它通过采用堆叠的feature matrix
的外积,从而显式地在vector-wise level
上建模特征交互。
实现细节:我们使用
Tensorflow
实现我们的方法。最优超参数由网格搜索策略确定。baseline
的实现遵循《AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks》
。- 对于所有方法,
field embedding
向量的维度是16
,batch size = 1024
。 DeepCrossing
有四个前馈层,每层有100
个隐单元。NFM
在Bi-Interaction layer
之上有一个大小为200
的隐层,如原始论文中所推荐的。CrossNet
和CIN
都有三个交互层。- 所有实验都是在配备了
8
个NVIDIA Titan X GPU
的服务器上进行的。
- 对于所有方法,
不同模型的性能比较,如下表所示。可以看到:
LR
在这些baseline
中效果最差,这证明了单个特征在CTR
预测中是不够的。- 在所有数据集上,建模二阶特征交互的
FM
和AFM
优于LR
,这表明建模feature field
之间的pairwise
交互是有效的。此外,AFM
比FM
具有更好的表现,证明了在不同交互上的注意力的有效性。 - 建模高阶特征交互的方法大多优于建模二阶特征交互的方法。这表明二阶特征交互是不够的。
DeepCrossing
优于NFM
,证明了残差连接在CTR
预测中的有效性。- 在两个数据集上,
Fi-GNN
在所有这些方法中取得了最好的性能,尤其是在Criteo
数据集上。 Fi-GNN
在Criteo
数据集上取得的相对改进,高于在Avazu
数据集上取得的相对改进。这可能是因为Criteo
数据集中有更多的feature field
,可以更好地利用图结构的表达能力。
消融研究:我们提出的
Fi-GNN
模型是基于GGNN
的,在此基础上我们主要做了两个改进:- 通过
attentional edge weight
和edge-wise transformation
实现edge-wise node interaction
。 - 引入残差连接从而与
GRU
一起更新节点状态。
为了评估两种改进的有效性,我们对比了三个变体:
Fi-GNN(-E/R)
:同时没有上述两个改进的变体。Fi-GNN(-E)
:没有edge-wise interaction: E
的变体。即,用二元邻接矩阵、以及所有边上共享的投影矩阵。Fi-GNN(-R)
:没有residual connection: R
的变体。
对比结果如下图
(a)
所示。可以看到:Fi-GNN(-E)
的性能相比完整的Fi-GNN
大幅下降,这表明建模edge-wise interaction
是至关重要的。Fi-GNN(-E)
取得了比Fi-GNN(-E/R)
更好的性能,证明了残差连接确实可以提供有用的信息。- 完整的
Fi-GNN
优于三种变体,表明我们所做的两种改进,即残差连接和edge-wise interaction
,可以联合提高性能。
在
Fi-GNN
中,我们采用两种方法来实现edge-wise node interaction
:attentional edge weight: W
、edge-wise transformation: T
。为了进一步研究巨大的改进来自哪,我们比较了另外三个变体:Fi-GNN(-W/T)
:即Fi-GNN-(E)
。Fi-GNN(-W)
:没有attentional edge weight
。Fi-GNN(-T)
:没有edge-wise transformation
,即所有边上共享投影矩阵。
对比结果如下图
(b)
所示。可以看到:Fi-GNN(-T)
和Fi-GNN(-W)
都优于Fi-GNN(-W/T)
,这证明了它们的有效性。Fi-GNN(-W)
比Fi-GNN(-T)
实现了更大的改进,这表明在建模edge-wise interaction
方面,edge-wise transformation
比attentional edge weight
更有效。这是非常合理的,因为投影矩阵应该比标量的attentional edge weight
对edge-wise interaction
有更强的影响。
- 通过
超参数研究:
state
维度 $ d^\prime = \sum_{i=1}^h d_i $ 的影响:模型性能随着 $ d^\prime $ 的增加先升后降,在维度分别为32
(Avazu
数据集)、64
(Criteo
数据集)时性能最佳。这是合理的,因为Criteo
数据集更复杂,需要更大的维度来保持足够的信息。没有考虑
attention head
的影响?interaction step
$ T $ 的影响:interaction step
等于特征交互的最高阶次。模型性能随着 $ T $ 的增加先升后降,在特征交互的最高阶次分别为2
(Avazu
数据集)、3
(Criteo
数据集)时性能最佳。这是合理的,因为Avazu
数据集有23
个feature field
、Criteo
数据集有39
个feature field
。因此,Criteo
数据集需要更多的interaction step
来使field node
与feature graph
中的其他节点完全交互。
模型可解释性:我们在
feature graph
的边上和节点上都应用了注意力机制,分别得到了attentional edge weight
和attentional node weight
,可以从不同的角度给出解释。Multi-head Self-attention Layer
捕获的pair-wise
交互是否也是可解释的?论文并没有说明这一点。attentional edge weight
:attentional edge weight
反映了两个相连的field node
之间交互的重要性,也反映了两个feature field
之间的关系。下图展示了Avazu
数据集中所有样本的全局平均邻接矩阵的热力图,它可以在全局水平上反映不同field
之间的关系。 由于有一些field
是匿名的,我们只显示剩余的13
个具有真实含义的feature field
。可以看到:
- 一些
feature field
倾向于与其他field
有很强的关系,例如site_category
和site_id
。这是有意义的,因为两个feature field
都对应于投放广告的网站。 hour
是另一个与其他field
有密切关系的特征。这是合理的,因为Avazu
专注于移动场景,用户可以在一天的任何时间在线冲浪。上网时间对其他的广告特征有很大的影响。- 另一方面,
device_ip
和device_id
似乎与其他feature field
的关系较弱。这可能是因为它们几乎等同于user id
,相对固定,不易受其他特征的影响。
- 一些
attentional node weight
:attentional node weight
反映了feature field
对整体预测分数的影响的重要性。下图显示了global-level
和case-level
的attentional node weight
的热力图。左边的是Avazu
数据集中所有样本的全局平均值,右边的是Avazu
数据集中随机选择的四个样本(预测分数分别为[0.97, 0.12, 0.91, 0.99]
,标签分别为[1, 0, 1, 1]
)。- 在
global level
,我们可以看到featuer field app_category
对点击行为的影响最大。这是合理的,因为Avazu
专注于移动场景,而app
是最重要的因素。 - 在
case level
,我们观察到,在大多数情况下,最终的点击行为主要取决于一个关键的feature field
。
- 在
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论