深度学习CTR模型最全演化图谱 [王喆观点]

毕业于清华大学计算机系的王喆学长回顾了近3年来的所有主流深度学习CTR (click through rate) 模型,并梳理推荐系统、计算广告领域在深度学习方面的前沿进展。内容来源:https://zhuanlan.zhihu.com/p/63186101

随着微软的Deep Crossing,Google的Wide&Deep,以及FNN,PNN等一大批优秀的深度学习CTR预估模型在2016年被提出,计算广告和推荐系统领域全面进入了深度学习时代,时至今日,深度学习CTR模型已经成为广告和推荐领域毫无疑问的主流。进入深度学习时代之后,CTR模型不仅在表达能力、模型效果上有了质的提升,而且大量借鉴并融合了深度学习在图像、语音以及自然语言处理方向的成果,在模型结构上进行了快速的演化。

本文总结了广告、推荐领域最为流行的10个深度学习CTR模型的结构特点,构建了它们之间的演化图谱。选择模型的标准尽量遵循下面三个原则:

  • 模型的在业界影响力较大的;
  • 已经被Google,微软,阿里等知名互联网公司成功应用的;
  • 工程导向的,而不是仅用实验数据验证或学术创新用的。
深度学习CTR模型演化图谱

1. Deep Crossing

微软于2016年提出的Deep Crossing可以说是深度学习CTR模型的最典型和基础性的模型。其模型结构如下图所示;该模型基本涵盖了深度CTR模型最典型的要素,即通过加入embedding层将稀疏特征转化为低维稠密特征,用stacking layer,或者叫做concat layer将分段的特征向量连接起来,再通过多层神经网络完成特征的组合、转换,最终用scoring layer完成CTR的计算。跟经典DNN有所不同的是,Deep crossing采用的multilayer perceptron是由残差网络组成的,这无疑得益于MSRA著名研究员何恺明提出的著名的152层ResNet。

微软Deep Crossing深度CTR模型框架

手工制作的组合特征一直是许多成功模型背后的“秘密酱汁”。然而,对于Web规模的应用程序,多样和海量的特征使得这些手工制作的特征在创建、维护和部署方面都很昂贵。本文提出了Deep Crossing模型,它实质是一种深度神经网络,能自动地将特征结合起来,从而产生出更好的模型。Deep Crossing的输入是一组单独的特征,可以是密集的或稀疏的。由embedding和stacking以及Residual Units组成的网络隐式地发现了重要的交叉特征。通过CNTK建模工具实现Deep Crossing。Deep Crossing能够从零开始为一个付费搜索引擎构建网络规模的模型,并且只使用生产模型中使用的一个子集就可以获得更好的结果。结果表明了使用Deep Crossing作为通用建模范式可以改进现有产品以及加快新模型的开发的潜力,这些新模型的开销仅占特征工程和获得深度领域知识的一小部分。

论文:[Deep Crossing] Deep Crossing - Web-Scale Modeling without Manually Crafted Combinatorial Features (Microsoft 2016)

2. FNN:Factorization-machine supported neural network

FNN相比Deep Crossing的创新在于使用FM的隐层向量作为user和item的Embedding,从而避免了完全从随机状态训练Embedding。由于id类特征大量采用one-hot的编码方式,导致其维度极大,向量极稀疏,所以Embedding层与输入层的连接极多,梯度下降的效率很低,这大大增加了模型的训练时间和Embedding的不稳定性,使用pre train的方法完成Embedding层的训练,无疑是降低深度学习模型复杂度和训练不稳定性的有效工程经验。

四层的FNN模型结构

预测用户响应,如点击率和转换率,在许多Web应用程序中都是至关重要的,包括Web搜索、个性化推荐和在线广告。与我们通常在图像和音频域中发现的连续原始特征不同,Web空间中的输入特征通常是多字段的,并且大多是离散和分类的,而它们的依赖性却鲜为人知。主要的用户响应预测模型要么局限于线性模型,要么需要手动构建高阶组合特征。前者失去了探索特征交互的能力,而后者在大特征空间中导致了大量的计算。为了解决这个问题,我们提出了两个新的模型,使用深度神经网络(dnns),从分类特征交互中自动学习有效的模式,并对用户的广告点击进行预测。为了使我们的dnn有效地工作,我们建议利用三种特征转换方法,即因子分解机(fms)、受限Boltzmann机(rbms)和去噪自动编码器(daes)。本文介绍了该模型的结构及其有效的训练算法。对实际数据的大规模实验表明,我们的方法比主要的最先进的模型更有效。

论文:[FNN] Deep Learning over Multi-field Categorical Data (UCL 2016)

3. PNN:Product based neural network

