深度学习之DeepCTR

展示广告中的深度CTR预估

      • 摘要
      • 1 介绍
      • 2 相关工作
        • 2.1 展示广告CTR预估
        • 2.2 深度神经网络
      • 3 方法概述
      • 4 网络结构
      • 5 加速训练
        • 5.1 稀疏全连接层
        • 5.2 数据采样
      • 6 实验
        • 6.1 实验设置
          • 6.1.1 数据集
          • 6.1.2 原型
          • 6.1.3 评价指标
          • 6.1.4 网络配置
        • 6.2 结果分析与讨论
        • 6.3 可视化Convnet
      • 7 结论

论文名称:Deep CTR Prediction in Display Advertising

摘要

图片广告的点击率预估是线上展示广告系统的核心任务,逻辑回归(Logistic Regression)已经频繁作为预测模型来使用。然而LR缺乏提取来自人工制作的高维图像中的复杂和固有的非线性特征,这就限制了点击率预估的有效性。为了解决这个问题,在本文中,我们介绍了一个最新的深度神经网络(Deep neural netword,DNN),这个网络基于直接预测一幅图片广告的CTR,图片广告一步就被提取为原始图片像素和其他基础特征。DNN利用卷积层从图片中自动提取有代表性的视觉特征,并且将视觉特征和其他背景上下文特征经过全连接层学习到非线性CTR特征,在含有5千万的记录的一个真实世界数据集中经验性的估计证明了此方法的有效性。

1 介绍

线上展示广告通过在大量网页中展示文本或者图片形式的广告来获得丰厚的收入,像谷歌和雅虎这样的广告出版商在不同网页中对想要展示广告给用户的广告主售卖空间,然后出版商每次从广告主身上获利,广告展示会带来一些期待用户动作,比如点击或者购买,通过CPC(cost-per-click)或者CPA(cost-per-conversion)来作为广告主的支付选项,出版商的预期收入是出价与CTR或者CVR的乘积构成。
深度学习之DeepCTR_第1张图片
最近,越来越多的广告主偏爱展示图片广告(如图1),因为这相较于文本广告能更加吸引人以及易于理解,为了最大化出版商的费用,就要最大化CTR或者CVR,当用户在浏览一个网页的时候,能够展示最合适的图片广告给特定的用户,这对于算法来说还是比较困难的。
因此,在大多在线广告系统中,预测CTR或者CVR就是广告分发中的核心任务,在本文中,我们着重于CPC的付费方式以及预测展示广告的CTR。一个常见的广告系统对可能的广告CTR进行预测排名都是基于文本信息,然后top K个广告给用户,通常来说,预测模型都是基于机器学习理论来从过去点击数据中来学习。
代表一个广告的特征在机器学习模型中的非常重要的,在近几年,为了使得CTR预测模型更加的准确,大多研究人员使用上百万的特征来描述一个用户的响应记录(即广告展示次数,ad impression),典型地,一幅图像广告展示次数有基本的特征以及视觉特征。基本的特征即用户本身的行为属性信息、产品信息以及网页中的广告位置信息等等,视觉特征则在不同的维度上来描述一幅图像广告的视觉外观,比如,颜色和纹理都是低维特征,而人脸和其他上下文对象都是高维特征。低维和高维特征对于一幅图像广告的CTR预估都有着不同层次的影响(如图2)。传统来说,研究人员缺乏有效的方法来踢去高维视觉特征,而视觉特征的重要性通常也是被低估的,然而,我们可以从图2中看到,有着相同基本特征的广告可能有着比较大的CTR的差别,正是由于不同的图像广告。从结果来说,如何在机器学习模型中有效的使用视觉特征成了一个十分紧急的任务需求。
在不同的机器学习模型中,使用上述特征来做CTR预估的,LR由于其简易性和有效性是最知名并且广泛使用的。并且,LR也很容易在分布式计算机系统中进行并行运算,因此,在数十亿样本中运行并不是非常大的挑战。能够有效的处理大处理对于一个典型的广告系统来说是非常重要的,特别当预测模型需要频繁的更新来处理新的广告的时候。然而,从人工特征池中有效提取复杂有效的非线性特征对于LR来说是比较困难的,虽然其能够通过计算特征的二阶导数来减轻这个问题,但是仍然不能提取高阶非线性的表达特征,并且如果我们继续增加求导可能造成特征爆炸的问题。
为了针对这些问题,其他的模型比如因子分解机(factorization machine)、决策树、神经网络都被广泛使用。虽然这些模型能够提取非线性特征,但是他们只能处理基本的特征以及人工视觉特征,这些特征在描述图像方面都是比较劣质的。在本文中,我们提出了一个深度神经网络从图像的航向素以及其他基本特征来直接预测一幅图像广告的CTR。我们的DNN模型包含了卷积层来提取有代表性的视觉特征,然后用全连接层在基本特征和视觉特征来学习复杂且有效的非线性特征。本文的主要贡献由以下组成:
1.本文提出了一个DNN模型,其不仅直接将图像作为输入来得到高维稀疏特征,并且能够端到端的训练。以我们所知,这是第一篇基于DNN模型来做CTR预估的文章。
2.是一个有效的方法,针对高维数据以及大数据在模型训练阶段的挑战,提到的方法有效的减少了训练时间并且使得其在普通的带GPU的PC上简单易用,甚至是大规模现实世界的训练集。
3,我们在现实世界数据集上进行了大量的实验,用了超过5千万的用户响应记录来说明我们DNN模型的提升性能。还讨论了几种深度学习技术带来的影响,并且进一步可视化了图像广告的显著图像来显示我们的模型可以学习到有效的视觉特征。
本文的组织如下,第二节介绍了相关工作,方案在第三节中进行概述,在第四节中,我们详细描述了DNN模型,并且展示了在训练阶段的挑战以及第五节中给出了我们的解决方案,第六节展示了实验结果以及相关讨论,并且在第七节中给出了结论。
深度学习之DeepCTR_第2张图片

