计算广告技术框架

找完工作之后问了师父以后的工作内容,说是要进行广告CTR预估方面的业务,so...在网上、图书馆找了很多相关的资源和论文自己学,早点入门早点上手。一边写毕设论文,一边正经看了将近10天刘鹏老师的《计算广告》,大致了解了自己以后的工作背景和环境,抽时间总结一下。


一、计算广告处理框架

我对一个东西的掌握比较习惯从整体框架入手,知道我在系统中所处的位置该做的事,并如何与其他业务组件相协作。计算广告的目标是从海量广告侯选库中根据用户标签(有可能不需要)和上下文环境(通常指用户的查询关键词)并结合广告主给出的竞价投放到用户的搜索或其他浏览界面,根据广告的CTR预估进行排序来使广告排在前面的广告被点击的概率尽可能高,从而实现公司的盈利。一般来说,一个完整的广告系统含广告投放引擎、离线分布式处理平台、在线流处理平台和数据高速公路四部分。框架如下:

计算广告技术框架_第1张图片

下面对各个部分的作用进行分别介绍。

广告投放引擎:响应前端发来的广告投放请求,结合用户标签、页面标签等生成查询条件,从广告库中检索出满足要求的广告,运用CTR预估模型进行广告排序并投放到用户浏览界面。

数据高速公路:将投放引擎的投放日志实时反馈给离线分布式计算平台和在线流计算平台,此外,还负责从第三方数据源搜集日志便于更加精准地投放。

离线分布式计算平台:如图所示有四个小组件,其中点击率建模即CTR预估,是离线处理当中对提升eCPM非常重要的部分。主要是挖掘用户日志,建模,来准确预估CTR。离线平台通常采用批处理方式进行模型更新。

流计算平台:流计算主要是进行在线实时反馈,对时间效率要求很高。

对于各个组件,有相应的开源系统来方便我们搭建一个完整的广告系统,说明如下:

Web服务器:Nginx服务器进行单一服务器搭建,ZooKeeper进行多服务器的分布式配置和集群管理

广告库:用MySQL进行存储是没啥问题的

广告实时索引:Lucene。

离线分布式计算平台:Hadoop。这个好像不是性能最好的,但是普适性最强,适合进行分布式管理,至于Spark...不知道以后会不会换代

流计算平台:Apache Storm。

数据高速公路:Flume

各种标签和特征缓存:一般来说,特征和标签的量略大,在内存中装不下,需要借助工具进行管理。一般用redis

通信接口:由于不同组件可能使用的语言不太一样,组合起来不能直接用,需要一个跨语言通信接口进行连接。一般用Thrift


二、不同组成部件的关键技术

1.广告检索:在搜索广告中其实是可以拿搜索引擎中普遍采用的倒排索引来进行的。而对于竞价广告领域,需要对传统倒排索引技术进行改进,这是因为竞价广告的关键词并非几个关键词那么简单,需要关联用户的历史搜索关键词来定位广告,因此搜索关键词多达几十甚至几百个。此时,可用布尔表达式检索和相关性检索等。对于文档相似性的比较,可以用向量空间模型进行衡量

2.查询拓展:是搜索广告的关键技术之一。只是直接采用用户搜索关键词进行广告匹配的效果不好,有时甚至匹配不到任何广告,此时需要对用户的关键词进行适当拓展。目前有基于推荐的方法、基于主题模型的方法、基于历史效果的方法三种。其中基于推荐的方法几乎能将所有推荐算法应用进来,但在实际中往往不可行;基于主题模型的方法只是基于文档内容的匹配,并不是基于用户意图的匹配,只能作为用户搜索数据的不足时的补充方法;基于历史效果的方法效果蛮好的,常作为前两种方法的补充方法。

3.广告投放位置:具体放在北区还是东区。北区对用户体验的影响稍明显一点。这实质上是一个带约束优化问题,在不影响用户体验的约束下将利益最大化

4.CTR预估:这是个大领域,比较通用的是采用LR模型作为基础模型,应用于CTR预估领域。日前,百度用DNN算法应用于CTR预估,貌似效果比LR要好一些,这些以后再深入讨论

5.探索与利用:

你可能感兴趣的:(计算广告学)