前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于段落检索的无监督阅读理解介绍

基于段落检索的无监督阅读理解介绍

作者头像
腾讯知文实验室
发布2018-08-13 22:53:09
1.6K0
发布2018-08-13 22:53:09
举报

| 导语  阅读理解是当前火热的自然语言处理应用方向之一,但在大多数业务场景下都缺少有效的标注数据,这种情况下常常需要借助传统的信息检索方法。本文总结了TREC-9和TREC-10上几个比较经典的基于段落检索的无监督文档型问答系统,并介绍了这类系统的主要框架。

背景

在自动对话机器人或是智能客服中,根据用户问题,从文档中寻找可能的答案是一种很常见的需求。当前有很多基于神经网络的阅读理解模型,但是这些模型都需要大量的标注数据进行训练。在很多业务场景下,却常常难以拿到数量足够的监督数据,有时候甚至没有监督数据。为了构建基于非结构化文档的问答系统,我们调研了使用传统信息检索方法构建的文档型问答系统,并阐述构建这样一个系统的基本要素。

基本框架

模型概览

文本检索测评TREC-9和TREC-10上出现了一系列基于段落检索的问答系统,根据几个比较经典的模型,这类问答系统的主要框架可以总结如下:

根据上图的基本框架,下文将从四个主要模块(问题分析段落划分答案选择答案重排)出发介绍构建基于段落检索的问答系统的常用方法。

一、问题分析

问题分析的目的是将用户的提问转化为适当的查询语句,一般会先去停词,得到初始查询,再对查询进行扩展。查询扩展常用的方法有:外部词典扩展、语料扩展。

  • 外部词典扩展(dictionary)

外部词典扩展依赖于近义词词典,根据近义词词典对扩展查询,比如查询中提到“服务器”,通过查词典可能会将“计算机”、“电脑”等意思相近的词添加到查询中。使用语义网络WordNet[1](中文的有HowNet[2])进行语义扩展也是一种常用的做法[3, 4]。语义网络会通过多个义原(sense)来定义一个概念,义原是最基本的、不易于再分割的意义的最小单位。比如,以下是WordNet查询computer的一个例子,可以看到computer对应了许多不同的义原(sense)。

  • 语料扩展(corpus)

通过外部词典进行扩展的问题是需要建立和维护一个近义词词典,代价较高。语料扩展的做法一般会先用初始查询在额外准备的一个比较大的语料上进行检索,将召回的前N个候选中去停词后频繁出现的词语(一般是名词)添加到当前查询后面(可以设定一个出现次数的阈值,添加大于该阈值的词)。也可以直接在需要检索的文档集中召回前N个候选并扩展语料,这样做的好处是不需要额外的语料,缺点是扩展的内容受限于查询文档的质量和数量。

用在语料扩展上一个常见的方法是LCA(Local Context Analysis,局部上下文分析)[5],这个方法为每个名词或名词词组(称之为概念)统计出现在它上下文中(一般是一个固定的窗口大小)的共现词。然后将共现词作为特征,计算不同概念之间的相似度(比如可以用Jaccard距离度量),相似度高的概念会被记录在相似词词典中,并用于查询扩展。举个例子,如果“教师”和“学生”的共现词分别是{“学校”,“教室”,“备课”},{“学校”,“教室”,“考试”},那么它们的Jaccard距离就是0.5,当然也可以用其他方式度量距离。LCA的思想是,出现在相同上下文中的词一般都有相似的含义。

*无论是基于词典还是基于语料的扩展,对于扩展得到的查询词,在与候选答案进行相似度计算时,常常会对它们的权重进行衰减,即乘上一个小于1的系数(可以理解为扩展得到的查询词的置信度),这个系数作为超参数一般由实验者经验性地设置。

  • 问题/答案类型预测(Answer Typer)

某些模型在查询扩展之外,可能还会进行答案类型预测,并在答案选择或者答案重排的阶段根据提问类型对候选进行一次过滤。答案类型预测是根据问题判断问题期望的答案类型是什么,比如,当用户提问“世界最高峰在哪里?”,问题期望的答案类型是LOCATION,那么在进行答案选择或者答案重排的时候,会将所有不是LOCATION的答案过滤掉。

在对答案和问题进行类型匹配时,需要对问题和答案同时进行分类。答案分类可以处理的比较简单,比如直接使用NER或者POS tag来表示答案中包含了什么类型的信息。而问题分类则稍微比较复杂,问题分类实际上是要识别问题所期望的答案是什么类型,不像答案分类那样可以通过命名实体识别直接得到类别标签,可以使用基于模板的方法进行规则匹配,或者在标注数据上训练一个有监督的分类器。