2 相关工作

我们考虑了在我们工作中展示广告CTR预估和深度神经网络是两个高度相关的领域。

2.1 展示广告CTR预估

由于展示广告占据了在线广告市场的大量份额,大量针对CTR预估问题的方法也被提出,在“Predicting clicks: estimating the click-through rate for new ads”以及“Contextual advertising by combining relevance with click feedback.”中,作者人工从原始数据中制作了大量特征并且使用LR来预测CTR。“Simple and scalable response prediction for display advertising”也使用了LR来处理CTR问题并扩展到在一个分布式学习系统上运行几十亿的样本量和几百万的参数量。在“Predicting response in mobile advertising with hierarchical importance-aware factorization machine.”中一个重要性分级因子分解机”Factorization machines with libfm”被提出,其提供了一个合并重要性权重和分级学习的通用的潜在因子框架。在“Learning the click-through rate for rare/new ads from similar ads.”中,提升决策树被用来构建一个预测模型,在“Practical lessons from predicting clicks on ads at facebook.”中,结合决策树和LR的模型被提出,并且优于上述两个模型。在“Deep learning over multi-field categorical data: A case study on user response prediction.”中,结合了深度神经网络和FM并且也取得了提升。所有这些方法都在处理没有图片的广告的时候非常有效,然而,涉及到图像广告的时候,他们只能使用预先提取到的图像特征,在考虑不同数据集的独特属性的时候不够灵活。
因此,展示广告中的图像特征已经收到了越来越多的关注,在“The impact of visual appearance on user response in online display advertising.”和“Multimedia features for click prediction of new ads in display advertising”中,在线展示广告中的用户响应的视觉外观的影响也首先被考虑进来。他们在广告图像中提取了超过30多个人工制作的特征,使用图像和基本特征构建了一个CTR预估模型,实验显示他们的方法相较于没有使用视觉特征的模型有更好性能。“Image feature learning for cold start problem in display advertising.”是与本文最为相关的工作,其利用去首的CNN来从广告中提取图像特征,然而,有两个重要的不同之处在于他们的方法和我们的方法,首先,他们在使用CNN提取图像特征的时候没有考虑到基本的特征,第二,在预测CTR的时候,他们使用LR,这缺乏了探索图像和基本特征之间的复杂相关性。他们的图像特征中的大多信息是非常冗余的,就比如产品的类别被包含在基本特征之中。因此,他们的模型只能当结合多种特征的时候实现有限的提升,更糟的是,当数据集包含太多的产品类别的时候,它在训练的时候很难收敛。我们的模型使用一个端到端的模型来预测利用基本特征和原始图像的图像广告的CTR,其中图像特征可以看作基本特征的补充。

