数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
十、xDeepFM [2018]
特征在很多预测系统
predictive system
的成功中起着核心作用。因为使用原始特征很少能带来最佳结果,所以数据科学家通常会在原始特征的转换transformation
上花费大量工作,从而生成最佳预测系统或赢得数据挖掘data mining
游戏。特征转换的一种主要类型是对离散特征
categorical feature
的叉积cross-product
转换。这些特征称作交叉特征cross feature
或者多路特征multi-way feature
,用于衡量多个原始特征的交互interaction
。例如,如果用户在微软亚研院工作,并且在周一看到一篇关于深度学习的技术文章,那么3-way
特征AND(user_organization=msra, item_category=deeplearning, time=monday)
取值为1
。传统的交叉特征的特征工程存在三个主要缺点:
- 首先,获得高质量的特征需要付出高昂的代价。由于正确的特征通常是特定于任务的
task-specific
,因此数据科学家需要花费大量时间从产品数据中探索潜在模式,然后才能成为领域专家domain expert
并提取有意义的交叉特征。 - 其次,在
web-scale
推荐系统等大规模预测系统中,大量的原始特征使得手动提取所有交叉特征变得不可行。 - 第三,手动制作的交叉特征无法推广到训练数据中未见
unseen
的交互。
因此,在无需手动特征工程的情况下学习交叉特征是一项有意义的任务。
因子分解机
$ f^{(2)}(i,j) = \left(\mathbf{\vec v_i}^\top \mathbf{\vec v}_j\right)x_ix_j $Factorization Machine: FM
将每个特征 $ i $ 嵌入到一个潜在因子向量 $ \mathbf{\vec v}_i = (v_{i,1},\cdots,v_{i,D})^\top\in \mathbb R^D $ 中,pairwise
特征交互被建模为潜在向量的内积:其中 $ x_i $ 为特征 $ i $ 的取值, $ x_j $ 为特征 $ j $ 的取值。在本文中,我们使用术语
bit
来表示潜在向量中的元素(例如 $ v_{i,1} $ )。经典的
FM
可以扩展到任意的高阶特征交互(即HOFM
),但是一个主要缺点是:HOFM
提出对所有特征交互进行建模,包括有用的组合以及无用的组合。正如AFM
所揭示的,跟无用特征的交互可能会引入噪声并降低性能。近年来深度神经网络
DNN
凭借强大的feature representation learning
能力,在计算机视觉、语音识别、自然语言处理方面取得了成功。DNN
很有希望用于学习复杂的、有选择性的特征交互。《Deep learning over multi-field categorical data》
提出Factorization-machine supported Neural Network: FNN
来学习高阶特征交互。在应用DNN
之前,FNN
使用预训练的FM
用于field embedding
。《Product-based neural networks for user response prediction》
进一步提出了Product-based Neural Network: PNN
。PNN
在embedding layer
和DNN layer
之间引入了一个product layer
,并且不依赖于预训练的FM
。FNN
和PNN
的主要缺点是它们更关注于高阶特征交互,而很少捕获低阶特征交互。Wide & Deep
和DeepFM
模型通过引入混合架构克服了这个问题,其中包含一个浅层组件和一个深层组件,目的是同时学习memorization
和generalization
。因此,他们可以共同学习低阶特征交互和高阶特征交互。
所有上述模型都利用
DNN
来学习高阶特征交互。然而,DNN
以隐式方式对高阶特征交互进行建模。DNN
学习到的最终函数可以是任意的,对于特征交互的最大阶次maximum degree
是什么,并没有理论上的结论。此外,DNN
在bit-wise level
对特征交互进行建模,这与传统的FM
框架在vector-wise level
对特征交互进行建模不同。因此,在推荐系统领域,DNN
是否确实是表达高阶特征交互的最有效模型仍然是一个悬而未决的问题。在论文
《xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems》
中,作者提出了一种基于神经网络的模型,以显式的、vector-wise
方式学习特征交互。论文的方法基于深度交叉网络Deep & Cross Network: DCN
,旨在有效地捕获有界阶次bounded degree
的特征交互。然而,作者将在论文中论证DCN
将导致一种特殊的交互形式。因此,论文设计了一种新颖的压缩交互网络compressed interaction network: CIN
来代替DCN
中的交叉网络。CIN
显式地学习特征交互,交互的阶次degree
随着网络深度的增加而增长。遵循
Wide & Deep
和DeepFM
模型的精神,论文将具有隐式交互模块的显式高阶交互模块与传统FM
模块相结合,并将联合模型命名为eXtreme Deep Factorization Machine: xDeepFM
。新模型不需要手动特征工程,并将数据科学家从繁琐的特征搜索工作中解放出来。总而言之,论文的贡献如下:- 提出了一种名为
eXtreme Deep Factorization Machine: xDeepFM
的新模型。xDeepFM
可以有效地联合学习显式高阶特征交互和隐式高阶特征交互,并且不需要手动特征工程。 - 在
xDeepFM
中设计了一个压缩交互网络compressed interaction network: CIN
。CIN
可以显式地学习高阶特征交互。论文表明特征交互的阶次degree
在每一层都会增加,并且特征在vector-wise level
而不是bit-wise level
交互。 - 对三个真实世界的数据集进行了大量实验,结果表明
xDeepFM
显著优于几个state-of-the-art
的模型。
- 首先,获得高质量的特征需要付出高昂的代价。由于正确的特征通常是特定于任务的
相关工作:
经典的推荐系统
non-factorization
模型:对于web-scale
的推荐系统,输入特征通常是稀疏的、categorical-continuous
混合的、高维的。线性模型(例如具有
FTRL
的逻辑回归模型)因为易于管理、维护、部署而被广泛采用。由于线性模型缺乏学习特征交互的能力,数据科学家不得不在交叉特征的特征工程上花费大量的工作才能获得更好的性能。考虑到一些隐藏特征
hidden feature
很难手动设计,一些研究人员利用提升决策树boosting decision tree: BDT
来帮助构建特征变换。factorization
模型:上述模型的一个主要缺点是它们无法推广到训练集中未见unseen
的特征交互。分解机
Factorization Machine: FM
通过将每个特征嵌入到一个低维潜在向量中从而克服这个问题。矩阵分解Matrix Factorization: MF
仅仅将ID
视为特征,可以看作是一种特殊的FM
。推荐是通过两个潜在向量的乘积而做出的,因此不需要用户和item
在训练集中同时出现。MF
是推荐系统文献中最流行的model-based
协同过滤collaborative filtering: CF
方法。一些工作将MF
扩展到利用辅助信息side information
,其中包括线性模型和MF
模型。另一方面,对于很多推荐系统只有隐式反馈数据集,如用户的观看历史和浏览活动可用。因此,研究人员将
factorization
模型扩展到Bayesian Personalized Ranking: BPR
框架从而用于隐式反馈。
深度学习的推荐系统:深度学习技术在计算机视觉、语音识别、自然语言理解方面取得了巨大成功。因此,越来越多的研究人员对于
DNN
用于推荐系统感兴趣。深度学习用于高阶交互:为了避免手动构建高阶交叉特征,研究人员将
DNN
应用于field embedding
,从而可以自动学习来自离散特征交互categorical feature interaction
的模式。代表性模型包括FNN
、PNN
、DeepCross
、NFM
、DCN
、Wide & Deep
、DeepFM
。这些模型与我们提出的xDeepFM
高度相关。我们将在下文中对它们进行回顾。我们将证明,与这些模型相比,我们提出的xDeepFM
具有两个特殊属性:xDeepFM
同时以显式方式和隐式方式学习高阶特征交互;xDeepFM
在vector-wise level
而不是bit-wise level
学习特征交互。深度学习用于精细的
Representation Learning
:这里我们给出一些基于深度学习的推荐系统,它们不太关注于学习特征交互。- 一些早期的工作主要使用深度学习来对辅助信息进行建模,例如视觉数据和音频数据。
- 最近,深度神经网络被用于对推荐系统中的协同过滤
CF
进行建模。《Neural collaborative filtering》
提出了一种神经协同过滤Neural Collaborative Filtering: NCF
,以便可以通过神经架构用任意函数替换MF
中的内积。 《Autorec: Autoencoders meet collaborative filtering》
和《Collaborative denoising auto-encoders for top-n recommender systems》
基于自编码器范式建模CF
,他们通过实验证明了基于自编码器的CF
优于几个经典的MF
模型。自编码器可以进一步用于联合建模CF
和辅助信息,从而生成更好的潜在因子。《A multi-view deep learning approach for cross domain user modeling in recommendation systems》
和《CCCFNet: a content-boosted collaborative filtering neural network for cross domain recommender systems》
使用神经网络联合训练多个domain
的潜在因子。《Attentive collaborative filtering: Multimedia recommendation with item-and component-level attention》
提出了注意力协同过滤Attentive Collaborative Filtering: ACF
,从而同时在item-level
和component-level
学习更精细的偏好。《Deep interest network for click-through rate prediction》
表明传统的推荐系统无法有效地捕获兴趣多样性interest diversity
和局部激活local activation
,因此他们引入了深度兴趣网络Deep Interest Network: DIN
来通过注意力激活机制attentive activation mechanism
来表达用户的多样化兴趣。
10.1 基本概念
$ [\underbrace{0,1,0,\cdots,0}_{\text{ user id}}][\underbrace{1,0}_{\text{gender}}][\underbrace{0,1,0,0,\cdots,0}_{\text{organization}}][\underbrace{0,1,0,1,\cdots,0}_{\text{interests}}] $embedding
层Embedding Layer
:在计算机视觉或自然语言理解中,输入数据通常是图像信号或文本信号,这些信号在空间或/和时间上是相关的,因此DNN
可以直接应用于具有稠密结构dense structure
的原始特征。然而,在web-scale
的推荐系统中,输入特征稀疏、维度巨大,并且没有明显的空间相关性或时间相关性。 因此,multi-field
的categorical
形式被广泛采用。例如,一个样本的输入[user_id=s02,gender=male, organization=msra,interests=comedy&rock]
通常通过field-aware
的one-hot
编码转换为高维稀疏特征:embedding layer
应用于原始特征输入从而将其压缩为低维、稠密的实值向量。- 如果
field
是单值univalent
的,则使用feature embedding
作为field embedding
。例如,将特征male
的embedding
作为field gender
的embedding
。 - 如果
field
的多值multivalent
的,则使用feature embedding
的sum
作为field embedding
。
embedding layer
如下图所示,embedding size = 4
。
$ \mathbf{\vec e} = \left[\mathbf{\vec e}_1\|\mathbf{\vec e}_2\|\cdots\|\mathbf{\vec e}_m \right]\in \mathbb R^{mD} $embedding layer
的结果是一个宽的、拼接的向量:其中: $ m $ 为
field
数量, $ \| $ 表示向量拼接, $ \mathbf{\vec e}_i\in \mathbb R^D $ 为field
$ i $ 的embedding
。尽管样本的特征长度可能不同,但是它们的
embedding size
都是 $ mD $ ,其中 $ D $ 为field embedding
维度。- 如果
隐式高阶交互
$ \mathbf{\vec x}^{(1)} = \sigma\left(\mathbf W^{(1)}\mathbf{\vec e} + \mathbf{\vec b}^{(1)}\right)\\ \mathbf{\vec x}^{(k)} = \sigma\left(\mathbf W^{(k)}\mathbf{\vec x}^{(k-1)} + \mathbf{\vec b}^{(k)}\right) $Implicit High-order Interactions
:FNN
、Deep Crossing
、Wide & Deep
中的deep
组件利用field embedding
向量 $ \mathbf{\vec e} $ 之上的前馈神经网络来学习高阶特征交互。前向传播过程为:其中 : $ k $ 为第 $ k $ 层, $ \sigma(\cdot) $ 为激活函数, $ \mathbf{\vec x}^{(k)} $ 为第 $ k $ 层的输出, $ \mathbf W^{(k)},\mathbf{\vec b}^{(k)} $ 为第 $ k $ 层的参数。
这个前向传播过程的视觉结构
visual structure
和下图中所示的网络结构(PNN
和DeepFM
)非常相似,只是这个前向传播过程不包含FM Layer
或者Product Layer
。这个前向传播过程以bit-wise
方式对交互进行建模。也就是说,即使是同一个field embedding
内的元素也会相互影响。PNN
和DeepFM
稍稍修改了上述架构。除了在embedding
向量 $ \mathbf{\vec e} $ 上应用DNN
之外,它们还在架构中添加了2-way
的交互层interaction layer
(PNN
的product layer
、DeeFM
的FM layer
)。因此,它们的模型中同时包含了bit-wise
交互和vector-wise
交互。PNN
和DeepFM
的主要区别在于:PNN
将product layer
的输出连接到DNN
,而DeepFM
将FM layer
直接连接到输出单元,如下图所示。图中的红色连线代表weight-1
的连接、灰色连线代表神经网络连接红色,另外DeepFM
忽略了线性回归部分。显式高阶交互
$ \mathbf{\vec x}_{k} = \mathbf{\vec x}_0\mathbf{\vec x}_{k-1}^\top\mathbf{\vec w}_{k}+ \mathbf{\vec b}_k + \mathbf{\vec x}_{k-1} $Explicit High-order Interactions
:DCN
提出了交叉网络Cross Network: CrossNet
,其架构如下图所示。DCN
旨在显式地对高阶特征交互进行建模。和经典的全连接前馈神经网络不同,DCN
的隐层通过以下交叉操作cross operation
计算:其中: $ \mathbf{\vec w}_k,\mathbf{\vec b}_k,\mathbf{\vec x}_k\in \mathbb R^{mD} $ 分别为第 $ k $ 层的权重向量、
bias
向量、输出向量。我们认为:
CrossNet
学习了一种特殊类型的高阶特征交互,其中CrossNet
中的每个隐层的输出都是 $ \mathbf{\vec x}_0 $ 的标量倍数。CrossNet
可以非常高效地学习特征交互。与DNN
相比,CrossNet
的复杂度可以忽略不计。但是CrossNet
的缺点是:CrossNet
的输出受限于特征形式,即每个隐层的输出都是 $ \mathbf{\vec x}_0 $ 的标量倍数。- 特征交互是以
bit-wise
方式进行的。
定理:考虑一个 $ k $ 层的交叉网络,其中第 $ i $ 层的输出定义为 $ \mathbf{\vec x}_{i} = \mathbf{\vec x}_0\mathbf{\vec x}_{i-1}^\top\mathbf{\vec w}_{i} + \mathbf{\vec x}_{i-1} $ 。那么交叉网络的输出 $ \mathbf{\vec x}_k $ 是 $ \mathbf{\vec x}_0 $ 的标量倍数。
证明:当 $ k=1 $ 时,根据矩阵乘法的结合律和分配律,我们有:
$ \mathbf{\vec x}_1 = \mathbf{\vec x}_0\mathbf{\vec x}_0^\top\mathbf{\vec w}_1 + \mathbf{\vec x}_0 \\ = \mathbf{\vec x}_0\left(\mathbf{\vec x}_0^\top\mathbf{\vec w}_1\right) + \mathbf{\vec x}_0 \\ = \mathbf{\vec x}_0\left(\mathbf{\vec x}_0^\top\mathbf{\vec w}_1 +1\right) = \alpha_1 \mathbf{\vec x}_0 $其中 $ \alpha_1 = \mathbf{\vec x}_0^\top\mathbf{\vec w}_1 +1 $ 为 $ \mathbf{\vec x}_0 $ 的一个线性回归。因此 $ k=1 $ 时命题成立。
假设结论在 $ k=i $ 时命题成立。当 $ k=i+1 $ 时,
$ \mathbf{\vec x}_{i+1} = \mathbf{\vec x}_0\mathbf{\vec x}_{i}^\top\mathbf{\vec w}_{i+1} + \mathbf{\vec x}_{i}\\ = \mathbf{\vec x}_0\left(\left(\alpha_i \mathbf{\vec x}_0\right)^\top \mathbf{\vec w}_{i+1}\right) + \alpha_i \mathbf{\vec x}_0 = \alpha_{i+1} \mathbf{\vec x}_0 $其中 $ \alpha_{i+1} = \alpha_i \left(\mathbf{\vec x}_0^\top \mathbf{\vec w}_{i+1} + 1\right) $ 为一个标量。因此 $ k=i+1 $ 时命题也成立。根据数学归纳法,则交叉网络的输出 $ \mathbf{\vec x}_k $ 是 $ \mathbf{\vec x}_0 $ 的标量倍数。
注意:标量倍数并不意味着 $ \mathbf{\vec x}_k $ 与 $ \mathbf{\vec x}_0 $ 呈线性关系,因为标量系数 $ \alpha_{k} $ 是 $ \mathbf{\vec x}_0 $ 的函数。
10.2 模型
10.2.1 CIN
我们设计了一个新的交叉网络,称作压缩交互网络
Compressed Interaction Network: CIN
。CIN
具有以下考虑:交互应用在vector-wise level
而不是bit-wise level
;显式高阶交互;网络的复杂度不会随着交互的阶次呈指数型增长。由于
embedding
向量被视为vector-wise
交互的基本单元,因此我们将field embedding
的输出表示为矩阵 $ \mathbf X^{(0)} \in \mathbb R^{m\times D} $ 。 $ \mathbf X^{(0)} $ 的第 $ i $ 行是第 $ i $ 个field
的embedding
向量 $ \mathbf X^{(0)}_{i,*} = \mathbf{\vec e}_i\in \mathbb R^{D} $ , $ D $ 为field embedding
的维度。
$ \mathbf X_{h,*}^{(k)} = \sum_{i=1}^{H_{k-1}}\sum_{j=1}^m W_{i,j}^{(k,h)}\times \left(\mathbf X_{i,*}^{(k-1)}\odot \mathbf X_{j,*}^{(0)}\right) ,\quad 1\le h\le H_k $CIN
中第 $ k $ 层的输出也是一个矩阵 $ \mathbf X^{(k)}\in \mathbb R^{H_k\times D} $ ,其中 $ H_k $ 表示第 $ k $ 层输出的embedding
向量(也称作feature vector
)的个数,并且 $ H_0=m $ 。对于CIN
, $ \mathbf X^{(k)} $ 计算为:其中:
- $ \mathbf W^{(k,h)}\in \mathbb R^{H_{k-1}\times m} $ 为第 $ k $ 层、第 $ h $ 个输出
feature vector
的参数矩阵。它的第 $ (i,j) $ 个元素给出了第 $ k-1 $ 层第 $ i $ 个输出feature vector
和第0
层第 $ j $ 个输出feature vector
交互的权重。 - $ \odot $ 为向量的逐元素乘积。
注意: $ \mathbf X^{(k)} $ 是通过 $ \mathbf X^{(k-1)} $ 和 $ \mathbf X^{(0)} $ 之间的交互推导而来的,因此特征交互可以显式度量,并且交互的阶次
degree
随着层的深度增加而增长。- $ \mathbf W^{(k,h)}\in \mathbb R^{H_{k-1}\times m} $ 为第 $ k $ 层、第 $ h $ 个输出
CIN
的结构与循环神经网络Recurrent Neural Network: RNN
非常相似,其中下一个隐层的输出取决于上一个隐层和一个额外的输入。我们在所有层都以embedding
向量为单位参与计算,因此交互是在vector-wise level
应用的。有趣的是,上述方程与计算机视觉中著名的卷积神经网络
Convolutional Neural Network: CNN
有着很强的联系。如下图所示,我们引入了一个中间张量 $ \mathbf Z^{(k+1)}\in \mathbb R^{D\times H_k\times m} $ ,它是隐层 $ \mathbf X^{(k)} $ 和原始特征矩阵 $ \mathbf X^{(0)} $ 的外积(沿着每个
embedding
维度)。那么 $ \mathbf Z^{(k+1)} $ 可以视为一种特殊类型的图像, $ \mathbf W^{(k+1,h)}\in \mathbb R^{H_k\times m} $ 为一个滤波器,一共有 $ H_{k+1} $ 个滤波器。如下图所示,我们沿着
embedding
维度 (D
) 将滤波器在 $ \mathbf Z^{(k+1)} $ 上滑动,得到一个隐向量 $ \mathbf X^{(k+1)}_{i,*} $ ,在计算机视觉中通常称作feature map
。因此, $ \mathbf X^{(k)} $ 是 $ H_k $ 个不同feature map
的集合。如下图所示 $ \text{feature map 1} $ 为滤波器 $ \mathbf W^{(k+1,1)} $ 沿着
embedding
维度滑动, $ \text{feature map } H_{k+1} $ 为滤波器 $ \mathbf W^{(k+1,H_{k+1})} $ 沿着embedding
维度滑动。
CIN
名字中的compressed
一词表示第 $ k $ 个隐层将 $ H_{k-1}\times m $ 个向量的潜在空间压缩为 $ H_k $ 个向量。CIN
网络的整体结构如下图所示。令 $ T $ 表示网络的深度。每个隐层 $ \mathbf X^{(k)}\in \mathbb R^{H_k\times D}, 1\le k\le T $ 都与输出单元连接。我们首先在隐层的每个
$ p_i^{(k)} = \sum_{j=1}^D X^{(k)}_{i,j},\quad 1\le i\le H_k $feature map
上沿着embedding
维度应用sum
池化:因此我们得到一个池化向量 $ \mathbf {\vec p}^{(k)} = \left(p_1^{(k)},p_2^{(k)},\cdots,p_{H_k}^{(k)}\right)^\top $ 。
来自隐层的所有池化向量在连接到输出单元之前进行拼接:
$ \mathbf{\vec p}^{(+)} = \left[\mathbf{\vec p}^{(1)}\|\mathbf{\vec p}^{(2)}\|\cdots\|\mathbf{\vec p}^{(T)}\right]\in \mathbb R^{\sum_{k=1}^T H_k} $其中
||
表示向量拼接。如果我们直接使用
$ \hat y =\frac{1}{1+\exp\left(\left(\mathbf{\vec p}^{(+)}\right)^\top\mathbf{\vec w}_o\right)} $CIN
进行二分类,那么输出单元是位于 $ \mathbf{\vec p}^{(+)} $ 之上的一个sigmoid
节点:其中 $ \mathbf{\vec w}_o\in \mathbb R^{\sum_{k=1}^T H_k} $ 为输出层参数。
10.2.2 CIN 分析
我们分析了
CIN
从而研究模型的复杂性和潜在的有效性。空间复杂度
Space Complexity
:第 $ k $ 层的第 $ h $ 个feature map
包含 $ H_{k-1}\times m $ 个参数,正好是 $ \mathbf W^{(k,h)} $ 的size
。第 $ k $ 层一共有 $ H_k $ 个feature map
,因此第 $ k $ 层共有 $ H_k\times H_{k-1}\times m $ 个参数。考虑到输出单元有 $ \sum_{k=1}^T H_k $ 个参数,因此CIN
的参数总量为 $ \sum_{k=1}^T H_k\times (1+H_{k-1}\times m) $ 。注意,CIN
与embedding
维度 $ D $ 无关。相比之下,一个普通的 $ T $ 层
DNN
包含 $ m\times D\times H_1 +\sum_{k=2}^T H_k\times H_{k-1}+ H_T $ 个参数,并且参数总量会随着embedding
维度 $ D $ 的增加而增加。通常 $ m $ 和 $ H_{k} $ 不会很大,所以 $ \mathbf W^{(k,h)} $ 的
$ \mathbf W^{(k,h)} = \mathbf U^{(k,h)}\left(\mathbf V^{(k,h)}\right)^\top $size
是可以接受的。必要时,我们可以利用 $ L $ 阶分解并将 $ \mathbf W^{(k,h)} $ 替换为两个较小的矩阵 $ \mathbf U^{(k,h)}\in \mathbb R^{H_{k-1}\times L}, \mathbf V^{(k,h)}\in \mathbb R^{m\times L} $ :其中 $ L\ll H, L\ll m $ 。
这里为了简单起见,我们假设每个隐层都具有相同数量(即 $ H_1=\cdots H_T=H $ )的
feature map
。通过 $ L $ 阶分解,
CIN
的空间复杂度从 $ O(mTH^2) $ 下降到 $ O(mTHL + TH^2L) $ 。相比之下,普通DNN
的空间复杂度为 $ O(mDH+TH^2) $ ,对field embedding
维度 $ D $ 敏感。
时间复杂度
Time Complexity
:计算张量 $ \mathbf Z^{(k+1)} $ 的时间成本是 $ O(mHD) $ 。因为我们在一个隐层中有 $ H $ 个feature map
,所以计算 $ T $ 层CIN
需要 $ O(mH^2DT) $ 时间。相比之下,一个 $ T $ 层的普通DNN
需要 $ O(mHD + H^2T) $ 时间。因此,CIN
的主要缺点在于时间复杂度。多项式近似
$ \mathbf{\vec x}_h^{(1)} = \sum_{i=1}^m\sum_{j=1}^m W_{i,j}^{(1,h)} \left(\mathbf{\vec x}_i^{(0)}\odot \mathbf{\vec x}_j^{(0)}\right) $Polynomial Approximation
:接下来我们检查CIN
的高阶交互特性property
。为简单起见,我们假设隐层的feature map
数量都等于field
数量 $ m $ 。则第一层的第 $ h $ 个feature map
,记作 $ \mathbf{\vec x}^{(1)}_h\in \mathbb R^D $ ,计算为:因此,第一层的每个
$ \mathbf{\vec x}_h^{(2)} = \sum_{i=1}^m\sum_{j=1}^m W_{i,j}^{(2,h)} \left(\mathbf{\vec x}_i^{(1)}\odot \mathbf{\vec x}_j^{(0)}\right)\\ = \sum_{i=1}^m\sum_{j=1}^m \sum_{s=1}^m\sum_{t=1}^mW_{i,j}^{(2,h)}W_{s,t}^{(1,i)}\left(\mathbf{\vec x}_j^{(0)}\odot \mathbf{\vec x}_s^{(0)}\odot \mathbf{\vec x}_t^{(0)}\right) $feature map
都使用 $ O(m^2) $ 个系数对pair-wise
交互进行建模。同理,第二层的第 $ h $ 个feature map
为:注意:所有与下标 $ s,t $ 有关的计算已经在前一个隐层完成。为了清晰起见,我们展开了 $ \mathbf{\vec x}_i^{(1)} $ 。可以看到,第二层的每个
feature map
都使用 $ O(m^2) $ 个新的参数对3-way
交互进行建模。一个经典的 $ k $ 阶多项式有 $ O(m^k) $ 个系数。我们将表明
$ \mathbf{\vec x}_h^{(k)} = \sum_{i=1}^m\sum_{j=1}^m W_{i,j}^{(k,h)} \left(\mathbf{\vec x}_i^{(k-1)}\odot \mathbf{\vec x}_j^{(0)}\right)\\ =\sum_{i=1}^m\sum_{j=1}^m\cdots \sum_{r=1}^m\sum_{t=1}^m\sum_{l=1}^m\sum_{s=1}^m W_{i,j}^{(k,h)}\cdots W_{l,s}^{(1,r)} \underbrace{\left(\mathbf{\vec x}_j^{(0)}\odot\cdots\odot \mathbf{\vec x}_s^{(0)}\odot \mathbf{\vec x}_l^{(0)}\right)}_{k \text{ vectors}} $CIN
以feature map
链的形式仅使用 $ O(km^3) $ 个参数来近似此类多项式。通过数学归纳法,我们可以证明第 $ k $ 层的第 $ h $ 个feature map
为:为了更好地说明,我们令 $ \vec\alpha = (\alpha_1,\cdots,\alpha_m)\in \mathbb N^m $ 为一个
multi-index
, $ \alpha_i $ 为非负整数。记 $ |\vec\alpha| = \sum_{i=1}^m \alpha_i $ 。我们忽略了 $ \mathbf{\vec x}_i^{(0)} $ 的原始上标,并使用 $ \mathbf{\vec x}_i $ 来代替,因为在最终展开的表达式中只有来自第0
层的feature map
(它就是field embedding
)。现在我们使用上标来表示向量运算,例如 $ \mathbf{\vec x}_i^3 = \mathbf{\vec x}_i\odot \mathbf{\vec x}_i\odot \mathbf{\vec x}_i $ 。令 $ VP_k(\mathbf X) $ 表示 $ k $ 阶的
$ VP_k(\mathbf X) = \left\{\sum_{\vec\alpha}w_{\vec\alpha} \mathbf{\vec x}_1^{\alpha_1}\odot\mathbf{\vec x}_2^{\alpha_2}\odot\cdots \odot \mathbf{\vec x}_m^{\alpha_m}\bigg| \;2\le |\vec\alpha| \le k \right\} $multi-vector
多项式:这一族的每个
$ \hat w_{\vec\alpha} = \sum_{i=1}^m\sum_{j=1}^m\sum_{\vec B\in \mathbb P_{\vec \alpha}} \prod_{t=2}^{|\vec\alpha|} W_{i,B_t}^{(t,j)} $vector
多项式都有 $ O(m^k) $ 个系数。然后,我们的CIN
逼近系数 $ w_{\vec\alpha} $ :其中 $ \vec B=(B_1,\cdots,B_{|\vec\alpha|})^\top $ 为一个
multi-index
, $ \mathbb P_{\vec\alpha} $ 为索引 $ (\underbrace{1,\cdots,1}_{\alpha_1 \text{ times}},\cdots,\underbrace{m,\cdots,m}_{\alpha_m \text{ times}}) $ 的所有排列组合构成的索引集合。
10.2.3 与隐式网络结合
如前所述,普通
DNN
学习隐式高阶特征交互。由于CIN
和普通DNN
可以互补,因此使模型更强大的一种直观方法是将这两种结构结合起来。最终得到的模型与Wide & Deep
或DeepFM
模型非常相似,架构如下图所示。我们将新模型命名为eXtreme Deep Factorization Machine: xDeepFM
。一方面xDeepFM
同时包含低阶特征交互和高阶特征交互,另一方面xDeepFM
同时包含隐式特征交互和显式特征交互。
$ \hat y = \sigma\left(\mathbf{\vec w}^\top_\text{linear} \mathbf{\vec a} + \mathbf{\vec w}_\text{dnn}^\top \mathbf{\vec x}^{(k)}_\text{dnn} + \mathbf{\vec w}_\text{cin}^\top \mathbf{\vec p}^{(+)} + b\right) $xDeepFM
的输出单元结果为:其中: $ \sigma(\cdot) $ 为非线性激活函数; $ \mathbf{\vec a} $ 为原始特征; $ \mathbf{\vec x}^{(k)}_\text{dnn} $ 为普通
DNN
的输出; $ \mathbf{\vec p}^{(+)} $ 为CIN
的输出; $ \mathbf{\vec w}_\text{linear},\mathbf{\vec w}_\text{dnn},\mathbf{\vec w}_\text{cin} $ 为权重向量, $ b $ 为bias
。对于二元分类问题,损失函数为
$ \mathcal L = -\frac{1}{N}\sum_{i=1}^N y_i \log \hat y_i + (1-y_i)\log \left(1-\hat y_i\right) $log loss
:其中 $ N $ 为训练样本总数。
优化过程最小化以下目标函数: $ \mathcal J = \mathcal L + \lambda_* \|\mathbf\Theta\| $ 。其中: $ \lambda_* $ 为正则化系数, $ \mathbf \Theta $ 为包括线性部分、
CIN
部分、DNN
部分的训练参数集合。和
FM, DeepFM
的关系:假设所有字段都是单值univalent
的。从上图不难看出,当CIN
部分的深度为 $ k=1 $ 、feature map
数量 $ H_k=1 $ 时,xDeepFM
是DeepFM
的推广,通过学习FM
层的线性回归权重(注意,在DeepFM
中,FM
层的单元直接连接到输出单元,没有任何系数)。当我们进一步移除
DNN
部分时,同时对feature map
使用一个constant
的sum
滤波器(即它只是获取输入的sum
,没有任何待学习的参数,此时 $ W_{i,j}^{(1,1)}=1 $ )时,那么xDeepFM
就降级downgraded
为传统的FM
模型。
10.3 实验
这里我们进行了大量实验来回答以下问题:
Q1
:我们提出的CIN
在高阶特征交互学习中的表现如何?Q2
:推荐系统是否需要结合显式高阶特征交互和隐式高阶特征交互?Q3
:网络的超参数如何影响xDeepFM
的性能?
我们将在介绍一些基本的实验配置之后回答这些问题。
数据集:我们将在以下三个数据集中评估我们提出的方法。
Criteo
数据集:它是一个可以公开访问的、著名的工业benchmark
数据集,用于开发点击率预估模型。给定用户和他正在访问的网页,目标是预估用户点击给定广告的概率。DianPing
数据集:大众点评网是中国最大的消费者评论网站。它提供多种特征,如评论、签到check-in
、以及商店的元信息(包括地理位置和商店属性)。我们为餐厅推荐实验收集了6
个月的用户check-in
记录。给定用户的用户画像、目标餐厅的属性、以及用户最近访问的三个point of interest: POI
,我们希望预测他将访问目标餐厅的概率。对于用户
check-in
样本中的每家餐厅(postive
餐厅),我们根据POI
热度popularity
对postive
餐厅3
公里范围内的四家餐厅进行采样作为负样本。Bing News
数据集:Bing News
是微软Bing
搜索引擎的一部分。为了评估我们模型在真实商业数据集中的性能,我们收集了新闻阅读服务上连续五天的曝光日志。我们使用前三天的数据进行训练和验证、用最后两天的数据进行测试。
对于
Criteo
和Dianping
数据集,我们按照8:1:1
随机拆分样本用于训练、验证、测试。下表给出了这三个数据集的统计特性。
评估指标:我们使用两个指标
AUC
和Logloss
从不同角度来评估模型性能。AUC
衡量一个正样本的排序高于随机选择的负样本的概率。它仅考虑预测样本的相对排序,对于类别不平衡问题class imbalance problem
不敏感。- 相反,
Logloss
衡量每个样本的预测score
和真实label
之间的距离。
有时我们更多地依赖
Logloss
,因为我们需要使用预估点击率来估计排序策略的收益(通常使用eCPM = pCTR x bid
来排序)。baseline
方法:我们将xDeepFM
和logistic regression: LR
、FM
、DNN
(普通深度神经网络)、PNN
(从IPNN
和OPNN
中选择更好的那个)、Wide & Deep
、DCN
、DeepFM
进行比较。如前所述,这些模型与我们的xDeepFM
高度相关,其中一些是推荐系统的state-of-the-art
模型。注意,本文的重点是自动学习特征交互,因此我们不包括任何手工制作的交叉特征。
配置:
- 我们使用
Tensorflow
实现我们的方法。 - 每个模型的超参数通过在验证集上进行网格搜索来调优,每个模型的最佳
setting
将在相应部分显示。 - 学习率设置为
0.001
,优化器为Adam
,batch size = 4096
。 - 对于
DNN, DCN, Wide & Deep, DeepFM, xDeepFM
,采用 $ \lambda = 0.0001 $ 的L2
正则化。对于PNN
,采用dropout rate = 0.5
的dropout
正则化。 - 每层神经元数量的默认设置为:
DNN
部分每层400
个神经元;CIN
部分在Criteo
数据集上每层200
个神经元、在Dianping
数据集和Bing News
数据集上每层100
个神经元。 - 由于本文关注的是神经网络结构,因此我们将所有模型的
field embedding
维度设为固定值10
。
我们使用
5
个Tesla K80 GPU
并行进行不同setting
的实验。源代码可以在github
上获取。- 我们使用
10.3.1 Q1: 单个神经网络组件的性能比较
我们想知道单体
CIN
的效果。注意:FM
显式地建模二阶特征交互,DNN
隐式地建模高阶特征交互,CrossNet
尝试使用少量参数建模高阶特征交互(如前所述,这被证明无效),而CIN
显式地建模高阶特征交互。理论上无法保证某个单体individual
模型优于其它单体模型,因为这确实取决于数据集。例如,如果实际数据集不需要高阶特征交互,那么FM
可能是最好的单体模型。因此,我们对哪个模型在这个实验中表现最好没有任何预期。下表显式了所有单体模型在三个实际数据集上的表现,
Depth
列表示超参数调优找到的最佳网络深度。这里CIN
是xDeepFM
的CIN
网络,不包含xDeepFM
的DNN
部分。CrossNet
是DCN
的cross network
部分,也不包含DNN
部分。令人惊讶的是,我们的
CIN
始终优于其它模型。- 一方面,结果表明:对于实际数据集,稀疏特征上的高阶交互是必要的。这可以通过
DNN
、CrossNet
、CIN
在所有三个数据集上显著优于FM
的事实来验证。 - 另一方面,
CIN
是最好的单体模型,这证明了CIN
在显式建模高阶特征交互方面的有效性。
注意, $ k $ 层
CIN
可以对 $ k $ 阶特征交互进行建模。同样有趣的是,CIN
需要5
层才能在Bing News
上产生最佳结果。- 一方面,结果表明:对于实际数据集,稀疏特征上的高阶交互是必要的。这可以通过
10.3.2 Q2: 整体模型的性能比较
xDeepFM
将CIN
和DNN
集成到端到端模型中。虽然CIN
和DNN
在学习特征交互方面涵盖了两个不同的属性,但是我们有兴趣知道它们结合在一起进行联合的显式学习和隐式学习是否确实有必要和有效。在这里,我们比较了几个强baseline
,其中不限于单体模型individual model
。结果如下表所示,可以看到:LR
远比所有其它模型差,这表明factorization-based
的模型对预测稀疏特征至关重要。Wide & Deep, DCN, DeepFM, xDeepFM
明显优于DNN
,这直接反映了虽然简单,但是融合了混合组件hybrid components
对于提高预测系统的准确性很重要。- 我们提出的
xDeepFM
在所有数据集上都实现了最佳性能,这表明结合显式高阶特征交互和隐式高阶特征交互是必要的,并且xDeepFM
在学习此类组合时是有效的。 - 另一个有趣的观察是,所有基于神经网络的模型都不需要非常深的网络结构以获得最佳性能。
depth
超参数的典型设置为2
和3
,xDeepFM
的最佳深度为3
,这表明我们学习的交互最多为4
阶。
表中的
Depth
列给出整体模型通过超参数调优得到的各个组件的最佳深度,格式为 ”cross
层深度,DNN
层深度“。
10.3.3 Q3: 超参数研究
这里我们研究超参数对
xDeepFM
的影响,包括:隐层数量、每层神经元数量、激活函数。我们通过保持DNN
部分的最佳设置的同时改变CIN
部分的setting
来进行实验。隐层深度:下图展示了隐层数量的影响。可以看到:
xDeepFM
的性能在开始时随着网络深度的增加而增加。- 然而,当网络深度大于
3
时,模型性能会下降。这是由于过拟合引起的,因为我们发现当添加更多隐层时,训练损失仍然在不断下降。
每层神经元数量:增加每层神经元数量表示增加
CIN
中的feature map
数量。如下图所示,当我们将每层神经元数量从20
增加到200
时,Bing News
数据集上的模型性能稳步提高。而在Dianping
数据集上,100
是最佳的每层神经元数量。在这个实验中,我们将隐层深度固定为3
。注:由于
field embedding
固定为10
,因此CIN
每层神经元数量为20
意味着 $ H_k = 2 $ 。激活函数:注意,我们在
CIN
神经元上用恒等映射作为激活函数。深度学习文献中一种常见做法是在隐层神经元上使用非线性激活函数。因此,我们在CIN
上比较不同激活函数的结果(对于DNN
中的神经元,我们保持使用relu
激活函数)。如下图所示,恒等映射确实是最适合CIN
中神经元的激活函数。未来工作有两个方向:
- 首先,目前我们仅使用
sum
池化来嵌入多元multivalent
的field
。我们可以探索使用DIN
机制根据候选item
来捕获相关的activation
。 - 其次,如前所述,
CIN
模块的时间复杂度很高。我们有兴趣开发一个分布式版本的xDeepFM
,它可以在GPU
集群上有效地训练。
- 首先,目前我们仅使用
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论