文献[3]采用了一种叫做LSP(Lexico-Semantic Patterns)对问题进行分类,首先对问题进行词性标注,然后根据预设的模板(一般是通过提问词和句式匹配)判断问题所期望的答案类型,比如问题“Who was President Cleveland’s wife?” 会与规则“(%who)(%be)(@person)->PERSON”匹配上,进而知道这个问题所期望的答案类型是PERSON,那么所有标签是PERSON的候选会被选出来。

IBM在TREC-9上使用的模型[11]也引入了答案类型预测,与[3]不同的是,该模型使用交叉熵模型进行分类。他们首先通过人工的方式标注了1900+1400条类别数据,并用这些数据来训练模型。但是在TREC-10的文章[6]中,他们指出自己的答案类别预测模型实际上会把较大一部分问题标记为未知类别,虽然他们在新的模型中对类别进行进一步的细分,但问题仍然存在。

问题/答案类型预测在缺乏充分的标注数据的情况下,需要人工构建规则或者数据集,比较繁琐,可以考虑作为模型构建完成之后的优化备选项。

二、段落划分

与传统的信息检索(Information Retrieval,IR)有所不同,段落检索(Passage Retrieval,PR)召回的不是整个文档,而是文档中的一个段落,PR要求返回比IR更加精确的答案。段落不一定是一个自然段,也可以是任意几个句子,甚至几个单词。

段落划分是段落检索不可缺少的一步,大部分模型都是使用大小固定或可变的窗口在文档中滑动,截取文本片段并计算与查询的相似度。窗口大小可变的方法实际上是预先定义好几种不同大小的窗口,然后用这些窗口在文档滑动截取内容,产生不同长度的片段,这个过程和图像处理中的物体检测有点相似。

文献[4]中采用了一种与传统的窗口滑动不太相同的做法,它把查询包含的词看作一个集合,获取查询集合的所有子集,并在文档集中查找包含某个子集全部词的最小片段(这样的片段称为对应子集的一个cover)。在找到所有的cover之后,会将cover的上下文(cover前N个词和cover后N个词)包括进来形成一个fragment作为候选段落,而cover则被当作段落的热点(hotspot)。在答案重排里会提到,查询词到热点之间的距离会影响候选答案的分数。

Marti A. Hearst[7, 8]提出了一种使用主题(topic)来划分段落的方法(TextTiling),这个方法已被集成进NLTK工具包中(nltk.tokenize.texttiling)。

三、答案选择

答案召回主要涉及计算段落与查询的相似度,计算相似度的方法有很多,但大体上可以分为两大类:基于词频的方法和基于语言模型的方法。

基于词频的方法大部分是在tf*idf方法基础上进行优化的,需要注意的是,在有些模型中,idf计算的不是逆文档频率,而是计算“逆段落频率”,因为现在检索的主体从文档变成了段落。

简单的语言模型检索方法认为,查询和对应的答案是通过同样的语言模型产生的,因此可以先为每个候选(文档或段落)统计一个语言模型,然后计算用户提问由各个语言模型产生的概率,概率最高的语言模型对应的候选就是正确答案。高阶语言模型的方法很容易遇到稀疏性问题,为了避免零概率,通常会使用回退和插值两种方法来实现平滑,[9]对各种平滑方法进行了实验性的研究,有兴趣可进一步阅读,这里就不详细展开了。

不同于普通的语言模型,文章[10]直接对问题和候选的相关性进行建模(称模型为R),并假设在给定文档集和用户查询的情况下,正确答案是通过分布P(w|R)进行随机采样生成的,在计算P(w|R)的时候,作者使用P(w|Q)进行近似:

其中,P(M)是文档的先验分布,一般采用均匀分布,而P(w|M)和P(q|M)对应文档的一阶语言模型。在得到P(w|R)之后,计算每个文档的语言模型与模型R的KL散度,

KL散度越小的文档与问题的相关性越高。

四、答案重排

答案选择与重排不是严格割裂的两个过程,有些模型会使用答案召回时的相似度直接对答案排序,一些模型则会对候选进行分类,之后根据候选的类别和问题的类别,对候选进行过滤。[6]还对候选和用户提问进行句法分析,在句法层面进行问题与答案的匹配。

而另外一些模型会采用和答案选择不同的策略来对答案排序。比如,在第三小节段落划分中提到文献[4]在进行段落划分的时候会为段落产生一个热点,在进行答案选择的时候会基于整个文档集的词频计算每个词出现的概率

