框架是一种知识表示。知识表示狭义地理解就是把人类的知识表达成计算机能处理的形式,毋庸置疑这是实现人工智能非常重要的一步。在知识表示发展的过程中,框架是一种非常有代表性的方法,至今仍然具有旺盛的生命力。

框架怎么表示知识呢?我们可以简单将框架类比为 Key-Value 结构,例如“刺杀”这一概念对应的框架,就至少包括“刺杀者”和“被害人”两个 Key ,它们应该会有对应的 value:

  • 对句子“荆轲刺秦王”我们知道刺杀者和被害人的取值分别是荆轲和秦王;
  • 对句子“凯撒被刺”,只知道凯撒是受害人,进一步去搜索可知刺杀者是Brutus;
  • 对句子“肯尼迪被刺”,那么肯尼迪是受害人,尽管刺杀者至今身份不明,但他肯定存在;
  • 对句子“触龙刺赵太后”,我们依然能知道这里两个Key的取值分别为触龙和赵太后,尽管历史上没这回事。

因此,可以说语言理解离不开框架,我们借助框架的力量创造并理解语言,并与外界交互。

类似的概念在很多学科和领域(语言学、认知科学、人工智能等)被各自独立地发展出来,有图示(Schema)、全局模式(global pattern)、框架等等,人工智能领域 Minsky 的 Frame 提法被广泛采纳,自然语言处理中也沿用了这个词汇。但著名的语言学家 Charles J. Fillmore 博士则从语言理解的角度更完善地阐述了为什么要引入框架的概念,并于后来领导开发了 FrameNet 这一重要的自然语言资源,因此尽管框架这个词应源自Minsky,但我们更习惯于将框架语义归功于Fillmore。

Fillmore 的观点大多记于 Frame Semantics 一文中,但在之前对相关工作的调研中,笔者发现了 Frames and the semantics of understanding 一文对框架语义和自然语言理解有很多更好的介绍。考虑到这是一篇近40年前的旧论文,本文对其进行节选翻译和介绍,希望对相关感兴趣的工作者带来一些启发。

1. 介绍

本文主要目标是对宽泛意义上的语言理解所涉及的“语义”做出区分,一派语义理论试图区分句子(相对的)真值(Truth),简便起见将其称为T语义。而与此相对,我们还要提出面向理解(Understanding)的语义,并简称为U语义。

U语义理论的目标是一般性地考虑这些元素之间的关系:

  • 语言文本;
  • 文本实例化所处的上下文;
  • 对这些文本进行解释的过程及其产出。

更重要的是,对于二者(1)语言正确性的解释过程和(2)说话、推理即说话人的信念之间协作的过程,U语义理论并不假设它们之间有天然的区别。而T语义理论与此相反,它的目标就是判断给定条件下一句言语否能称为“真的”。

因此,本文的主要目标如下:

  • 使用解释性的框架对 U 语义理论进行辩护,并证明框架在词汇语义、语法、文本语义等不同层次上都是有用的。
  • 这些解释性框架的语义并不能很容易用 T 语义理论得到。
  • 那么U语义理论是否能解释真值和否定?在U语义理论下,真值和否定也是次要的。
  • 框架还有助于解释“预设(presupposition)”这一此前非常流行的现象和其中问题(译注:“预设”在上世纪60~70年代是语言研究中的热门问题,有非常多的文献)

2. 词及其语义

非英语母语的人学英语的时候,Thursday、Sunday这类词汇如果在一起学,我们会觉得比较自然,如果七个星期词汇在整个教材里随机打散,我们一定会觉得非常奇怪。同理,mother、father、son、daughter、brother、sister等词汇,buy、sell、pay、spend等词汇,day、night、midnight、noon、morning等词汇,都应该放在一起。

这种词汇之间关系的预设结构很像所谓“语义框架”的说法:即我们对个体词汇的理解其实是基于对其关系的理解。引用John Stuart Mill在《A System of Logic》中的观点,son 和 father 这种词本来“能指”相同的东西,但它们实际“所指”由于语言发展历史而不同,它们是一个更大的人类之间关系网络的一部分,这个更大的关系网络其实就是一种解释性的框架,该框架代表了关于“亲属关系用语”系统的统一概念。

