在线广告:互联网广告系统的架构及算法

在线广告:互联网广告系统的架构及算法

作者:张亚东

出版社:清华大学出版社

出版年:2019-08-01

评分:5分

ISBN:9787302526520

所属分类:网络科技

书刊介绍

在线广告:互联网广告系统的架构及算法 内容简介

在线广告是一个多学科交融的领域,本书力求系统地讲解在线广告的架构和算法,让读者对在线广告有一个整体的认识。全书共15章,~3章介绍在线广告的发展简史、样式与创意以及广告系统的架构流程等基础知识;第4~7章从品牌广告、搜索类广告、社交类广告和视频类广告4种典型的广告出发,详细讲解广告系统的更多设计细节; 第8~14章分类讲述在线广告中的重要研究领域,包括用户数据和定向算法、点击率预估与推荐算法、在线匹配、机制设计、低质量和敏感控制、实验架构和调参,以及数据监控和效果衡量; 5章简要介绍在线广告的发展趋势。
本书可作为对在线广告感兴趣的初学者的入门书籍,也可供在线广告相关领域的从业者阅读参考。

在线广告:互联网广告系统的架构及算法 本书特色

在线广告是一个多学科交融的领域,本书力求系统地讲解在线广告的架构和算法,让读者对在线广告有一个整体的认识。全书共15章,第1~3章介绍在线广告的发展简史、样式与创意以及广告系统的架构流程等基础知识;第4~7章从品牌广告、搜索类广告、社交类广告和视频类广告4种典型的广告出发,详细讲解广告系统的更多设计细节; 第8~14章分类讲述在线广告中的重要研究领域,包括用户数据和定向算法、点击率预估与推荐算法、在线匹配、机制设计、低质量和敏感控制、实验架构和调参,以及数据监控和效果衡量; 第15章简要介绍在线广告的发展趋势。
本书可作为对在线广告感兴趣的初学者的入门书籍,也可供在线广告相关领域的从业者阅读参考。

在线广告:互联网广告系统的架构及算法 目录

目录







第1章在线广告发展简史



1.1在线广告发展简介



1.1.1中国古代的广告



1.1.2在线广告的诞生



1.1.3搜索广告的诞生和发展



1.1.4社交和视频类广告



1.1.5Ad Network的诞生



1.1.6Ad Exchange和 TradingDesk



1.2移动广告的发展



1.3搜索广告和定价模式



1.4社交媒体广告



1.5视频广告



1.6在线广告优势



1.7在线广告规模



参考文献




第2章广告样式与创意



2.1主流广告样式



2.1.1PC端广告样式



2.1.2移动端广告样式



2.2技术驱动营销



2.3广告样式发展趋势



2.4程序化创意



2.4.1程序化创意的缘由



2.4.2程序化创意



2.5动态创意优化



参考文献



第3章广告系统架构流程



3.1投放引擎架构流程



3.1.1广告投放引擎架构



3.1.2客户系统



3.1.3内部管理平台



3.1.4基础架构及相关模块



3.1.5广告投放引擎内部模块



3.1.6工具和测试平台



3.2收入分解



3.3程序化广告技术生态



3.4Ad Network



3.4.1工作流程



3.4.2分类



3.4.3定向方式



3.4.4优势



3.4.5移动广告网络



3.5Ad Exchange



3.5.1产生背景



3.5.2工作流程



3.5.3与Ad Network的不同



3.5.4国内Ad Exchange的发展



3.6程序化售卖方式



3.7其他机制



3.7.1匿名设置



3.7.2Reserve Price



3.7.3PreTargeting



参考文献



第4章品牌广告



4.1品牌推广的意义



4.2品牌广告简介



4.2.1品牌广告



4.2.2品牌广告常见形式



4.2.3计费和购买方式



4.2.4样式和创意



4.3品牌广告的有效性



4.4品牌广告效果评估指标



4.5Benchmark



参考文献



第5章搜索类广告



5.1搜索广告简介



5.1.1搜索广告的模式



5.1.2广告投放及相关问题



5.1.3搜索广告的优势



5.2常见产品形态



5.2.1综合搜索



5.2.2定制类搜索



5.2.3图片类搜索



5.2.4内容定向



5.2.5电商类搜索



5.2.6应用商店搜索



5.2.7其他



5.3系统架构和重要模块



5.3.1广告架构



5.3.2广告账户组织结构



5.3.3广告检索流程



