数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
二、FNN [2016]
用户响应
user response
(如点击click-through
或转化conversion
)预测在很多web applications
中起着至关重要的作用,包括web
搜索、推荐系统、sponsored
搜索广告、展示广告display advertising
。例如,和传统线下广告相比,在线广告精准定向targeting
到单个用户的能力是核心优势。所有这些targeting
技术本质上都依赖于系统预测特定用户是否会认为潜在广告是 “相关” 的,即用户在特定上下文中点击给定广告的概率。sponsored
搜索广告、上下文广告、以及最近出现的实时竞价realtime bidding: RTB
展示广告在很大程度上依赖于模型预测广告点击率CTR
的能力。当今应用的
CTR
预估模型大多数是线性的,从逻辑回归、朴素贝叶斯到FTRL
逻辑回归、贝叶斯概率回归,所有这些都是基于大量的、基于one-hot
编码的稀疏特征。线性模型具有易于实现、学习效率高的优点,但性能相对较低,因为无法它无法学习非平凡的nontrivial
模式来捕获原始特征之间的交互interaction
。另一方面,非线性模型能够利用不同的特征组合,因此有可能提高预估性能。例如:分解机
factorization machine: FM
将用户和item
的二元特征映射到低维连续空间中,并通过向量内积自动探索特征交互;梯度提升树gradient boosting tree: GBT
在生成每棵决策树/回归树的同时自动学习特征组合。然而,这些模型不能利用不同特征的所有可能组合,并且在大特征空间中计算量很大。此外,很多模型需要特征工程来手动设计输入特征。
主流的广告点击率预估模型的另一个问题是:大多数预测模型结构浅、表达能力有限,无法从复杂和海量数据中建模潜在模式。因此,它们的数据建模和泛化能力仍然受限。
近五年来,深度学习在计算机视觉、语音识别、自然语言处理等领域取得了成功。由于视觉信号、听觉信号、文本信号已知在空间/时间上相关,因此新引入的、在深层结构上的无监督训练能够探索这种局部依赖性
local dependency
并建立特征空间的稠密representation
,使神经网络模型能够有效地直接从原始特征输入中学习高阶特征。凭借这样的学习能力,深度学习将是估计在线用户响应(如广告点击率)的理想选择。然而,
CTR
预估中的大多数输入特征都是multi-field
的,而且是不连续的discrete
、离散的categorical
,例如用户所在城市(London, Paris
)、设备类型(PC, Mobile
)、广告类目(Sports, Electronics
)。另外,输入特征之间的局部依赖性是未知的。因此,了解深度学习如何通过在此类大型multi-field
离散特征上学习特征representation
来改进CTR
预估是非常有意义的。距FNN
论文作者所知,到目前为止还没有使用深度学习方法估计广告点击率的文献。 此外,在大型输入特征空间上训练深度神经网络DNN
需要训练大量参数,这在计算上是昂贵的。例如,不同于图像和音频领域,在CTR
预估任务中,假设在第一层大约有100
万个二元输入特征和100
个隐单元,那么构建第一层神经网络就需要1
亿个权重参数。在论文
《Deep Learning over Multi-field Categorical Data – A Case Study on User Response Prediction》
中,作者以广告点击率预估作为示例,通过使用有监督和无监督方式的embedding
方法在大型multi-field
离散特征空间上研究深度学习。论文介绍了两种类型的深度学习模型,称为因子分解机支持的神经网络Factorization Machine supported Neural Network: FNN
、基于采样的神经网络Sampling-based Neural Network: SNN
。具体而言:FNN
使用分解机来初始化监督学习的embedding layer
,从而将高维稀疏特征有效地降维到低维稠密连续特征。SNN
是一个深度神经网络,由基于采样的受限玻尔兹曼机sampling-based restricted Boltzmann machine: SNN-RBM
或者基于采样的降噪自编码器sampling-based denoising auto-encoder: SNN-DAE
提供支持,并且使用了一种负采样方法。
基于
embedding layer
,论文构建了具有全连接的多层神经网络,从而探索非平凡non-trivial
的数据模式。论文对多个真实世界广告主的广告点击数据进行的实验表明:所提出的模型对CTR
预估的一致性consistent
的改进优于state-of-the-art
的模型。相关工作:点击率在在线广告中至关重要。为了最大化收入和用户满意度
satisfaction
,在线广告平台必须预测每个展示广告的预期用户行为,并最大化用户点击的期望。当前的大多数模型使用基于一组稀疏二元特征的逻辑回归,这些特征是通过
one-hot
编码从原始离散特征categorical feature
转换而来的。在这个过程中需要大量的特征工程。将维度很高的特征向量嵌入到低维
embedding
空间,这对于预测任务很有用,因为它降低了数据和模型的复杂性,并提高了训练和预测的效果effectiveness
和效率efficiency
。人们已经提出了各种embedding
方法。例如因子分解机Factorization machine: FM
最初是为协同过滤推荐而提出的,被认为是最成功的embedding
模型之一。FM
天然地可以通过将任意两个特征映射到低维潜在空间中的向量,从而估计它们之间的交互。深度学习是人工智能研究的一个分支,它试图开发新技术使得计算机能够处理复杂的任务(诸如识别
recognition
和预测prediction
)。深度神经网络DNN
能够从训练数据中提取不同抽象级别的隐藏结构hidden structures
和内在模式intrinsic patterns
,目前已经成功应用于计算机视觉、语音识别、自然语言处理。此外,在无监督预训练的帮助下,我们可以获得良好的特征representation
,引导学习朝着更好泛化的极小值区域发展。通常,这些深度模型有两个学习阶段:第一阶段通过无监督学习(即受限玻尔兹曼机
RBM
或堆叠降噪自编码器SDAE
)执行模型初始化,使模型捕获输入数据的分布。第二阶段涉及通过反向传播的监督学习对初始化模型进行微调。我们的深度学习模型的新颖之处在于第一层初始化,其中输入的原始特征是从原始离散特征转换而来的高维稀疏二元特征。这种高维稀疏二元特征使得大规模训练传统
DNN
变得困难。与NLP
中使用的word embedding
技术相比,我们的模型处理更通用的multi-field
离散特征,而没有任何假设的数据结构,如word alignment
以及letter-n-gram
等。
2.1 模型
里我们将详细讨论两种
DNN
架构,即因子分解机支持的神经网络Factorization-machine supported Neural Networks: FNN
、基于采样的神经网络Sampling-based Neural Networks: SNN
。这输入的离散特征是
field-wise one-hot
的。对于每个field
(例如city
),有多个unit
,每个unit
代表该field
的一个特定值(例如city=London
),并且只有一个postive unit
(取值为1
)、其它所有unit
都是negative
(取值为0
)。编码后的特征记作 $ \mathbf{\vec x} $ ,这是很多CTR
预估模型以及我们DNN
模型的输入。
2.1.1 FNN
我们的第一个模型
FNN
基于因子分解机FM
,网络结构如下图所示。网络分为以下几层:- 第
0
层输入层:离散特征经过one-hot
编码之后作为输入,该层也被称作sparse binary feature
层。 - 第
1
层embedding
层:输入层经过局部连接生成embedding
向量,该层也被称作dense real layer
层。 - 第
2
层到第 $ L $ 层:全连接层。也被称作hidden layer
。 - 最后一层:
sigmoid
输出层。
- 第
FNN
的核心在于embedding
向量的生成。假设one-hot
向量为 $ \mathbf{\vec x}\in \mathbb R^n $ 包含 $ F $ 个field
,field i
在向量中的起始位置为 $ s_i $ 、终止位置为 $ e_i $ (包含),即 $ \mathbf x[s_i:e_i] $ 。其中 $ n=e_F-s_1 $ 。每个
$ \mathbf {\vec z} = \left(w_0,w_1,z_1^{(1)},z_2^{(1)},\cdots,z_K^{(1)},\cdots,w_F,z_1^{(F)},z_2^{(F)},\cdots,z_K^{(F)}\right)^\top $field
生成一个embedding
向量,即field i
生成 $ \mathbf{\vec z}_i = \left(w_i,z_1^{(i)},z_2^{(i)},\cdots,z_K^{(i)}\right)^\top \in \mathbb R^{K+1} $ 。同时还有全局bias
。因此embedding
层的输出为:输入位置 $ s_i \sim e_i $ 仅仅与 $ \mathbf{\vec z}_i $ 相连,即局部连接: $ \mathbf{\vec z}_i = \mathbf W_0^{(i)} \mathbf x[s_i:e_i] $ ,其中 $ \mathbf W_0^{(i)} \in \mathbb R^{(K+1)\times (e_i-s_i+1)} $ 为映射参数。
$ \mathbf W_0\in \mathbb R^{(K+1)\times n} $ 由
$ y_\text{FM}\left(\mathbf{\vec x}\right) = \text{sigmoid}\left(\tilde w_0+\sum_{i=1}^n \tilde w_ix_i + \sum_{i=1}^n\sum_{j=i+1}^n \left(\mathbf{\vec v}^{(i)}\cdot \mathbf{\vec v}^{(j)} \right)x_ix_j\right) $FM
模型初始化,即:其中 $ \mathbf{\vec v}^{(i)}\cdot \mathbf{\vec v}^{(j)} $ 用于建模特征之间的交互。
在
FM
模型中, $ \tilde w_i $ 为第 $ i $ 个特征的bias
参数, $ \mathbf{\vec v}^{(i)}\in \mathbb R^K $ 为第 $ i $ 个特征的embedding
向量。 $ x_i $ 为field
$ i $ 的取值。 $ \mathbf W_0 $ 的第 $ i $ 列由向量 $ \left(\tilde w_i, v_1^{(i)},\cdots,v_K^{(i)}\right)\in \mathbb R^{K+1} $ 初始化。模型采用逐层预训练,一旦初始化后就冻结 $ \mathbf W_0 $ ,直到最后的微调阶段才更新 $ \mathbf W_0 $ 。
一旦求解出 $ \mathbf{\vec z} $ ,就可以计算后续网络:
$ \mathbf{\vec h}_1 = \sigma\left(\mathbf W_1\mathbf {\vec z} + \mathbf{\vec b}_1\right)\in \mathbb R^{d_1}\\ \vdots\\ \mathbf{\vec h}_L = \sigma\left(\mathbf W_l\mathbf{\vec h}_{L-1} + \mathbf{\vec b}_L\right)\in \mathbb R^{d_L}= \mathbb R\\ \hat y = \text{sigmoid}(\mathbf{\vec h}_L) $其中 $ \sigma(\cdot) $ 为激活函数, $ d_l $ 为第 $ l $ 层输出的维度。
网络每层通过
layer-wise RBM
逐层预训练来初始化。通过这种方式,上述神经网络可以更有效地从分解机
representation
中学习,从而很自然地绕过了高维二元输入的计算复杂性问题。不同隐层可以看作是不同的内部函数,捕获了数据样本的不同representation
形式。因此,该模型具有更强的捕获内在数据模式的能力。在底层使用
FM
的想法是由卷积神经网络CNN
启发的,CNN
通过在相邻层的神经元之间强制执行局部连接模式来利用空间局部相关性。同样地,第一层隐层的输入连接到特定field
的输入单元。此外,底层不是全连接的,因为FM
对one-hot
稀疏编码输入执行field-wise
训练,从而允许局部稀疏local sparsity
,如上图中的虚线所示。FM
在潜在空间中学习良好的结构数据representation
,有助于构建任何更好的模型。但是,FM
的乘积规则和DNN
的求和规则之间出现了细微的差异。然而,如果观察到的判别性的信息discriminatory information
是高度模糊的(在我们的广告点击场景下是这样的),后验权重(来自DNN
)不会显著偏离先验权重(来自FM
)。此外,隐层(
FM
层除外)中的权重通过使用对比散度contrastive divergence
的layer-wise RBM
预训练进行初始化,这有效地保留了输入数据集中的信息。FM
的初始权重通过随机梯度下降SGD
进行训练。注意,我们只需要更新连接到positive input
单元的权重,这在很大程度上降低了计算复杂度。在对
$ \mathcal L(y,\hat y) = -y\log\hat y - (1-y)\log(1-\hat y) $FM
和上层进行预训练后,我们应用监督微调(反向传播)以最小化交叉熵的损失函数:其中 $ \hat y $ 为预估的点击率, $ y $ 为
ground-truth label
。通过反向传播的链式法则,可以有效地更新包括
$ \frac{\partial \mathcal L}{\partial \mathbf W_0^{(i)}} = \sum_{k=1}^{K+1}\frac{\partial \mathcal L}{\partial z_{i,k}} \frac{\partial z_{i,k}}{\partial \mathbf W_0^{(i)}} = \frac{\partial \mathcal L}{\partial \mathbf {\vec z}_i} \mathbf x[s_i:e_i]\\ \mathbf W_0^{(i)} \leftarrow \mathbf W_0^{(i)} -\eta \frac{\partial \mathcal L}{\partial \mathbf {\vec z}_i} \mathbf x[s_i:e_i] $FM
权重在内的FNN
权重。当 $ x_j = 0 $ 时对应梯度为
0
,因此只需要更新 $ \mathbf{\vec x} $ 中非零的分量对应的参数,这大大降低了参数更新的计算量。
2.1.2 SNN
$ \mathbf{\vec z} =\sigma(\mathbf W_0\mathbf{\vec x} + \mathbf{\vec b}_0) $SNN
的模型如下图(a)
所示。SNN
和FNN
的区别在于第一层的结构和训练方法。SNN
的第一层和是全连接的:其中 $ \sigma(\cdot) $ 为激活函数, $ \mathbf W_0,\mathbf{\vec b}_0 $ 为第一层的网络参数。
为了初始化第一层的权重,我们在预训练阶段尝试了受限玻尔兹曼机
restricted Boltz- mann machine: RBM
和降噪自编码器denoising auto-encoder: DAE
。为了处理训练大型稀疏
one-hot
编码数据的计算问题,我们提出了一种基于采样的RBM
(如下图(b)
,记作SNN-RBM
),以及基于采样的DAE
(如下图(c)
,记作SNN-DAE
),从而有效地计算第一层的初始权重。我们不是为每个训练样本集合建模整个
feature set
。对于每个特征field
,每个训练样本只有一个positive value feature
,例如city= London
,并且我们随机采样 $ m $ 个negative units
(取值为零)。图(b)
和(c)
中的黑色单元是未采样到的,因此在预训练数据样本时被忽略。使用采样的单元,我们可以通过对比散度contrastive divergence
训练RBM
,并通过SGD
使用无监督方法训练DAE
,从而大大降低数据维度,并具有高的recovery
性能。此外,实值稠密向量用作
SNN
中其它层的输入。通过这种方式,我们可以显著降低计算复杂度,进而可以快速计算初始权重,然后执行反向传播来微调
SNN
模型。
2.1.3 正则化
为了防止过拟合,我们在损失函数中加入了广泛使用的
$ \Omega(\Theta) = \left\|\mathbf W_0\right\|_2^2 + \sum_{l=1}^L \left(\left\|\mathbf W_l\right\|_2^2 + \left\|\mathbf{\vec b}_l\right\|_2^2\right) $L2
正则化,例如FNN
中的正则化项为:另一方面,我们还实现了
dropout
,并在实验中对这两种正则化方式进行了比较。
2.2 实验
数据集:我们基于
iPinYou
数据集评估我们的模型,这是一个公开的真实世界展示广告display ad
数据集,包含每个广告曝光信息和相应的用户点击反馈。数据日志由不同的广告主以每条记录的格式进行组织。数据集包含
1950
万个数据样本,共有14790
个positive label
(正样本)。所有的特征都是离散的,特征包括user agent
、partially masked IP
、地区、城市、广告交易平台、域名domain
、URL
、广告位ID
等等。经过one-hot
编码后,整个数据集中的二元特征数量为937.67K
。在我们的实验中,我们分别使用来自广告主
1458
、2259
、2261
、2997
、3386
以及整个数据集的训练数据。baseline
方法:LR
:逻辑回归是一种实现简单、训练速度快的线性模型,广泛用于在线广告点击率预估。FM
:因子分解机是一种非线性模型,即使在具有巨大稀疏性的问题中也能估计特征交互。FNN
:我们提出的分解机支持的神经网络,如前所述。SNN
:我们提出的基于采样的神经网络,其中基于采样的RBM
表示为SNN-RBM
、基于采样的DAE
表示为SNN-DAE
。
为了衡量每个模型的
CTR
预估性能,我们使用AUC
指标。下表给出了
5
个不同广告主和整个数据集上不同模型的比较结果。可以看到:FM
并没有显著优于LR
,这意味着二阶组合特征不足以捕获底层数据模式。在所有测试集上,
FNN
和SNN
的性能超越了LR
和FM
。- 基于
FM
学习的潜在结构,FNN
进一步学习这些潜在特征之间的有效模式,并提供对FM
的一致提升。 SNN-DAE
和SNN-RBM
的性能大体上是一致的,即SNN
的结果几乎相同。
- 基于
超参数调优:深度神经网络需要调优相当多的超参数,这里展示我们如何实现我们的模型以及调优超参数。
- 我们使用随机梯度下降来训练模型,训练
epoch
的数量由早停策略来自动决定。 - 我们尝试了不同的学习率(
[1, 0.1, 0.01, 0.001, 0.0001]
),并选择在验证集上最佳性能的学习率。 - 对于
SNN-RBM
和SNN-DAE
的负采样unit
,我们尝试每个field
的negative units
数 $ m=1,2,4 $ 。我们发现 $ m=2 $ 在大多数情况下产生最佳结果。 - 对于隐层的激活函数,我们尝试了线性函数、
sigmoid
函数、tanh
函数,最终发现tanh
函数的结果最优。
- 我们使用随机梯度下降来训练模型,训练
架构选择:在我们的模型中,我们通过固定所有层的尺寸来研究具有
[3, 4, 5]
层隐层的架构,并发现具有三层隐层(即,包括输入层、输出层一共有五层)的架构在AUC
性能方面最佳。但是如何选择层的尺寸是一个困难。假设具有 $ L $ 层隐层,每一层的隐单元数量取值集合为
[100, 200, 300, 400, 500]
,那么一共有 $ 5^L $ 种选择。在我们的实验中,我们并没有尝试所有的组合,而是采用另一种策略:所有隐层使用相同数量的隐单元,因为根据经验具有相同尺寸的隐层的架构优于尺寸增加或减小的架构。事实上除了尺寸增加、尺寸不变、尺寸减小之外,还有一种更有效的结果,即菱形结构,如下图
(a)
所示。我们将这几种网络结构在不同数据集上进行比较。可以看到:- 菱形架构在几乎所有层尺寸设置中都优于其它架构。这种菱形之所以有效,可能是因为这种特殊形状的神经网络对模型容量有一定的约束,这在测试集上提供了更好的泛化能力。
- 另一方面,菱形架构的最佳隐单元总数为
600
,即(200,300,100)
的组合。这取决于训练样本的数量。针对小规模数据集,如果有太多隐单元可能会导致过拟合。
正则化:我们比较了
L2
正则化和dropout
。下图显示了SNN-RBM
模型采用不同正则化的性能比较。可以看到:在所有情况下dropout
都优于L2
。dropout
更有效的原因是:在馈入每个训练样本时,每个隐单元都以dropout rate
的概率从网络随机排除,即每个训练样本都可以视为一个新的模型,并将这些模型平均为bagging
的特殊case
,这有效地提高了DNN
模型的泛化能力。dropout rate
:下图显示了FNN
和SNN
中,AUC
性能如何随着的dropout rate
的增加而变化。这里的dropout rate
指的是每个神经单元处于激活状态的概率(而不是丢弃的概率)。可以看到:两个模型的性能在开始时都有上升的趋势,然后随着
dropout rate
的不断降低而急剧下降。这两种模型的区别在于对
dropout
的敏感性不同。- 模型
SNN
对dropout rate
很敏感,这可能是由于SNN
第一层的全连接而引起的。 - 模型
FNN
对dropout rate
相对不敏感,这是因为FNN
第一层部分连接而引起的。当一些隐单元被丢弃时,FNN
更鲁棒。
因此,
FNN
和SNN
最佳性能时的dropout rate
有很大不同。对于FNN
,最佳dropout rate
大约为0.8
,对于SNN
大约为0.99
。- 模型
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论