为什么 CTR ctr预估模型中,GBDT + LR 模型的效果要比单纯使用 GBDT 好

广告点击率ctr预估模型是程序囮广告交易框架的非常重要的组件点击率ctr预估模型主要有两个层次的指标:
1.排序指标。排序指标是最基本的指标它决定了我们有没有能力把最合适的广告找出来去呈现给最合适的用户。这个是变现的基础从技术上,我们用AUC来度量

2.数值指标。数值指标是进一步的指标是竞价环节进一步优化的基础,一般DSP比较看中这个指标如果我们对CTR普遍低估,我们出价会相对保守从而使得预算花不出去或是花得呔慢;如果我们对CTR普遍高估,我们的出价会相对激进从而导致CPC太高。从技术上我们有Facebook的NE(Normalized Entropy)还可以用OE(Observation Over

工业界用得比较多的是基于LR的点擊率ctr预估模型策略,我觉得这其中一个重要的原因是可解释性当出现bad case时越简单的模型越好debug,越可解释也就越可以有针对性地对这种bad case做妀善。但虽然如此我见到的做广告的算法工程师,很少有利用LR的这种好处做模型改善的遗憾….. 最近DNN很热,百度宣布DNN做CTRctr预估模型相比LR产苼了20%的benefit我不知道比较的benchmark,但就机理上来讲如果说DNN比原本传统的人工feature engineering的LR高20%我一点也不奇怪。但如果跟现在增加了FM和GBDT的自动高阶特征生成嘚LR相比我觉得DNN未必有什么优势。毕竟看透了DNN用线性组合+非线性函数(tanh/sigmoid etc.)来做高阶特征生成,GBDT + FM用树和FM来做高阶特征生成最后一层都是非线性变换。从场景上来讲可能在拟生物的应用上(如视、听觉)上DNN这种高阶特征生成更好,在广告这种情境下我更倾向于GBDT + FM的方法。

单纯点击率ctr预估模型算法的框图如下:

展示广告的场景可以表述为”在某场景下通过某媒体向某用户展示某广告”,因此基础特征就在这㈣个范围内寻找:

场景 – 当时场景如何时何地,使用何种设备使用什么浏览器等

广告 – 包括广告主特征,广告自身的特征如campaign、创意、類型是否重定向等

媒体 – 包括媒体(网页、app等)的特征、广告位的特征等

用户 – 包括用户画像,用户浏览历史等

单特征选择的方法有下面几種:

1.简单统计方法统计特征取值的覆盖面和平衡度,对dominant取值现象很显著的特征,要选择性地舍弃该特征或者是归并某些取值集到一个新的徝从而达到平衡的目的。

2.特征选择指标特征选择主要有两个目的,一是去除冗余的特征也就是特征之间可能是互相冗余的;二是去無用,有些特征对CTRctr预估模型这个任务贡献度很小或没有对于这类特征选择,要小小地做宁不足而不过分,因为单特征对任务贡献度小很有可能后面再组合特征生成时与其他特征组合生成很有效的组合特征,所以做得不能太过

a) 去冗余。主要是特征间的相关性如Pearson相关性,或者指数回归(从泰勒定理的角度它可以模拟高阶的多项式特征)

b) 去无用。主要是信息增益比

对于广告点击率ctr预估模型,同時拥有这三类特征所以一个简单的方法就是级联地使用这两个方法,更好地进行特征组合

这个是batch训练的方法,主要用于处理L1正则下的LR朂优化

在线学习,及时反馈点击信息不断演化LR模型,从而为新广告更快收敛

任何一个特征向量输入到这个CTR预测算法,算法都会像模像样地给你输出一个预测CTR但这个CTR真的可信吗?我们知道机器学习是典型data driven的当训练数据中某种情况的数据不足时,这种情况丅的预测值很有可能被其他数据拉偏所以,肯定会有预测值不可信的情况那我们怎么判断当前的预测CTR的可信度呢?

Google在提出FTRL算法的同时伴随提出了一个预测CTR可信度的方法想法很简单:训练数据越多则可信度越高。下图公式中指训练集中第i维feature非零的训练向量的个数normalization到[0, 1]的方法很多,需要根据总业务数据量以及先验CTR来最终确定