,在得到词t的概率后,便可以计算这个此处现在每个cover中的概率(基于unigram的方法计算,假设所有的词出现概率条件独立):

那么这个cover包含查询词的某个子集T的概率就是:

采用自信息对片段进行评分,

而在排序的时候会根据候选片段中的词的词频和它到热点之间的距离计算另一个分数:

其中,

表示第i个段落中查询词到热点之间的距离,

另外,文献[3]则将在段落中频繁出现的查询词作为中心词,答案重排的时候会考虑中心词之间的平均距离与最大距离的比值,即中心词越紧凑的候选越有可能是答案。

一般来说,答案重排会根据特定任务和模型加入一些定制化的优化项,目的都是为了让相关性高的候选排名更加靠前。

模型示例

IR-n[12]构建了一个比较简单的PR模型,模型主要包括三个部分:索引模块(Indexing Module)、查询处理模块(Query Processing Module)和检索模块(Retrieval Module)。

索引模块对带检索的文档集构建词典。先对文档进行必要的预处理如标记句子边界、截取单词词根(中文处理不需要这一步,只需要进行分词)、去停词等,然后为每个词统计包含改词的文档数量、该词在不同文档中的出现次数和出现位置,并记录在索引词典中。索引用于协助检索模块的检索过程。

查询处理模块主要是对用户提问进行必要的处理(取词根与去停词)和扩展,由于IR-n支持多语言,它的查询处理模块还会使用商业翻译工具对用户提问进行翻译。查询扩展依赖于从WordNet抽取的同义词词典。

进行完以上两步处理后,由检索模块召回答案。IR-n用大小为20的固定窗口划分段落,需要注意的是,虽然大部分工作中窗口划分都是基于词进行的,这篇文章的窗口大小是对句子数而言的,如第1个到第20个句子为第一个段落、第2个到第21个句子为第二个段落,依此类推。首先根据索引词典找出至少包含一个查询词的文档,计算查询与这些文档中包含的段落之间的相似度:

其中,

分别是t在段落p和查询q中的词频。

为了在后续实验与基于文本的检索方法进行比较,在得到段落的相似度之后,还会根据段落相似度为每个文档计算一个文档得分,并对文档进行排序,最后按文档序将答案返回。如果只做段落检索,可直接返回相似度最高的段落,或者从得分最高的文档中选取相似度最高的段落。

参考文献

[1] https://wordnet.princeton.edu/ [2] http://www.keenage.com/html/c_index.html [3] Lee G G, Seo J, Lee S, et al. SiteQ: Engineering High Performance QA System Using Lexico-Semantic Pattern Matching and Shallow NLP[C]//TREC. 2001. [4] Clarke C L A, Cormack G V, Lynam T R, et al. Question answering by passage selection[M]//Advances in Open Domain Question Answering. Springer, Dordrecht, 2008: 259-283. [5] Xu J, Croft W B. Query expansion using local and global document analysis[C]//Proceedings of the 19th annual international ACM SIGIR conference on Research and development in information retrieval. ACM, 1996: 4-11. [6] Ittycheriah A, Franz M, Roukos S. IBM's statistical question answering system-TREC-10[C]//AUTHOR Voorhees, Ellen M., Ed.; Harman, Donna K., Ed. TITLE The Text REtrieval Conference (TREC-2001)(10th, Gaithersburg, Maryland, November 13-16, 2001). NIST Special. 2001, 500: 316. [7] Hearst M A. TextTiling: Segmenting text into multi-paragraph subtopic passages[J]. Computational linguistics, 1997, 23(1): 33-64. [8] Hearst M A. TextTiling: A quantitative approach to discourse segmentation[R]. Technical report, University of California, Berkeley, Sequoia, 1993. [9] Chen S F, Goodman J. An empirical study of smoothing techniques for language modeling[J]. Computer Speech & Language, 1999, 13(4): 359-394. [10] Liu X, Croft W B. Passage retrieval based on language models[C]//Proceedings of the eleventh international conference on Information and knowledge management. ACM, 2002: 375-382. [11] Ittycheriah A, Franz M, Zhu W J, et al. IBM's Statistical Question Answering System[C]//TREC. 2000. [12] Llopis F, Vicedo J L. IR-n: A passage retrieval system at CLEF-2001[C]//Workshop of the Cross-Language Evaluation Forum for European Languages. Springer, Berlin, Heidelberg, 2001: 244-252.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯知文 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 基本框架
    • 模型概览
      • 一、问题分析
        • 二、段落划分
          • 三、答案选择
            • 四、答案重排
            • 模型示例
            • 参考文献
            相关产品与服务
            NLP 服务
            NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档