从认知和逻辑思维的角度谈谈自然语言理解

人工智能
自然语言理解(NLU)是很难的问题, 从几十年前AI诞生到现在, 语言理解一直都是AI一座无法攻克的冰山。

[[425002]]

自然语言理解(NLU)是很难的问题, 从几十年前AI诞生到现在, 语言理解一直都是AI一座无法攻克的冰山。一方面, 语言是对我们所感知到的客观世界的符号化, 就如同画在原始人洞穴里那些似是而非的象形文字, 连接着每一个真实世界经常出现的事物。 另一方面, 语言是人类思维的载体, 它就像是自然产生的计算机程序,描述逻辑,因果, 事物运行的方式 。 

人类引以为傲的认知能力, 都是以语言为载体进行的。 这种能力包含与感知能力相对的对世界进行概念化,结构化, 预测推理等不同能力的总和, 通常以符号相互连接的某种图结构表达。从这里看自然语言的理解, 其实就是要学习到单词背后所指代的真实世界的概念,以及符号和符号之间所隐藏的人类认知的思维过程。

那么相应的要构建一个完全理解自然语言的模型, 显然做到两件事, 1, 它需要知道每个单词背后概念的感知概念 (把“猫”的符号与背后的视觉概念做对齐, 类似多模态感知), 2 它需要真正掌握自然语言背后所蕴含的人类认知能力。 我们就先来关注一下后者。

假定一个完全没有见过客观世界的人, 在纯粹文本的空间里翱翔,它是否可以学习到语言背后的所有人类认知呢?我们可以想象这样一个具有无限记忆力, 可以在网络空间任意窥视的爬虫, 它可以不停的反复窥视和推敲文字的前后衔接, 来理解人是怎么思考这个世界的。它可能最终可以完美的猜测你说了一句话, 下一句你想说什么 , 这就是当下自然语言生成模型(如GPT)在做的事情了, 它是否具备了人类的认知能力呢?逻辑是人类认知最具有标志性的思维方式, 那么我们就先把认知等同于逻辑, 思考这样的自然语言模型是否掌握逻辑认知。

我们可以根据知乎 甄景贤 的文章BERT 的逻辑化, 我对这个问题进行了梳理。 一个能够在人类文本里肆意窥视并预测的爬虫, 到底掌握了什么样的能力呢?

这只生活在自然语言空间的爬虫, 表面上在根据上下文回答问题, 但是其实质, 是对文章背后所反应的事实进行解释和重构的过程。这点上, 语言作为一个符号和符号组成的结构, 本质上与一个概念图对应, 而概念图又对应真实世界的物理过程和社会事件。

如果把单词看作是语言的单元, 那么单词无非是被命名的概念(但不是一一映射的,某个单词可以是多义的),而句子则是若干概念组成的事件图。通常情况下句子都符合一定的语法, 语法的本质就是通常情况下概念和概念连接的方式。比如主谓宾形式对应一个三元组(某个主体产生一个动作于一个客体上, 例如小明吃苹果),也就是两个节点被一个边相连的情况。 一个自然段落就是多个三元组一个个相继出现的过程, 这些三元组描述的事件构成一个真实发生的过程,这些事件不是简单的堆叠, 而是被上帝的针线精密的连接起来, 它就是逻辑。

逻辑的本质是结构化的思维过程。逻辑的古希腊语原型logos就是言语 。逻辑和因果关系紧密, 甚至有人认为二者几乎一致, 我认为两者的区别在于因果更关注真实性,是一种真实世界里的逻辑, 而逻辑在思维和符号的世界里, 只要具备自洽的结构, 不至于产生悖论,就可以成立,因此范围更大。逻辑能够匹配真实世界, 一定是因为它的结构构成符合某种自然造物的规律(想象一些世界就是一个由各种基本作用力构成的巨大网络)。 

逻辑的推演过程一般分为indution(归纳), deduction(演绎)和abduction(溯因)。这三种分别负责连接结构的产生, 和基于这种结构的演化。Induction会从特例里建立一般的联系。而deduction, 则根据现有的命题, 和已知的结构, 推出新的命题 。对这些推理步骤的反复应用 ,可以通过简单的规则把非常遥远的事实连接起来。

这样来看, 这只自然语言世界的爬虫至少掌握了两件事 1, 语法构建 2, 事物和事物之间,事件和事件之间通过逻辑的连接关系。语言的生成过程本质就是一句话生成下一句话的过程,它体现语言背后的概念(事件图结构)的相互作用, 而产生新的节点和边的过程,这对应的就是逻辑推导。一个完美的生成自然语言的模型, 某种程度上确实具备了这样的逻辑。