5.3.4预算控制



5.3.5在线匹配



5.3.6机制设计



5.3.7计费流程



5.3.8准入



5.4主流竞价机制



5.4.1GFP机制



5.4.2GSP机制



5.4.3VCG机制



5.5搜索生态



5.6GSP优化



5.6.1Weighted GSP



5.6.2Squashing



5.6.3UWR



5.6.4QWR



5.6.5Anchoring



5.6.6模型对比



5.6.7Hidden Cost



5.7长尾查询



5.8市场规模



参考文献



第6章社交类广告



6.1社交媒体



6.1.1社交网络国度



6.1.2社交网络的特点



6.1.3常见的社交应用



6.1.4社交网络影响购买行为



6.2社交广告



6.2.1常见广告类型



6.2.2定向方式



6.3基于社交关系的算法



6.3.1社交内容推荐算法



6.3.2社区分割算法



6.3.3社交内容扩散算法



6.4社交网络营销



参考文献



第7章视频类广告



7.1视频广告简介



7.1.1常见的广告类型



7.1.2售卖方式



7.1.3广告时长



7.2视频广告生态和投放流程



7.2.1视频广告生态



7.2.2广告投放流程



7.3流量预估



7.3.1优化目标



7.3.2模型特征



7.3.3特征平滑处理



7.3.4流量预估函数



7.3.5模型评估方法



7.4库存分配问题



7.5库存分配算法



7.5.1HWM



7.5.2优化调整



7.5.3反馈机制



7.5.4SHALE



7.6Pacing



7.7市场规模



参考文献



第8章用户数据和定向算法



8.1用户识别



8.1.1Cookie



8.1.2Cookie Matching



8.1.3移动端用户识别



8.1.4跨屏识别



8.2用户画像



8.3定向方式



8.4经营状况评估和优化



8.4.1评估指标



8.4.2CLV优化



8.4.3客户关系管理和使用



8.5Lookalike



8.5.1特征提取和建模



8.5.2扩展方式



8.5.3*近邻选择



8.5.4离线扩展流程



8.5.5node2vec



8.5.6实战



8.6竞价环境预估



8.7超级用户



参考文献



第9章点击率预估与推荐算法



9.1点击率预估简介



9.2点击率预估特征



9.2.1相同竞价词下其他订单的特征



9.2.2相关竞价词的CTR



9.2.3广告质量相关特征



9.2.4订单竞价词相关特征



9.2.5外部相关特征



9.2.6特征预处理



9.3预估模型



9.3.1基础模型



9.3.2L2TreeBoost+LR模型



9.3.3回归树



9.3.4Gradient Boosting



9.3.5L2TreeBoost



9.3.6特征组合



9.3.7Freshness



9.3.8数据采样



9.4模型评估方法



9.4.1KL离散算法



9.4.2AUC



9.4.3NE



9.5Bandit



9.5.1Bandit问题



9.5.2εGreedy方法



9.5.3Thompson Sampling



9.5.4UCB



9.5.5LinUCB



9.6在线学习方法



9.6.1梯度下降方法



9.6.2BGD



9.6.3SGD



9.6.4MBGD



9.6.5简单截断法



9.6.6截断梯度法



9.6.7FOBOS



9.6.8RDA



9.6.9L1FOBOS和L1RDA的对比



9.6.10FTRL



9.7推荐算法



9.8基于协同过滤的推荐



9.8.1基于用户的协同过滤算法



9.8.2基于物品的协同过滤算法



9.8.3其他相似度计算方法



9.8.4应用



9.9基于矩阵分解的推荐



9.9.1矩阵分解



9.9.2正则化



9.9.3隐性特征



9.10基于深度学习的推荐



9.10.1推荐流程



9.10.2排序



9.11广告排序性能优化



参考文献



第10章在线匹配



10.1图论基础知识



10.2在线匹配类型



10.3在线二部图匹配



10.3.1Greedy算法



10.3.2Random算法



10.3.3Ranking算法



10.4加权的在线二部图匹配



10.5Adwords



10.5.1Greedy算法



10.5.2Balance算法与Greedy算法对比



10.5.3MSVV算法



10.5.4一般情况的证明



10.6基于原始对偶的匹配



10.6.1原始对偶问题



10.6.2互补松弛性



10.6.3Greedy算法实现



10.6.4更优算法



10.7现实系统中的匹配算法



参考文献



第11章机制设计



11.1机制设计概述



