CTR系统设计篇
CTR(广告点击预估)绝对称得上是工业界和学术界相结合的一颗璀璨明珠.
随着机器学习技术的不断发展,以前专门的广告优化师和策略师,越来越变得不那么重要。技术带来了效率的变革,也就是说其实广告投放的门槛越来越低。对于小的创业团队和个人而言,这个行业也有覆盖在卵石之下的金矿,和上车发财的机会。
关于 CTR 预估的众多专业知识和广告行业诸多的业务模式,不是这篇文章的重点。下面是一个简单的 CTR 系统设计思路,对于 CTR系统设计感兴趣的读者而言,可以管中窥豹举一反三。
系统设计

-
客户调用端:访问 Online Serving 的时候需要自己处理数据预处理特征转换等,访问 API 服务;考虑到 CTR 系统的吞吐量比较大,为了防止重试带来的流量放大效应,所以失败之后不重试,由客户端自行采用策略来兜底;小流量AB测试是为了测试 Online Serving的效果,采用流量染色等方法;定期导出数据到 Offline Training 是给离线训练系统导入上游数据。
-
在线服务 Online Serving:提供预测的api服务;还支持给离线系统进行数据预处理,比如生成对 Tensorflow 友好的tfrecords 格式文件等,需要借助 Spark 等第三方组件。考虑到吞吐量,推荐使用 golang Gin 做 web 服务,或者基于 Scala 的 akka http。这个服务里面可以调用或者包裹 Tensorflow Serving 对外提供一致的预测服务。
-
离线训练:定期进行模型训练;模型格式转换,比如 pmml pkl model之间的相互转换;上传模型给在线服务。
CC BY-NC-SA 4.0
本文由 Xiang CHEN 陈向 创作,采用 CC BY-NC-SA 4.0 协议,首发于 https://chenxofhit.xyz 个人网站。
您可以自由地:
- 分享 — 在任何媒介以任何形式复制、发行本作品
- 演绎 — 修改、转换或以本作品为基础进行创作
惟须遵守下列条件:
- 署名 — 您必须给出适当的署名,提供指向本许可协议的链接,同时标明是否(对原始作品)作了修改。您可以用任何合理的方式来署名,但是不得以任何方式暗示许可人为您或您的使用背书。
- 非商业性使用 — 您不得将本作品用于商业目的。
- 相同方式共享 — 如果您再混合、转换或者基于本作品进行创作,您必须基于与原先许可协议相同的许可协议分发您贡献的作品。
商业使用请联系:[email protected]