2.2 深度神经网络

最近几年,深度神经网络在很多领域都实现了大的突破,在计算机视觉领域,卷积神经网络是从原始图像像素中提取有效图像特征的有效工具。在语音识别领域,深度信念网络DBN被使用并且与搞死混合模型相比获得了更好的性能。与传统浅层结构模型相比,深度学习可以从海量和复杂数据红建模底层模式。具有这样的学习能力,深度学习能够被用来作为一个好的特征提取器并且应用到大多其他应用上。
在CTR预测领域中,除了2.1中提到的那些,最近DNN也能被用在一些公共CTR预测比赛中。在这些比赛中,对于参赛者只有基本的特征可用。集成4层的DNN使用全连接层和不同的非线性激活函数与特征求导的LR、因子分解机、决策树等相比有更好或相似的性能。与这些方法相比,我们的模型由于考虑到图像广告的视觉特征能够提取更加有效的特征。

3 方法概述

本文上述的,每个用户在一个广告上的每次行为记录叫做一次展示次数(impression)。由x表示。每次展示次数都对应一幅120x200的图像u,除了图像,基本的特征向量由 vRd v ∈ R d 表示,比如用户的性别,产品的类别,网页中广告位置,并且d通常而言能变成非常大,一般而言,从几千到几百万。我们的目标是在给定这些特征的情况下预测用户点击一幅图像的概率。我们将仍然使用LR来映射我们的预测的CTR值 ŷ  y ^ 到0至1之间。因此CTR预估问题可以写作:
ŷ =11+ez(1)z=f(x)2 y ^ = 1 1 + e − z ( 1 ) , z = f ( x ) ( 2 ) ,其中 f() f ( ⋅ ) 是我们从训练数据中学习得到的模型框架,也就是说,将展示次数x映射到真实值z的嵌入函数。假定我们有N个展示次数, X=[x1,x2,,xN] X = [ x 1 , x 2 , … , x N ] ,并且每个都有一个标签 yi{0,1} y i ∈ { 0 , 1 } ,这由用户的反馈决定,0意味着没有点击,1意味着点击。然后学习问题由最小化对数损失定义: L(W)=1Ni(yilogyi^+(1yi)log(1yi^))+λW2(3) L ( W ) = − 1 N ∑ i ( y i l o g y i ^ + ( 1 − y i ) l o g ( 1 − y i ^ ) ) + λ ‖ W ‖ 2 ( 3 ) ,其中 W W 是嵌入函数 f() f ( ⋅ ) 的参数, λ λ 是控制模型复杂度的正则化参数。
在这个模型中,我们需要学习的就是嵌入函数 f() f ( ⋅ ) ,传统的方法从原始图片u中提取人工制作的视觉特征,然后将其与基本特征v进行串联起来,然后学习线性或者非线性变换来获得这个嵌入函数,在本文中,我们使用一个集成的深度学习网络来直接从原始图像广告的像素和基本特征中学习到这个嵌入函数。

4 网络结构