11.2经典案例



11.2.1囚徒困境



11.2.2二难问题



11.2.3无怨算法



11.2.4TureView广告



11.2.5策略性投票



11.3激励兼容



11.3.1投票悖论



11.3.2阿罗不可能定理



11.4引入金钱的机制



11.4.1拍卖机制



11.4.2VCG机制



11.5激励兼容的特性



11.6贝叶斯纳什均衡



11.7竞价机制分析



11.7.1临界条件分析



11.7.2VCG机制



11.7.3Simplest GSP机制



11.7.4Weighted GSP机制



11.8拥挤控制



参考文献



第12章低质量和敏感控制



12.1作弊背景



12.1.1作弊参与者



12.1.2作弊动机



12.2广告作弊方法



12.2.1单机作弊



12.2.2黑客作弊



12.2.3有组织的网络作弊



12.2.4有组织的人工作弊



12.2.5基于大流量平台的作弊



12.3广告反作弊



12.3.1反作弊架构



12.3.2反作弊算法分类



12.4广告质量



12.5数据安全



参考文献



第13章实验架构和调参



13.1A/B testing



13.2分层实验



13.2.1分层实验方案



13.2.2实验平台



13.3实验设计和分析



13.3.1置信度



13.3.2置信区间



13.3.3*少样本数



13.3.4逐步放量



13.3.550% vs 50%



13.3.6其他因素



13.3.7对比实验局限



13.3.8参数化



13.4自动化调参



参考文献



第14章数据监测和效果衡量



14.1第三方监测



14.2效果跟踪



14.2.1归因模型



14.2.2增效测试



参考文献



第15章在线广告的发展趋势



15.1网络带来的变化



15.2未来发展趋势



15.2.1流量入口



15.2.2需求和市场



附录A单词表



在线广告:互联网广告系统的架构及算法 节选

第3章广告系统架构流程

3.1投放引擎架构流程
在了解完在线广告的发展历史和常见样式后,相信读者已经对这个领域有了比较直观的认识,本书接下来会更深入地讲解在线投放广告的工作原理。本节首先介绍媒体内部一个完整的广告投放引擎所包括的主要功能模块和它的架构流程。


图3.1广告投放引擎架构

3.1.1广告投放引擎架构
如图3.1所示,这里将广告投放引擎的功能模块分为5个部分,分别是客户系统、内部管理平台、基础架构和在此基础架构上工作的相关模块、广告投放引擎内部模块以及日常工作中会用到的一些工具和测试平台。这个架构图并不是设计广告投放引擎的标准,不同媒体的广告投放引擎会因处理业务的不同而有所差异,这里介绍的功能模块只是一些常用模块,较简单的广告引擎可能只包括其中一部分模块,而较复杂的系统还有更多图3.1中没有包括的功能模块。本节其他篇幅分别介绍这5个部分。
3.1.2客户系统
**部分是面向广告主的客户系统。广告主要投放广告,需要先注册账号,有一个自己的唯一标识。用这个账号在客户系统中登录后才可以创建自己的广告投放计划。且广告主需要向自己的账号中充值,有预算的情况下广告系统才会投放这个账号下的广告。在客户系统中,广告主还可以设置更细致的预算控制,如每天的*大消费上限,如果广告主一天的花费已经超过设置的消费上线,广告系统就会停止投放这个账号下的广告。
不同广告主的营销目标会有所不同,有些广告主的营销目标是让广告触达尽可能多的人群,而有些广告主的营销目标则可能是提升某个店铺的访问量。广告主需要提前选定自己的营销目标,这样广告投放系统便可以针对不同的营销目标采用不同的定向投放算法,使得广告投放效果*优。广告主在设置广告计划的时候也可以指定受众范围,例如指定广告投放到年龄在20~30岁的北京女性用户之中,合理的设置营销目标和受众范围可以让推广活动事半功倍。广告开始投放后,广告主可以在客户系统中的效果跟踪模块随时查看广告计划投放情况,例如当前广告的投放量和投放效果,也可以根据效果的反馈继续优化广告计划的设置。例如,有时候广告主不能提前确定自己产品的目标人群范围,就可以根据广告的投放效果不断调整广告计划的受众范围,直到广告投放效果达到*优。很多客户系统中还支持同时设置多个广告计划,并且可以对广告计划分组管理,便于广告主同时做多个对比试验。甚至有些客户系统还会根据历史投放情况,在投放前或者投放过程中给出广告计划的调整建议,进一步提高广告主的操作效率。
图3.2是在Facebook的客户系统中创建广告计划的一个截图,它将广告营销目标分为3大类: 品牌认知、购买意向和行动转化。不同的营销目标适合不同类型的广告主,如大型品牌广告主可能会比较适合选择品牌认知,将广告投放到尽可能多的人群中,而小型广告主则更在意广告带来的行动转化,适合选择行动转化的营销目标,当广告系统判断有较大概率发生行动转化的时候才投放该广告,节省广告主的开支。在此基础上,广告主可以继续设置广告的受众、版位和广告的投放时间等信息。另外,广告主还需要设置广告的展现格式并上传相关物料信息,有些广告投放系统会建议广告主同时设置多套物料,便于在投放过程中根据不同的情况动态调整广告的样式和内容,进一步提升广告投放效果。


