数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
四、DeepCrossing [2016]
传统的机器学习算法应该充分利用所有输入特征来预测和分类新的样本。然而,简单地使用原始特征很少能够提供最佳结果。因此,无论是工业界还是学术界,都存在大量关于原始特征的特征变换
feature transformation
的工作。一种主要的特征变换类型是基于多个特征的特征组合feature combination
函数,并将组合特征combinatorial features
作为学习器learner
的输入。这些组合特征有时被称作交叉特征cross features
或多路特征multi-way features
。组合特征是强大的工具,尤其是在领域专家
domain experts
手中。根据我们自己对主力major
赞助搜索引擎sponsored search engine
的体验,组合特征是许多模型中最强大的特征之一。- 在
Kaggle
社区中,顶级数据科学家是制作组合特征的大师,甚至可以交叉crossing
三到五个维度。 直觉intuition
以及创造有效的组合特征的能力是他们获胜的重要组成部分。 - 在计算机视觉社区中,类似
SIFT
的特征是ImageNet
比赛当时state-of-the-art
表现背后的关键驱动因素。SIFT
特征是在图像块image patches
上提取的,是特殊形式的组合特征。
组合特征的威力伴随着高昂的成本。在个人开始创建有意义的特征之前,有一个陡峭的学习曲线需要攀登。随着特征数量的增长,管理
managing
、维护maintaining
、部署deploying
组合特征变得具有挑战性。在web-scale
的application
中,由于特征数量非常庞大,并且在给定数十亿样本的情况下训练和评估周期很长,因此寻找额外的组合特征来改善现有的模型是一项艰巨的任务。深度学习承诺无需人工干预即可从
individual
特征中学习。语音、图像领域是最先展示这种潜力的。通过深度卷积神经网络CNN
从特定任务中学习的卷积核,已经取代了手工制作的SIFT-like
特征,成为图像识别领域的state-of-the-art
技术。类似的模型已经应用于NLP application
,从零开始构建语言处理模型,而无需进行大量的特征工程feature engineering
。在论文
《Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features》
中,论文提出Deep Crossing
模型,从而将深度学习的成功扩展到了更通用的环境中,其中individual
特征具有不同的性质。具体而言,Deep Crossing
接受individual
的文本text
特征、离散categorical
特征、ID
特征、数值numerical
特征,并根据特定任务自动搜索最佳组合。此外,Deep Crossing
旨在处理web-scale
的application
和数据规模。这不仅是因为作者主要对此类application
感兴趣,还因为在这种规模下运行的通用模型没有太多选择。值得注意的是,
Deep Crossing
在学习过程中确实以某种方式生成了组合特征,尽管Deep Crossing
的输出是一个没有这些交叉特征的显式representation
的模型。- 在
相关工作:无需手工制作特征的深度神经网络的想法并不新鲜。
- 在
80
年代初,Fukushima
报道了一个七层的Neocognitron
网络,该网络可以从图像的原始像素中识别数字。通过利用部分连接的结构partially connected structure
,Neocognitron
实现了平移不变性shift invariance
,这是视觉识别任务中的一个重要特性。 CNN
是由LeCun
等人在90
年代后期发明的,具有类似的架构,尤其是部分连接的卷积核。尽管CNN
作为recognition engine
具有坚实的基础,但是基于SIFT-like
特征的分类器主导了图像识别十多年。2012
年,Krizhevsky
等人提出了AlexNet
,它比基于SIFT
的baseline
的错误率error rate
降低了接近11
个绝对百分点。- 最近,一个
152
层的残差网络在2015
年赢得了ImageNet
和MS COCO
比赛。
深度
CNN
的发展鼓舞人心,它表明:即使在十多年来对最佳手动特征进行微调的系统中,深度学习也能够得到改进。换句话说,即使是最有经验的领域专家domain experts
也可能会错过深度CNN
使用特定于任务的filters
捕获的特征之间的深度交互deep interaction
。 意识到这一点对我们在Deep Crossing
方面的工作有着深远的影响。深度语义相似性模型
Deep Semantic Similarity Model: DSSM
学习一对文本字符串之间的语义相似性,每个字符串都由称作tri-letter gram
的稀疏representation
所代表。learning
算法通过将tri-letter gram
嵌入到两个向量(一个query embedding
向量、一个document embedding
向量)中来优化基于余弦距离的目标函数。学习到的embedding
捕获了单词和句子的语义,应用于赞助搜索sponsored search
、问答、机器翻译,并取得了很好的效果。分解机
Factorization Machine: FM
以其通用形式对单个特征之间的d
路交互进行建模。在输入非常稀疏的情况下,FM
展示出比SVM
更好的结果,但是不清楚FM
在稠密特征上的表现如何。对于
NLP
任务,《Natural language processing (almost) from scratch》
构建了一个统一的神经网络架构,避免了特定任务的特征工程。- 在
赞助搜索
Sponsered Search
:Deep Crossing
是在主力major
搜索引擎的sponsored search
的背景下讨论的。简而言之,sponsored search
负责在自然搜索organic search
结果旁边展示广告。生态系统中存在三大主体:用户、广告主、搜索平台。平台的目标是向用户展示最符合用户意图user’s intent
的广告,其中用户意图主要是通过特定的query
来表达。以下是接下来讨论的关键概念。query
:用户在搜索框中键入的文本字符串。- 关键词
keyword
:和广告主推广的产品相关的文本字符串,由广告主指定从而匹配用户的query
。 - 标题
title
:广告的标题,由广告主指定从而吸引用户的注意力。 - 落地页
landing page
:当用户点击相应广告时,用户到达的广告主的产品网站。 match type
:为广告主提供的关于keyword
和用户query
匹配程度的选项,通常是四种类型之一:精确匹配exact
、短语匹配phrase
、宽泛匹配broad
、上下文匹配contextual
。- 营销活动
campaign
:一组具有相同设置(例如预算、地域定向)的广告,通常用于将广告主的产品归类。 - 曝光
impression
:向用户展示的广告实例。曝光通常和运行时run-time
可用的其它信息一起记录。 - 点击
click
:表示用户是否点击了曝光的广告。点击通常和运行时可用的其它信息一起记录。 - 点击率
click through rate
:总点击次数除以总曝光次数。 - 点击预测
click prediction
:搜索平台的点击预估模型,用于预测用户针对给定query
点击给定广告的可能性。
sponsored search
只是一种web-scale
的application
。然而,鉴于问题空间的丰富性、各种类型的特征、以及庞大的数据量,我们认为我们的结果可以推广到具有类似规模的其它application
。
4.1 Feature Representation
这里使用下表中列出的
individual
特征,然后对比这些特征的组合特征。这些individual
特征在在线预估阶段可用,也可以用于模型的离线训练。单个特征
individual features
:individual
特征表示为一个向量。 对于诸如query
之类的文本特征,一个选择是将字符串转换为具有49292
维的tri-letter gram
。诸如MatchType
之类的离散categorical
特征转换为one-hot
向量。sponsored search system
中通常有数百万个campaign
,简单地将campaign id
转换为one-hot
向量会显著增加模型的大小。一种解决方案是使用上表中的一对伴随特征a pair of companion features
,其中:CampaignID
是one-hot representation
,它仅包含点击次数最多的top 10000
个campaigns
,而剩余所有的campaigns
保存在第10000
个slot
(索引从0
开始)。CampaignIDCount
覆盖了其它campaigns
(也包括top 10000
的campaigns
)。这是一个数值特征,用于存储每个campaigns
的统计信息,如曝光次数、点击率等等。在以下讨论中,这类特征将被称作计数特征counting feature
。
目前为止,所有的特征都是稀疏特征或计数特征。
组合特征
combinatorial features
:给定单个特征 $ \mathbf{\vec f}_i\in \mathbb R^{n_i} $ 和单个特征 $ \mathbf{\vec f}_j\in \mathbb R^{n_j} $ ,组合特征 $ \mathbf{\vec f}_{i,j}\in \mathbb R^{n_i}\times \mathbb R^{n_j} $ 。组合特征也有稀疏representation
和稠密representation
。- 稀疏
representation
的一个例子是CampaignId x MatchType
组合特征,它的维度是10001 x 4 = 40004
维。 - 稠密
representation
的一个例子是计算给定CampaignId
和MatchType
组合下的广告点击次数。
Deep Crossing
避免使用组合特征。它适用于稀疏和稠密的individual
特征,并支持上述广泛的特征类型。这使得用户可以自由地从他们的特定application
中使用他们选择的特征。虽然收集特征并转换为正确的representation
仍然需要大量的努力,但是工作仅仅是停留在individual
特征的层面,剩余的工作交由模型处理。- 稀疏
4.2 模型
DeepCrossing
模型的输入是原始特征,模型有四种类型的Layer
:Embedding Layer
:将原始特征映射成embedding
向量。假设原始特征
$ \mathbf{\vec z}^{(i)} = \text{relu}(\mathbf W^{(i)} \mathbf x[s_i:e_i] + \mathbf{\vec b}^{(i)}) \in \mathbb R^{m_i} $one-hot
向量为 $ \mathbf{\vec x} $ ,field i
在向量中的起始位置为 $ s_i $ 、终止位置为 $ e_i $ (包含),记作 $ \mathbf x[s_i:e_i ] $ 。则embedding
层的输出为:其中 $ \mathbf W^{(i)} \in \mathbb R^{m_i\times (e_i-s_i+1)}, \mathbf{\vec b}^{(i)}\in \mathbb R^{m_i} $ 为模型参数, $ m_i $ 为第 $ i $ 个
embedding
的维度。通常有 $ m_i \ll (e_i-s_i+1) $ ,这使得embedding
之后的维度大大小于原始特征维度。对于某些维度较小的原始特征(如维度小于
256
),无需进行embedding
层,而是直接输入到Stacking Layer
层。如图中的Feature #2
。需要指出的是:
embedding layer
的维度对于模型的整体大小有着显著的影响。即使对于稀疏特征 $ m_i\times (e_i-s_i+1) $ 矩阵本质上也是稠密的。这就是Deep Crossing
使用伴随特征companion features
来约束高基数特征high cardinality
维度的原因(降低 $ e_i-s_i+1 $ )。
$ \mathbf{\vec h}_1 = \left[\mathbf{\vec z}^{(1)}*\mathbf{\vec z}^{(2)}*,\cdots,*\mathbf{\vec z}^{(F)}\right] $Stacking Layer
:所有embedding
特征和部分原始特征拼接成一个向量:其中: $ * $ 表示特征拼接, $ F $ 为原始特征
field
的数量, $ \mathbf{\vec h}_1 $ 为embedding
向量。如果是直接输入的原始特征,则 $ \mathbf{\vec h}_1 $ 表示该原始特征的one-hot
向量。Residual Unit Layer
:Deep Crossing
使用稍加修改的残差单元Residual Unit
,其中不使用卷积核。据我们所知,这是第一次使用残差单元解决图像识别以外的问题。基于残差单元
$ \mathbf{\vec h}_2 = \mathcal F\left(\mathbf{\vec h}_1;\mathbf W_0,\mathbf W_1,\mathbf{\vec b}_0,\mathbf{\vec b}_1\right) + \mathbf{\vec h}_1 $Residual Unit
构建的残差层,其输出为:其中 $ \mathcal F(\cdot) $ 为残差单元,它跨越了两个
$ \mathcal F\left(\mathbf{\vec h}_1;\mathbf W_0,\mathbf W_1,\mathbf{\vec b}_0,\mathbf{\vec b}_1\right) = \text{relu}\left[\mathbf W_1 (\text{relu}(\mathbf W_0\mathbf{\vec h}_1 + \mathbf{\vec b}_0)) + \mathbf{\vec b}_1\right] $relu layer
:注意:在一个
DeepCrossing
网络中可以有多个残差层。
$ \hat y = \text{sigmoid} \left(\mathbf{\vec w} \cdot \mathbf{\vec h}_{L-1} + b\right) $Scoring Layer
:sigmoid
输出层。其输出为:其中 $ \mathbf{\vec w},b $ 为参数, $ \mathbf{\vec h}_{L-1} $ 为前一层的隐向量, $ L $ 为总的层数。
模型的损失函数为负的
$ \mathcal L = - \frac 1N \sum_{i=1}^N\left(y_i \log \hat y_i +(1-y_i)\log(1- \hat y_i) \right) $Logloss
:其中 $ N $ 为总的样本数, $ y_i $ 为
ground truth
。当然根据具体任务也可以调整为
softmax
损失函数或者其他损失函数。Deep Crossing
被应用于各种各样的任务。它也适用于样本量差异很大的训练数据。在所有情况下,都是用相同的模型,无需对层、节点、节点类型进行任何调整。我们认为残差单元可能隐含地执行某种正则化从而导致这种稳定性。Early Crossing vs Late Crossing
:可以将Deep Crossing
和DSSM
进行比较。下图是使用logloss
作为目标函数的改进型DSSM
的架构。修改后的DSSM
与点击预测的application
更密切相关,它在绿色的虚线左侧保留了DSSM
的基础架构,但使用logloss
将预测和ground-truth
进行比较。DSSM
允许两路文本输入,每路文本输入都由文本的tri-letter gram
向量来表示。DSSM
具有将特征交互延迟到前向传播后期的特点。在到达Cosine Distance
节点之前,输入特征通过两条独立路径上的多层变换来完全地嵌入。相比之下,
Deep Crossing
最多采用一层single-feature embedding
,然后在前向传播的更早阶段开始特征交互。实验中我们发现,
Deep Crossing
始终优于DSSM
。除了残差单元优越的优化能力之外,在前向传播的早期引入特征交互似乎也起着重要的作用。Deep Crossing
由CNTK
提供支持的multi-GPU
平台上实现,具体CNTK
实现代码和multi-GPU
平台参考原始论文。
4.3 实验
Deep Crossing
在主力搜索引擎的曝光和点击日志上训练和评估的。下表给出了实验数据集。每个实验将使用训练集、验证集、测试集的组合,由Data Set
列中给出的名字来引用。- 只有同一个
group
中的数据集是兼容的,这意味着不同Type
在时间上没有重叠。例如,使用all_cp1_tn_b
训练的模型可以使用all_cp1_vd
进行验证、使用all_cp1_tt
进行测试,因为它们都属于group G_3
。 - 数据集的
Task
是CP1
和CP2
。这两个任务分别代表点击预估pipeline
中的两个不同模型。在这种情况下,CP1
是两者之间更关键的模型,但是这两个模型在系统中是互补的。 Rows
代表了样本数(单位是百万条),Dims
代表了特征维度(单位是千)。
注意,由于测试集中使用的样本量庞大,所有和
baseline
相比的实验结果在统计上都是显著的。- 只有同一个
- 实验中,每个
field embedding
维度 $ m_i = 256 $ 。接下来五层网络的维度为[512, 512, 256, 128, 64]
。
4.3.1 和 DSSM 对比
如前所述,我们有兴趣比较
DSSM
和Deep Crossing
。为了公平地比较,我们在CP1
和CP2
的数据上训练了DSSM
和Deep Crossing
,但是将Deep Crossing
模型限制为使用与DSSM
相同的数据(即,二者都使用包含一个pair
的输入,其中包含query text
和keyword or titile text
,每个文本都由tri-letter gram
向量来表示)。在第一个实验中,点击预估模型在下表中列出的两个数据集上的任务
CP1
进行训练。在这两个数据集上,Deep Crossing
在相对AUC
方面都优于DSSM
。注意,这里使用的DSSM
是前面描述的logloss
版本。在第二个实验中,两个模型都在
text_cp2_tn
数据集上的任务CP2
进行了训练,并在text_cp2_tt
数据集上进行了测试。下表给出了DSSM
、Deep Crossing
、以及我们生产系统中运行的模型的性能结果。生产模型在不同的数据集上进行训练,但使用
run-time
记录的预测输出在相同的测试集(text_cp2_tt
)上进行测试。可以看到:
Deep Crossing
的性能比DSSM
好,但是比生产模型差。这是意料之中的,因为生产模型使用了更多的特征(包括组合特征)、以及经过多年的改进。尽管如此,通过使用individual query
特征和individual
标题特征,Deep Crossing
距离生产模型仅约1%
。虽然我们已经展示了
Deep Crossing
从简单的文本输入pair
对中学习的能力,但这并不是它的主要目标。Deep Crossing
的真正力量在于处理很多的individual
特征,我们将在后续的实验中看到。
4.3.2 文本之外的特征
我们现在考虑
Deep Crossing
在任务CP1
(训练集all_cp1_tn_s
)上的性能,其中包含Feature Representation
章节列出的大约20
多个特征。本节的实验没有外部baseline
,我们只会对比具有不同特征组合的Deep Crossing
的性能。这里的目标不是评估相对于其它方法的性能,而是查看
Deep Crossing
的实际效果,并证明其性能会随着特征的添加和删除而发生显著变化。我们将在下一小节中在使用相同的丰富的特征集合的情况下,比较Deep Crossing
和生产模型的性能。在第一个实验中我们对比不同特征子集的
Deep Crossing
的效果,结果下图所示。图中的logloss
是不同训练epoch
上验证集的相对logloss
,定义为实际logloss
除以All_features
模型在所有epoch
的最低logloss
。注意,这里计数特征
counting features
始终被移除。All_features
模型包含除了计数特征以外的所有特征。不出所料,它在本次实验中所有模型中具有最低的logloss
。Only_Q_K
模型仅使用query text
和keyword text
,它具有最高的logloss
。就相对
logloss
而言,Only_Q_K
和All_features
之间的差距大约是0.12
。就AUC
而言,这大约是7% ~ 8%
的改进。考虑到AUC
在0.1% ~ 0.3%
的改进通常被认为对于点击模型而言是显著的,所以这里的提升是巨大的。without_Q_K_T
是一个去除了query text
、keyword text
、title text
的模型(当然也去除了计数特征)。这意味着去掉大部分文本特征会使相对logloss
增加0.025
。without_position
移除了位置特征(当然也去除了计数特征),相对logloss
增加大约0.05
。
在第二个实验中,我们研究计数特征
counting features
如何和其余的individual
特征交互。如前所述,计数特征在降低高基数high cardinality
特征的维度方面起着重要作用。我们的完整特征集合有五种类型的计数特征。在本实验中,我们只是使用其中之一来演示效果。图中的相对logloss
的基准是All_without_counting
模型在所有epoch
的最低对数logloss
。- 从图
(a)
可以看到,仅Counting_only
模型与具有除计数特征之外所有特征的All_without_counting
模型相比非常弱。 - 图
(b)
显示了添加计数特征后的结果,其中新模型All_with_counting
将相对logloss
减少了0.02
。
- 从图
4.3.3 和生产模型的比较
到目前为止,问题仍然是
Deep Crossing
是否真的可以击败生产模型,这是最终的baseline
。为了回答这个问题,我们使用来自生产模型的原始特征的子集训练了一个具有
22
亿个样本的Deep Crossing
模型。Depp Crossing
在任务CP1
(all_cp1_tn_b
)数据集上进行训练,并在all_cp1_tt
上进行测试。生产模型在不同(更大的)的数据及上行进行训练,但使用相同的数据进行测试(基于run-time
记录的预测输出)。结果如下表所示(相对
AUC
),可以看到:Deep Crossing
在任务CP1
的离线AUC
中的表现轻松超越了生产模型(截至论文发布时,任务CP2
的结果尚不可用)。这一结果非常重要,因为
Deep Crossing
模型仅使用了一小部分特征,并且模型构建和模型维护的工作量要少得多。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论