考虑到基本的特征和原始图像来自于两种不同的领域,我们不能直接在网络中简单的串联他们。训分开训练两个网络效果也不好,因为它不能考虑这两个特征之间的相关性。因此,我们的网络采用两个不同的子网络来分别处理基本特征和原始图像,然后使用多个全连接层来得到他们之间的相关性。
正如图3描述的那样,一个称为DeepCTR的深度神经网络被设计成包含三个部分,一个部分,卷积层,将原始图像u作为输入,然后紧跟一个卷积网络,卷积层Convnet的输出是一个原始图像的特征向量。第二部分叫做basicnet,将基本特征v作为输入,然后应用一个全连接层来降维,随后,Convnet的输出和Basicnet的输出被串联成一个向量然后松紧两个全连接层,最后一层的全连接层的输出是一个真实值z,这个部分叫做Combnet。在整个网络的顶部,利用第三节提到的对数损失函数来计算损失。
深度学习之DeepCTR_第3张图片
Convnet的设计受“ResNet”以及“VGG”的启发,并且显示在图4中,网络由17个卷积层构成,第一层使用5x5的卷积核,第一层之后,有四个组,每一个都有4个带有3x3大小卷积核的卷积层,本文没有构建一个非常深的网络比如50层,因为考虑到性能和训练之间之间的权衡。我们有监督的在图像训练集上预训练了一个Convnet,我们使用两层带有1024个神经元的全连接层(fc18和fc19),一层带有96个神经元的全连接层(fc20)以及在预训练期间在Convnet之后使用了softmax。由于我们独一无二的图像集相较于Imagenet非常小(详细在第六节中描述),我们相较于“ResNet”在每个组只使用输出的一半,预训练之后,使用一个128层的全连接层连接在Convnet最后一层卷积层之后,然后我们利用对数损失Logloss端到端的训练整个DeepCTR。
深度学习之DeepCTR_第4张图片

5 加速训练

因为在线广告系统每天都有大量的新用户响应记录,所以系统频繁的更新来适应新的趋势是非常有必要的,分布式系统上的LR只需要几个小时,就可训练数十亿样本,所以在工业界十分的流行。
一个典型的深度神经网络就有几百万的参数量,因此不可能很快的训练好。随着GPU的发展,能够用一百万的训练集在一台机器上在两天内训练好一个深度卷积神经网络,然而,由于我们有超多5千万的样本量,因此对于我们的网络,时间上是不满足的,而且,基本特征的维度接近20万,相较于一个普通的深度神经网络有更多的参数。在一台机器上直接训练我们的网络粗略估计可能会用掉几百天才能收敛,即便使用多台机器也很难解决训练的问题。如果我们想部署DeppCTR到一个真正的在线系统上,我们必须很大程度上加速训练。
为了使得我们的模型训练时间少于一天变得可行,我们采用的两个策略:(1)使用稀疏全连接层;(2)一个新的数据采样方案。这两种策略的使用使得在一个真正的在线系统上部署DeepCTR变得可行。

5.1 稀疏全连接层

在CTR预估中,一个广告展示次数的基本特征包括用户信息(像性别、年龄、购买力等)还有广告信息(像广告ID,广告种类,广告位等等),这些信息通常被编码为one-hot编码形式或者特征哈希,这使得特征维度非常大。比如说,在我们数据集中,有接近20万的特征维度,因此,在Basicnet中,第一层全连接层使用基本特征作为输入,有大约6千万的参数量,这相当于AlexNet的所有参数量。然而,基本特征由于one-hot编码形式变得极其稀疏,在第一层全连接层使用稀疏矩阵能够大大减少计算复杂度和GPU内存消耗。
在我们的模型中,我们使用压缩稀疏行(CSR)格式来表达一批基本特征V,当计算网络前向传播时: Yfc1=VW.(4) Y f c 1 = V W . ( 4 ) ,在第一层全连接层使用稀疏矩阵操作,反向传播的时候,我们只需要更新那些链接到少量非零维度的权重值,根据梯度: (W)=V.(5) ∇ ( W ) = V . ( 5 ) ,前向传播和反向传播只需要时间复杂度 O(nd) O ( n d ′ ) ,其中 d d ′ 是基本特征的非零元素的数量,并且这个值远小于d,实验结果比较,是否运用稀疏全连接层对运行时间以及GPU消耗的世界演过在第6.2节。

5.2 数据采样

