【钛坦白】第四范式陈雨强:人工智能在工业界应用的必经之路

您当前的位置:环亚科技网新闻正文
放大字体  缩小字体 2017-09-10 19:52:16  阅读:1914+ 来源:新浪科技 作者:卢洁云

大家晚上好,我是陈雨强,现在在第四范式负责人工智能算法的研究和开发相关的工作。今天我要跟大家分享的题目是《人工智能在工业...

大家晚上好,我是陈雨强,现在在第四范式负责人工智能算法的研究和开发相关的工作。今天我要跟大家分享的题目是《人工智能在工业界应用的必经之路》,分享一下我之前在工业界的经历,希望和大家有一些思想上的碰撞。

最近人工智能在工业界越来越火,过去五年之间人工智能的应用是以指数级在上升,不管在公司内部还是行业之间,人工智能变成一个炙手可热的名词。从公开资料上可以看到,谷歌在2012的时候,其实跟Facebook一样都只有很少量的一些应用使用了人工智能技术,比如说在他们最当家的那些搜索或者是Feed流上使用的这些技术,但是到2016年Q2的时候,谷歌已经有超过2000家的应用使用了人工智能技术,而在Facebook里已经有超过17个大的团队,25%以上的工程师正在使用人工智能。也就是说,在互联网的这些巨头里面,人工智能的影响力正在从少数几个产品迅速的扩展到各种各样的产品线上。

还有一个比较有意思的现象,就是人工智能在工业界的影响会越来越大,热词正从“移动+”“互联网+”到“AI+”转变。之前处于跑马圈地的时代,所以说有“移动+”和“互联网+”作为渠道,能让传统的实体行业焕发新的一春,但是等到流量的红利已经到达了一定的边界的时候,我们急需一些新的方式能让增长保持持续。

AI是下一个增长的点,所以传统的“互联网+”的公司纷纷转向“AI+”,比如说滴滴、美团,小米,他们拥有很多的数据,他们现在也在纷纷建立研究院,研究这些数据怎么样能产生更大的价值。比如美图,它背后有大量的照片,所以他们也可以成为非常优秀的人工智能公司。除此之外,还有一些天生就是人工智能与行业结合的公司,比如说人工智能加上新闻就是头条,人工智能加上机器人就是大江这样的公司。

给大家分享之前我介绍一下自己的经历。AI大潮从2001年开始呈指数级的上升,非常有幸我赶上了这波的大潮,当时在学校里,我主要做的是迁移学习方面的研究,在NIPS和AAAI等顶会上有比较多的论文发表,然后到了工业界之后,我发现其实看到的问题和现在有很大的不同。

我毕业之后首先去的是百度,在百度主要负责的是搜索广告系统——凤巢系统,这个阶段是解决一个公司的一个问题,就是怎么提高广告点击率,当时做的事情偏纯技术,我主要做的是如何将上千亿特征的机器学习系统变成一个深度学习的系统,这也是当时我们所知道的世界上第一个把深度学习应用到商业变现上的一个成功的系统。

之后我去了今日头条,在头条和百度遇到的问题其实并不太一样,百度凤巢里面遇到的问题主要是搜索广告,在头条里我会遇到很多的问题,比如说主信息流推荐、小频道推荐、视频推荐、信息流广告,还有评论排序等等非常非常多的应用和业务,这样的应用和业务对我来说最大的感受是,我发现了人工智能需要更紧密地和产品、应用相结合。我在头条除了做了一个大规模的机器学习系统,能让它有个性化的推荐效果之外,还有一个很重要的事情,就是设计了一套机制,能够让机器学习系统发挥最大的效能。打个比方来说,机器学习系统是一个汽车的引擎,而我们设计的就是一个传动系统,有了一个比较好的传动系统,才能把机器学习的能力发挥到极至。

离开了头条之后,我到了第四范式,在第四范式我面临的行业更加多种多样。不止是新闻行业了,可能是金融、电信、互联网,包括各种各样的问题,有获客、风控、营销、推荐、排序等很多很多的问题。所以在这个地方,我遇到的新问题是,怎么样能把我在过去拥有的人工智能的知识应用到各行各业。

