运营商数据分析挖掘在广告行业的应用
在前两天的分享中,同事提到了,目前广告行业正在经历一场深刻的变革,由‘注重触达’转为‘注重精准营销’,有‘单向营销’转为‘互动营销’。
实时上,这场变革对广告技术影响也非常深刻----直接导致了‘搜索、推荐、广告’三个技术趋于融合。
为什么会导致这一趋势呢?因为这场变革的核心是对用户的理解,是通过数据分析师的数据来快速解读用户。简单说,品牌类广告是‘轰炸用户’,效果类广告是‘迎合用户’。
下面我们"数据分析师"简单看一下在拥有不同的数据源时,如何做到‘迎合用户’
第一种:我称之为‘算命先生’,这里的算命先生可是褒义词,算命算的好,里面的学问大的很。算命先生主要是收集当事人的当前信息,以及所有人的统计信息。主要用到统计学相关知识。
在DSP里,单纯根据流量数据和效果监测数据来投放,就属于这种方式。即:看一下效果好的人,当初看广告时是在哪儿看的,看的什么内容,什么时候看的,用什么浏览器看的等,来决定下次我们还在这个时间段,这个网页上,给使用这个浏览器的人投放。
第二种:我称之为‘管中窥豹’,即通过布码,来捕获用户的部分离散的网络行为。比如,我在某个看照片分享网站上有布码,我可以给到过这个网站上的人投放相机广告等。
布码范围大了以后,甚至可以将这些离散的行为点串连起来,获取到用户的行为轨迹,从而分析用户特征,以此作为广告投放依据。
但是,布码对站长来说,相当与在自己家里放了个别人的摄像头,所以稍大一点的网站对布码都是有些抵触的。想在各大电商,搜索引擎等流量巨大的站点上布码,几乎是不太可能的。因此,通过布码获取到的用户行为只能是一些离散的行为。这种方式对用户的分析是有限的。
问题1:布码指的是打点么?
嘉宾回答:就是将自己的代码加载到客户的网站上,常见的有图片布码:即客户的网站上加入一个1像素的隐藏图片,用户访问网站时,浏览器发送一个图片请求到布码者的服务器。
提问者:嗯,和打点日志差不多
嘉宾回答:这种对客户站点影响较小,也是一般的客户乐于接受的方式,缺点时对布码者能获取到的信息有限。
还有一种时js加码,即客户网站上加入布码者的js代码。这种方式布码者可以获取更多的信息,比如模拟客户做cookiemapping, 但站长一般不太欢迎这种方式。
第三种:我称之为‘盲人摸象’,即通过各种渠道购买数据,比如从CDN厂商或其他渠道获取数据。这部分数据价值就很大了。通过这种方式甚至可以获取到部分用户的一段时间的连续行为。
这种方式的问题是:
(1)访问记录不全面(比如,CDN只有访问缓存的数据,域名服务商只有域名解析的数据)
(2)数据量有限。不同的渠道获取的都是局部的数据,很难拿到省级以致全国级的数据。
(3)成本(数据关联成本,对接成本)等
由于以上问题,这种方式数据分析师只能分析出局部特征。
第四种:我称之为‘科学预测’,数据分析师即通过运营商全量数据,分析用户的全网行为。并以此作为投放依据。也就是今天我们分享的方式。
通过以上分析,我们可以看出,在这场变革中数据分析师的‘数据’起到的巨大作用。
但是,单纯的拥有数据,并不一定是最后的赢家。必须掌握从沙子里提取出金子的技术,才能真正享受数据的价值。
目前我们在广告行业里,只涉及到DSP和DMP两部分。我对这两部分的理解是:DSP是身体,DMP是大脑。对于DSP,我们要求健康,敏捷。对大脑的要求是聪明,记性好。
先说一下DSP,前面同事也分享过了,在RTB流程里,ADExchange相当于拍卖师,就是负责敲锤。DSP相当与举牌人,就是负责举牌。DSP要快速评估价值,决定是否值的买,值的出多少钱买。DSP出价要‘快’,等到拍卖师敲锤后再想改就晚了。
DSP的要求看似简单,但真正做到也是非常有技术挑战的。单纯说敏捷,在RTB的竞拍流程中要求比现实中的要高多了。现实中,拍卖师还要喊三次,在RTB中,只给了100毫秒的思考时间,这之中还包含网络延迟等难以控制的因数。
再说健康,RTB中,一方面,ADExchange本身会考核DSP的健康情况,DSP要是出了问题,ADExchange会减少分给你的流量。你要老出问题,ADExchange就不带你玩儿了。
另一边,广告主也盯着你的报表。某些时候,比如双十一之前的投放时间,真是寸时寸金。另外,计费也是一个挑战,在RTB流程中,实时计费是必须的,实时就意味着不可以有半点错误。
这个是DSP的基本架构,其中的最核心是BidServer和CountServer,BidServer负责和ADExchange交互,要求拍卖时快速举牌。CountServer是效果监控服务器,要求仔细记好帐。
我们先看一下对竞价核心的要求:
(1)及时准确的出价
(2)敏捷的响应变更
这里涉及到很多技术点,我在这里列举一些:
一、层次分明的架构:ADExchange适配->流量控制->活动匹配->效果评估->智能出价。层次间相互解耦。一个稳定的系统,必然是一个简单,层次分明的系统。
各层次见流量逐级筛检,简单的规则在前,复杂的规则在后,能排除大流量的规则在前,排除小流量的规则在后。
二、热加载:每层都可以有多个实现,根据需要动态加载实现,不影响即有投放。昨天的分享中也提到,在DSP的各各环节中,有很多策略和算法需要调整。这些调整关系到‘钱是不是花在刀刃上’的问题,因此必须尽快的看到效果。效果好的要保留并继续进化,效果差的要及时查找原因或淘汰。要做到这些调整的快速响应,热加载的支持是必不可少的。
三、共享内存:数据及策略更新推送到共享内存,实现更新的块送响应。运营人员制定的策略,推送服务器推送过来的最新余额,都通过共享内存的方式给多个进程共享。
四、数据结构优化:如通过红黑树实现快速索引。
五、通过tcpcopy,实现在线实时测试。通过tcpcopy,可以实时拷贝线上流量到测试环境,使用真实流量测试。
再说一下记费及报表涉及的技术点,这两部分的要求都是:一要准确,二要实时。
(1)通过基于内存的KV数据库redis实现实时记费。
(2)通过spark-streaming实现多维实时报表,快速反馈投放效果。
另外,为了提升效率,我们采用C语言实现的BidServer。其他部分则为了快速开发而采用了java,但java在存在大量对象引用时的GC表现会很糟糕,因此我们采用了mapdb直接内存读写技术解决大量引用带来的GC问题。
DSP里另外一个很重要的主题就是动态创意,静态创意的种类是有限的,很难迎合所有客户。只有通过动态创意,实现真正千人千面,才能真正做迎合用户。
动态创意对DSP的要求相对会高一些,要自己提供播放代码。由于这些代码会在用户浏览器上执行,因此一定要保证代码质量。
另外,和静态素材可以直接使用CDN加速不同,动态素材里包含静态的可以加速的部分,还包括动态的不能加速的部分。必须细心区别对待。
前面我们也提到,广告行业的这次变革对技术的影响中,其中之一是推荐技术在广告行业的应用。推荐技术进入到广告行业后主要就是应用在动态创意上。通过推荐技术在广告上展示用户最关心的商品,可以大幅提升用户点击广告的可能性。
动态创意要展示什么,需要在DMP对用户的深入分析的基础上,运用推荐相关算法如协同过滤做模型训练,才能使用。另外,dsp的流量筛选,用户效果评估等,也需要有算法的支持。
这就涉及到DSP的中枢神经:算法平台。
为什么我把它叫做中枢神经,而不是叫做大脑呢?。因为,真正的思考都是通过DMP做的。在算法平台里只做模型匹配计算。
算法平台是一个非常重要的模块,各种算法在这里PK,最终产出一个最优结果。这里涉及到的技术点也非常多,比如各种算法、交叉校验、数据可视化等。
下面说一下DMP,简单说,DMP要做三件事儿:
(1)擦亮眼睛
(2)长点记性
(3)动动脑子
DMP搭建在基于YARN的Spark集群之上,主要用到的技术是Spark-SQL,Spark-Streaming和MLLib。
下面,我们分开来说。
一、先说擦亮眼睛。
所谓擦亮眼睛,就是要能看到用户到底做了什么事情。比如:用户在什么时间,什么地方上网,是在PC上还是通过手机上网,是通过浏览器还是通过APP,是看新闻还是在购物还是在玩游戏,看新闻的话看的什么主题的新闻,购物的浏览了哪些商品,收藏了哪些商品,购买了哪些商品。玩游戏的话,玩儿的什么什么游戏。是否有充值行为,充值频率等。
我们把这个功能称为内容识别,“数据分析师”将死板的流量日志,分析为活灵活现的用户行为。这里涉及到的技术点也挺多的,比如新闻的语义分析,主题词提取。商品的爬取和分类,APP的识别,以及APP内行为的识别等。内容识别是后续分析的基础,内容识别是需要不断投入精力去完善的核心功能。在这里灵活运用相关各种机器学习算法的应用也可以很大程度上弥补人力的不足。
还有一点需要注意的是,由于运营商的数据是全量的网络数据,其中既有用户直接的点击行为产生的日志,也有页面ajax自己更新页面数据的日志,还有应用程序甚至是爬虫爬取网页的日志。日志产生的根源到底是那种方式产生的,必须要能识别清楚。不然,不断自己刷新的页面,你可能会误认为用户很关心这个页面而多次访问。
二、我们再说一下第二点,即长点记性。
所谓长点记性,就是说这个人第一次出现你不认识,第二次出现你就要认识它了。现实生活中,一些评价不错的便利店,店员都会记住老主顾,老主顾来了会主动提醒他说你要的那个啥啥啥今天缺货,或者啥啥啥到货了。在做数据分析时,也要识别出哪些行为是一个人,以便给出这个人的特征。
有些人可能疑惑了,运营商数据不是天然就能区分开不同的人吗?在一定程度上是这样的,比如通过宽带上网帐号AD,我们可以锁定一个家庭,通过imei,基本可以锁定一个手机。
但是,问题是这些标示都是设备级的。一个家里可能好几个人上网,甚至很多公司是几百上千人共用一个AD帐号上网。对于移动数据,很多山寨机的imei是相同的。从另外的角度说一个人也可能在多个AD帐号下上网,比如在家里和公司。一个人也可能拥有多部手机。
所以,用户识别是非常重要的,而且难度非常大。而误识别的影响也非常大,如果将多个人的行为误关联到一个人,就可能会影响后续人的特征判断,甚至影响到人群的模型训练。
如上图所示,我们如何将用户不同的token圈起来,锁定这些token背后的自然人,是用户识别要解决的核心问题。
我们解决这个问题的法宝有两个,一个是通过cookie,将用一个AD帐号下的不同的人分开,另一个是通过用户名,将不同AD帐号下的人关联起来。
如何使用好cookie,也是一个比较复杂的问题。很多网站将cookie作为人或浏览器的标示,但是又不全是。有些网站会把cookie单纯当作一个客户端存储来使用,比如通过cookie标示用户上次阅读的那篇文章的哪个章节。所以必须要识别出哪个cookie是作为身份标示的使用的。
如果全网的站点全部通过人工标注,基本上是不可能的。我们采用统计规则和机器学习算法相互配合的方式,成功的识别出了大部分网站用作身份标示的cookie。然后在这个基础上人工筛查,做到了非常准确的身份标示cookie的识别。
cookie的另外一个问题就是不能跨站点,同一个人在不同站点上的cookie是不同的,如何同一个人在不同网站上的cookie关联起来呢?
我们发现,互联网不是一个各各孤立的独岛,用户访问网站时,大部分也是通过点击连接从一个站点到另外一个站点。比如通过百度搜索连接跳转到新浪。而且很多站点都有嵌入其他站点的页面或服务,比如新浪页面里有某个DSP的广告等。
基于这个事实,我们可以通过referer树,将多个站点的cookie关联到一起。
当然,refere树并不是万能的,很多热门会有多人同时访问,说以还需要加入很多规则,这些规则的梳理,同样需要训练加人工的方式。http://www.cda.cn/view/15460.html
三、对DMP的第三点要求,即动动脑子。
即结合各种算法,找出每个人的特征,每个商品的特征,每个APP的特征,每个网站的特征等,并分析人与人之间的关系,人与商品之间的关系,人与APP之间的关系,人与网站之间的关系等。通过这些关系分析,来预测用户下一步的行为。
这一部分的核心就是算法,也就是DMP被称为大脑的主要原因。算法部分昨天同事已经分享过了,今天我就不详细说了。数据分析师培训