除了 son 和 father 这种有事实基础的“相对名称”,Mill还指出对于领域内的“词”也做这种关联性的理解很有用。这种做法类似于语言学的词汇场理论(译注:该理论已退出历史舞台,后续发展为 语义场理论)。词汇场理论认为,一个特定词汇的解释依赖于该词汇的结构化背景知识。上世纪初期,德国曾经使用这种方法来衡量学生的成绩。如下三组词,词越多,分辨其相对词义就更难:

  • A: sehr gut, gut, genügend, mangelhaft (A组分别意为非常好、好、还行、差,下略)
  • B: sehr gut, gut, genügend, mangelhaft, ungenügend
  • C: sehr gut, gut, befriedigend, ausreichend, mangelhaft, ungenügend

类似的,如果一名游客订了标称 first class 酒店但发现旁边还有一座更好的酒店,查询发现该酒店是 luxury 级别,势必感到不快。而美国超市售卖的皂粉(soapfloak,一种洗衣用品)的最小包装叫做 large,更大的可能称为 jumbo、economy、giant 和 family size。这些词汇所处的框架不同于人们更熟悉的惯用框架,因此必须引用特定的框架才能避免理解错误。可见,词汇场理论中的“场”就是我们所说的“框架”相近的一个概念。词汇场理论认为,语言的词汇表作为一个整体是由语义上定义的封闭词集组成,即一个“场”,在每个场景下,要理解场中的一个词汇,就需要有能力检查场中的全部词汇。

然而,我们认为词义更多依赖于它的概念构建,而不是它的词汇同僚。这能用一个技术性强些的例子来说明:hypotenuse 这个词必须建立于我们知道什么是“直角三角形”,因为hypotenuse是直角三角形的直角正对的一条边(译注:汉语中通常叫做斜边,但英语中没有使用斜+边这样的构词模式)。并且,英语在描述勾股定理时,提到直角三角形的其他两条边一般称为the other two sides,而德语中称呼直角边有一个专门的词汇即Katheten(尽管有时英语里也说leg,但leg并不是Katheten这种特指直角边的作用)。这个例子中,框架语义的观点就会将所有词汇与背景框架(直角三角形的几何知识)相联系。但是,如果我们采用词汇场理论的观点,就能推断出Hypotenuse和德语里对应词的意思不同!因为德语里的相关词汇Katheten在英语中没有对应,没有办法用互相定义的方式得到hypotenuse的词义。更进一步,我们还能继续推断,如果有一个德国小孩学习过Hypotenuse但没有学过Kathete,而他的同学两个词都学过,那么他的同学和他对于Hypotenuse的理解是不同的。这显然是不对的。

因此,框架语义与语义场理论的区别在于,框架语义允许说话人在没有了解所有领域词汇的情况下就可以具有完整的背景知识。

3. U 语义和 T 语义

一般来说一个语义理论应该包括:可能语言形式的集合、语言形式赖以生存的上下文、针对上下文和语言形式进行的判断。针对T语义和U语义分别如下:

理论构成 T 语义 U 语义
语言形式 独立的句子 词和文本
上下文 语用索引(指代、时态等) 丰富的可描述背景、视角、活动等
判断 可接受性、歧义、同义、暗示 “理解”得到的数据

给定一个例句“我爸爸在公交车上浪费了一早上时间”。T语义认为,这句话要为真,那么必须由“我”在“今天”说出,且“我爸爸”真的在车上浪费了一早上。

但U语义的分析目标并不是真假,它试图解开语言文本和特定环境下人的理解之间的关系本质。它是经验性的而非形式的,更关注于特定的表达如何适应一个场景。对于上面的例子,U语义会关注:

  • 为什么是用“爸爸”而不是“父亲”
  • 为什么是“我爸爸”而不是“爸爸”:说明听众并不是家族里的人
  • “早上”按照惯例表示的是一天中午之前的部分,而不是说“中午前的十二个小时”
  • “浪费了”而不是“花(费)了”引入了一个判断,即这段时间没能物尽其用,这进一步基于Lakoff等人所说“将时间看做有限资源”的框架
  • “在公交车上”一般会暗示该车处于正常行驶中(译注:英语中on介词有更多含义,在后面的小节会重新讨论这个例子)