从解决一个公司的一个问题,到解决一个公司的很多问题,到解决各行各业的各种问题,这个经历给了我比较多的思考,比方说如何做一个人工智能系统,如何让一个人工智能系统更加广泛的在一个公司内部被使用,如何让一个人工智能系统有更好的机制,以及如何让人工智能系统进入到更多的行业之内。

为什么人工智能在最近一段时间非常火,而不是更早的比方说十年前,二十年前非常火呢,为什么AlphaGo能打败李世石,在2016年而不是更早呢,我们直观地认为,因为算法的创新,因为出现了深度学习,因为出现了DQN这样新的算法,但是这只是一部分原因。国内外很多专家总结出了人工智能成功的五大条件,我这里跟大家分享一下:

这些要素总结起来有三点:一方面我们需要有很好的技术,包括计算资源和大数据,一方面是业务边界要清晰,要有反馈,另外一方面我们需要有人,我们需要有很好的科学家,需要有很好的场景,能让我们使用上这个人工智能。

首先说说什么是好的机器学习系统。好的机器学习系统一定是可扩展的机器学习系统。可扩展的机器学习系统并不等于可扩展的系统,这里面最大的区别是什么呢?最大的区别就是,可扩展的机器学习系统一方面数据的处理的吞吐随着集群和机器数量的增加而增加,这是传统的可扩展系统;而另一方面可扩展机器学习系统指的是智能的水平和体验的壁垒,随着业务和数据的增加而增加,这个可能是机器学习最不可替代的价值所在。

比如,过去要建立竞争壁垒主要是通过业务的创新,行业的跑马圈地,通过新的渠道来提升效率。这种方式之中,对于产品本身来说是相对很容易被抄袭的,而资本的投入、运营的强度和渠道是否完整是整个公司成功的关键。但是随着数据和AI的普及现在有了一个新的方式,就是通过时间和数据创造壁垒。

比如现在的搜索引擎,即使有人有了百度全部的代码,也很难做出一个超过百度的体验水平的搜索引擎,因为百度拥有最近十年全中国上十亿人所有的搜索数据。如果没有了这些数据的话,即使有同样的算法,也没有办法得到同样的体验水平。从这个角度上来说,将来的竞争壁垒,将不仅仅只是在我们的业务上,更会在我们的数据上,有了更多的数据我们就可以通过人工智能产生更高的壁垒,然后拉开更大的差距。

那怎样获得一个高智能水平的可扩展的机器学习系统呢?1960年代到1990年代,Vapnik 和 Chervonenkis提出了“VC维”理论,形式化地描述了机器学习算法对复杂函数拟合的能力。“VC维”类似人脑内的神经元,有越多的神经元代表这个人越聪明。但有越高的智商不一定会有越高的成就,还有一个很关键的因素就是你需要有很多的经历,只有那些智商比较高同时又很多经历的人才能悟出很多的道理,在机器学习“VC维”也是讲的这么一个道理。

如下图,过去的数据不是很大,所以随着我们的迭代的增加,我们的训练损失函数在不断的下降,我们测试损失函数先会下降然后会上升,这个地方我们需要控制VC维,让模型不要共拟合。这好比你是一个比较聪明的孩子,很小的时候不能让你过度地思考,因为你的精力比较少,所以非常容易误入歧途。其实比较好的做法是上方右侧这幅图,也就是我们使用VC维比较低的模型,让训练的损失和测试的损失函数同时的下降,这是我们认为比较好的一个模型。

当然这只是故事的一半,随着时代的不断的发展,我们会发现数据会越来越多,如果我们把横轴替换成数据这个维度,如下方这幅图,在数据比较小的时候,低VC维的模型比高VC维的模型效果好,因为高VC维的模型会over-fitting,但是随着数据越来越多,高VC维的效果会不断提升,而低VC维系统会达到一个上阶,这就是所谓的under-fitting的问题。当然这只是故事的一半,随着时代的不断的发展,我们会发现数据会越来越多,如果我们把横轴替换成数据这个维度,数据从小到大这么一个过程,我们会发现,下方这幅图就是有两条曲线。其中第一条曲线是说,过去的曲线是这条over-fitting的曲线,在数据比较小的时候,我们低VC维的模型比高VC维的模型效果好,因为高VC维的模型会over-fitting,但是随着数据越来越多的时候,高VC维的效果会不断提升,而低VC维系统会达到一个上阶,这就是所谓的under-fitting的问题。

