本文以时间顺序描述了笔者在学期间对被业内常称为语义解析(semantic parsing,SP,或语义分析、剖析等)这一特定任务的认识过程,以作为将来可以用于回顾或进行元研究的文字素材。另一方面,也希望借此对科研进行一定的祛魅,相信无论是研究各行各业的真实需求,还是分析某个科学共同体的热点话题,都不是可以从现实中独立摘出的意向过程。而与形而上学进行互动能帮助我们对研究工作进行有效的审视,并作为海量研究论文的读者找到被论文所无意间蒙蔽的方向。

研究工作从基于知识的问答(Knowledge-Based Question Answering,KBQA)开始,由于其任务形式过于直接,也有商业落脚点,因此没有必要过多解释其哲学背景、任务渊源或基础设施。唯一需要解释的是此名词其实涉嫌术语的垄断,或者至多是形式的描述而不含本质的定义。不仅Question Answering没有明显的范围,对Knowledge也很少清晰表述,因此没有必要对其名称宣称的承诺进行过多关注。

对KBQA的讨论已经超出了本文的范围,因为在一开始,SP仅仅是作为一种可以用于实现KBQA的方法而提出的。对于SP的认识主要包括四个阶段。

1. 了解任务

KBQA的一种方法是SP,因此开始对SP的调研。这里的SP可以朴素地解释为:将一个自然语言的问题,转换为一种形式化语言。占据统治地位的选择是用$\lambda$表达式、Lisp、SQL等形式语言充当语义表示。

调研方法:收集和阅读相关的已发表论文,至少比较重要的工作均已包括。

调研结果

首先我们似乎可以将语义解析分析为 语义解析

语义(表示)包括

  • 逻辑的(此阶段并未深入理解此内容,实际用到的主要是命题逻辑和谓词逻辑)
  • Davidsonian Representation:加入事件变量
  • Neo-Davidsonian:提取谓词的公共角色成分(thematic role)

解析则可按起始年代梳理为如下不同方法:

  • Inductive Logic Programming (1992)
  • Shift-Reduce (LR) (1993)
  • Combinatory Categorial Grammar (2005)
  • Word Alignment (Synchronized CFG) (2006)
  • Generative Model (2008)
  • Syntactic Parse to Semantic Parse (2009)
  • Weak Supervision and Unsupervised Methods (2010)
  • Large-scale SP for Freebase and QA (2013)
  • Paraphrase-driven SP (2014)
  • Neural Semantic Parsing, NSP (2015)

若按照此方式续写后续几年的工作,可能列出如下清单:

  • 记忆网络和神经符号机 (2016)
  • 针对SQL的解析(2017)
  • 设计中间表示(2018)
  • 对偶学习和强化学习(2019)
  • 多领域、组合泛化 (2020)
  • 异构表示 (2020)
  • 无监督和多语言 (2022)

完成调研时提出的问题

  • 当迁移到神经网络方法后,生成的形式语言不合语法
  • 本体不匹配问题:自然语言的常规描述在知识库定义中常常不一致
  • 自然语言结构与形式语言结构不一致(主要指句法组合顺序)
  • 言语数据的有限性

反思

关于调研方法和结论:

  • 调研结果对语义有初步的了解,对技术方案的了解比较浅,并不知道技术方案与任务的关系,仅仅看到技术演进。但在技术挑战方面却是一如既往。
  • 基于NSP方法,简单认为它是一种生成任务。

但是,如果减少调研量,并针对性地优化具体技术,依然不失为可以入门上手的方法。

基于此阶段的调研结论,形式地认为自然语言到逻辑语言的生成是其主要内容。因此后续还涉猎一定的代码归纳。并基于生成模型处理。

  • 这个时期并没有清晰认识到语义表示跟语义表示有所区别。混淆所有的意义表示。
  • 代码归纳本身也有低级和高级的区别。但它的关注点在于LF的生成,而非这个任务本身的困难。

2. 复杂QA

时兴QA任务向复杂问题方向的推动,若SP作为QA之下的一种方法,那必然也要解决复杂问题。