图3.2Facebook广告计划创建截图


3.1.3内部管理平台
第二部分是供广告投放引擎内部的运营人员与研发人员使用的相关工具平台,主要包括用户管理、订单管理、权限控制、财务管理、效果监控、订单审核和黑白名单模块。用户管理模块是对系统中所有注册用户统一管理的地方; 订单管理模块可以控制广告主的订单状态,如人工干预订单的上线下线; 在权限控制模块可以对内部用户设置不同的操作权限,降低系统的风险; 广告主账户金额以及系统收益等财务相关内容可以在财务管理模块中进行操作; 效果监控模块可以查看每个广告计划投放的具体效果数据,供内部运营人员随时了解系统的运行状况; 内部运营人员在订单审核模块对广告主提交的物料进行人工审核,内容规范、质量符合规定的订单才可以进入系统投放,有些广告系统会引入人工智能技术来加快这个环节的效率; 黑白名单模块可以对系统中的可信账号设置白名单,提升优先级别,对多次违规账号设置黑名单,禁止投放。
3.1.4基础架构及相关模块
广告投放引擎是对性能要求很高的系统,它需要随时保持较高的系统稳定性和快速响应能力。当线上请求到达的时候,系统需要在非常短的时间内返回适合展现的广告结果,这个时间通常是几毫秒到几百毫秒不等。如果在这个限定时间内广告系统没有返回广告,那么这次请求将不展现任何广告,系统也不会有收益。
基础架构是完成大规模数据处理及提供高性能服务的基础,主要包括两部分。一部分是在线投放系统,即当一个请求到达的时候,能够快速处理完所有的逻辑,然后返回合适的广告结果。为了保障服务的稳定性,一般需要跨机房、跨网络布置线上广告系统,做到在部分机房和网络服务出现故障的时候,在线投放系统仍然可以提供正常的服务。另外一部分是需要计算和存储海量数据的大数据处理模块,日志存储、广告数据的实时或离线分析、计费等业务都需要它的支持。如果广告系统是通过关键词或者某些定向条件来触发的,还需要不断地对系统的合法广告建立索引。
广告计划投放结束后,广告主可以在客户系统中查看广告的具体投放数据,但是不排除有些媒体存在数据造假的情况,所以在一些交易金额巨大的业务中,广告主为了保障自己的利益,希望广告投放引擎能够支持第三方数据监测,通过在投放流程中添加第三方机构的代码,可以让第三方机构对广告投放的核心指标有所了解,从而更加客观地评估广告的投放情况。
不同广告投放引擎的广告投放效果差异较大,除了媒体流量质量有差异外,在用户画像、行为数据分析、创意分析、CTR(Click Through Rate)计算、机制设计、定向技术等业务模块的规模和计算能力上都会有显著的不同。小型的广告投放引擎可能只有CTR计算模块,而较成熟的大型广告投放引擎在每个业务模块上都会有专人深入研究,尝试从多种角度不断地优化改进系统,提升媒体的整体收益。这些模块除了服务于广告投放引擎外,有时候也可以在整个营销路径中给营销人员指导、建议。
如果广告投放引擎希望提供给广告主更多的操作,让那些对目标客户比较清楚的广告主可以更精准地定向目标客户,系统就需要做更多的数据分析和整理工作。例如广告主希望向对军事有兴趣的北京男性用户投放自己的汽车广告,那么系统就需要提前通过用户的历史行为数据判断哪些用户是对军事有兴趣的,且需要积累他们的人口统计信息,对用户的年龄、性别等信息有所了解。这些信息一般被称为用户画像,精准而全面的用户画像对广告投放引擎定向能力的提升有很大帮助。本书第8章将详细介绍用户画像和相关的定向技术。
无论什么类型的广告系统,如果广告投放引擎能将广告精准地投放到对这个广告感兴趣的人群,广告投放效果和媒体的盈利都会有大幅度地提升。所以开发高精度的CTR预估和推荐算法非常重要,这部分是在线广告算法中的一个经典问题,现在仍然被持续研究,本书第9章会详细介绍。
计算出来的多种因子如何融合到系统中才能使得系统收益*大化?如何融合才能保障广告主的利益或者公平性?如何融合才能保持整个广告业务生态的持续健康?这些都是机制设计需要考虑的问题,第11章将简单介绍这部分的一些重要概念。
3.1.5广告投放引擎内部模块
这里通过搜索广告投放系统的一个具体例子,讲述广告投放引擎内部各模块是如何工作的。如图3.3所示,当用户在搜索引擎中搜索“西红柿”后,系统首先调用频次控制模块,假如系统限制每个用户每天*多只能浏览10次广告,频次控制模块会判断当前用户是否浏览广告已经达到10次,如果该用户还可以浏览广告,系统才会继续后面的流程。


