数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
二十六、AutoInt [2018]
由于几个原因,
CTR
预测问题非常具有挑战性:首先,输入特征是极其稀疏和高维的。
在现实世界的应用中,相当比例的用户人口统计学和
item
属性通常是离散的。为了应用监督学习,这些特征首先被转换为one-hot embedding
向量,这很容易导致特征具有数百万的维度。面对如此稀疏的、高维的输入特征,机器学习模型很容易过拟合。其次,正如大量文献所示,高阶特征交互
feature interaction
对良好的性能至关重要。然而,寻找这种有意义的高阶组合特征在很大程度上依赖于领域专家。此外,几乎不可能手工制作出所有有意义的组合。有人可能会问,我们可以列举出所有可能的高阶特征,让机器学习模型选择有意义的特征。然而,枚举所有可能的高阶特征将指数级地增加输入特征的维度和稀疏度,导致更严重的模型过拟合问题。
Factorization Machine: FM
结合了多项式回归模型和因子分解技术从而建模特征交互,并在各种任务中证明了有效性。然而,受其多项式的限制,它只对低阶特征交互建模有效,而无法捕获高阶特征交互。最近,人们提出许多基于深度神经网络的工作从而建模高阶特征交互。具体而言,通常使用多层非线性神经网络来捕获高阶特征交互。然而,这类方法有两个局限性:
- 首先,全连接的神经网络在学习乘性
multiplicative
的特征交互方面效率低下。 - 其次,由于这些模型是以隐式的方式学习特征交互,它们缺乏对哪些特征组合是有意义的良好解释。
在论文
《AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks》
中,作者提出了一种基于多头自注意力机制的方法。具体而言:categorical
特征和numerical
特征首先被嵌入到低维空间中,这降低了输入特征的维度,同时允许不同类型的特征通过向量运算(如求和和内积)来交互。然后,
AutoInt
提出了一个新的交互层interacting layer
,以促进不同特征之间的交互。在每个交互层内,允许每个特征与所有其他特征进行交互,并能够通过多头注意力机制自动识别相关特征以形成有意义的高阶特征。此外,多头机制将一个特征投射到多个子空间中,因此它可以在不同的子空间中捕获不同的特征交互。论文使用注意力机制来度量特征之间的相关性,这提供了良好的模型可解释性。
论文贡献:
- 论文提议研究显式学习高阶特征交互的问题,同时为该问题找到具有良好解释能力的模型。
- 论文提出了一种基于自注意力神经网络的新方法,它可以自动学习高阶特征交互,并有效地处理大规模高维稀疏数据。
- 论文在几个真实世界的数据集上进行了广泛的实验。在
CTR
预测任务上的实验结果表明,所提出的方法不仅优于现有的SOTA
的预测方法,而且还提供了良好的模型解释能力。
相关工作:
Learning Feature Interactions
:学习特征交互是一个基本问题,因此在文献中得到了广泛的研究。Factorization Machine: FM
用于捕获一阶特征交互和二阶特征交互,并被证明对推荐系统的许多任务是有效的。Field-aware Factorization: FFM
建模不同field
的特征之间的细粒度交互。GBFM
和AFM
考虑了不同二阶特征交互的重要性。
然而,所有这些方法都集中在建模低阶特征交互。最近有一些工作建模高阶特征交互:
NFM
将深度神经网络堆叠在二阶特征交互的输出之上,从而建模高阶特征交互。PNN, FNN, DeepCrossing, Wide&Deep, DeepFM
也利用前馈神经网络来模拟高阶特征交互。
然而,所有这些方法都是以隐式的方式学习高阶特征交互,因此缺乏良好的模型可解释性。相反,有三类工作是以显式方式学习特征交互:
- 首先,
Deep&Cross
和xDeepFM
分别在bit-wise level
和vector-wise level
上对特征进行外积outer product
。虽然它们进行了显式的特征交互,但要解释哪些组合是有用的并不简单。 - 其次,一些基于树的方法结合了
embedding-based
模型和tree-based
模型的力量,但不得不将训练过程分成多个阶段。 - 第三,
HOFM
提出了高效的高阶分解机的训练算法。然而,HOFM
需要太多的参数,只有它的低阶(通常小于5
)形式可以实际使用。
与现有工作不同的是,我们以端到端的方式显式地用注意力机制建模了特征交互,并通过可视化的方式探究学到的特征组合。
Attention and Residual Networks
:我们的模型利用了深度学习文献中的最新技术:注意力机制和残差网络。
26.1 模型
定义
CTR Prediction
:令 $ \mathbf{\vec x}\in \mathbb R^n $ 为用户 $ u $ 的特征和item
$ v $ 的特征的拼接,其中categorical features
用one-hot encoding
来表示。点击率预测问题旨在根据特征向量 $ \mathbf {\vec x} $ 预测用户 $ u $ 点击item
$ v $ 的概率。针对
CTR
预测问题的一个直接的解决方案是:将 $ \mathbf{\vec x} $ 作为输入特征并馈入分类器,如逻辑回归。然而,由于原始特征向量 $ \mathbf{\vec x} $ 非常稀疏和高维,该模型将很容易过拟合。因此,最好能在低维连续空间中表示原始输入特征。此外,如现有文献所示,利用高阶组合特征来产生良好的预测性能是至关重要的。
定义
p
阶组合特征:给定输入特征向量 $ \mathbf{\vec x}\in \mathbb R^n $ ,一个p
阶组合特征定义为 $ g(x_{i_1},\cdots,x_{i_p}) $ ,其中:每个特征来自于一个distinct field
, $ p $ 为涉及的feature fields
的数量, $ g(\cdot) $ 是一个non-additive
的组合函数,如乘法或外积。例如, $ x_{i_1}\times x_{i_2} $ 为涉及field
$ x_{i_1},x_{i_2} $ 的二阶组合特征。传统上,有意义的高阶组合特征是由领域专家手工制作的。然而,这非常耗费时间,而且很难推广到其他领域。此外,几乎不可能手工制作出所有有意义的高阶特征。因此,我们的目标是开发一种能够自动发现有意义的高阶组合特征的方法,同时将所有这些特征映射到低维的连续空间。
问题定义:给定一个用于
CTR
预测的输入特征向量 $ \mathbf{\vec x}\in \mathbb R^n $ ,我们的目标是学习 $ \mathbf{\vec x} $ 的低维representation
,它建模了高阶组合特征。我们的方法的目标是:将原始稀疏的高维特征向量映射到低维空间,同时建模高阶特征交互。如下图所示:
我们的方法将稀疏的特征向量
$ \mathbf{\vec x} $ 作为输入,然后是一个embedding layer
,将所有的特征(即categorical
特征和数值特征)投影到同一个低维空间。接下来,我们将所有
field
的embedding
馈入一个新的交互层interacting layer
,该层被实现为一个多头自注意力神经网络。对于每个交互层,高阶特征通过注意力机制进行组合,不同种类的组合可以通过多头机制进行评估,这些多头机制将特征映射到不同的子空间。
最后一个交互层的输出是输入特征的低维
representation
,它建模了高阶组合特征,并进一步通过一个sigmoid
函数来估计CTR
。
核心思想:将
Transformer Encoder Block
作用到feature field embedding
上。Input Layer
:我们首先将用户画像和item
属性表示为一个稀疏向量,它是所有field
的拼接:其中:
$ M $ 为feature fields
的总数; $ \mathbf{\vec x}_i $ 为第 $ i $ 个field
的feature
; $ \oplus $ 为向量拼接。如果第
$ i $ 个field
是categorical
特征,则 $ \mathbf{\vec x}_i $ 为one-hot
向量。如果第 $ i $ 个field
是numerical
特征,则 $ \mathbf{\vec x}_i $ 为标量。如下图所示。Embedding Layer
:我们用一个低维向量来表示每个categorical
特征,即:其中:
$ \mathbf V_i $ 为field
$ i $ 的embedding matrix
; $ \mathbf{\vec x}_i $ 为field
$ i $ 的one-hot
向量。很多时候,
categorical
特征可以是多值的,即, $ \mathbf{\vec x}_i $ 是一个multi-hot
向量。因此,我们将multi-valued feature field
表示为相应feature embedding vectors
的平均值:其中:
$ q $ 为样本在第 $ i $ 个field
的取值的数量, $ \mathbf{\vec x}_i $ 是它的multi-hot
向量。可以用更复杂的、有效的操作来代替均值操作。
为了允许
categorical
特征和numerical
特征之间的交互,我们也在同一个低维特征空间中表示numerical
特征。我们将numerical
特征表示为:其中:
$ \mathbf{\vec v}_m $ 为field
$ m $ 的embedding
向量, $ x_m $ 为一个标量。这里
$ \mathbf{\vec v}_m $ 在field
$ m $ 的所有取值上共享。最终,
embedding layer
的输出将是多个嵌入向量的拼接。Interacting Layer
:我们采用注意力机制来确定哪些特征组合是有意义的。以特征 $ m $ 为例,我们首先定义在特定的注意头 $ h $ 下,特征 $ m $ 和特征 $ k $ 的相关性如下:其中:
$ \psi^{(h)}(\cdot,\cdot) $ 为注意力函数,它定义了特征 $ m $ 和 $ k $ 之间的相似性。可以通过神经网络或者简单的内积来定义注意力函数,这里我们使用内积的方式。 $ \mathbf W_Q^{(h)}, \mathbf W_K^{(h)}\in \mathbb R^{d^\prime\times d} $ 为投影矩阵,它将原始的embedding
空间投影到新的空间。 $ d $ 为每个field
的原始embedding size
, $ d^\prime $ 为投影后的embedding size
。
然后,我们通过
$ \alpha_{m,k}^{(h)} $ 所指导的所有相关特征来更新特征 $ m $ 在子空间 $ h $ 中的representation
:其中
$ \mathbf W_V^{(h)}\in \mathbb R^{d^\prime\times d} $ 为投影矩阵。这其实就是标准的
Transformer Encoder Block
: $ \text{softmax}\left(\mathbf Q\mathbf K^\top\right) \mathbf V $ 。我们通过使用多个头来创建不同的子空间,分别学习不同的特征交互。我们收集在所有子空间学到的组合特征如下:
其中:
$ \oplus $ 为拼接操作, $ H $ 为总的头数。为了保留先前学到的组合特征,包括原始特征(即,一阶特征),我们在网络中加入了标准的残差连接:
其中
$ \mathbf W_\text{Res}\in \mathbb R^{d^\prime H\times d} $ 为投影矩阵。标准的
Transformer
中也包含残差连接。通过这样的交互层,每个特征的
representation
$ \mathbf{\vec e}_m $ 将被更新为一个新的、高阶的representation
$ \mathbf{\vec e}_m^\text{Res} $ 。我们可以将多个这样的层堆叠起来,将前一个交互层的输出作为下一个交互层的输入。通过这样做,我们可以建模任意阶次的组合特征。这就是标准的
Transformer Encoder Block
,将其应用到feature field embedding
上。Output Layer
:交互层的输出是一组特征向量 $ \left\{\mathbf{\vec e}_m^\text{Res}\right\}_{m=1}^M $ 。对于最终的CTR
预估,我们简单地将它们全部拼接起来,然后应用非线性投影:其中:
$ \mathbf w\in \mathbb R^{d^\prime HM} $ 为投影向量, $ b $ 为bias
, $ \sigma(x) = 1/(1+\exp(-x)) $ 为sigmoid
函数。训练:损失函数为
log loss
:其中:
$ y_j $ 为ground-truth
、 $ \hat y_j $ 为预估的CTR
、 $ N $ 为样本数量。
26.2 分析
建模任意阶次的组合特征:可以看到,
AutoInt
是以hierarchical
的方式学习特征交互,即从低阶交互到高阶交互,所有的低阶特征交互都由残差连接来承载。具体分析参考原始论文。空间复杂度:
$ O(Ldd^\prime H + nd) $ ,其中 $ L $ 为交互层的层数。embedding
层的参数规模为 $ nd $ ,其中 $ d $ 为embedding size
, $ n $ 为输入特征的维度。- 交互层的参数为
$ \left\{\mathbf W_Q^{(h)},\mathbf W_K^{(h)},\mathbf W_V^{(h)},\mathbf W_\text{Res}\right\} $ , $ L $ 层交互层的参数数量为 $ L\times (3dd^\prime + d^\prime Hd) $ 。 - 输出层的参数数量为
$ d^\prime HM + 1 $ 。
因此,总的空间复杂度为
$ O(Ldd^\prime H + nd) $ 。其中: $ L $ 为交互层的数量, $ d $ 为原始的field embedding
维度, $ d^\prime $ 为投影后的field embedding
维度, $ H $ 为投影子空间数量, $ n $ 为输入特征的维度(几乎等于所有vocab size
的总和)。论文的结论是:空间复杂度几乎被交互层的参数所统治。结论不正确,实际上空间复杂度几乎是被
embedding table
所统治。时间复杂度:
$ O(MHd^\prime(M+d)) $ 。- 一个
head
中,注意力权重的时间复杂度为 $ O(Mdd^\prime + M^2d^\prime) $ 。 - 然后,构建一个
head
中的组合特征的时间复杂度也是 $ O(Mdd^\prime + M^2d^\prime) $ 。
考虑有
$ H $ 个头,因此总的时间复杂度为 $ O(MHd^\prime(M+d)) $ 。其中: $ M $ 为field
数量。- 一个
26.3 实验
数据集:
Criteo
、Avazu
、KDD12
、MovieLens-1M
。我们对
MovieLens-1M
进行了二元化:我们将评分小于3
的样本视为负样本,将评分大于3
的样本视为正样本,并删除中性样本(即评分等于3
的样本)。我们删除不经常出现的特征(出现次数少于阈值),并将其作为一个单一的特征
"<unknown>"
,其中阈值对Criteo
、Avazu
和KDD12
数据集分别设置为{10,5,10}
。由于数值特征可能有很大的方差,对机器学习算法造成伤害,我们采用
Criteo
竞赛的冠军提出的方案进行数值特征归一化:我们随机选择
80%
的样本进行训练,并将剩下的样本随机分成大小相同的验证集和测试集。
数据集的统计信息如下表所示。
评估指标:
AUC, Logloss
。baseline
方法:LR
:仅建模原始特征的线性组合。FM
:使用因子化技术建模二阶特征交互。AFM
:通过注意力机制来区分二阶组合特征的重要性,从而扩展了FM
。DeepCrossing
:采用带残差连接的深度全连接神经网络,以隐式的方式学习非线性的特征交互。NFM
:将深度神经网络堆叠在二阶特征交互层之上。通过神经网络隐式地捕获高阶特征。CrossNet
:CrossNet
是Deep&Cross
的核心,它在bit-wise level
上执行concatenated
特征向量的外积,从而显式地建模特征交互。CIN
:Compressed Interaction Network: CIN
是xDeepFM
模型的核心,在vector-wise level
上对堆叠的特征矩阵进行外积。HOFM
:提出了高效的kernel-based
算法来训练高阶FM
。我们实现了一个三阶FM
。
实现细节:
对于
AutoInt
和所有baseline
方法,我们根据经验将embedding
维度 $ d $ 设置为16
,batch size = 1024
。AutoInt
有三个交互层,隐单元的数量 $ d^\prime = 32 $ 。在每个交互层中,注意力头的数量为 $ H=2 $ 。为了防止过拟合,我们用网格搜索法在
{0.1 - 0.9}
范围内为MovieLens-1M
数据集选择dropout rate
,我们发现dropout
对其他三个大数据集来说是没有必要的。对于
baseline
方法,我们按照他们的论文建议:- 在
NFM
的Bi-Interaction
层上使用一个大小为200
的隐藏层。 - 对于
CN
和CIN
,和AutoInt
一样,我们使用三个交互层。 DeepCrossing
有四个前馈层,隐单元的数量为100
,因为它在使用三个前馈层时表现很差。
一旦所有的网络结构都固定下来,我们还对
baseline
方法应用网格搜索,以获得最佳的超参数。- 在
我们使用
Adam
来优化所有基于深度神经网络的模型。
模型效果:我们将
10
次不同运行的平均结果总结到下表,可以看到:探索二阶特征交互的
FM
和AFM
在所有的数据集上都以很大的幅度超过LR
,这表明单个特征在CTR
预估中是不够的。一个有趣的观察是:一些捕捉高阶特征交互的模型的劣势。例如:
DeepCrossing
和NFM
使用深度神经网络作为学习高阶特征交互的核心组件,但它们并不能保证比FM
和AFM
有更大的改进。这可能是由于它们是以隐式的方式学习特征交互的。相反,CIN
显式地做到了这一点,并持续优于低阶模型。此外,尽管
HOFM
可以学习比FM
更高阶的特征交互,但是HOFM
在Avazu, KDD12
上的效果比FM
更差。AutoInt
在四个真实世界的数据集中的三个上取得了最佳性能。在Avazu
数据集上,CIN
在AUC
评估中的表现比AutoInt
好一点,但我们得到的Logloss
更低。请注意,我们提出的
AutoInt
与DeepCrossing
共享相同的结构,除了特征交互层,这表明使用注意力机制来学习显式的组合特征是至关重要的。
模型效率:我们在下图中展示了不同算法在四个数据集上的运行时间。可以看到:
LR
由于其简单性而成为最高效的算法。FM
和NFM
在运行时间方面表现相似,因为NFM
只在二阶交互层之上堆叠了一个前馈隐藏层。- 在所有列出的方法中,
CIN
在所有baseline
中实现了最好的预测性能,但由于其复杂的交叉层,它要耗费更多的时间。 AutoInt
有足够的效率,这与高效算法DeepCrossing
和NFM
相当。
我们还比较了不同模型的大小(即参数的数量),作为效率评估的另一个标准。如下表所示,与
baseline
模型中的最佳模型CIN
相比,AutoInt
的参数数量要小得多。综上所述,
AutoInt
在所有baseline
模型中取得了最好的性能。与最具竞争力的baseline
模型CIN
相比,AutoInt
需要的参数要少得多,而且在在线推理过程中效率更高。消融研究:
残差结构的影响:为了证明残差单元的贡献,我们把它们从标准模型中分离出来,并保持其他结构不变。如下表所示,如果去除残差连接,所有数据集的性能都会下降。
网络深度的影响:我们考虑不同交互层的数量的影响。注意,当交互层的数量为零时,意味着不考虑组合特征。结果如下图所示。
- 如果使用一个交互层,即考虑到特征交互,在两个数据集上的性能都会大幅提高,这表明组合特征对于预测来说是非常有参考价值的。
- 随着交互层数量的进一步增加,即高阶组合特征被考虑在内,模型的性能进一步提高。
- 当层数达到三层时,性能变得稳定,表明增加更高阶特征对预测没有参考价值。
embedding
维度的影响:我们考虑不同 $ d $ 的影响。结果如下图所示。
可解释性:我们以
MovieLens-1M
数据集为例。case-level
:下图(a)
展示了不同field
的输入特征之间的相关性,这些相关性是由注意力得分得到的,其中该样本的label = 1
。我们可以看到:AutoInt
能够识别出有意义的组合特征<Gender=Male, Age=[18-24], MovieGenre=Action&Triller>
(即红色的虚线矩形)。这是非常合理的,因为年轻男子很可能喜欢动作片和惊悚片。这种相关性是怎么计算的?如果是利用了
attention
矩阵,那么对于多个交互层,使用哪一层的结果?读者猜测是第一个交互层的attention
矩阵。global-level
:下图(b)
展示了不同feature field
之间在整个数据中的平均注意力得分,从而衡量各feature field
之间的相关性。可以看到:<Gender, Genre>, <Age, Genre>, <RequestTime, ReleaseTime>, <Gender, Age, Genre>
是强相关的(即,绿色的实心区域),这是推荐的可解释性规则。是考虑所有样本还是仅考虑正样本?读者猜测是仅考虑正样本。
集成隐式交互:前馈神经网络能够建模隐式的特征交互,并被广泛集成到现有的
CTR
预测方法中。为了研究集成隐式的特征交互是否能进一步提高性能,我们通将AutoInt
与两层前馈神经网络相结合(并行集成,而不是堆叠)。我们将这个联合模型命名为AutoInt+
,并将其与以下算法进行比较:Wide&Deep
、DeepFM
、Deep&Cross
、xDeepFM
。结果如下表所示。可以看到:
通过集成前馈神经网络,我们的方法在所有数据集上的性能都有所提高。这表明,集成隐式的特征交互确实提高了
AutoInt
的预测能力。然而,从最后两栏可以看出,与其他模型相比,性能提高的幅度相当小,表明我们的单个模型
AutoInt
是相当强大的。集成了隐式的特征交互之后,
AutoInt+
的性能超过了所有的baseline
方法,并取得了新的SOTA
的性能。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论