Ch23 问答 和 摘要
问题 ( Question Answer ) 任务和摘要 ( Summarization ) 任务,都以生成特定的短语、语句或者短小段落为目标,以回答用户用自然语言所表达的信息需求为结果。
信息检索 ( Information Retrieval, IR ) 是返回与特定自然语言查询相关方法的任务。包括对各类媒体,包括:文本、图片、音频和视频等数据进行存储、分析和检索。本章重点是基于词的查询的文本文档存储和检索。
这些子任务背后的核心思想是:从文档或者类似于 Web 这样的文档集中直接抽取 ( extracting ) 满足用户信息需求的段落。
文本摘要 ( text summarization ) :是为了生成包含重要或者相关信息的删减版的文本。复杂问题的回答都是通过拼接来自较长文档的摘要片段得到。
信息检索
信息检索 ( Information Retrieval, IR ) 是对各种媒体存储和检索相关的任务。当今 IR 系统主要基于组合语义,即文档中的含义仅仅由它所包含的词的集合所决定,而忽略了句法信息,俗称为「词袋子」 ( bag of words ) 模型。
在信息检索领域的几个重要名词:
- 文档 ( document ) 泛指被系统索引以及提供给检索的文本单元。
- 文档集 ( collection ) 表示用于满足用户需要的一组文档。
- 检索词 ( term ) 表示文档集中出现的词汇项,也可以是短语
- 查询 ( query ) 表示由一组检索词表达的用户信息需求
- 特征型检索 ( ad hoc retrieval ) :特定信息检索任务,假定独立用户向检索系统发出一个查询请求,系统返回一个按可能有用性排序的文档集合。
向量空间模型
在信息检索的向量空间模型 ( vector space model ) 中,文档和查询都被表示为一个特征向量,其中特征表示在文档集中出现的词语
每个特征的值被称为词语权重 ( term weight ) ,通常是检索词在文档中出现频率以及其他因素的一个函数。
在基于向量的信息检索中,使用余弦相似度 ( cosine metric ) 来度量两篇文档之间的距离。
余弦值也可以看作为归一化的点积 ( normalized dot product ) ,即两个向量的点积 ( dot product ) 除以每个向量的长度。
把文档表示为词语向量的权重就可以把整个文档看成一个 ( 稀疏的 ) 权重矩阵,称为词语——文档矩阵 ( term-by-document matrix ) 。
词语权重计算
TF-IDF:将词频与倒排文档频率相结合构成的加权方案。偏好于在当前文档出现次数较多,而在整个文档集合中出现较少的词。出现在少数文档中的检索词拥有更高的权重。
- 词频 ( term frequency, TF ) :检索词在一个文档中出现的原始频率
- 如果一个词在文档里出现的次数越多,那么权重越高
- 倒排文档频率 ( Inverse Document Frequency, IDF ) 的检索词权重是一种给高判别性词赋予更高权重的方法。
- IDF 的定义为分数$\text{IDF}{i}=\log(\frac{N}{n{i}+1})$,其中 N 是集合中文档总数,$n_{i}$ 是词 $i$ 出现的文档数目。
- 将 TF 与 IDF 结合在一起的加权方案:$w_(i,j)=tf{( i,j )}\times idf(i)$
TF-IDF 加权余弦值:测量两个文档之间的距离
词语选择和建立
词干化 ( stemming ) 是对单词的屈折和形态变化做出的还原处理。采用词干化处理可以将特定的查询词与任何包含这个词形态的各种变体的文档相匹配。
停用词表 ( stop list ) :需要被排除的索引词表。一般是高频词的简单列表,将高频词排除在文档和查询表示之外的原因是:几乎不具有语义权重。
信息检索系统的评测
性能评价的两个基本工具:正确率 ( precision ) 和召回率 ( recall ) 。
- 正确率=返回的相关文档/所有的返回文档,是指返回的文档中,相关文档所占的比率
- 召回率=返回的相关文档/所有的相关文档,是指相关的文档中,返回文档所占的比率
返回的文档分成两个部分:相关文档 ( 与检索目的有关的文档 ) 和无关文档。
性能评价的两个方法:
- 基于绘制正确率/召回率曲线的方法,比较两个系统或者方法的曲线来评价性能
- 利用插值正确率方法
- 提供了在一系列查询之上计算平均性能的方法
- 提供了一种平滑原始数据中的不规则的正确率的合理方法
- 利用插值正确率方法
- 基于平均正确率 ( Mean Average Precision, MAP ) 的方法:比较两个系统或者方法的平均正确率来评价性能
- 优点:提供了一个单独的清晰的指标,容易偏好相关文档排在较前的系统,即返回较少并且高正确率的文档
- 缺点:忽略了系统的高召回率和对返回结果的全面性考虑为代价
同形关系、多义关系和同义关系
同形关系和多义关系可能导致系统返回与用户需求无关的文档,从而造成准确率的降低。
同义关系和上下位关系可能导致系统错误与用户需求相关的文档,从而造成召回率的降低。
改进用户查询的方法
改善向量空间模型中信息检索系统性能的方法:
- 相关反馈 ( relevance feedback ) :用户向系统提交一个查询条件,系统返回给用户少量的检索结果文档,然后要求用户指出满足其需求的文档,系统则根据用户指定的相关文档和不相关文档中的检索词分布,重组用户的原始查询条件,重组后的查询条件作为一个新的查询条件提交给系统并给用户返回新的检索结果
- 对采用相关反馈的系统进行评测,建立使用剩余文档集来计算正确率和召回率。
- 剩余文档集 ( residual collection ) :是去除原始文档集中任何一轮提交给用户判断的文档后剩余的文档集合。
- 查询扩展 ( query expansion ) :用户的原始查询条件用原始检索词的同义词或者一些与原始检索词相关的检索词进行扩展
- 以提高召回率,特征正确率来改善系统性能
- 添加到查询的词都是从类属词典 ( thesaurus ) 中找出来的。
- 类属词典生成方法,根据集合中的文档自动生成类属词典
- 对集合中的词聚类来构建词典,称为词语聚类 ( term clustering ) 。
事实性问答
问答 ( question answering ) :使用一段特定信息来回答用户问题的任务。
事实性问答:使用命名实体来回答用户的问题
事实性问答系统是从网络或者其他文档集合中通过查找可能包含答案的较短的文本片段,并对其进行重构来最终呈现用户的任务
问题系统的二个步骤:
- 使用信息检索的方法来检索较少数量的可能文档
- 使用代价较高的技术 ( 句法分析、角色标注等 ) 在相关文档上进行排序
现代事实性问答系统的三个阶段:
- 问题处理
- 段落检索和排名
- 答案处理
问题处理
问题处理阶段从问题中抽取出的两项内容:
- 符合 IR 系统输入要求的关键词查询,即查询构建
- 创建一个关键词列表,构造一个 IR 查询
- 构成该问题合理答案的实体类别,即问题分类 ( question classification ) 或者答案类型识别 ( answer type recognition ) 。
- 根据问题所期望的答案类型 ( answer type ) 对其分类
- 可以使用半自动方式动态构建一个答案类型分类体系 ( answer type taxonomy ) 或者问题本体 ( question ontology ) 。
- 问题分类器
- 手工编写的规则来实现
- 通过机器学习来实现
- 手工编写和机器学习融合来实现
- 问题分类器的特征
- 问题中的特定词:能为答案类型提供额外的信息,也叫中心词 ( head-word ) 或者核心词或者答案类型词 ( answer type word )
- 问题中词的语义信息
- 问题中词的同义词、上位词、下位词
段落检索
文档检索阶段将返回一个文档集,这个文档集将提交给信息检索系统,或者是私有索引文档集上的 IR 引擎,或者是私有索引文档集上的网络搜索引擎。这个文档集一般是按照相关性排序,但是排名最高的文档可能并非需要的答案,因此可以从文档集中提取一系列可能的答案段落,然后进行段落检索从而过滤掉不需要的文档,并对剩下的文档进行排序。
段落 ( passage ) :一般是包含了节、段落和句子的文档,具体由系统决定。
段落检索 ( passage retrieval ) :过滤返回文档中不包含潜在答案的段落,然后对剩下的段落根据包含答案的可能性进行排序
段落检索使用的特征集:
- 段落中该类型的命名实体的个数
- 段落中问题关键词的个数
- 段落中与问题精确匹配的最长的关键词串
- 提取该段落的源文档的排名
- 原始查询中关键词之间的距离 ( proximity )
- 对每个段落,确定其中能够包含该段落中所含关键词的最短文本跨度。
- 系统更加偏好在更短的跨度中包含更多的关键词
- 段落和问题之间的 N-gram 重叠 ( N-gram overlap )
- 答案段落中的 N-gram 和问题中的 N-gram 的重叠度越高,段落的权重就越高
答案处理
答案抽取任务:从段落中抽取特定的答案提供给用户。
常用的答案抽取算法
- 基于答案类型模型的抽取算法:使用期望的答案类型和正则表达式模板
- 基于特定问题类型的答案模板,既可以手工编写,也可以自动学习。
- 用于答案排序的自动学习的分类器使用的特征
- 答案类型匹配:如果候选答案包含一个短语,其符合正确答案的类型,则为真
- 模板匹配:匹配候选答案的模板编号
- 与问题关键词匹配的数量:候选答案中包含多少个问题关键词
- 关键词距离:候选答案与查询关键词之间的距离 ( 用平均词汇数或者候选答案中出现在同一个语法片段的关键词数量来表示 )
- 新颖性因子:如果候选答案中至少有一个单词是新的,即未出现在查询中,则为真
- 同位特征:如果候选答案是一个包含很多问题检索词的短语的同位语,则为真
- 标点位置:如果候选答案后面紧跟一个逗号、句号、引号、分号或者感叹号,则为真
- 问题检索词的序列:候选答案中出现的最长的问题检索词的序列长度
- 评测答案模板精度的方法
- 用户问答模板匹配的方法是保留具有高正确率的模板
- 基于 N-gram 的拼接算法 ( N-gram tiling ) ,也称为基于冗余的方法 ( redundancy-based approach ) ,从搜索引擎返回的重构查询结构摘要开始。
- N-gram 挖掘 ( N-gram mining ) :抽取摘要中出现的所有 unigram、bigram、trigram,并且赋予权重。
- 权重是包含该 N-gram 的摘要的数量,以及返回该 N-gram 的查询重构模板权重的函数
- N-gram 过滤 ( N-gram filtering ) :根据 N-gram 与预测的答案类型的匹配度,对 N-gram 打分。这些分数由为每个答案类型编写的过滤器计算。
- N-gram 拼接算法把重叠的 N-gram 片段连接成更长的答案
- 贪心算法从得分最高的候选答案开始,试图将该答案与其他候选答案拼接,移除得分低的答案,直到剩下唯一的答案。
- N-gram 挖掘 ( N-gram mining ) :抽取摘要中出现的所有 unigram、bigram、trigram,并且赋予权重。
事实性答案的评价
TREC 使用的主要度量:
- 平均逆排名 ( Mean Reciprocal Rank, MRR ) :是一个内在的 ( intrinsic ) 评价指标,也叫体外的 ( in vitro ) 的评价指标。
- MRR 假设有一个已经标注好正确答案的测试问题集
- MRR 假设系统返回了排序后的答案列表或者包含答案的段落列表
- MRR 把每个问题的首个正确答案所处的排序号取倒数,作为该问题的得分。
摘要
文本摘要 ( text summarization ) 是从文本中提炼最重要的信息,并且根据特定和用户生成一个缩略版本的过程。
- 文档的大纲
- 科技文献的摘要
- 新闻报道的新闻提要
- 搜索引擎对结果网页的摘录
- 商务会议的实施条目或者其他摘要
- 电子邮件往来的摘要
- 压缩语句以生成简单的或者压缩的文本
- 通过摘录多篇文档生成复杂问题的答案
文本摘要的分类
- 单个文档摘要 和 多个文档摘要
- 单文档摘要 ( single-document summarization ) 对单个文档生成摘要,用于生成新闻提要或者大纲,最终目的都是为了描述单个文档的内容
- 多文档摘要 ( multiple-document summarization ) 对一组文档生成摘要,目的是为了浓缩整个文档集的内容
- 一般性摘要 和 针对查询的摘要
- 一般性摘要 ( generic summary ) 是一种不需要考虑特定用户或者特定信息需求的摘要,只需要给出文档的重要信息即可。
- 针对查询的摘要 ( query-focused summarization ) ,也称为主题摘要 ( focused summarization ) 、基于主题的摘要 ( topic-based summarization ) 以及针对用户的摘要 ( user-focused summarization ) 。这种摘要是为了满足特定的用户查询才生成的,是一种回答用户问题的较长的非事实性答案。
文本摘要系统的关键的架构维度:
- 摘要 ( abstract ) :需要使用别的词汇来描述文档的内容。
- 摘抄 ( extract ) :最简单的摘要,从待摘要的文档中挑出短语或者句子,然后将它们连接起来。大多数文本摘要系统都是基于摘抄的,因为实现更加容易。
文本摘要系统,也叫自然语言生成系统,针对的三个问题:
- 内容选择 ( content selection ) :要从待摘要的文档中选择信息。
- 假设需要摘抄的粒度为句子或者从句
- 信息排序 ( information ordering ) :对摘抄出来的单位进行排序,并且安排合理的结构
- 句子实现 ( sentence realization ) :对摘抄出来的单位进行清理,使其在新的上下文中显得流利
单文档摘要
单文档摘要是以句子为摘抄单位,执行下面三个步骤:
- 内容选择:选择要从文档中摘抄的句子
- 摘抄句子的内容选择可以看作分类任务,分类器的目标是为文档中的每个句子进行二元标注
- 重要 ( 摘抄 )
- 不重要 ( 不摘抄 )
- 摘抄句子的内容选择可以看作分类任务,分类器的目标是为文档中的每个句子进行二元标注
- 信息排序:安排一个顺序,将这些句子安放在摘要的合适的位置
- 句子实现:清理句子,移除非必需的短语,基于连贯性原则将多个句子合并。
无监督的内容选择
选择包含了更显著的 ( salient ) 或者更多信息的 ( informative ) 词的句子,是依赖于表层特征 ( 例如:词的显著性 ) 的无监督算法。
显著性基于主题特征 ( topic signature ) 计算,即显著词 ( salient term ) 或者特征词 ( signature term ) 的集合,其中每个词的显著性得分必须大于某个阈值。
- TF-IDF
- 对数似然比 ( log-likelihood ratio, LLR )
基于中心的摘要 ( centroid-based summarization ) 算法族:可以把特征词的集合看成一个伪句子,这个集合是文档中所有句子的「中心」,查询就是找到最接近于中心句的句子。
- 基于 LLR 算法
- 基于句子所承载信息的核心程度对句子排序
- 基于图的中心度量
基于修辞分析的无监督摘要
使用篇章信息 ( 例如:连贯关系 ) 的无监督算法。
基于篇章分析器 ( Ref: Ch21 ) 计算每个篇章单元之间的连贯关系。将句子分析为连贯关系或者分析树时,就可以基于核心单元对于摘要递归地抽取文本中的卫星单元
连贯分析树上每个结点的显著单元的递归定义:
- 基础情况:叶子结点的显著单元是该叶子结点本身
- 递归情况:中间结点的显著单元是直接核心的子结点的显著单元的联合
有监督的内容选择
给所有线索赋予权重并结合在一起的方法是有监督的机器学习方法。需要由人工创建对应的摘抄型摘要的文档集作为训练语料,将每个训练文档与其摘要对齐,找出文档中包含在摘要中的句子。
对齐 ( alignment ) 算法是找出源文档和摘要语句之间非信用词的最长公共子序列,或者计算最小编辑距离,或者使用更加复杂的短语源。
句子简化
句子实现 ( sentence realization ) 主要通过句子压缩 ( sentencce
compression ) 或者句子简化 ( sentence
simplification ) 。首先进行句法分析或者部分句法分析,通过一些代表性规则剪除或者保留某些句子。更加复杂的句子压缩模型基于有监督的机器学习方法,其中文档和人工摘要的平等语料被用来计算特定词汇或者短语结点被剪除的概率。
多文档摘要
多文档摘要适合基于网络的应用。
多文档摘要的内容选择
多文档摘要因为训练数据太少,所以主要关注于无监督算法。
多文档摘要与单文档摘要的最大区别是文档中存在大量的冗余。在一个文档集合中,除了每篇文档所表达的特定信息之外,各文档在词汇、短语和概念上都会存在明显的重叠。因此多文档摘要算法的关键是选择摘要句子时剔除冗余。
多文档摘要的信息排序
信息的排序或者结构化:
- 时间顺序 ( chronological ordering ) 策略:使用该报道相关的日期的排序技术
- 连贯性 ( coherence ) 策略
- 让句子之间存在合理的连贯关系
- 内聚性和词汇链的关系
- 一个连贯的篇章,其中的实体提及必须相互协调,即共指。
基于共指的连贯性算法:也使用了基于中心 ( Centering ) 的思想。每个简单片段都有一个显著的实体,即焦点。焦点的句法特定实现以及实现之间的特定转移,可以创建更加连贯的对话。实体识别的结构序列可以自动抽取并且表示为一个实体网格。
根据句子或者句子序列之间的局部连贯性得分,为每个语句序列指派一个连贯性得分。然后句子之间的转移得分可以与词汇连贯性和基于实体的连贯性结合起来。句子排序的难度等同于 NP 完全问题。
信息排序任务是完全独立于内容选择的。
信息排序任务和内容选择任务合并在一起进行学习,得到一个对语句进行选择并且排序的模型。
多文档摘要的句子实现
对输出进行共指消解,抽取名称,并且运用下面的清理重写规则:
第一次提及时使用全名,之后的提及中使用姓;
第一次提及的某个修订的形式,之后的提及中移除同位语或者修饰语
句子合并算法连接不同句子中的短语,从而实现比摘抄语句粒度更小的实现
主题摘要和问答
针对查询的摘要,也叫主题摘要、基于主题的摘要、针对用户的摘要,是响应用户问题或者信息需求的一种较长的、非事实的答案。
一种针对查询的摘要就是摘录 ( snippet ) ,即单个文档针对查询的摘要。
通过对多文档摘要技术简单修改就可以实现针对查询的摘要。
使用自顶向下的或者信息抽取的技术可以实现针对查询的摘要。
基于信息抽取的复杂问答系统:
信息检索
用分类器为每个句子打卡一个适合该领域的类别标签
通用的、多文档摘要的内容选择的音节,把还未落入特定信息抽取类别中的句子添加到答案里
摘要的评价
内在摘要评价进一种自动的方法,称为面向召回率的要点评估 ( Recall-Oriented
Understudy for Gisting
Evaluation, ROUGE ) 。根据机器生成的候选摘要和人工摘要的 N-gram 重叠数目,自动地为候选摘要评分。
侧重于摘要的含义的评价方法:金字塔方法 ( Pyramid
Method ) ,主要统计候选摘要和参考摘要共享了多少个意义单位。可以根据重要性为每个含义单位赋权;某个含义单位出现在越多的人工摘要中,那么这个含义单位的权重也就越高。
意义单位,也称为摘要内容单位 ( Summary Content
Units, SCU ) ,是一种子句结构的语义单位,对应命题或者连贯的命题片段。人们为每个参考摘要和候选摘要里的摘要内容单位进行标注,然后计算重叠的数量。
评价摘要的标准基准系统是随机句子和首句基准系统。当评价长度为 N 个句子的摘要,系统就随机选择 N 个句子,然后首名基准系统选择前 N 个句子。
小结
主导信息检索系统把文档和查询表示为词袋子
向量空间模型把文档和看成多维空间的向量
- 文档与查询或者其他文档的相似度使用两个向量的夹角余弦度来表示
事实性问答系统的主要部分
问题分类模型,用来决定答案的命名实体类型
段落检索模型,用来识别相关段落
答案处理模块,用来抽取和格式化最终答案
事实性问题可以使用平均逆排序 ( MRR ) 来评价
摘要可以是摘要式的或者摘抄式的,大多数算法都是摘抄式的
摘要算法是三个组件
内容选择
信息排序
句子实现
单文档摘要算法主要关注句子的摘抄,依赖于所选择的特征
- 句子在简单中的位置、词汇的信息量、提示短语、句子长度
多文档摘要
多文档摘要算法在文档的句子上执行句子简化
防止冗余性对于多文档摘要非常重要,实现方法是在句子摘抄时添加冗余性惩罚项
多文档摘要的信息排序算法是保持整体的连贯性
针对查询的摘要的算法
在一般摘要的算法基础上稍作修改
使用信息抽取的方法