数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
十二、DIN [2017]
在
cost-per-click: CPC
广告系统中,广告按照effective cost per mille: eCPM
进行排序。eCPM
是竞价bid price
和点击率click-through rate: CTR
的乘积,而CTR
需要由系统预测,因此CTR
预估模型的性能直接影响系统最终收入从而在广告系统中起着关键作用。CTR
预估模型受到了学术界和工业界的广泛关注。最近,受到深度学习在计算机视觉和自然语言处理中取得成功的启发,人们已经提出了基于深度学习的方法用于CTR
预估任务。这些方法遵循类似的Embedding & MLP
范式:首先将大规模稀疏输入特征映射到低维embedding
向量,然后以group-wise
方式转换为固定长度的向量,最后拼接在一起并馈入多层感知机multilayer perceptron: MLP
从而学习特征之间的非线性关系。与常用的逻辑回归模型相比,这些深度学习方法可以减少大量的特征工程工作,大大提升了模型容量model capability
。为简单起见,在本文中我们将这些方法命名为Embedding & MLP
,它们现在已经在CTR
预估任务中流行开来。然而,
Embedding & MLP
方法中维度有限的用户representation
向量将成为表达用户多样化兴趣diverse interests
的瓶颈。以电商网站的展示广告display advertising
为例。用户在访问电商网站时可能同时对不同种类的商品感兴趣,也就是说,用户的兴趣是多样化diverse
的。当涉及到CTR
预估任务时,用户兴趣通常是从用户行为数据中捕获的。Embedding & MLP
方法通过将用户行为的embedding
向量转换为固定长度的向量来学习某个用户所有兴趣的representation
。这个向量位于所有用户的representation
向量所在的欧几里得空间中。换句话讲,用户的多样化兴趣被压缩成一个固定长度的向量,这限制了Embedding & MLP
方法的表达能力。为了使
representation
足以表达用户的多样化兴趣,固定长度向量的维度需要极大地扩展。不幸的是,这会极大地增加模型参数的规模,并加剧有限数据下模型过拟合的风险。此外,这也会增加计算和存储的负担,这种负担对于工业级在线系统而言是不能容忍的。另一方面,在预测目标广告时没有必要将某个用户的所有多样化兴趣压缩到单个向量中,因为只有部分用户兴趣才会影响到该用户的行为(点击或不点击)。例如,一位女性游泳爱好者会点击推荐的泳镜,主要是因为她上周购物清单中的泳衣,而不是清单中的鞋子。受此启发,论文
《Deep Interest Network for Click-Through Rate Prediction》
提出了一个新模型:深度兴趣网络Deep Interest Network: DIN
。DIN
通过考虑历史行为与目标广告的相关性来自适应地计算用户兴趣的representation
向量。通过引入局部激活单元local activation unit
,DIN
通过软搜索soft-searching
历史行为与目标广告的相关部分来关注相关的用户兴趣,并采用加权sum
池化来获得对目标广告的用户兴趣representation
。与目标广告相关性更高的行为将会获得更高的激活权重activated weight
,并将主导用户兴趣representation
。论文在实验部分将这种现象可视化。这样,用户兴趣的representation
向量随着不同的目标广告而变化,提高了模型在有限维度下的表达能力,使得DIN
能够更好地捕获用户的多样化兴趣。训练具有大规模稀疏特征的工业级深度网络是一项巨大挑战。例如,基于
SGD
的优化方法只更新出现在每个mibi-batch
中的稀疏特征的参数。然而,如果加上传统的L2
正则化,则计算变得不可接受,因为这需要为每个mibi-batch
计算全部参数的L2
范数。在论文的应用场景中,参数规模高达数十亿。在论文中,作者开发了一种新颖的mini-batch aware
正则化,其中只有出现在每个mibi-batch
中的非零特征的参数参与L2
范数的计算,使得计算可以接受。此外,作者设计了一个数据自适应激活函数,它根据输入分布自适应调整校正点rectified point
来推广常用的PReLU
激活函数,并被证明有助于训练具有稀疏特征的工业级深度网络。论文主要贡献:
指出了使用固定长度向量来表达用户多样化兴趣的局限性,并设计了一种新颖的深度兴趣网络
deep interest network: DIN
。DIN
引入了局部激活单元local activation unit
,从而自适应地根据目标广告从用户历史行为中学习用户兴趣的representation
。DIN
可以大大提高模型的表达能力,更好地捕获用户兴趣的多样性特点diversity characteristic
。开发了两种新技术来帮助训练工业级深度网络:
mini-batch aware
正则化:它可以在具有大量参数的深度网络上节省大量正则化计算,并有助于避免过拟合。- 数据自适应激活函数:它通过考虑输入的分布来推广
PReLU
并显示出良好的性能。
对公共数据集和阿里巴巴数据集进行了广泛的实验,实验结果证明了所提出的
DIN
和训练技术的有效性。模型的代码已经公开。所提出的方法已经部署在阿里巴巴的商业展示广告系统commercial display advertising system
中,服务于主流量,为业务带来了显著提升。
论文聚焦于电商行业展示广告
display advertising
场景下的CTR
预估建模。这里讨论的方法也可以应用于具有丰富用户行为的类似场景,如电商网站的个性化推荐、社交网络的feeds
排序。相关工作:
CTR
预估模型的结构由浅入深,同时CTR
预估模型中使用的样本数量和特征维度也越来越大。为了更好地提取特征关系从而提高性能,一些工作都关注了模型结构的设计。- 作为先驱者,
NNLM
为每个单词学习分布式representation
,旨在避免语言模型中的维度诅咒。这种通常被称作embedding
的方法启发了许多需要处理大规模稀疏输入的NLP
模型和CTR
预估模型。 LS-PLM
和FM
模型可以看作是一类具有单个隐层的网络,它们首先在稀疏输入上使用embedding layer
,然后对目标拟合target fitting
施加专门设计的变换函数transformation function
,旨在捕获特征之间的组合关系combination relation
。Deep Crossing
、Wide & Deep
、YouTube Recommendation CTR model
通过用复杂的MLP
网络替代了变换函数来扩展LS-PLM
和FM
,极大地增强了模型容量。PNN
试图通过在embedding layer
之后引入product layer
来捕获高阶特征交互。DeepFM
在Wide & Deep
中使用一个factorization machine: FM
作为wide
部分,从而无需特征工程。
总体而言,这些方法遵循相似的模型结构,即结合了
embedding
层(用于学习稀疏特征的稠密representation
)和MLP
(用于自动学习特征的组合关系)。这种点击率预估模型大大减少了人工特征工程的工作。我们的
base model
遵循这种模型结构。然而,在具有丰富用户行为的application
中,某些特征通常包含可变长度的id
列表,例如,YouTube
推荐系统中的历史搜索term
列表、或者历史观看视频列表。已有的模型通常通过sum
池化或者均值池化将对应的embedding
向量列表转换为固定长度的向量,这会导致信息丢失。我们提出的DIN
通过考虑目标广告来自适应地学习representation
向量,从而解决这个问题,提高了模型的表达能力。注意力机制起源于神经机器翻译
Neural Machine Translation: NMT
领域。NMT
对所有annotations
进行加权求和从而获得预期的annotation
,并且只关注与下一个目标单词相关的信息。最近的一项工作Deep-Intent
在搜索广告的上下文中应用了注意力。与NMT
类似,他们使用RNN
对文本进行建模,然后学习一个全局隐向量来帮助关注每个query
中的所有关键词。结果表明,注意力的使用有助于捕获query
或广告的主要意图。DIN
设计了一个局部激活单元local activation unit
来软搜索soft-search
相关的用户行为,并采用加权sum
池化来获得用户关于目标广告兴趣的自适应representation
。不同广告的用户representation
向量不同,这与广告和用户之间没有交互的DeepIntent
不同。我们公开了代码,并进一步展示了如何在世界上最大的广告系统之一中成功部署
DIN
,并使用新颖的开发技术来训练具有数亿个参数的大规模深度网络。- 作为先驱者,
背景:在阿里巴巴等电商网站中,广告是天然的商品。在本文的其余部分,如果没有特别声明,我们将广告视为商品。下图简要说明了阿里巴巴展示广告系统的运行过程,它主要包括两个阶段:
mathcing
阶段:通过协同过滤等方法生成与访问用户相关的候选广告列表。ranking
阶段:预测每个目标广告的点击率,然后选择排名靠前的广告。
每天,数以亿计的用户访问电商网站,给我们留下了大量的用户行为数据,这些数据对构建
mathcing
模型和ranking
模型至关重要。值得一提的是,具有丰富历史行为的用户包含多样化的兴趣。例如,一位年轻的妈妈最近浏览了羊毛大衣、T shirt
、耳环、手提包、包包、儿童外套等商品。这些行为数据为我们提供了有关她购物兴趣的提示。当她访问电商网站时,系统会向她展示一个合适的广告,例如一个新的手提包。显然,展示的广告只匹配或激活了这位母亲的部分兴趣。总之,对于丰富行为的用户,其兴趣是多样化
diverse
的,并且可以在给定某些广告的情况下局部激活locally activated
。我们将在本文后面展示利用这些特点在构建CTR
预估模型中起着重要作用。
12.1 模型
- 与赞助搜索
sponsored search
不同,在展示广告系统中用户没有显式地表达意图。在构建点击率预估模型时,需要有效的方法从丰富的历史行为中抽取用户兴趣。描述用户和广告的特征是广告系统点击率建模的基本要素basic elements
。合理利用这些特征并从中挖掘信息至关重要。
12.1.1 Feature Representation
工业
CTR
预估任务中的数据大多数采用多组multi-group
离散categorial
的形式,例如{ weekday=Friday, gender=Female, visited_cate_ids={Bag,Book}, ad_cate_id=Book }
等。数据会通过one-hot
编码转换为高维稀疏特征。- 对于第 $ i $ 组特征(如年龄),假设有 $ K_i $ 个
unique
值,则我们将这一组特征编码为one-hot
向量 $ \mathbf{\vec t}_i=[t_{i,1},\cdots,t_{i,K_i}]^\top \in \mathbb R^{K_i} $ 。其中第 $ j $ 个元素为 $ t_{i,j}\in \{0,1\} $ ,当 $ t_{i,j}=1 $ 时表明第 $ i $ 组特征的原始值为 $ j $ 。 - 对于某组特征取值为多个离散值的情况,类似地我们进行
multi-hot
编码。其中 $ \sum_{j=1}^{K_i} t_{i,j} = k $ ,当 $ k=1 $ 时表示one-hot
编码、 $ k\gt 1 $ 时表示multi-hot
编码。
假设一共有 $ M $ 组特征,则样本可以表示为 $ \mathbf{\vec x}=\left[\mathbf{\vec t}_1\|\cdots \|\mathbf{\vec t}_M\right]\in \mathbb R^{K} $ ,其中 $ || $ 表示向量拼接, $ K=\sum K_i $ 为样本特征维度。
这样,上述具有四组特征的样本可以表示为:
$ \mathbf{\vec x} = [\underbrace{0,0,0,0,1,0,0}_{\text{weekday = Friday}},\;\underbrace{0,1}_{\text{gender=Female}},\;\underbrace{0,\cdots,1,\cdots,1,\cdots,0}_{\text{visited_cate_ids={Bag,Book}}},\;\underbrace{0,\cdots,1,\cdots,0}_{\text{ad_cate_id=Book}}] $- 对于第 $ i $ 组特征(如年龄),假设有 $ K_i $ 个
我们系统中使用的所有特征如下表所示。我们将其划分为四类:
- 用户画像特征
User Profile Features
:包括用户基础画像如年龄、性别等。 - 用户行为特征
User Behavior Features
:包括用户历史访问的商品信息(如商品id
、店铺id
、商品类目id
等)。该特征通常是multi-hot encoding
向量,包含丰富的用户兴趣信息。 - 广告特征
Ad Features
:包括广告的商品id
、店铺id
、商品类目id
等。 - 上下文特征
Context Features
:包括访问时间等。
这里不包含任何组合特征
combination features
,特征交互由神经网络来捕获。- 用户画像特征
12.1.2 Base Model
大多数流行的模型结构采用类似的
Embedding & MLP
范式,我们将其称作base model
,如下图所示。base model
由几个部分组成:Embedding Layer
:由于模型输入是高维稀疏的binary
向量,因此embedding
层用于将它们转换为低维稠密的representation
。对于第 $ i $ 个
feature group
$ \mathbf{\vec t}_i $ ,令 $ \mathbf W^{(i)}\in \mathbb R^{D\times K_i} $ 为第 $ i $ 个embedding dictionary
,其中第 $ j $ 列 $ \mathbf{\vec w}_j^{(i)}\in \mathbb R^D $ 为第 $ i $ 个feature group
取值为 $ j $ 对应的embedding
向量, $ D $ 为embedding
维度。embedding
操作遵循table lookup
机制。- 如果 $ \mathbf{\vec t}_i $ 是一个
one-hot
特征向量,且第 $ j $ 个元素 $ t_{i,j}=1 $ ,则该feature group
被映射为单个embedding
向量 $ \mathbf{\vec e}_i=\mathbf{\vec w}_j^{(i)} $ 。 - 如果 $ \mathbf{\vec t}_i $ 是一个
multi-hot
特征向量,且位置 $ j\in \{j_1,\cdots,j_k\} $ 取值为1
,则该feature group
被映射为多个embedding
向量 $ \{\mathbf{\vec e}_{i_1},\cdots,\mathbf{\vec e}_{i_k}\}=\left\{\mathbf{\vec w}_{j_1}^{(i)},\cdots,\mathbf{\vec w}_{j_k}^{(i)}\right\} $ ,其中 $ k $ 为multi-hot
非零元素的数量。
- 如果 $ \mathbf{\vec t}_i $ 是一个
$ \mathbf{\vec e}_i = \text{pooling}(\mathbf{\vec e}_{i_1},\cdots,\mathbf{\vec e}_{i_k}) $Pooling layer and Concat layer
:注意,不同的用户有不同数量的行为。因此multi-hot
行为特征向量 $ \mathbf{\vec t}_i $ 的非零值的数量 $ k $ 因人而异,导致相应的embedding
向量列表的长度是可变的。由于全连接网络只能处理固定长度的输入,因此通常的做法是通过池化层将embedding
向量列表转换为固定长度的向量:两个最常用的池化层是
sum
池化和均值池化,它们对embedding
向量列表执行element-wise
的求和、求均值。embedding
层和池化层都以group-wise
的方式执行,从而将原始稀疏特征映射到多个固定长度的representation
向量中。然后将所有group-wise representation
向量拼接在一起从而获得样本的整体representation
向量。MLP
:给定拼接好的、稠密的整体representation
向量,全连接层用于自动学习特征组合。最近开发的方法Wide & Deep
、PNN
、DeepFM
等聚焦于设计MLP
的结构以便更好地提取信息。
损失函数:
$ \mathcal L = -\frac 1N \sum_{(\mathbf{\vec x},y)\in \mathbb D}\left[y\log p(\mathbf{\vec x}) + (1-y)\log (1-p(\mathbf{\vec x}))\right] $base model
中使用的目标函数是负的对数似然:其中:
- $ \mathbb D $ 为训练集, $ N $ 为训练样本数量。
- $ \mathbf{\vec x} $ 为样本特征, $ y\in \{0,1\} $ 为样本标签。
- $ p(\mathbf{\vec x}) $ 为
sigmoid
输出层的输出概率,表示样本被点击的概率。
12.1.3 DIN
在所有这些特征中,用户行为特征至关重要,并且在电商应用场景中对用户兴趣建模起到关键作用。
base model
通过聚合用户行为feature group
上的所有embedding
向量来获得用户兴趣的固定长度representation
向量。对于给定的用户,无论目标广告是什么,该representation
向量都保持不变。这样,维度有限的用户representation
向量将成为表达用户多样化兴趣的瓶颈。为了让模型足够强大,一个简单的方法是扩大
embedding
向量的维度。不幸的是,这会大大增加模型参数的规模,从而导致在有限训练数据下模型过拟合,同时增加计算和存储的负担,这对于工业在线系统而言是无法容忍的。是否有一种优雅的方案在有限维度下通过单个向量来表达用户的多样化兴趣?用户兴趣的局部激活特点
local activation characteristic
给了我们灵感,从而使得我们设计了一个新颖的、叫做深度兴趣网络deep interest network: DIN
模型。想象一下前面提到的年轻妈妈访问电商网站时,她发现展示的新款手提包很可爱并点击它。我们来剖析一下点击动作的驱动力。目标广告通过软搜索
soft-searching
她的历史行为,发现她最近浏览了tote bag
和leather handbag
等类似商品。换句话讲,与目标广告相关的行为对点击行为有很大贡献。DIN
通过关注目标广告相关的局部激活兴趣representation
来模拟该过程。DIN
不是用单个向量来表达用户的所有多样化兴趣,而是通过考虑历史行为与目标广告的相关性来自适应地计算用户兴趣的representation
。因此,同一个用户的兴趣representation
向量因不同的目标广告而异。下图说明了
DIN
的架构。和base model
相比,DIN
引入了一种新颖设计的局部激活单元local activation unit
,其它结构保持相同。具体而言,局部激活单元作用于用户行为特征(作为加权
$ \mathbf{\vec v}_U(A) = f\left(\mathbf{\vec v}_A,\mathbf{\vec e}_1 ,\cdots,\mathbf{\vec e}_{H}\right) = \sum_{j=1}^H a\left(\mathbf{\vec e}_j,\mathbf{\vec v}_A\right)\mathbf{\vec e}_j= \sum_{j=1}^H \beta_j\mathbf{\vec e}_j $sum
池化),从而自适应地计算目标广告 $ A $ 的用户representation
$ \mathbf{\vec v}_U $ :其中:
$ \{\mathbf{\vec e}_1,\cdots,\mathbf{\vec e}_H\} $ 为用户 $ U $ 的、长度为 $ H $ 的历史行为
embedding
向量的列表。$ \mathbf{\vec v}_A $ 为广告 $ A $ 的
embedding
向量。$ a(\cdot) $ 是一个前馈神经网络,它的输出为激活权重 $ \beta_j\in \mathbb R $ 。
在 $ a(\cdot) $ 的前馈神经网络中,除了 $ \mathbf{\vec e}_j,\mathbf{\vec v}_A $ 这两个
embedding
作为输入之外,我们还将它们的外积out product
作为输入,这是有助于显式建模相关性。$ \mathbf{\vec v}_U(A) $ 为用户 $ U $ 针对广告 $ A $ 的用户的兴趣
representation
向量,它随着不同的广告而变化。
局部激活单元与
NMT
任务中开发的注意力方法具有相似的思想。然而,与传统的注意力方法不同,我们放松了 $ \sum_i w_i = 1.0 $ 的约束,这是为了保留用户兴趣的强度。也就是说,我们放弃了对 $ a(\cdot) $ 的输出使用softmax
归一化。相反, $ \sum_i w_i $ 的值在某种程度上被视为激活用户兴趣强度的近似approximation
。例如,假设一个用户的历史行为包含
90%
的衣服和10%
的电子产品。给定关于T shirt
和手机的两个目标广告,T shirt
激活了大部分属于衣服的历史行为,并且可能比手机获得更大的 $ \mathbf{\vec v}_U $ 值(更高的兴趣强度)。传统的注意力方法通过对 $ a(\cdot) $ 的输出进行归一化从而失去了对 $ \mathbf{\vec v}_U $ 数值尺度numerical scale
上的区分度。我们尝试过
LSTM
以序列方式对用户历史行为数据进行建模,但是没有显示出任何改善。与NLP
任务中受语法约束的文本不同,用户历史行为序列可能包含多个并发concurrent
的兴趣。对这些兴趣的快速跃迁和突然结束导致用户行为序列数据看起来充满噪音。一个可能的方向是设计特殊的结构从而以序列方式对此类数据进行建模。我们将其留待未来研究。
12.1.4 训练技巧
- 在阿里巴巴的广告系统中,商品和用户的数量达到了数亿。实际上,训练具有大规模稀疏输入特征的工业级深度网络具有很大挑战。这里我们将介绍两种在实践中被证明有用的重要技术。
a. Mini-batch Aware 正则化
过拟合是训练工业级深度网络的关键挑战。当添加细粒度特征时,例如维度为
6
亿的goods_id
特征(包括用户visited_goods_ids
特征、广告goods_id
特征),如果没有正则化,则在训练的第一个epoch
之后,模型性能迅速下降,如下图所示的深绿色线所示。将传统的正则化方法,如
L2
正则化和L1
正则化,直接应用于具有稀疏输入和数亿参数的网络是不切实际的。以L2
正则化为例,在没有正则化的、基于SGD
优化方法的场景中,只需要更新每个mini-batch
中出现的非零稀疏特征的参数。然而,当添加L2
正则化时,它需要在每个mini-batch
对所有参数计算L2
范数,这导致计算量非常大,并且在参数扩展到数亿时是不可接受的。在本文中,我们引入了一种高效的
mini-batch aware
的正则化器regularizer
,它只计算每个mini-batch
中出现的稀疏特征的参数的L2
范数,使得正则化计算可行。事实上,
embedding dictionary
为CTR
模型贡献了大部分参数,并产生了繁重heavy
的计算。令 $ \mathbf W\in \mathbb R^{D\times K} $ 表示整个
$ L_2(\mathbf W) = \left\|\mathbf W\right\|_2^2=\sum_{j=1}^K\left\|\mathbf {\vec w}_j\right\|_2^2\simeq\sum_{j=1}^K\frac{\sum_{(\mathbf{\vec x},y)\in \mathbb D} I(x_j\ne 0)}{n_j}\left\|\mathbf {\vec w}_j\right\|_2^2=\sum_{(\mathbf{\vec x},y)\in \mathbb D}\sum_{j=1}^K\frac{I(x_j\ne 0)}{n_j}\left\|\mathbf {\vec w}_j\right\|_2^2 $embedding dictionary
的参数, $ D $ 为embedding
向量的维度、 $ K $ 为特征空间的维度。在所有样本上对 $ \mathbf W $ 进行L2
正则化:其中:
- $ \mathbf{\vec w}_j\in \mathbb R^D $ 为第 $ j $ 个
embedding
向量。 - $ I(x_j\ne 0) $ 为示性函数,当样本的第 $ j $ 个特征 $ x_j\ne 0 $ 是该函数取值为
1
,否则取值为零。 - $ n_j = \sum_{(\mathbf{\vec x},y)\in \mathbb D} I(x_j\ne 0) $ 表示在所有样本中第 $ j $ 个特征 $ x_j\ne 0 $ 的样本数量。
这里之所以使用 $ \simeq $ ,是因为忽略了样本集中从未出现过的特征对应的
embedding
向量的正则化。事实上,如果某个特征 $ x_{j*} $ 在训练集中始终为0
(表示该特征从未出现过,即 $ n_{j^*} = 0 $ ),则对应的embedding
向量 $ \mathbf{\vec w}_{j*} $ 始终不会被更新,对它的正则化就没有意义。在模型中对应的神经元始终取值为零,对模型整体没有影响。这样一来 $ \mathbf{\vec w}_{j*} $ 的取值完全依赖于随机初始化。- $ \mathbf{\vec w}_j\in \mathbb R^D $ 为第 $ j $ 个
上式可以转换为
$ L_2(\mathbf W) =\sum_{j=1}^K\sum_{m=1}^B\sum_{(\mathbf{\vec x},y)\in \mathbb B_m} \frac{I(x_j\ne 0)}{n_j}\left\|\mathbf {\vec w}_j\right\|_2^2 $mini-batch aware
的方式:其中: $ \mathbb B_m $ 表示第 $ m $ 个
mini-batch
, $ B $ 为总的mini-batch
数量。令 $ \alpha_{m,j} = \max_{(\mathbf{\vec x},y)\in \mathbb B_m}I(x_j\ne 0) $ 表示 $ x_j \ne 0 $ 在 $ \mathbb B_m $ 中是否至少出现
$ L_2(\mathbf W) \simeq\sum_{j=1}^K\sum_{m=1}^B \frac{ \alpha_{m,j}}{n_j}\left\|\mathbf {\vec w}_j\right\|_2^2 $1
次,则上式可以近似为:注意: $ \alpha_{m,j} $ 取值为
0
或1
。理论上应该将 $ \alpha_{m,j} $ 取值为 $ \mathbb B_m $ 中特征 $ x_j\ne 0 $ 出现的次数。但是由于mini-batch
通常很小,绝大多数特征最多仅出现一次。这样我们得到了
$ \mathbf{\vec w}_j\leftarrow \mathbf{\vec w}_j - \eta\left[\frac {1}{|\mathbb B_m|} \sum_{(\mathbf{\vec x},y)\in \mathbb B_m} \nabla _{\mathbf{\vec w}_j} L(p(\mathbf{\vec x}),y) + \lambda \frac {\alpha_{m,j}}{n_j}\mathbf{\vec w}_j\right] $L2
正则化的mini-batch aware
版本,其中embedding
向量的更新方程为:其中:
- $ \mathbb B_m $ 表示第 $ m $ 个
mini-batch
。 - $ y $ 为样本标签, $ p(\mathbf{\vec x}) $ 为模型输出, $ L(\cdot) $ 为损失函数。
- $ \eta $ 为学习率, $ \lambda $ 为正则化系数。
- $ \alpha_{m,j} $ 表示 $ x_j\ne 0 $ 在 $ \mathbb B_m $ 中是否至少出现
1
次, $ n_j $ 表示在所有样本中 $ x_j\ne 0 $ 的样本数量。
现在
mini-batch
中仅对该mini-batch
出现过的特征对应的embedding
向量进行正则化。- $ \mathbb B_m $ 表示第 $ m $ 个
b. 数据自适应激活函数
$ f(s) = \begin{cases} s,&\text{if}\; s\gt 0 \\ \alpha s ,&\text{if}\; s\le 0 \end{cases} = p(s)\times s + (1-p(s))\times \alpha s $PReLU
激活函数是一种广泛应用的激活函数,其定义为:其中:
$ p(s) = I(s\gt 0) $ 是示性函数,它控制 $ f(s) $ 在 $ f(s)=s $ 和 $ f(s)=\alpha s $ 这两个通道
channel
之间切换。这里我们将 $ p(s) $ 称作控制函数
control function
。$ \alpha $ 是待学习的参数。
$ f(s) = p(s)\times s + (1-p(s))\times \alpha s\\ p(s) = \frac{1}{ 1+\exp\left(-\frac{s - \mathbb E[s]}{\sqrt{\text{Var}[s]}+\epsilon}\right) } $PReLU
采用值为0
的hard rectified point
,当每层的输入遵循不同的分布时,这可能不合适。有鉴于此,我们设计了一个名为Dice
的新的数据自适应激活函数:- 在训练阶段, $ \mathbb E [s] $ 和 $ \text{Var}[s] $ 是每个
mini-batch
中输入的均值和方差。 - 在测试阶段, $ \mathbb E [s] $ 和 $ \text{Var}[s] $ 是通过数据集上的移动平均 $ \text E[s] $ 和 $ \text{Var}[s] $ 计算的。
- $ \epsilon $ 是一个小的常数,在我们的实践中设置为 $ 10^{-8} $ 。
新的控制函数如下图右侧所示(左侧为
PReLU
的控制函数)。不同配置下的
Dice
激活函数如下图所示。- 在训练阶段, $ \mathbb E [s] $ 和 $ \text{Var}[s] $ 是每个
Dice
可以看做是PReLU
的泛化,其重要思想是根据输入数据的分布自适应调整rectified point
(为输入的均值)。另外,
Dice
平滑地控制在两个channel
之间切换。最后,当 $ \mathbb E[s]=0 $ 且 $ \text{Var} [s] = 0 $ 时,
Dice
退化为PReLU
。
12.1.5 在线部署
值得一提的是,每天都有成千上万的用户来访问我们的系统,对工业深度网络进行在线
serving
并非易事。更糟糕的是,在流量高峰期间,我们的系统每秒为超过100
万用户提供serving
。这要求以高吞吐量、低延迟进行实时CTR
预估。例如,在我们的真实系统中,我们需要在不到10ms
的时间内为每个用户预估数百个广告的ctr
。在我们的工程实践中,我们部署了几种重要技术来加速
CPU-GPU
架构下的工业深度网络的在线serving
:request batching
:合并来自CPU
的相邻请求从而利用GPU
的性能。GPU
内存优化:改进GPU
内存访问方式,从而减少GPU
内存中的无效的事务transaction
。- 并发的
kernel
计算:允许使用多个CUDA kernel
同时处理矩阵计算。
总之,这些技术的优化实际上使得单台机器的
Query Per Second: QPS
翻了一倍。
12.2 实验
这里我们详细介绍了我们的实验,包括数据集、评估指标、实验设置、模型比较、以及相应的分析。在包含用户行为的两个公共数据集以及从阿里巴巴展示广告系统收集的数据集上进行的实验证明了所提出方法的有效性,该方法在
CTR
预测任务上优于state-of-the-art
的方法。数据集:
Amazon
数据集:包含来自亚马逊的商品评论和商品元数据。该数据集通常用作benchmark
数据集。我们在Electronics
(电子产品)的数据子集上进行实验,该子集包含192403
个用户、63001
个商品、801
个类目,总计1689188
个样本。数据集中用户行为丰富,每个用户有给出超过
5
条评论,每个商品也收到至少5
条评论。特征包括goods_id,cate_id
,以及用户查看的goods_id_list, cate_id_list
。任务的目标是根据用户的前 $ k $ 个评论的商品来预测第 $ k+1 $ 个评论的商品。对于每个用户,我们使用 $ k=1,\cdots,n-2 $ 来生成训练集,使用 $ k=n-1 $ 来生成测试集。
对于所有模型,我们使用指数衰减的
SGD
优化器,初始学习率为1.0
、decay rate = 0.1
。mini-batch size = 32
。MovieLens
数据集:包含138493
个用户、27278
部电影、21
个类目,总计20000263
个样本。原始的电影评分是0~5
的连续值,为了使其适合CTR
预估任务,我们将其转换为二类分类数据:电影评分为4
或5
分的标记为正样本、其它评分的标记为负样本。我们根据用户
ID
来拆分训练集和测试集。我们随机选择100000
个用户作为训练集(约14470000
万个样本),剩余的38493
个用户作为测试集(约553
万个样本)。任务的目标是根据用户历史行为来预测用户是否将给定的电影评分高于
3
分(正标记)。特征包括:
movie id, movie_cate_id
,以及用户评级过的moive_id_list, movie_cate_id_list
。我们使用和
Amazon
数据集相同的优化器、学习率、以及mini batch size
。Alibaba
数据集:从阿里巴巴在线展示广告系统online display advertising system
收集的流量日志,其中连续两周的样本用于训练、接下来一天的样本用于测试。训练集规模为20
亿、测试集规模为1.4
亿。对所有的深度模型,每一组特征的
embedding
向量维度为16
。MLP
的层数为192 x 200 x 80 x2
。由于数据量巨大,我们将mini-batch size=5000
,并使用Adam
优化器。我们使用指数衰减,其中学习率从0.001
开始、衰减率为0.9
。
所有数据集的统计信息如下表所示。上标的
a
表示:对于MovieLens
数据集goods
代表电影。baseline
方法:LR
:逻辑回归模型。它是一种广泛用于CTR
预估任务的浅层模型,我们将其作为weak baseline
方法。Base Model
:如前所述的遵循Embedding & MLP
架构的模型。它是后续大多数建模CTR
的深度网络的基础。它充当我们模型比较的strong baseline
。Wide & Deep
:Wide & Deep
模型。它由wide
部分和deep
部分组成,其中 :wide
部分处理手动设计的交叉特征;deep
部分自动抽取特征之间的非线性关系,等同于Base Model
。由于
wide
部分需要专业的特征工程来作为输入,这里我们将用户行为和候选item
的叉积cross-product
作为wide input
。例如,在MovieLens
数据集中,我们用的是用户历史评分电影和候选电影之间的叉积 。PNN
:它在embedding
层之后引入product layer
从而捕获高阶特征交互。可以将PNN
视为BaseModel
的改进版。DeepFM
:通过将Wide&Deep
中的wide
部分替换为FM
,它可以视为Wide&Deep
的改进版。
评估指标:
在
CTR
预估领域,AUC
是一个广泛使用的指标。它利用预估的CTR
对所有样本进行排序来衡量排序的优劣。GAUC
是AUC
的推广,它是用户加权AUC
的变体,通过对用户的AUC
求加权均值来衡量用户侧排序的优劣。一些工作表明,GAUC
与展示广告系统中的在线性能更相关。
$ \text{GAUC} = \frac{\sum{i=1}^n w_i\times \text{AUC}i}{\sum{i=1}^n w_i} = \frac{\sum{i=1}^n \text{imp}i\times \text{AUC}i}{\sum{i=1}^n \text{imp}i} $GAUC
的计算如下:其中: $ \text{AUC}_i $ 表示用户
i
的所有样本对应的auc
; $ \text{imp}_i $ 是用户i
的所有样本数; $ n $ 为用户总数。为了简单起见,后面我们仍然将
GAUC
称作AUC
。事实证明:
GAUC
在展示广告中更具有指导意义。AUC
考虑所有样本的排名,而事实上在线上预测时,对于给定用户我们只需要考虑针对该用户的一组候选广告的排名。GAUC
对每个用户单独进行处理,先考虑每个用户的预测结果,再对所有用户进行加权。这可以消除用户bias
的影响。如:模型倾向于对女性用户打高分(预测为正的概率较高),对男性用户打低分(预测为正的概率较低)。- 如果采用
AUC
则指标效果一般,因为男性正样本打分可能低于女性负样本。 - 如果采用
GAUC
则指标效果较好,因为男性用户、女性用户各自的AUC
都较高,加权之后的GAUC
也较高。这和线上投放的方式一致。
- 如果采用
$ \text{RelaImpr} = \left(\frac{\text{AUC}(\text{target model})-0.5}{\text{AUC}(\text{base model})-0.5}-1\right)\times 100\% $RelaImpr
指标衡量模型的相对提升。对于完全随机的模型,AUC
的值为0.5
。因此RelaImpr
的定义为:
注意:所有指标都是在测试集上进行。
下表给出了
Amazon
数据集和MovieLens
数据集的实验结果。所有实验重复5
次并报告平均结果。其中RelaImpr
表示相对BaseModel
的提升。可以看到:
- 所有深度模型都大幅超越了
LR
模型,这证明了深度学习的力量。 - 具有特殊设计结构的
PNN
和DeepFM
超越了Wide & Deep
。 DIN
在所有方法中表现最好。这归因于DIN
中的局部激活单元结构的设计。通过这种设计,DIN
获得了用户兴趣的自适应的、不同的representation
,这极大地提高了模型的表达能力。- 带
Dice
的DIN
对DIN
进一步地提升,从而证明了数据自适应激活函数Dice
的有效性 (其它模型使用PReLU
激活函数)。
- 所有深度模型都大幅超越了
由于
Amazon
数据集和MovieLens
数据集的特征维度不太高(约10
万维),因此所有的深度模型(包括我们提出的DIN
)都未遇到严重的过拟合问题。但是,在Alibaba
数据集中涉及到非常高维度的特征,过拟合将成为一个严重的挑战。例如,当训练细粒度特征(如goods_ids
特征具有6
亿维)的深度学习模型时,如果没有正则化,那么训练的第一个epoch
就会发生严重的过拟合,这会导致模型性能迅速下降,如下图的深绿色曲线所示。因此我们进行详细的实验来检查几种常用正则化的性能:
dropout
:在每个样本中,随机丢弃50%
的feature id
。人工频率过滤:在每个样本中,人工去掉历史行为中的低频商品
ID
,保留高频商品ID
。在我们的实验中,我们保留top
2000
万 的商品id
。
$ \mathbf{\vec w}_j \leftarrow \mathbf{\vec w}_j-\eta\left[\frac 1{|\mathbb B_m|} \sum_{(\mathbf{\vec x} ,y )\in \mathbb B_m} \nabla_{\mathbf{\vec w}_j} L(p(\mathbf{\vec x}),y) +\lambda \alpha_{m_j} n_j\mathbf{\vec w}_j\right] $DiFacto
正则化:正则化系数 $ \lambda = 0.01 $ :其中低频特征的正则化幅度更小。
$ \mathbf{\vec w}_j\leftarrow \mathbf{\vec w}_j - \eta\left[\frac {1}{|\mathbb B_m|} \sum_{(\mathbf{\vec x},y)\in \mathbb B_m} \nabla _{\mathbf{\vec w}_j} L(p(\mathbf{\vec x}),y) + \lambda \frac {\alpha_{m,j}}{n_j}\mathbf{\vec w}_j\right] $MBA
:我们提出的mini-batch aware
正则化,正则化系数 $ \lambda = 0.01 $ :其中低频特征的正则化幅度更大。
Base Model
在Alibaba
数据集上不同正则化的效果如下表所示。其中RelaImpr
是相对于没有正则化(第一行)的提升。训练loss
曲线、测试loss
曲线、测试auc
曲线参考下图所示。可以看到:- 和没有
good_ids
特征的模型相比,带有goods_ids
特征的模型在测试AUC
上都有所提升。这是因为用户历史行为包含丰富的信息。 - 对于带
good_ids
特征的模型,如果没有正则化则过拟合会迅速发生(深绿色曲线)。 dropout
可以防止过拟合,但是会导致收敛速度变慢。- 人工频率过滤某种程度上可以缓解过拟合。但是它直接丢弃了大多数低频
good id
,使得模型失去机会来更好地利用细粒度特征(即历史行为中的低频商品)。 DiFacto
会对高频的good_id
设置更高的惩罚,其效果要比人工频率过滤更差。- 我们提出的
mini-batch aware
正则化效果最好,它可以有效防止过拟合。
下表给出了
Alibaba
数据集的实验结果。RelaImpr
表示相对于BaseModel
的提升。a
表示使用PReLU
作为激活函数,b
表示使用dropout
正则化。可以看到:LR
比所有深度模型要弱得多。使用相同的激活函数和正则化的条件下,
DIN
比其它所有深度模型都要好。和
BaseModel
相比,DIN
实现了0.0059
的绝对AUC
增益和6.08%
的RelaImpr
。这再次验证了局部激活单元结构的有用设计。基于
DIN
的消融研究证明了mini-batch aware: MBA
正则化和Dice
激活函数的有效性。- 使用
mini-batch aware
正则化器的DIN
比dropout
带来额外的0.0031
的绝对AUC
增益。 DIN with Dice
比PReLU
带来了额外的0.0015
的绝对AUC
增益。
- 使用
总而言之,相比较于
BaseModel
,带有MBA
正则化和Dice
的DIN
实现了总的11.65%
的RelaImpr
和0.0113
的绝对AUC
增益。即使与表现最佳的baseline
DeepFM
相比,DIN
仍然实现了0.009
的绝对AUC
增益。值得注意的是,在具有亿级流量的商业广告系统中,0.001
的绝对AUC
提升就非常重要,值得模型的部署。DIN
显示出极大的优势来更好地理解和利用用户行为数据的特征。此外,我们提出的
MBA
正则化和Dice
激活函数进一步提高了模型的性能,为训练大规模工业深度网络提供了有力的帮助。我们在阿里巴巴的展示广告系统 从
2017
年5
月到2017
年6
月进行了在线A/B test
实验。在近一个月的测试中,和我们最新版的BaseModel
模型(online-serving
模型)相比,我们带MBA
正则化和Dice
激活函数的DIN
提升了10.0%
的CTR
和3.8%
的RPM
(千次收入Revenue Per Mille: RPM
) 。这是一项重大的提升,并证明了我们提出的方法的有效性。目前DIN
已经部署并服务于主要流量。可视化:我们在
Alibaba
数据集上进行案例研究来揭示DIN
的内部结构。首先,我们研究了局部激活单元的有效性。下图给出了用户行为关于候选广告的激活强度。正如预期的那样,和候选广告相关的行为的权重较高。
然后,我们将学到的
embedding
向量可视化。我们选择一位年轻的母亲,然后随机选择9
个类目(服装、运动鞋、箱包等)、每个类目100
种商品作为她的候选广告。下图给出了DIN
学到的商品embedding
进行t-SNE
可视化的结果,其中相同形状的点对应同一个类别。可以看到:具有相同类目的商品几乎都在同一个簇
cluster
,这清楚地展示了DIN
的聚类属性clustering property
。此外,我们根据模型预估的
ctr
来对候选广告的点进行染色。因此下图也是用户在embedding
空间中对潜在候选广告的兴趣密度分布。这表明:DIN
可以在候选广告的embedding
空间中形成多峰兴趣分布,从而捕获用户的多样化兴趣。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论