首页 > 代码库 > 腾讯数十亿广告的秘密武器:利用大数据实时精准推荐
腾讯数十亿广告的秘密武器:利用大数据实时精准推荐
在过去几年,你在腾讯做了什么来推动大数据的应用?
过去三年,我一直在坚持一件事:推动大数据的实时应用。现在从国外数据中心的数据,一秒钟可以达到深圳数据中心,这就是腾讯具备的数据能力。有了这个能力,就可以做很多商业化行为的模式。
目前腾讯收集的数据已经超过了1万亿条, 计算机规模已经超过了8千8百台。这么庞大的数据如果能实时处理,就能发挥出巨大的商业价值。这个商业价值就是精准推荐。
每年腾讯几十亿的广告,其基础来自于数据的精准推荐。实时数据推荐还可以用于视频的推荐,腾讯音乐推荐,新闻客户端的推荐,游戏道具的推荐,等等。
目前我们做到从数据进来到投放数据,延时不会超过50毫秒。有这个技术基础,腾讯的精准推荐才有了基础。
从内部管理而言,实时也降低了成本。因为实时数据处理可以用足“每一秒”。传统的数据仓库一般从晚上零点到第二天早上八点,做数据截断、抽取和处理,因为早上九点老板就要看数据报告了。数据处理的时间只有一天之中的三分之一,其他时间都是空闲的。
当我们把数据做到实时处理的事后,实际意义是将分析时间成本分摊到全天,成本更低。同时这也有利于控制风险,因为只要一出错马上可以监控,迅速回滚。
所以你将大部分精力放在了“实时”上,你为什么认定“实时”会为腾讯增加更多的商业价值?
数据首先是有时效性的,一秒钟前的行为和一秒钟后的行为有着天差地别。
以往我们通过统计数据,得出规律,找到用户喜好。而现在实时变得更为重要。前一秒你看了母婴内容,那么几秒内就应该推送相关广告,转化率会比较高。如果你还在推送几天前,这个用户看足球的数据信息,这个生意就很难做下去了。
在腾讯,我们分三个领域各自研究精准推荐:数据整理、实时计算、算法研究。我深知,实时计算是关键核心。
在我的脑海中,一切数据必须以消息为中心,实时处理、提炼瓜分。实在解决不了的数据,再做离线分析。
比如一张照片,在数据处理端口肯定首先被实时过滤,这张照片是在哪里拍的?其中几个人,通过什么方式拍摄的?在所有数据收集处理完之后,我可能还需要找这张图片与其他图片的关联关系,这时才会做离线处理。
腾讯基本上90%以上的数据都是在线实时处理。我一直在坚持将腾讯的数据集中起来,放在一个平台体系之下,这其实是来自阿里巴巴的教训。(蒋杰原来在支付宝数据部门工作)阿里巴巴的数据直到今天还是四分五裂。
其实,我对于数据的实时经验也是在支付宝时期积累的。当时我学到的一点是,如果没有搜索引擎的支撑,就根本无法做数据分析。当时很多人都说,没有办法让数据在6秒内被搜索出来,而我坚持认为可以达到。
实际上,现在在腾讯,一万五千个字段,在3秒之内所有的数据交叉都可以实现。这是一个做技术的本分。
在实时这个领域,技术上的难点是什么?
我一直在慢慢弱化数据仓库,逐步走向实时数据仓库。其中最大的问题是,如何实现数据实时获取?
数据实时处理的前提,首先是实时采集。我的办法是一方面和业务部门谈好,另一方面我将数据采集文件部署到所有的机器里,从安装操作系统的时候就写入数据采集文件。这样,腾讯所有40万台机器都可以协同操作。
过去两年,腾讯从原来的一小时响应,到现在一秒钟精准推送,CTR (点击率)能提升20%。规模越大效果越明显。
精准推荐有三大要素,第一是数据,第二是实时,第三是算法。
首先要有强大的数据,如果数据缺失什么都干不了;第二,效果明显的是实时,第三才是优化算法。这是整个精准推荐体系的核心。实时在其中排在第二,我们的实践证明, 在什么都没变的情况下,频率改变带来了整体收入的提升。
在解决了获取数据之后,数据底层所遭遇的最大困难是什么?
眼下的挑战在于深度学习。大数据时代,腾讯有200PB的图片数据,如何去挖掘图片数据的价值?如何去挖掘语音数据的价值?
我们正在做的是从结构化数据分析转向非结构化数据。如何从非结构化数据中提炼商业价值?这包括了深度学习的DNN和CNN技术,包括如何做文本之间相似度的关系。这都是需要突破的点。
微信所有的语音训练都是深度学习的办法来处理。比如,每当你在用微信放语音的时候,机器自动翻译成文字,就是靠深度学习网络来训练的。但目前,计算能力依然是一个门槛,这个能力并非我们想象这么轻松,需要更多计算技术来改进。
未来数据处理会有剧烈的改变么?
硬件决定了数据的能效。数据规模越大,数据展现的方式会越多,未来实时计算的处理需求会越来越旺盛。相信未来,能贴合更多应用场景的高效计算引擎会出现,这是我对未来的判断。
很明显的是,如果当前一秒的数据没有处理完整,提炼清楚,随后的分析成本就会越来越高,而数据的价值则越来越低。所以,在未来,高效计算引擎和存储引擎的出现,会对大数据发展有突飞猛进的效用。
后记:
在蒋杰看来,没什么比实时更重要。在腾讯,他敏感意识到实时数据对于广告的价值,所以把大部分精力放到实时处理数据以及如何优化广告投放上。
今天很多公司的数据仓库是离线的,也因此数据距离实际业务很遥远,这个距离不仅仅是无法实时反应,更多在于无法保证数据的稳定和质量。
以此而言,数据实时化是业务与数据的结合的关键。
但实时数据并非终点。
每秒都在生产新数据,新数据与既有数据之间的关系如何梳理?假如我们一直通过数据收集、分析得知,电脑前坐着的是一只狗,但假如某天的数据收集显示,它会猫叫。那么我们能判断电脑前的其实是一只猫么?
这不仅仅是数据更新变化这么简单,而关系到我们如何判断和分析。
所以,此时,延时判断变得很重要。
如何在庞大数据面前,做出延时判断?尽管你有实时数据分析的能力。
这可能是下一个更有趣的话题。
腾讯数十亿广告的秘密武器:利用大数据实时精准推荐