一、摘要
Watson中使用“支持证据检索”对每个候选答案进行并行的独立的查询,检索算法中综合了题干和文章中的多个要素和关系。
二、概述
完成了问题分析和候选生成之后,就该搜索生成的假设的支持证据了。在文章中只关注“内容评分组件”——支持证据检索(SER, Supporting Evidence Retrieval)。算法大致流程如下:
1. 内容关键词匹配(Passage Term Match)——只匹配问题和文章内容的关键词;
2. Skip-Bigram——成对匹配问题和文章中的关键词及关键词之间的关系;
3. 文本对齐——把题干中的题眼替换为候选答案,然后对齐题干与文章的内容;
4. 逻辑形式答案候选评分(LFACS,Logical Form Answer Candidate Scorer)——根据题干与内容在结构上的匹配程度评分。
三、支持证据检索
SER算法与候选生成中所讲的Indri内容检索算法类似,只是添加了候选答案字符串作为检索对象,最后排名最靠前的20条检索结果将会进行评分。
四、语法-语义图
Skip-Bigram和LFACS在评分时都需要问题和内容的结构特征,这时就需要语法-语义图——节点就是问题线索中的关键词,边就是关键词之间的语法或语义关系。语法部分直接取用自PAS,语义部分取自语义关系检测器(后面的博文中会讲到)。
(一)、基于语法-语义图的匹配
由于自然语言表达的多样性,同一个语义有可能以不同的方式来表达,甚至可能导致不同的匹配结果,所以,最好使用统一的语法。比如下面两句话:
“Who authored ‘The Good Earth’?”
“Pearl Buck, author of ‘The Good Earth’.”
在语法-语义图中会变成统一的格式,也就是“(who-authorOf-The Good Earth)”、“(Pearl Buck-authorOf-The Good Earth)”。这样在匹配的过程中,就可以很好地对齐两个表达的意思了。
(二)、语义关系匹配
像上面提到的,同一种语义可能表达方式不同,因此,在Watson中将使用深层语义分析和浅层语义分析来对同样的语义形成同样的分析树。一个重要的例子就是名词词组,名词词组既可以作为一个整体来作为名词,也可以是前面的名词修饰后面的名词,比如说“this Wyoming senator”就是名词修饰名词。
语义的多种表达的匹配都是基于模式匹配做的,包括了relateTo, intanceOf, subtypeOf, sameAs, coIndex, tLink和gpAssociation等关系。
五、内容关键词匹配
内容关键词匹配衡量的是候选答案作为问题关键词(term)出现在同一篇文章中的频率。这种匹配的缺点是解决问题过于粗糙,容易给两个符合问题线索的实体很高的分数,即使这种关系并不正确。题干中的关键词
t1...tn
会在问题中抽取出来,然后就可以计算得分
pi
作为逆文本频率指数(idf),归一化的公式如下:
其中,如果文章i中包括关键词 tj 则 wij=idf(tj) ,否则 wij=0 。 idf(t) 的计算公式如下:
其中, c(t) 是包括词 t 的文章的数目,
六、Skip-Bigram
Skip-Bigram衡量的是问题和文章的关键词对的匹配程度,对关键词对的要求是,两个关键词必须在语法-语义图中直接相连或是通过一个节点相连。Skip-Bigram首先由C.-Y. Lin, F. J. Och等人在ACL2004的文章《Automatic enaluation of machine translation quality using longest common subsequence and skip-bigram statistics》中提出,在Watson中做了改变,将资料来源从浅层文字变为语法-语义图。
假设
Psb
和
Qsb
分别是在文章和内容中抽取的Skip-Bigram,则可定义:
则Skip-Bigram评分的计算方式如下:
七、文本对齐
评分器的名称是“文本对齐候选评分”(Textual Alignment Candidate Scorer, TACS)评价的是候选答案域来源文章、题目的字面相似度。相比于内容关键词匹配,TACS的优势是对单词顺序敏感,这能够区别诸如“美国总统访法”、“法国总统访美”的句子。另外,TACS还能够评分部分匹配。
TACS的输入:问题字符串、文章内容字符串、题眼、评分过的候选集。
TACS的输出:相似度评估
TACS使用的相似度算法是氨基酸序列比较时常用的Waterman-Smith算法,其中题眼都以“FOCUS”代表,候选项以“CANDIDATE”代表。
TACS算法流程:
- 初始化
P
、
Q 、 score 三个序列,其中 P 、Q 是包括关键字的一维数组,而 score 是全为0的二维数组; 计算每一个得分 score[i][j] ,对于 i>0 和 j>0 ,使用如下公式计算:
max=⎛⎝⎜⎜⎜⎜score[i−1][j−1]+sim(P[i],Q[j]),score[i−1][j]+sim(P[i],∅),score[i][j−1]+sim(∅,Q[j]),0⎞⎠⎟⎟⎟⎟其中,相似度函数 sim(t1,t2) 的计算公式如下:
sim(t1,t2)=⎧⎩⎨⎪⎪⎪⎪⎪⎪idf(t1),−idf(t1),−idf(t2),−idf(t1),if t1=t2if t2=∅if t1=∅if otherwise
sim(FOCUS,CANDIDATE)=log(N)
这里的 idf(t) 见第五章的内容关键词匹配。
八、逻辑形式评分
逻辑形式答案候选评分器是为了对齐问题和文章内容各自产生的语法-语义图。还是得举个栗子,问题是“Who wrote The Hobbit?”,语法图会有三个节点(who, write, The Hobbit),以及两条边(
(write−subject−who)
和
(write−object−TheHobbit)
)。有一个候选项的内容是“Tolkien wrote The Hobbit.”此时LFACS就会对齐这两个图,然后确定who就是Tolkien。也许有人会有疑问,明明文本对齐也可以很好地解决上面的这个问题,何必呢。但是,如果候选内容是“The Hobbit is writen by Tolkien.”那么对齐的时候,自然是LFACS效果更好,毕竟代表了深一层的含义。
更重要的一个性质是,LFACS能够通过内容产生的语法-语义图的子图对齐问题产生的图,而给这个候选更高的评分。比如说,内容是“Tholkien, an English author born in the late nineteenth century, wrote The Hobbit.”,这时候,子图依旧很好地匹配问题的图,但是文本对齐就会导致信息丢失。
下面要讨论的问题是,LFACS如何给出评分。这个评分是匹配度(degree of match)和词条权重(term weight)的乘积,而匹配度又是词条匹配得分(term match score)和结构匹配得分(structural match score)的乘积。词条匹配得分好理解,就是一个模糊匹配,看问题中和文章中词条的相似度;结构匹配得分是指所有问题词条和题眼之间最长连通路径上的节点和边的匹配评分的乘积。(The structural match score is the maximum across all paths from the question term to the focus of the product of all term match scores and edge match scores for the term and edges on that path.)至于词条权重,Watson
中直接使用idf频分。LFACS对一篇文章内容的评分就是所有词条单独评分之和。
九、跨文章合并
对于如下三种评分策略:
- 最大值——候选答案的最终评分是所有支持文章评分中的最大值;
- 求和——候选答案的最终评分是所有支持文章评分之和;
- 衰减求和——最终得分为
∑mi=0(pi/2i)
,其中
p0...pm
是每篇支持文章的得分。
对于以上三种方法,LFACS最适用的是最大值方法,而Skip-Bigram最适用的是求和方法,内容关键词匹配和文本对齐则适用衰减求和方法。
但这种方法的缺陷是,只能解决多个文档描述问题的相同部分的冲突,而不能很好地融合每个文档描述问题的不同方面。