在将来大数据的时代,under-fitting可能是需要更的一个问题,因为under-fitting会限制你使用大数据,以及限制数据的价值的体现。所以说在大数据的时代里面,我们强调可扩展的概念,智能水平、模型的效果应该随着数据的增加而不断的增加,而不是随着数据的增加达到一个瓶颈,我们要设计的系统应该是高VC维的系统。

我们知道机器学习等于数据+特征+模型,如果说我已经有了很多的数据,提升VC维的途径就只有两条——从特征的角度和从模型的角度。

我们把特征分成两类,一类叫做宏观特征,描述的统计类特征,比如说整体的点击率,或者整体统计系统这样的特征;另一类特征是微观特征,最典型的微观特征可能是ID类的特征,每个人都会有这样的特征,每个物品也会有一个ID,然后人和物品的组合也会有这样的ID类特征;相应的模型也会分成两类,一类是简单的模型,比方说线性模型,另一类是复杂模型,比如说深度学习模型。

这里我们引入机器学习的四个象限的概念:

第一象限是简单模型加上宏观特征,这是我们传统的专家系统和统计模型所在的范畴,大家可能比较熟悉的一些传统的机器学习数据集比如说UCI就是典型的这个象限内的。这大概是七八十年代的数据集,每个数据集里面有一千个左右的训练数据,特征维度也不高,分的类数也并不多,在这样的一个数据集里面,统计模型会比较盛行,他主要解决的问题是怎么样找出特征之间的关系,以及各自的关联度。

第二象限是简单模型加上复杂特征,这里面最成功的案例可能就是谷歌的Adwords。谷歌的Adwords里面有上千亿的特征,取得了非常大的成功,给谷歌带来了很多的收益,现在占据了谷歌70%以上的收入。同时谷歌的展示广告也使用了同样的技术,并且占据剩下20%的收入。这样的模型现在不仅是在谷歌,在整个互联网广告中都是被使用的最广泛的一个技术。

第三象限是使用复杂的模型、宏观的特征,这里最典型的代表是雅虎news和bing这样的系统,bing的广告在2013年提出他们的BPR模型,来去刻画每个特征的知信度,雅虎也是第三象限最忠实的支持者之一,大家所熟悉的COEC就来自于这样的模型,雅虎还设计了很多增强学习的机制,比如说多臂老虎机,这也是这个里面最成功的应用之一。

第四象限是复杂模型和微观特征,现在还是一个非常热门的研究领域,里面最难的一个问题是如何在这么大规模的特征情况下,使用非线性模型。计算量是一个很大的一个难点,比方说如果我有上千亿的特征,我的节点有上千个,我可能需要上万亿甚至更多的参数,才能保存下来这个模型,这个可能不管是从内存上还是计算上都是不可接受的,所以这是一个非常热门的研究领域,非常多的研究机构正在这个方面进行尝试。

我们现在讲一下如何沿着第三象限就是复杂模型和宏观特征这条路来优化模型。这条路主要是由学术界主导,这样的模型主要来自于 ICML、NIPS、ICLR这样的会议,非线性有三把宝剑分别是Kernel、Boosting、Neural Network。Boosting最成功的是现在熟知的GBDT,Kernel比较成功的是SVM里面流行的那个RBF Kernel,Neural network比较流行的现在最成功的深度学习。现在科学家为了实验的方便,对工程的实现能力要求并不是特别的高,大部分的模型是单机科学家在做,要解决的实际问题是数据分布式和降低分布式通信带来overhead这样的问题。

工业界怎么根据特定应用来优化模型呢?主要的思路是:先观察问题,得到一些思考和假设,然后我们把思考和假设通过建模的方式加入新的结构和参数,重新拟合我们的数据,最后得到一个新的模型和新的验证。

