要提高在线广告的效果,受众定向是最重要的核心技术之一。
12.1 受众定向技术分类
首先按照其有效性和在广告信息接受过程中起作用的阶段给出一些市场上比较流行的定向方式,如下图所示。
注:这里建议结合计算广告第二章提到的广告接受过程来理解https://www.jianshu.com/p/169256d037f4
总体上看,按照计算框架的不同,这些受众定向技术可以分为以下三种类型。
(1)用户标签,即可以表示成t(u)形式的标签,这是以用户历史行为数据为依据,为用户打上的标签。
(2)上下文标签,即可以表示成t(c)形式的标签,这是根据用户当前的访问行为得到的即时标签。
(3)定制化标签,即可以表示成t(a,u)形式的标签,这也是一种用户标签,不同之处在于是针对某一特定广告主而言的,因而必须根据广告主的某些属性或数据来加工。
以上各种定向中,地域定向、频道定向和上下文定向属于t(c)的定向方式;人口属性定向、行为定向属于t(u)的定向方式;而重定向和新客推荐(look-alike)则是t(a,u)的定向方式。各种定向的标签被应用于根据用户和环境信息选取广告候选的过程,因而对广告投送的结果有比较显著的影响。t(c)和t(u)两种定向方式,一个是根据当前环境信息,一个是根据历史日志数据,因而在技术方案上有比较大的区别。
12.2 上下文定向(t(c))
从打标签的方法上来看,上下文定向主要有以下几种思路。
(1)用规则将页面归类到一些频道或主题分类。例如,将auto.sohu.com下的网页归在“汽车”这个分类中。这种方法相对简单。
(2)提取页面中的关键词。这是在将搜索引擎的关键词匹配技术推广到媒体广告上时自然产生的,也是上下文定向的基本方法。
(3)提取页面入链(即进入当前地址的源链接)锚文本中的关键词。这需要一个全网的爬虫作支持,因此已经超出了一般意义下广告系统的范畴,有兴趣的读者可以参考搜索引擎方面的有关文献。
(4)提取页面流量来源中的搜索关键词。这种方法除了页面内容,也需要页面访问的日志数据作支持,从技术方案上看更接近后面介绍的行为定向。
(5)用主题模型将页面内容映射到语义空间的一组主题上,这样做的目的是为了泛化广告主的需求,提高市场的流动性和竞价水平。
确定了对上下文页面打标签的方法以后,在在线广告投放时,页面标签系统需要对广告投放机查询的某一个URL快速返回其对应的标签。复杂的打标签计算是不可能马上完成的,不过在广告的问题中,某一次展示时标签的缺失并不是致命性的。根据广告的这一特点,可以用一种半在线的方式实现页面抓取和打标签的逻辑。
半在线抓取系统
半在线抓取系统的工作原理,简单来说就是,当在线的广告请求到来时进行如下操作。
(1)如果该请求的上下文URL在缓存中存在,那么直接返回其对应的标签。
(2)如果该URL在服务中不存在,为了广告请求能及时得到处理,当时返回空的标签集合,同时立刻向后台的抓取队列中加入此URL,这样在较短的一段时间(通常为秒至分钟量级)之后该URL就被抓取下来并打上标签存入缓存中。
(3)考虑到页面内容可能会不定期更新,可以设置缓存合适的TTL(Time to Live)以做到自动更新标签。
半在线的上下文抓取系统非常典型地揭示了在线广告系统弱一致的业务需求:只要保证大多数的广告决策最优正常,很少量的次优决策甚至随机决策都是可以接受的。
12.3 文本主题挖掘(t(c))
根据上下文内容进行受众定向的粒度可以精细到关键词,也可以粗略到页面的类型。除了这两种极端情况,我们也可以考虑将页面内容直接映射到一组有概括性意义的主题上,比如将一个讲编程语言的博客页面映射到“IT 技术”这样的主题上。假设这一文档集合主题模型对应着{1,2,···,T}这一组主题,我们的目的就是对每个文档得到其在这些主题上的强度{zn1,zn2,···,znT}。
LSA模型
通过对文档和词组成的矩阵进行矩阵分解,找到这一矩阵的主要模式,这一方法称为潜在语义分析。LSA的分解过程可以表示如下:
其中K为矩阵X的秩,s1,s2,...sk为X的K个奇异值。左侧的矩阵就是将潜在语义空间中的主题映射到某个文档的变换矩阵,而右侧的矩阵则是主题映射到某个文档词表中某个词的变换矩阵。最多可以得到的主题数目等于矩阵X 的秩K,不过一般情况下,都会选择一个远小于K 的主题数目用来建模。
PLSI模型
LSA类似的思想也可以用概率建模的方式来表达,这就是概率潜在语义索引PLSI。PLSI方法是通过对文档生成的过程进行概率建模来进行主题分析。这一模型下的文档生成过程可以表述为以下两个步骤。
(1)根据每个文档dn 生成对应的一个主题z。
(2)给定主题,对应一个词的多项式分布p(wn|z,β),据此生成一个词wi;其中的参数β=(β1,···,βK),而βk即为当zk =1时对应的多项式分布参数。
对应于上面的生成过程,文档集X 的生成似然值可以表达为:
LDA模型
贝叶斯方法也可以应用于PLSI模型,这样做的目的是在文档信息不足或者噪声较大时能够利用贝叶斯的框架对结果进行有效的平滑。这一思路也就产生了潜在狄利克雷分配(Latent Dirichlet Allocation,LDA)方法 [10] 。在LDA方法中,我们视PLSI模型的参数为随机变量,对于某一篇文档,其生成过程可以描述如下。
(1)根据一个泊松分布选择文档的长度M。
(2)根据ω 的先验分布Dir(α)生成ω。
(3)对每个文档中的词 m∈{1,···,M},根据 Multi(ω)分布选择一个主题 z;给定主题,对应一个词的多项式分布p(wm |z,β),据此生成一个词wm。
把这一生成过程与 PLSI对比可以知道,这相当于 PLSI的贝叶斯版本,即给 Topic的分布 w 加上了先验分布,而先验分布采用的是共轭形式,即狄利克雷分布。
如果采用经验贝叶斯的方法来确定超参数α,那么此时原来的参数ω就变成了隐变量,优化的参数除了α,还包括参数β,优化的目标函数可以写成:
LDA 模型常用的更新方法是吉布斯采样法。
词嵌入word2vec
词嵌入将词级别的语义信息映射成稠密的实数向量来表达。具体来说,把词典大小的维度降维到一个K维的特征空间,每个词对应特征空间内的一个点,即一个K维的稠密的实数向量。相近的词会出现在特征空间中离得更近的地方,从而使词的表示具有一定的泛化性。
word2vec一般有skip-gram和cbow两种模型学习方式,由于较为通用,这里不再陈述。
12.4 行为定向(t(u))
t(u)的受众定向方式包括从用户网上浏览记录加工得到的兴趣定向以及根据用户历史所在的地域得到的用户主要居住地的“Where on Earth”定向等。由于这些都是根据用户的历史行为进行挖掘的问题,因此把它们统称为行为定向(Behaviorial Targeting,BT)。
行为定向需要进行大规模的数据挖掘,是在线广告中数据利用和变现最重要的计算问题之一。行为定向的用到的标签体系、建模方法、特征生成和评测指标等问题将在下面分别讨论。
行为定向建模问题
行为定向问题的目标是找出在某个类型的广告上 eCPM相对较高的人群。如果假设在该类型的广告上点击价值近似一致,那么问题就转化为找出在该类型广告上点击率较高的人群。
行为定向模型要做的就是把用户的行为与频繁性参数λt联系起来。如果利用线性模型联系用户行为和λt,则有:
这里的wt=(wt1,···,wtN) 即为标签t对应的行为定向模型需要优化的参数,n表示不同的行为类型,如搜索、网页浏览、购买等。将原始行为 b 先经过特征选择函数 xtn(b),再将结果作为特征用在模型中。
这是工程上一种非常典型的建模思路:当面对一个多自变量的回归问题时,可以先根据目标值的特性选择合适的指数族分布来描述,并用线性模型将多个自变量和指数族分布的参数联系起来。这样做,可以利用线性模型更新简单和可解释性强的特点,同时又对目标变量的类型有较强的适应性。这种建模方法称为广义线性模型(Generalized Linear Model,GLM)。类似于逻辑回归、softmax回归都属于广义线性模型。
行为定向特征生成
行为定向特征的生成过程有两点需要讨论:一是特征选择函数 x tn 的确定,二是公式12.5对应模型的训练集的组织和生成方式。行为定向的特征生成过程,由于样本量比较大,处理的高效性是在工程中主要考虑的问题。
最常用的特征选择函数xtn(b)是将一段时间内的原始用户行为映射到确定的标签体系上,同时计算出各行为在对应标签上的累积强度作为模型的特征输入。模型中wtn的作用实际上就是在调整搜索、浏览等不同行为类型的重要程度。
这里要注意,我们考虑的是“一段时间内的行为”,因为过于久远的行为对于用户兴趣的贡献是很小的。如何将行为累计控制在一段时间以内,工程上有两种常用的方法,分别是滑动窗口法和时间衰减法,两者的计算公式分别为:
一般而言,时间衰减法更为通用。
各类行为的标签化方法(xtn(b))
特征选择函数x tn (b)的计算方法,即搜索、广告点击、网页浏览等行为映射到一个或多个定向标签上。这是行为定向计算过程中最关键的环节,以下介绍工程中的实用方案。
(1)网页浏览、分享等与内容相关的行为可以通过 之前提到的有监督文本主题模型的方法,将其映射到预先定义好的标签体系上,也可以直接提取内容中的关键词作为标签。
(2)广告点击等与广告活动相关的行为可以转化为对广告落地页内容的分析,因此可以使用与网页浏览相同的方法。
(3)最值得重视的是搜索、搜索点击等与查询相关的行为。由于查询的信息量较少,很难直接提取标签。可行的方案有两种,都要用到搜索引擎:第一种方案是利用搜索引擎做内容扩展,即将查询送入搜索引擎,用返回的若干结果描述或者链接页的内容作为该查询对应的内容,这种方案借助通用搜索引擎即可;第二种方案是对查询进行某垂直领域分类时,直接利用相应垂直媒体的标签体系和搜索引擎。
(4)转化、预转化等需求方行为往往可以对应到一个单品。同样,利用该单品的分类信息可以将其映射到某个标签上,
12.5人口属性预测
年龄、性别、教育程度、收入水平等人口属性并不属于用户的兴趣,而是用户确定的特点描述。不过在实际定向广告系统中,除了一些实名的社交网络以外,规模化地获得人口属性比较困难,因此往往还是需要数据驱动的模型,以用户的行为为基础自动预测其人口属性。
有很多机器学习模型都可以用于性别预测问题,比如采用最大后验概率的框架,则预测问题可以表示成:
其他的模型,如支持向量机(Support Vector Machine,SVM) 、AdaBoost 等,都可以考虑,需要根据自己的数据特点具体判断哪种模型更合理。
除了性别以外的其他人口属性用简单的分类模型并不太准确。以年龄为例,假设我们把标签设定成五个年龄段,那么将第一个年龄段的认错分到第二个年龄段与错分到第三个年龄段的代价应该是不同的,而如果采用简单的5个类的分类模型,这一差别就被忽略了。因此,需要在分类模型中明确考虑不同类之间的错分代价,其他的属性如教育程度、收入水平也类似。不过总体上说,从用户行为上预测非性别的人口属性是比较困难的任务。
12.6数据管理平台
略
章节相关名词
*TTL 生存时间 time to live
*SVD 奇异值分解 singular value decomposition
*LSA 潜在语义分析 Latent Semantic Analysis
*PLSI 概率潜在语义索引 Probabilistic Latent Semantic Indexing
*LDA 潜在狄利克雷分配 Latent Dirichlet Allocation
*CBOW Continuous Bag of Words
*BT 行为定向 Behavioral Targeting
*GLM 广义线性模型 Generalized Linear Model