-->

AI内参_87_083_Facebook的广告点击率预估模型

你好,我是洪亮杰。

今天我和你分享的主题是facebook的广告点击率预估模型。

上一篇文章,我们讲了整个计算广告领域最核心的一个问题。

广告回馈预估。

广告回馈预估就是预测用户与广告的交互,以及达成交易这种行为的概率,也就是点击率预估和转化率预估。

广告回馈预估存在着数据稀疏的难点和挑战。

目前在这个领域比较流行的模型,有对数几率回归和数模型等。

今天我们就来看一个广告回馈预估的实例。

Facebook的广告点击率预估,我们会结合二零一四年发表的一篇论文。

Facebook的广告点击率预估实践经验来进行分析。

我们先来理解一下facebook的广告预估facebook的广告不是我们之前介绍过的搜索广告或者展示广告的简单应用,而是社交广告。

可以说,社交广告是最近十年慢慢崛起的一种新的广告类型。

在论文发表的时候,也就是二零一四年facebook有七点五一日活跃用户和超过一百万的广告商,这个数字在当时是相当惊人的。

而今天在facebook上活跃的大约有十四点五亿用户和五百万广告商。

因此,广告系统所需要应对的规模是成倍增加的。

我们说facebook的广告是社交广告,也就是说这些广告不依赖于用户输入的搜索关键词。

从facebook的角度来说,广告商在其平台上投放广告的巨大优势在于能够精准的根据用户的地理位置、年龄、性别等重要信息进行有针对性的投放。

因此,这些信息能够帮助平台选择什么样的广告,适合什么样的人群。

那这里的难点就是对于某一个人群来说,可能符合的广告数量是巨大的这对广告的回馈预估,以及整个系统都是一个不小的挑战。

在我们详细解释facebook点击率系统的一些核心组件之前,我们首先来看一看facebook的研究人员是怎么评测他们的系统的。

我们之前提到过,广告系统中的一个巨大挑战,就是数据的不均衡复利,也就是用户没有点击过的广告非常多。

而正例也就是点击过的广告相对比较少,这个比例根据不同的广告系统会不太一样。

但是大体说来复利与正例的比大概是十比一,一百比一,甚至一千比一。

在这样的情况下,如果把点击率预估当做是一个分类问题,按照一般分类问题的评价标准,例如准确率,我们只要预测绝大多数甚至是全部的实力为复利,那么就可以取得很高的精准率。

因此,单独看准确率并不是一个很好的评测标准。

这个时候一个比较通行的评测不均衡,数据分类问题的指标是曲线下面积,或者简称为AUC.这个评测办法可以算是一种替代方法。

简单来说,AOC就是看我们是不是能够把正例给排序到复利上面。

也就是说,如果每一个正例和负力都有一个预测数值,那么我们按照这个数值排序去数,每一个正例下面有多少负利。

然后对所有正例所对应的数取平均AOC的数值高,则代表我们可以把绝大多数正例排序到复利前面。

当然AUC也不是万能的。

Aoc的一个最大问题就是它并不在乎所有实例的绝对预测数值,而只在乎它们的相对位置。

这在广告系统中可以说是一个非常大的缺陷。

当然,之前也提过,有很多广告系统组件依赖于对于广告点击率的精确预估,比如收费系统、流量预测等。

因此仅有一个相对位置的正确是不够的。

在这篇论文中,facebook团队提到了一个概念,叫归一化的交叉熵,简称NE用于衡量广告系统的好坏。

当e实际上是一个比值,比值的分母,是数据中观测到的实际的点击率的数值,也可以叫做数据的背景估计。

而分子是某一个模型对点击率的估计。

这样做的归一化目的就是来看,在去除了背景估计的情况下,对点击率的估计是否依然好或者坏。

下面我们来看facebook的点击率预估模型。

Facebook的研究人员在这篇论文中提出的点击率预估模型分为两个层次。

也就是说,从最初的模型特性组入,然要经过两个不同的模型才对点击率做出最终的预测。

这个两层架构对后来的很多点击率预估模型有巨大的影响。

我们首先来看第一层模型,这里的输入是最初的特性,其中连续数值的特性已经被转换成了离散的数值。

然后这些离散的数值经过了一个GBDT数来进行特性转换。

这里为什么会用GBDT呢?主要有两层意义。

第一,GBDT可以对特性进行非线性组合。

也就是说GBDT的输出一定是之前特性的非线性的转换。

这是由数模型原本的性质所带来的这个性质,对于线性模型来说会有巨大的优势。

第二,经过GPDT转换之后,因为数模型其实选择出了对目标有用的特性,因此这里还起到一个特性筛选的作用。

也就是说,经过GPDT的模型,最后剩下的特性肯定是要远小于最初的输入特性的,毕竟有作用的特性是少数的。

在经过了GBDT之后,facebook的研究者用树模型最后的叶节点当做新的特性,然后再学习了一个线性的分类模型。

这里的思想其实和后来流行的深度学习的想法很类似,也就是先对输入特性进行非线性转换,然后再经过一个线性分类器进行最后的预测。

这个第二层的线性分类器,可以用类似SGD的方法进行在线学习,因此学习到这样一个模型就相对比较容易。

在论文的实验中,作者们不仅展示了两层模型的优势,并且还讨论了很多选取特性方面的经验以及训练模型的经验。

比如广告过去的历史信息非常重要,而绝大多数重要的特性都和历史信息有关。

今天我为你介绍了facebook的广告点击率预估的核心算法。

一起来回顾一下要点。

第一,facebook的广告是社交广告,有其自身的特点和难点。

第二,facebook对广告进行评测的指标主要有AUC和NE.第三,facebook提出了两层模型的架构,其主要思想是先经过GPDT来进行特性转化,再经过一个线性分类器进行最后的预测,最后给你留一个思考题。

对于两层架构来说,除了模型性能上的优势以外,在训练的方便程度上,这样的架构还有什么优势或者劣势呢?欢迎你给我留言,和我一起讨论。