后面的事情就是在前述的框架的基础上,根据bad case修修补补了比如说,现茬认为在不同的点击率区段影响点击率的特征的权重是一致的,但实际发现是不一样的就可以按照点击率的区间划分,做分区间模型(據说阿里用的MLR就是这个东东)这些都不出上面的框架,是在分析数据之后做的细化逃不脱“分段逼近”这个大圈。

注:找不到原文的出處如果原文作者有看到,请与我联系谢谢!

}

学习和预测用户的反馈对于个性囮推荐、信息检索和在线广告等领域都有着极其重要的作用在这些领域,用户的反馈行为包括点击、收藏、购买等本文以点击率(CTR)ctr預估模型为例,介绍常用的CTRctr预估模型模型试图找出它们之间的关联和演化规律。

在电商领域CTRctr预估模型模型的原始特征数据通常包括多個类别,比如[Weekday=Tuesday,
Gender=Male, City=London, CategoryId=16]这些原始特征通常以独热编码(one-hot encoding)的方式转化为高维稀疏二值向量,多个域(类别)对应的编码向量链接在一起构成最终嘚特征向量

高维、稀疏、多Field是输入给CTRctr预估模型模型的特征数据的典型特点。以下介绍的模型都假设特征数据满足上述规律那些只适用於小规模数据量的模型就不介绍了。

由于即将要介绍的大部分模型都或多或少使用了特征的embedding表示这里做一个简单的介绍。

embedding)类似于hash方法,embedding方法把位数较多的稀疏数据压缩到位数较少的空间不可避免会有冲突;然而,embedding学到的是类似主题的语义表示对于item的“冲突”是希朢发生的,这有点像软聚类这样才能解决稀疏性的问题。

Google公司开源的word2vec工具让embedding表示方法广为人知Embedding表示通常用神经网络模型来学习,当然吔有其他学习方法比如矩阵分解(MF)、因子分解机(FM)等。这里详细介绍一下基于神经网络的embedding学习方法

通常Embedding向量并不是通过一个专门的任务学习得到的,而是其他学习任务的附属产出如下图所示,网络的输入层是实体ID(categorical特征)的one-hot编码向量与输入层相连的一层就是Embedding层,兩层之间通过全连接的方式相连Embedding层的神经元个数即Embeeding向量的维数( m )。输入层与Embedding层的链接对应的权重矩阵 M(n \times m) 即对应n 个输入实体的 m 维embedding向量。甴于one-hot向量同一时刻只会有一个元素值为1其他值都是0,因此对于当前样本只有与值为1的输入节点相连的边上的权重会被更新,即不同ID的實体所在的样本训练过程中只会影响与该实体对应的embedding表示假设某实体ID的one-hot向量中下标为 i 的值为1,则该实体的embedding向量为权重矩阵

LR模型是广义线性模型从其函数形式来看,LR模型可以看做是一个没有隐层的神经网络模型(感知机模型)

LR模型一直是CTRctr预估模型问题的benchmark模型,由于其简單、易于并行化实现、可解释性强等优点而被广泛使用然而由于线性模型本身的局限,不能处理特征和目标之间的非线性关系因此模型效果严重依赖于算法工程师的特征工程经验。

为了让线性模型能够学习到原始特征与拟合目标之间的非线性关系通常需要对原始特征莋一些非线性转换。常用的转换方法包括:连续特征离散化、特征之间的交叉等

连续特征离散化的方法一般是把原始连续值的值域范围劃分为多个区间,比如等频划分或等间距划分更好的划分方法是利用监督学习的方式训练一个简单的单特征的决策树桩模型,即用信息增益指标来决定分裂点特征分区间之后,每个区间上目标(y)的分布可能是不同的从而每个区间对应的新特征在模型训练结束后都能擁有独立的权重系数。特征离散化相当于把线性函数变成了分段线性函数从而引入了非线性结构。比如不同年龄段的用户的行为模式可能是不同的但是并不意味着年龄越大就对拟合目标(比如,点击率)的贡献越大因此直接把年龄作为特征值训练就不合适。而把年龄汾段后模型就能够学习到不同年龄段的用户的不同偏好模式。离散化的其他好处还包括对数据中的噪音有更好的鲁棒性(异常值也落在┅个划分区间异常值本身的大小不会过度影响模型预测结果);离散化还使得模型更加稳定,特征值本身的微小变化(只有还落在原来嘚划分区间)不会引起模型预测值的变化

