问答(QA)是自然语言处理(NLP)中一项知识密集型任务,要求系统能够用自然语言表达的用户查询提供答案。QA系统所配备的知识类型大致分为两类,即显式知识和隐式知识。显式知识采用人类可读的格式,例如原始文本、知识图谱、结构化表格等,而隐式知识则存在于通过对显式知识进行训练而学习到的模型参数中。由于这两种知识类型的互补性,最近的QA研究试图利用它们来建模。然而,现有工作主要集中在为特定数据集构建定制化模型上,这些模型并不适用于其他用例。此外,虽然使用端到端模型直接学习融合不同知识是一个简单的解决方案,通常效果不错,但这使得模型的推理过程难以解释,导致不可信的预测。最后,大多数系统在设计时没有考虑内存和计算效率,这限制了它们在现实世界用例中的应用。
考虑到上述问题,在本论文中,我们提出了构建通用、可解释和高效QA系统的解决方案。具体而言,我们提出了三个解决方案元素,即1)混合知识融合,2)模块化知识框架,和3)模块化知识共享。在第一部分中,我们研究了将常识知识注入由预训练语言模型驱动的QA系统的各种方式。我们的结果表明,在监督设置下,知识子图的实例级别后期融合是有希望的,而在零次射击设置中,对知识图谱(KGs)进行预训练提供了跨多种任务的显著增益。这些发现表明,结合显式和隐式知识是向跨不同领域问题的概括迈出的一步。在第二部分中,我们探索了两种不同的用于开放领域问答的模块化框架,以弥合知识类型和问题类型之间的差距。我们展示了文本可以作为不同类型结构化知识的通用知识接口,并且将推理过程分解为离散步骤使得单一统一系统能够解决单跳和多跳问题。模块化框架不仅提供了跨知识和问题类型的通用性,而且还带来了推理过程的可解释性。在第三部分中,我们将上一部分的模块化框架扩展到允许不同模块之间进行隐式知识共享。通过多任务学习,多个推理模块被合并在一起并同时学习,我们进一步为每个模块添加了特定技能专业化以减少任务干扰。这样的架构不仅大大减少了整体模型大小,而且提高了推理效率,因此实现了通用性、可解释性和效率这三个目标属性。最后,我们讨论了本论文之外的开放性挑战和前进的途径。