华为诺亚方舟实验室主任李航:用漂亮的方式解决"污浊"的问题
李航,华为技术有限公司诺亚方舟实验室主任,北京大学、南京大学兼职教授。他日本京都大学电气电子工程系毕业,日本东京大学获得计算机科学博士学位。曾就职于日本NEC公司中央研究所,任研究员,以及微软亚洲研究院,任高级研究员与主任研究员。李航博士的研究方向包括信息检索,自然语言处理,统计机器学习,及数据挖掘。他一直活跃在相关学术领域,曽出版过三部学术专著,并在顶级国际学术会议和国际学术期刊上发表过上百篇学术论文,拥有40项授权美国专利。
机器学习的春天
“他说自然语言处理是“泥臭い”(污浊)的,用漂亮的方法是解决不了的;我说我的结论正好相反,正因为自然语言处理是“泥臭い”的,才必须用漂亮的方法去解决。"
问:您能否简单介绍一下自己的经历?
我祖籍是天津,在哈尔滨出生,六岁时随父母到西安,小学中学都是在西安念的。高中毕业以后,考上西安交通大学。当时教育部有一个派遣本科生到国外留学的政策,我和全国各大高校的一些同学被选拔去日本留学,我们那批共有三十人。我在西安交大呆了半年以后,去长春学了一年日语,之后于1984年4月去了日本。
我在日本京都大学读的本科和硕士,毕业以后就去了NEC公司的中央研究所。在那里,一边工作一边学习,在东京大学获得博士学位。2001年6月回国,在微软亚洲研究院工作了十一年。2012年5月来到香港,至今在华为诺亚方舟实验室工作。
问:在京都大学学习的时候您是怎么进入到机器学习领域的?
我接触人工智能还是挺早的。我在京都大学本科的专业是电气电子工程,入学以后不久,有一个参观人工智能实验室的机会。学校安排了一个研究生作为我的tutor,领我去到他的实验室,碰巧他是做人工智能的。大概那个时候我才真正看到大型的电子计算机,机房里放着许多台LISP机器,叫SYMBOLICS,由波士顿一家厂商生产,在当时是很昂贵的。在参观的过程中他们告诉我,他们专门研究计算机视觉、自然语言处理这方面的人工智能问题,我觉得这挺有意思。刚巧那个实验室的学生们组织了一个读书会,于是我也跟着去听,但是基本上听不太懂,相关的知识积累太少,当时日语也不够好。
就这样,我本科期间对人工智能一直抱有浓厚的兴趣。后来大四的时候需要选实验室和方向,我就选了这个实验室。实验室的教授是长尾真(Nagao Makoto),副教授开始是辻井润一(Tsujii Junichi),后来是松本裕治(Matsumoto Yuji)。长尾老师研究自然语言处理和计算机视觉,辻井和松本老师主要研究自然语言处理,他们都做出了许多卓越的工作,在国际上享有很高的声望。(辻井老师后来去东京大学任教授,他是我在东大的博士导师)。到了这个实验室之后我就开始更多地接触人工智能,学习LISP语言,C语言,Prolog语言,开始做自然语言处理相关的研究,大四和硕士都是在长尾实验室度过的,研究课题是自然语言生成。
回到你提的问题,我那时接触的主要是传统的人工智能,对机器学习,特别是统计学习了解得并不多,只知道决策树算法ID3。当然,那时统计学习还没有兴起。
问:硕士毕业后,您就下定决心要从事人工智能方面的研究工作了吗?
也不是。我当时挺犹豫的,还不知道未来要做什么。虽然已经接触到人工智能,也做过一点研究,但是都很肤浅,也不知道能否持续下去。那时我有一个学长去开公司,我想要不要也去尝试一下。我也想过去美国读博士,也考了TOEFL。
毕业前夕,硕士同年级的同学们组织去日本大公司参观,我就跟他们一起去了。我们看了好几家公司,包括东芝、NEC、NTT、日立、富士通,当时是日本经济的鼎盛时期,这几家公司不仅在日本,在国际上也做得非常好,他们的研究部门有不少优秀人才,也有很好的研究环境。日本有一个风气,大家一般都不愿意读博士,很多人读完硕士以后就到企业去工作,做研究,通过写论文这种方式拿博士学位,很少有人选择在学校读博士。我觉得在企业做研究也不错,就跟另外一个同学一起去了NEC的研究所。
在NEC的头两年,我在自然语言处理小组工作,主要做的是自然语言对话的研究,也不写论文,主要是开发系统。我也没有做机器学习相关的研究,因为九十年代初的时候,人工智能、自然语言处理主流还都是基于手写规则的。我对自己的未来也还是处于思考的状态,没有完全下定决心去做研究。
在这段时间里,人工智能领域发生了巨大的变化,特别是自然语言处理发生了范式转移(paradigm shift),基于数据驱动、统计学习的方法展现出其威力,引起了广泛的关注。(后来的二十多年里基于统计学习的智能化成为人工智能的主流,而转折点正是九十年代初那个时期)。
坦率地说,我对传统的人工智能一直喜欢不起来,我从骨子里喜欢的是用漂亮的数学模型(principled approach)去有效地解决问题,而传统的人工智能的方法要么缺乏数学模型,要么不能解决实际问题,总是让我感到哪里不对。跟我一起工作过的同事、同学们,看过我的书籍、论文的同仁们,应该能感触到我的这一信念:基于数学且有效的方法才是科学的方法,是我们应该追求的。我在高中时最喜欢、也最擅长的是物理,在我看来牛顿力学是科学方法论的第一个里程碑,而工程学也应该采取同样的方法论,走同样的路。当我看到IBM的Peter Brown等做的统计机器翻译的工作的时候,感到强烈的震撼与由衷的钦佩,也开始倾向采用统计学习方法去解决自然语言处理的问题。记得当时还跟自然语言组的科长“吵了一架”。他说自然语言处理是“泥臭い”(污浊)的,用漂亮的方法是解决不了的;我说我的结论正好相反,正因为自然语言处理是“泥臭い”的,才必须用漂亮的方法去解决。
1992年我换了组。从原来的自然语言处理组转到了机器学习组,科长是安倍直树(Abe Naoki)和山西健司(Yamanishi Kenji),他们在机器学习领域都做出了许多出色工作,是世界一流的研究人员,我从他们那里学到了很多东西,现在安倍是IBM研究院的主任研究员,山西是东京大学教授。也就是从那个时候开始,我重新温习了大学学过的概率统计学知识,系统地钻研了隐马尔科夫模型、决策树、最大熵原理、最小描述长原理(MDL)等统计学习方法,写过的笔记有十几本。
1992年也是我人生中的一个比较重要的时间点,那年我决定以研究作为自己的职业。领导我们的部长叫中村胜洋(Nakamura Katsuhiro),他在我人生中的关键点上给过我很多重要的帮助。有一次我跟他聊,谈到自己未来的职业发展,他说:你还犹豫什么呀?我对你很了解,你就适合做研究,甭想别的了。
问:能介绍一下您做的博士工作吗?
从1992年到1998年获得博士学位这段时间,是我人生中最“苦”的时期,也是我在研究上成长最快的时期。我们机器学习小组以研究机器学习理论为主,考虑两个应用领域:生物信息与自然语言处理。我负责自然语言处理的研究,目标采用统计学习的方法获取语义知识,用于自然语言处理,我也把它当作可能的博士研究的题目。1995年辻井老师调到东京大学任教授,我在他的指导下,开始把公司里的实际研究工作整理成为博士论文,NEC的中央研究所在东京附近,去东大也很方便,我就开始经常去辻井实验室,跟辻井老师讨论问题。 我的博士论文提出了用最小描述长原理(MDL)学习语义语言知识的三个方法,工作主要是跟安倍做的,在自然语言处理顶级杂志Computational Linguistics上发表了两篇论文,之前好像没有中国人在CL上发表过文章。辻井老师挺高兴,他说:嗯,做得不错,大家都说好。当时在自然语言处理领域里大家都知道这些工作,算是我研究生涯的起点吧。
博士毕业后,我打算去美国发展,山西阻止了我,希望能跟他一起启动文本数据挖掘项目,在他的领导下,我开始做文本数据挖掘,我和另外两个工程师开发了问卷自动分析系统,当时还是挺先进的,我负责算法的开发与实现。NEC的这个产品在日本被广泛使用,据说现在该产品还在销售。我和山西还在KDD会议上发表了一篇论文,介绍相关的工作。
问:能介绍一下您在微软亚洲研究院的工作吗?
2001年,我拿到了Xerox PARC的offer,准备去美国。微软亚洲研究院(MSRA)自然语言组的主任研究员黄昌宁老师邀请我去访问,并建议我考虑加入。第一任院长李开复博士提出了要将研究院建设成世界一流,亚洲第一的研究机构。这个愿景深深地打动了我,我于是决定回国,加入他们的行列。MSRA确实是了不起的研究机构,我有幸跟许多优秀的研究人员在一起工作,从他们那里学到了很多东西。
我在微软做研究主要还是围绕着公司的产品需求进行。开始是做文本数据挖掘,以及企业搜索,比较偏产品开发。SQL Server 2005中的文本数据挖掘的工具就是我们开发的,跟我一起工作的主要是曹云波博士。SharePoint 中的搜素功能也有不少我们的贡献,2007年、2009年的版本里都有我们开发的技术,胡云华博士、徐君博士在这方面做了很多工作。
后来微软决定做互联网搜索,我们又把研究方向放到了互联网搜索,这期间我成为主任研究员,领导更大的研究团队。我们在产品开发方面的成绩并不太理想,有一些产品转化,但是贡献都不太大。其中一个原因是跟Bing的团队异地合作有不少困难。可喜的是我们在搜索的基础研究上取得了不少成果,特别是排序学习(learning to rank),语义匹配(semantic matching)方面,有不少业界领先的成果,对信息检索领域的发展做出了一定的贡献。前者的研究主要是与刘铁岩博士、徐君博士、秦涛博士等合作,后者的研究主要是跟徐谷博士、徐君博士、姜大昕博士等合作。
问:有人把上世纪九十年代初形容为人工智能的冬天,在机器学习兴起之前,人工智能的发展遇到了瓶颈。您觉得今后人工智能的发展有没有可能会重蹈覆辙?
正如前面介绍的,我也经历了那个人工智能的冬天。我1987年开始涉足人工智能领域,用的都是传统的方法,当时这个领域还很火。但是到了九十年代初期,传统的基于规则的人工智能遇到了瓶颈,最典型的就是专家系统,做不下去了。当时甚至有一个说法,计算机科学里面最没学问的就是人工智能。
我从1992年开始进入机器学习领域,有一种看到另一片天地的感觉。人工智能现在基本上全靠机器学习在支撑,机器学习虽然有很多局限,但是还是现在实现智能的最有效手段。机器学习是会不断地发展的,人工智能也是如此,特别是现在的大数据为机器学习、人工智能提供了很多新的机会。这方面大家如果感兴趣,可以看看我的博客,我的一些观点写在里面。
人工智能的发展会有起伏,但是不会出现以前那样的冬天。因为现在基于机器学习的人工智能做出来的东西很多是实打实的,像谷歌的自动驾驶就是用机器学习做出来的。而八十年代的专家系统,真正实用的成果几乎是没有的。但是现在人工智能确实有点过热,大家对人工智能的期待过高,但这种现象会马上冷却下来。人工智能发展可能还会出现起伏,但是会不断地发展,螺旋式地上升,不会回到以前那样的状态。
问:您曾经给出过这样一条建议,在选择大学的时候,第一是导师,第二是学校,第三是专业。您从导师那里获得最大的收获是什么?
长尾老师说,做研究一定要做本质的研究。就是你做的东西不能可有可无,做研究不可以沉浸于自我满足,要做出真正有用的东西。其实做到这一点很不容易。他还说,不一定要去做难的研究,而是要去做有意思的研究。很多人误以为难的研究就是好的研究,未必是这样,真正好的研究要有创新,要有价值,要有意思,这样的东西未必很难。这些做研究的基本原则对我的影响还是很大的。
我在NEC的机器学习小组,只有六个人,大家都很优秀(我很不谦虚地把自己也放在里面了)。这个小组被认为是世界一流,日本最强的机器学习研究团队,后来我们都相继离开了NEC, 现在大多数人在日本的大学当教授。那个环境对我的影响还是非常大的。
到了微软以后,我在新的环境里又得到了很多锻炼。在日本的时候,我还是跟着别人做,没有作为一个leader带领大家做,在微软期间,我在研究方向的选择,研究项目的管理方得到了很多锻炼,研究的能力有了进一步的提高。比如,怎样提高自己的影响力,怎样将产品开发与学术研究相结合,这些方面我在微软亚洲研究院学到了很多。那里有很多优秀的人,比如我入职时的院长张亚勤博士,后来的院长沈向洋博士,还有周围许多优秀的同事对我的影响都是很大的。
所以,我建议大家选学校的时候,先考虑小环境,然后是大环境,最后才是学的内容。
诺亚方舟实验室
“机器学习未来发展的方向,自然是不断提高学习的能力,先是举一反三,然后触类旁通,也要无师自通,最后是积土成山。”
问:在计算机领域学术界跟产业界是否存在转换的鸿沟?诺亚方舟实验室在这方面是怎么做的?
近年美国有不少的大学老师跳槽到工业界,因为工业界有很多现实的问题,有很多数据。无论做系统方面的研究或者算法方面的研究,在工业界都更容易接触到实际问题,也更容易去做实际的事情。Lada Adamic曾是密歇根大学的副教授,后来跑到Facebook去了,她写了一篇有名的博客《我为什么离开了大学到了工业界》,在文章中她提出了以上的观点。但是,我并不觉得计算机领域在大学做研究就失去了意义,在大学做研究有其价值与意义,需要更注重基础、理论、长期的东西,定位应该跟工业界不同。
诺亚方舟实验室是工业界的实验室,我们希望能尝试去闯出一条新的做研究的路子。我写过一篇博客,总结科学研究的历程与模式。在牛顿的时代,很粗地说做研究是基于一些贵族的兴趣爱好。1900年开始有了诺贝尔奖,做研究与名誉挂上了钩。第二次世界大战之前,贝尔实验室成立了,研究与产业联系起来了(IBM、微软等采用的都是贝尔实验室模式)。二战结束之后,美国成立了自然科学基金,政府投钱去做研究,研究又跟金钱绑在了一起。到了1998年谷歌成立,又创造一个新的模式,在那里做研究跟产品开发几乎都无缝地连接在一起,区分不出来是在做研究还是在做开发。
对于诺亚方舟实验室来说,我们希望结合贝尔实验室模式与谷歌模式的优势。
一方面我们采用谷歌模式,我们跟产品线的工程师一起工作。比如,华为手机的应用搜索和应用推荐,算法是我们实验室负责开发,这是我们自豪的事情,我们直接参与产品开发。我们也有研究人员到运营商、到银行,跟工程师和客户一起做大数据挖掘的研究与开发。
贝尔实验室模式又是另外一种,研究更加独立于产品,先是独立地去做研究,写论文,做一些原型,然后拿到产品去应用,推广。这种方法有它的优势,有利于做超前的技术,产品部门没有精力去做的技术。这种模式我们实验室也采用。
我们实验室运作的另一个特点是聚焦和top-down,就是以一两个大项目为主去做。在大项目的驱动下,我们去做研究。我们也写一些论文,但是在大项目的范围内做,我们也做技术转让或产品开发,但作为大项目的阶段性目标去做。我们的规模不是很大,成立两年多,已经取得了不少业界领先的成果。我们做的研究,其实都是围绕着一两个大的主线。
问:我听说你们做了一个利用迁移学习实现的智能系统MoKA,现在MoKA研究的进展如何?
智能化是未来手机的一个关键词,我们当然在做这方面的研究,而且会一直做下去。华为去年在全球卖了7500万部手机,这么多用户,我们终端部门的数据规模也是很大的,如何利用大数据把手机做得更加智能化是我们研究的大方向。
华为手机去年推出了智能问答功能,就是一个具体例子。用户可以用自然语言问各种手机使用相关的问题,这个功能只有华为手机有,用户很喜欢,我们的用户数在不断上升。相关的技术都是诺亚方舟实验室开发的。
问:MoKA系统在你们的研究战略中是什么位置?
在MoKA项目里我们目标开发的是未来的智能化手机,这是我们一直要去做的。
问:迁移学习和终生学习,在诺亚方舟实验室是一个研究重点吗?
是的。我想谈谈我对的机器学习能力的分类。人工智能创始人之一的Herbert Simon曾说过,当一个系统通过某个过程提高了某方面的性能的时候,这个系统就进行了学习,它就具备了学习能力。
如果是“循规蹈矩”的系统,它就不具备学习能力。程序员写一些规则放在系统里,系统按照规则去做,告诉它怎么做就怎么做,我们说这个系统就不具备学习能力。传统的计算机系统都是这样的。一个能学习的系统,它至少具备泛化能力,就是能够“举一反三”。比如看到一些照片上的人脸,它能学一个模型,然后做预测、做判断,指出没见过的照片里是不是有人脸,这就叫有泛化能力。
但是为什么人工智能、机器学习还没达到人的水平?现在机器学习能做到的举一反三,就是泛化,比起人来说还差得很远。人可能看三个例子就能够学会,机器可能看三千个也学不会,它需要三万个、甚至三十万个。 另外,人的学习能力更强的一点是“触类旁通”。比如说我学了游泳,也许能帮助我去学体操,甚至能帮助我去学跳舞,学习的知识、技能从一个地方扩展到另一个地方,这就是迁移学习的思想。现在的机器学习还不太能够做到触类旁通,迁移学习的研究有了一定进展,但是还有很多挑战。诺亚方舟实验室前主任杨强老师是世界著名的迁移学习专家,做出了许多领先的工作。
再进一步,计算机就是要不断地去学习,现在的机器学习还有一个弱点就是不能将学到的知识积累起来,不断扩大自己的能力,也就是不能“积土成山,积水成渊”,这个系统学完了这部分就只会做这些事,那个系统学完了那部分也只会做那些事,两个不能结合起来。我认为这就是终生学习要解决的问题,现在业界开始做一些研究。
人还有一个学习能力,就是“无师自通”,这对应着机器学习中的非监督学习,比起监督学习,机器的非监督学习能力还很有限,也就是说,没有指导机器很难学到相应的知识。
所以说机器学习未来发展的方向,自然是不断提高学习的能力,先是举一反三,然后触类旁通,也要无师自通,最后是积土成山。还有很长的路要走。诺亚方舟实验室对这些问题的研究都很重视,都会投入。
问:实验室是否也在从事深度学习的研究?
我们也很关注深度学习,而且对深度学习进行了深入的研究,最近也有很多突破性的成果。
现在深度学习的一个热点就是用深度学习去做自然语言处理和知识推理。这也是我们研究的一个重点,最近取得了业界瞩目的成果,吕正东博士等在做相关研究。比如用深度学习提高机器翻译的性能,翻译评价的一个指标叫BLEU Score,人大概可以打六七十分,机器现在能做到四十来分,提高一两个点都不容易。我们现在利用深度学习的技术,机器翻译的BLEU Score比去年顶级会议ACL最佳论文的算法提高了两个点。另外我们也在用深度学习去做自然语言对话,目标是让计算机能够跟用户用自然语言进行交流,这方面我们是较早开始做的,应该是业界领先的。
问:谷歌、百度这样的公司他们的搜索引擎上的数据量非常大,诺亚方舟实验室在研究方向上跟他们是否有较大差异?
华为的主要业务是通信设备,手机,还有数据中心、服务器,简单的说就这三大部分。我们的业务跟谷歌、百度不一样,所以也不好直接比较。
首先通信方面,那才是真正的大数据,其实谷歌、百度的数据都是在通信业的管道里面传输的。比如,北京有很多数据中心,数据中心之间的传输其实都是通过电信网络的,很多由华为提供设备。这里面有很多大数据的挑战。手机方面,华为有1亿多的注册用户,华为终端云上积累的数据也是非常大的。
问:诺亚方舟实验室的口号是“From Big Data To Deep Knowledge”。请问实验室在数据挖掘方面是否有一些突破性的或者是启发性的研究成果?
我刚才提到了利用深度学习做自然语言对话,我们的系统在一轮的对话中的准确率能达到70%以上,这个用深度学习构建的系统说出来的话(自己说出来的,系统从来没见过的),能让你觉得很吃惊。比如你说“占中终于结束了”,它跟着会说“下一个是不是陆家嘴?”。你说“我想买一个三星手机”,它会说“还是支持一下国产手机吧”。它从大量的数据里面学到这种对话能力,其语言使用的复杂程度已经超出了我们的想象。
问:您写过一篇谈优秀工程师的文章。您曾经考虑过做工程师,后来您投身到科研,成为NEC的研究员,微软亚洲研究院的主任研究员,诺亚方舟实验室的首席科学家,现在是实验室主任。您的工作是否跟做工程师有很大不同?
我其实很喜欢编程,虽然后来随着工作性质的转变,写代码的机会越来越少。刚才提到,在NEC做研究的时候,我们做的产品里面的算法部分都是我写的,那个产品现在还在卖,虽然他们可能重写了代码,但是至少第一版的核心算法是我写的,还是很有成就感的。后来到了微软,我更多的时候是领着大家去做,没有时间自己动手了,是一件遗憾的事情。我们做的技术用在了不少产品上,包括SQL Server,以及SharePoint Search。能和大家一起做出这些产品我很自豪,希望有很多用户使用而且喜欢,有了这种体会才写了“如何做优秀的工程师”一文,希望自己能站在用户的角度真正解决实际问题。
我曾经在博客中写过,做研究时候的思维方式和做工程师的思维方式应该是不一样的。大家很容易混淆,有时候不知道自己应该处在哪种状态,结果肯定是做不好。做研究,需要能够更抽象、更长远地看问题,解决更本质的问题,这是基本的定位,如果光是把一个实际问题解决了,肯定是不合格的。而做工程正好相反。
问:您觉得做科研工作的时候需不需要有做产品的思维?
需要,在大学需要(假设是计算机专业),在工业界更需要。在企业做研究,还是要有应用意识,商业意识的。需要想到做的东西大概运用在商业上可能会满足什么需求,能解决什么问题,有什么价值,大概是什么定位,不能脱离了这些。虽然不需要去考虑产品化细节上的问题,但是你需要考虑,这种技术对于用户来说解决的最本质的问题和需求是什么,是否有用。
问:那您现在作为诺亚方舟实验室的主任,角色跟以前又不一样了吧?
是的,我要负责整个实验室的研究工作,带领大家一起去做。
建立诺亚方舟实验室是我们老板任正非提出来的。他在2011年,就预见到了大数据对未来产业发展的重要性,决定建立一个实验室专门做大数据、机器学习、人工智能方面的研究,那还是在大数据热潮到来之前。我们的目标是成为世界一流的实验室,克服信息洪水的挑战,为公司和人类创造美好的未来,也就是为什么我们叫诺亚方舟实验室的原因。受到这个愿景的吸引,杨强老师、我、还有一批研究人员加入了华为。
我们实验室的一位研究员曾经问我:我们的竞争对手是谁?我说:是我们自己。要做出世界一流的研究成果,我们要不断提高自己,从优秀到卓越。我们所面临的都是人类的技术挑战,是否能够一步一步战胜困难,取得重大突破,主要看我们自己是否足够强大。我们是有很多挑战的,但是我们有信心做出世界领先的、有重大贡献的研究。