第1章
内容匹配广告投放技术:网盟概述&工程架构
1.1网盟概述
角色
|
关注
|
网站主(Publishers) |
用户体验,赚钱 |
广告主(Advertisers) |
投资回报率ROI |
网民 |
有用的信息,良好的体验 |
网盟(Ad network/Matcher) |
赚钱,找到网名和广告的最佳匹配,实现流量价值,平衡各方利益、构建可持续发展的生态圈 |
1.2网盟广告系统的工程架构
页面特征子系统:爬虫,收集到大量网页,基础服务处理页面,得到页面的特征。页面的主题,分类等
用户特征子系统:
CTR预估子系统:根据过去用户对广告的互动行为的训练,预测以后用户对广告的点击概率。
检索子系统:核心系统
广告特征子系统:
网盟广告检索系统— 数据角度
大计算量:每天100亿+广告检索量和行为采集量,相当于每秒11.5万QPS.且高速增长。
大数据量:分布式离线挖掘。每天P级规模数据入库,T级别特征产出,积累时间大于一年。在线实时特征规模在T级别,Key值数量100亿规模。
高增长率:数据、流量、机器增长规模每年超过50%。
系统机器数量:10000+高性能服务器。
网盟广告检索系统— 指标角度
高实时性:实时更新用户、网页、广告数据。系统100ms内完成实时检索。每秒10W+实时数据入库,生效时间<1s
高容错性:如果每台机器异常概率为0.1%,1W台机器的话,每天都会有10台机器故障。
实时检索服务:故障实时识别、流量自动切换到正常机器。
特征存储服务:数据多备份、持久化,重启快速恢复。
数据推送服务:数据推送状态快速迁移,备机提供服务。
高实验性:数据驱动系统演化,每天并发上百个实验。
高一致性:涉及到钱的问题,张冠李戴会非常麻烦。
高扩展性:数据增长迅速,系统需要支持热机扩容。
高可用性:7*24小时服务稳定,每天100亿次检索,出错影响用户体验。
1.3工程架构解决的技术问题
网盟广告检索系统--技术 |
|
产品技术 |
关键词定向,回头客定向,兴趣定向 |
应用技术 |
分层实验框架,用户识别,高性能检索 |
基础技术 |
分布式计算(MapReduce),流式计算(Stream),高性能计算(Hadoop),KV存储引擎(Redis),资源定位(ZooKeeper),消息队列(MQ) |
1.3.1用户识别
用户识别技术新动向—— Cookie Matching(Cookie Mapping)
1.3.2分层实验框架:为了支持更多的实验
实验样本要具有可比性
缺点:
实验容量有限。可用流量只有100%,没有分配到流量的机器需要等待。
实验和机器强耦合。不同机器部署的实验不同,实验流量变化时需要同时调整机器部署。
维护代价大。机器部署易购数量和实验数量对应,增加维护难度。
优点:
实验只消耗部署机器的资源。
结构简单,实验独占流量,排查问题简单,不存在相互影响。
如何提高实验的并发度?通过分层流量复用。
分层模型:每一层只能选择一个实验命中。层和层之间解耦,相互不影响。
E1和E2共享100%流量用于实验;
E3独享100%流量用于实验。
一份流量可以同时命中E1、E3、E4、E5。
通过给流量打标签,来判断流量命中了哪些实验。
缺点:
机器物理部署的应用包含所有实验代码,浪费资源,主要是内存。
存储性资源变成限制实验数量的主因。
优点:
实验和机器解耦。所有机器都可能命中实验,流量变化时不用调整部署。
实验数量不受限于流量大小,取决于实验设计。
实验机器同构,维护、发布简单。
1.3.3高性能检索
1.3.3.1高性能检索的计算模型
核心:Query构造,倒排索引,归并算法,大根堆。
简单的筛选在前面,快速的筛选广告。复杂的计算放在最后,只需要对少量的广告进行计算。=>系统更高效
1.3.3.1高性能检索的网络模型
检索程序是同步模型,计算量大。网络程序异步模型。
慢Query的问题,有同步模型引入。同步模型中慢Query可能把系统拖挂。
慢Query的产生原因:攻击行为,实验引入(流量小,但是实验性能低),服务Bug,网络抖动(机房网络不稳定),机器异常。
慢Query的监控和处理策略:
慢Query的比例波动检测,确定原因。
系统的自我保护机制,超过特定阈值,中断慢Query.
对慢Query的结果建立Cache.
对慢Query处理算法简化,牺牲效果,缩短处理时间。
直接丢弃慢Query.
1.3.3.2高性能检索的检索模型
广告库的逻辑结构
索引模型
广告检索对索引的技术要求:
实时性更新:数据更新1s内生效,高并发读写。
高查询性能:查询QPS达到1,000,000 — 10,000,000量级。
技术方案需要:
无锁的并发模型。加锁耗时是毫秒级别的,太慢了,所以不能加锁。
全内存的数据模型。
索引有两种结构:树形结构,和hash结构。
索引和数据的存储都是用内存池,原因:1.malloc需要用户态和内核态的转换,耗时太长,对性能影响很大。2.操作系统的内存管理是通用的,无法做到针对性的优化。自己的服务固定,内存管理策略也是固定的。所以可以更高效。
索引实时性,采用基准+增量的形式。
无锁的并发模型:
COW(copy on write),先复制一份,在老版本上读,在新版本上写,达到读写分离。完成后切换指针。
延迟销毁。等到老版本的线程都完成后才能删除老版本。如果判断呢?一般情况下,如果是毫秒级别的服务,可以通过等待1s或者2s后删除老版本,释放内存。
索引扩展:
索引的划分:可以在推广组的级别划分,也可以在索引的级别划分。如果划分为两组,每组都是原来的80%数据,那么每次都分别做80%,一共做原来160%的事情。如果是划分索引,选top100,如果是划分成了4组,那么每组都返回100个广告,一共返回400个广告,带宽增长了。
数据和计算的可扩展是基础。
最后通过对各指标的比较后,在推广组进行了划分。
请求进来之后做流量控制,然后把一个请求拆成多个请求。每个请求分配到不同的cluster里面,cluster是同构的,数据也是一样的。每个cluster里面有索引,索引更新基准索引,然后在基准上添加增量索引。广告传输使用分布式消息队列。每个集群放置哪些数据通过zk控制。
第2章
内容匹配广告投放技术:网盟广告匹配
2.0网盟生态圈:四方利益的平衡
广告主:ROI的高低,量
用户:更关注体验,希望广告对用户是有需求的
网站主:收入越大越好,用户不要流失
百度平台:收入,机器人力等成本,大家共赢的平衡,用户和网站主不流失,各方利益
2.1网盟广告投放
2.1.1按广告主表达方式分类
2.1.2按建模对象分类
用户维度—— 以Cookie为建模对象
流量维度—— 以当前URL为建模对象
2.1.3其他分类维度
时空维度:当前/历史, 长期/短期,地域
优化目标:品牌,展现,点击,转化
数据来源:搜索/浏览
2.1.4网盟广告投放
2.2广告匹配算法
2.2.1.网盟广告的特点:a.低点击率(千分之一,相比搜索广告点击率来讲),b.低margin(收入和投入的gap非常小,收入用来购置设备等,性能和算法效果折中),c.ROI难优化(广告主的ROI难监控,广告主的转化网盟无法得知,所以网盟只能靠猜测。但是用户和广告月相关效果越好),d.用户体验难量化(用户不同无法量化,有的用户敏感有的不敏感广告主出很高的价格时是不是要展现?)
2.2.2.广告检索漏斗模型——理想情况是效果和性能的折中
理想情况是把所有的广告计算一遍,但是无法做到,所以做成漏斗模型
从上到下分别是【片段触发,相关性排序,业务过滤,CPM排序,机制调整】
算法从简单到算法,广告量大到广告量小,分层的目的就是效果和性能的折中。
2.2.2.1片断触发:user profile片段,当前网页的片段,广告的tag,在广告检索模块建索引,tag->广告的倒排索引。倒排索引拉链的平均长度是千级别。筛选出千量级广告。
片段来源:当前网页,用户历史行为
片段类型:关键词,用户/流量标签,规则模板
2.2.2.2相关性排序:去掉低相关性的广告。千级别的广告。
1.Term Match:字面匹配度,用户的搜索词和广告主的题词之间有多少是match的。
2.Topic Match:语义模型,浅层分析的模型,投影到topic空间上。
3.Category Match:分类匹配,网页的分类和广告的分类是不是匹配。
最终的相关性排序函数:
人工标注语料来训练模型。随着语料规模的增加,加入更多的离散特性。加入人工的规则。
2.2.2.3业务排序:预算,地域限制等。百级别。
地域过滤,时间过滤,预算过滤,IP过滤,站点过滤,创意优选。
2.2.2.4CPM排序:ecpm==按照收入排序。cpm越高越放在前面。
eCPM= bid * Q(质量度,用点击度来衡量ctr)
price(i) = (bid(i+1) * Q(i+1))/Q(i)
2.2.2.5机制调整:用户体验和效果等等各方面的考虑。
过展现控制,出现的频率,频控等。
Hidden Cost: a.认为广告对用户/站点体验是有伤害的。b.对排名CPM调整CPM=(Bid-HC)*Q c.对计费进行调整Price=CPM(next)/Q+HC
2.3页面特征提取
页面结构特征:半结构化的网页
Refer Query提词:url中的refer=blabla
站点频道提词:
流量质量划分:网页质量好,如新浪首页等
页面主题划分:小说页面不适合页面提词
Term赋权:
统计维度:基本的TF*IDF赋权方式,TF()term freq, IDF(term在其他页面出现的频度)
结构维度:网页结构角度,主要是term出现的位置,比如出现在title一般会比出现在正文更重要一些
语义维度:从语义角度理解网页,利用篇章主题校验。网页的topic和term topic是不是匹配
广告库维度:关键词的购买信息。广告库买某个词的多,说明这个词会重要一些。
2.4用户特征提取:用户的历史行为特征
2.4.1历史Query特征
2.4.2历史浏览特征
2.4.3用户分类特征
2.4.4时效性(几天之前的行为和刚刚几分钟之前的行为权重不同)
2.4.5用户体验
2.5广告特征提取
2.5.1拍卖词特征:广告主提交的词,定向的受众。
结构分析:词法分析、句法分析。拍卖词的核心内容。例如空调维修
Term赋权:词的赋权,根据重要度
2.5.2创意特征:展现的物料特征
文本创意:飘红,关键词,长度
多媒体创意:颜色,形状,大小,语义
2.5.3到达页特征
网页分析:关键词
页面主题:到达页和广告的描述不一致的情况,监控钓鱼网站
转化页/咨询页:如果能把这个分析好的话,就能获取到广告主的ROI
2.5.4广告特征应用
广告分类:行业,敏感,欺诈
不相关提词挖掘:广告主为了骗展现,使用范冰冰、刘德华等,去掉不相关的词,提高准确率
相关性匹配:匹配度的高低
第3章
内容匹配广告投放技术:网盟CTR预估
3.1CTR预估背景
3.1.1网盟组成
内圈是网盟的部门划分
四个参与方:网站主、广告主、用户、百度网盟
3.1.2广告计费
3.1.2.1计费方式
按点击计费(CPC)
按展现计费(CPM)
按点击和展现混合计费(CPC+CPM)
3.1.2.2广义二阶价格拍卖(Generalized Second Price)
点击收取的费用是用于保持排名的费用
b=bid(出价)
p=CTR
如果要少付费,可以通过公式b2*p2/p1,来优化自己的CTR,增大分母少付费
3.2CTR预估特点
3.2.1CTR预估问题
线上的一次广告请求,表现是数据量大,响应时间短。
如果CTR预估系统是静态的,响应时间可以非常短,但是如果有bad case就无法处理,所以还是需要动态的。
点击率预估--机器学习模型
上图中,检索集合q表示一次query,列表示广告集合被点击或未被点击。每天的数据量大概是上亿级别。
3.2.2存在的挑战
挑战一:数据
a.海量数据:1>训练样本:每天上亿级别的访问量。2>特征类型多并且复杂:广告(创意不同导致点击率不同)、用户(有的人喜欢点,有的人不喜欢点)、流量()、季节、节假日(情人节)等
b.点击率偏多:
c.噪声数据多:播放网站的网站主自己点广告,误导算法。
挑战二:时效性
a.CTR随时间变化:季节变化,人的兴趣变化(买完了,就不再需要等),CTR冷启动。
b.Bad Case快速下线:新广告,新网站迭代调优
c.方法:
1>在线算法。快速更新CTR数据。
2>移动时间窗口的Batch算法。离线算法计算
挑战三:Exploration
a.CTR预估决定了未来训练样本中的广告。
b.exploration/ exploitation trade-off
c.长期收益 vs 短期收益
老广告ctr数据非常准确,新广告ctr数据缺乏,需要长期利益(投放新广告)和短期利益(投放老广告)之间的平衡
3.3CTR预估模型
3.3.1模型训练流程
3.3.2特征处理
三类主要特征:用户、流量、广告
特征类型:类别型特征(categorical feature)、连续值特征
特征表示:
使用one-hot编码类型特征
使用特征外积表示特征组合
特征维数等于类别个数和,特征个数海量
特征选择:
Filter类:只是使用一个特征,计算量小简单,不准确,不能克服特征之间的交叉关系
单特征AUC:描述排序能力
单特征AUC上界:描述打散能力
通过面积计算AUC:
Wrapper类:选取多个特征交叉组合
计算量比较大,计算一次代价很大
Embedding类:综合Filter类和Wrapper类,综合训练模型和加入特征计算的代价
3.3.3数据
数据来源:展现日志、点击日志、用户搜索日志等
数据处理:日志拼接、不全日志删除
数据净化:异常数据过滤、不可见日志删除
3.3.4模型
线性逻辑回归模型
参数估计:最大似然,基于拟牛顿迭代计算(梯度下降方法收敛比较慢,所以用牛顿法,具有线性的收敛速度,但是需要二阶的信息,矩阵)
3.3.5模型训练
分布式并行训练
MPI(Message Passing Interface):基于进程通信的计算模型,适合模型训练。内存非常大,数据和计算分离。计算性考虑。
Hadoop:基于Map-Reduce超大数据量并发计算,适合数据预处理。扩展性考虑。
模型更新:每过一定周期,重新训练模型;模型在线实时更新。
3.3.6评估系统
线上评估:
评估特征上线后,通过流量对比,观察收入各项指标的影响,包括CTR,CPM, ACP,到达,二跳等。代价大。
线下评估:
类别不平衡:模型排序能力(AUC);模型拟合能力(对数似然)
3.4小结
网盟CTR预估特点:海量数据(query非常大)、高维特征、类别极端不平衡、噪音大、时效性高等。
大规模分布式机器学习算法:
a.特征编码及选择
b.数据净化
c.大规模分布式训练
d.线上线下效果评估
第4章
展示广告投放技术:品牌展示广告(一)
4.1品牌展示基本概念
展示广告的分类
按广告作用分类:品牌广告(Brand Display)、直效广告(Direct Display)、交互类型(engagement oriented Advertise)
按创意形式分类:图片、图文、富媒体、视频、Email等等
品牌展示广告的目的
卖家与潜在目标群体的一种沟通形式。
卖家通过这种形式传递关于品牌或商品的正面信息,已达到起营销的目的。
营销目的一般包括是消费者:简历品牌和需求的关联,增强对品牌的喜好和忠诚,了解品牌及其相应产品、功能,了解品牌的最新动向如新品发布等。
广告和营销场景
影响品牌展示广告的主要因素:
a.人。b.品牌自身。c.媒体:覆盖率、质量、知名度。d.创业形式
展现(impression):一个页面的每个广告的出现都记为一次展现
4.2品牌展示广告售卖
4.2.1品牌展示广告售卖的参与者
参与者:消费者(在线用户)、广告主、广告代理商、媒体、售卖平台
广告主(Advertiser)视角:
媒体(Publisher)视角:
媒体行为:建立或组着特定内容、吸引特定受众、评估不同部分流量价值、打包流量并向各种渠道销售
媒体的收益:
短期收益:在当前流量和媒体价值上的广告收益Yield=PV*AdDensity*SellThroughRate*Price
长期收益:考虑广告对用户粘性、媒体价值等的综合和长期影响
媒体目标:平衡短期和长期收益的基础上是收益最大化
售卖方:
a.媒体独立售卖
b.通过售卖方进行售卖,如Ad Network
c.独立售卖可以作为通过售卖方进行售卖的一个简化情况
4.2.2品牌展示广告售卖方式方式-包段
包段:媒体的某组广告位一段时间内有一个广告主独占或者几个广告主轮播,如首页包天
计价方式:CPD, CPT
特点:
简单易组织,广告主承担流量变化的风险、无法区分同一位置不同时间、不同用户价值,广告主和媒体双方的价值都没法最大化
4.2.3品牌展示广告售卖方式方式-GD合同制
广告主与手买房建立合约,以一定的CPM预约符合定向规则、时间规则和其他规则的一定数量的广告展现
定向规则:人群定向(如性别、年龄、关注点等),媒体位置定向(如汽车频道首页,女性频道二级内容页等)
其他规则:Frequency Capping(多少次效果最好,且不影响用户体验), 投放均匀度(多长时间投一次)
广告主需支付相应的费用,CPM*实际广告展示
当实际广告展现无法达到约定时,手买房对广告主进行补偿
对广告主:
保证覆盖和投放量
比包段形式有更灵活的定向,减少浪费
通过GD售卖的流量一般较NGD流量有更高的媒体质量
对媒体:
通过媒体产品包装、市场、谈判等环节产生媒体品牌溢价,使广告主更愿意支付高价购买
相比包段形式,可以提供更多种定向,提升媒体价值
4.2.4品牌展示广告售卖方式方式-NGD
媒体售卖率的概念 SellThroughRate = SoldImpressions/Capacity
现有包段或者GD合同之外的流量成为
剩余流量
通常的选择是讲剩余流量交给网络联盟或Ad Exchange进行基于拍卖的售卖
付费:CPC,CPA等
4.3品类展示广告的精准投放技术
4.3.1精准投放的定义和作用
4.3.2Media Focused Targeting
offline投放形式:户外(地点选择),报纸杂志(媒体用户群体选择),电视,广播
online投放形式:定位到站点,定位到页面关键词
特点:时间性、粒度、真正想定位什么?
4.3.3Audience Focused Targeting
Demographic:人口统计资料,性别、年龄、职业、收入等等。核心是数据的采集、数据整合,属性预测和机器学习技术。DMP(Data Management Platform)
Geographic:家庭地点、工作地点、常见地点、实时地点。地点周边信息如商业配套等。核心:数据采集,数据整合,商业场景。IP地址,基站信息等。Yahoo! Geo
Lifestyle/Psychographic:生活习性、偏好、兴趣爱好等。核心是数据采集、品牌市场细分与洞察、用户行为分类技术
Re-targeting/Re-messaging:定向信息:用户和商家所产生的历史互动,利用这样的信息再进行投放广告。例如对持有VIP卡的人再进行投放广告。曾经活跃但最近一个月没有访问的人。核心是:线上线下数据的贯通、线上用户行为记录。
Behavioral:定向信息:用户的在线行为包括搜索和网页浏览等。场景:历史搜索定向,Implicit targeting。核心是:用户行为与商品关联理解与洞察,用户行为基础分类技术,特征提取和机器学习技术。Predictive Model/Look-alike targeting。例如想知道对我的商品感兴趣的人的特征,可以先通过一批对我的商品感兴趣的人,通过对这些人的行为的各种特征的提取和训练,生成一个model,来区分其他的用户是否对我的商品感兴趣。
4.3.4智能创意
同一个广告的不同creative,根据不同的用户使用不同的creative.
使用用户的信息,信息越详细效果越好但是会涉及到隐私问题。
4.4品牌展示广告的基础技术
4.4.1GD合同制售卖的基本问题
a.订单接受控制(Admission Control)
订单要不要接受?是不是能够保证GD?
supply forecast供给预测
假设:对将来的媒体资源攻击有准确的预估
决策逻辑:
列举已确定订单和新增订单。新增订单可能导致已确认订单最终无法满足,并产生赔偿和信用上的损失。
分别以确认订单为总体(如果拒绝新订单),和以已确定订单和新增订单为总体(如果接受新订单),确定最优化库存分配方案,并计算预期的收益(减去赔偿)
收益>0则接受,否则拒绝
需要解决最优库存分配方案问题
b.库存分配
所有网站的所有广告位都是库存。
根据目前以确定的所有订单,应该如何分配广告展现机会到每一个订单?
假设已知条件(依赖条件):1.对各种不同inventory spec在不同时间供给的预测。2.对各种inventory spec可售卖价格的预估。
优化目标:最大化剩余库存的价值(减去under-delivery的罚款)
限制条件:1.每个inventory spec所分配的库存,不超过符合该spec的总库存(inventory spec包括:定向(人群、位置),时间)。2.总库存
算法实现是需要简化的方法
如利用一定抽样,抽样不足时参考相似inventory spec。
不使用线上的所有数据,采用抽样的方法。
库存分配问题的扩展
考虑:1.广告主希望在订单时期均匀输出广告展现。或者第一次第二次展现不收费,第三次展现采收费的情况。2.当同时售卖GD和NGD时,优化总体收益(Yahoo!)
定义偏离均匀分布所产生的惩罚。
在优化目标中,加入对总惩罚的最小化的加权。
c.价格体系
价格是基于销售谈判的,但对于每个订单,底价多少合适?
对供求关系的预期?
在上图的价格和售卖量的曲线中,找到预期收益的最高点。
广告系统中的访问流量基本确定。
为售卖、合同谈判提供价格引导。
知道价格基于供需关系,优化预期收益。
一个简化的模型:1.基于对供给的预测:短期内供给与价格无关。2.基于对价格和需求关系而的预测。
4.5品牌展示广告的效果评测
有的广告需要通过点击来进行转化,但是还有些品牌广告不需要点击。
不需要点击的广告如何来衡量:
1.通过问卷对比投放前后的变化,比如互动指数,搜索了品牌或者访问了相关站点,或者分享了品牌故事软文等。
2.通过销售数据。
广告影响方式的角度:
Reach:
Frequency/频次:
Dwelling-time/Brand Exposure:用户在广告的停留时间
媒体的综合质量和创意互动程度