机器之心原创
作者:虞喵喵
「理解应该是对应于某一个特定场景下的语用」。
在斯坦福大学计算机科学与语言学教授 Christopher Manning 2015 年的文章《Computational Linguistics and Deep Learning》中,他提到无论 Yann LeCun、Geoff Hinton 还是 Yoshua Bengio,都在这一年将关注点转移到自然语言。Yann LeCun 认为自然语言理解是深度学习接下来要解决的重要问题,Geoffrey Hinton 则认为未来五年最令人兴奋的领域将是文本和视频理解。
2016 年,斯坦福推出了阅读理解数据集 SQuAD,希望成为「NLP 领域的 ImageNet」。在翻译、多轮对话之外,人们开始关注 NLP 的更多任务,如文本生成、摘要、甚至与图像结合的看图答题等等。庞杂多样的任务是否真的通向我们想要达到的「理解」?在深度好奇的创始人兼 CTO 吕正东博士看来,答案似乎并不乐观。
深度好奇创始人吕正东
吕正东博士曾任职于微软亚洲研究院、华为诺亚方舟实验室,长期从事机器学习及人工智能的研究,在自然语言理解、自动推理、语义匹配、问答、对话等方面卓有建树,是深度学习领域(尤其是 NLP 方向)具有世界顶尖水平并享有国际声誉的科学家和技术专家。
在采访前的沟通中,吕正东博士希望着重谈论联结主义和符号主义,并认为「这种结合有多个层面的含义,是通向理解的必由之路」。故本文围绕神经符号系统展开,同时也询问了吕正东博士对 NLP 领域理解、评判标准、接下来的突破将出现在哪一细分方向的看法,读者可依上、中、下篇题目酌情阅读。
上篇:符号主义与神经符号系统
机器之心:您为什么希望谈论符号主义?
吕正东:首先符号主义是之前的一个潮流,大家对深度学习产生最初的热情后,很快发现需要用符号主义才能解决一些困难。符号主义超越了比较初级的感知层面,而 NLP 的任务一直是在认知层面,所以在我看来,认为符号主义重要是很自然的事。我吃惊的是为什么深度学习 community 对符号主义关注得这么晚,一个可能的原因是之前不断有人尝试(符号主义),但是一直没有特别成功的经验。
机器之心:符号主义诞生得非常早,我们当下语境中的符号主义与早期谈论的符号主义有哪些区别?
吕正东:本质上大家对「符号」本身的理解没有太大区别,差异更多是体现在找到有希望实现联结主义和符号主义结合的路径,也就是神经网络与符号智能的结合。之前大家看到的更多是困难,在万能的「基于神经网络」的方法取得成功后,找到了一些新的可能。之前机器学习领域很少有人用 representation 这个词,更多是在传统的符号意义上使用 knowledge representation 等词语。后来大家讨论神经网络的 vector representation、distributed representation,开始发现神经网络可能会通向偏符号式的表示和执行。由此,二者的结合有了新的可能、新的思想和新的成功尝试,这大概是最近 5 年左右的变化。
机器之心:最近 5 年符号主义和联结主义的融合有哪些进展?
吕正东:从泛化的角度来说,我们开始用神经网络来表示符号本身。基于深度学习的自然语言处理基本上都在做这件事,它带来的视角是用联结主义可以实现一定程度的符号智能。在此之后,大家开始意识到这种表示方式会有一定的问题,并产生了一些新的结合方式。
第一个结合点在表示层面上。在纯粹的深度学习领域所有东西都是向量或矩阵,即我们通常所说的 distributed representation。我们的一些想法和工作是在表示层面上纳入符号,让 distributed representation 和 symbolic representation(符号表示)共存。符号表示可以代表一个 entity 或者其他不太适合用 distributed representation 表示的东西。
第二个结合点在操作层面上。我们可以把神经网络性质的「操作」和符号的操作结合。比如我们提出一个问题,用这个问题去操作知识库或数据库,会有类似 SQL 语句查询的动作。这个动作本身是比较清楚的符号行为,但它可以被神经网络化(neuralize)。「Neuralize」这个词是我们之前发明的,像数据库查询这类曾经被认为是非常符号化的东西都可以被 neuralize。你可以把整个数据库和操作语句嵌入其中,然后通过某种复杂的作用得到最后的结果,我们去年的文章《Neural Enquirer》就是在做这件事。某种形式上,我们走向了符号主义和联结主义结合的另外一面,即用联结主义去完全代替或者说实现符号主义,包括它的表示和它的执行。
图示来自论文《Neural Enquirer: Learning to Query Tables with Natural Language》(IJCAI-16),地址:https://arxiv.org/abs/1512.00965
但我们部分放弃了这个想法(即基于神经网络的操作代替符号的操作),原因是它会带来很多的问题。我们将符号再次引入,这类模型包括我们今年在 ICML 的工作以及在此之前如 Neural Programmer 这样的工作。系统用一个神经网络不断地调用符号化操作,这个过程可以看成是一个 sequential、 类似 MDP(马尔可夫决策过程)的过程,每个时刻它都会决定是否采用一个符号化的操作。这是一个「软硬结合」的思路,即用神经网络来做最终的中枢控制,但是它的局部操作是可以完全符号化的。尤其有意思的是,我们今年 ICML 的工作在同一系统中允许两条通路,一条通路是完全神经网络化的操作,另外一条通路是神经网络控制符号化操作。它让 distributed view 和 symbolic view 不停地交换信息,可以实现学习效率和执行效率的兼得。
图表来自深度好奇 ICML 2017 工作《Coupling Distributed and Symbolic Execution for Natural Language Queries》,该方法在理解 Query 上表现出高准确度、高效率及强可解释性
第三个结合点是在知识层面上。我们一直孜孜以求的一个方向,就是怎样把符号的知识直接教给神经网络。2014 年初,我一直在做的一件事是「规则的消化」,就是和神经网络交换非常 dry 或者说抽象的知识,比如「如果……就……」这样的逻辑表达式。包含神经网络的统计学习模型比较擅长从实例中学习,但实例都是个例,需要模型去做归纳。如果我们把一个已经总结好的东西交给它,意味着可以继续推出很多很多例子。目前神经网络学习抽象知识还比较笨拙,至少目前就没有非常好的路径去做这么一件事情。但这又是极端重要的,因为人在建立了初级的知识结构后是会进行抽象交流的。抽象交流一句话意味着双方可能掌握了需要一万个例子才能学会的知识。这种知识非常符号化,它的每一个符号后面都非常抽象地代表了各种不同的东西。因此,神经网络式的知识表示和符号化知识表示的结合,是神经网络和符号智能结合的第三个重要的点。
在语言理解技术的发展过程中,大家应该会从上述三个层面去解决问题。在实际任务中,能发挥重要作用的将是一个足够可靠的模型,这可能会是三者结合的产物。
机器之心:符号主义诞生于基于规则的时代,但规则是无法穷尽的,或者说是模糊的、模棱两可的,这个问题应该怎么样去解决?
吕正东:之所以很难建立一个非常灵活的规则系统,是因为规则往往有例外。自然语言处理中的规则处理有三个难题:第一是自然语言的灵活性及模糊性;第二是规则知识上的各种例外;第三是很多规则很难表达,比如要完整地表达常识逻辑,需要收集和建立一个非常庞杂的规则系统。这三点都导致至今没有成功的规则系统。
我们的野心在于把两个方面的优势结合起来,一方面是规则性知识的抽象性及表达的效率,另一方面是神经网络的灵活性及可学习性,但这种结合是非常困难的。人类在交流知识时默认会有一定的例外,比如「鸟会飞」代表的是「大部分鸟会飞」。但在什么时刻去应用这个规则?大家常说的一个例子是「树上五只鸟打了一只」,大多数人在处理这个问题的时候,要么默认在常见的语境下鸟是会飞的,要么用一个复杂的推理去推断,鸟已经在树上则它一定是会飞的。两条路径中的任何一条,在算法层面上都是非常复杂的。
规则和神经网络结合的困难还体现在另外一个角度。首先是怎么把知识嵌入进去,即使它是一个百分之百正确的知识也是棘手的。其次是把不确定性嵌入其中,这同样也是困难的。我们在这个方向尝试过十几个不同的模型,也有过一些特定方向的成功,但总体来说还未找到让自己满意的方法。不过我仍认为这种结合是一件极度重要的事。
机器之心:神经符号系统与我们通常意义上提到的神经网络有哪些区别和联系?
吕正东:区别是在神经符号系统中,我们有意识地在神经网络里面植入了符号的部分,因为符号一定是需要设计的。通常情况下对神经网络的设计是给一个架构,其中可能会加入 attention 等稍微复杂一点的机制;而神经符号系统需要更多在 representation 和 execution 意义上的设计,也需要规则性知识在存储意义上的设计。在这里,神经网络表示的形式、符号存在的形式以及符号和神经网络交互的形式,每一点都需要去人为设计。我们的理想是系统对数据没有任何要求,它很可能是跟普通的神经网络在解决同一个问题,但是有更好的模型能力和泛化能力。
中篇:自然语言的「理解」与方向
机器之心:去年斯坦福大学去年推出了阅读理解数据集 SQuAD,它的测试结果是否能代表算法有一定的自然语言理解能力?
吕正东:我对阅读理解的看法其实是偏负面的。这两年我经常会说,现在一些看起来跟语义相关的任务其实是 pretend-to-understand,也就是「装作懂语义」。之所以这么说,是因为我觉得这种说法表达了一个很重要的视角——Pretend-to-understand 可以做很好的事情(比如翻译),但不应该认为这条道路会通向我们所追求的「理解」。正确的路径应该是退回来,去做更接近问题本身结构的任务,这可能在垂直领域才能实现,所以我不建议在前期盲目地进入开放领域。事实上,在开放领域唯一能做的事情就是 pretend-to-understand,因为实在没有办法建立一个有足够高覆盖度和足够低复杂度的 ontology 或者是「理解的范式」。建立一个能够解决某一阅读理解任务的 ontology 所需要的时间,远远超过去刷一个分数。大家目前的处理只是在很浅的层面上,形式上已经很快就会接近天花板。后面的推进可能更多地是依靠远离本质的奇淫巧技。
机器之心:如果我们不依靠数据集,该如何判断一个算法有自然语言理解能力?
吕正东:从两个层面看,第一是「理解」这件事本身的定义就很模糊。我比较认同的看法是:「理解应该是对应于某一个特定场景下的语用」。以此为基础,理解一定是投射到某一个固定领域才可能有一定意义。第二,如果要为「理解」找到一个可检测的、但不一定具备可操作性的定义,「理解等价于这个表示(representation)能够通过一个一般性的装置回答所有相关问题」,这就是真正意义上的理解。所以翻译不是理解,它相当于只回答了一种形式的问题;它并不追求理解的表示,也不追求普遍回答问题的形式。我们随便看到的一句话,想给它一个普遍的表示都近乎不可能,即使是只提炼出比较主干的语意都相当困难。所以更现实的目标是在一个限定领域里,试图去构建和这个领域相关的事实的 representation,它可以是一个知识图谱或是其他形式。
机器之心:人类的对话在语言之外有语境和背景知识,才能互相理解。如果理解存在于领域中,通用对话系统的前进方向在哪里?
吕正东:首先我认为通用对话系统并不是一个正确的方向(包括通用的多轮对话),因为它的 methodology 和对效果的评价都是没有道理的。在通用领域进行一个真正有意义的对话,模型需要最起码 billion 级别的参数。如果想达成我们希望的某种灵活性(例如对知识的灵活运用),目前的架构和训练数据都不够用,所以只能「装作很懂你」。大家在闲聊时会有天然的宽容,只要回复碰触到某个点就可以,但事实上并没有达到我们想要的理解和创造。作为产品这或许没有问题,但不能被当成智能的标志。某种意义上,目前出现的通用对话系统是一个小小的里程碑,但不标志着正确的道路,也不应该过度解读。
机器之心:与图像识别四大主任务不同,NLP 的任务很庞杂(分词、看图说话、机器翻译、阅读理解、文本生成等等),您认为近期 NLP 的哪些任务会有一些技术上的突破?
吕正东:现在的翻译和看图说话用的是差不多类似的技术,大家缺乏一套比较系统的方式去表示语言层面的知识,造成像「摘要」这种对知识要求比较高的任务就会难以解决。翻译之所以能够取得成功,首先是因为它有非常强的源端信号和非常清楚的任务中的特定结构(如对齐)可以利用,这使得它在很多时候不依靠理解就可以做得比较好。其次是因为翻译本身「有用性」的标准不是很高,即使是很糟糕的逐字翻译也会有所帮助。现在开始,我们已经进入了自然语言处理的新阶段,不太可能复制机器翻译式的成功。Semantic parsing 已经成为绕不开的事情,不管它多近或多远,都应该是下一个任务。NLP 接下来的突破应该还是会在比较浅显的解析类任务上,如问答等特定语境下的 semantic parsing。
机器之心:NLP 哪一个方向落地或者产品化会更有前景?
吕正东:直观地说,是离钱比较近、数据比较丰富、知识结构梳理得比较好的领域。以 Kensho 为例,大家会愿意掏钱去买,程序员也比较有愿望去做。再比如法律和医疗,它们是接近同构的两个领域,都有大量和用户交互的专家以及规范的领域知识。类似这类有富集的文本、领域知识、交互记录的领域,比较容易取得自然语言理解和相关任务的突破。
下篇:关于深度好奇
机器之心:深度好奇的技术特点和优势,主要是神经符号系统的应用吗?
吕正东:我们并不是一开始就一定做神经符号系统,而是大家逐渐发现需要这样的新方法来完成某些任务。之前我在华为时就和李航老师一起探讨了很多神经网络和符号智能结合的方式,我们都认为这是人工智能的未来,但那时我们还没有那么多清晰的想法,也没有那么多具体的任务需要这样做。后来在深度好奇,我发现所做的任务越来越偏理解,并且发现在理解这个大的技术任务上,神经网络和符号智能的结合是必须的。因为理解到了一定的深度之后,就要去处理基于理解的各个概念和实体之间的关系,这种关系只有靠符号智能才能梳理得清楚,这是我们选择去做神经符号系统的原因之一。第二个原因,是我们在做的法律相关的任务需要可解释性。可解释性与符号性非常相关——先用了哪个法条、哪个知识或者事实,得出了什么结论,在法律领域都需要给出推理的过程。这一切会需要一种既贴近人的思维方式,又准确描摹实际问题内部结构的技术,即神经符号系统。正因为兼具了这些重要特质,神经符号系统可以被认为是深度学习的一个新的高级形式。
机器之心:深度好奇在法律方面所做的工作具体表达为什么样的产品和形态?在法律之外你们还会涉足其他领域吗?
吕正东:我们在做的大部分工作,可以认为是在为文本找到一个合适的表示方式。不同类型的文本,面向不同的任务会有不同的表示方式,这些表示方式存在的目的是为了与后续任务相结合,具体来说可以是庭审的建议,也可以是对某一事情的预测。目前我们在做法律相关领域,同时对其他领域持开放的态度,但我们不会贸然进入一个新领域。对领域的选择要基于一些基本的原则,第一是做的事情要对这个领域至关重要,应该是雪中送炭而非锦上添花;第二要考虑熟悉领域逻辑和建立领域 ontology 的成本。因为我们的做法不是向新领域应用一套技术,而是去深入研究这个领域。虽然这个过程中一定有很多东西可以迁移,但也有很多东西必然要重新去做,导致成本可能会很高。如果这对于该领域的重要性和经济利益都高到某一个层面上,我们就可以去做。
机器之心:深度好奇的人员构成是怎样的?
吕正东:在深度好奇大家都会非常开放地交流想法,但做的事情还是有明确分工的。我们团队中有人以算法研究为主,但要基于某一个现实问题,不是单纯为了发文章而做的。同时我们也有一群离现实项目更近的工程师,他们同样也可以不断跟其他偏研发的小伙伴们交流。我们有点像 Google 的模式,某种意义上每个人都是算法工程师,只是一部分会偏现实的项目,一部分更偏向项目中抽象出来的算法任务。