广告系统架构浅谈

写在前面

最近即将入职字节跳动的广告系统部门,因此花了一些时间了解了一下现代广告系统的一般架构,在这里分享给大家。

广告系统一般架构

广告系统架构浅谈_第1张图片

整体上来看,广告系统由三个主体部分构成:
1、在线的高并发投放引擎(Ad server)。
2、离线的分布式数据处理平台(Grid)。
3、用于在线实时反馈的流式处理平台(Stream computing)。
这三部分各司其职,配合完成整个计算广告的数据挖掘和在线投放任务。
下面我们来看看按遵照功能划分,这个系统中都有哪些重要的模块:

一、广告投放机

广告投放机即图中的Ad server。这是接受广告前端Web server发来的请求,完成广告投放决策并返回最后页面片段的主逻辑。我们可以将它类比于人体的躯体。广告投放机的主要任务是与其他各个功能性模块打交道,并将他们串联起来完成在线广告投放决策。一般来说,为了扩展性的考虑,我们都采用类搜索的投放机架构,即先通过倒排索引从大量的广告候选中等到少量符合条件的或相关的候选,再在这个小的候选集上应用复杂而精确的排序方法找到综合收益最高的若干个广告。对广告投放机来说,最重要的指标是能同时处理的并发数,以及广告决策的延迟。

二、广告检索

广告检索包括图中的Ad index和Ad retrieval两部分。这部分功能,可以类比于人体的心脏,它主要的功能,是实时接受广告投放信息,建立倒排索引,以及在线时根据用户与上下文标签从索引中查找广告候选。实际上,检索技术的重要性体现在所有Web-scale的技术挑战上,也同样是大规模计算广告系统的基础。

三、广告排序

广告排序包括图中的Ad ranking和Click modeling两部分。这部分可以类比于人体的大脑,因为它是广告效果优化的关键。其关键技术,在于离线分布式计算平台上的海量数据支持的点击率预测模型的训练。当然线上如何高查询模型需要的特征并进行高效计算,也是非常关键的。另外,在需要估计点击价值的广告产品中,我们还需要一个点击价值估计的模型,或者一些简单的规则,但是不像点击率预测那样有较为稳定统一的建模方法,因此我们在这里主要强调Click modeling。

四、数据高速公路

即图中的Data highway。这部分完成的功能,是将在线投放的数据准实时传输到离线分布式计算平台与流式计算平台上,供后续处理和建模使用,它可以类比于人体的循环系统。由于在进行受众定向建模时,需要用到广告系统以外的其他用户日志数据或第三方合作数据,因此数据高速公路也担负着收集这些数据源的任务。

五、用户日志生成

即图中的Session log generation。从各个渠道收集来日志,需要先整理成以用户ID为key的统一存储格式,我们把这样的日志称为用户日志(Session log)。这样整理的目的。是为了让后续的受众定向过与程更加简单高效4。

六、商业智能(Business Intelligence,BI)系统

包括ETL过程、Dash-board和Cube。这些是所有以人为最终接口的数据处理和分析流程的总括。因为它担负着对外信息交流的任务,可以类比于人的嘴。由于实际的广告运营不可能完全通过机器的决策来进行,其间必然需要有经验的操作者根据数据反馈对一些系统设置做及时调整。因此,实现一个功能强大,交互便利的BI系统是非常重要的。

七、行为定向

包括结构化标签库(Structural label base), Audience targeting,以及User at- tributes的cache:这部分完成的是挖掘用户日志,根据日志中的行为给用户打上结构化标签库中某些标签的过程。这部分是计算广告的原材料加工厂,相当于人体的胃,也因此在整个系统中具有非常关键的地位。

八、上下文定向

包括半在线页面抓取(Near-line page fetcher)和Page attributes的cache。这部分与行为定向互相配合,负责给上下文页面打上标签,用于在线的广告投放中。

九、定制化用户划分

即图中的Customized audience segmentation。由于广告是媒体替广告主完成用户接触,那么有时需要根据广告主的逻辑来划分用户群,这部分也是具有鲜明广告特色的模块。这个部分指的是从广告主处收集用户信息的产品接口,而收集到的数据如果需要较复杂的加工,也将经过数据高速公路导入受众定向模块来完成。

十、在线行为反馈

这部分指的是一些需要准实时完成的一些任务,包括短时的用户行为标签和短时用户点击反馈等。当然,在利用日志完成这些逻辑之前,必须要进行的步骤是反作弊(Anti-spam)与计价(Billing)。为了组织这样一些前后有依赖关系的数据流加工过程,我们经常选用流式管理平台作为基础设施。需要特别指出,这一部分对于在线广告系统的效果提升意义重大——在很多情形下,把系统信息反馈调整做得更快,比把模型预测做得更准确效果更加显著。

十一、广告管理系统

这部分是广告操作者,即客户执行(Account execute, AE)与广告系统的接口,AE通过广告管理系统定制和调整广告投放,并且与数据仓库交互,获得投放统计数据以支持决策。一般来说,广告系统中只有这部分是面向用户的产品。根据对操作对象开放程度的不同,这一系统有时又有开放自助的需求,在这种情况下,还需要包含相应的财务结算功能。对这部分,读者可以从很多自助式广告产品,比如Adsense,的投放界面中了解这部分的功能,我们在本书中将不做重点讨论。

十二、实时竞价接口

这是广告交易市场实时向需求方平台(DSP)发起广告询价请求,并根据竞价结果胜出DSP的程序交易接口。它包括作为需求方时使用的RTBS(RTB for Supply),以及作为供给方时使用的RTBD(RTB for Demand)。这也是一个广告系统特有的功能模块,在程序化交易原来越流行的今天是广告系统很重要的功能之一。

你可能感兴趣的:(广告系统)