从认知和逻辑思维的角度理解自然语言理解(NLU)是一个难题。从几十年前AI诞生到现在,语言理解一直是AI无法攻克的冰山。一方面,语言是我们所感知的客观世界的符号化,就像原始人洞穴中绘出的似是而非的象形文字,连接着现实世界中经常出现的一切事物。另一方面,语言是人类思想的载体,它就像一个自然发生的计算机程序,描述逻辑、因果关系以及事物的运作方式。人类引以为豪的认知能力,是以语言为载体进行的。这种能力包括将世界概念化、结构化、预测推理等不同能力的总和,与感知能力相反,通常以一定的图形结构表示,符号相互连接。从这里看对自然语言的理解,其实就是要学习文字背后所指代的现实世界的概念,以及隐藏在符号之间的人类认知思维过程。那么相应地,要建立一个完全理解自然语言的模型,它显然做了两件事。1.需要知道每个词背后概念的感知概念(将“猫”的符号与背后的视觉概念对齐,类似于很多情态感知),2需要真正掌握自然语言背后的人类认知能力.让我们先关注后者。假设一个从未见过客观世界的人在纯文本的空间中飞行,它能学会语言背后的所有人类认知吗?我们可以想象这样一个无限记忆的爬虫,可以随意窥视网络空间,它可以反复窥视,推敲文字的联系,了解人们对世界的看法。它可能最终能够完美地猜出你说了什么以及你接下来想说什么。这就是现在的自然语言生成模型(比如GPT)正在做的事情。它有人类的认知能力吗?逻辑是人类认知中最具标志性的思维方式,所以我们首先把认知等同于逻辑,思考这样一个自然语言模型是否能够把握逻辑认知。我们可以根据甄景贤文章中BERT的逻辑来梳理一下这个问题。一只可以随意窥视和预测人类文本的爬行动物,究竟具备怎样的能力?这种生活在自然语言空间中的爬虫,表面上看是在根据上下文回答问题,其实质是对文章背后的事实进行解读和重构的过程。就此而言,语言作为一种由符号和符号组成的结构,本质上对应于一张概念图,而概念图对应着现实世界中的物理过程和社会事件。如果把一个词看成一个语言单位,那么一个词无非就是一个命名的概念(但不是一对一的映射,一个词可以是多义词),而一个句子就是几个概念组成的事件图。通常,句子符合一定的语法,而语法的本质就是概念与概念通常的连接方式。比如主谓宾的形式对应一个三元组(主语对宾语产生动作,比如小明吃苹果),就是两个节点之间有边相连的情况。自然段落是多个三元组一个接一个出现的过程。这些三元组所描述的事件构成了一个真实的过程。这些事件不是简单的叠加,而是被上帝的针线精准地串联起来。这是逻辑。逻辑的本质是一个结构化的思维过程。逻辑的古希腊原型逻各斯是言语。逻辑与因果关系密切,甚至有人认为两者相差无几。我觉得两者的区别在于因果更注重真实性,是现实世界中的一种逻辑,而思维和符号世界中的逻辑,只要是自洽的结构就可以成立没有悖论,所以范围更大。逻辑之所以能匹配现实世界,是因为它的结构符合某种自然造物的规律(把某些世界想象成由各种基本力组成的巨大网络)。逻辑推演过程一般分为归纳(induction)、演绎(deduction)和溯因(abduction)。这三者分别负责连接结构的生成,以及基于该结构的演化。归纳法从特殊情况创建一般联系。另一方面,演绎根据现有命题和已知结构引入新命题。重复应用这些推理步骤可以通过简单的规则将相距甚远的事实联系起来。从这一点来看,这个自然语言世界的爬虫至少掌握了两件事:1、语法构造;2.事物与事件之间的逻辑联系。语言生成过程的本质是一个句子生成下一个句子的过程,它反映了语言背后的概念(事件图结构)的交互作用,以及新的节点和边生成的过程,对应于逻辑推导。一个完美的生成自然语言的模型在某种程度上确实有这样的逻辑。当我们说出每一句话时,我们都在自觉或不自觉地对其背后的逻辑思维过程做出反应,比如“动物死了,深埋在土里,尸体腐烂了,骨头还在”。面对一连串的事件,几乎第一句是后一句的原因,后一句是前一句的结果。没有这个因果逻辑,就无法理解。但与计算机程序相比,自然语言背后的逻辑其实更难理解和掌握。因为它有两个缺点,一个是中间大量的结构化信息经常被省略(类似于苏格拉底(是人,每个人都会死)都会死),这就是我们常说的常识,而另外就是它的结构并不是必须是严密的数理逻辑。例如,“我妻子认为她的老板不够聪明,她要跳槽了,我很担心她。”未来。公司没有未来,所以员工也没有未来)-Wife(employee)changesjobs-(Wifechangesjobs,andfacesuncertaintyinlife)-我担心她。这是一个典型的推导过程,但其中隐藏了很多约定俗成和众所周知的常识。语言中只揭示了部分命题,隐藏了其背后的大部分推理结构。这也是自然语言难以理解的原因。我们需要马不停蹄地从几句话中拐走,从我们的记忆中寻找黑暗的信息来解释。同时,我们通常说某人说话不合逻辑,而别人说话合乎逻辑,这反映了语言本身并不是一个精确的公理逻辑,每个人背后的公理体系也不一样(虽然人在同一个时代和文化应该大体相同),这是它和我们狭义理解的数理逻辑的区别,它更接近于一种非公理化的模糊逻辑。因此,这个能够不断预测后面文本的自然语言爬虫并不简单。它不仅要发现一段文本背后隐藏的结构,还需要不断地将文本中揭示的实体与大脑中的常识进行比较。结构必然会处理这种模糊逻辑。先说前者,它包括三个基本操作,一个是实体检测(实体概念抽取),一个是结构选择(结构选择和匹配),一个是变量绑定(将实体绑定到结构)。实体检测可以根据语法从语言中获取主谓宾的基本结构,从而发现词背后实际表达的概念(以经典三段论苏格拉底将死为例,首先发现苏格拉底是一个人)。而变量绑定可以将名词绑定到其背后的本体结构上(人是终有一死的动物),从而进入演绎推理(苏格拉底是人,所以他会死),这样就完成了理解,当然也会涉及到一些新的命题(比如苏格拉底要吃饭,要喝水,有七情六欲)。这样就可以完美的预测下面的模型是否存在?答案是否定的,但我们确实在不断接近这个答案,而且我们已经迈出了一大步,而这一大步就是transformer。如果我们从前面分析的角度来看transformer模型的结构,我们会发现它确实是为理解自然语言而生的。我猜selfattention似乎就是为这些功能而生的。当一个句子进来的时候,首先被离散化为一个单词token的集合,然后Q、K、V就像指针一样,将这些单词实体映射到其背后的概念上,实现实体识别和概念绑定,然后通过通过累加和积的形式,实现了文本中概念和概念的全连通图,代表了所有可能的命题结构(主谓宾),最后得到一组新的可能的命题结构,通过以下全连接连接层(类似于命题结构的字典)来得到新的命题(句子)。通过增加层数,可以组合Transformer,得到从简单到复杂逻辑的嵌套结构,即实现全文级别的推理。AttentionisallyouneedTransformerFeed-ForwardLayersAreKey-ValueMemoriesAttentionisallyouneedGPT-3在文本的生成上越来越假了,但有时候看起来还是像小孩子的胡说八道,而不是严谨的成人语言,这是哪里关键差距?就是刚才说的简单的人类语料库,往往是一种模糊逻辑,中间缺少很多信息,推理不严密。如果要使它在掌握人类认知方面更进一步,就需要弥补这种严格的常识逻辑,而不仅仅是语言概率建模。事实上,从经典的图算法到GNN等深度学习算法,AI系统早就做了这行常识逻辑。从一开始靠规则做问答,到用GNN学习知识图谱上的规则。从人工智能产生的初期阶段,人们的目标就是创造一个能够解决一般问题的逻辑系统,也就是我们所说的通用人工智能。由于无法解决最普遍的问题,这个分支的努力很快变成了特定领域的专家系统。他们用符号来描述专家知识,以三元组的形式存储,类似于知识图谱,根据一定的条件进行推理。它们的缺点是不易学习、灵活性低、维护成本高,而且正如刚才所讨论的,人们更多地使用模糊逻辑而不是严格的数学公理逻辑。当然,也有一些兼容这些特性的替代性努力。比如王培教授的NARS系统。它是一组可以学习进化并可以执行一般命题推理的非公理逻辑机器。并通过模拟人脑认知的不同特征,如事件认知、目标动作认知、情绪自我认知等,实现基于推理的行为控制。NARS系统的特点是将自然语言中的任何句子理解为主谓宾命题结构,作为归纳、增加公理系统新边或更新已有边的证据。比如企鹅会游泳,它会自动推断出南极洲的企鹅会游泳,但也会推断出鸟类会游泳,只是前者的置信度高,后者的置信度低。因此,在收到一个自然语言证据后,它会同时运用归纳、演绎和溯因形成新的命题,这在某种程度上类似于人类的类比和联想能力。让我们看看如何借鉴这条路线的工作来加强NLU自然语言理解:(1)结合NLP和commonsensegraph我们知道像bert和gpt这样的大规模预训练自然语言模型已经包含了大量的语言结构信息,例如语法,以及概念与语言中嵌入的概念之间的关联。由于纯自然语言包含了很多隐含的常识,我们很自然地会想到通过某种方式对其进行补充,比如知识图谱。这就好像我们的大脑利用长时记忆中的概念常识来解释语言和文本,从而将文本的概念与记忆中的模型对齐,从而达到理解的目的。通过知识图谱增加语言和文本信息成为NLU非常重要的方向。在这个过程中,每一个词都被挑选出来阅读,其背后的关联概念和常识也可以同时得到培养。最简单直接的一种方法,当然是直接将kg和自然语言模型结合起来,比如K-BertK-BERT:EnablingLanguageRepresentationwithKnowledgeGraph,有的还需要加上fusionembedding。知识图谱的内容经过预训练形成其隐式代码,然后输入到自然语言模型的文本解码器中。这些知识图谱中的知识可以像插件一样加载和阅读。KG-BART:KnowledgeGraph-AugmentedBARTforGenerativeCommonsenseReasoning还有一些集成度更高,更透彻。文本的编码和图的编码先分开执行,然后再融合,这样语言序列就可以始终和它后面联系起来。Conceptualnetwork:Knowledge-AwareProceduralTextUnderstandingwithMulti-StageTraining(2)NLP与逻辑规则的结合那么除了规则之外,归纳、演绎、溯因的现实逻辑规则能否帮助NLP文章理解?当然。许多面向任务的对话系统就是这样的例子。首先,通过意图识别找到人类语言背后的真正原因,然后使用信念跟踪器不断搜索用户在对话中的可能状态,选择需要进行的干预,最后通过生成网络,这干预被转化为自然语言并与用户交互以引导客户完成目标。这灵活地将逻辑结构放入自然语言生成中。最后总结一下:NLP理解问题的本质是(1)概念定位(2)合理地潜入一个逻辑内部结构(3)使这个结构成为对文中所有出现的词最自洽的解释。NLP生成问题背后的本质是(1)概念定位(2)选择合理的逻辑规则和结构(3)推理生成新的逻辑语句(4)翻译成表征语言形式。两者其实需要类似的结构,好的生成模型也应该有很好的理解。当然,这些观点还只是一些想法。如何真正将两者融合,让自然语言模型的灵活性与之前的逻辑系统相辅相成,逻辑系统的严谨性和常识的稳定性控制自然语言模型,是一个意义非常深远的问题。道路。
