信息检索和基于阅读理解的智能问答
基于信息检索的问答
在机器人智能问答中,基于信息检索的问答(Information Retrieval Question Answering,IRQA)是指给定整理好的问答对(QA对),通过理解用户的问题,从问答对中找到与用户问题语义上等价或相近的一个问答对,并将问答对中的A作为用户问题的答案返回。问答对通常为某一个领域经常被询问的高频问题(FAQ),所以IRQA通常用来解决该领域常见问题的回答。
IRQA分成在线部分和离线部分,分别由四个阶段组成:离线索引构建、粗排序、精排序后处理与答案返回。IRQA在线部分的第一阶段使用搜索引擎做粗排序,第二阶段用细粒度特征对粗排序得到的候选文档进行精排序,最后判断精排Top-1的回答是否采纳。在离线阶段,需要将整理好的问答对进行存储并构建倒排索引,方便后续检索。在粗排序阶段通常采用简单的基于关键字、布尔表达式等模型,根据用户的问答对进行检索与筛选,这一步主要是为了尽可能从大量问答对中快速地召回与用户问题相关的问答对。如果略过粗排直接进行精排,会大大增加系统的时延。
在精排序阶段,有两种方法:一种方法基于深度学习,但它的问题主要在于对数据的要求比较高,不适合冷启动的场景可解释性和可干预性也比较差。另一种方法是从可解释的角度做特征工程,可解释的特征包括领域词、领域词上下位关系,还有对应的句式内容。通过挖掘领域词和句式,结合人工标注的方式,来构建细粒度的特征抽取器。这些特征可以同时用于精排和筛查步骤。筛查步骤更注重验证精排选出的问题与用户问题的语义一致性,最终根据精排结果Top-1的答案对与用户问题的语义匹配度是否满足特定条件,来决定是否返回该问答对的答案或返回“无法回答”。
基于阅读理解的问答
基于阅读理解的问答(Machine Reading Comprehension Question Answering,MRCQA)是指给定文档库,通过理解用户的问题,从文档中找到能够回答用户问题的满足需求的细粒度的片段(如段落、句子)的过程。这里进行MRCQA处理的前提是答案在文本中可以明确找到,且最好是一个连续的片段。不同于IRQA,MRCQA检索的是文档中的片段而不是问答对。相较于问答对,文档通常具有篇幅更大、语义更复杂等特点。问答对通常是由人工整理的高频问题,而文档通常为普通的文本文件,其具有更低的获取成本,因此,基于阅读理解的问答系统通常用来解决能从大量无结构化文本中寻找到答案的问题。
基于阅读理解的问答系统通常有以下步骤:文档库的结构化与存储、片段检索、排序、回复生成。其中,文档库结构化与存储旨在将无结构化的文本文档进行结构化并存储,方便后续检索与使用;片段检索则是根据用户的问题从片段候选集中召回相关的片段;排序则为根据被召回的片段与用户问题的语义相似度进行打分并排序,最终得到回复。
MRCQA同样分为在线和离线两个阶段。MRCQA的在线部分前期有很多步骤与IRQA一样,只是具体匹配到的内容存在差别,即先使用搜索引擎做粗排,再对粗排得到的候选文档进行精排,生成候选段落。MRCQA和IRQA的区别主要在于MRCQA是用阅读理解模型生成答案片段。MRCQA的离线部分主要包括采用人工标注的方式将高质量文本转化成MRC训练数据,以及训练MRC模型。此外,还包括对段落进行索引等步骤。MRC模型由表示层、交互层、输出层三部分组成,复杂、精细化模型(诸如,BiDAF、R-Net模型等)是通过表示层、输出层来实现。