图3.3搜索广告架构流程


广告投放引擎通过广告位管理模块,判断当前页面可以展现什么类型的广告,然后到相应类型的广告索引系统中查找可以展现的广告。之后,系统通过一系列的参数来确定哪些广告符合展现条件,然后把所有符合条件的合法广告放到一起,产生一个合法广告队列。例如某个广告的预算如果已经消耗完了,就不能进入合法广告队列了。
排序模块会对合法广告队列中的每个广告计算排序因子,这里用到的公式为bid×ctr,其中,bid是广告主在客户系统中提前设置的广告被点击后愿意支付的费用,ctr是系统预估这个广告会被用户点击的概率。不同广告投放引擎会有不同的排序方法,例如有些系统会引入平滑因子,对广告主的消费做平滑控制,让某个账号一天中某个时间段内的消费是平滑的。
根据排序因子可以判断哪个广告*终胜出,并可以计算胜出广告如果被点击后应该收取的费用(一般小于广告主设置的bid),需要注意的是,这个时候该广告还没有被扣费。然后根据页面的上下文内容或者这个广告前期的投放情况,选择一个*优的样式将广告展现到用户的搜索结果中,有时候样式会作为一个影响因子融入到排序阶段。
如果该用户点击了广告,广告引擎通过反作弊模块判断这次点击的意图是否合法,例如是否是竞争对手的恶意搜索和点击,如果是一次正常的点击,就对该广告收取相应的费用。
图3.3中,排序因子使用的是rankq=bid×ctr,一般情况下系统选择rankq*大的广告作为*后展现的广告,但是每次展现排序得分*高的广告,对系统来说并不一定是收益*大化的。在资源有限,预算有限,不同广告的投放条件也不同的情况下,如果知道了一天的所有流量信息后,往往可以离线找到收益更大的投放方式。如何优化系统的在线匹配策略,提升系统收益,一般被描述成一个二部图的匹配问题,也就是在线匹配(Online Matching),本书将在第10章中详细讨论。
不同的广告投放引擎有自己不同的业务逻辑,例如有些系统支持广告在某个时间段内可以均匀投放; 有些系统为了广告效果和用户满意度,一般不会给同一个人反复投递同一个或同一类型的广告,严格控制对用户投放广告的频次。
在线投放的过程中,多种类型的广告可能会同时满足投放条件,例如某次流量同时满足了品牌广告和普通广告的定向条件,这时候系统会对品牌广告设置更高的优先级,品牌广告可以在排序中得到更好的位置或者独享这一次展现机会,因为品牌广告可以给系统带来更多的收益。优先级控制模块就是用来控制不同类型广告优先级别。
有利益的地方就容易有作弊,如何反作弊是很多商业系统里必须要面对的问题,广告投放系统也不例外,其基本思想是要找出作弊流量和正常流量的差异,再有针对性地解决,这部分内容一般都是高度机密,各大公司反作弊的具体细节都不被外界所知。作弊无法根除,反作弊是一个猫抓老鼠的过程,职责就是不断地与作弊者切磋,提升作弊者的作弊门槛。本书将在第12章介绍在线广告系统中的反作弊技术。

相关推荐

微信二维码