调研方法:阅读相关QA的论文,尝试回答“什么是复杂问题”这一问题,综述材料主要来源是EMNLP2017和ACL2018。QA论文的筛选并不排斥文本数据,但还是着重分析有结构的答案源。

调研结果

复杂的问题在QA中包括了图结构的标注,而SP方向也有图语义,因此可以将图语义QA方向视为一个嫁接方法。复杂QA也就在图语义QA的基础上考虑,从QA和SP两个任务的方向对问题进行了分析。

  • 关于SP,主要看到了一些研究前沿。例如SP的应用、建模改进(解码)、学习算法、多样化表示的对比等等。
  • 关于QA,则定义了很多复杂问题的QA数据集,但并未分的很彻底,KBQA的复杂问题也并未代表QA本身的趋势。
  • QA按照问题角度分为简单、复杂、多轮,其实是KB的玩法的扩展。按照答案分为专家知识、纯文本、结构化、半结构化、无法形式化社区问答、无法解决的直觉划分。
  • 此时我们认为,复杂问题的复杂还应体现在语言上,而非仅仅是问题答案繁琐。

更进一步,我们严苛了复杂问题的划分方法。

  • 将QA问题分为单轮、伪对话、对话三类。将技能分为RC和SP。这个对立略有问题,推理和感知。
  • 对于SPQA数据集的进展
  • 对单轮的KBQA做了精确的闭类和开类划分。

对于学习算法,按照整理出的SP的外延,我们高亮了SP相关的热门研究话题。

  • 弱监督方面多用流行的强化学习、元学习等方法;半监督方面多用跨领域问题和对偶学习方法。
  • NSP和NLG天然对偶方法,但它对任务的意义不明。

反思

因此种种条件之下,我们缺少对SP的本质探索。

  • 对QA而言,研究热点已经从KBQA偏移,我们寄希望于SP天然解决复杂QA,但是否是这样?
  • SP的研究现状已经比较具体,但前路何处?
  • 实际上KB也是一种定义好的语义,它脱胎于逻辑语义学,但又模糊不清,导致我们关于KB、QA、SP的关系语焉不详。

由于任务内部的常用实现已经基本理清,因此后面有一些半监督研究工作,但基本是对SP当中机器学习方法的学习和研究,对SP任务的认识没有扩展,不在本文讨论。

3. 本体论

在前述两个阶段中,主要以语义解析为核心对象,而没有注重QA的应用。因此,这一阶段试图搞明白这个任务到底是什么,它能做什么或不能做什么,研究边界在哪里。换句话说,就是研究SP的本体论,讨论其外延和内涵。

调研方法:主要以陈嘉映《简明语言哲学》为蓝本,包括一些语言学书,包括语言学、语义学和语用学。也有逻辑学中与语义相关的一些讲义。

调研结果

首先我们意识到语义是个多学科共同讨论的问题。

  • 另外由于语义概念模糊不清,它作为一个抽象对象必然是哲学的研究目标。
  • 一直以来逻辑是研究语义的主要方法。
  • 语言学中的语义也天然是一种研究方面。

基于此我们review了每个学科各自的发展历史。事实证明这个提法效果不好,很混乱, 但是补充了足够的专有名词。在此基础上,试图分析语义解析的内涵。

  • 沿着索绪尔的二分法探索。触及到了一点任意性原理,但并未讲得很明白。这里不是语言论。
  • 通过二分法,将上述分为逻辑语义和理解语义,是借鉴Fillmore的提法(U语义和T语义)。
  • 理解语义分为符号化的和框架的。这样的提法有些不搭调,不如分为元素的(词汇的)和整体的(框架)。可见,理解语义是一种目标。为了解答这个问题U语义我们应该怎么做?未给出。
  • 逻辑语义。语义解析是我们说的解析,以语义解析的形式处理。而语用推理尚未触及,事实上后期我们会认识到语用无处不在。