以时序动态的协同过滤为例,我们这里引用的是Koren、Yehuda发表的论文Collaborative filtering with temporal dynamics,这是这个领域被引用最多的一篇经典论文。在这篇论文里面,我们首先有一个低秩的假设,我们认为一个矩阵是被分解成两个更低维的矩阵相乘的结果。就比方说图上的这个4×4的矩阵就被分解为了两个,一个4×2的矩阵,一个2×4的矩阵,这两个低维的矩阵一个是user的隐变量,一个是Item的隐变量。

靠下位置作者给出的图,是作者发现的打分的问题,比如MDB电影的打分会随着时间的推移而不断地上升,所以他设计了一系列的线性模型来拟合这样的趋势。他会设计一个User打分的时间,第一次打分的时间的偏置乘一个斜率是他打分的偏置,同时他会对每一个电影设计这样的打分的偏置,考虑到每个Item随着时间的影响受到的打分的波动。

在第三个公式里面你可以看到,时间的波动不会是一个纯的线性的关系,所以作者用非线性的方式进行分段的拟合,但是不管怎么说,这样一个模式是比较清晰的,也就是说我们首先观察数据,从数据中得到一些假设,然后根据假设设计一个模型,这个模型会有几个未知的参数,我们通过机器学习的方式拟合这样的参数,最后得到一个模型,在新的数据上进行验证,看它的效果如何。

这方面工作主要是工业界主导的,比较有意思的成果主要发表在ADD、ADKDD或者WWW这样一些学术会议上,这些模型相对来说比较简单粗暴,基本上都是LR。

沿着特征这条路优化的特点就是模型一定要做成分布式的,这个在工程上的挑战是非常非常大的。在这条路上比较成功的典型公司,比如谷歌使用了上千亿的特征,百度也使用了上千亿的特征,这些公司都是是从最细的角度来描述这些数据。

上千亿的特征是个什么概念呢?如果我们每个特征只用一个Float来表示也需要上T的内存,这是单机非常非常难以存储下来的。这个地方还只是讲到了模型存储的空间,如果考虑到数据存储的空间和其他的一些额外开销的话,我们必须要设计一个模型分布式的系统,而不是一个单机的系统。针对这样的难点,学术界里面比如KDD、WWW等顶会上都有很多的文章在研究如何高效的并行,如何保证快速收敛,有很多的异步的模式被提出来,比如说ASP、BSP同步异步算法。

我们用到的模型主要都是逻辑回归模型,所以说线性模型的理论其实是非常成熟的,模型本身的一些改进和优化并没有像上面那个第三象限里面那么多,所以说它的更新、改进主要会集中在所谓的特征提取或者特征工程这样的领域。

我先解释一下为什么会有这么多特征。我们对所有观察到的微观变量进行建模,以搜索广告为例,每一个user的ID,每一个query,每一个广告,都会有一个独立的特征,同时为了个性化,user+广告ID,user+query,query+广告ID,我们有上亿的user,上亿的广告,上亿的query,这样的组合会产生爆炸性的特征量,所以我们可以产生非常非常多的特征,这些特征是我们需要去建模的基础的变量。

这样的一个思路会比较奇怪,为什么我们把所有ID类特征作为基础的建模变量,那是不是说如果我们把用户作为一个变量的话,只要来了一个新的用户我们就不能对这个用户进行广告点击率的预估呢?并不是这个样子的。这里面就涉及到另外一个概念就是特征的层次化,即使我们没有见过这个新用户,我们会有这个用户的设备信息,地域信息,还可能有性别等特征,这些特征也能帮助我们去判断这个用户的点击率。

还以时序动态协同过滤为例,我们看看如何沿着特征这条路来解决这个问题。首先一点是我们不再对这样的问题有低秩假设,如下图左上角这个矩阵,还是原来ABCD四个人,WXYZ四个物品,我们把这样一个矩阵直接拉平,变成一个往后one hot encoding的方式,这样我们把所有的组合特征就变成了一个二维的矩阵,变成了一个一维组合特征的方式来表示。这样的方式来说,就不需要再有更多的低值假设,那b_ui这样一项其实就可以通过我们的数据进行拟合。