训练过程中其他至关重要的问题就是Convnet限制了SGD的批大小。为了训练一个鲁棒的CTR预估模型,我们经常需要上百万的广告样本,然而,Convnet要求非常大的GPU内存,使得我们的batch非常的小,比方说,几百。对于一个更小的batch大小,GPU的并行计算不能最大化大型矩阵乘法的效果,并且epoch的迭代次数也会变的非常的大。我们需要在一次epoch迭代的时候需要更多的时间来运行。虽然稀疏全连接层能够大大减少在Basicnet中前向反向传播时间,但是在这么大的数据集上训练整个网络所需要的时间仍然不可观,由于batch比较小,每次迭代的梯度也非常不稳定,使得很难收敛。在CTR预估中,由于训练数据充满噪声,这个问题就显得更加严重了。
本文中,我们提出了一个简单的但是非常有效的基于图像广告点击记录的一个固有属性的训练方法,也就是说,许多展示次数共享一个相同的图像广告。虽然数据集的整体尺寸比较大,但是独特的图片相对来说就比较少,由于稀疏全连接层可以快速处理大量的基本特征,因此我们可以为Basicnet设置大的batch size,但是为Convnet设置比较小的batch size。本文中,我们利用一个将一个相同图像广告的所有基本特征组合在一起的数据采样的方法来实现如图5。
深度学习之DeepCTR_第5张图片
假定在我们数据集中独一无二的图片集是U,与一幅图片u相关联的展示次数集称为 Xu X u 以及基本特征是 Vu V u 。每次迭代时,假定训练的batch size是n,我们从U中采样n个不同的图片集U。与每幅图像 uU u ∈ U 中一起,我们从 Vu V u 中采样k个基本特征 Vu V u ,因此每个batch我们有n张图像和kn个基本特征,在Convnet之后,我们有n个图像特征,对于每个特征向量 convu c o n v u ,我们拷贝k次来组成 Cu C u 并与 Vu V u 一起送到Combnet,在反向传播时,每个图像特征向量的梯度可以被计算为: convu=1kcCuc.(6) ∇ c o n v u = 1 k ∑ c ∈ C u ∇ c . ( 6 ) ,训练方法总结在Algorithm1以及Algorithm2中。事实上,这个策略使得我们能够在一个batch中处理kn个样本。由于稀疏全连接层只需要很少的GPU内存,我们能够设置k非常大(与图像广告的基本特征向量的总体平均数做比较)。这个策略减少了每次epoch的迭代次数到了几千次从而大大加速训练。一个更大的batch size也能使得每个batch的梯度更加稳定,从而使得模型更加容易收敛。我们也针对利用这个采样方法或者彻底的随机策略对DeepCTR的性能的影响实验。
深度学习之DeepCTR_第6张图片
深度学习之DeepCTR_第7张图片

6 实验

在本节中,进行了一系列的实验来验证DeepCTR模型的优越性。

6.1 实验设置

6.1.1 数据集

实验数据来源于商业广告平台的2015年中的任意一周。我们使用一周的六天作为我们的训练数据以及最后一天(星期五)作为测试数据。就像第3节描述的那样,每次展示次数都由一个广告x和一个标签y组成,一次展示次数包含一张图u,如图2所示以及一个基本特征向量v,训练集的大小是5千万,测试集大小是9百万。正样本的比例和负样本的比例大约为1:30.我们不在数据集中的负氧本进行任何子采样。在训练集中我们有101232张独特的图像以及在测试集中有17728张独特的图片,其中测试集上有3090张图片从未在训练集中出现过。尽管训练集和测试集图片高度重叠,但是他们都遵循真实世界数据的分布。为了使我们的实验结果更加令人信服,我们也在从未在训练集中出现过的子测试集上进行了实验,基本的特征v是one-hot编码方式,维数为153231,由以下基本特征组成:
(1)广告位。网页上一个广告的展示位置,在网页上我们有大约700个不同广告位。
(2)广告组。广告组由少部分广告组成。在广告组中的广告分享相同的产品信息但是含有不同的广告图像(如图2中,(a)(b)属于一个广告组,(c)(d)属于另一个广告组),在数据集中我们有超过150000不同的广告组。每个广告组由少于20个不同的广告组成。
(3)广告目标。广告中的目标人群,我们总共有10个目标群体。
(4)广告种类。广告中产品的类别。我们有96种不同的类别,像衣服、食物、家用电器等。
(5)用户。用户信息包含用户的性别、年龄、购买力等。
除了上述的基本特征之外,我们没有使用任何人工设计的特征。我们希望我们的模型能够自动从特征池中学习到有效的非线性特征。

