搜索广告
搜索广告就是一个典型的Ad Network,但是搜索广告非常重要,它的收入非常高,所以它有其独特之处,复杂度也比展示广告要高。它与展示广告在点击率预测,检索部分差不多,它的特点:1. 用户定向标签f(u):远远弱于上下文影响,一般可以忽略,但是因为搜索广告中query的信息已经很强了,用query已经足够了。2. Sesion内的短时用户搜索行为作用很重要,3. 上下文定向标签f(c):关键词。
搜索广告是一种很典型的位置竞价模式,而展示广告一般只有一个位置,但偶尔也有多位置拍卖的时候,比如淘宝多标签的创意。我们一般将广告位分为北,南,东三个广告区块,根据各位置的reference ctr决定各位置在竞价系统中的位次,reference ctr可以通过小流量较准确地测出。
查询词扩展(Query Expansion)
虽然查询词已经非常精准了,但它还是需要扩展。从缺点来讲,是搜索广告的运营商希望通过查询词扩展以攫取更多的利润,举例说明,如果查询词是家具,如果不做任何扩展,那么投“家具”关键词广告的转化率是最高的,如果把“家具”扩展为“家具店”,甚至“搬家”,那么所投放的广告的转化率是要比“家具”关键词广告是要低的,换言之,做查询扩展后的广告点击的价值是要低于不做查询扩展的点击价值,但如果扩展的关键词相关的广告如果出价更高或一样高,那么对搜索广告运营商做扩展是会收入更多的。另一点从宏观上讲,通过做查询扩展,使得每一个广告主的竞价范围变大了,再以上例说明,不做扩展,那么广告主只对“家具”进行竞价,做了扩展后,它对三个词进行竞价,那么广告主相互竞争冲突的可能性就大大增加了,使得市场更容易达到充分竞争的局面,这也有利于整个市场的盘子做大,营收增加。
查询扩展有很多的方法,也很难有完整的体系将其描述。我这里列出常见三个思路。以前在Yahoo!进行查询词扩展的项目有几十个之多。1,基于推荐的方法,它是挖掘(session,query)矩阵找到相关query,session就是用户在一次查询序列中输入的查询词,可以用推荐技术中挖掘(user, item)的算法进行挖掘,这种方法利用的是搜索数据。2,基于语义的方法,用topic model或概念化的方法中找语义相关query,对相同主题的词用topic model进行聚类,并认为它们的相似的查询意图,经过一些选择,可以将它们列到查询扩展集合中。Topic model是分析潜在语义的模型,也可以一些明确语义分析方法,它是将一些词或词组抽象成数目相对少的概念,每个概念中的词可以认为它们有相似的意图。语义分析的方法利用的是其它文档的数据。3,基于收益的方法,这种方法在实际中效果是很好的,它不进行语义的分析,也不进行推荐分析,仅看一个查询词在历史上哪些查询词对它的eCPM变现高,但它的分析出来的数据量是很少的,一些新词和长尾的词它就无能为力了,但它是不会漏掉一些真正有经济价值的词,历史上发现“家具”和“搬家”这两个词强相关,且“搬家”eCPM很高,那么在搜索“家具”的时候,出“搬家”的广告是可以增加收益的。它是利用广告数据进行分析。
用户相关的搜索广告决策
用户相关的搜索广告决策是分析哪些因素是可能和用户有关系的。
1, 结果个性化对于搜索广告作用有限,前面提到过f(u)直接做audience 兴趣的targeting的意义并不大,因为上下文信息(c)太强,个人兴趣可以忽略。另一个有争议的话题是搜索是否需要做个性化,大的搜索公司都做过个性化,有很多用户是不满意的,因为用户可能发现他的搜索结果和周围的人的搜索结果不一样,就会质疑搜索引擎的权威性,并且也无法告诉别人,可以通过搜索某词得到什么结果。所以搜索引擎是不适合做特别深入的个性化。搜索广告可以个性化一些,但仍然需要保证主题上的某种一致性。
2, 广告展示的条数可以深度个性化,即参与position auction的位置的个数。它有着非常大的调整空间。因为用户常常无法区分广告和正常的搜索结果的,就是在美国这种教育程度较高的国家,也有一半的用户无法区别搜索结果和广告,他们的行为就是对搜索结果从上向下点击,对于这些用户,放多少广告都无所谓,只要不要让结果太差,但对于阅读本文的读者而言,基本上是一个广告都不应该出的,出了广告我们也不会去点。但对于无法区别广告的用户,如果出的广告太多,就会遇到1里所提到的一致性问题,也会给用户不好的体验。这里的一个可以做的点就是在平均广告数不变的条件下,对每个用户的广告数进行变化,以使得全局营收最大化。这又是一个约束优化问题,与我们前面的Allocation类似,它们的解法都很相似。顺便提一下,广告的结果和搜索的结果,在google中,广告的结果有淡黄色的背景,这是因为在美国是有这个判例的,有人投诉分不清搜索结果和广告结果,法官判决必须使广告结果和搜索结果是可区分的,中国法律并没有这个限制。
3, 可以根据同一session内的行为调整广告结果,比如:用户在第一页没有点击任何广告,用户点击第二页时,可以不再展示第一页展示过的广告。
短时用户行为反馈
短时内用户的几次连续搜索称之为一个session,session的行为可以更明确地标定他搜索的目标。在搜索广告中,它是一个非常有用的信息,对展示广告来讲也是一样的,但对于展示广告,比较困难,因为展示广告主要用f(u),而不是f(c),所以要得到它短时的行为,需要修改u上的标签,这比较困难。而对于搜索来讲,只需要收集前几个session。
短时用户行为在狭义上讲,是指用户在一个session内的行为,在广义上讲,它是指用户在短时间(一般为一到两天)内的行为。
在广告系统中,短时用户行为有两个作用,1. 短时的受众定向:根据短时行为为用户打上标签。因为短时的计算不太可能用Hadoop这样的平台进行计算,因为Hadoop平台有很长的延时,并且处理时间也不能确定。所以这个打标签的过程是与其它标签的过程是独立的。2. 短时点击反馈:根据短时广告交互计算的动态特征。
短时用户行为计算需要准实时(分钟级)对用户行为进行加工,不适合在Hadoop上进行,而这还有可能不够,因为对于session里的query,可能要做到几秒的级别,所以它不适合在Hadoop上进行,它可以利用流式计算(stream computing)平台,比如S4,Storm等进行计算。当时S4的开发的目标很明确,就是进行短时用户行为反馈的计算。