第二点,可以通过不同维度的时间组合来建模时间维度的非线性跳变。作者也在论文写到,他发现有些电影的打分并不是线性的,有时会出现一些不可解释不可描述的跳变,这些跳变其实很难通过某种固定的方式进行建模。所以他提出了下面好几种建模的方式,比如说把时间进行分统,跟每个物品Item进行组合,跟每个用户进行组合,包括分统了以后进行分段组合,这种方式都是不再对具体的时序特点进行建模,而是把他变成一个参数统一的由数据进行拟合。这个地方你也可以看出来,当我们的研究人员不能给出比较好的模型假设的时候,我们又不知道如何去应对突变的时候,我们可以更多的去依赖于数据,用潜在的参数建模可能性,然后通过数据学到这些参数应该对应的权重,然后进行建模。

其实并没有哪个模型在所有的情况下都更好,换句话说,机器学习并没有免费的午餐也不会存在万能的模型。

没有免费午餐定理是由两位数学家在95年提出来的,他们证明了,任何的算法不会严格优于另一个算法,也就是说,如果我们能在某种损失函数下发现A优化算法好于B优化算法的话,我们一定能找出其他的一个损失函数使得B优化算法好于A优化算法。更直观的描述是说,我们总能找出一个损失函数,让所有的算法都并不比随机猜更好。

这个告诉了我们什么呢?所有的机器学习模型都是偏置,这个偏置代表你对数据的假设,偏置本身并不会有哪个更好,所以说你既可以使用更多的模型假设使用更少的数据,也可以使用更少的模型假设使用更多的数据,这都是能使得最终的模型效果变好的方式。总结起来,对于我们工业界来说,机器学习并没有免费的午餐,一定要做出对于业务合适的选择。

追求高VC维有两条路,一个是走宽和离散的路,比如说谷歌那条路,另一条是走深的那条路,比方说雅虎news或者是bingads的路,这就是宽与深的大战。因为宽与深在工业界都有非常成功的案例,所以坚信宽的人和坚信深的人在很长一段时间内,都是互相不能理解的。

坚信深度学习复杂模型的人认为,宽度模型实在太简单了,20年前模型已经被研究非常透彻了,没有什么更多的创新。坚持宽度模型的人来说,攻击深度学习的点也非常的简单,深度学习从来就没有真正的把所有的数据都用好过,从来没有真正发挥过所有数据的全部价值,没有真正做到过真正的个性化,因为确实深度模型在推理上做得很好,但是在个性化,在记忆方面其实相比于宽度模型会差很多。

非常有幸的是我之前在两边都做过比较多的实际的探索和研究,其实宽和深都有各自的好处的。宽度模型和深度模型有非常强的融合的趋势。换句话说,宽度模型和深度模型并没有谁比谁更好,这就是所谓的没有免费的午餐定理。不同的业务应该使用不同的模型,不同的模型也会有不同的特点。

宽度模型是有比较准确的记忆能力的,而深度模型是有很强的推理能力的;宽度模型的泛化是靠层次化的特征进行泛化,深度模型是靠模型本身的叠加进行泛化;宽度模型有很强的可解释性,比如说一个线性的模型,我可以非常容易的知道每个特征的权重是多少,以及一每个特征是如何去影响最终的结果,而对于一个深度模型来说,我们是非常难理解原始的输入和最终的输出是怎么样一个对应的关系。

宽度的模型对平台工程要求是更高的,因为我们除了需要对数据进行并行,还需要对模型进行并行,而深度的模型对平台工程的要求相对更低一点,他的模型基本上都是单机可加载的。

还有对于选型很关键的一点,宽度模型这条路上,特征工程的创新是提升效果的关键,业务的知识是很容易加入建模的,所以说在宽度模型这条路上,业务专家是非常容易产生价值的,并且非常容易的可以参与到整个模型的优化之中的。而相比来说,深度模型的创新主要来自于模型本身的结构的创新,这样的创新基本上都来自于学术界和研究的专家,每种业务知识的加入可能都意味着是一种新的模型,所以说这两种模型的选型代表着不同的人来优化你的系统。