我们在说每句话的时候都在自觉不自觉的反应背后的逻辑思考过程, 比如”动物死了,深埋入土, 肉体分解,尸骨保留。“ 对着一连串的事件,几乎前面一句都是后面一句的起因, 后一句都是前一句的导出结果。如果没有这种前因后果的逻辑, 那就会让人感到无法理解。

但是相比计算机程序,其实自然语言背后的逻辑更加难以理解和掌握。因为它有两个缺点,一个是中间的大量结构化信息经常被省略(类似苏格拉底 (是人, 人都会死)会死), 这也就是我们经常说的常识, 二是它的结构不一定是严谨的数学逻辑。

比如“我老婆觉得她的老板不够聪明, 她要换工作了, 我很为她担心“,这体现一个事件到事件根据基本规律进行推演的过程, 老板不聪明 - (老板不聪明 , 则公司没有前途。公司没有前途,则员工没有前途) - 老婆(员工)换工作- (老婆换工作, 则面临人生不确定性) - 我担心她 。这是一个典型的deduction的过程, 但隐藏了大量的约定俗称的常识, 表露在语言中的只是部分命题, 而大部分背后的推理结构是隐藏的,这也是自然语言难以理解的原因 ,我们需要不停的从只言片语里进行溯因, 从我们的记忆里找寻暗信息来解释。

同时, 我们通常说某人说话没有逻辑, 有人说话有逻辑, 这反应了语言本身并非精确的公理化的逻辑, 而且每个人背后的公理系统也不尽相同(虽然同处一个时代和文化的人应该大部分是相同的), 这是它和我们狭义理解的数学逻辑的一个区别, 更加接近一种非公理化的模糊逻辑。

因此, 这个能够不停预测脑补下文的自然语言爬虫并不简单, 它不仅仅发现了一段文字背后隐藏的结构, 而且还需要不停的把文字里表露出的实体不停的和脑中常识结构进行绑定, 来处理这种模糊的逻辑。我们先说前者,这里面就包含了三种基本的运算, 一个是entity dection(实体概念提取), 一个是structure selection(结构选择和匹配),一个是variable binding(将实体与结构绑定)。

entity detection可以从语言里根据语法得到主谓宾这样的基础结构, 从而发掘出单词背后实际表达的概念(以经典的三段论苏格拉底会死为例, 首先挖掘出苏格拉底是人)。而variable binding可以把名词和其背后的本体结构相绑定(人是一种会死的动物),从而进入演绎推理(苏格拉底是人,所以会死),这就完成了理解, 当然也会关联到一些新的命题(比如苏格拉底要吃饭, 要喝水, 有七情六欲)。

这样能够完美预测下文的模型到底存在与否?答案是否定的, 但是我们的确在不停逼近这个答案, 而且走了一大步, 这一大步,就是transformer。我们用之前分析的观点看看transformer模型结构, 会发现它的确是为理解自然语言而生的。我猜测self attention就像是为这几个功能而生的。一个句子进来, 它首先被离散化成一个个单词token的集合,然后 Q,K,V就像是指针一样, 将这些单词实体映射到背后的概念,实现实体的识别和概念的绑定, 而 

则通过累加和乘积的形式,实现文中概念和概念的一个全连接图, 它代表了所有可能的命题结构(主谓宾), 并最终得到新的一组可能的命题结构, 通过后面的全连接层(类似一个命题结构的词典),得到新的命题(句子)。 通过层数的增加, transformer可以组合得到从简单到复杂逻辑的嵌套结构,也就是实现全文级别的推理。

Attention is all you need

Transformer Feed-Forward Layers Are Key-Value Memories

Attention is all you need

GPT-3 在文本的生成上已经越来越以假乱真,但是有些时候却依然像是儿童的臆语,而非严谨的成人语言, 这个关键差距在哪里呢?就是刚刚讲的单纯的人类语料往往是一种模糊的逻辑, 中间欠缺大量信息, 推理也不严格。 如 果要让它在掌握人类的认知上再进一步, 就需要把这种严格的常识逻辑补回来, 而不能仅仅是语言概率建模。

事实上常识逻辑这条线AI系统早已为之,从经典的图算法到GNN这类的深度学习算法。从一开始依赖于规则做问答到后面用GNN在知识图谱上学习规则。从AI产生的初始阶段,人们的目标就是制造一个通用解决问题的具有逻辑的系统, 也就是当下我们说的AGI。

由于无法解决最一般的问题, 这一分支的努力很快便成了细分领域的专家系统。它们采用符号来描述专家知识,并以三元组,类似知识图谱的形式存储, 并根据一定的条件执行推理。它们的弱点是学习不容易, 灵活性较差, 维护成本高,而且, 就像刚刚讨论的, 人所使用更多的是一种模糊逻辑而非严格的数学公理逻辑。当然, 也有一些另类的努力, 做的就兼容了这些特性。比如王培教授的NARS系统。它是一套可以学习演化的非公理化的逻辑机器, 可以执行一般性的命题推理。 并且通过模拟人脑认知的不同特点, 比如事件认知, 目标行动认知,情绪自我认知,实现推理基础上的行为控制。