因此,这个例句的U语义理解倾向于构建一个相对完整的想象(envisionment),并同时考虑这句话之所以产生的设定,以及如果这句话是合理的那么从中能得到什么样的场景。U语义的理解既是组合性的(compositional),又是非组合性的。因为它的操作基于具体的词汇项、短语单元、语法构造,但它又不单纯是自底向上地用符号构造出来。

U语义理论大量使用了解释性的框架,我们甚至可以假设,这些用语言承载的范畴(包括词、短语,乃至各种语法特征和句法模式)都预设了(或说暗含了)说话人对于文化系统的结构化理解、对于世界的认识和理念、共享的经验、做事情和看待事物的标准或者惯用方法。单独的词汇项可以看成充当了判别、分类、命名功能,或者仅仅是一个范畴认可(category-acknowleging)功能,认可或反对上述结构的背景。很多时候如开篇所说的“星期”词汇一样,有整组词汇暗示了相同的概念框架,但这样的词汇网络并不是框架所必需的。有时候框架只有两个反义词:上和下、生和死、前和后;甚至一个词也可以当成框架,例如我们说两脚动物行走时可能用到的:bound, hop, limp, leap, prance, skip, vault等(译注:大家自己查词典看看这些“跳跃”的词汇有什么区别吧囧)

框架很像认知科学中过去二十年提出的一些概念,且框架在很多认知行为中已经得到了解释,但很少有工作关注语言表达和这些概念框架之间的联系(译注:从原文的上世纪80年代之后,认知语言学的研究已经较多地补上了这方面的缺失)。框架除了将用于理解的经验和工具组织起来之外,还可以当成工具对词汇和语法进行描述和解释。

4. 框架语义

如果语言形式或模式惯例上与框架相关联,那么框架就会由文本唤起。例如“我到明早之前不会拆开压岁钱”并未提到“春节”,但拥有相同文化经验的人立刻就会唤起春节作为上下文。框架可以在一个人认知发展的过程中天然地获得,例如认识人脸的能力;也可以通过体验和训练获得,例如社会经历或其他专业知识;甚至有时只能完全从语言运用中获得,例如长度度量单位、星期和月份词汇等。

从宏观的角度说,知识结构的重要性毋庸置疑,但这些知识是否属于文本描述之中就有很大争议。同样地,框架语义也认为这些知识框架的运用对理解文字及其片段而言必不可少,但并不认为语言必须包括涉及到的所有知识。相反,框架语义认为语言知道知识如何产生,意义范畴如何形成,语言理解过程中框架如何工作等。在这个方面,框架语义以更“百科”的视角看待意义。特别的是,它并不试图在语义和理解之间设置什么天生的分隔,它认为语言的单元和范畴的首要目的就是交流和理解。

而在谈交流和理解的时候有必要重新思考所谓一个句子的语言内“语义表示”到底是什么。原则上,在U语义中不存在一个形式对象,可以直接地解读为句子的语义。相反,一个句子的语言内语义表示仅仅是句子的一个呈现(display),一个词汇、语法、和语义材料的呈现。这个呈现的作用仅仅是一张“蓝图”。读者将蓝图与相当多的知识相联系,尤其是句子中唤起的解释性框架的知识,也包括句子所在的更大文段中的知识。对于知识如何作用于理解,传统语义学甚少将其视为任务并阐明,但在我看来,一个恰当的自然语言语义理论需要关注知识如何作用于文本理解,以及哪部分知识被语言形式所反映

U语义明确地区分了句子(sentence)的通常意义和在特定上下文中充当叙述(utterance)的意义,理解这点非常重要。通常意义是句子在所有上下文中的可能理解之集合,在特定情形下使用一个句子时,则要结合通常意义和语言的及语言之外的上下文来判明其意义。因此,句子的通常意义包括了一些传统上认为是语用学的研究内容,在上下文中解释句子所需的一般性“指南”(instructions)。以及各种指代过程、新名词合成等等。

