常识推理和组合泛化 (commonsense & compositionality)

常识推理和组合泛化 (commonsense & compositionality)

(PS. 本文首发于知乎~ 地址在这

在开始正文之前,我们先来想象一下这样的场景:有个人问你说,“你的办公室能不能养一只长颈鹿?”你会怎么回答?

你可能会马上回答道,“当然不行”。

即使你很可能从来没有想象过有只长颈鹿住在你的办公室里默默啃榕树的样子,但也能很快地给出反应。

这说明了你不仅了解这个世界,并且还知道如何快速地运用自己对于世界的认知来处理以前没遇到过的事情。

要是再细究为什么这行不通呢,你可能会分析道:长颈鹿是一种很高的动物、办公室是一个室内的屋子,里面装不下这么高的动物……这些都是人尽皆知的事实,早已存在于你我的脑海中。可见,人们之间的沟通其实伴随着大量的假设背景。我们假设每个人都对世界有一定的了解,这些共识构成了沟通的基础,才使得人类能够快速、高效、有深意地沟通。

反观如今的深度学习模型,几乎都不具有人类这样的推理能力,而主要靠数据驱动。一般的训练过程可能是这样的几个步骤:首先获取一堆训练数据,定义好输入和输出,通过损失函数梯度下降优化权重使得模型的输出和ground truth尽量一致,最终在训练集上收敛。这样的结果导向就可能造成模型偷懒走捷径,在训练中去拟合一些无关紧要的数据构成,无论得出答案是依据是什么,只要使得输出正确就好了,而没有学到真正的知识。这就导致了深度学习模型缺乏泛化性,不能适应新的情况,出现类似“黑天鹅”事件(因为只见过白天鹅就所以认为所有的天鹅都是白色的,不认识黑色的天鹅)。正因为缺乏成熟的推理机制,汽车自动驾驶等AI系统在面对新事物时就可能会做出一些难以预料的反应。

由于现实世界中概念的组合是无穷无尽的,缺训练数据就补训练数据的方法只是杯水车薪。而人类的推理能力是及其复杂的,它依赖于概念化(conceptualization)组合性(compositionality)概念是人类心理上对于对象和类别的抽象表征,正如Murphy的说法:“概念是把心理世界联系在一起的粘合剂 - Concepts are the glue that holds our mental world together”,它能帮助我们理解和处理在已认知的类别中出现的新实体。组合性是人类具备概括能力的关键,它指的是从已认知的成分中理解和产生新的组合的能力 - “understand and produce novel combinations from known components”。

认识“黑天鹅”的本质就需要模型具备组合泛化能力:在知道了“颜色”这一概念、并且知道了“动物”这一概念以及“天鹅”这个子群归属于“动物”之后,即使曾经从未见过这种组合,也应该能够把这二者联系起来。因此,我们期望一个好的人工智能系统是能够获得概念解耦(concept disentanglement)组成推理(compositional inference)的能力的。

由于组合空间是巨大的,如何保证组合推理的可靠性就显得至关重要了,而这就直接依赖于常识(common sense)

常识可以通过阅读文字来获得。例如当读到这样的一个句子:“上周二有个厨师和他的儿子一起在公园里煎牛排。”我们可以从中提取到如下内容:“事件=(厨师,煎,牛排),时间=周二,地点=公园,附加说明=和他儿子一起”。这一句话中就包含了许多常识,比如:"厨师是一个人"、"厨师会做饭"、"牛排可以被煎"、"厨师有一个儿子"、"做饭可以发生在公园里"等等。而且,如果我们读的句子足够多,就可以得到一些统计数据(例如,厨师在公园做饭和在厨房做饭的比率是多少)。

在构建常识库方面的工作有很多,著名的包括有:Doug Lenat借助人类专家的标注创建了庞大的知识库Cyc和OpenCyc;麻省理工学院媒体实验室的团队建立了“Open Mind Common Sense”项目(ConceptNet)来收集在线数据并导入知识网络;以及一些爬取网络数据并提取关键词得到的知识库如dbpedia、YAGO等;此外还有Ernest Davis和Gary Marcus等人采用一种分治的方法用于空间推理、物理推理等子领域的研究。

常识推理(commonsense reasoning)领域就是在致力于解决上述提到的问题。我们想找到某种方法能够收集这些对于世界的共识和假设并教给计算机,使之能够更自然地理解语言并与人互动。

那么,怎么才能评估一个人工智能系统是否具有常识推理能力呢?

比如有一个著名的challenge叫作Winograd Schema Challenge (WSC)就是为了作为常识推理的图灵测试而设计的。它的输入是一对包含两个名词的句子,且其中有一个指代不明的代词。这两个句子之间只相差一个字,却形成了完全不同的指代关系。我们期望的是模型能够正确地指出这个代词指代的是两个名词中的哪一个。

举个栗子:

  1. The trophy doesn't fit in the suitcase because it is too small.
  2. The trophy doesn't fit in the suitcase because it is too big.
    Answers Candidates: A) the trophy B) the suitcase

在这个例子中,句中的两个名词分别是“the trophy(战利品)”和“the suitcase(行李箱)”,歧义代词是“it(它)”。可见,将形容词由“太小”改为“太大”之后直接改变了“it”的指代关系,这就是这个任务的难处所在。解决这个问题的关键需要将两个名词间的关系“fitting”、物品“the trophy”以及容器“the suitcase”概念化。只要理解了概念,各种组合的问题就能得到解决,比如以后用其他容器来代替“手提箱”,深度学习模型也能得到同样的结论。

然而,自John McCarthy在50年代提出“commonsense in AI”的概念至今,整个AI领域中除了机器学习取得了较大的进展之外,真正的常识推理能力却并没有什么改变。但随着近年来NLP的发展,这一任务的重要性越来越显著,因此这个话题又重新获得了关注。

目前的研究已有许多旨在解决常识推理的方法,大致可以分为三类:

基于规则和知识的方法 (Rule and knowledge-based approaches)
通用的人工智能方法 (Generic AI approaches)
语言模型方法 (AI language model approaches)
将在下篇文章中分别进行详细阐述。



参考文献:

Common Sense — Still not Common in AI

Artificial Common Sense Reasoning | by Jeff Schneider | Medium

Who’s Doing Common-Sense Reasoning And Why It Matters | TechCrunch

posted @ 2021-08-15 17:30  thousfeet  阅读(1017)  评论(0编辑  收藏  举报
/* */