宽度和深度的大战在我看来,各自有各自的优缺点,可以取长补短,对他们进行一些融合。现在宽和深的融合也就是所谓的第四象限已经逐渐成为了一个研究的热点,谷歌在去年4月份发表了一篇论文,介绍他们最新的工作Deep & Wide Model,这样的模型分成deep的部分和wide的两部分,它对细的特征有很好的记忆,也有很好的推理能力,我们认为将来的方向都应该朝这条路上走。

最近还有不少工作在探索这个研究的新方向。张伟楠2016年也发表论文,探索如何通过使用FM的方式,对离散的一个宽度特征进行分解。首先进行分解,然后再使用深度学习进行建模,获得了比较好的效果。随后在WSDM上他发了另外一篇文章,讲述如何加入内积和外积的方式,更好的刻划特征与特征之间的关系,最近第四范式也有了一些新的进展。在去年7月份的时候,第四范式发表了一个DSN算法,这个算法底层是上千亿上大小的宽度网络,上层是全连接的网络,这样一个DSN的难点在于如何解决可计算性。

刚才我分享的是人工智能在工业界的应用,我现在在第四范式做的事情是希望把这些经验能够固化到我们的产品中来,能让所有的人都能使用上人工智能,所有的人都能享受到这样的经验带来的一些便利和好处。

在过去AI其实是没有人能使用得,但最近AI开始被一些大的、小的公司使用,但是我们认为,将来随着数据越来越多,将来随着场景越来越多,AI这样的技术应该是被更多的人使用,我们是希望能达到Al for everyone的一个状态。大家可能非常熟悉一个比赛叫Kaggel,这个比赛是比较知名的针对机器学习专家的建模比赛,在Kaggle上会源源不断的涌现出非常好的建模专家。我们最近做了一件非常有意思的事情,举办了世界上第一个非机器学习专业人士的机器学习建模大赛,我们称这个比赛为Exciting。

这个比赛里面,所有有过机器学习背景的,有过建模背景的人都不允许参加,而能参加的人可能是做市场、销售、研发工程师的。最终我们发现,通过使用第四范式的平台,我们让70%以上的非机器学习专业人士最终实现了AUC0.8以上的效果,这个是非常高的工业界可以应用的水平。

最近我们又开启了一个新的项目叫做范式大学,我们希望让更多没有人工智能背景的人能够参与到人工智能的研究和人工智能的开发之中来。这样的项目会越来越多,我们相信第四范式也会离Al for everyone目标越来越近。

1.Dr.陈,在你目前这么宽的行业视野内,除了个性化推荐外,机器学习在互联网公司的自动化测试、智能运维、智能巡检等方向,是否有应用的可能性呢?还有,刚才你提到了获客,机器学习在这个方向的应用是个什么场景?

陈雨强:关于机器学习能不能在其他的领域进行应用,我觉得主要还是五个条件是否能满足。是否有足够的数据,问题定义的是否足够清晰,有清晰的边界,人工智能的人才,计算资源,外部反馈。

获客这个角度来说,其实机器学习会有非常广泛的应用,其实这不是最近才出来的概念,获客在DSP出现的时候就已经是非常广泛使用的技术了。就是在DSP报价的时候,对于一个新来的流量,他会通过机器学习的方式去预估这个流量给这个网站,这个商家带来的价值是高还是低,或者说CTR点击率是高还是低,通过这个方式来进行报价。

2. 自动化巡检的话,我的感觉是需要用到大量的图片信息来判断业务的状态,那这大量的图片如果分辨率很高,是不是就很难做计算了?

陈雨强:如果分辨率高但是有标注的话,其实也是可解的。

3. 请问一下,您之前合作过的行业领域和应用场景主要有哪些? 能举些稍微具体一点的例子吗?

陈雨强:之前具体合作的行业有金融行业的,比如信用卡分期的营销,比如欺诈的检测,风险控制,然后我们还做了很多关于推荐、搜索相关的方案。

(本文独家首发钛媒体,根据第四范式联合创始人、首席研究科学家陈雨强博士在钛坦白上的分享整理)

……………………………………

钛坦白第33期,AI已来之机器学习2,三晚上的分享已经结束了

干货会陆续发布:http:///tag/1508094

孔夫子旧书网创始人、回收宝合伙人、转转公司3C事业部总经理,将带来精彩分享~

地点:钛坦白|文娱社交(群)