微博 崔建兴 - 微博社交广告系统架构实践

盛雁菡

2017/12/18 发布于 技术 分类

从如何构建高可用的广告系统出发,描述系统架构设计的一些技术考量。包括引入开源web服务提升开发效率;利用内存数据库提高维度查询的性能;以及保障系统可用性需要的一些基础设施和方法。

文字内容
1. 微博社交广告系统架构实践 崔建兴 微博广告业务部技术专家
2. 崔建兴 微博广告业务部技术专家 2013加入微博,负责过推荐、广告等业务。参与过多个推荐广告系统的架构设计。 对如何构建高性能web服务、离线数据挖掘、策略算法工程化等领域感兴趣。目 前专注在微博广告平台的性能和效果优化。
3. • 微博社交广告系统 • 社交定向的方法 • 在线分发服务 • 总结和展望
4. 广告系统 • 垂直业务系统:搜索、推荐、广告 • 平衡客户、用户和平台的利益 平台(收入) 用户(体验) 客户(ROI)
5. 微博社交广告 • 粉丝头条 • 无购买门槛 • 社交关系传播
6. 微博社交广告特点 • 海量广告主 • 定价保量 • OCPM
7. 微博广告系统 用户行为 模型 预算 投放 在线分发 广告属性 竞价 用户属性 人群定向
8. 广告系统功能 • 为广告主找到目标用户——人群定向 • 把广告展示给目标用户——在线分发
9. • 微博社交广告系统 • 人群定向的方法 • 在线分发服务 • 总结和展望
10. 人群定向 • 用户属性和广告定向条件之间的匹配 • 维度:性别、年龄、地域、兴趣、设备、社交关系,考虑交叉 • 实时性:状态实时修改 • 性能要求:10ms以下 select 广告库
11. 传统属性定向 • Select gender =‘male’ and locate = ‘beijing’ male beijing 1 0 0 0 1 1 0 0 cand =… 1 ∩ … 0 1 0 0 0 0 1
12. 需要解决的问题 • 降低使用门槛 • 冷启动客户如何开始投放 • 复购用户如何扩展目标人群
13. 社交定向 一度关系 二度关系 相似用户 行为定向
14. 一度关系 1.关注流信息过载 2.精准触达 3.粉丝传播效果好 粉丝 广告主 关注
15. 二度关系 1.通过粉丝关系进行人群扩散 2.基于社交关系的Look-alike 3.根据亲密度选取关键节点 粉丝 广告主 关注 关注
16. 关系定向的实现 人群挖掘 builder 离线数 据 倒排索引 倒排索引 倒排索引 分发 离线 关注 广告主 uid id uid id uid id uid id cand =… uid ∩ … id uid id uid id uid id 在线
17. 亲密度 1.衡量用户对其关注用户的感兴趣程度 2.受转发、评论、赞、关注等行为数据影响 3.节点筛选
18. 相似用户 1.通过粉丝相似度挖掘相似用户 2.通过相似用户进行定向的扩展 广告主 关注 相似用户 关注 关注
19. 相似用户计算 1.协同过滤算法计算粉丝相似度 2.头部用户筛选 ??????#$ = ??????# ∩ ??????$ ??????# ??????$ ??????# = ??????*,??????, … ??????. , 用户i的粉丝列表 ??????#$ , 用户??????和??????的粉丝相似度
20. 相似用户筛选 头部 影响力 领域 1.粉丝、阅读 2.传播效果 3.垂直行业
21. 行为定向 1.利用互动行为扩展定向人群 2.行为的实时反馈 3.行为类型:转发、评论、赞、关注 互动人群 关系 扩展人群
22. 社交关系定向总结 1.系统自动实现定向人群的挖掘和扩展 2.根据一度关系、二度关系解决了冷启动的问题 3.行为定向丰富了复购用户的可定向人群
23. • 微博社交广告系统 • 社交定向的方法 • 在线分发服务 • 总结和展望
24. 微博广告系统 用户行为 模型 预算 投放 在线分发 广告属性 竞价 用户属性 人群定向
25. 分发服务 1.系统控制中心 2.高性能的web服务 3.业务逻辑多,迭代速度要求高
26. 分发服务 分发控制 预算控制 分发服务 人群定向 用户画像 竞价
27. 技术选型要求 • 控制中心:稳定 • 耦合服务多:并行访问、负载均衡 • 保证业务迭代速度
28. openresty的使用 • nginx的轻量和稳定 • 协程的设计降低了并行调用的成本 • Lua语言迭代速度快,性能为c的70%
29. 服务分层设计 业务框架 Kafka 实时处理 openresty interface 配 集 feature 置 中 ES 群 nginx db handle 心 RPC服务 db api
30. 基础设施 配 置 管 理 业务框架 实时计算 离线计算
31. 实时计算 • 业务、性能指标监控 • 集中式处理架构 kafka flume log logstash flume log logstash ES集群
32. 实时计算 • 以kafka为核心构建数据分发总线 • 数据传输量大,网络IO成本高 • 分布式节点处理架构
33. 总结&展望 • 以社交关系为基础进行人群自动挖掘 • 在线分发服务的实现
34. 总结&展望 • 传播节点的控制 • 内容原生广告的实现 • 人群定向的实时性