另一方面,我们也review了逻辑表达式的历史。并最终得到数理逻辑的形式系统。 而在逻辑学的语义方面,基于陈波的《逻辑学导论》综述了逻辑学的相关历史和研究板块,主要体会包括:

  • 至少在现代数理逻辑的形势下,大多数逻辑学和语言学交叉基于模型论语义进行定义。
  • 而在原子主义向整体主义转变的大潮下,证明论语义和博弈论语义也是模型论语义的有力竞争者。

最终我们得出结论,现有的语义解析只是一种形式映射,即模型本身并没有操作语义乃至定义语义的能力

有鉴于此,我们可以概括目前为止SP的外部关联研究(或者可以稀里糊涂地称之为SP的外延):

  • 上层,基于SP进行应用或泛化研究:机器人控制、数据库接口、一般意义的语义形式化、语言组合泛化研究、问答系统
  • SP层,将自然语言映射为形式语言。
  • 下层,使用机器学习模块,包括全监督、半监督、弱监督、预训练模型、基座大模型等。

同样,可以概括SP的内部关键任务:

  • 词汇鸿沟,即SP的输入输出词汇有别,且不可能预先统一
  • 结构鸿沟,即输入和输出数据的句法结构差别可能极大,从而导致句法的组合关系也没有太多参考
  • 本体鸿沟,即输入和输出端对同一个现实问题的世界观不同,描述层次不同。

对于这三者,其实称不上SP的“内涵”,但至少是任务内部需要克服的关键问题:

  • 本体鸿沟并非伪需求,有很多不同层次定义的真实出发点,但它并非是唯一的认识手段。
  • 落实到语义解析的具体工作中,表示层级鸿沟需要借助中间表示手段。
  • 三个鸿沟也不一定是可以解耦的。

此外,SP所处理的数据涉及一些有难度的问题:可概括为复杂化的答案、推理强化的问题两个方面。

  • 表达复杂化包括词汇、句法、推理(如蕴含、预设、言外之意等)。
  • 结构复杂化包括各种开放分类。可以参考之前的设定:更大的KB、可变的复杂的schema等发展方向、不同的语义表示之间(LISP vs $\lambda$ vs SQL, 乃至$\lambda_1$ vs $\lambda_2$ )的关系。
  • 这个任务有很多挑战,但这些挑战的元素并不一定要是语义本体的养分

后续基于这个角度,还继续调研了映射的一些实现方法。

反思

有可能: 根据内容罗列是难以掌握一个概念的,还是需要深入其内涵,综合出一种理论结构,从而重新认识众多的概念。因此,罗列内容的组织永远是不可取的。无论是像本文一样按时间顺序的罗列,还是以哲学高度对不同学科进行历史或元科学的罗列。

可能到了这个阶段,基本已经可以结题了。但实际上还留有一些未解之谜:

  • 为什么总是要把逻辑和语义学说捏到一起呢?该问题自Frege的语言哲学发起,但回答很困难。
  • 若现有的SP是基于T语义、无语用、无推理的,本质上是一个映射任务。这个答案实际上令人不满,即便真的费大力气基本解决SP问题(譬如克服数据缺失、利用大模型工具等),对于语言泛化、智能体扩展等AI下一步问题实际上并没有启发。
  • 实际上可以追问更多的问题,语义理解为何是逻辑的,现有的大模型取得了很大成功,它没有基于逻辑构建,是否就本质上没有语义能力?语义理解又在多大程度上是可以推理的?
  • 乃至最本质的问题是,我们原本从直觉出发认为,理解语言一定要掌握语义。一定是这样吗?语义是一个可以被认识的存在吗?

4. 系统论

如果能阐明语义的问题,上述的大多数问题都能迎刃而解,无论是给出答案或是指出问题设置的不恰当地方,都能获得进展。所以本质上,语言哲学的经典成果、语言学的基础内容,是不可跳过的必须下苦功夫啃的东西。如果囫囵吞枣,而又超出了语言直接进行交叉学科研究(如意识、脑模块等由转换生成学派所激发的问题),恐怕很难得到明确的路线,而所得成果也有难以达到研究预期的风险。