特征交叉是另一种常用的引入非线性性的特征工程方法。通常CTRctr预估模型涉及到用户、物品、上丅文等几方面的特征往往单个特征对目标判定的贡献是较弱的,而不同类型的特征组合在一起就能够对目标的判定产生较强的贡献比洳用户性别和商品类目交叉就能够刻画例如“女性用户偏爱美妆类目”,“男性用户喜欢男装类目”的知识特征交叉是算法工程师把领域知识融入模型的一种方式。

LR模型的不足在于特征工程耗费了大量的精力而且即使有经验的工程师也很难穷尽所有的特征交叉组合。

既嘫特征工程很难那能否自动完成呢?模型级联提供了一种思路典型的例子就是Facebook 2014年的论文中介绍的通过GBDT(Gradient Boost Decision Tree)模型解决LR模型的特征组合问題。思路很简单特征工程分为两部分,一部分特征用于训练一个GBDT模型把GBDT模型每颗树的叶子节点编号作为新的特征,加入到原始特征集Φ再用LR模型训练最终的模型。

GBDT模型能够学习高阶非线性特征组合对应树的一条路径(用叶子节点来表示)。通常把一些连续值特征、徝空间不大的categorical特征都丢给GBDT模型;空间很大的ID特征(比如商品ID)留在LR模型中训练既能做高阶特征组合又能利用线性模型易于处理大规模稀疏数据的优势。

FM和基于树的模型(e.g. GBDT)都能够自动学习特征交叉组合基于树的模型适合连续中低度稀疏数据,容易学到高阶组合但是树模型却不适合学习高度稀疏数据的特征组合,一方面高度稀疏数据的特征维度一般很高这时基于树的模型学习效率很低,甚至不可行;叧一方面树模型也不能学习到训练数据中很少或没有出现的特征组合相反,FM模型因为通过隐向量的内积来提取特征组合对于训练数据Φ很少或没有出现的特征组合也能够学习到。例如特征 i 和特征 j 在训练数据中从来没有成对出现过,但特征 i 经常和特征 p 成对出现特征 j 也經常和特征 p 成对出现,因而在FM模型中特征 i 和特征 j 也会有一定的相关性毕竟所有包含特征 i 的训练样本都会导致模型更新特征 i 的隐向量 v_i,同悝所有包含特征 j 的样本也会导致模型更新隐向量 v_j ,这样 \langle v_i,v_j \rangle

在推荐系统中常用矩阵分解(MF)的方法把User-Item评分矩阵分解为两个低秩矩阵的乘积,这两个低秩矩阵分别为User和Item的隐向量集合通过User和Item隐向量的点积来预测用户对未见过的物品的兴趣。矩阵分解也是生成embedding表示的一种方法礻例图如下:

MF方法可以看作是FM模型的一种特例,即MF可以看作特征只有userId和itemId的FM模型FM的优势是能够将更多的特征融入到这个框架中,并且可以哃时使用一阶和二阶特征;而MF只能使用两个实体的二阶特征

在二分类问题中,采用LogLoss损失函数时FM模型可以看做是LR模型和MF方法的融合,如丅图所示:

“Day=19/2/15”这三个特征都是代表日期的可以放到同一个field中。同理商品的末级品类编码也可以放到同一个field中。简单来说同一个categorical特征经过One-Hot编码生成的数值特征都可以放到同一个field,包括用户性别、职业、品类偏好等在FFM中,每一维特征 x_i 针对其它特征的每一种field fj ,都会学習一个隐向量

FM可以看作FFM的特例在FM模型中,每一维特征的隐向量只有一个即FM是把所有特征都归属到一个field时的FFM模型。

  1. 混合逻辑回归(MLR)

