整个QA(Question Answering)相关研究可分为文本QA与KBQA两部分,划分的依据是回答问题的信息来源。
- 文本QA回答问题的来源是非结构化的文本,
- KBQA回答问题的来源是预先定义好的KB(Knowledge base,知识库)。
文本QA相关的研究远多于KBQA,因为文本QA的研究对象——非结构化的文本,大部分都和平常且易于获取,比如说Wikipedia,新闻文本和科普文章等。
根据上下文信息的可用性,文本QA又可分为MRC(Machine Reading Comprehension,机器阅读理解)和Open QA(Open-domain QA,开放域问答)。
- MRC旨在让机器阅读给定的文章用于回答问题。
- OpenQA并不提供具体的文本,而是需要系统先检索出与问题相关的文章作为上下文,无论是从本地的仓库还是网络,在此基础上才能进一步回答问题。
由于OpenQA的实验设置与现实世界更为相似,故OpenQA相关的应用也更多。MRC可以视为OpenQA中的一个步骤。事实上,搭建一个能够回答任何输入问题的OpenQA系统是QA领域研究的终极目标。
现代OpenQA最常见的套路是Retriever-Reader框架。Retriever负责根据给定的question检索相关的文档,可被视为IR系统;而Reader负责根据检索得到的文档推断最终答案,通常情况下是一个neural MRC模型。
Retriever分类:
- Sparse Retriever:采用传统的IR方法。
- Dense Retriever:采用深度学习方法。按照对question和document编码方式的不同,可分为如下三类:
– Representation-based Retriever:对question和document独立编码,双塔模型。
– Interaction-based Retriever:将question和document放在一起作为input,通常使用transformer-based encoder。
– Representation-interaction Retriever:结合representation-based与interaction-based方式。 - Iterative Retriever:旨在通过多个步骤找到相关文档,又称multi-step retriever。