我将语言的解释过程视为赋予其以最丰富的注解,该注解将文字中的所有东西尽可能地提取出来。最终,对句子每个语言形式,该过程都需要回答如下两个问题

  • 为什么语言中会存在这种语言形式想表示的范畴?(译注:也就是说,为什么会有这个词、短语、语法、句型?)
  • 为什么说话人在这个场景下选择了这种语言形式?

要回答第一个问题,就首先要得到激发了这个范畴的抽象框架(Searl所说的“背景”)。要回答第二个,就要知道一个人如何理解整个句子:当前激活了哪些框架,其槽的取值是什么,以及当前框架能完成什么功能。要注意的是,第二个问题问的是为什么“选择了”特定语言形式,而不是问为什么“他说了这些话”。

对于词汇语义,框架的研究可以看做探究一个语言社群为何创造了这个词所代表的范畴,并据此来解释词义。对于文本理解,框架语义的研究有助于理解框架如何被引入文本的,以及如何创造和发展逐渐增加的文本的。

5. 比较

尽管框架语义要求我们判断句子“有效”需满足的情景条件或世界条件,但它并不要求我们判断单个句子“是真的”。框架语义只需要一个说话人“想象”(envision)一段文字对应的“世界”,只要解释了它的各个元素。

T语义和U语义的区别可以用英语介词 on 来说明。当英语想要表达乘客和交通工具之间的“空间”关系,用介词 on 还是 in 有时仅依赖于介词的基本意义,有时会视相关名词指代的状态而定,但是有时更加复杂(例如我们谈论使用公交、飞机、火车、飞艇旅游时)。特别地,on 介词定义了一种交通工具正在“服务中(in service)”的场景,与“闲置”相对,此时交通工具理应完成这次旅行。因此,我们可以说一名乘客“on the train/bus/airplain/Graf Zeppelin”,尽管这些交通工具可能触发了“容器”框架,用 in 或许更合适。(译注:现在的英语教学中一般会宣称空间狭小只能坐着的用 in,能站起来的用 on,例如 in the car、on the bus,后面我们会看到这个说法为什么也不全面。)

举两个例子来说明什么情况 on 介词不太合适。第一种情形,一群小孩在加帕里主题公园中一辆巴士上玩耍,该巴士已经被废弃,没有轮子。我们不太可能说他们 on the bus,而更恰当的是 in the bus,因为巴士已经不可能 in service。第二个更极端的情形,即便巴士确实能行驶,我在上班途中拿出一把枪对准司机,并赶走了其他乘客,要求司机开向某个我自己想去的购物中心。这时也不能说I went to the shopping mall on the bus。因为这与我们通常理解的 on 介词对应框架差别太大了。

这两个例子在美式英语里也是一致的(译注:作者称自己采访过几个美式英语的说话人)。实际上你也可以说只要满足了这种情形一个句子可以称为“是真的”,但是即便一个说话人愿意配合你去做出该句子的真值判断,他也可能无所适从,因为这种真值判断就是不合适的。如果句子和 U 语义所暗示的框架相符合,做真值判断固然直观,但是如果场景不符合,恐怕简单宣称该句子“是假的”和“我不知道说什么”之间还是有很大不同的。(译注:例如上面的例子中,如果小孩们在沙滩上而不在该废弃公交上玩耍,那么当然可以说 on the bus “是假的”,但如果小孩们就在废弃公交上,且我们知道用 on 显得不对劲,那么依然宣称 on the bus “是假的”的吗?)

这个 on 介词的例子说明有时语言形式所代表的范畴(译注例如需要搭配一辆“服务中”的巴士使用)并不是显然的,它们可能需要更精巧的分析。 例如,如果我们说“一种鸟类终生生活在地面上(on the ground)”,我们能立刻判断它也许会游泳但它不会飞。而如果我们说“一种鸟终生生活在陆地上(on land)”,我们就能判断它也许会飞但它不会游泳。这个对比说明,到判断某物“在地球的干燥表面”居然需要根据我们究竟与“在空中”还是“在水里”进行对比。同理,如果我们说有人打算在陆地上呆两个小时,我们就能假设他中断了原本的海滨旅游,打算在地上呆两小时,而不是在空中飞行后停留两小时。