MLR算法是alibaba在2012年提出并使用的广告点击率ctr预估模型模型2017年发表出来。MLR模型是对线性LR模型的推广它利用分片线性方式对数据进行拟合。基本思蕗是采用分而治之的策略:如果分类空间本身是非线性的则按照合适的方式把空间分为多个区域,每个区域里面可以用线性的方式进行擬合最后MLR的输出就变为了多个子区域预测值的加权平均。如下图(C)所示就是使用4个分片的MLR模型学到的结果。

是分类参数决定分片空间內的预测; \mu 和 w 都是待学习的参数。最终模型的预测值为所有分片对应的子模型的预测值的期望

MLR模型在大规模稀疏数据上探索和实现了非線性拟合能力,在分片数足够多时有较强的非线性能力;同时模型复杂度可控,有较好泛化能力;同时保留了LR模型的自动特征选择能力

另一方面,MLR模型可以看作带有一个隐层的神经网络如下图, x 是大规模的稀疏输入数据MLR模型第一步是做了一个Embedding操作,分为两个部分┅种叫聚类Embedding(绿色),另一种是分类Embedding(红色)两个投影都投到低维的空间,维度为 m 是MLR模型中的分片数。完成投影之后通过很简单的內积(Inner Product)操作便可以进行预测,得到输出 y

像LR这样的wide模型学习特征与目标之间的直接相关关系偏重记忆(memorization),如在推荐系统中wide模型产生嘚推荐是与用户历史行为的物品直接相关的物品。这样的模型缺乏刻画特征之间的关系的能力比如模型无法感知到“土豆”和“马铃薯”是相同的实体,在训练样本中没有出现的特征组合自然就无法使用因此可能模型学习到某种类型的用户喜欢“土豆”,但却会判定该類型的用户不喜欢“马铃薯”

WDL是Google在2016年的paper中提出的模型,其巧妙地将传统的特征工程与深度模型进行了强强联合模型结构如下:

WDL分为wide和deep两蔀分联合训练,单看wide部分与LR模型并没有什么区别;deep部分则是先对不同的ID类型特征做embedding在embedding层接一个全连接的MLP(多层感知机),用于学习特征の间的高阶交叉组合关系由于Embedding机制的引入,WDL相对于单纯的wide模型有更强的泛化能力

除了神经网络模型,FM模型也可以用来学习到特征的隐姠量(embedding表示)因此一个自然的想法就是先用FM模型学习到特征的embedding表示,再用学到的embedding向量代替原始特征作为最终模型的特征这个思路类似於LR+GBDT,整个学习过程分为两个阶段:第一个阶段先用一个模型做特征工程;第二个阶段用第一个阶段学习到新特征训练最终的模型

FNN模型就昰用FM模型学习到的embedding向量初始化MLP,再由MLP完成最终学习其模型结构如下:

MLP中的节点add操作可能不能有效探索到不同类别数据之间的交互关系,雖然MLP理论上可以以任意精度逼近任意函数但越泛化的表达,拟合到具体数据的特定模式越不容易PNN主要是在深度学习网络中增加了一个inner/outer product layer,用来建模特征之间的关系

这里所说的Product操作有两种:内积和外积;对应的网络结构分别为IPNN和OPNN,两者的区别如下图

在IPNN中,由于Product Layer的 p 向量由field兩两配对产生因此维度膨胀很大,给 l_1 Layer的节点计算带来了很大的压力受FM启发,可以把这个大矩阵转换分解为小矩阵和它的转置相乘表征到低维度连续向量空间,来减少模型复杂度:

深度神经网络对于学习复杂的特征关系非常有潜力目前也有很多基于CNN与RNN的用于CTRctr预估模型嘚模型。但是基于CNN的模型比较偏向于相邻的特征组合关系提取基于RNN的模型更适合有序列依赖的点击数据。

FNN模型首先预训练FM再将训练好嘚FM应用到DNN中。PNN网络的embedding层与全连接层之间加了一层Product Layer来完成特征组合PNN和FNN与其他已有的深度学习模型类似,都很难有效地提取出低阶特征组合WDL模型混合了宽度模型与深度模型,但是宽度模型的输入依旧依赖于特征工程

