数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
十五、DICM [2017]
淘宝是中国最大的电商平台,通过移动
app
和PC
网站为数亿用户提供数十亿item
。用户通过搜索或个性化推荐从而来到淘宝浏览这些item
。每个item
通常由item
图像以及一些描述文本来展示。当用户对某个item
感兴趣时,可以单击该图像从而查看详细信息。下图显示了淘宝移动app
中推荐item
的示例。淘宝还建立了全球领先的展示广告系统
display advertising system
之一,帮助数百万广告主连接到用户。实际上,展示广告display advertising
是一种必不可少的在线广告形式。通过识别用户兴趣,它可以在诸如 “猜你喜欢” 之类的各个地方展示,并有效地向合适的顾客传递营销信息marketing message
。淘宝展示广告采用cost-per-click: CPC
计费方式,并且足够有效。在CPC
模式下,媒体平台通过effective cost per mille: eCPM
对候选广告进行排序。eCPM
可以通过竞价bid price
乘以预估点击率click through rate: CTR
来计算。这种策略使得点击率预估成为广告系统中的核心任务。CTR
预估对用户对于item
的偏好进行打分,并且很大程度上依赖于从历史行为中理解的用户兴趣。用户每天在淘宝上浏览和点击item
数十亿次,这些访问带来了海量的日志数据,微弱weakly
地反映了用户兴趣。传统的CTR
预估研究侧重于精心设计的反馈特征feedback feature
和浅层模型shallow model
,如逻辑回归。近年来,基于深度学习的CTR
预估系统大量涌现。这些方法主要涉及稀疏ID
特征,如广告ID
、用户交互item ID
等。然而,当一个ID
在数据中出现的频率较低时,它的参数可能没有得到很好的训练。图像可以提供内在的视觉描述,从而为模型带来更好的泛化能力。考虑到item
图像是用户直接与之交互的内容,这些图像可以提供更多关于用户兴趣的视觉信息。论文《Image Matters: Visually modeling user behaviors using Advanced Model Server》
建议通过这些图像自然地描述每个行为,并在CTR
预估中联合建模图像和ID
特征。用图像数据训练
CTR
模型需要大量的计算和存储消耗。一些开创性的工作致力于在CTR
预估中表达具有图像特征的广告(仅在一个样本中引入单张图像)。这些研究没有探索用户行为图像。对用户行为图像进行建模有助于了解用户的视觉偏好,并提高CTR
预估的准确性。此外,结合用户视觉偏好和广告视觉信息可以进一步有利于CTR
预测。然而,用户交互图像建模用户偏好更具有挑战性。因为一个典型用户的行为数量从几十到几百不等,因此对于广告图像的消费次数也是在几十到几百。考虑到淘宝正在为数亿用户提供数十亿item
,这是一个不可忽视的问题,而设计一个良好的高效的训练系统是处理这个大规模问题,从而进行真正生产的必要条件。论文
《Image Matters: Visually modeling user behaviors using Advanced Model Server》
提出了Advanced Model Server: AMS
框架,它超越了众所周知的Parameter Server: PS
框架来处理这个大规模的训练问题。在传统的
PS
框架中,图像要么被视为训练数据的一部分并存储在样本中,要么存储在server
中分发给worker
。然而,每个样本包含许多行为图像,原始图像特征尺寸feature size
远大于ID
特征。因此,由于无法接受的大存储或者无法接受的高通信负载,PS
处理如此大量的样本和图像有些不切实际。在
AMS
中,server
被设计为能够前向传播和反向传播具有某些独立特征independent features
的子模型sub-model
。那么整个模型又可以分为worker
模型部分和server
模型部分。原始图像特征数据作为全局共享特征无重复地(即只需要存储一份)放置在server
端。在论文的
application
中,与图像存储在样本中相比,论文的方法大大减少了存储量大约40
倍。并且只需要传输server
模型部分输出的、图像的低维高级语义representation
,而不是原始图像特征数据。另外,通信负载显著减少了大约340
倍。此外,梯度反向传播从
worker
模型部分到由server
模型部分完全处理,这保证了从原始图像特征到最终CTR score
的端到端训练。
基于
AMS
,论文成功地构建了一个高效的训练系统,并部署了一个轻量级的在线服务,解决了图像特征带来的存储、计算和通信的沉重负载。具体而言,论文的数十亿样本的训练过程在18
小时内完成,可以实现在线模型的天级更新,这是工业级生产所必须的特性。受益于精心优化的基础设施,论文提出了一个统一的网络架构,称作深度图像
CTR
模型Deep Image CTR Model: DICM
,可以有效地为用户建模相关的行为图像。DICM
通过一个selected attentive pooling
机制实现图像感知image aware
的用户建模,该机制在生成注意力权重时同时使用图像和ID
特征。DICM
还利用用户偏好和广告之间的视觉联系,显著提高了性能。总而言之,论文的贡献有三个方面:
首先,论文提出了新颖的
AMS
框架。它以子模型分布式方式sub-models distributing style
超越了众所周知的参数分布式方式parameters distributing style
,便于整个模型以分布式方式联合学习。这是朝着使深度学习模型能够利用负担得起的计算资源开发大规模和结构化数据迈出的重要一步。例如,在论文中,我们有大规模的
CTR
样本数据(其中每个样本涉及一个用户、一个广告)、有大规模的图像数据、还有大规模的连接样本的用户行为数据和用户行为图像。其次,论文提出了
DICM
。它不仅利用了图像对广告进行建模,还利用了用户的海量行为图像来更好地建模用户偏好,这比仅利用广告图像更具有挑战性。论文表明,广告图像或用户行为图像都可以使
CTR
预估受益,并且将它们与精心设计的模型相结合将带来更大的提升。此外,论文通过广泛的离线实验和在线实验验证了所提出方法的效率
efficiency
和效果efficacy
。目前论文的模型已经部署在淘宝展示广告系统中,服务于5
亿用户和数百万广告主的主流量。
相关工作:早期的
CTR
预估侧重于精心设计的低维统计特征,通常由用户点击统计量来定义。LS-PLM
、FTRL
、FM
是浅层模型的经典探索。最近,随着样本数量和特征维度越来越大,
CTR
模型从浅到深演进。特别地,受到自然语言处理领域的启发,学习分布式representation
的embedding
技术用于处理大规模稀疏数据。NCF
和Wide & Deep
利用MLP
网络极大地增强模型能力。DeepFM
通过在Wide & Deep
中的wide
部分使用分解机factorization machine: FM
来进一步建模特征交互。- 最新的工作
DIN
提出采用注意力机制来根据给定的目标item
自适应地建模用户行为。
这些工作提升了稀疏特征的使用。然而,稀疏的
ID
特征只能告诉我们:对象是不同的,并且透露的语义信息很少。特别是当一个ID
在训练集中出现频率较低时,它的embedding
参数将不会得到很好的训练。并且在训练期间未见unseen
的ID
不会在预测中生效。具有视觉语义信息的图像会带来更好的模型泛化能力。此外,训练数据中未见
unseen
的图像仍然可以帮助训练良好的图像模型进行CTR
预估。图像representation
任务近年来有了显著的改进。深度模型学习的高级语义特征已经被证明对大范围的任务有效。之前的一些工作尝试在CTR
模型中引入图像信息来描述广告。《Multimedia features for click prediction of new ads in display advertising》
和《Image Feature Learning for Cold Start Problem in Display Advertising》
通过使用手动设计的特征或预训练的CNN
模型对广告图像进行建模来解决冷启动问题。《Images don’t lie: Transferring deep visual semantic features to large-scale multimodal learning to rank》
引入了item
的视觉信息,从而克服Esty
的搜索引擎中对纯文本representation
的误解misunderstanding
。《Deep ctr prediction in display advertising》
提出以端到端的方式训练CNN
。
所有这些工作都专注于用图像来表示广告,这与我们的动机不同。广告图像描述了广告的视觉特征,用户行为图像会揭示用户的视觉偏好
visual preference
。将这些视觉信息组合在一起,将比单独使用它们中的任何一个产生更好的性能。在本文中,我们提出用图像来增强user representation
,并设计一种新颖、高效的分布式机器学习范式来对应它带来的挑战。
15.1 AMS
展示广告系统
display advertising system
:淘宝展示广告系统每天响应数十亿次pv
请求。每个请求,在特定场景(曝光时间、广告位等上下文中)都需要系统向用户展示最合适的广告。广告系统仅在几毫秒内从数千万个广告中选择eCPM
排名最高的广告。在线系统以类似漏斗的方式完成此任务,大致主要由三个顺序的模块组成,如下图所示:
Match
模块:该模块根据用户行为预测出用户的偏好,并从全量候选广告集中检索大约4000
个广告。该模块也被称作检索模块或者召回模块。
Pre-rank
模块:该模块采用轻量级的CTR
模型将检索到的广告集根据预估的CTR
进一步缩减至大约400
个广告。该模块也被称作粗排模块。Rank
模块:该模块使用复杂的CTR
模型准确预测粗排召回的广告集中每个广告的CTR
,通过eCPM
对这些广告进行排序并选择最佳的广告。这一步缩减到1
个广告。该模块也被称作精排模块。
所有这些模块都依赖于对用户兴趣的恰当理解从而提供个性化推荐。在本文中,我们专注于在
CTR
预估中使用用户行为图像进行更好的用户建模。接下来我们以Rank
模块为例仔细描述了挑战和解决方案。我们也将其应用于Pre-rank
模块。Rank
和Pre-rank
的实验结果都显示在后面。我们的方法也可以与
Mathcing
中的tree based
深度模型一起使用,我们将其留待未来的工作。
任务描述:通过输入用户特征、广告特征、场景特征等等,
CTR
模型输出用户在该场景中点击广告的概率。遵从前人的工作,这个问题被认为是一个二分类问题,其标签是弱反馈weak feedback
:是否点击。训练过程中采用交叉熵损失作为目标函数。与图像分类任务不同,其中图像由像素很好地表达,点击率预估问题需要根据具体
application
进行仔细的特征设计feature design
。通常的做法是通过ID
来描述用户、item
、场景的各个方面,构成了很多稀疏的特征field
。用户历史行为field
由用户之前点击过的item id
来组成,是描述用户的最重要的一个field
。这种方法导致大量的、但是极为稀疏的数据。Embedding & MLP
方式的网络现在被广泛应用于拟合fit
如此大的稀疏输入。在淘宝广告系统中,部署了遵循这种模式的、高度优化的CTR
模型。为清晰起见,下图的Embedding & MLP
部分展示了生产模型的简化版本。最近在生产中引入了DIN
,以更好地建模稀疏行为特征。使用这些复杂的模型,在接下来的部分中,我们将展示使用图像对用户行为进行建模,仍然可以带来显著的改进。带图像的建模:我们用视觉信息扩展了
Embedding & MLP
模型,特别是用图像增强了用户行为representation
。我们将这种结构称作深度图像CTR
模型Deep Image CTR Model: DICM
,并将Embedding & MLP
成为基础网络basic net
。如下图所示,用户的行为图像和广告图像被合并为两个特殊的特征
field
。这些图像首先馈入可训练的子模型submodel
,从而获得低维的high level representation
。与embedding
类似,子模型也是一种将图像嵌入到向量中的embedding
操作。所以我们称之为embedding model
。embedding model
可以看作是传统key-value embedding
操作的泛化扩展,因为它可以嵌入在训练期间未见unseen
的新图像。由于用户行为的长度是可变的,因此需要将多个嵌入的图像聚合在一起,形成一个固定长度的用户representation
,然后输入到MLP
中。值得注意的是,该模型中的图像
embedding
实际上是独立的,即不依赖于其它特征。因此embedding model
可以独立地前向传播、反向传播。这一观察提示了我们设计Advanced Model Server
。此外,还有更多针对各种类型数据的embedding model
,如可以使用AMS
来设计文本特征、视频特征等等。Parameter Server
及其限制:参数服务器Parameter Server: PS
是一种广泛采用的分布式架构,用于大规模参数化parametric
的机器学习问题。PS
由两个node group
组成:worker group
和server group
。worker group
包含一组worker
,它们对各自分配到的部分训练样本进行训练。- 同时,
server group
作为分布式数据库,存储了模型的参数并且可以通过key-value
结构访问。
通过这种方式,
PS
可以高效地聚合和同步参数。Embedding & MLP
模型可以在GPU
集群上使用PS-like
架构高效地实现。embedding layer
的参数被放置在server group
中,因为它们的规模远远超过每个worker
的内存容量,并且可以通过key-value
结构访问(前向传播)和更新(反向传播)。然而,当使用图像特征,尤其是与大量用户行为相关的图像时,完成训练过程并非易事。图像数量很大,图像数据需要分布式存储在
worker group
或者server group
中。采用PS
时,无论是存储在worker group
还是server group
,在实践中效率都很低。- 如果图像与训练样本一起存储在
worker group
中,那么图像特征将大大增加训练数据的大小(在我们的场景中,每个mini-batch
大小从134MB
增加到5.1 GB
,大约增加40
倍),这带来无法承受的IO
或存储。 - 如果图像存储在
server group
中并在训练期间被worker
访问,那么这将带来沉重的通信压力,因为图像特征是高维的(在我们的实验中通常为4096
维),远远超过ID
特征(通常为12
维)。
这种困境促使我们探索了接下来要重点描述的新架构。
AMS
架构:这里我们将详细介绍AMS
架构。与PS
类似,AMS
也包含server
和worker
。但是除了处理key-value
参数之外,AMS
中的server
还端到端地训练embedding model
。因此命名为Advanced Model Server: AMS
。在
AMS
中,样本由稀疏特征组成,其中行为图像被标记为索引,也是一种ID
。所有的图像都在server
中存储和计算,并通过embedding model
嵌入到语义向量中。这种范式为各种类型的数据提供了各种建模方法。例如,我们可以有效地为用户交互的item
引入由RNN
建模的客户评论customer comment
,这面临着与图像建模相同的问题。不带图像的训练样本在所有
worker
之间进行划分。图像以key-value
格式分布式存储在server
之间。key
为图像索引,value
为图像数据。在每次迭代中,
worker
独立地读取mini-batch
样本,并从server
请求mini-batch
中的ID embedding
和图像embedding
结果。注意, 来自某个worker
的请求被发送到存储相应ID
或图像的server
节点。server
收到请求时,以与PS
相同的方式返回ID
特征参数中的embedding
向量。对于图像,
server
首先从本地内存中获取图像数据,然后馈入embedding model
$ \mathcal E $ 从而获得embedding
向量 $ \mathbf{ e} $ 。worker
从server
拉取所有的embedding
向量 $ \left\{\mathbf e_s\right\}_{s=1}^N $ (包括ID embedding
和图像embedding
),其中 $ N $ 为server
数量 。然后完成worker model
的计算,获得关于模型参数的梯度 $ \delta_{\mathcal{W}_r} $ 和关于embedding
的梯度 $ \delta_{\mathbf{ e}_r} $ 。$ \delta_{\mathbf{ e}_r} $ 然后被推送到相应的
server
,以便embedding model
能够进行反向传播从而计算梯度 $ \delta_{\mathcal E_s} $ 。最后,
worker
和server
同步它们的模型梯度 $ \delta_{\mathcal W_r} $ 和 $ \delta_{\mathcal E_s} $ ,并完成模型更新。注意:
embedding
参数存储在server
端,而权重矩阵参数存储在worker
端。换句话讲,模型 $ \mathcal E $ 位于server
端、模型 $ \mathcal W $ 位于worker
端。
AMS
带来了几个好处:- 首先,通过仅在
server
中存储一次,图像存储显著减少。 - 此外,由于最终
embedding
向量规模远小于图像的原始数据(通常从4096
维降低到12
维,压缩比超过340
倍),因此通信显著降低。 - 另外,在单次训练迭代中多次发生的、特定图像的计算可以由
server
自然地合并,从而减少计算负载。
值得注意的是,
server
和worker
实际上部署在同一台GPU
机器上,因此交替的worker
计算和server
计算最大化了GPU
的利用率。AMS
算法:AMS
包括server
、worker
、以及task scheduler
。AMS
同时训练两个模型worker model
$ \mathcal W $ 和embedding model
$ \mathcal E $ 。其中各组件的执行过程为:Task Scheduler
:- 初始化模型 $ \mathcal W,\mathcal E $ 。
- 执行
mini-batch
训练。在所有worker
上,对于每个mini-batch t
执行过程WORKERITERATIOIN(t)
, $ 0\le t\le T $ 。
Worker
:第
r
个worker
( $ 1 \le r\le M $ ) 的WORKERITERATIOIN(t)
过程:加载第
t
个mini-batch
的特征 $ \mathbf x_r^t $ 、标签 $ \mathbf y_r^t $ 。通过
SERVEREMBED
过程从Server
请求 $ \mathbf{ x}_r^t $ 中的ID embedding
和图像的embedding
。其中图像通过图像的索引来向server
发生请求。从
Server
获取所有的embedding
向量 $ \mathbf e_r^t $ 。基于 $ \mathbf e_r^t $ 对 $ \mathcal W $ 进行前向传播和反向传播,并得到梯度:
worker
参数的梯度: $ \delta^t_{\mathcal W_r} = \nabla_{\mathbf w}\mathcal L\left(\mathbf{ x}_r^t,\mathbf y_r^t,\mathbf e_r^t\right) $ 。embedding
参数的梯度: $ \delta_{\mathbf e_r}^t = \nabla_{\mathbf e} \mathcal L\left(\mathbf{ x}_r^t,\mathbf y_r^t,\mathbf e_r^t\right) $ 。
向
Server
推送梯度 $ \delta^t_{\mathbf e_r} $ ,并且执行server
的SERVERUPDATE
过程。向所有
worker
同步梯度 $ \delta^t_{\mathcal W_r} $ 并更新模型 $ \mathcal W $ 。
Server
:对所有的Server
执行过程SERVEREMBED(t)
和SERVERUPDATE(t)
。第
s
个Server
( $ 1 \le s\le N $ ) 的SERVEREMBED(t)
过程:- 从
Server
本地获取图像数据I
。 - 计算图像的
embedding
: $ e = \mathcal E(I) $ 。
第 $ s $ 个
Server
( $ 1 \le s\le N $ )的SERVERUPDATE(t)
过程:- 计算梯度: $ \delta^t_{\mathcal E_s}= \nabla \mathcal E(I)\times \delta^t_\mathbf e $ 。
- 向所有
server
同步梯度 $ \delta^t_{\mathcal E_s} $ 并更新模型 $ \mathcal E $ 。
- 从
通过
AMS
实现的DICM
:可以使用AMS
有效地训练DICM
。稀疏ID
特征的embedding
和embedding model
的embedding
在server
中运行。MLP
和Aggregator
(接下来我们会详细说明)在worker
中运行。采用
AMS
的分布式GPU
训练架构,使得每天更新数十天日志数据的模型成为可能,这对于真实的广告系统而言至关重要。下表描述了我们最佳配置模型的训练时间(包含18
天日志的训练数据)和GPU
数量的关系。值得注意的是,我们的系统对GPU
具有理想的近线性可扩展性。我们使用20
个GPU
,从而在效率和经济性之间进行合理的权衡。
15.2 Image Based 用户建模
Image Embedding Model
:embedding model
旨在将像素级别的视觉信息提取为语义embedding
向量。计算机视觉的最新进展表明,学到的用于分类任务的语义特征具有良好的泛化能力。我们的实验研究表明,在我们的application
中,VGG16
的性能优于从头开始的端到端训练。但是由于VGG16
的复杂性太高,所以我们采用了混合训练:整个网络被划分为一个固定部分和一个可训练部分,其中可训练部分和CTR
模型一起进行端到端的训练。对于固定部分,我们采用预训练的
VGG16
网络的前14
层,具体而言是从Conv1
到FC6
,生成一个4096
维的向量。对于实际
application
,这是效率和效果之间的谨慎权衡。例如,在我们的实验中,用1000
维输出的VGG16 FC8
代替4096
维输出的FC6
作为固定部分,将导致3%
的相对性能损失(因为冻结的部分太多,导致可训练部分太少)。这表明需要控制固定部分的信息缩减information reduction
,输入size
和整个网络共同学习的可训练部分至关重要。然而,当我们使用
VGG16
中更低的层作为固定部分时,训练中的计算负载变高,并且我们发现效果提升并不显著。最后我们选择4096
维输出的VGG16 FC6
作为固定部分。对于可训练部分,我们使用
3
层全连接网络(4096-256-64-12
) ,并输出12
维向量。
用户行为图像聚合器
User Behavior Image Aggregator
:对于使用Embedding & MLP
模型的CTR
预估,用户的紧凑representation
至关重要。我们需要将各种用户数据,尤其是可变数量的历史行为,聚合为一个固定长度的向量。为此目的,我们设计了aggregator block
来聚合大量行为图像embedding
。事实上,许多经典问题都涉及类似的任务。对于传统的图像检索/分类,局部特征,例如
SIFT
,在图像中聚合。包括VLAD
和稀疏编码在内的经典方法通过sum
或者max
操作来实现这一点。对于神经机器翻译neural machine translation: NMT
,不同长度句子的上下文向量是采用最近提出的注意力方法来提取出来的。我们遵循这些思想并探索各种设计,尤其是注意力方法。为了进一步考虑ID
特征信息,我们提出了Multiple Query Attentive Pooling
。最直接的方法是将所有行为图像
embedding
拼接在一起,并填充或者截断到指定的长度。但是当行为数量太大或者行为顺序发生改变时,这会遭受损失。最大池化和
sum
池化是另外两种直接的方法,它们都无法针对多样化的用户行为适当地关注focus
。最近
DIN
将注意力机制引入用户建模,它根据目标广告自适应地捕获最相关的行为。我们也采用了这种方法,并考虑到视觉相关性,我们使用广告图像作为注意力的query
。我们称这种方法为Attentive-Pooling
。这些方法如下图所示。下图为一些典型的聚合器设计,我们将在实验部分比较它们的性能差异。不同类型特征之间的交互很重要。例如,广告的类目
ID
T shirt
和用户行为中的T shirt
图像可以连接,因此它可以更好地捕获用户对于此类item
的偏好。因此,我们提出了MultiQueryAttentivePooling
(下图(d)
),它结合了图像特征和ID
特征来生成注意力权重。具体而言,我们设计了两个注意力通道,分别涉及广告图像特征和
ID
特征。两个注意力通道分别生成自己的权重和加权sum
向量,然后将它们拼接起来。注意,与multi-head
技术不同,MultiQueryAttentivePooling
对每个注意力通道使用不同的query
,从而探索具有互补性的不同相关性。
15.3 推断
在大型工业广告系统中,推断效率对于
CTR
模型的在线部署至关重要。对于常规DNN
模型,通常embedding
参数存放在全局key-value
共享存储中,MLP
参数存储在本地ranking server
中。对于每个inferrence
请求,ranking server
会从key-value
共享存储提取ID embeding
,并向MLP
馈入该embedding
从而执行CTR
预测。实践证明该方案在生产中具有高吞吐、低延迟。当涉及图像尤其是大量的用户行为图像时,提取图像的
embedding
向量可能带来大量的计算开销和通信开销。受益于图像的独立性,图像embedding
向量可以离线计算并作为常规ID
特征进行全局存储。因此ranking server
无需任何修改即可适配图像的引入。注意:对于已有的图像可以通过其图像
ID
查找离线计算好的图像embedding
向量。对于新的图像,系统可以直接计算其embedding
来使用并缓存起来。这可以有效缓解ID
特征的冷启动问题。对于每个
pv
请求,DICM
的响应时间仅仅从21ms
(传统 的、不带图像的DNN
模型)增加到24ms
,符合在线推断的需求。
15.4 DICM 用于 Pre-Rank
DICM
框架可以顺利应用于Pre-Rank
阶段。为了加速在线服务,我们设计了类似于DSSM
结构的架构,该架构广泛应用于效率敏感的跨域cross domain
搜索/推荐任务。 如下图所示,维度相等的ad representation
和user representation
首先用它们各自的特征分别独立建模。和Rank
一样,ID
特征和图像都被使用,并且通过embedding
模型来嵌入。为了避免广告特征和用户特征的早期融合,sum
池化(而不是MultiQueryAttentivePooling
)作为行为图像的聚合器。最终的点击率由ad representation
和user representation
的内积来预测。注意,在最终内积之前,用户相关特征和广告相关特征之间没有交互。因此,可以离线预先计算
ad representation
和user representation
,以便在线服务仅关注内积操作,从而显著降低总的计算负载。
15.5 实验
数据集:所有数据来自于淘宝的展示广告系统收集自
2017-07
月连续19
天的日志数据,其中前18
天为训练集、最后一天为测试集。数据集包含39
亿训练样本、2.19
亿测试样本。样本有27
种ID
特征,包括用户画像特征、用户行为特征、广告描述信息、场景描述信息。评估方式:对于离线评估指标,我们采用
$ \text{GAUC} = \frac{\sum_u \text{用户 u 曝光量} \times \text{AUC}_u}{\sum_u \text{用户 u 曝光量}} $AUC
和GAUC
。GAUC
是所有用户的AUC
加权平均。GAUC
是所有用户AUC
的加权平均,定义为:其中 $ \text{AUC}_u $ 为用户 $ u $ 的
AUC
。在实际广告系统中,
GAUC
比AUC
和交叉熵损失更有效。因为GAUC
是个性化的,专注于每个用户的预测。训练细节:
- 为了加快训练速度并降低存储成本,我们遵循了公共特征技术
common feature technique
。具体而言,我们将对应于相同用户的样本放在一起,形成样本组sample group
,这些样本组共享相同的用户侧特征。 - 为了描述用户行为,我们选取了每个用户在过去
14
天内的点击行为。由于来自真实系统的原始数据是噪音noisy
的,我们选择具有合理的、较长的浏览时间的典型点击行为。我们实验发现这种过滤策略可以获得更好的性能。平均的用户行为从200
多个过滤到32.6
个。 - 我们使用
PReLU
作为激活函数,因为我们实验中发现它的优越性。我们采用Adam
作为优化器,初始学习率为0.001
,每24000
个batch
之后以0.9
的系数进行衰减。模型在2
个epoch
后收敛(在我们的场景中为128K
次迭代)。 - 部分
warm-up
:参数初始化被广泛使用。受益于我们系统的天级更新方案,我们可以使用前一天训练好的模型作为初始化,而无需任何额外成本。我们观察到DICM
的每个部分以不同的速度收敛。由于ID
特征的稀疏性和较大的参数规模,ID embedding
容易出现过拟合。而图像embedding model
需要足够的训练来捕获视觉信息和用户意图之间的高度非线性关系。因此我们提出了partial warm-up
技术。具体而言,我们使用预训练模型(它使用不同日期的训练数据)作为除ID embedding
之外的所有部分(即图像embedding model
、提取器、MLP
部分)的初始化,并随机初始化ID embedding
部分。
- 为了加快训练速度并降低存储成本,我们遵循了公共特征技术
15.5.1 AMS 效率
我们首先在我们的
application
中研究了AMS
相对于PS
架构的效率优势。我们对比了以下两种可能的保存图像的方式:PS-worker
:将图像和其它训练数据一起存储在worker
节点中。PS-server
:将图像存储在server
节点中作为全局数据。
为了给出定量结果,我们总结了我们的典型场景。我们总共有
39
亿训练样本,由一个20
节点的GPU
集群来处理。对于每次训练迭代,每个节点的mini-batch
设置为3000
,因此有效的mini-batch size = 60000
。在每个样本中,用户平均与32.6
张行为图像相关。得益于公共特征技术,据统计,每个有效的mini-batch
涉及大约32
万张图像以及140
万个ID
(不包括图像ID
)。总共有1.2
亿张unique
图像参与训练,每一张图像都被预处理为4096
维浮点特征作为训练输入。我们将
AMS
与下表中的两个替代方案进行了比较。实验结果如下表所示,表中的结果是mini-batch
的平均数据规模,单位为Bytes
。其中:storage
指标:存储mini-batch
图像和ID
数据需要的存储规模,单位为Bytes
。communication
指标:在worker
和server
之间传输mini-batch
数据的传输规模,单位为Bytes
。ALL
指的是传输所有数据(图像 +ID
数据),Image
指的是仅传输图像数据。
可以看到:
AMS
实现了很好的系统效率,而PS-worker
和PS-server
策略在存储负载或通信负载方面存在重大缺陷。具体而言,PS-worker
需要比AMS
大31
倍的存储空间(5.1G vs 164M
),而PS-server
的通信成本是AMS
的32
倍(5.1G vs 158M
) 。
15.5.2 消融研究
这里我们首先通过离线实验专门研究我们方法的各种设计细节。为了公平比较,除非另有说明,否则所有消融研究都禁用
partial warm-up
策略。baseline
:我们将所有离线实验的baseline
设为仅具有稀疏ID
特征的Embedding & MLP
模型,这是淘宝展示广告系统中生产模型的简化版本。注意,
baseline
中也使用了两个特殊ID
字段作为稀疏特征:广告图像的ID
、用户行为图像的ID
。这两个ID
字段对于公平比较至关重要,因为图像特征实际上可以起到ID
的部分作用,我们应该为两个模型保持一个公共的基础,从而显示图像语义信息的净增益clean improvement
。此外,我们采用自适应正则化(参考DIN
模型)来解决ID
特征的过拟合问题。图像信息研究:
DICM
集成了用户行为图像和广告图像。这里我们对它们的有效性进行消融研究。为此,我们从baseline
开始,分别使用广告图像、行为图像、以及同时使用这两种。下表展示了离线数据集的结果。可以看到:- 行为图像或广告图像都可以提升
baseline
,这表明在用户和广告建模中引入视觉特征可以带来积极的效果。 - 此外,行为图像和广告图像的联合建模将显著提高性能。值得注意的是,联合建模的增益远远大于对它们单独建模的增益之和,即
GAUC
上0.0055 vs 0.0044
、AUC
上0.0037 vs 0.0024
。这一结果有力地证明了通过视觉信息对用户和广告进行建模的协同效应,这是我们的DICM
带来的理想效果。
- 行为图像或广告图像都可以提升
行为图像聚合器的研究:我们详细比较了前面描述的不同聚合器的影响,这些聚合器在模型中聚合了行为图像
embedding
。结果如下表所示,可以看到:concatenation
不适合行为聚合,性能较差;sum/max
池化给出了合理的改进。AttentivePooling
展示出将广告图像作为注意力query
的显著收益。MultiQueryAttentivePooling
带来最好的结果,这受益于稀疏ID
和图像语义信息之间的交互。
不同基础结构的研究:我们的工作重点是通过联合用户行为视觉信息和广告视觉信息来增强
CTR
预测模型。传统稀疏特征的基础basic
网络结构设计不是本文的中心话题。我们假设DICM
可以应用于不同的基础网络,并带来图像特征的一致的改进。为了验证这一假设,我们使用经典的逻辑回归LR
、最近提出的DIN
模型、以及baseline Embedding & MLP
作为基础模型来测试DICM
。下图给出了这些模型的离线GAUC
指标。可以看到:具有图像特征的模型始终优于仅具有
ID
特征的模型。具有图像特征的
DIN
表现最好,并且大大超越了经典的DIN
。LR
在使用图像特征增强时的提升不如其它模型,这是因为LR
无法充分利用图像的高层语义信息。
partial warm-up
研究:我们通过比较non warm-up
、partial warm-up
、full warm-up
来研究warm-up
策略。如下表所示:partial warm-up
效果最佳。- 由于
ID embedding
参数的严重过拟合,full warm-up
会导致更糟糕的结果。
15.5.3 DICM 结果
这里我们将使用
partial warm-up
策略和MultiQueryAttentivePooling
的最佳配置的DICM
与baseline
进行离线效果的比较。我们还进行了在线A/B test
,结果表明与state-of-the-art
的生产模型相比有了显著提升。离线评估:我们首先使用离线数据集评估我们的
DICM
模型,我们采用partial warm-up
策略和MultiQueryAttentivePooling
。下表和下图显示了baseline
和最佳配置DICM
之间的AUC/GAUC
比较。可以看到:DICM
的性能比baseline
在GAUC
上提升0.0078
、在AUC
上提升0.0055
。这在实际系统中是显著的改进。- 此外,从下图可以看出,
baseline
和DICM
中的gap
在训练过程中是一致的。这表明我们的方法是鲁棒robustness
的。
在线
A/B test
:在在线A/B test
中,为了与生产环境保持一致,我们将DICM
的基础网络替换为生产中state-of-the-art
的网络(具有更复杂设计特征的Embedding & MLP
模型的高级版本)。我们将DICM
和生产模型进行比较,评估指标为广告系统中的三个关键指标:CTR
、eCPM
、gross merchandise value: GPM
。如下表所示,
DICM
在连续7
天的统计周期内在在线A/B test
中取得了一致的收益。考虑到淘宝的庞大规模和高度发达的广告系统,这种持续的在线改进意义重大。DICM
现已部署在淘宝的展示广告系统中,服务于5
亿用户和数百万广告主的主流量main traffic
。
15.5.4 Pre-rank
最后,我们评估了在
Pre-Rank
阶段应用DICM
的性能。我们在离线数据集上进行训练,结果如下表所示:我们的DICM
在GAUC
和AUC
指标上再次显著优于baseline
。这样的结果再次证明了将我们的框架推广到广告/推荐系统的其它CTR
预估任务的前景。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论