PNN的全称是Product-based Neural Network,PNN的关键在于在embedding层和全连接层之间加入了Product layer。传统的DNN是直接通过多层全连接层完成特征的交叉和组合的,但这样的方式缺乏一定的“针对性”。首先全连接层并没有针对不同特征域之间进行交叉;其次,全连接层的操作也并不是直接针对特征交叉设计的。但在实际问题中,特征交叉的重要性不言而喻,比如年龄与性别的交叉是非常重要的分组特征,包含了大量高价值的信息,我们急需深度学习网络能够有针对性的结构能够表征这些信息。因此PNN通过加入Product layer完成了针对性的特征交叉,其product操作在不同特征域之间进行特征组合。并定义了inner product,outer product等多种product的操作捕捉不同的交叉信息,增强模型表征不同数据模式的能力 。

Product based neural netwrk 架构

预测用户的反应,如点击和转换,是非常重要的,并且已经发现它在许多网络应用中的应用,包括推荐系统、网络搜索和在线广告。这些应用程序中的数据大多是分类的,包含多个字段;典型的表示方法是通过one-hot将其转换为高维稀疏二进制特征表示。面对极端的稀疏性,传统模型通过低阶特征组来限制其从数据中挖掘浅层模式的能力。另一方面,像神经网络这样的深度模型,由于特征空间很大,不能直接应用于高维输入。本文提出了一种基于product的神经网络(PNN),它通过嵌入层来学习分类数据的分布式表示、捕获域间类别之间交互模式的product层,以及进一步研究高阶特征交互的全连接层。我们在两个大型现实世界点击数据集上的实验结果表明,PNN在各种指标上始终优于最先进的模型。

论文:[PNN] Product-based Neural Networks for User Response Prediction (SJTU 2016)

4. Wide&Deep

Google Wide&Deep模型的主要思路正如其名,把单输入层的Wide部分和经过多层感知机的Deep部分连接起来,一起输入最终的输出层。其中Wide部分的主要作用是让模型具有记忆性(Memorization),单层的Wide部分善于处理大量稀疏的id类特征,便于让模型直接“记住”用户的大量历史信息;Deep部分的主要作用是让模型具有“泛化性”(Generalization),利用DNN表达能力强的特点,挖掘藏在特征后面的数据模式。最终利用LR输出层将Wide部分和Deep部分组合起来,形成统一的模型。Wide&Deep对之后模型的影响在于——大量深度学习模型采用了两部分甚至多部分组合的形式,利用不同网络结构挖掘不同的信息后进行组合,充分利用和结合了不同网络结构的特点。

Wide&Deep 模型框架

具有非线性特征变换的通用线性模型被广泛应用于具有稀疏输入的大规模回归和分类问题。通过通用的跨产品特征转换记忆特征交互是可选的和可解释的,而泛化需要更多的特征工程工作。在特征工程较少的情况下,深度神经网络可以通过为稀疏特征学习的低维密集嵌入更好地概括为看不见的特征组合。然而,当用户项目交互稀疏且等级较高时,嵌入深度神经网络可以过度概括和推荐不太相关的项目。在本文中,我们提出了宽深学习联合训练的宽线性模型和深神经网络,以结合记忆和泛化对推荐系统的好处。我们在Google Play(拥有超过10亿活跃用户和超过100万应用程序的商业移动应用商店)上生产和评估了该系统。在线实验结果表明,与纯宽型和纯深型相比,宽深型显著增加了应用程序的购买量。我们还在TensorFlow中开放源代码实现。

论文:[Wide&Deep] Wide & Deep Learning for Recommender Systems (Google 2016)

5. DeepFM: Deep factorization machine

在Wide&Deep之后,诸多模型延续了双网络组合的结构,DeepFM就是其中之一。DeepFM对Wide&Deep的改进之处在于,它用FM替换掉了原来的Wide部分,加强了浅层网络部分特征组合的能力。事实上,由于FM本身就是由一阶部分和二阶部分组成的,DeepFM相当于同时组合了原Wide部分+二阶特征交叉部分+Deep部分三种结构,无疑进一步增强了模型的表达能力。

Wide & deep architecture of DeepFM. The wide and deep component share the same input raw feature vector, which enables DeepFM to learn low- and high-order feature interactions simultaneously from the input raw features

学习用户行为背后复杂的特征交互对于最大化推荐系统的ctr至关重要。尽管取得了很大的进展,但现有的方法似乎对低阶或高阶交互有很大的偏向,或者需要专门的特性工程。在本文中,我们证明了可以推导一个强调低阶和高阶特征交互的端到端学习模型。该模型将因子分解机的推荐能力和特征学习的深度学习能力结合在一个新的神经网络结构中。与google最新的宽深模型相比,deepfm对其“宽”和“深”部分有一个共享的输入,除了原始特性外,不需要特性工程。通过综合实验,验证了DEEPFM对现有的CTR预测模型在基准数据和商业数据上的有效性和有效性。

