引言:6.14日“腾讯创新日:科技年技术盛宴”代表腾讯各个事业群技术实力的四级专家、腾讯微创新2016年度创意获奖团队欢聚一堂,一起畅谈AI、系统安全、架构设计、社交传播、推荐模式、游戏引擎等前沿科技和腾讯应用创新的台前幕后。来自OMG网络媒体产品技术部推荐技术中心总监、专家工程师张智敏,就人工智能连接内容创作与消费,给大家进行了分享。
推荐技术实际上在缩短内容创作和消费之间的距离,读者更容易找到自己需要的内容,作者更容易的接触到更多的知音。我们致力于让作者能够摆脱传播渠道的限制,回归创作的本质。这次主要介绍我们对推荐技术的探索和思考。
以下为张智敏演讲实录
很高兴有这样一个机会,和大家一起聊一下我们的推荐技术。从两三年前,推荐技术突然变得非常火爆。从很久之前,大家获取内容基本是通过各个门户网站,大家把这个事情编辑好了之后突然某一天一个叫头条的东西出来,你会发现大家没有什么需求的时候基本就可以打开它看各种各样的东西。从去年开始,每个人在头条上花的时间已经接近一个半小时,这是一个非常高的数字。
今天主要是说内容推荐,所以先从创作开始。有人说创作是人的三种本能之一,其中一种本能是人的自然生存本能,第二个本能是人的繁殖本能,当前两个需求都得到满足的情况下,人的创作就成为人的基本的对外交流,或者让自己得到一种有别于前两种需求的满足感的方式。大家可以设想一下,我们每天花费了很多时间在做什么呢?
在做一些以前从来没有的事情,甚至向别人推销自己的一些思想,一想到我们可以开一个玩笑,看看是否有人觉得这是一个很好玩的故事,大到我们要共同做一个项目,希望得到大家的支持。能够理解每个人想法的群体一定是有限的,因为整个世界太大了,能够欣赏你的人可能就那一部分。所以从致因这个角度来看,每个人能够找到几个欣赏自己的作品或者自己想法的人是非常不容易的事情。每个人的创作,甚至有些人具有写小说的天赋,都被限制在没有人欣赏它,做出来也没有人看,或者有很好的主意,但是找不到实现它的团队,或者找不到能够欣赏你的对某个问题的看法活荷思想的人群,导致你没有动力把自己的创作或者想法给实现下去。
推荐技术出现之后试图要解决这个问题,让大家把精力放在自己的创作本身上去,当你有了一个很好的主意,甚至对一个问题发表自己独特的看法的时候,系统能够找到关注你的人,或者找到你潜在的阅读团体。如果你能把注意力集中到创作本身,或者集中到创意本身上去,我认为这是解决了人的非常重要的一个需求问题。有人总结过历史上发生过一些重要变化的时候,往往都是在距离上产生一些影响,例如整个互联网把人和人之间的距离完全拉近了,邮政局现在都要失业了,甚至说每一次交通工具的发展,例如现在发展很快的高铁,甚至以后更快速的交通工具,这都汇兑整个产业形成非常大的影响。我上次回家的时候发现一个非常有意思的现象,以前我们家的在节假日的两大爱好,要么是到邻居家到处聊天,要么是到邻居家打麻将,现在多出一种新的爱好,在没有人关注自己的时候,每天在家里刷各种非主流的产品,有时候可以在家里一刷一天,看各种各样的内容,有些内容是他从来不知道自己会喜欢的东西,现在看到了,认为对自己非常有用,散步到朋友圈去,一天就过去了。
如果能够让推荐系统能够在生产和消费之间建立起一座桥梁来,我认为会改变内容创作产业,甚至会改变人的生活方式的问题。今天中午吃饭的时候,说如果大家天天想着在网上做网红或者欣赏自己的人,那么世界上很多学习的方式,甚至说大家的工作方式都会发生很大的变化。刚才大概说了一下现在的内容产业之所以发展这么快的背景,因为互联网上很少有哪个产业能够做到现在这样百花齐放的状态,因为传播性的存在,一一个产品发展得非常好,都会迅速形成垄断,例如电商、社交类产品,很少有产品会像内容推荐这样,每一家都可以做到相当大的规模,现在日活上千万的内容相关的产品至少接近十个了。
在这种大背景下,我们在做这件事情的时候,我们试图要做一个什么样的事情,我们的目标在哪里?因为如果做一个产品,尤其是算法驱动的产品,如果不把目标定清楚,往往会非常有争议。每个人对系统的需求,以及每个人对系统潜在的希望看到的东西是不一样,目标没有设定的情况下,会造成一定会有若干个人觉得你的产品有问题,哪怕再多的产品喜欢它,也会有很多人认为这个产品有问题。尤其是在腾讯这种机制下,这种争议会更大。所以从目标的设定来讲,我们希望从两个方面来说这个事情。第一是有多少自媒体能够在这个平台上获取到它的流量或者获取它的经济利益,以及它们每天因为这些刺激会产生了多少有价值的内容。第二是从长期价值来看,我们希望用户从这个平台上能够获取到真正对他有价值的一些东西,有人说现在很多内容推荐的产品看起来很同质,例如搜狐或者腾讯等等。
我们希望用户得到潜在的不一样的价值,例如一个同学在学日语,发现在现在这种工作压力和社会环境下,很少有精力认真的每天花两小时学这种语言。但是如果每天推给他两分钟的短视频,那么不知不觉中,他会在碎片时间中学会很多东西,这样就会形成一种粘性,除了获取到娱乐性质之外,还可以对他自己产生一些新的帮助。所以从用户价值方面来讲,用户在这个平台上面获取到一些纯娱乐性质的,纯让自己开心之外,还还产生一种能够帮助他的东西。这两点是互相影响的,当有了内容之后才有可能推荐给需要他的用户,内容创作者才有写作或者创作这样的东西,都无人欣赏的时候,作者很难继续下去。没有数字表现的东西是没办法用KPI衡量的。这些数据本身不重要,重要的还是看从一个比较长的时间来看,用户在这个平台能够产生什么样的连续行为,这就是这个平台的价值问题。
有了目标开始,我们从哪个角度来入手?因为所有的产品,尤其是平台性质的东西,大家都知道任何一个人拿到这个产品之后都感觉非常有用,非常好用。但是对于推荐来讲,这是一个几乎不可能实现的目标,是一个非常非常难做的事情,因为现在每个人群在现在这种多样化的世界,需求都是不一样的,即使是在腾讯内部都关心腾讯的新闻,关心的质量和方向也是不一样的。我在前页PPT有一句话,有一个郭德纲和周立波争论很激烈的问题,到底是吃大蒜的人高尚,还是喝咖啡的人高尚?没有好不好的问题,关键是要把人投送到需要他的地方去。
我们在做这个系统的两个出发点,一个是希望他关注什么内容,二是现在已经有一些什么样的用户,还有潜在的用户来的时候,他希望看到什么东西。一是服务于现有用户的问题,二是服务于新来用户的问题。现有用户是基础,无论做任何事情,把现有用户得罪了是非常不明智的事情。不管你有多少理由,把现有用户赶跑了,对产品口碑都是非常大的损伤。所以从这个方面来考虑,我们做这个事情的时候,也需要去分析两个事情。第一是现有用户规模是什么样的,第二是现有用户群体的扩散是按照什么样的方式在扩散,这需要有一个扩散模式来控制,当然它对于渠道和新用户的变化有一定的变化。这决定了下一步的产品用户满意度从哪个方面来入手。所以整个推荐产品的满意度建设方向是从现有用户的基数为基础,进行逐步扩散的过程,最终的目标是每个人都能得到自己想看的内容。
刚才说了一些稍微抽象一点的东西,首先分析了一下现在的内容创作和内容推荐为什么这么火爆的原因。接下来说,我们在做内容推荐的时候,都是怎么来考虑这个问题,这个目标是怎么设定。在下面的几个页PPT当中会说得稍微具体一点,在这个系统当中我们会怎么样去设计一个系统,最优的目标在什么地方。
从推荐来讲,任何推荐系统,不管是推荐文章也好,视频也好,甚至电影也好,它最根本的出发点,都是根据用户历史上的一些行为,甚至一些固定的属性,来判断他的将来行为问题。从这个角度来出发,你想知道一个用户将来喜欢什么有两条很明显的路径问题,第一个路径是他的历史上行为有什么序列你可以得到,这是整个序列分析的问题。第二个问题与这个用户历史行为类似的,或者是与这个用户的基础属性类似的用户喜欢什么,这是推荐当中群体效应的问题。从这两点来出发,整个推荐系统就会变成一个预测的问题,我已知了若干个条件,来预测下一个状态会是一个什么样的东西。对于预测来讲,现在的模型机制就会比较健全,有很多人曾经做过类似的问题,例如广告系统是做点击预测最需要的地方,或者应用最好的一个方面。现在做这种事情一个最常用的方式,就是把每个你能收集到的所有特征全部放在一起去,然后找到一个比较健全的方式,学到一个理论上的最优值的问题。
大家在做这个事情的时候,所有的努力都回访在三个方面去,第一是选择一个什么样的模型上。第二是选哪些特征来做这个的事情,现在流行的方式把所有方式进行交叉,尽量避免特征筛选维度,把所有特征放在一起去,然后整体训练。假设我们推荐也这样来做,把所有用户的属性和他关注的历史行为,然后再和我们能够拿到的推荐数据进行正交,再做一个特征,基本可以达到万亿量级的数据。从这个规模下,从硬件规模上来讲,想学习可能也内做到,这就是投入多少的问题。
但是制约它的一个非常重要的事情,推荐系统开始做的时候是没有足够数据,这样你需要的数据量要比特征规模还要大。当一个产品刚刚做的时候,是不可能达到这样的规模数据的。在这两个条件下,导致第一个等式是不可能成立的。所以为了让这个等式尽可能的接近成立,需要做的事情是什么?在现有的机制下,让这个特征尽可能泛化,所谓的泛化,就是在这个训练当中尽可能看到。如果一个用户看了这篇文章,那么这个用户和这篇文章之间的点击行为是最准确的一步行为,如果你要进行一步泛化,那就是这篇文章的点主题是什么,如果再泛化,这篇文章对应的分类是什么,这个用户看了什么样分类的一篇文章。
如果这样一次做下去,发现整个特征的基数在逐渐下降,而对整体的要求也在逐渐下降。所有的推荐系统最开始做的时候,一定要是按照这种逐级泛化的方式来做。这又带来另外一个问题,当泛化用得越来越多的时候,对于群体共性采集越来越好。假设你的用户群体是百分之百,可能有50%的用户对你推荐的结果非常满意,而50%的用户会觉得你的推荐完全没有道理,因为和他的行为完全不一样。这里有一个典型的逻辑,如果我们以整个公司的群体为整个样本,比如说编辑同学占的人数会比较多,他的行为会严重影响整个推荐结果,会造成少数人,比如说一些专门做深度学习的同学,看起来的效果会偏向于娱乐化,也就是偏向于编辑同学的口味,这就是一个群体的问题。
在这种机制下,你想让所有人的个性完全突出出来是不可能做的事情,而泛化特征最终带来的问题是你能够满足的用户群体是有一个比例的,在所有的用户群当中会形成一个比较金字塔形状,金字塔底座是满足最好的人群,越向上是满足越不好的人群,基本是40%的用户能够贡献这个产品80%的时长。所以在这种情况下,要想解决上面那60%的用户需求,就变成一个你的泛化特征和个性特征的抉择问题。我们是希望让这个特征做多大规范的泛化,还是说在这个数据当中引入多少纯的,与单个用户相关的数据问题。所以最后大家做来做去,做的问题是泛化粒度问题。从我们目前的角度来说,我们可以做到40%的用户每天在我们这里消耗的头条已经比均值还大,60%的用户对我们的抱怨很大,尤其是金字塔最上面的30%用户认为每天的推荐和他们毫不相关,他们肯定会走,因为兴趣模板不是用他们的兴趣方式合成出来的。
所以从学习的系统设计来看,我们未来的方向肯定是要让这个金字塔尽可能扁平,让满意群体规模更大一些。但是即使这样做,我们还是会遇到一些新的问题,比如说一个简单的问题,同一篇文章或者同一个类型的问题,不同人对它的要求是不一样的。例如同是看一个腾讯视频的文章,一个投资者和作为小小股东,对腾讯财报的关注点不一样,有人是从各个维度去解决它,而我们只是解决它能赚多少钱,利润是多少,基本就可以。但是要做到这一点,基础的问题是对这个内容用什么样的方式进行量化的问题。对于文章来说相对简单,但是对于视频来说更加复杂。同是一个搞笑的文章,你确定知道这个人在晚上10点在WiFi,可能就是想娱乐一下,看一些搞笑的东西。有的人是喜欢纯粹的恶搞的东西,而有的人喜欢的是品位相关的东西。那么对于视频内容的提取,我知道视频是偏哪种类型的,或者里面的搞笑用的哪种方式。如果做不到这一点,从推荐系统本身来说没有任何可以推荐的依据。所以我们下一步,除了让那个三角形的高尽可能低一点之外,另外尽可能理解可推荐的内容究竟是哪些的问题。
再说一下用户的问题。任何一个学习系统没有数据的时候,无论如何也没有办法得到精准推荐,只能是他认为的当前最优值,这样用户留存率高不了。现在解决新用户的问题有一个办法,一个最极端的方式是用产品的方式来解决。但是这种方式只能代表了与设计产品的人最相近的那一部分人的特性问题。现在在这么大的用户群体调温下,你的新用户的需求一定是多种多样的。做这个的人和用户代表了两批看法。所以解决新用户的最佳方式就是把新用户消灭掉,这听起来很困难,但实际上在腾讯做这件事情还是有希望做到的,原因是手Q+微信的覆盖,如果按照装机量来看,基本每个用户的设备上都会装一个腾讯的产品。
如果你能他使用腾讯产品的行为问题,可以从理论上来讲有可能做到没有新用户方案的。在内容和用户能够完整的解决之后,剩下一个问题就是推荐技术的演进问题。对于推荐技术来讲,它逐渐恢变成一种数据+算法变化的过程,因为假设你的用户群体远远大于竞争对手,可以不做任何牺牲,只用协同的方式让产品远远高于竞品。但是在没有这种情况的时候,你需要数据量远小于竞品,你需要什么样的数据来设计这个模型,来达到一个效果,和竞争对手基本处于一个水平线的地位。这是一个相互迭代的过程,当你的效果达到的时候,用户群自然扩大,这样对结果又会产生正向的影响。
所以在推荐技术上我们需要设计一种迭代速度问题,在当前的技术情况下,做一个什么样的事情,对这个推荐效果带来的影响,会产生多少新的用户,这个条件下又会对这个结果产生新的迭代。这样可以设计一个周期,在多长时间内用户规模和推荐质量达到相对来说可以期望的程度。整个模型的变化就变成一个演进的过程,大家看了指标是几个月之后的结果,它与你的推荐效果经过自身的迭代,反复进行几轮之后,一个逐渐变化的结果。可能说当你设计好一条路径之后,当这个路径逐渐跑起来,哪怕不做任何事情,各个指标都会产生向上的变化。所以在这种情况下来说,从内容、维度和推荐技术三个方面来讲,
如果都达到预计的目的,那么推荐系统自己就可以变成内循环的过程。内容和用户也是一样的,当用户群体不断扩大的时候,它对内容的需求范围也在不断的扩大,哪怕是一些非常小众的需求。甚至按照我们正常的逻辑没有任何看点的东西,例如快手上一些吃西瓜的视频总能找到喜欢这种类型的用户。这样就会变成多路螺旋的结果。而最终的目的很简单,就是让用户觉得,这个平台能够得到他需要的内容,能够长期在这个平台上去获取他需要的东西。当他有时间的时候,或者没有其他需求的时候,他能想到的第一个需求点是在这个地方。