个性化系统框架
计算广告是根据个体用户信息投送个性化内容的典型系统之一
个性化系统的构成部分
- 用于实时响应请求,完成决策的『在线投放引擎』
- 离线的『分布式计算』数据处理平台
- 用于在线实时反馈的『流计算平台』
- 连接和转运上面三部分数据流的『数据高速公路』
协作流程
- 『在线投放系统』的日志接入『数据高速公路』
- 『数据高速公路』把日志转运到『离线分布式平台』和『流计算平台』
- 『离线分布式平台』周期性的批处理历史数据,得到人群标签和其他模型参数,放到缓存中,供『在线投放系统』决策使用;
- 『流计算平台』准实时的处理最近一小段时间内的数据,得到准实时的用户标签和其他模型参数,放到缓存中,供『在线投放系统』决策使用。
web规模问题比较
-
主要准则
- 搜索:相关性
- 搜索广告&展示广告:利润
- 个性化推荐:用户兴趣
-
索引规模
- 搜索:十亿级
- 搜索广告:千万/百万级
- 展示广告:百万级
- 个性化推荐:亿级/百万级
各类广告系统优化目标
展示量合约:满足各合约带来的约束
ADN:预估和优化点击率,与广告主出的点击单价相乘得到期望收入
ADX:直接用广告主的展示单价作为期望收入
DSP:预估和优化点击率、点击价值和成本
计算广告系统架构
广告投放引擎
- 广告投放机:接受广告前端web服务器发来的请求,完成广告投放决策并返回最后页面片段的主逻辑
- 广告检索:根据用户标签和页面标签,从广告索引中查找广告候选
-
广告排序:高效计算eCPM,并进行排序
- 若依赖点击率估计:则需要用到离线计算得到的CTR模型和特征;以及流计算得到的实时点击率特征
- 若依赖点击价值估计:则需要点击价值估计模型
-
收益管理:统一代表那些在各种广告系统中将局部广告排序结果进一步调整,以全局收益最优为目的做调整的功能,需要用到离线计算好的某种分配计划
- GD:在线分配
- DSP:出价策略
-
广告请求接口
- 定制化用户划分:从广告主处收集用户信息的产品接口
数据高速公路
- 将在线投放的数据准实时传输到离线分布式计算与流式计算平台上
- 由于受众定向建模时需要用到广告系统以外的日志或者第三方数据,因此也需要支持收集这些数据源
离线数据处理
-
主要目标
- 统计日志得到报表、仪表盘数据等,供人工决策
- 利用数据挖掘、机器学习技术进行手中定向、点击率预估、分配策略规划等,为在线决策提供支持
-
主要模块
- 用户会话日志生成:从各个渠道收集来的日志,需要整理成以用户ID为key的统一存储格式
- 行为定向:根据日志行为给用户打结构化标签库中的某些标签
- 上下文定向:半在线的页面抓取和页面标签的缓存,给上下文页面打标签
- 点击率建模:在分布式计算平台上训练得到点击率模型参数和特征
- 分配规划:利用离线日志进行规划,得到适合线上执行的分配方案
- 商业智能系统:包括ETL过程、仪表板和Cube。以人为最终接口的数据处理和分析流程的总结
- 广告管理系统:广告操作者与广告系统的接口
在线数据处理
- 在线反作弊:实时判断作弊流量并去除
- 计费:通知广告索引系统下线预算耗尽的广告
- 在线行为反馈:包括实时受众定向和实施点击反馈,将短时间内发生的用户行为和广告日志加工成实时用户标签和实时点击率模型特征。
- 实施索引:实时接收广告投放数据,建立倒排索引
计算广告系统的主要技术
算法优化角度
- 特征提取:对a,u,c打标签
- 点击率预测:估计eCPM
- 在线分配:量的约束、投放时即时决策
- 机制设计:在多方博弈的市场中达到动态平衡时的收益最大化
- 探索与利用(E&E):更全面的采样整个(a,u,c)空间以便更准确的估计点击率
- 个性化推荐:用于实时竞价中效果类DSP的个性化重定向中
系统架构角度
- 广告主的预算、定向条件等信息设置后,线上需要快速生效 ===> 实时索引技术服务于广告候选的检索
- 需要用NoSQL数据库为投放时提供用户、上下文标签和其他特征
- MapReduce分布式计算平台进行大规模数据挖掘和建模;流计算平台实现短时用户行为和点击反馈
- 实现高并发、快速响应的实时竞价接口
用开源工具搭建计算广告系统
web服务器Nginx:高性能、高并发、低内存
分布式配置和集群管理工具ZooKeeper:基础原理Paxos算法
全文搜索引擎Lucene,基于Lucene用于云计算的Elasticsearch
跨语言通信接口Thrift
数据高速公路Flume
分布式数据处理平台Hadoop
特征在线缓存Redis
流计算平台Storm
高效的迭代计算框架Spark
本文永久更新地址: https://notlate.cn/p/e394cace5479b36a/
I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?