论文:[DeepFM] A Factorization-Machine based Neural Network for CTR Prediction (HIT-Huawei 2017)

6. Deep&Cross : instead wide part by crossing

Google 2017年发表的Deep&Cross Network(DCN)同样是对Wide&Deep的进一步改进,主要的思路使用Cross网络替代了原来的Wide部分。其中设计Cross网络的基本动机是为了增加特征之间的交互力度,使用多层cross layer对输入向量进行特征交叉。单层cross layer的基本操作是将cross layer的输入向量xl与原始的输入向量x0进行交叉,并加入bias向量和原始xl输入向量。DCN本质上还是对Wide&Deep Wide部分表达能力不足的问题进行改进,与DeepFM的思路非常类似。

Deep  &  Cross 网络框架

特征工程是许多预测模型成功的关键。然而,这一过程并不简单,需要人工进行特征工程或彻底搜索。dnn能够自动学习特征交互;但是,它们隐式地生成所有交互,并且不一定有效地学习所有类型的交叉特征。本文提出了一种保持DNN模型优点的深度交叉网络(DCN),并在此基础上,提出了一种能更有效地学习一定有界度特征交互的新型交叉网络。特别是,DCN在每一层都显式地应用了特征交叉,不需要人工进行特征工程,并且为DNN模型增加了可忽略的额外复杂性。我们的实验结果表明,在模型精度和内存使用方面,它在ctr预测数据集和密集分类数据集上优于最先进的算法。

论文:[DCN] Deep & Cross Network for Ad Click Predictions (Stanford 2017)

7. NFM:improve the presentation of deep part

相对于DeepFM和DCN对于Wide&Deep Wide部分的改进,NFM可以看作是对Deep部分的改进。NFM的全称是Neural Factorization Machines,如果我们从深度学习网络架构的角度看待FM,FM也可以看作是由单层LR与二阶特征交叉组成的Wide&Deep的架构,与经典W&D的不同之处仅在于Deep部分变成了二阶隐向量相乘的形式。再进一步,NFM从修改FM二阶部分的角度出发,用一个带Bi-interaction Pooling层的DNN替换了FM的特征交叉部分,形成了独特的Wide&Deep架构。其中Bi-interaction Pooling可以看作是不同特征embedding的element-wise product的形式。这也是NFM相比Google Wide&Deep的创新之处。

NFM的深度网络部分模型架构图

许多Web应用程序的预测任务需要对分类变量建模,例如用户ID和人口统计学,如性别和职业。为了应用标准的机器学习技术,这些分类预测器总是通过one-hot编码转换成一组二进制特征,使得生成的特征向量高度稀疏。要有效地从这些稀疏的数据中学习,关键是要考虑特征之间的交互。因子分解机(factorization machines,FMS)是一种广泛使用的解决方案,可以有效地利用二阶特征交互。然而,FM模型以线性方式呈现交互,这对于捕获现实数据的非线性和复杂的固有结构是不太合适的。虽然深度神经网络最近已被应用于学习行业中的非线性特征交互,如谷歌的广度和深度以及微软的深度交叉,但其深层结构同时使其难以训练。本文提出了一种新的模型神经因式分解机(NFM),用于稀疏环境下的预测。NFM在二阶特征交互建模中无缝结合了FM的线性,在高阶特征交互建模中无缝结合了神经网络的非线性。从概念上讲,NFM比FM更具表现力,因为FM可以看作是NFM的一种特殊情况,没有隐藏层。两个回归任务的实证结果表明,仅使用一个隐藏层,NFM显著优于FM,相对改善7.3%。与最新的深度学习方法相比,我们的NFM采用了较浅的结构,但提供了更好的性能,在实践中更容易训练和调优。

[NFM] Neural Factorization Machines for Sparse Predictive Analytics (NUS 2017)

8. AFM: Factorization machine with attention machanism

AFM的全称是Attentional Factorization Machines,通过前面的介绍我们很清楚的知道,FM其实就是经典的Wide&Deep结构,其中Wide部分是FM的一阶部分,Deep部分是FM的二阶部分,而AFM顾名思义,就是引入Attention机制的FM,具体到模型结构上,AFM其实是对FM的二阶部分的每个交叉特征赋予了权重,这个权重控制了交叉特征对最后结果的影响,也就非常类似于NLP领域的注意力机制(Attention Mechanism)。为了训练Attention权重,AFM加入了Attention Net,利用Attention Net训练好Attention权重后,再反向作用于FM二阶交叉特征之上,使FM获得根据样本特点调整特征权重的能力。

AFM模型架构图

