大型广告系统架构 — 检索模块

本文探讨了大型广告系统中检索模块的架构设计,包括广告数据、定向数据和内部策略数据的处理。核心模块包括Router、检索模块和排序模块。检索模块主要解决相关性问题,使用B+树等数据结构,面对数据更新和内存管理的挑战,采用增量更新(Copy-On-Write策略)和全量更新(双Buffer切换)的方法。文章还讨论了冷启动、内存数据结构设计以及数据更新策略等问题。
摘要由CSDN通过智能技术生成

广告系统主要解决一个问题:在给定展示场景、用户的情况下,返回收益最大化的广告。下图是一个广告系统最简单的架构图。其中,Router,检索模块,排序模块一般称为广告系统的核心。同时,与之辅助的至少包含三大系统:特征计算系统,计费系统,投放系统。



先介绍一下三个辅助系统的主要功能:

  • 特征计算系统:实时计算广告展示环境 (网页,APP) 的特征,用户的特征。并提供实时查询功能。

  • 计费系统:实时处理广告的展现 (CPM)、点击 (CPC)、转化 (CPA)数据,并计算广告的剩余预算。需要包括反作弊功能。

  • 投放系统:供广告主使用,设置广告的基本信息和定向条件。


核心部分包含了三个模块:

  • Router:对外提供HTTP服务。接收请求后,依次与特征计算系统、检索模块、排序模块交互,最后返回广告。

  • 检索模块:检索模块主要解决相关性问题。首先,根据广告主设定的定向条件筛选出本次请求能否返回的广告;然后,按多种定向策略筛选出与本次请求最相关的若干个广告。

  • 排序模块:排序模块主要解决收益最大化的问题。通用的排序标准是eCPM。以CPC广告系统为例,eCPM=eCTR*CPC,CPC是广告主设定的,排序模块的核心就是使预估的eCTR尽可能地接近实际CTR。




本文讨论检索模块的架构设计。在检索模块中使用的数据一般可以分为三类:

  1. 广告本身的信息。例如ID,标题,描述,出价,投放时间,预算余额等。

  2. 广告的定向数据。例如国家,设备,人群等。

  3. 各个定向策略使用的内部数据。例如,预先计算出的各个广告的特征,人群的兴趣点扩充数据等。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值