今日头条副总裁杨震原:今日头条的数据技术

8月29日下午,由七牛公司主办的主题为“数据重构未来”的“七牛·数据时代峰会”在上海国际时尚中心继续举行。今日头条副总裁杨震原就今日头条的数据技术发表了演讲,以下为演讲实录:

    
        杨震原:各位朋友下午好,很高兴今天在这里有机会与大家分享今日头条。刚刚听了知乎李申申给我们介绍了知乎在这方面的实践,他前面讲了故事,但是只投了PPT,但是没有用中文翻译出来,特别遗憾。
 
        首先介绍一下什么是今日头条,今日头条是一个媒体平台。它拥有超大的用户量,我们累计激活用户达到2.9亿,各端DAU超过2700万,每天使用超过40分钟,这个是非常大的量。它是信息分发的平台,与各个媒体、政府机构、自媒体作者合作。今日头条现在拥有超过3.5个头条号,并且这个数据每天还在增加。这些作者每天会在上面发布它的文章,创作它的文章。今日头条是一个基于机器学习的个性化推荐引擎。我们在大数据方面投入了非常多的精力做研发,我们希望能把新闻或者是用户感兴趣的内容通过这样的方法,越来越精准的推荐给用户。
 
        简单列一下数据。今日头条每天训练数据达到100T,每日日志行数100亿条。特征组合数每天750亿,线上model330亿。这个数字非常大的。今日头条服务器增长也非常,目前公司已经有四千台服务器。之前很难想象一个做媒体的公司,怎么可能有这么多的服务器。今日头条今天已经不止是做一个服务的公司,更多是做媒体的公司。
 
        今日头条为什么产生出来。这要介绍一下张一民(音)创建今日头条的理念。主要是这三个方面,介质的变化,机器学习的发展和个性化的需求。手一我们来看一下介质的变化,介质的变化是虽这技术发展而持续发生变化的。这个是驱动人们获取信息方式很重要的原因。为什么这么说呢?你想想一下早些年,早很久,大家怎么看贴墙的公告?大家会在墙上刷一个告示。后来一个很伟大的发明,造纸。于是有了报纸,人们可以单向的阅读信息,报纸一直到今天还有巨大的生命力。然后是广播,这个也是单向的。然后电视不仅仅可以得到音频,还可以得到视频,但是你无法跟创作者交互。互联网时代不仅仅可以看到内容,还可以讨论,参与发布内容。这一些发生了很大的变化。移动互联网其实这个变化的幅度,可能会超过人们的想象。
 
        我预计接下来的几年里,人们获取信息的方式还会发生一轮巨大的剧变。因为手机发生的时候,已经个性化到你自己了,手机在你身边,它的id更加的稳定、唯一,它会记录你身上的发生的事情,你的行为都会被记录。它与人的对应关系会非常的稳定。所以这种介质的变化,肯定会导致传媒的变化,导致信息分发方式的变化,包括新闻的变化。有了介质变化这个前提之后,后面很重要的一点,就是机器学习技术的发展。早一些年,知识是透过人们总结、撰写成书,接下来人们根据书里面的内容研究、探索,进一步的发展。
 
        到今天,机器学习,就像人不断生长的大脑。其实技术也经历了一些阶段,它是分成几个方面的。首先技术的发展,因为数据规模的变大。我之前也很认可刚刚李申申讲的一点,大数据规模下用简单的方法会得到很好的结果。所以说数据的规模的变化,带来了质变的问题。第二个是硬件的变化。我们都知道现在存储技术成本不断的在下降,带宽成本也在下降。变化最小的是算法方面的变化。目前非常牛的算法,比如逻辑回归,已经不知道是多久之前的算法了,但是因为到了现在,我们可以用以前一万倍一亿倍的数据来做。它的威力是不一样的了。神经网络算法,它是1989年就开始使用了。现在跟以前其实没有本质的变化。更主要是因为,现在有了更大的存储计算的能力,拥有了更多的数据,才使这些算法发挥了它以前完全没有发挥得效果。总体来讲,通过这些变化,机器学习这些年有了突飞猛进的变化。
 
        有的人说机器学习会不会进化成一个人类?我觉得短期内还看不到。相反它在很多细分分类会出现垂直的上帝。比如搜索、阅读、导航、交易、天气预测领域,它们有很多数据,可以分析出结果,大规模的抹平信息鸿沟。
 
        第三点,个性化推荐的需求,不可否认移动端人们是越来越懒的。所以说,信息在移动时代是大量的过剩的,人们通常只想看我感兴趣的,比如你看你的朋友圈,比如你看微博,经有一些很有意思的内容,你关注它了,但是当它攒够一定量的用户之后,就会大量的发广告。人们希望给我看到的信息是最好的信息,我不喜欢的信息,不要给我看。所以基于推荐引擎这种模式,前面讲了,有了介质的变化,有了机器学习的发展,推荐引擎就应运而生,这种模式可以很好的创作分发和互动。因为首先有了创作,内容分发的效率提升了,就会更高效的刺激创作,更高效的分发会让用户体验变好,用户会聚集在这个平台上,进而会产生互动,互动又会刺激内容创作。所以这个模式是未来很有发展前景的一个模式。
 
        这种前提下,为什么今日头条产生了。今日头条大概是2012年三月公司成立的,三年时间累计下载2.5亿的用户,日活跃踊跃两千七百万,这是非常惊人的数字。
 
        这张图是我们系统的架构。不是很清晰,我今天没有那么多时间来讲我后面会着重讲一下今日头条实践方面的总结。第一个尽量全面的记录用户的行为。简单来说,record  more,这个非常重要。用户喜欢不喜欢这篇文章?是点击吗?是阅读时长吗?是点赞吗?比如两个用户,同样他在这个文章中停留了100秒,其中一个用户每刷一次停15秒,刷了六七次,另外一个是在一直位置停留了一百秒,然后就推出了,这个是完全不同的。我们把这些信息记录完整,哪怕是微弱的信息,这个在未来非常有用。所以我们希望尽可能多的记录用户的行为。现在有很多然软件可以记录。比如我们把记录程序写在当中。
 
        大数据情况下,大量的微弱信号也非常有价值。就像我刚刚说的,每一刷都非常重要。这样对于用户的体验改进非常有帮助。单看一个信号没有价值的,但是大量的数据,它的统计意义就会非常的显著。现在的技术是完全能用得起来这些弱信号的。
 
        重塑目标,这件事情,很多人不知道它的意义是什么。目标在一个机器学习系统中是很重要的实行,因为很多时候你要想清楚你的目标是什么。比如广告系统中,你希望用户有更高的点击更高的出价。我们希望能很好的把握到底什么是用户真正感兴趣的。这件事情就是,我以前跟很多厂商的朋友聊过。他们公司会设一些部门,比如叫大数据部,我的目标是做什么?他说我的目标要做用户画像,以后可能会游泳。这件事情可以做,但是会非常困难。当你目标想清楚的时候,这个价值会更加大。我问他到底用户画像做什么有用,他说我在手机平台上做广告推广更有用。我说你有没有分析这个场景,也许你没有考虑到时间,他没有看不是因为不喜欢,而是因为他在开会。如果他晚上没有看,才是真的不喜欢。所以当你做一个系统的时候,你要想清楚,你的系统目标到底是什么。有了明确的目标,要进一步的分析,才是更有效的方式。当你对于基础目标很清楚的时候,再花专门的人力做基础数据,这样事半功倍。
 
        和原因相比,结果更重要,其实这个目标是反人类的,但是我要讲一下。我为什么这么提呢?现在的机器学习的算法已经很好了,大家不一定要非常苛求原因,比如我还在讲新闻推荐的例子,我们希望用户在平台上,拥有更长的停留时间,更好的满意度,我们目标不是想知道他到底喜欢钓鱼还是到底喜欢什么,因为他喜欢的因素非常多,可能是组合的因素,比如他某个时间非常喜欢,可能这个喜好变成像样化的表示,人就更不容易读了。我们不能因为这件事情不能解释就不做这件事情。当你有足够多的数据,当你的目标足够多的时候,我们要大胆的敢使用,相信它的结果。
 
        统一团队,统一模型,多用原始数据。这也是非常重要的事情,其实在做算法的工程师,尤其是算法很资深的工程师,通常有一些自己的流派的,对于一个公司来讲,我们希望这个公司在这方面的人才,是拥有较为一致较为有效率的方式,所以算法团队、工程团队以及产品,要与产品有耦合一致的目标。我跟很多公司聊过,很多时候他们力量是不一致的,非常影响效率。所以要有一个比较统一的团队,其中关键团队要对业务有了解,对算法要了解,对于工程团队要了解,其实机器学习这一些年,算法上没有突飞猛进,反而在工程上有突飞猛进。所以当你把算法问题工程问题真正结合起来。要找好的人,统一思路,快速迭代,往往你把业务分成很多个部门效率要高太多。
 
        第二是统一模型。统一模型是什么意思呢?其实这个更多是一个算法问题,很多时候当你的目标比较明确的时候,统一模型就意味这,你剩下一个较为统一的模型,开发者或者是工程师们会再一个框架下不断提交新的想法。一个团队算价值深度怎么怎么样子,这个中间,往往很难达到好的效果的。如果你有统一团队的情况下,可以做更好的梳理。这样可以得到更好的效率。
 
        对于问题要深入的理解,不仅仅是工具。当你有很强的人的时候,就可以这样做,因为我也听过很多这样的公司,比如它的数据一个笔记本就存下,它坚持用很多库,为什么呢?他说很多库比较流行。我也见过很多公司,你的数据量可能并不需要,他说斯巴格(音)比较流行。就是要了解你的问题是什么,这类问题通常有哪一些算法,这些算法对基础架构对于工程的要求是什么。是随机访问还是带宽密集,还是什么。要用更有效的资源达到目标,当然开源是非常广泛的使用的。我觉得不仅仅把它当成工具来使用,适合什么领域也要有更如的理解。
 
        最后一点,充分优化核心工程。我们核心推荐的模型或者是例子。这样的例子还有很多,比如我们的推送系统。以这个例子来讲,我们把用户所有的行为都记下来,这个数据在30天的里面,大概会积攒1.25PB。我们用120台机器,这个系统架构是这样来做的,任务的调度。在这个价位之下,我们20个小时就可以把1.25PB的数据梳理完。如果用通用的系统根本不可能实现的。因为新闻的变化太快了,我们需要非常快的即使更新这些数据,用户数量很多,其实对于两千多万用户来讲,一秒钟只是更新了一次而已,不是非常大的。
 
        时间关系,就讲到这里。