另外,“系统”作为科学热词之一,难免也成为了概念混淆的重灾区。我们大概只区分三种“系统”概念:系统科学所研究的“系统”;语言的“系统性”所涉及的系统;形而上学中部分论和整体论所涉及的“整体”。在我们关心的话题下,语言的系统性就成为了主要内容。

调研方法:主要阅读内容包括ACL各级会议在Semantic Track的论文、语言哲学比较深入的导论教材或综述、整体论的形式研究、程雨民关于《人本语义学》、协同语言学关于词汇和句法的研究等。

调研结果

实际上我们不得不接受这样一个假设:语言是一个可以研究的对象。这意味着它既不是可以被其他研究消解的(包括心理、认知、智能、意识、哲学等学科),也不是一定要基于其他研究完成后才可进行的。否则就宣判了语言研究的死刑,而现有的NLP工作恰恰大量提供了该假设的积极证据。若接受了该假设,那一个直接推论就是我们理应追求语言的本质特征,而非将希望寄托在心理学、脑科学、哲学等方向有所突破。

关于语义的调研反而类似于一种“元研究”。市面上较新出版的语义学本科教材中一般提到有代表性的三至五种语义学说,但经过王寅的具体梳理,现有比较知名的语义研究可能有超出20种,且其强调的方向各异,不同研究的内部原理之间的逻辑关系很难说清:

  • 指称论,以约翰密尔为代表
  • 观念论,以洛克为代表
  • 涵义论,Frege的学说
  • 命题论,Frege的学说
  • 摹状论,罗素的学说
  • 证实论,逻辑实证主义衍生的语义学说
  • 条件真值论,Davidson发展的自然语言语义学说
  • 使用论,维特根斯坦后期
  • 语境论,强调意义必须从语境获得,严格说来也可以上溯至Frege
  • 意向论,以Grice、Austin等为代表的语用学说
  • 行为论,以Bloomfield为代表
  • 结构主义语言学,称为关系论、成分论和替换论
  • 转换生成语法,以乔姆斯基为代表
  • 人本主义,以后现代哲学为主所涉及的语义主张
  • 认知语义,以认知研究为基础发展的语言学中对于语义的定义,包括框架语义学也归为这一类

但是,上述分类法混淆了哲学、逻辑学、语言学的目标,而受程雨民教授的启发,我们从语言学内部的语义学出发,使用系统性来定义语义的基本思路。

关于系统性问题,当前可用的技术实现方法:

  • 系统性或任意性的测量
  • 协同的、博弈的、多目标优化的帕累托最优、最优传输的等等
  • 神经网络曾经也被称为是一种自适应的结构建模技术

虽然简单说了一些传统的语义怎么研究的,但系统性和它的拉扯。依然不明显。

通过一些语法归纳研究,认识到强制的句法形式化有其局限性。因此转向了构式语法。

小结

以现在的学习体会,可以回答前三个阶段的疑问:

  • 语义解析的方法差别是任务外延(学习、应用)的差别,存在的问题是任务外延的问题
  • 在没有具体语义形式化理论之前,语义解析与复杂问答是不可能等价(non-identical)的两个任务
  • 语义解析的发展依赖于对系统性理论的推动,否则只能作为映射函数的学习,极大受限于标注数据的质量和数量

简单来说,虽然在应用阶段花了很多时间徘徊不前,但究其核心还是语义定义的问题。

  • 若采纳逻辑语义学的视角来定义语义,这个问题就归约为本文前三个部分所讨论的语义解析任务。这样朴素的方法其科学价值可能并未显现,它预期的目标可以做形式推断等,但似乎这一目标在大模型的成功之下显得已经不太重要。若使用大模型作为实现基础,则此任务本身又显得刻意和多余。
  • 若采纳更广阔的语义学视角,语义解析可以获得超出现有限制的发展
  • 语义是否是一种可以表示出来的东西,现有的成功都基于逻辑的方法,而语言的功用在生活中远远超出言语意义的表达,这些情景下似乎很难使用逻辑语义表示,而生活中的语言运用其实是最为普遍的语言应用。