数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
- 线性模型
- 支持向量机
- 朴素贝叶斯
- 决策树
- knn
- 集成学习
- 梯度提升树
- 数据预处理
- 模型评估
- 降维
- 聚类
- 半监督学习
- EM 算法
- 最大熵算法
- 隐马尔可夫模型
- 概率图与条件随机场
- 边际概率推断
- 主题模型
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- 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
- CRF ++
- lightgbm
- xgboost
- xgboost 使用指南
- scikit-learn
- spark
- numpy
- matplotlib
- matplotlib 使用指南
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
二十八、FwFM [2018]
-
CTR
预估所涉及的数据通常是multi-field categorical data
,这类数据具有以下特性:- 首先,所有的特征都是
categorical
的,并且是非常稀疏的,因为其中许多是id
。因此,特征的总数很容易达到数百万或数千万。 - 其次,每个特征都唯一地属于一个
field
,而且可能有几十到几百个field
。
下表是一个用于
CTR
预估的现实世界multi-field categorical data set
的例子。multi-field categorical data
的特性对建立有效的机器学习模型进行CTR
预测提出了几个独特的挑战:- 特征交互
feature interaction
是普遍存在的,需要专门建模。在和标签关联方面,特征拼接feature conjunction
与单个特征不同。例如,nba.com
上展示的耐克广告的点击率,通常比所有网站上耐克广告的平均点击率、或nba.com
上展示的所有广告的平均点击率高很多。这种现象在文献中通常被称为特征交互。 - 来自一个
field
的特征往往与来自其他不同field
的特征有不同的交互。例如,我们观察到,来自field GENDER
的特征通常与field ADVERTISER
的特征有很强的交互,而它们与field DEVICE_TYPE
的特征交互却相对较弱。这可能是由于具有特定性别的用户更偏向于他们正在观看的广告,而不是他们正在使用的设备类型。 - 需要注意潜在的高模型复杂性。由于实践中通常有数以百万计的特征,模型的复杂性需要精心设计和调整,以适应模型到内存中。
为了解决这些挑战的一部分,研究人员已经建立了几个解决方案,
Factorization Machine: FM
和Field-aware Factorization Machine: FFM
是其中最成功的:FM
通过将pairwise
特征交互的影响建模为两个embedding
向量的内积来解决第一个挑战。然而,field
信息在FM
中根本没有被利用。- 最近,
FFM
已经成为CTR
预估中表现最好的模型之一。FFM
为每个特征学习不同的embedding
向量,从而用于当特征与其他不同field
的特征进行交互。通过这种方式,第二个挑战被显式地解决了。然而,FFM
的参数数量是特征数量乘以field
数量的数量级,很容易达到数千万甚至更多。这在现实世界的生产系统中是不可接受的。
在论文
《Field-weighted Factorization Machines for Click-Through Rate Prediction in Display Advertising》
中,作者引入了Field-weighted Factorization Machines: FwFM
来同时解决所有这些挑战。论文贡献:- 经验表明,不同的
field pairs
与label
的关联程度明显不同。按照同样的惯例,论文称它为field pair interaction
。 - 基于上述观察,论文提出了
Field-weighted Factorization Machine: FwFM
。通过引入和学习field pair weight matrix
,FwFM
可以有效地捕获field pair interaction
的异质性。此外,FwFM
中的参数比FFM
中的参数少几个数量级,这使得FwFM
成为现实世界生产系统中的首选。 FwFM
通过用embedding vector representation
取代线性项的binary representation
而得到进一步的增强。这种新的处理方法可以有效地帮助避免过拟合,提高预测性能。- 论文在两个真实世界的
CTR
预估数据集上进行了综合实验,以评估FwFM
与现有模型的性能。实验结果表明:FwFM
仅用FFM
的4%
的参数就能达到有竞争力的预测性能。当使用相同数量的参数时,FwFM
比FFM
的AUC
提升了0.9%
。
- 首先,所有的特征都是
28.1 模型
-
假设有
$ m $ 个unique
特征 $ \{f_1,\cdots,f_m\} $ ,以及 $ n $ 个不同的fields
$ \{F_1,\cdots,F_n\} $ 。每个特征 $ f_i $ 仅属于一个field
,记做 $ F(i) $ 。给定数据集
$ \mathcal S = \left\{y^{(s)},\mathbf{\vec x}^{(s)}\right\}_{s=1}^N $ ,其中: $ y^{(s)}\in \{1,-1\} $ 为label
表示是否点击; $ \mathbf{\vec x}^{(s)}\in \{0,1\}^m $ 为二元特征向量, $ x_i^{(s)}=1 $ 表示特征 $ f_i $ 是active
的。例如,假设有两个
field
:性别、学历,那么 $ n=2 $ 。假设有六个特征: $ f_1= 男性,f_2= 女性,f_3=博士,f_4=硕士,f_5=本科,f_6=本科以下 $ ,那么 $ f_1,f_2 $ 属于性别这个field
, $ f_3\sim f_6 $ 属于学历这个field
,它们的取值都是0
或1
。-
LR
模型为:其中:
$ \lambda $ 为正则化系数, $ \mathbf{\vec w} $ 为模型权重, $ \Phi_\text{LR}(\mathbf{\vec w}, \mathbf{\vec x}) = w_0 + \sum_{i=1}^m x_iw_i $ 。注意,因为这里将
label
取值空间设为{1, -1}
而不是{1, 0}
,因此这个损失函数与交叉熵不同,而是指数损失函数。 -
Poly2
:然而,线性模型对于诸如CTR
预估这样的任务来说是不够的,在这些任务中,特征交互是至关重要的。解决这个问题的一般方法是增加feature conjunction
。已有研究表明,Degree-2 Polynomial: Poly2
模型可以有效地捕获特征交互。Poly2
模型考虑将 $ \Phi_\text{LR} $ 替换为:其中:
$ h(i,j) $ 是一个哈希函数,它将 $ i $ 和 $ j $ 哈希到位于哈希空间 $ \mathcal H $ 中的一个自然数,从而减少参数规模。否则,模型中的参数数量将达到 $ O(m^2) $ 的数量级。 -
FM
:Factorization Machine: FM
为每个特征学习一个embedding
向量 $ \mathbf{\vec v}_i\in \mathbb R^K $ ,其中 $ K $ 为一个小的整数(如 $ K=10 $ )。FM
将两个特征 $ i $ 和 $ j $ 之间的交互建模为它们相应的embedding
向量 $ \mathbf{\vec v}_i $ 和 $ \mathbf{\vec v}_j $ 之间的内积:其中:
$ <\cdot,\cdot> $ 为向量的内积。在涉及稀疏数据的应用中(如
CTR
预估),FM
的表现通常优于Poly2
模型。原因是,只要特征本身在数据中出现的次数足够多,FM
总能为每个特征学习到一些有意义的embedding
向量,这使得内积能很好地估计两个特征的交互效应interaction effect
,即使两个特征在数据中从未或很少一起出现。 -
FFM
:然而,FM
忽略了这样一个事实:当一个特征与其他不同field
的特征交互时,其行为可能是不同的。Field-aware Factorization Machines: FFM
通过为每个特征(如 $ i $ )学习 $ n-1 $ 个embedding
向量来显式地建模这种差异,并且只使用相应的embedding
向量 $ \mathbf{\vec v}_{i,F(j)} $ 与来自field
$ F(j) $ 的另一个特征 $ j $ 交互:虽然
FFM
比FM
有明显的性能改进,但其参数数量是 $ O(mnK) $ 的数量级。在现实世界的生产系统中,FFM
的巨大参数数量是不可取的。因此,设计具有竞争力的和更高内存效率的替代方法是非常有吸引力的。
-
-
field pair
的交互强度:我们特别感兴趣的是,在field level
,交互强度是否不同。即,不同feature pair
的平均交互强度是否不同。这里的平均交互强度指的是:给定一个field pair
,它包含的所有feature pair
的平均交互强度。例如,在
CTR
预估数据中,来自field ADVERTISER
的特征通常与来自field PUBLISHER
的特征有很强的交互,因为advertiser
通常针对一群有特定兴趣的人,而PUBLISHER
的受众自然也是按兴趣分组的。另一方面,field HOUR_OF_DAY
的特征往往与field DAY_OF_WEEK
的特征没有什么交互,这不难理解,因为凭直觉,它们的交互对点击量没有什么贡献。为了验证
field pair interaction
的异质性,我们使用field pair
$ (F_k,F_l) $ 和标签变量 $ Y $ 之间的互信息来量化field pair
的交互强度:其中:
$ p(i,j) $ 表示所有样本中,特征 $ f_i=1 $ 且特征 $ f_j=1 $ 的概率。 $ p(y) $ 表示所有样本中, $ y=1 $ 的概率。 $ p((i,j), y) $ 表示所有样本中,特征 $ f_i=1 $ 且特征 $ f_j=1 $ 且 $ y=1 $ 的概率。
下图是每个
field pair
和标签之间的互信息的可视化,由Oath CTR
数据计算得出。不出所料,不同field pair
的交互强度是相当不同的。一些field pair
有非常强的交互,如(AD_ID,SUBDOMAIN)
、(CREATIVE_ID,PAGE_TLD)
,而其他一些field pair
有非常弱的交互,如(LAYOUT_ID,GENDER)
、(Day_OF_WEEK,AD_POSITION_ID)
。虽然分析结果并不令人惊讶,但我们注意到,现有的模型都没有考虑到这种
field level interaction
的异质性 。这促使我们建立一个有效的机器学习模型来捕获不同field pair
的不同交互强度。 -
FwFM
:我们提出对不同field pair
的不同交互强度进行显式的建模,其中feature pair
$ (i,j) $ 的交互被建模为:其中:
$ r_{F(i),F(j)}\in \mathbb R $ 是用于建模field pair
$ (F(i),F(j)) $ 之间交互强度的权重。核心要点:在
FM
基础上乘以 $ r_{F(i),F(j)} $ 。实现简单,效果好。进一步地,我们是否可以在
field
的概念之上继续遵循这种做法。比如,可以把field
进行分组:用户年龄、性别等等field
是一组,item
类别、品牌等等是另一组、用户历史行为序列是其它一组,然后设定field group
的权重:其中
$ r_{G(i),G)j} $ 为field group
之间的权重。我们将得到的模型称为
Field-weighted Factorization Machine: FwFM
。-
模型复杂度:
FM
的参数数量为 $ m+mK $ ,其中 $ m $ 为线性部分的参数数量, $ mK $ 为embedding
向量的参数数量。FwFM
使用了额外的 $ n(n-1)/2 $ 个参数用于每个field pair
,因此总的参数数量为 $ m+mK+n(n-1)/2 $ 。相比之下,FFM
的参数数量为 $ m+m(n-1)K $ ,因为每个特征有 $ n-1 $ 个embedding
向量。考虑到通常
$ n\ll m $ ,因此FwFM
的参数与FM
相当,显著少于FFM
。 -
线性项:我们认为,
embedding
向量 $ \mathbf{\vec v}_i $ 捕获到关于特征 $ i $ 的更多信息,因此我们提出使用 $ x_i\mathbf{\vec v}_i $ 来在线性项中代表每个特征。我们为每个特征学习一个线性权重
$ \mathbf{\vec w}_i $ ,因此FwFM
的线性项变为:这需要
$ mK $ 个参数。因此,FwFM
的总参数数量为 $ 2mK + n(n-1)/2 $ ,记做FwFM_FeLV
。这相当于为每个特征学习两个
embedding
:embedding
$ \mathbf{\vec v}_i $ 用于建模特征交互,embedding
$ \mathbf{\vec w}_i $ 用于建模线性项。好处有两个:- 首先,这种方法的表达能力更强。
- 其次,实现起来更简单。原始的线性项需要把特征表示成
sparse
形式从而节省内存和计算量(大量的零存在),在实现的时候需要特殊的逻辑(稀疏张量的转换和计算)。而这里直接用embedding lookup
,与现有的逻辑保持一致。
或者,我们为每个
field
学习一个线性权重 $ \mathbf{\vec w}_{F(i)} $ ,此时线性项变为:此时总的参数数量为
$ nK+mK + n(n-1)/2 $ ,记做FwFM_FiLV
。这相当于为每个
field
学习一个embedding
。原始线性权重的
FwFM
记做FwFM_LW
。或者我们是否可以用
$ w_i = \sum_{s=1}^dv_{i,d} $ 来作为权重?这相当于将 $ \mathbf{\vec w}_{F(i)} $ 固定为全1
的向量,一定程度上降低了参数规模同时缓解过拟合。原因如下:考虑 $ <\mathbf{\vec v}_i, \mathbf{\vec w}_i> + <\mathbf{\vec v}_i, \mathbf{\vec v}_j> + <\mathbf{\vec v}_j, \mathbf{\vec w}_j> $ ,如果 $ \mathbf{\vec v} $ 放大 $ 10 $ 倍、 $ \mathbf{\vec w} $ 缩小 $ 10 $ 倍,则结果完全相同。因此这种方式的自由度太大,需要打破这种对称性,例如: $ <\mathbf{\vec v}_i, \mathbf{\vec 1}> + <\mathbf{\vec v}_i, \mathbf{\vec v}_j> + <\mathbf{\vec v}_j, \mathbf{\vec 1}> $ ,此时 $ \mathbf{\vec v} $ 方法或缩小会完全影响最终结果。在后面的实验部分,确实发现参数更少的
FwFM_FiLV
的测试AUC
更高。那么是否 $ \mathbf{\vec w}_{F(i)} $ 固定为全1
的向量时效果还要好?
-
28.2 实验
-
数据集:
-
Criteo CTR
数据集:我们将数据按60%: 20%: 20%
随机分成训练集、验证集和测试集。 -
Oath CTR
数据集:我们使用两周的点击日志作为训练集,下一天的数据作为验证集、下下一天的数据作为测试集。对于
Oath CTR
数据集,正样本的比例通常小于1%
。我们对负样本进行降采样,使正负样本更加平衡。对验证集和测试集不做降采样,因为评估应该在反映实际流量分布的数据集上进行。
对于这两个数据集,我们过滤掉所有在训练集中出现少于
$ \tau $ 次的特征,用一个NULL
特征代替,其中 $ \tau $ 在Criteo
数据集中被设置为20
,在Oath
数据集中为10
。这两个数据集的统计数字如下表所示:
-
-
实现:我们使用
LibLinear
来训练Poly2
,并使用哈希技巧将feature conjunctions
哈希到 $ 10^7 $ 的哈希空间。所有其他的模型都在Tensorflow
中实现。Tensorflow
中FwFM
的结构如下图所示。输入是一个稀疏的二元向量
$ \mathbf{\vec x}\in \mathbb R^m $ ,只有 $ n $ 个非零项,因为有 $ n $ 个field
。对每个样本而言每个field
都有一个且只有一个活跃的特征。 -
FwFM
和已有模型的比较:我们评估了带原始线性项的FwFM
,即FwFM_LW
。对于所有的超参数,我们在验证集上进行调优,然后在测试集上进行评估。可以看到:- 在两个数据集上,
FwFM
都能取得比LR
、Poly2
和FM
更好的性能。这种改进来自于FwFM
显式地建模了field pair
的不同交互强度。 FFM
总是在验证集和测试集上获得最佳性能。然而,FwFM
的性能相比FFM
具有相当的竞争力。
- 在两个数据集上,
-
FwFM
与FFM
在具有相同参数规模的情况下的比较:FFM
的一个关键缺点是其参数数量在 $ O(mnK) $ 的规模。有两种解决方案可以减少FFM
的参数数量:使用较小的 $ K $ 、或者使用哈希技巧(具有较小的哈希空间 $ \mathcal H $ )。《Field-aware factorization machines in a real-world online advertising system》
提出对FFM
使用较小的 $ K_\text{FFM} = 2 $ ,以及通过使用较小的哈希空间 $ \mathcal H_\text{FFM} $ 从而将参数规模进一步减少到 $ O(nm_\text{FFM}K_\text{FFM}) $ 。这里我们通过选择合适的
$ K_\text{FFM} $ 和 $ \mathcal H_\text{FFM} $ ,使得FFM
和FwFM
的参数数量相同。我们不计算线性项的参数,因为它们与交互项的数量相比可以忽略。我们选择 $ K_\text{FwFM} = 10 $ 、 $ K_\text{FFM} = 2 $ 以及 $ K_\text{FFM} = 4 $ 。实验结果如下表所示。可以看到:当使用相同数量的参数时,FwFM
在Criteo
和Oath
数据集的测试集上得到更好的表现,提升幅度分别为0.70%
和0.45%
。 -
具有不同线性项的
FwFM
:下表给出了不同线性项的FwFM
的性能。可以看到:FwFM_LW
和FwFM_FeLV
在训练和验证集上比FwFM_FiLV
能取得更好的性能。原因是这两个模型的线性项( $ m $ 和 $ mK $ )比FwFM_FiLV
( $ nK $ )有更多的参数,所以它们能比FwFM_FiLV
更好地拟合训练集和验证集。- 然而,
FwFM_FiLV
在测试集上得到了最好的结果,这表明它有更好的泛化性能。 - 此外,当我们使用相同数量的参数将
FwFM_FiLV
与FFM
进行比较时,在Oath
数据集和Criteo
数据集上的AUC
提升分别为0.92%
和0.47%
。
-
超参数调优:以下所有的评估都是
FwFM_FiLV
模型在Oath
验证集上进行的。-
L2
正则化系数 $ \lambda $ :如Figure3
所示, $ \lambda =10^{-5} $ 在验证集上得到最好的性能。正则化系数作用于所有的
parameters
。 -
学习率
$ \eta $ :如Figure4
所示,我们选择 $ \eta = 10^{-4} $ 。 -
embedding
维度 $ K $ :如下表所示,我们选择 $ K=10 $ 。
-
-
学到的
field
交互强度:这里我们比较了FM
、FFM
和FwFM
在捕获不同field pair
的交互强度方面的能力。我们的结果表明,由于field pair
交互权重 $ r_{F_k,F_l} $ 的存在,FwFM
可以比FM
和FFM
更好地建模交互强度。field pair
的交互强度通过互信息(field pair
和标签之间的互信息 $ \text{MI}((F_k,F_l),Y) $ )进行量化,并在Figure 5(a)
中通过热力图进行了可视化。为了衡量学到的
field
交互强度,我们定义了以下指标:其中:
-
$ \#(i,j) $ 为feature pair
$ (i,j) $ 在训练数据中出现的次数。 -
$ I(i,j) $ 为feature pair
$ (i,j) $ 学到的交互强度。- 对于
FM
, $ I(i,j) = |<\mathbf{\vec v}_i,\mathbf{\vec v}_j>| $ 。 - 对于
FFM
, $ I(i,j) = |<\mathbf{\vec v}_{i,F_l},\mathbf{\vec v}_{j,F_k}>| $ 。 - 对于
FwFM
, $ I(i,j) = |<\mathbf{\vec v}_i,\mathbf{\vec v}_j>\times r_{F_k,F_l}| $ 。
- 对于
注意,我们将内积项的绝对值相加,否则正值和负值会相互抵消。
如果一个模型能够很好地捕捉到不同
field pair
的交互强度,我们期望其学习到的field
交互强度接近于互信息 $ \text{MI}((F_k,F_l),Y) $ 。为了便于比较,我们在Figure 5
中以热力图的形式绘制了由FM, FFM, FwFM
学到的field
交互强度,以及field pair
和标签之间的互信息 $ \text{MI}((F_k,F_l),Y) $ 。我们还计算了皮尔逊相关系数,以定量地衡量所学到的field
交互强度与互信息的匹配程度。- 从
Figure 5(b)
中我们观察到:FM
学到的交互强度与互信息完全不同。这并不奇怪,因为FM
在建模特征交互强度时没有考虑field
信息。 - 从
Figure 5(c)
中我们观察到:FFM
能够学习与互信息更相似的交互强度。 - 从
Figure 5(d)
中我们观察到:FwFM
学到的交互强度的热力图与互信息的热力图非常相似。
为了了解权重
$ r_{F_k,F_l} $ 在建模field pair
的交互强度方面的重要性,我们在Figure 6
中绘制了 $ r_{F_k,F_l} $ 的热力图,以及没有 $ r_{F_k,F_l} $ 的FwFM
(退化回FM
)的学到的field
交互强度。可以看到: $ r_{F_k,F_l} $ 的热力图与Figure 5(a)
的互信息热力图、Figure 5(d)
的FwFM
学到的field
交互强度都非常相似。这意味着 $ r_{F_k,F_l} $ 确实可以学到不同field pair
的不同交互强度。 -
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论