问答系统不完全总结
【整理向】
- 19世纪60年代最早:基于模板和规则
- 19世纪90年代:基于检索(IR)匹配
从问题中提取关键词,根据关键词在文本库中搜索相关文档,并进行降序排序,然后从文档中提取答案.
主要模型有:
单轮:DSSM,CLSM
多轮:Multi-Viem,DAM(state-of-art),Memory-Network
基于检索的问答系统-面向具体任务检索式问答:
可以被化归为一种复杂的信息检索系统,可以自动将用户的自然语言问句转化为查询请求并从一系列候选文档。检索式问答系统的核心性能与其依赖的IR系统(IR: Information Retrieval)紧密相关。而IR系统的性能取决于其文档索引与查询请求的设计,由于自然语言天生具有句式复杂、表达多样的特性,大部分问答系统的IR模块都会采用问句重写[8](Query Expansion)与语义模板[9](Semantic Template)的方法来化简自然语言问句与提高召回率。
这两种方法多采用语言学家手工构造规则模板,选用特征包括同义词、反义词、上下位词、频次信息、标点、关键词、代词、位置(比如句首与句尾)、前后词性标注(POSTag)作为问句的特特征[1],然后利用各类传统的机器学习分类算法如K最近邻算法、支持向量机(SVM)算法重写问句与模板匹配。这些方法大多依赖于词典、语义模板,倘若这些先验知识足够准确与丰富,其准确率与召回率还是相当高的,然而,这类方法的局限性很大,且难以扩展维护,随着问句种类的增多,需要花大量时间大幅度修改模板、维护词典,在工业中应用困难。
另外,此类方法或多或少忽略了问句的上下文语境与语义信息,准确率较低。
特点:基于检索的问答系统从一系列可能的回答中选出一个与问句最相关的答句,因此从本质上来说其并没有生成任何新的句子,因此我们无需担心答句中引入的语法错误。
- 2010年,知识图谱(结构化文本)
基于知识库(KB-QA)-对问题进行解析,根据解析内容从知识库中推理出答案.
基于知识库的三大传统方法:语义解析,信息提取,向量建模.
1. 语义解析:
2. 信息提取:用实体命名技术获取到问题中的实体,然后在知识库中进行查询,得到关于问题实体的中心子图,子图的边和结点就是候选答案的集合.进一步,可以通过分析,规则模板提取除特征,将问题和答案的特征结合送入二分类器中,将答案分为正确答案和错误答案进行建模.
3. 向量建模:获取问题和答案的表示向量,然后做点乘求得分.
其他:Memory-Network也可用于KB-QA
- 基于阅读理解的问答(MRC机器阅读理解):
适用数据类型为-(给定一个问题 Q 和一个与 Q 相关的文档 D,自动得到 Q 对应的答案 A)非结构化文本,主要的方法有匹配式,抽取式和生成式
1.匹配式:
给出文章,问题和答案集,从答案集中选出最高得分的答案,像选择题.
1)LSTM-reader(最简单的方法):把文档d和问题q合并建模后,喂到双向LSTM中,得到向量g
2)Attentive-reader:先使用LSTM对问题建模得到向量q,再对文档建模,然后用q对文档使用attention匹配得到向量r,结合q和r,相当于带着问题读文档.
3)Impatient-reader:同上,只不过是对每个token去计算attention,相当于先读每个字或者词,然后带着字或者词去读文档.
4)Gated-Attention Reader:相当于带着一个问题,反复读文档,读k遍。
2.抽取式:
顾名思义就是从文档中抽取出答案,前提是文档中包括问题答案.
这样的数据集有:斯坦福的SQuAD数据集,难度比较高的 TriviaQA数据集.
抽取式的一般框架是,Embedder+Encoder+Interaction-layer+Answer
Embedder:将输入embedding
Encoder:分别对问题和文档用LSTM建模(也可以用其他方法)
Interaction-layer:使用attention将问题和文档结合起来,对问题和文档进行交互,得到query-aware的文章表示
Answer:对上面得到的query-aware文章表示进行抽取答案,通常有两种方法:一是使用两个模型分别预测出答案的起始和终止位置.二是把当然当成label序列(序列标注),预测出label.
抽取式主要模型有:
1).Match-LSTM:比较基础的模型,
Machine Comprehension Using Match-LSTM and Answer Pointer
2).BiDAF:比较出名的模型
论文地址:Bidirectional Attention Flow for Machine Comprehension
3).R-Net:近似state-of-art的模型
论文地址:没找到--.
4).FastQAExt(轻量级),
FastQA: A Simple and Efficient Neural Architecture for Question Answering
5).GA-Reader,
论文地址:Gated-Attention Readers for Text Comprehension
6).QA-Net(使用CNN),
论文地址:QANET: COMBINING LOCAL CONVOLUTION WITH GLOBAL SELF-ATTENTION FOR READING COMPREHENSION
3.生成式:
目前只有MSRA的MS MARCO数据集
答案形式是这样的: | 1)答案完全在某篇原文. |
2)答案分别出现在多篇文章中.
3)答案一部分出现在原文,一部分出现在问题中.
4)答案的一部分出现在原文,另一部分是生成的新词.
5)答案完全不在原文出现(Yes / No 类型)
常见模型:
1).改进R-Net
2).S-Net,论文地址:S-NET: FROM ANSWER EXTRACTION TO ANSWER GENERATION FOR MACHINE READING COMPREHENSION
3).R3-Net:集文档检索与答案生成于一身的模型,论文地址:R 3 : Reinforced Ranker-Reader for Open-Domain Question Answering
- 端到端问答系统-开放领域问答系统:
端到端问答系统较为智能,其基于用户的问句中的每一个词依次生成答句,因此在答句中可能会有语法错误。另外,此种模型的训练较为复杂,这是因为在训练中需要学习各类复杂的句子结构。但是,一旦完成了训练,端到端问答系统在未登入(non-seen)的用户问句情境下能大幅超过大多数基于检索的问答系统,而且给用户以一种与真人交流的感受。
端到端模型最先在机器翻译方向得到应用,从此一发不可收拾,成为了机器翻译方向的首选方法,后续文章大部分基于此类模型进行优化与改造。由于问答系统的训练输入为问句-答句对,与机器翻译系统的平行语料训练输入格式极为相似,因此近年来在问答系统中也大量采用了端到端方法改进系统。