这种说法让人觉得跟 Grice 的交际原则之一的“关联(Relevance)”很像。也就是说我们假设说话人所说内容一定是相关的,所以他说“在陆地上”就一定意味着“不在海里”。但实际上,是这种惯例的字面表达激活了语义框架,从而提供了这种推理所需的材料。而 Grice 所说的“关联”并不仅仅是文字交际基础上的语用考察,且会紧随着将语言图式化。

再举一例,如果说“他们天黑前赶到了岸边(reach the shore)”则我们假设他们坐船从水里赶了过来。而如果说“他们星期二赶到了海边(reach the coast)”则可以假设他们的旅途是在陆地上。从非洲西海岸去到南美也不能说 from coast to coast。再次说明,Grice所说的关联并不独立于语言知识。

词义对于文本理解的作用有时会有很深的背景。例如 out west 和 back east 这两个说法,结合地理、历史知识,我们立刻知道这是在说北美,尽管字面上它跟背后的地理和历史范畴毫无关系。智利的东西边境就不太可能用这个词。

有时,决定用什么词也暗示了预设的视角,这将再次说明,“理解”尽管可能很平常,但讨论真值却还是费解的。英语中 come、go、bring、take 等词都可能引入视角。一个夏威夷人说“我的朋友小时候搬到了加州,但直到退休才回到东边(back east)”,一个商人说“价格很快又将降回来(come down)”,而没有说“降低(go down)”。因此,很难说对于“理解”的判断是不需要考虑视角问题的,而真值判断不能处理这个问题。

在一个快速变化的社会中,我们往往会发现事物名字经常变化。例如,所谓“模拟表”,是在有了“电子表”之后才会说的。这些“通常的”事物之所以有了新名称,是因为这个特殊的新名称赋予了它在一个对比集合中的成员地位。与“模拟表”类似现象的还有“有声吉他”,同样是针对“电吉他”而言的。而“第一次世界大战”也只有在“第二次世界大战”发生之后才会出现。以及“生母(Birth mother)”相对于“基因母亲”,也是在试管婴儿技术出现后允许一名女性提供卵子由另一名女性孕育胎儿。把所有这些例子搅和在一起,我们可以假设一个人在2019年说“在第一次世界大战期间,罗纳德·里根的生母把他的模拟表掉进了一个有声吉他的音箱里面。”这个例子描述了一个很普通的事件,但它的用语在当时是不必要的,在这里,关于真值讨论是否有必要的问题又出现了。但是,我们可以假设一个人确实说了这么一件事情,在此基础上,我们可以讨论这个人所说是真还是假,但是谈论这个句子是真是假其实毫无意义。

6. 框架语义与真值

一个讨论自然语言的T语义理论势必要宽泛地解释下“理解”为何,一般是通过语用、信念系统、一般符号学等方式去处理的。同样,一个 U 语义理论也得做一些自然语言如何在推理和逻辑中应用的讨论。特别地,我们必须处理当一个人说“真”时做了什么判断,以及当他说了一个否定句时他在干什么。

“真”和“假”平常可以在一个框架中,但在逻辑相关情景下运用时必须用一个更技术性的框架。而逻辑讨论中的“真”用到自然语言里时是病态的。很多时候对话者并不知道该不该说“某事是真的”,原因在于他们不知道句子的上下文是否吻合其框架。但“真”可以有另一种技术用法,能为普通语言使用者所习得。与真值理论相当,一个句子的所有框架条件都能满足,那么这个句子是“真的”,其他情况下就是“假的”(如果我们使用二值逻辑)。否定句是“真的”就只要它的肯定形式是假的。

于是,用U语义做真值判断时,“P(在T语义意义下)是真的”这种形式的判断就意味着“一个说了P的人将作出一个(U语义意义下)为真的陈述,且他说话服从协作原则,还具有足够的信用。”这么处理过后一个句子就一定能判断真假,且没有明显的歧义情形。

再来说否定。形式语义里的否定使用真值语义来定义,如果一个命题是真的,那么它的否定就是假的,反之亦然。而在自然语言中,“真”仅限于上下文和框架相匹配的情况,如若不然,框架语义可能无法判断其真假,而对其否定形式,甚至也需要做相同的判断,不能立刻推出为真。