NARS系统的特点是任何一个自然语言的句子, 都被理解为一个主谓宾的命题结构, 并且作为一个证据进行归纳, 增加公理系统的一条新的边, 或对已有的边进行更新。比如说企鹅会游泳, 它会自动的推演南极的企鹅会游泳,但也会推倒出鸟类会游泳,只是前者的置信度高,后者的置信度低。因此它在接受一个自然语言的证据后,会同时使用induction, deduction和abduction形成新的命题,某种程度类似人类的类比和联想能力。

我们来看如何借鉴这条路线的工作加强NLU自然语言理解:

(1) NLP与常识图的结合

我们知道大规模预训练自然语言模型如bert和gpt已经蕴含了大量的语言结构信息, 如语法, 和蕴藏在语言里的概念和概念间的关联。既然纯粹自然语言包含大量隐含常识,我们自然会想到以某种方式补充,比如知识图谱。这就如同我们的大脑会用长期记忆里的概念常识去诠释语言文字,从而将文字的概念与记忆中的模型对齐来实现理解。通过知识图谱来增加语言文字的信息也就成为一个NLU很重要的方向, 在这个过程里, 每个单词被选择读取, 它背后关联的概念常识也可以同时进行展开, 一种最简单直接的方法,当然是直接将kg和自然语言模型融合, 如K-Bert

K-BERT: Enabling Language Representation with Knowledge Graph

有些则需要加入融合的embedding。将知识图谱的内容通过预训练形成其隐式编码, 在进入到自然语言模型的text decoder 。这些知识图谱里的知识就像外挂一样可以被加载和读取。

KG-BART: Knowledge Graph-Augmented BART for Generative Commonsense Reasoning

也有一些则更融合的更为彻底, 把对文本的encoding和对图的encoding先分别执行, 再融合, 使语言序列可以时刻关系到其背后的概念网络:

Knowledge-Aware Procedural Text Understanding withMulti-Stage Training

(2) NLP与逻辑规则的结合

那么除了规则, 现实的induction, deduction, abduction 的逻辑法则能否帮助NLP的文章理解呢?当然可以。很多面向任务扽对话系统就是这样的例子。

首先通过意图识别找到人类语言背后的真实原因, 然后通过一个belief tracker不停的在对话中寻找用户可能的状态, 并选择需要执行的干预, 最终通过generation network啊这种干预转化为自然的语言和用户进行交互,引导客户完成目标。这就很灵活的把逻辑结构放入到了自然语言生成中。

最后总结下:

NLP理解问题的本质是( 1)概念定位 (2)合理的潜入某个符合逻辑的内部结构(3)让这种结构最自洽的解释文本中出现的所有单词。

NLP生成问题背后的本质是 (1)概念定位 (2)挑选合理的逻辑规则和结构 (3)进行推理进行生成新的逻辑statement (4)翻译成表象的语言形式 。

这两者其实需要的结构类似,一个好的生成模型应该也具备好的理解力。

当然这些角度依然是抛砖引玉, 如何把两者真正融合, 让自然语言模型的灵活性补其之前的逻辑系统, 而逻辑系统的严格性,常识的稳定性控制自然语言模型, 是一条意义极为深远的道路。

责任编辑:张燕妮 来源: 混沌巡洋舰
相关推荐

2009-06-22 13:48:00

Java编程思想面向对象

2013-05-27 15:57:36

逻辑思维

2023-09-03 14:07:01

自然语言处理人工智能

2021-08-17 15:47:12

机器学习自然语言神经网络

2014-11-17 17:37:13

2021-01-19 22:38:59

人工智能语言人脸识别

2020-04-24 10:53:08

自然语言处理NLP是人工智能

2021-05-13 07:17:13

Snownlp自然语言处理库

2017-11-17 08:27:47

谷歌自然语言框架

2017-10-19 17:05:58

深度学习自然语言

2009-11-25 14:25:14

PHP自然语言排序

2024-02-05 14:18:07

自然语言处理

2021-05-17 09:00:00

自然语言人工智能技术

2021-03-26 11:02:20

Python自然语言API

2017-04-17 15:03:16

Python自然语言处理

2010-07-09 10:13:42

UDP协议

2020-08-19 12:49:35

SQLPython流量查询

2010-06-07 10:44:09

2017-05-05 15:34:49

自然语言处理

2020-02-25 12:00:53

自然语言开源工具
点赞
收藏

51CTO技术栈公众号