6.1.2 原型

我们只使用基本特征来学习LR来作为我们的第一个原型,称之为lr basic,为了证明我们的DNN模型能有效的提取高维特征,只用基本特征来训练由LibFM实现的因子分解机FM作为第二个原型,称之为FM basic,在FM basic中,我们对参数学习使用8因子双向交互和MCMC。然后我们只使用基本特征评估了一个两层DNN模型,两层的神经元分别为128和256,这个模型能够看作是没有使用Convnet部分的DeepCTR,称之为dnn basic。我们进一步利用预训练的特征SIFT结合bag of words来代替ConvCTR网络以及使用预训练的Convnet的不同输出层来代替Convnet,分别称之为dnn sift和dnn layername(比如,dnn conv17)。

6.1.3 评价指标

我们使用两种流行的指标来评价实验结果,Logloss和ROC下的曲线面积(AUC)。Logloss能够量化预估点击概率的准确率。AUC能够测量预估的排序质量。我们的数据集来源于一个真实的商业平台,所以这些指标使用都相较于lr basic的相对数。
由于AUC的值总是大于0.5,我们移除掉这个常数0.5,然后计算相对数:
relativeAUC=(AUC(method)0.5AUC(lrbasic)0.51)×100%.(8) r e l a t i v e A U C = ( A U C ( m e t h o d ) − 0.5 A U C ( l r b a s i c ) − 0.5 − 1 ) × 100 % . ( 8 )

6.1.4 网络配置

在我们的Convnet中,使用112x112的随机裁剪以及对输入图像进行水平镜像来进行数据增强。每一组含有4个卷积层,然后进行batch normalization和ReLU非线性激活。第一层卷积层的步长是2则使得一组的输出大小变为原来的一半。对权重初始化使用”msra”,使用广告种类标签来在我们图像数据集上训练Convnet,使用SGD优化算法,batch size使用128,学习率最开始为0.01,当测试loss停滞时除10来减小。预训练的模型大约为120个epoch后收敛,网络的权重衰减率为0.0001,动量设置为0.9。
在预训练Convnet之后,我们端到端的训练DeepCTR模型。我们网络的其余部分使用和Convnet设置方法相同的初始化。我们选择batch大小为20,采样大小k为500,也就是说,我们每个batch处理10000个展示次数。学习率从0.1开始,在 6×1041×1051.4×105 6 × 10 4 , 1 × 10 5 , 和 1.4 × 10 5 迭代之后除10来减少学习率。Convnet使用一个更小的初始学习率0.001以防破坏预训练模型。整个网络的权重衰减设置为 5×105 5 × 10 − 5 。dnn basic,dnn sitf和dnn layername使用相同的学习策略。
我们在c++ caffe环境下实现网络,并作了一些修改,如稀疏全连接层。

6.2 结果分析与讨论