因子分解机是一种有监督的学习方法,它通过结合二阶特征交互来增强线性回归模型。尽管有效,但是FM可以通过建模具有相同权重的所有特征交互而受到阻碍,因为并非所有特征交互都同样有用且具有预测性。例如,与无用特性的交互甚至可能引入噪声并对性能造成不利影响。在本文中,我们通过区分不同特征交互的重要性来改进FM。我们提出了一个新的模型,即注意因子分解机(AFM),它通过神经注意网络从数据中学习每个特征交互的重要性。对两个真实数据集进行的大量实验证明了AFM的有效性。从经验上看,它在回归任务AFM Betters FM中表现出8.6%的相对改善,并且始终优于最先进的深度学习方法,具有更简单的结构和更少的模型参数。https://github.com/hexiangnan/attentional factorization machine

论文:[AFM] Attentional Factorization Machines - Learning the Weight of Feature Interactions via Attention Networks (ZJU 2017)

9. DIN:Deep interest network

AFM在FM中加入了Attention机制,2018年,阿里巴巴正式提出了融合了Attention机制的深度学习模型——Deep Interest Network。与AFM将Attention与FM结合不同的是,DIN将Attention机制作用于深度神经网络,在模型的embedding layer和concatenate layer之间加入了attention unit,使模型能够根据候选商品的不同,调整不同特征的权重。

阿里DIN模型与Base模型的架构图

利用丰富的历史行为数据,更好地提取用户的兴趣,对于构建电子商务行业在线广告系统的点击率预测模型至关重要。对用户行为数据有两个关键的观察:i)多样性。用户在访问电子商务网站时对不同种类的商品感兴趣。ii)局部激活。用户单击或不单击某个商品仅取决于其相关历史行为的一部分。然而,大多数传统的ctr模型缺乏捕获这些行为数据结构的能力。本文介绍了一种在阿里巴巴展示广告系统中开发和部署的新型深度兴趣网络(Din)。Din通过利益分配来代表用户的多样性利益,并根据候选广告设计了一种关注度(如网络结构)来局部激活相关利益,这被证明是有效的,并且显著优于传统模式。在大规模稀疏输入的工业深网训练中,容易遇到过拟合问题。我们仔细研究了这个问题,并提出了一种实用的自适应正则化技术。

论文:[DIN] Deep Interest Network for Click-Through Rate Prediction (Alibaba 2018)

10. DIEN : an evolution for DIN

DIEN的全称为Deep Interest Evolution Network,它不仅是对DIN的进一步“进化”,更重要的是DIEN通过引入序列模型 AUGRU模拟了用户兴趣进化的过程。具体来讲模型的主要特点是在Embedding layer和Concatenate layer之间加入了生成兴趣的Interest Extractor Layer和模拟兴趣演化的Interest Evolving layer。其中Interest Extractor Layer使用了DIN的结构抽取了每一个时间片内用户的兴趣,Interest Evolving layer则利用序列模型AUGRU的结构将不同时间的用户兴趣串联起来,形成兴趣进化的链条。最终再把当前时刻的“兴趣向量”输入上层的多层全连接网络,与其他特征一起进行最终的CTR预估。

阿里DIEN模型架构图

论文:[DIEN] Deep Interest Evolution Network for Click-Through Rate Prediction (Alibaba 2019)

总结:

文章的最后,再次强调深度学习CTR模型演化图,可以毫不夸张的说,这张演化图包括了近年来所有主流的深度学习CTR模型的结构特点以及它们之间的演化关系。希望能够帮助推荐、广告、搜索领域的算法工程师们建立起完整的知识体系,能够驾轻就熟的针对业务特点应用并比较不同模型的效果,从而用最适合当前数据模式的模型驱动公司业务。

结合自己的工作经验,关于深度学习模型我想再分享两点内容:

  1. 没有银弹。从来没有一个深度学习模型能够在所有数据集上都表现最优,特别是推荐、广告领域,各家的数据集,数据pattern、业务领域差异巨大,不存在能够解决一切问题的“银弹”模型。比如,阿里的DIEN对于数据质量、用户整个life cycle行为完整性的要求很高,如果在某些DSP场景下运用这个模型,预计不会收到良好的效果。再比如Google 的Deep & Cross,我们也要考虑自己的数据集需不需要如此复杂的特征交叉方式,在一些百万量级的数据集上,也许浅层神经网络的表现更好。
  2. 算法工程师永远要在理想和现实间做trade off。有一种思想要避免,就是我为了要上某个模型就要强转团队的技术栈,强买某些硬件设备。模型的更新过程一定是迭代的,一定是从简单到复杂的,一定是你证明了某个模型是work的,然后在此基础上做改进的。这也是我们要熟悉所有模型演化关系的原因。

就在我们熟悉这些已有模型的时候,深度学习CTR模型的发展从没有停下它的脚步。从阿里的多模态、多目标的深度学习模型,到YouTube基于RNN等序列模型的推荐系统,再到Airbnb使用Embedding技术构建的搜索推荐模型,深度学习的应用不仅越来越广泛,而且得到了越来越快的进化。

©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页