否定句中框架也比较重要,例如我们一般会期望否定句中名词的数和它在肯定句中的相同,如下,我们会认为句1优于2,句4优于3。如果使用传统真值解释,“没有”鼻子和脚趾就会被视为0个,再根据我们鼻子和脚趾数目进行判断。而实际上面向“理解”判断的语义不满足于此。

  1. Your drawing of the teacher has no nose.
  2. Your drawing of the teacher has no noses.
  3. The statue’s left foot has no toe.
  4. The statue’s right foot has no toes.

为了讨论否定的具体处理,我们从两个维度入手,一个维度是考虑否定是否需要考虑上下文,第二个维度是区分否定框架的内容(框架内否定)还是否定框架本身(跨框架否定)。对内容的否定既可以是上下文无关的,也可以是上下文相关的,而对框架本身的否定一定是上下文相关的。

考虑第一个维度:

  • 上下文无关的否定:“她父亲没有任何牙齿。”这个否定并不需要建立对特定人脸的印象,不需要篇章上文具备某种前提。
  • 上下文相关的否定:“她丈夫没有任何核桃壳。”这个否定需要上文已经提到过“核桃壳”,建立相关框架。

考虑第二个维度:

  • 框架内否定:(你错了。)他并不吝啬,他非常慷慨。
  • 框架内否定:(你对他的印象有误。)他并不节俭,他其实完全不在意钱。
  • 跨框架否定:他并不节俭,他只是吝啬。
  • 跨框架否定:他并不吝啬,他只是节俭。(拒绝了“吝啬-慷慨”这一对立框架,而选择了“节俭”)

需要注意的是,当尝试理解一个跨框架拒绝的时候,一般都会激活一个特别的交互或修辞框架。上面的例子就在否定之后激活了一个“评价”框架,将前后两个由词汇激活的框架联系起来——上例中最后一句实际上也可以说成:你认为他坏,我认为他好。

第7节预设、第8节关键情形暂略。

9. 结语

可以说 U 语义以及框架对于语言理解是至关重要的,甚至也能为“真值”和“预设”的相关讨论给出很多有用的解释。语言理解之于“语言”和之于“语言用户参与的活动和推理”之间,显然有必要划出一条边界。这条边界理应由“约定俗成”得来——就像任何人作为语言的使用者所知道的那样——而非使用真值判断。

尽管单纯的语言元素可以用 U 语义分析得到,我们也不需要从全景(fuller picture)回退。U 语义认为语言使用者一定要和其他知识技能协同工作,它试图理解整个过程。

译后小结

过了40年回头看,主流的很多NLP任务里谈到“语言理解”这件事时依然没有很明确地运用或建模框架,尤其在事实证明统计机器学习有效之后,对自然语言的分析变得更加浅显,任务的解决方法全都依赖于模型和学习。硬件性能及互联网技术的发展积累的红利已经基本用完,技术设施的构建使得监督学习的能力已经尽可能发挥。也有老师认为监督学习已经走到了尽头,因为更多的数据标注已经不是用钱能解决的了。这可能也意味着用数据堆起来的发展已经减缓,而人们需要更新的算法,无论是弱监督、半监督、无监督还是自监督。因此,当我们回过头来对“理解”产生了疑问的时候,放弃对统一学习模型的幻想,真正专注研究语言本质的问题将是未来重要的方向。

尽管框架理论后来产生了 FrameNet 这一重要资源,但本文对框架和语言理解的讨论非常深入,其意义不亚于提供一份重要数据资源。尤其是本文提出语言理解并不等于逻辑真值的概念可谓醍醐灌顶。当然,本文写于1984年,后来这段时期逻辑本身也并不是一个止步的学科,非形式逻辑的发展也扩宽了原本的经典逻辑学视角,尤其模态逻辑的发展如今也能解决一些本文所说的真值理论的困难。我们并不能说在语言理解这件事情上逻辑学就没有用了。

最后用几个问题来结束本文。语言理解是隐状态向量吗?是形式语言吗?是下游任务吗?是AMR表示吗?想要反驳的同学可能会发现,对这些问题的反对可能也要利用本文所说的框架语义。