9.4 计算广告系统主要技术
了解了计算广告的优化目标和系统架构,我们再来看看这一系统会用到哪些关键的技术。实际上,上一节介绍的广告系统架构也是由这些技术问题决定的,而这些也给我们提示了实践中需要重点关注并优化的方向。
从算法优化的角度看,主要有下面的一些问题,解决这些问题需要广泛用到机器学习、数据挖掘等一些相关学科的技术。
(1)公式2.2中的特征提取,即对(a,u,c)打标签以方便后续建模和市场售卖的问题,是计算广告中非常核心的受众定向问题(参见第12章)。
(2)如果不考虑全局最优,计算广告系统主要靠eCPM估计,特别是点击率预测(参见13.5节)来完成每一次展示时的局部优化。
(3)如果考虑到量的约束和投放时即时决策的要求,则产生了在线分配的问题(参见11.3节)。
(4)为了在多方博弈的市场中达到动态平衡时的收益最大化,则需要对市场的机制设计(mechanism design)(参见5.2节)深入研究,进而确定合理的定价策略。
(5)为了更全面地采样整个(a,u,c)的空间以便更准确地估计点击率,需要用到强化学习(reinforcement learning)中的探索与利用(explore and exploit,E&E)(参见13.6节)方法。
(6)在实时竞价快速发展的今天,个性化推荐(personalized recommendation)技术也被广泛使用在效果类DSP的个性化重定向中(参见14.2节)。
从系统架构的角度看,大规模广告决策和投放有如下一些特点:首先是服务压力大,这是由于广告的投放量往往数倍于页面浏览的PV,这使得广告成为互联网流量规模最大的产品之一;其次,因为用户对广告产品接受是被动的,广告展现延迟的增加往往会带来广告效果的显著下降,因此广告系统的决策延迟是非常关键的指标;从另一方面看,也正因为广告是被动的用户产品,其决策结果的逻辑性不直接,因此广告系统在用户标签的数据一致性方面要求是比较低的,也往往并不需要持久化的存储,这为系统设计提供了一定的灵活性。计算广告在系统架构方面涉及以下一些技术问题。
(1)由于广告主的预算、定向条件等信息在设置后需要快速在线上生效,需要用实时索引技术服务于广告候选的检索。
(2)需要用NoSQL数据库为投放时提供用户、上下文标签和其他特征。
(3)广泛使用Hadoop这样的MapReduce分布式计算平台进行大规模数据挖掘和建模,也用到流计算平台实现短时用户行为和点击反馈。
(4)在广告交易市场中实现高并发、快速响应的实时竞价接口,这是一项广告中用到的独特技术。
上述这些技术与大数据、分布式计算等领域中的一些通用技术有紧密的联系,但也有很多结合广告产品特点的独特需求。我们将会在介绍具体的广告产品时,结合相应的上下文具体讨论。
有关这些技术需要了解的一些基础知识将在下一章简要介绍。当然,本书并不是专门讨论机器学习或信息检索的教程,因此大家不要期望在这里能系统地学习到这些领域的知识。我们的目标是从商业的需求出发,解剖问题的本质,并给出代表性的解决方案。同时,在用到其他工业界已经成熟的技术时,会尽量给出建议的参考方案,以方便大家进一步深入了解。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论