DTCC 干货 | 腾讯营销数据平台

  • 时间:
  • 浏览:0
  • 来源:极速快3_快3平台登陆_极速快3平台登陆

  【IT168 技术】摘要:广告平台是有有有5个 数据驱动的平台,数据在系统中高效流动,形成闭环,产生价值。腾讯广告系统每天有上百亿次请求量,以及上百T的数据,保证数据流的稳定可靠和高性能是数据系统的核心问题。对于数据分析场景,腾讯基于 spark 和 hbase 构建了一套实时离线统一的统计系统,一同也自研了一套基于SSD的多维数据透视分析系统,对万亿行数据做实时查询仅需秒级;对于机器学习,形状工程重点是保障形状数据的正确性,保证训练和预估使用的形状数据一致性,却说我提升形状生产和调研的速度。此外,腾讯积累了几瓶的数据,一同非常注重用户隐私,不用把底层数据任意打通任意使用,为了保护用户数据安全,在 hadoop 的鉴权机制之上构建了更加安全和严格的鉴权系统,并通过差分隐私,数据脱敏和水印等土办法 保护各场景下的数据安全,一同也基于密码学多方安全计算提供了每项场景下更加安全的数据应用方案。腾讯基于 hadoop 构建了高性能高可靠性的营销数据平台,在保证数据安全前提下,提供在线分析外理和形状建模能力,支持腾讯的广告营销和中国智慧零售等业务高速发展。

  作者:李锐

  编辑:胡孟依

  李锐:腾讯广告数据系统负责人,2011年加入腾讯,专注大数据存储和计算系统,有9年分布式系统开发和应用经验,带领腾讯广告的数据工程团队,打造基于hadoop 生态的营销数据平台,支持腾讯的广告营销和中国智慧零售业务。

  腾讯广告系统架构

  腾讯有全国之中最大的用户的覆盖量,有非常丰厚的营销场景,借助腾讯数据即有的优势可进行广告业务的投放,实现流量变现。整个广告系统可不能能分成投放、播放、数据。广告主通过投放系统来投放广告,当流量接进来以前,系统选取在几十万,上百万的板块顶端选取大概的广告去呈现和播放,广告是有有有5个 非常严重依赖于数据的有有有5个 行业,数据可不能能在整个系统顶端,不断地扭转,却说我产生没人大的价值。比如说广告主他需用就看在广告播放后产生是我各种效果数据,去衡量广告的价值来决定你你你这种 广告是加大投放、还是说是需用停下来修改有些东西。内部管理运营人员也需用根据数据进行各种投放和运营的决策,包括咋样会去打动更多的广告主。线上广告系统需用实时地、准确地回馈哪十十几个 数据,去决定咋样会去做广告主的频繁播放以及咋样会把更好的播放量给到更大概的广告。

  腾讯当事人构建的广告数据管理平台,用来补足腾讯顶端除社交数据之外的商业数据,把广告数据的变化、后续用户的行为归到广告曝光和点击上,形成数据的闭环,提升整个广告系统的转化率。对于广告系统来说,机器学习和模型训练也是有有有5个 非常重要的环节,广告中会经过各种各样的模型的训练提高点击率转化率,进行自动录像、人群的推荐、商品的推荐等等。

  数据分析

  数据分析的任务有并有的是类型,并有的是先把数据聚合好直接查询,但你你你这种 查询需用预先指定分析数据的维度和量级等等,一旦有新的需求的需用进行重新的开发、验证、上线、部署。机会查询历史数据需用重跑各种历史数据。适用于各种报表或线上统计数据。而另外并有的是土办法 是实时查询计算,你你你这种 土办法 计算量会非常的大,但灵活性很高,可不能能任意地执行OLAP场景的分析,你你你这种 土办法 需用预先把数据准备好,指定大概查询的格式做相应的分析,适用于DMP和BI场景。

  下面要讲的是预先聚合查询平台,当广告业务刚刚刚开始了以前,直接用Hadoop通过Hive/pig的脚本从原始数据中统计结果,但随着业务各种广告场景的不断的增加,需用分析的报表数据不多,机器资源放慢就不够用了。没人很自然的外理土办法 却说我从原始数据中抽取有些顶端表,将顶端的数据经过有些压缩、字段筛选,使它的计算量变小。原本可不能能暂时外理掉一每项问题。却说我随着业务的慢慢扩大,老会 要加不同的维度的字段,顶端表越加越大,慢慢就跟原始的数据是有有有5个 量级了,只有对顶端表进行拆分,但放慢会产生20到30个空间数据,哪十十几个 空间数据的计算量也是相当难以承受的。为外理你你你这种 问题建造统一计算平台,通过Storm进行实时的计算,mapreduce做离线计算,通过配置的土办法 指定输出数据和结果,最后上传到HBASE上供有些方进行查询。你你你这种 土办法 基本上外理了的业务不断增长、机器资源不够和本地开发的成本没人大的问题。

  我我其实你你你这种 土办法 是不够好的,每有有有有5个 相应分析,后要实时、离线两套代码两套部署,可不能能把它打成一套呢?我我其实是可不能能的,Storm肯定不行,Storm是纯内存计算,数据容易丢失。mapreduce可不能能搞得放慢呢?mapreduce有有有有5个 缺点,有有有5个 是它的计算成本开销,它会有全都多多多线程 启动和刚刚开始了的成本,另外并有的是是它的调度,它是通过异构的平台来进行调度,机会提升它的计算,调度成本开销也会随之成长。基于以上问题,刚刚就改到了Spark streaming做调度计算。

  聚合计算平台先将切分好的数据贴到 去HDFS上,通过在Spark上调度很小聚合任务的土办法 去做相应的调度。通过你你你这种 土办法 ,首先语录输入和输出有的是HDFS,启动后只用看输出不趋于稳定输入趋于稳定,则做一下相应的逻辑。原本外理了Spark checkpoint带来的各种问题。大概在Spark顶端去执行有些比较小mapreduce的项目,咋样外理刚才说的那个问题,首先spark worker是常驻的多多多线程 ,不用有JDM的启动和停止的开销,分层调度只用把spark提起来,却说我spark在driver顶端启动,全都调度可不能能非常快。使用spark会带来有有有5个 麻烦,它是常驻多多多线程 ,内存泄露却说我有有有5个 很严重的问题,玩转信用卡 你你你这种 问题后可不能能有内存来做全都的cache,从而加快计算速度。由此形成了有有有5个 统一的基于Spark streaming聚合计算平台,把最终数据输出到HBase,通过SQL的查询的接口获取相应的数据。

  亲戚亲戚其他同学在Spark也做了有些优化,首先是Spark语录,Spark使用后要去开推测执行,机会单机的讨论会原因分析分析整体的有有有5个 延迟。

  使用推测执行,有有有5个 会浪费计算,我我其实会有全都的推测备份任务被杀掉,全都把计算能力、任务大小都部署了监控,优先计算能力强的节点算大的任务,原本有有有5个 小的优化可不能能减少大概30%左右的浪费任务。

  下面讲在线实时的计算,你你你这种 要外理的场景却说我OLAP的分析,比如将原始的广告日志数据贴到 去那儿,亲戚亲戚其他同学机会想到哪十十几个 查哪十十几个 ,但没人统计好相应的报表,现在就要去分析顶端的东西,需用在哪十十几个 量级可不能能达到我的结果、可不能能去做你你你这种 运营的决策。

  广告流量每天是几百亿的量级,需用把数据先做相应的数据的筛选、分组、聚合得出最后的结果,你你你这种 是在有有有5个 自研的计算引擎顶端去做的,当时做你你你这种 事情的以前,没人任何有有有5个 开源的引擎,可不能能抗住你你你这种 数据量和性能要求。

  计划引擎分为并有的是数据形状,并有的是是二维表的独立的数据形状,你你你这种 数据形状的特点是正排可不能能用列存储的土办法 来存,可不能能对数据去建相应的倒排数据,却说我另外是嵌套形状,像Jason和proto buffer,用的比较多的是proto buffer,在广告的线上业务打印出来的日志为了做比较好的兼容,原始的数据有的是proto buffer格式,需用保证原始的数据供亲戚亲戚其他同学去排查、分析各种问题,全都需用把你你你这种 嵌套的形状以有有有5个 比较高效的土办法 存储下来,使得顶端的OLAP分析比较越快。

  索引设计对倒排和正排分别做了相应的优化,倒排语录,亲戚亲戚其他同学知道有有有5个 数据的储存,稀疏数据用array是比较高效的,而稠密的数据用bitmap是比较高效的,综合两者特点用并有的是叫roaring bitmap的土办法 来去实现,在实现的过程中做了比较多的在底层编码级别的优化和改进,使得在roaring bitmap中交、并、差、积的计算可不能能做得非常高效。

  正排语录,首先是列存储,把累似 的数据贴到 去一同采用非常高效的编码,去优化储存的量级。针对业务的数据,构建了十多种编码方案,通过自适应去采用相应的编码方案。

  下图有有有5个 例子,最刚刚开始了的以前嵌套形状存下来东西使用Pivot来存储,但Pivot存下来的数据青春恋爱物语比使用行存储需用更大,你你你这种 是不符合认知的。

  为哪十十几个 呢?机会业务数据是比较稀疏的,有全都的空节点,这就浪费了比较多的存储。你你你这种 无法破解,机会没人和数据进行兼容,全都就直接研发了有有有5个 模式,像以前的编码优化等等,最后达到的效果是,对比以前的模式减少百分之四五十左右的存储,生成速度是Pivot的1/3左右,读的速度比行存储提高了几十倍。

  上图是优化的有些具体项目。

  上图是整个OLAP计算引擎,引擎典型的应用场景是需用去分析几瓶的数据,没人大的数据肯定是只有贴到 去内存中的,那就只有贴到 去SSD顶端,另外建倒排和正排的数据所产生的计算量我我其实非常惊人的,而在计算的以前我我其实不用去使用SSD没人昂贵的机器,将哪十十几个 数据包括编码的计算都贴到 去Hadoop集群上进行,全都形成了基于Hadoo集群离线计算和基于SSD在线检索混合部署的OLAP集群查询分析引擎。

  上图是对group by做的具体优化

  形状工程

  广告业务是有非常多的模型训练的,机会广告直接有现金收益的,全都亲戚亲戚其他同学研究你你你这种 技术的动力应该会更强。初选模型比如说累似 人群扩展,自动定向,动态创意,商品推荐,最原始是广告主指定围绕一下哪十十几个 样的人,但现在可不能能根据数据先做冷启动,自动做相应的定向、动态生成广告的创意、与有些公司广告主的商品部相结合、自动推荐商品等等。

  机器学习模型能力我我其实不仅仅却说我机器学习,那就比如这里有有有5个 图是来自Tensorflow扩展图,谷歌开源了Tensorflow以前,在不断的开源它的互近产品,顶端是机器学习,互近是做数据验证、数据清晰、形状抽取、数据分析等各种相关应用,哪十十几个 有的是在整个形状过程中里所需用进行外理的。

  首先建立模型,比如说做有有有5个 商品推荐模型,首先需用用户的册子提取原始数据,包括广告数据、用户行为数据构造的样本,以前进行数据拼接,最后调用相关的数据进行模型的训练,以前再离线做TDC,完成一同将形状推到线上,整个过程中数据维护是很大的开销。另外有些是当不同模型有不同数据流以前,多个模型之间所产生的形状不同,而导入形状测试新的模型会很麻烦,所有的流程需用重新走一遍,最后测试的结果却说我一定好,这就需用外理到底是实践过程有bug,还是说你你你这种 东西对模型没人用。

  另外有些是从系统层厚出发,维护和外理数据,会有全都重复的计算和外理,哪十十几个 数据量都很大。这就需用提供相应的共享,去优化相应的数据来选取计算模型。

  另外是机器学习的预测和训练机会会趋于稳定偏差。预测是用以前趋于稳定过的生成相应的样本,却说我训练出模型,离线用的数据和在线用的数据,有机会是不一致的,还有机会是数据的外理逻辑、代码不一致,甚至是今天的数据和昨天的数据不一致,这有的是机会会趋于稳定偏差。这就需用有有有5个 统一的平台,来保证数据源一致、数据的代码逻辑一致,尽量外理训练和预测有偏差。保证做模型的同学只用集合在它的模型顶端,而不需用去关注工程咋样会去开发,咋样会去保证数据拼接没人bug。

  形状平台主要有有有有5个 东西,有有有5个 是形状仓库,对于做形状的同学来说,做好了形状以前,把它注册到形状仓库,通过形状计算平台配置化的土办法 ,把形状数据拼接到不同的样品上,做离线外理后推到线上通过实验后,完成有有有5个 模型的迭代。

  下面讲形状具体包括的东西,比如前文形状,前文形状指的是用户过去的有些行为,却说我是实需用用产生到线上的进行相应的外理,腾讯现阶段是分钟量级的更新,机会来了一根绳子 数据就去计算,腾讯有10亿量级的用户,每个用户跑有有有5个 全量的计算,你你你这种 是非常不现实的,实际做法是利用HBASE的Qualifier family形状将数据分开来,当用户有数据有变更的以前,把它趋于稳定单独的Qualifier family做区隔,来触发规定时间内的数据扫描和相应抽取解析,通过你你你这种 土办法 在有有有5个 比较可接受的机器量级上,完成前文形状的统计框架。

  另外有有有5个 是商业化数据的形状,广告数据包括广告主的行为,不管是在页面上操作,还是API上所触发的行为,它有的是趋于稳定MySQL分库分表的机器上,以binlog流水的土办法 将数据同步到HBASE上,通过累似 transaction土办法 的外理使得数据和流水是完正一致的,为哪十十几个 要有流水呢?我我其实全都广告形状的计算框架是基于流水来驱动,比如有有有5个 广告更新了,有机会需用去抓取住有广告标题、描述、落地页、图片素材等数据,抽取相应的形状进行更新外理。

  另外有有有5个 是形状仓库的储存,刚才介绍了离线外理是需用形状共享的,全都基于HDFS做了离线的形状仓库,可不能能储存比较久的历史数据,通过嵌套形状压缩的土办法 使数据变小,以前查看你你你这种 形状在过去有有有5个 月的样本训练结果需用的时间是好几天,但现在在十十几个 小时内就可不能能做到。

  数据安全

  下面说的是数据安全,普通数据安全一般来说,有的是鉴权、授权、认证审计等,这里我我其实你要介绍的是在双方数据保密的情形下咋样进行数据企业战略合作。

  举个例子咋样衡量广告的效果,广告主方有广告带来的购买行为数据,而亲戚亲戚其他同学有广告的点击或曝光等数据,你要衡量效果语录很简单,要么亲戚亲戚其他同学把数据给广告主去做对应归因匹配,要么广告主把数据给亲戚亲戚其他同学去做对应归因匹配。机会这两条路子都走不通,有并有的是土办法 叫隐私集合求交,用有有有5个 加密的可交换函数,将双方的数据经不多次的加密外理后,去计算它们的交值,出来的结果就可不能能衡量广告效果。

  根据双方的企业战略合作的模式和场景,你你你这种 数据可不能能应用于广告的曝光归因,以及广告的项目分析,机会你投广告的人有机会原本就想购买你的产品的,你你你这种 行为大概广告是没用的,全都衡量广告效果是需用AB test的,证明投了广告和不投广告产生的效果是不一样的。却说我是第三方监测,亲戚亲戚其他同学会对数据做保密,第三方公司也需用相应的数据去做监测,通过你你你这种 土办法 是可不能能实现亲戚亲戚其他同学互相不用知道数据,但又能达到数据监测的实现。

  在刚才举的你你你这种 例子中,机会一方只有并有的是类型数据,我我其实就大概直接拿到另外一方具体数据了。同样腾讯的DMP没人给别人开放,对方用设备号对数据进行查询,没人开放你你你这种 接口,只开放了比如说你拿有有有5个 号码包来查询,平台对你你你这种 汉堡包进行相应的分析,分析后制定投放,我我其实也可不能能拿有有有5个 号码包加上有有有2当事人原本的土办法 做相应的攻击,原本就需用去用到差分隐私对数据做有些扰动。也会在内部管理进行计算此次攻击查了些哪十十几个 样的数据,却说我对访问的数据集进行相应的限制,控制差分预算,超过指定的差分预算,当天内则只有进行相应的查询。

  今天我主要分享的却说我基于腾讯广告的数据系统方面,主要介绍了在数据分析、形状工程以及数据安全方面所做的有些工作,谢谢亲戚亲戚其他同学。