本节我们比较了各种方法的结果以及一些网络结构的影响。首先,我们对不同深度的模型结果进行了比较,我们画出了dnn conv13,dnn conv17,dnn fc18,dnn fc19和dnn fc20的两个指标在表1中间。从结果来看,我们发现dnn conv17和dnn fc18取得了比较好的性能。这些层中的图像特征维度是相对高的但不是高度不变的。与DNN网络只有全连接层相比,他们在相同类别中有更多的判别信息。与先前的层相比,他们包含更加充足的高维特征,在描述图像中的对象方面更加有优势。因此我们选择conv17在我们的DeepCTR模型中。我们没有选择fc18,因为它需要更多的计算量。我们把我们的DeepCTR与“Image feature learning for cold start problem in display advertising.”进行比较,然而此方法在我们的数据集上无法收敛。我们认为原因是我们的数据集中产品的类别太多了,然而在他们方法上的数据集只有5个不同的类别可用。
与其他原型相比较的结果也展示在表1中,从结果来看,深度神经网络和图像特征都能提升CTR预测准确率。FM basic和dnn basic与lr basic相比几乎都能实现相同的提升,说明这两个模型都能有效提取非线性基本特征。对于图像部分,与人工特征(SIFT)相比较,深度特征在图像描述方面有更强的能力,大大提升了预估准确率。我们的DeppCTR模型是端到端的学习方案,集成多个深度网络通畅能够带来更好的性能,所以我们训练了3个DeepCTR模型,然后平均他们的预测值,得到了最好的AUC和Logloss,与lr basic相比较,在广告系统中(通过在线实验)提升了1~2%的CTR,对于每天1亿的广告业务带来了100万的盈利增长。
这里写图片描述
为了使我们的结论更加可信,我们也在从未在训练集中出现过的3090张测试集子集中进行了实验,三种代表性模型,dnn basic,dnn sift,单个DeepCTR的相关AUC以及Logloss列在表2中。显然,我们的DeepCTR有着大幅度优势。我们同样也注意到dnn basic的AUC减少了,而dnn sift以及DeepCTR相较于整个测试集都有提升。按道理说,3000测试子集中的广告图像对于广告系统都是新添加进来的,并且广告组都没有在训练集中出现过,由于广告组在训练集中没有出现过,因此在3000测试子集上的预测效果会差一些。然而,尽管我们丢失了一些基本特征,但是视觉特征带来了更多的补充信息。这也就是为什么dnn sift和DeepCTR在3000测试集上相较于整个测试集上相较于原型方法提升很多的原因。实验显示视觉特征可用于识别具有相似特征的广告,从而更准确的预测新图像广告的CTR,这也验证了我们的模型确实具有很强的泛化能力。
深度学习之DeepCTR_第8张图片
对于不同的真实世界问题,由于问题的内在特征,可能需要不同的方法,包含网络设计和数据分布,因此,基于深度学习的解决方法通常会比较和分析这些技术对特定问题的最佳实践的影响和效果。因此,我们经验性的进一步探索了不同的深度学习方法对我们DeepCTR的影响。
首先,我们发现在Combnet中加入batch normalization能够加速训练并且大大提升性能,如图6所示。
深度学习之DeepCTR_第9张图片
为了探讨原因,我们展示了Convnet和Basicnet的输出直方图,如图7所示,我们可以从直方图看到在范围和方差看到两个输出有着很大的差别,简单的串联两个不同种类的数据流可能会导致全连接层很难收敛。
深度学习之DeepCTR_第10张图片
Dropout是一个在深度神经网络中非常有效的防止过拟合的方法,大多深度卷积神经网络移除掉dropout因为batch normalization能够正则化模型,然而,在我们DeepCTR模型中,我们发现没有用dropout仍然会面临过拟合的问题。我们在最后两层全连接层中比较了使用和没有使用dropout的模型的损失曲线,如图8所示,虚线代表训练loss,实线代表测试loss,我们可以看到含有dropout的模型有更小的测试Logloss,尽管需要更多的时间来达到最小的测试loss。
深度学习之DeepCTR_第11张图片
我们也需要评估稀疏全连接层和我们的数据采样方法的性能,我们画出了相较于稠密层的稀疏全连接层的计算时间和内存开销(如表3),由于稀疏全连接层不改变网络中的任何计算结果,因此训练和测试的loss曲线完全相同,因此不绘制。从表3中我们可发现稠密层相较于稀疏层要求更多的计算时间和内存,使用稀疏层能够在训练时使用一个大的batch size,这能够加速训练时间并且使得网络更加容易收敛。
深度学习之DeepCTR_第12张图片
最后,我们探索了相较于彻底地打乱,我们的数据采样方法是否会引起模型性能的下降。我们只在dnn conv17模型上评估了采样方法,也就是说,我们在Convnet被冻结的一个模型上进行实验。理想而言,我们应该使用没有进行数据采样的没有冻结Convnet来作为对照试验,然而,就像5.2节中提到的那样,训练一个没有冻结的Convnet限制了我们的batch size小于200,因为Convnet要求更多的GPU内存,然而当Convnet被冻结后能够在一个batch中处理10000个样本。在一个小的batch size情况下训练会花费更多的时间,同样的,在是否进行采样的主要区别在于样本是否被彻底打乱,但是是否冻结Convnet不影响样本的顺序。因此,我们相信我们的DeepCTR模型与dnn conv17模型表现相似。从表4可以看到模型的性能不受数据采样方法的影响。
深度学习之DeepCTR_第13张图片