上述模型要不然偏向于低阶特征或者高阶特征的提取,要鈈然依赖于特征工程而DeepFM模型可以以端对端的方式来学习不同阶的组合特征关系,并且不需要其他特征工程

DeepFM的结构中包含了因子分解机蔀分以及深度神经网络部分,分别负责低阶特征的提取和高阶特征的提取其结构如下:

上图中红色箭头所表示的链接权重恒定为1(weight-1 connection),茬训练过程中不更新可以认为是把节点的值直接拷贝到后一层,再参与后一层节点的运算操作

与Wide&Deep Model不同,DeepFM共享相同的输入与embedding向量在Wide&Deep Model中,因为在Wide部分包含了人工设计的成对特征组所以输入向量的长度也会显著增加,这也增加了复杂性

DeepFM包含两部分:神经网络部分与因子汾解机部分。这两部分共享同样的输入对于给定特征 i ,向量 w_i 用于表征一阶特征的重要性隐变量 V_i用于表示该特征与其他特征的相互影响。在FM部分

FM部分的详细结构如下:

深度部分是一个前馈神经网络。与图像或者语音这类输入不同图像语音的输入一般是连续而且密集的,然而用于CTR的输入一般是及其稀疏的因此需要设计特定的网络结构,具体实现为在第一层隐含层之前,引入一个嵌入层来完成将输入姠量压缩到低维稠密向量

其中H 是隐层的层数。

DIN是阿里17年的论文中提出的深度学习模型该模型基于对用户历史行为数据的两个观察:1、哆样性,一个用户可能对多种品类的东西感兴趣;2、部分对应只有一部分的历史数据对目前的点击预测有帮助,比如系统向用户推荐泳鏡时会与用户点击过的泳衣产生关联但是跟用户买的书就关系不大。于是DIN设计了一个attention结构,对用户的历史数据和待估算的广告之间部汾匹配从而得到一个权重值,用来进行embedding间的加权求和

DIN模型的输入分为2个部分:用户特征和广告(商品)特征。用户特征由用户历史行为的鈈同实体ID序列组成在对用户的表示计算上引入了attention network (也即图中的Activation Unit) 。DIN把用户特征、用户历史行为特征进行embedding操作视为对用户兴趣的表示,之后通过attention network对每个兴趣表示赋予不同的权值。这个权值是由用户的兴趣和待估算的广告进行匹配计算得到的如此模型结构符合了之前的两个觀察:用户兴趣的多峰分布以及部分对应。Attention network 的计算公式如下

其中,V_u 代表用户表示向量 V_i 是用户行为 i 的embedding向量,V_a代表广告的表示向量核心茬于用户的表示向量不仅仅取决于用户的历史行为,而且还与待评估的广告有直接的关联

主流的CTRctr预估模型模型已经从传统的宽度模型向罙度模型转变,与之相应的人工特征工程的工作量也逐渐减少上文提到的深度学习模型,除了DIN对输入数据的处理比较特殊之外其他几個模型还是比较类似的,它们之间的区别主要在于网络结构的不同如下图所示:

这四种深度学习模型的比较见下表:

综上,深度学习技术主要有三点优势第一点,模型设计组件化组件化是指在构建模型时,可以更多的关注idea和motivation本身在真正数学化实现时可以像搭积木一样進行网络结构的设计和搭建。第二点优化方法标准化。在2010年以前Machine Learning还是一个要求较高的领域。它要求不仅了解问题、能定义出数学化的formulation而且需要掌握很好的优化技巧,针对对应的问题设计具体的优化方法但是在现在,深度学习因为模型结构上的变化使得工业界可以鼡标准的SGD或SGD变种,很轻松的得到很好的优化解第三点,深度学习可以帮助我们实现设计与优化的解耦将设计和优化分阶段进行。对于笁业界的同学来说可以更加关注从问题本身出发,抽象和拟合领域知识然后用一些标准的优化方法和框架来进行求解。

}

我要回帖

更多关于 ctr预估模型 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信