赞
踩
声明:
1)该博文是整理自网上很大牛和专家所无私奉献的资料的。具体引用的资料请看参考文献。具体的版本声明也参考原文献
2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应,更有些部分本来就是直接从其他博客复制过来的。如果某部分不小心侵犯了大家的利益,还望海涵,并联系老衲删除或修改,直到相关人士满意为止。
3)本人才疏学浅,整理总结的时候难免出错,还望各位前辈不吝指正,谢谢。
4)阅读本文需要互联网广告业的基础(如果没有也没关系了,没有就看看,当做跟同学们吹牛的本钱)。
5)此属于第一版本,若有错误,还需继续修正与增删。还望大家多多指点。请直接回帖,本人来想办法处理。
前面几篇博文都说了很多业务架构方面的东西,顺便说了一些用户基础信息的挖掘相关的事情。那些很多都已经被大神们说得淋漓尽致了,除了定向中说的那几个定向方法以外。
下面就开始一些跟技术相关的东西了。
1.1前言
在说了这么多技术无关的东西后,是要来点有技术性的东西了。
这系列的博文好像看起来并不能让很多人看的爽,因为没啥公式与技术相关的东西。可以想象到的是,大部分人花不了5分钟就看完了,觉得没啥含量。只是这些东西才是一个广告产品重要的东西,也是老板关心的东西,而用什么模型,什么挖掘手段,怎么去估ctr,真没有哪位老板会关心。
工程师思维不是那么有全局观的,技术也不能一头钻着。广告算法工程师需要更广阔的视野,去看到更多的可能性,更多的增长点。
这话还是很客气和空虚的,用人话来解释一下:想要赚钱,把前面那套东西搭起来,就能赚不少钱了,再让运营和销售多拉点有钱的广告主进来,那钱就赚得更多了;而用什么技术去预估ctr,用什么模型,用哪个大数据,都只是一些辅助手段,没有前面的那些工作,这些都只是镜中花、水中月。一个广告业务会因为出现了新的业务售卖形式获得业务指标大幅度的增长,但不会因为用了一个什么模型有翻天覆地的变化。再好的ctr预估、再好的模型、再大的数据,广告业务设计得很差,照样赔本。广告算法工程师拼了老命提升的一点点业务指标(点击率和收入),可能把流量换种方式售卖就达到了,而且广告主掏钱掏得爽爽的,用户也不反感,就像请第三方公司挖掘出广告主的潜在客户,直接让广告主高价来买这些流量,这样广告主满意了,用户也觉得还不错。
人话说完了,继续一些套话。广告算法工程师要注意对业务的掌控能力,看出在整个业务系统需要在哪个点发力,才能得到可观的业务指标提升,而不是一味地优化模型与特征。广阔的视野,能帮助看到业务的发力点,甚至能看到从当前业务中催生一个新业务,这样的广告算法工程师才是合格的。
这一段话也就是为了给自己前面那几篇博文加点回头率罢了,下面开始系统方面的东西了。
1.2 广告业务系统架构
为了让各位对系统有一个全面的理解,这里把整个系统的架构列出来。
一个用户过来后,这个广告请求会进入到广告投放平台。广告投放平台会读取一些索引,决定要不要进行投放,决定投放后,广告投放平台会读取广告主服务页推送过来的广告计划,做一些频次上的控制,再把剩余的广告交给线上定向模块。线上定向模块从线上存储器读取用户的profile数据,根据每个广告计划的定向条件去筛选,筛选剩下的广告计划就是适合投这个用户的广告;再对筛选剩下的广告,做一个比较粗的选取,选择其中质量较高的返回给下一个模块,这个工作由线上定向模块完成。
线上定向模块过后,剩下的是相对优质的若干个广告,开始对这若干个广告进行预估ctr,预估ctr过程中需要去线上存储器读取特征,一般还需要本地加载的一个模型。当ctr预估完成后,就进行算分排序,计算扣费,再加上一些业务策略,从而选出最合适的若干个广告,返回给广告投放平台。算法排序和计算扣费的方式在上一篇博文里面描述过,不多讲。
广告投放后,会产生日志,日志会通过日志收集系统收集到数据仓库。
广告算法工程师会从数据仓库里面获取各种投放日志,提取特征,把特征导入到线上存储器;还会根据投放日志,生成训练样本,训练模型,把模型推送到线上服务器,由线上服务器进行加载来给预估ctr使用。
技术实力强大的公司,还能进行在线学习,就是模型随着投放数据的不断产生,不断更新的,这个对工程能力要求很高。
1.3 注意点
上一节说的那个系统,很多可以由兄弟团队帮助搭建,但是,有两个点需要注意的。
第一个就是离线训练模型,这里面文章很大,大公司能用自己弄的mpi并行计算集群搞得很牛逼。然而不是每个公司都是大公司,也不是每个组都具备这样的技术实力,那就带来了问题,早期的公司如何快速实现系统的搭建?
在这个时候,工具论是个绝对可行的方法,如mahout,或者说vw。其中mahout可以有random forest,而vw有logistic regression,这两种模型在广告技术上是用得比较广泛的了,尤其是logistic regression,很多公司都在用。单机是很难达到要求的,并行计算是很重要而且要快速实现的,所以选择一个好的工具,非常重要。
第二个就是线上存储系统,离线特征的设计,如何方便存取也很重要。因为线上存储器空间有限,不可能无限扩展,有些特征如果不做区分,所占的空间将非常大。为了缩减数据体积,对特征做一些清洗,归并操作非常重要,这些也很考验数据挖掘工程师的经验。
多位同事的指点。
[1] http://www.techinads.com/archives/41江申_Johnson的博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。