同时,我们的方法相较于并没有使用数据采样的方法训练时间减少了非常非常多。使用数据采样方法,在一块含有5G显存的NVIDIA TESLA k20m GPU端到端的训练我们的DeepCTR模型只用了大约12个小时就收敛了,这就能够实现每天更新的在线广告系统。

6.3 可视化Convnet

可视化CNN能够帮助我们更好的理解我们已经学到的东西,在本节,我们使用“Deep inside convolutional networks: Visualising image classification models and saliency maps.”中的显著图可视化方法。我们使用一个线性打分模型来近似我们的DeepCTR对点击或者没点进行打分: z(U)wTU+b.(9) z ( U ) ≃ w T U + b . ( 9 ) ,其中图像U是矢量化的形式(一维),w和b分别代表模型的权重和偏置。确实,公式(9)可以看作是DeepCTR模型的一阶泰勒展开式,对于点击的概率,我们使用权值的大小来显示图像U中对应像素值的重要性,其中w是z关于图像U在图像中的点 U0 U 0 的导数: w=zUU0.(10) w = ∂ z ∂ U | U 0 . ( 10 ) 在我们的例子中,图像U是RGB格式的,在像素点 Ui,j U i , j 有三个通道,为了得到每个像素点单一类显著性值 Mi,j M i , j ,我们在RGB通道c上使用最大绝对值 wi,j w i , j Mi,j=maxcwi,j(c).(11) M i , j = m a x c | w i , j ( c ) | . ( 11 ) 一些典型的可视化例子被展示成热力图如图10所示,在这些例子中,更明亮的区域对于影响广告的CTR扮演着更加重要的角色,我们能够看到在广告中的主要对象通常更加重要,然而,一些低维特征比如文本信息,字符甚至是背景信息能够对广告CTR产生影响。在图9中,能够清楚的看到不管是低维特征还是高维特征都具有有效性。从Convnet的可视化结果来看,我们能够发现展示广告CTR预估任务与在高层以高维特征为主的目标识别任务有很大的不同,这也对为什么一个端到端的训练能够提升模型给了一个解释,显然,Convnet能够被训练用来提取对于CTR预估更加有用的特征。
可视化为我们提供了对于广告图像中视觉特征影响的直观理解,这有助于设计者更好的设计选择。比如,我们能够根据这个模型的显著图决定是否在一个广告中添加其他的模型。
深度学习之DeepCTR_第14张图片

7 结论

CTR预估在在线展示广告商业中扮演着重要的角色,对于广告的CTR精准预估不仅仅能够增加网页出版商的收入,也能提升用户体验。在本文,我们提出了一个端到端统一的深度网络来对图像广告进行CTR预估,这个网络由Convnet、Basicnet和Combnet组成,Convnet被用于自动提取图像特征,同时Basicnet被用来减少基本特征的维度,Combnet能够从这两种特征中学习到复杂而有效的非线性特征。稀疏全连接层和数据采样理论的使用能大大加速训练过程。我们在5千万的真实世界数据集中对DeepCTR模型进行评估,经验性的结论描述了我们DeepCTR模型的有效性和效率。

你可能感兴趣的:(深度学习)