本系列文章主要参考刘鹏老师的计算广告学课程
-------------------------------------------------------------------------------------------------------------------
在线广告的核心计算问题和挑战
广告中的计算问题可以概括为下面的公式(Find the best match between a given user u, in a given context c, and a suitable ad a)。下面公式中a表示Sponsor(advertiser),c表示媒体(context),u代表受众(user)。公式的含义是:给定user,给定context,选择一组ad,使得ROI最高。ROI对于不同的产品形态是不同的,后面会再讨论。i是impression,注意这里优化的是一组impressions,即要优化的是impression整体的ROI,而不仅仅是一次的ROI。
这个计算问题是一个比较复杂的问题。从优化角度看它会涉及:1. 特征提取:个人理解是受众定向,即把u和c打上标签的过程,这是重要的一步。2. 微观优化,对一次展示进行优化,得到最好的广告,最关键的技术是CTR预测。3. 宏观优化:因为在线广告是用户,媒体,广告商三方博弈,所以竞价市场机制的设计非常重要,如果它设计的不好,那影响是巨大的。4. 受限优化:无论是品牌广告还是效果广告,都有质和量两个方面的需求,对品牌广告来讲,大部分情况下,量比质更重要,比如宝洁,它要投一个campaign, reach大量人群,如果广告仅是点击率比较低,那宝洁可能是可以接受的,但如果预计要reach 20万人,但最后只reach了10万人,那它是不能接受的。但对于效果广告来说,质一般要重要一点,但是量还是重要的。受限优化要解决的就是在量一定的情况下,怎么来优化质,在线分配就是这个问题。5. 强化学习:如何知道在新的广告主或新的用户群预测它的点击率,很直觉的想法是尝试,分配一定的流量给广告,看是男性用户点击率高还是女性。但是在尝试的过程中会损失一部分收入,因为不是按最优策略出广告的了。尝试的过程即探索,使用探索的结果即利用。6. 个性化重定向:会深入的使用推荐技术。
从系统角度来会涉及:1. 候选查询:要使用实时索引技术,使广告能很快地进入索引,很快指两个方面,新的广告要能尽快上线,广告预算用完的广告要尽快下线。2. 特征存储:在线高并发要用到一些No-Sql技术。3. 离线学习:很多时候要用到Hadoop。4. 在线学习:一些比较快的反馈,比如得到用户上一个搜索词,要用到流计算技术。5. 交易市场:要用到实时竞价。
在线广告计算的主要挑战有:
大规模(Scale)
因为计算广告要处理的是广告主,用户,媒体三者的数据,所以数据量非常大,百万量级的页面(没有搜索要处理的十亿级量大)和十亿量级的用户,需要被分析处理。线投放系统中的高并发挑战 (例: Rightmedia每天处理百亿次广告交易,它会向多个DSP去请求,即每天要进行千亿次的请求),响应速度在常见的web应用中可能是最高的,广告系统对Latency有严格要求 (例: ad exchange要求DSP竞价在100ms内返回,在 100ms内DSP要做完所有的Target,CTR预测,选出合理的广告返回),对于广告效果本身,Latency也是很重要的,广告晚展示100ms,效果就比较明显的变差了。
动态性(Dynamics)
从建模的广度讲动态性是很重要的。比如一个用户想买一双运动鞋,他可能会去电商网站搜索,但这种兴趣在购完后可能就会消失。所以需要所建立的模型支持快速变化,比如涉及到CTR预测,那么模型参数是否能快变,特征是否能快速改变都是有挑战的。
丰富的查询信息 (Rich query)
在搜索中只需要用户所键入的关键词外,不再需要更多的信息就可以产生比较好的结果了。而在广告中,则需要多方面的信息,用户的信息,上下文的信息,用户的短期行为等等。搜索中查询一般是一到四个关键词,而如果把广告看成是搜索问题,那它的查询条件有几十上百个之多。
探索与发现 (Explore & exploit)
用户反馈数据局限于在以往投放中出现过的(a, u, c)组合,需要主动探索未观察到的领域,以提高模型正确性
搜索,广告与推荐的比较
|
搜索 |
搜索广告 |
显示广告 |
推荐 |
首要准则 |
相关性 |
投资回报率(ROI) |
用户兴趣 |
|
其他需求 |
各垂直领域 独立定义 |
质量,安全性(Safety) |
多样性(diversity), 新鲜度(freshness) |
|
索引规模 |
~十亿级 |
~百万级--千万级 |
~百万级 |
~百万级--亿级 |
个性化 |
较少的个性化需求 |
~亿级用户规模上的个性化 |
||
检索信号 |
较为集中 |
较为丰富 |
||
Downstream 优化 |
不适用` |
适用 |
广告明显比搜索容易部分的是不需要复杂的爬虫技术和PageRank。而它比搜索困难的地方是它需要建模的数据量比搜索要大。搜索,广告与推荐三者的主要区别在于它们的准则不同,搜索主要是针对相关性,广告主要针对ROI。举例来讲,比如搜索美联行,那么对于搜索来讲,必须将美联行放到结果首位,否则就不合理。但对于广告来讲,如果美联行代理公司的广告点击率高于美联行本身,因为针对的是ROI,所以它可以将美联行代理排在前面,而不需要将authority的美联行排在前面。
一些文章中把推荐(recommendation)和个性化(personalization)视为同义词,但个人认为两者还是有所不同,个人认为个性化是推荐的一个准则,但推荐还有其它准则,比如多样性,新鲜度,三者结合,才会有很好的效果。比如一个从不关心军事的用户,但如果因钓鱼岛问题而进行战争时,对于这种非常重要的新闻时,推荐应该将这种新闻推荐给这个用户。
推荐和广告比较大的区别是:推荐进行的是同质化的推荐,比如在买商品的时候推荐商品,在看新闻的时候推荐其它新闻。另外推荐还有优化流(downstream)的概念,比如用户在看新闻时,会根据推荐跳到另一个新闻页面,而在这个新闻页面上可以继续推荐,优化流是指优化整个根据推荐看新闻过程的点击率。而对于广告来讲,推荐出的广告点击后,就跳到目标页面了,就不可能有优化downstream的机会了。
计算广告学-广告基本知识-ROI分解
任何一个在线广告系统,都面临ROI的问题,对于Invest,我们先不考虑,因为对于流量有多种方式可以买回,也无法优化(当然在RTB的时候是可以优化的)。Return是主要优化的方向,Return=点击率 * 每次点击创造的价值。比如:点击率是10%,每次点击带来的收益是5元,则每次点击的收益是10% * 5=0.5元。计算广告学里有两个很重要的概念,1. 点击率(CTR),点击率是用户(u),广告(a),上下文(c)三者的函数,点击价值是用户(u)和广告(a)的函数,可以认为与上下文(c)无关,因为用户已经跳到商品所在的页面了。2. eCPM,点击率与点击价值之积是eCPM(expect CPM),它是非常重要的一个值。Return是每次eCPM的累加值。