本文笔记来源于刘鹏、王超的《计算广告》第二版第九章 关键技术概览
目录
计算广告是一种典型的个性化系统,将离线的分布式计算平台和在线的流计算平台相结合,是系统生成个性化的常用方案。
9.1 个性化系统框架
一般的个性化系统由4个主体构成:在线投放引擎、分布式计算数据处理平台(离线)、在线实时反馈的流计算平台、连接以上3部分的数据高速公路。
- 离线数据处理平台,周期性的以批处理方式加工过去一段时间的数据,得到人群标签和其他模型参数,
- 在线流计算平台,负责处理最近一小段时间的数据,得到准实时的用户标签和其他模型参数
- 两者都存在缓存中,供在线投放系统决策时使用
9.2 各类广告系统的优化目标
计算广告的核心挑战是优化总体的利润,r为收入、q为成本、(a,u,c)分别为广告、用户、上下文。
不同广告产品的优化目标与约束
9.3 计算广告系统架构
9.3.1 广告投放引擎
1)广告投放机:接受广告前端Web服务器发来的请求,完成广告投放决策并返回最后页面片段的主逻辑,最重要的指标是每秒数(Query per Second,QPS)以及广告决策的延迟(latency)
2)广告检索(ad retrieval)。这部分的主要功能是,在线时根据用户标签(user attribute)与页面标签(page attribute)从广告索引(ad index)中查找符合条件的广告候选。
3)广告排序(ad ranking)。这部分是在线高效地计算广告的eCPM,并进行排序的模块。
4)收益管理(yield management)。我们用这部分来统一代表那些在各种广告系统中将局部广告排序的结果进一步调整,以全局收益最优为目的做调整的功能,如 GD系统中的在线分配、DSP 中的出价策略等
5)广告请求接口,用web表示,能够提供用户唯一的身份标识ID 以及其他一些上下文信息。可能是web服务器、可能是sdk、可能是API
6)定制化用户划分(customized audience segmentation)。由于广告是媒体替广告主完成用户接触,那么有时需要根据广告主的逻辑来划分用户群。
9.3.2 数据高速公路
数据高速公路(data highway)完成的功能是,将在线投放的数据准实时传输到离线分布式计算平台与流式计算平台上,供后续处理和建模使用,它非常类似于人体的循环系统。
9.3.3 离线数据处理
目标:1)统计日志得到报表,供人进行决策;2)机器决策(用数据挖掘与机器学习等技术进行受众定向、点击率预估、分配策略)
选用:Hadoop分布式存储+Mapreduce计算框架
主要模块:
1)会话日志生成:以用户ID为键;2)行为定向;3)上下文定向;4)点击率建模;5)分配规则;6)商业智能系统;7)广告管理系统
9.3.4 在线数据处理
模块:1)在线反作弊;2)计费;3)在线行为反馈;4)实时索引
9.4 计算广告系统的主要技术
1.从算法优化角度有
1)受众定向问题:即对a,u,c打标签以方便后续建模和市场售卖
2)eCPM估计,靠点击率预估完成每一次展示时的局部优化
3)在线分配,量的约束 和 即时决策的要求
4)机制设计(多方博弈中达到动态平衡时的收益最大化)
5)强化学习的探索与利用(E&E)
6) 个性化推荐
2.从系统架构看
1)实时索引技术服务于广告候选的检索
2)NoSQL数据库提供用户、上下文标签、其他特征
3)离线分布式平台+流计算平台
4)高并发、快速响应的实时竞价接口
9.5 用开源工具搭建计算广告系统
1)Web服务器Nginx
2)Zookeeper:管理多台广告投放机
3)全文检索引擎Lucene
4)跨语言通信接口Thrift
5)数据高速公路Flume
6)分布式数据处理平台Hadoop
7)特征在线缓存Redis,是一种NoSQL数据库,提供高性能的键值存储
8)流计算平台Storm
9)高效的迭代计算框架Spark