12.3 行为定向
归类为t(u)的受众定向方式包括从用户网上浏览记录加工得到的兴趣定向以及根据用户历史所在的地域得到的用户主要居住地的“Where on Earth”定向等。由于这些都是根据用户的历史行为进行挖掘的问题,因此把它们统称为行为定向(Behaviorial Targeting,BT)。
行为定向需要进行大规模的数据挖掘,是在线广告中数据利用和变现最重要的计算问题之一。这一问题可以描述为,根据某用户一段时期内的各种网络行为,将该用户映射到某个定向标签上。关于行为定向可能用到的有价值的数据来源可以参考6.6.1节。而行为定向的用到的标签体系、建模方法、特征生成和评测指标等问题将在下面分别讨论。
12.3.1 行为定向建模问题
行为定向问题的目标是找出在某个类型的广告上 eCPM相对较高的人群。如果假设在该类型的广告上点击价值近似一致,那么问题就转化为找出在该类型广告上点击率较高的人群。虽然对品牌广告而言,点击率未必总是合理的评价指标,然而如果认为在该类型上各种目的的广告均衡存在时,点击率仍然具有相对的衡量意义。因此,可以把某个用户在某类广告上的点击量作为建模的对象。
由于点击行为是离散到达的随机变量,对其数量最自然的概率描述是泊松分布。泊松分布的形式如下:
其中h为某个用户在某个定向类别广告上的点击量[10],t代表某个受众标签,而λt为相应的控制点击行为到达频繁性的参数。当然,直接比较单位时间内的点击量并没有太大的意义,这里的点击量是单位有效展示对应的点击数,关于如何计算单位有效展示,可以参考13.5.4节。行为定向模型要做的就是把用户的行为与频繁性参数λt 联系起来。如果利用线性模型联系用户行为和λt,则有:
这里的wt=(wt1,···,wtN )>即为标签t对应的行为定向模型需要优化的参数,n表示不同的行为类型,如搜索、网页浏览、购买等。此处将原始行为 b 先经过特征选择函数 xtn(b),再将结果作为特征用在模型中。将公式12.6代入公式12.5,就得到行为定向的整体模型。
这是工程上一种非常典型的建模思路:当面对一个多自变量的回归问题时,可以先根据目标值的特性选择合适的指数族分布来描述,并用线性模型将多个自变量和指数族分布的参数联系起来。这样做,可以利用线性模型更新简单和可解释性强的特点,同时又对目标变量的类型有较强的适应性。这种建模方法称为广义线性模型(Generalized Linear Model,GLM)。有关广义线性模型的一般性讨论可以参考参考文献[36]。
公式12.5的行为定向模型有两点需要特别说明。
(1)w 可以是与标签 t 相关的,即对不同的定向标签训练不同的线性函数。这样做的优点是可以更准确地对每个类别进行建模,但缺点是当有些类别数据不足时估计偏差较大。一般来说,当 w 与标签相关时,原始行为也可以考虑经过一个与标签无关的选择函数,因为类的本质特征已经反映在了模型参数矢量上。
(2)这种建模方法主要适用于有明确需求方意义的标签体系:只有广告 a上也有这些标签才能根据其点击行为来建模。
有关公式12.6中的模型参数wt的最大似然解,需要多次访问数据迭代求解。具体的求解方法并不复杂,读者可以自行推导,也可以进一步参考参考文献[22]。下面重点讨论的内容是如何选择合适的行为定向特征以及优化相关的计算过程。
12.3.2 行为定向特征生成
行为定向特征的生成过程有两点需要讨论:一是特征选择函数 xtn 的确定,二是公式12.5对应模型的训练集的组织和生成方式。行为定向的特征生成过程,由于样本量比较大,处理的高效性是在工程中主要考虑的问题。
最常用的特征选择函数xtn(b)是将一段时间内的原始用户行为映射到确定的标签体系上,同时计算出各行为在对应标签上的累积强度作为模型的特征输入。例如,对于页面浏览行为,我们用上下文定向的方法将 URL转换为标签,作为此次行为的标签,而一次浏览的强度置为1;而对于搜索行为,可以根据查询词将其映射为标签,而一次搜索的强度置为1。关于搜索、广告点击、网页浏览等各类行为的标签化方法还将在后面专门讨论。模型中wtn的作用实际上就是在调整搜索、浏览等不同行为类型的重要程度。这一特征生成过程如图12-6所示。
图12-6 行为定向特征生成过程示意
这里要注意,我们考虑的是“一段时间内的行为”,因为过于久远的行为对于用户兴趣的贡献是很小的。如何将行为累计控制在一段时间以内,工程上有两种常用的方法,分别是滑动窗口法和时间衰减法,如图12-7所示。
在滑动窗口法中,设定一个窗口长度 D,然后将从当前时间倒推再此窗口长度内所有属于 t 的行为强度累加起来。用 ˜x 代表累积特征以区别于单时间片特征 x,实际上在公式12.6中,应该使用 ˜x而不是x。在滑动窗口法中,˜x的计算公式为:
图12-7 用户行为累计方法示意:滑动窗口法(上),时间衰减法(下)
而在时间衰减法中,并不明确设定窗口长度,而是设定一个衰减因子α,用上一个时间片的累积特征 x0(d−1) 与本时间片的行为强度 x(d) 递归地得到今天的累积特征 ˜x(d),其更新公式为:
在实际的行为定向建模中,会用累积特征 ˜x 替代单时间片特征 x。上面的两种累积特征计算方法并无本质区别,它们对原始行为过滤的窗型,前者为矩形,后者为指数形,并且形状都由唯一的参数来控制。但是从工程角度看,我们更推荐使用第二种方案,因为在这种方法中,只需要保存累积到前一个时间片的特征和当前时间片的行为强度,空间和时间复杂度都比较低。
行为定向的训练过程实际上就是调整各个标签类别上各种特征权重的过程。影响训练结果和效率的因素主要有两个。
(1)训练集的长度。一般来说,为了消除工作日的周期性影响,训练集的天数一般选择为7的整数倍。对一个用户来说,他累积到前一个时间片的行为特征和本时间片的该标签广告点击次数ht(d)对应于公式12.5的一个训练样本。因此,每个用户会对应多个训练样本。
(2)时间片的大小。这反映了对定向的时效性的要求,如果希望更快地利用行为数据对标签做出调整,必然要缩小这一时间片大小[11]。
可以想见,训练集的样本数目正比于训练集长度且反比于时间片长度。当用户数目较多、训练集长度较长,而时间片又较短时,总的训练样本数目是非常大的。为了避免计算冗余,使训练时的空间代价尽可能小,在参考文献 [22] 中作者给出了一个复杂度为 O(1n) 的训练样本生成算法,该算法的关键点是在预处理过程中生成每个用户 u 各个时间片的 xnt和ht,将它们按时间顺序排列成一个事件流。通过在此事件流上向前滑动,依次在训练过程中得到各个时间片的累积特征xnt,并得到相应的训练样本。
这一方法看起来普通,却是在大规模用户行为分析时必须要注意的,也是计算广告架构(图9-2)中提到要将用户行为与用户标识作为键组织在一起的原因。以时间衰减法为例,我们将累积行为定向特征生成的过程用下面的代码示意。
各类行为的标签化方法
上面关于行为定向特征生成的讨论还缺少一个环节:特征选择函数xtn(b)的计算方法,即搜索、广告点击、网页浏览等行为映射到一个或多个定向标签上。这是行为定向计算过程中最关键的环节,下面介绍工程中的实用方案。
(1)网页浏览、分享等与内容相关的行为可以通过 12.2.2节中提到的有监督文本主题模型的方法,将其映射到预先定义好的标签体系上,也可以直接提取内容中的关键词作为标签。
(2)广告点击等与广告活动相关的行为可以转化为对广告落地页内容的分析,因此可以使用与网页浏览相同的方法。不过,实践中经常会碰到广告落地页内容为图片、Flash或者内容很少的情形。因此,根据创意形式的不同,还有其他两种方法:当创意为文字链时,可以将其题目或描述作为内容;当创意为图片时,往往需要人工标注其标签,但由于工作量较大且正确性不宜评估,建议只在必要时进行。
(3)最值得重视的是搜索、搜索点击等与查询相关的行为。由于查询的信息量较少,很难直接提取标签。可行的方案有两种,都要用到搜索引擎:第一种方案是利用搜索引擎做内容扩展,即将查询送入搜索引擎,用返回的若干结果描述或者链接页的内容作为该查询对应的内容,这种方案借助通用搜索引擎即可;第二种方案是对查询进行某垂直领域分类时,直接利用相应垂直媒体的标签体系和搜索引擎。下面以电商行业为例来说明此方案。
如果要给查询标注电商行业标签,可以采用与某综合电商,如淘宝,相一致的分类标签体系。在此基础上,任给一个查询,将其送入淘宝的搜索引擎,然后查看返回商品结果对应的分类,将此分类作为标签即可。如果返回结果很少或结果中的分类很分散,可以认为此查询没有合适的电商行业标签。这实际上是借鉴了电商搜索引擎成熟的分类能力,往往可以较快地做到比较准确的查询分类。此方法的限制是必须采用与某电商一致的标签体系,不过一般来说这不是大问题。这个例子虽然针对电商行业,但对于其他垂直行业,如汽车、房产等,也完全适用,只要借助于该行业网站比较成熟的垂直搜索引擎即可。
(4)转化、预转化等需求方行为往往可以对应到一个单品。同样,利用该单品的分类信息可以将其映射到某个标签上,而对于预转化中的站内搜索行为,可以按照上面的一般搜索行为来处理。
这几类典型行为的标签化过程如图12-8所示。对于其他的行为,往往也可以归结到这几种类型之一,或者根据其行为数据的特点具体讨论。
图12-8 各类行为标签化方法示意
12.3.3 行为定向决策过程
虽然公式 12.5的行为定向模型看起来比较复杂,不过其核心目的无非是为了通过数据得到公式12.6中的行为系数wtn。在行为定向的决策过程中,不需要λ到h的泊松分布,只需要计算线性函数 λ的值,然后根据预先确定的阈值来确定某个用户是否应该被打上某个定向标签。
行为定向计算过程比训练过程的数据准备要简单,因为不再需要准备目标值,只需要按照滑动窗口法或者时间衰减法得到累积特征再根据wn加权求和得到得分λ。由于这一计算过程也是线性的,当特征累积采用时间衰减法时,得分 λ 也可以通过昨天的得分衰减后累积上今天得分的方式得到,即:
上面的公式揭示了受众定向系统工程实现的一个关键点:在线上存储各用户的定向标签得分 λ 的缓存中,在每个新的时间周期,在缓存中得分乘以 α 进行衰减,再将上一个时间周期收集到的原始行为xtn加权求和后累加上去即可。这比起在每个时间周期重新计算所有λ并更新整个线上缓存显然要轻量级许多。这一线上计算过程更加体现了时间衰减法的优势,特别是当需要对用户的短时行为进行快速反馈时,这样简便的递归式计算方法非常有效。
12.3.4 行为定向的评测
对于上面讨论的行为定向模型,因为可以通过调整线性函数输出 λ 的阈值来控制某个标签人群的量,相应的标签人群在广告投放中的效果也会相应变化。当然,在量扩大的情况下一般来说精准性也会降低。其他形式的行为定向模型也都具有类似的特点。因此,行为定向模型的评测需要考虑到量的影响。
一般来说,行为定向可以通过reach/CTR曲线来进行半定量的评测。在正常情况下,较小的人群规模应该较为精准,也即对该类型广告的 CTR较高;而随着人群规模的扩大,该CTR也会逐渐走低。我们把标签接触到的人群规模称为 reach,而这一 reach和 CTR构成的曲线是评价该标签上的定向是否合理、以及效果如何的重要依据。
图12-9给出了一个实际的reach/CTR曲线示例,我们来了解一下解读此曲线的几个关键之处。首先,该曲线应该大体呈下降的趋势,如果数据质量或定向建模有一些问题,有时会出现非下降的趋势或者头部较低的情况,这意味着调低用户规模反而使得点击率下降,显然是不正常的。如果出现这种情形,需要认真检查定向流程或者判断是否已有的数据无法支持该定向标签。其次,reach/CTR曲线最右端一个点的CTR水平是固定的,即无法通过改善数据和模型来提高,因此这是reach达到100%,也即全部用户的情形下的CTR水平。该曲线的斜率越大,往往表示定向模型的鉴别力越强。由于实际中一般会将阈值设定得较高,从而达到较好的定向效果,因此往往只需要关注该曲线头部的部分即可。
图12-9 reach/CTR曲线示意
工程中需要注意的是,生成 reach/CTR 曲线的过程需要仅仅访问一遍数据就能完成。因此,在前面受众定向的过程中,需要保留的是每个用户在各个标签上的得分值,而不是最后二元的判断结果。给定一批测试用户在所有标签上的定向得分值,生成 reach/CTR曲线的过程如下面的代码所示。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论