提 纲
1 、问答系统介绍2 、问答系统的研究情况3 、目前研究的热点问题
问答系统介绍( 1 ) 自动问答技术( Question Answering , QA )是综
合运用了自然语言处理、信息检索、语义分析、人工智能等技术的一种新型的信息服务技术 。与传统的搜索引擎不同,自动问答系统以自然语言句子提问, 系统分析并理解用户的问题,返回用户想要的答案。
例如 : 问题“ Which city is the capital of China?”( 中国的首都是哪个城市 ?) ,问答系统将会给出直接的答案“ Beijing” (北京)。问答系统比传统的搜索引擎更加直接、高效和准确。
问答系统介绍( 2 ) 传统搜索 => 问答式搜索
关键字查询 => 自然语言问题 问答搜索:处理更复杂的信息需求
文档级响应 => 精确答案相应 文档相关度要求:与查询相关度低 答案:要求精确和高度相关
数据源:网页数据库、 FAQ 库、百科全书库、知识库等。
问答系统介绍( 3 ) 研究现状
自动问答系统 START ( MIT ) AskMSR (微软) Lexxe AnswerBus ASK.com
TREC 自动问答系统评测
社区问答系统
Ask.com (http://www.ask.com) 是目前最成功的问答式检索系统,已经投入了商业运营,成为美国第四大搜索引擎。 Ask.com 允许用户用自然语言表述的问题作为查询进行提交 , 系统在理解用户意图的基础上可以返回较为准确的信息。
例如:“ Who is the richest man in the world?” 响应:“ Bill Gates was named the world's riche
st person by Forbes Magazine in 2009, with a net worth of $40 billion dollars.”
问答系统介绍( 4 ) -- 自动问答系统 问题分析模块 文档或段落检索模
块 答案获取和排序模
块
问题分类
关键字提取
语法语义分析
问题 查询 文档检索
段落或句子检索
问题分析模块 检索模块
答案获取和排序模块 答案(实体或句子)
相关性句子排序
答案实体抽取
返回最佳答案 Text
Corpora
QA
SYSTEM
“Who is the CEO of Microsoft?
Corporation?”
问答系统介绍( 4 ) -- 社区问答系统 百度知道、 yahoo A
nswer 、新浪爱问 、天涯问答等。
通过互动问答的形式,提供用户之间的知识共享和交互服务。
问答系统研究内容 自动问答系统
问题分析(分类、模板匹配、语义分析) 段落检索 (段落抽取、排序) 答案抽取 (实体识别、模板匹配、排序)
社区问答系统 问题分类、问题推荐 专家发现、信誉评估 知识抽取
自动问答系统( 1 ) - 问题分析 用自然语言分析技术和语义分析技术,获取问句
包含的重要信息,从而让系统更好地理解用户的问题。
问题分类、获取问题的关键字信息 、获取问句的语法和语义信息
问题分类 把问题按照不同的
语义主题进行分类。 目的:为了理解问
句的问题目标,作为答案查找的必要的约束关系,对不同类型的问题采取不同的处理策略。
表格 1.1 粗略的问题分类和细分的问题分类
Coarse Fine gained categories
ABBR abbreviation, expansion
DESC definition, description, manner, reason
ENTY
animal, body, color, creation, currency, disease/medical,
event, food, instrument, language,letter, other, plant, product,
religion, sport, substance,symbol, technique, term, vehicle, word
HUM description, group, individual, title
LOC city, country, mountain, other, state
NUM code, count, date, distance, money, order, other,percent,
问题分类DESC:manner How did serfdom develop in and then leave Russia ?
ENTY:cremat What films featured the character Popeye Doyle ?
DESC:manner How can I find a list of celebrities ' real names ?
ENTY:animal What fowl grabs the spotlight after the Chinese Year of the Monkey ?
ABBR:exp What is the full form of .com ?
HUM:ind What contemptible scoundrel stole the cork from my lunch ?
HUM:gr What team did baseball 's St. Louis Browns become ?
HUM:title What is the oldest profession ?
问题分类的方法 1. 正则表达式模型( Regular Expression Mode
l ):利用句子的模式来判断问题的语义类型,句子的模式包括疑问词、字词序列和一些与问题类型相关的描述性的词语。例如,以“ How long”开头的问题往往是询问与距离或长度相关的 NUMBER (数字),以“ When” 开头的问题则问的是某个 TIME (时间)。以“ What” 提问的问题,其语义类型则往往要根据其他的词语来决定,例如,“ What country” 问题的类型是 LOCATION(地点) , “What time” 问题的类型则是 TIME(时间)。
基于机器学习的自动分类 。例如:训练支持向量机分类模型 SVM 。
基于语言模型的分类。
语言模型是针对某种语言建立的概率模型,描述了语言的字词和词序列的分布规律,已经被广泛应用于语音识别、自然语言处理、机器翻译等领域。
语言模型最主要是用来估计字词序列的概率,其最关键的问题是:给定前面 i -1 个词,如何估计第 i 个词的出现概率。
应用链式法则,一个字符串 w1w2…wn 的概率可以定义为:
其中 S 是给定的语言模型。如何估计是语言模型估计的关键,完全考虑所有的历史 w1 、 w2 、…、wi-1 的计算复杂度过高,也是不现实的。
1 2 1 1 12
( ... ) ( ) ( | , ... )n
n i ii
P w w w P w P w S w w
利用马尔科夫假设,只考虑有限的历史,假设第 i个单词 wi仅依赖于前 n 个单词,即
n-gram 马尔科夫模型。 n = 1时,是一元马尔科夫模型( Unigram model ),一元模型下的字词之间是关系是独立的,因此得到的是每个字词的独立出现概率; n = 2时,是二元马尔科夫模型( Bigram model )。
1 2 1 1 1( | , , ,..., ) ( | , ,..., )i i i i n i n iP w S w w w P w w w w
语言模型的估计一般用极大似然估计方法( Maximum Likelihood Estimate ),即
1 1
1 1
( ... , )( )
( ... )i n i n i i
i MLi n i n i
C w w w wP w
C w w w
一元语言模型:假设所有的词独立。
问题 Q : w1w2…wn, P(w|C) 表示类型为 C 的主题语言模型中 w 出现的概率。 P(Q|C) 表示问题 Q由类型 C 的语言模型产生的概率。
二元语言模型:假设每个词与前一个词有关。
问题分析( conf.)
获取问题的关键字信息 英文问句:自动完成了分词, 去掉停用词( Stopword ) 和文本分块( Chunking ) 中文问句:关键是分词技术。 命名实体识别。 关键词扩展。
SPM
Question target,
Keywords,Constraints
POS Tagger NER
Pattern Base
Question
获取问句的语法和语义信息 语法信息主要是指关键字的语法角色、问句的语法树
和字词之间的依赖关系等。 一般借助于自然语言的分析工具,例如斯坦福大学的
语法解析器 Standford Parser 和语法依赖关系解析工具Minipar 或者利用人工设计的语义模板。
语义角色标注和框架语义( FrameNet )等技术。
问题“ When did John go to the hospital ?” 和问题“ Where
did John go to the hospital ?” 的语法树
FrameNet框架语义
语义角色识别 (1) [ARG1 Who] did [ARG0 Tom] [TARGE
T kill]? (2) [ARG0 R.Kelly] [TARGET was killed] b
y [ARG0 Tom]. (3) [ARG1 Tom] [TARGET was killed] by
[ARG0 Jim].
自动问答系统( 2 ) -- 检索模块 文档检索模块:文档检索的功能是利用问题分析生成的初始查询,从文档库中检索出相关的文档。
检索工具: Lucene 、 OKAPI 、 Lemur 等。 算法:基于 TF*IDF 的向量空间模型、语言模型。
段落或句子检索模块:在文档检索结果的基础上的二次检索,目的是从文档中抽取出可能包含了问题答案的文档片段。
段落或句子检索
<Q> what is the longest river in China? </Q>
<P>The Yellow River, with a total length of 5464
kilometers, is the second longest river in China, just
next to the Yangtze River. </P>
<Q> who is the first president of United State?
<P>The 43rd and current President of the United States
is George W. Bush</P>
生成查询 “What is the longest river in
China?”
=> “longest river, china”
去停用词 (Stop-Words): “the” ,“ a” ,“ in” 。
词语替换
检索算法 Multitext 基于词频,倾向于选择长度较短的,包括具有较高 idf 值 的段落。
IBM 计算不同类型的词的 idf 值 然后对这些值作线性结合
IR-n 把查询和文档分别表示成关于关键字词频的向量,然后计算两个向量的点积。
SiteQ 根据词性对不同的词赋予不同的权值,然后累加各个词的权值 。
Liu et al. 利用统计语言模型和相关性模型来检索文档或段落。
Jiang et al. 基于隐马尔可夫模型的检索算法, 自动检测出最一致性的相关的段落的边界,从而抽取出最相关一致的段落。
Cui et al. 模糊关系匹配方法,通过匹配问题与段落包含的关键字之间的依赖关系,来计算的相关性
Gaizauskas 等人( 2003 )和 Usunier 等人( 2004 )提出一种两阶段的段落排序算法,首先利用 IR 引擎检索返回 N 个初始的段落,其中 N 是一个较大的数目,并利用相关性排序算法对它们排序;然后选择排在最前面的 n( n < N )个段落,并利用排序算法对这 n 个段落进行重新排序。
Usunier 等人( 2004 )利用机器学习的排序算法来解决这个问题。对于给定的问题 qi 以及其对应的一个段落列表P ={ (pi,j, wi,j)} ,其中 pi,j 表示问题 qi 的第 j 个段落, wi,
j 表示 pi,j 关于 qi 相关度得分,这些相关度得分与问题的不同特征有关;然后把( qi , P )作为输入特征来训练机器学习排序算法。
Gaizauskas R et al.2003.The university of sheffield‘s trec 2003 Q&A experiments[C]. TREC 2003 。
Usunier et al. Boosting weak ranking functions to enhance passage retrieval for Question Answering
Freund 等人提出了 RankBoostk 算法用来对一个对象集合排序,并被广泛运用到协同过滤和 Web 搜索。
RankBoost 结合多种基本的排序函数,利用每个基本排序函数的排序结果,并在这些结果的基础上学习一个最佳的排序函数。
RankBoost算法利用对每个基本排序函数的排序评估标准用基于排序的错误率准则来对排序结果打分。对于排序算法 ht ,如果其排序得分小于某个特定的阈值,则其权重参数小于零,反之则大于零。 Rankboost线性地结合各种基本排序算法的结果,最终的总排序得分是:
Freund Y et al.2003. An efficient boosting algorithm for combining preferences[J]. Journal of Machine Learning Research, 4:933–969, 2003
t tt
H h
Multitext 算法( 1 ) 把段落或句子看作是一个有序的字词序列: d = t1
t2 t3...tn ,查询则是一个关键字集合: q = {t1 t2 t3
…tm } 。文档的相关性分数基于文档或段落的长度和查询关键字的权重,查询关键字 t 的 IDF权重为:
其中 ft 是关键字 t 在文档集合里出现的次数, N是所有文档的长度的和。
Clarke et al. 2000. Question Answering By Passage Selection (MultiText Experime
nts for TREC-9). Proceedings of the 9th Text REtrieval Conference, 282-289.
log( / )t tw N f
Multitext 算法( 2 ) 关键字集合 T ( )的权重是 T 中包含的
关键字的权重的和 : 段落 P 的得分用如下公式计算:
其中, 是共同出现在段落 P 和查询 q中的关键字集合, pl 是段落的长度。
T q
( ) tt T
W T w
( ) ( ) | | log( 1)Score p W T T pl
T p q
Multitext 算法( 3 )
对于段落 p1 和 p2 , 当 并且 p1 和 p2长度相等时, Score ( p1 ) > Score (p2) 。 当 并且 p1长度大于 p2长度时, Score ( p1 ) < Score (p2) 。 MultiText 的检索方法认为,包含了较多的关键字
并且具有较短长度的段落具有较大的相关性。
1 1T p q 2 2T p q
1 2| | | |T T
1 2| | | |T T
IR-n算法 ( 1 ) 把查询和段落都表示成向量,为每个关键字计算
TF-IDF权重,然后计算向量的相似度。
, ,( , ) ( * )p t q tt qS p q W W
, ,log( 1)p t p tW f , ,log( 1)* ( )q t q tW f idf t
( ) log( / 1)tidf t N f
IR-n算法( 2 ) IR-n算法比较简单,只考虑查询和段落之
间共有的关键字,并且关键字在段落和查询中的权重的定义是不一样的,而且不考虑长度的区别,这是它和 MultiText 的最大区别。
Llopis et al. IR-n system, a passage retrieval system at CLEF 2001. Workshop of Cross-Language Evaluation Forum (CLEF 2001), 2001.
SiteQ算法 ( 1 )根据词性对不同的词赋予不同的权值。段
落的相关性分两部分: 1. 查询和段落的匹配关键字的权重的和,
并且,不同词性的关键字赋予不同的权重; 2.考虑查询的关键字在段落中的距离因素,
对距离远的关键字进行“惩罚”处理。 Lee et al. SiteQ: Engineering High Performance QA System Using Lexico-s
emantic Pattern Matching and Shallow NLP. TREC 2001.
SiteQ算法 ( 2 )
SiteQ算法 ( 3 ) SiteQ算法与 IR-n 的区别在于同一个关键
字在查询和句子中具有相同的权重,但是不同的词性的关键字具有不同的权重;虽然 SiteQ 不直接对段落长度做处理,但是引入了关键字距离的因素,在一定程度上对长度进行了一定的约束。
自动问答系统( 3 ) - 答案获取和排序模块 在检索结果的基础上,利用自然语言分析技术分析句子,
通过模式匹配和信息抽取等技术,从候选的段落或句子中抽取答案实体。
问题“ Who is the president of United States?” “Geoge W. Bush is the president of United States.” 模板“ A_ is Q_”,其中 A_ 表示答案部分, Q_ 表示问题部分,用该模板和上述的句子匹配,就可以得到问题的答案 A_
t tt
H h
利用模板是一种行之有效的方法,其难点在于如何获取足够多的模板来覆盖现实中的语言现象。获取模板有两种方法,一是人工构造,二是自动学习构造。
Hao, T.,Y., Zeng, Q.,T., Liu, W. Y.Semantic Pattern for User-Interactive Question Answering. Proc. of Second International Conference on Semantics, Knowledge, and Grid (SKG'06), 2006.
Question:
Q1:“What book did Rachel Carson write in 1962?”
Semantic Pattern:
P1: <Target:Entity\Product><Type:What>[Physical_Object
\Product] did [Physical_Object\Human] [Event\Action]?
利用句子中的字词的依赖关系来抽取答案。问句和答案句子中往往具有相似的依赖关系,答案实体在句子中的位置,可以通过分析问句中的疑问词涉及到的依赖关系和句子中的关系比较判断得到。
答案排序:基于信息距离的答案评估方法,通过计算答案实体和问题之间的信息距离,并用信息距离作为准则来衡量答案实体的正确性和相关性。利用信息论的方法,计算实体之间的距离,并通过计算答案句子中的实体和问句中的实体之间的信息距离。
联合答案排序模型 :相关性 + 相似性。
社区问答系统( 1 ) 问题推荐机制 用户模型:根据用户的历史记录信息,如浏览、提问和
回答的历史记录,来建立用户的配置文件。一方面可以根据用户的兴趣提供个性化的服务,另一方面可以根据用户的特长来向其推荐问题回答。
用户 u往往既是问题的提供者,也是问题的回答者,也是问答信息的浏览者,因此可以从三方面来定义用户模型。一是用户所提问过的问题 QSubmit;二是用户回答过的问题 QAnswer;三是用户的动作 QAction ,如浏览的版面和对一些问题答案的“支持”或“反对”动作。
问题模型: 语义类别、关键字向量模型( TF*IDF )。
1 1 2 2( ) * ( ), ( ) * ( ), ..., ( ) * ( )
m mtf t idf t tf t idf t tf t idf tQ
用 ru,q 来表示用户 u潜在的能够回答问题 q 的可能性,假设用户 u 模型是 UserProfile ,问题 q 的模型是 QModel ,则通过计算相关度
来决定是否把问题 q 推荐给用户 u 回答、 把用户潜在感兴趣的内容推荐给他。 协同推荐、基于内容的推荐、基于图结构的推荐等。
, ( Pr , )u qr Score User ofile QModel
交互式问答结构( 1 )
Jiang Bian et al. Learning to Recognize Reliable Users and Content in Social Media with Couple Mutal Reingforcement. WWW 2009.
交互式问答结构( 2 )
yua 表示用户 u 提供的答案 a 的质量, ya 表示答案 a 的质量, yu
q 表示用户 u 提供的问题 q 的质量, yq 表示问题 q 的质量。
专家发现(用户信誉值评估):利用提问信息、回答信息、正确率等评估用户在某个领域的兴趣和权威。
目的:推荐问题供用户回答。
研究的热点问题
新的类型的问题,特别是比较复杂的 Complex 问题和技术推理的 Why 问题等。
相关性评估技术的研究:如何挖掘更好的特征来评估相关性。
问答系统极其依赖于 NLP 技术、 IE 技术和人工智能技术。然而,目前的 NLP 技术还难以对问题和句子进行语义级别的分析。
中文问答系统的技术手段目前还很匮乏。
TREC QA Track
TREC QA Track :从 1999年开始,由美国国防部和美国国家技术标准局( NIST )联合主办的 TREC (Text REtrieval Conference) 文本检索会议开设了问答系统方面的研究评测。
处理的问题主要分为三类: 1. Factoid 问题,即关于某个事实的问题。“ Who is the
president of USA?” 2. List 问题,此类问题回答的是例如“ List the sport gam
es? ” 的问题,要求用关于某个类型的实例列表来回答; 3. Definition 问题,问题如“ What is atom?” ,需要用定
义类型的句子来回答问题。其他的问题,则统称为 other问题。
对于 factoid 问题,返回的是一个答案词串( answer-string )。
人工判定返回的结果的正确性,每个答案词串被人工判定为以下四个结果中的一个: correct, incorrect, not support, not exact 。如果一个问题的响应列表中有答案被判定为 correct ,则称该问题被正确回答。
利用精度 accuracy 来对 factoid 问题的性能进行评估:,其中 n 是所有问题中被正确回答的问题的数目, N 是所有问题的数目。
List 问题要求返回的是实例的列表。对于问题 q ,利用实例精度( instance precision , IP )和实例召回率( instance recall , IR )来评估:
其中 D 是返回的结果列表中包含的正确实例数目, S 是文档中包含的所有正确实例的数目, N 是最终返回的结果列表的实例数目。然后把 IP 和 IR结合起来计算 F_score,其中 IP 和 IR 的权重一样。
系统对于 List 问题的评估用平均 F值来表示: ,
其中 AF 是平均 F值, Fq 表示对于问题 q 的 F值。
/IP D N
2 IP IRF
IP IR
AF F
Definition 问题。定义问题要求用定义类型的句子作为响应,其响应结果是一个句子列表。利用基于“信息片段( information nuggets )”的评估方法来对此类问题评估,每个信息片段描述了定义问题的主题的某个方面的内容。
对于某个问题 q ,首先人工在文档集合中建立一个信息片段列表 nugget_list ,并人工判定每个信息片段的重要程度(记为 vital 和 invital );然后评估者检查系统的输出,并标记输出的信息片段中,出现在信息片段列表的片段,若出现,则标记为 1 ,被标记为 1 的片段组成 matched_list 。
召回率和精度:
其中, length 是返回的 nuggets 的长度, allowa
nce 是返回的 nuggets 允许的最大长度。系统对于定义问题的 F值为:
Rematched nuggets
Nugget calltotal number of nuggets
Pr 1length allowance
Nugget ecisionlength
2
2
( 1)( )
Precision RecallF
Precision Recall
系统最终得分:
0.5 0.25 0.25FinalScore Factoid List Definiton
其他评测标准平均正确度 MAP ( mean average precisi
on ) 平均倒排序值MRR ( Mean Reciprocal R
ank ) 总倒文档排序值 TRDR ( Total Reciprocal
Document Rank )
其中 Rankfca (q,N) 表示问题 q 的前 N 个结果中,第一个正确的答案所在的位置, M表示问题的总数 .
1
1 1( )
( , )
M
i fca i
MRR NM Rank q N
其中 Cca (q,N) 为问题 q 返回的前 N 个结果中正确的个数 , P@N(q) 是问题 q 在前 N 个结果中的精度; Cor(n) 是一个指示函数,用来表示第 n 个结果是否是正确的 , 如果正确,则值为 1 ,反之为 0; AP@N(q) 是对于问题 q 的平均精度 。
( , )@ ( ) caC q N
P N qN
1@ ( ) ( )
@ ( )( , )
N
n
ca
P n q Cor nAP N q
C q N
1
1@ ( )
M
iiMAP AP N q
M
MRR 和 TRDR 与 MRR只考虑第一个返回的正确答案不同, TR
DR 不仅考虑了返回的正确答案的数目,并且对不同排序位置的答案赋予不同的权重。例如,如果第 1 个和第 4 个答案都是正确的,则对于该问题,TRDR值为 1/1+1/4=1.25 。 显然, TRDR 能更好反映了系统对于问答的响应的实际情况。
用平均的 TRDR值来评估系统的性能: 表示位置 i 的结果是否是正确的答案,如果是,则值为 1 ,否则值为 0 。
1 1
1( )
M N
j i
ATRDR I ii
基于多种特征的段落检索方法
研究问题 面向于自动问答系
统的章节检索 (passage retrieval) 方法, 处理的问题是基于事实的 factoid
问题。
Question
Analysis
Document
Retrieval
Passage
Retrieval
Answer
Extraction
<Q> what is the longest river in China? </Q>
<P>The Yellow River, with a total length of 5464
kilometers, is the second longest river in China, just
next to the Yangtze River. </P>
<Q> who is the first president of United State?
<P>The 43rd and current President of the United States
is George W. Bush</P>
在现有的段落检索算法中,大多利用字词的密度和分布特征,这些方法的不足在于缺乏对语义特征的考虑。段落的特点是简短,因此不可能包含很多关键字,与文档相比,数据稀疏性是其固有的缺陷。
越来越多的研究表明,利用多种特征来综合评估相关性的方法的效果要优于只基于某个特定特征的评估方法。因此,为了评估问题和候选段落之间的语义相似度,我们提出一种混合型相关性检索模型。该模型结合了词汇相似度,主题相似度和结构相似度。不仅考虑字词的密度特征,还考虑关于内容和语义的特征。
字词相似度 :是基于问题和段落包含的关键字之间的语义相关度统计,而不是简单的关键字匹配 。关键词 w 的上下文模型定义如下:
字词相似度计算:
, 1 1( ) ,..., , , , ...,l r l rWP w t t w t t
1 1 2 2( ) * ( ), ( ) * ( ), ..., ( ) * ( )( )
m mtf t idf t tf t idf t tf t idf tC w
( ) ( )
( , ) ( ( , ) ( ( , ) ) /t V q w V p
LS q p Sim t w I Sim t w threshold Count
|{( , ) | ( , ) , ( ), ( )} |Count t w Sim t w threshold t V q w V p
Algorithm:LS ( p , q )
Input: a question q and a passage p.
Output: the lexical similarity between p and q.
count ← 0, sum ← 0.0
P_list ← Pre_Process( p ) Q_list ← Pre_Process(q) foreach term t in P_list foreach term w in Q_list
if Sim(t,w) >= threshold
then sum ← sum + Sim(t,w)
count ← count + 1
return sum / count
主题相似度:假设主题语言模型是 T ,则问题q 和答案段落 p 都可以看作是由 T生成的,因此,p 和 q 同时描述同一主题 T 的概率可以定义为:P(p,q|T) ,其中 P(p,q|T) 是 p 和 q 在主题模型 T中共同出现的概率。
1, 1,
1 1
( , | ) ( | ) ( | ) ( | ) ( | ) ( | ) ( | )n m
n m i ii i
P p q T P p T P q T P t T P w T P t T P w T
主题语言模型 T :
主题相似度:
( ) ( )( | )
( )( )i i
i
jj
i
tf t P tP t T
tf tidf t
( , ) ( , | )T
TS p q P p q T
结构相似度:利用句子的主谓结构和语义约束特征来判断候选段落和问句的相关性 。
第一种结构是字句转移。:“ Wh- 转移”,这意味以 wh疑问词打头的疑问句其答案句子与问句相比,会产生字句位置的变换现象;第二种结构是语义角色识别,
(1) [ARG1 Who] did [ARG0 Tom] [TARGET kill]?
(2) [ARG0 R.Kelly] [TARGET was killed] by [ARG0 Tom].
(3) [ARG1 Tom] [TARGET was killed] by [ARG0 Jim].
1 if is the re-ordered clause of or arg0( , ) p q p and q hold the same predicate umentSS p q
相关性模型定义成这三种相似度的带权线性组合 :
其中表示段落 p 和问题 q 的相关程度, α, β, 和 γ 是三个不同的参数用来表示不同的相似度的权重,并且它们满足条件 α + β + γ = 1( α>0, β>0, γ>0) 。
R( , ) ( , ) ( , ) ( , )p q LS p q TS p q SS p q
基于图的段落排序算法
纯粹基于相关性相对大小次序的排序,没有利用到文档或段落之间的关系,因此很难从全局的角度对结果进行有效的排序。
不仅考虑候选段落与问题之间的独立相关性,而且利用候选段落之间的关系信息建立图模型。
候选答案段落获取( 1 ) 问题分类( Question Classfication )是一种考虑
了问题多样性的方法。通过问题分类,对不用类型的问题采用不同的检索方法。
问题分类存在着的主题类别的交叉重叠现象,也就是说同一个问题会同时从属于两个或多个子主题;而且主题划分需要人工预先定义好所有的主题以及主题之间的层次结构。
候选答案段落获取( 2 )选择基于 K 近邻( K-Nearest Neighbour ,
KNN )的方法。对于每一个新问题 q ,从问题空间中动态获取 k 个与问题 q 相似的问题,利用这些问题的信息对 q 进行扩展,然后利用向量空间模型从文档集合中初始检索出 top-N 个候选的答案段落。
基于 KNN 的方法优势在于扩展性和适应性强,不需要对问题空间进行主题划分,也不需要预先定义好主题类别的层次结构。
KNN 问题扩展( 1 )特征选择( 1 )问题疑问词( Question Type , Q
T ),主要是诸如“ who” 、“ how” 、“ when” 、“ what” 、 “ what time” 等疑问词。
特证词相似度 SimQT
( 2 )关键性概念词( Key Concepts , KC ),主要是问题的实体名词和谓语动词等,这些关键性概念词在问题的内容描述中起着最直接和关键的作用。用 SimKC 来表示两个问题的关键性概念词的相似度
( 3 )短语向量( Phrase Vector , PV ),利用基本的语法分析器识别出问题中包含的语法结构,如名词短语( noun-phrase, NN )、介词短语( preposition phrases , PP )、动词短语( verb phrase , VP )等。
问题包含的短语组成一个向量,称之为短语向量,表示方式为 <NN, PP,VP,…> ,其中 NN 、 PP 和VP 等称之为短语成员。
短语成员的相似度定义为: 1- 如果两个成员完全匹配; 0.5- 如果两个成员部分匹配,即两个成员只是同义或近义的关系; 0- 如果两个成员完全不匹配且也不是同义或近义关系。
用 SimPV 来表示两个问句短语向量的相似度
1 2 1 21
1( , ) ( ( , ), ( , ))
m
i
SimPV q q sim PV q i PV q im
( 4 )向量空间描述( Vector Space Representation , VSR ),利用基于 TF-IDF 的向量空间模型对问题进行表述,每个问题被表示成关键词向量,每个关键字的权重则是它的 TF-IDF值。
1, 2,11 2 1 2
1 2
*( , ) ( ( ), ( ))
|| ( ) || * || ( ) ||
n
k kkq q
SimVSR q q Cos VSR q VSR qVSR q VSR q
利用上述特征,问题 q 可以用向量表示成 q = <QT, KC,PV,VSR>, 假设问题 q1 和 q2都用该模型表示,则可以用以下相似度计算函数来计算两者的相似度:
1 2 1 2 1 2 1 2 1 2
1( , ) ( ( , ) ( , ) ( , ) ( , ))Sim q q SimQT q q SimKC q q SimPV q q SimVSR q q
norm
KNN 问题扩展 对于问题 q1 和 q2 ,它们的相似度越大,
在问题空间上的距离则越短,因此它们在问题空间中的距离可以定义为两者的相似度的倒数 :
其中 ε 是一个较小的常数,主要是为了避免相似度为零的特殊情况,取 = 0.0001 。
1 21 2
1( , )
( , )Dist q q
Sim q q
给定问题 q ,在问题空间中,与之最近邻的 k个最近邻居对 q 施加的影响是不一样的,因此采用权值的方法,与 q距离小的邻居具有较高的权重。
假设问题 q 的原模型定义为 M(q), 其在问题空间中的 k 个最近邻的邻居分别为 q1,q2,…,qk, 用这 k 个邻居来对 q 的原模型进行修正,则问题 q 的模型可以重新定义为:
1
( )1( ) ( )
( , )i
i i
k M qN q M q
k Dist q q
获取 top-N 候选段落 采用基于向量空间模型的检索方法来实现这一目的。给定段落 p 和问题 q ,段落 p与 q 的相关性用基于向量空间模型的相似度计算方法计算 :
( , )* ( , )( | )
|| || * || ||initt p q
W t p N t qR p q
p q
段落间关系对相关度的影响 如果段落 A 和段落 B 非常相似,当 A 与问题 q很
相关时, B也有很大的可能性与 q 相关。 但是经常出现的情况是,在初始的排序中, A 排
在较前面,但是 B 却排在很后面。 在图模型中的实现机制是,由于段落 A 和段落 B非常相似,因此它们之间存在着边( A , B ) , 段落 A 的高相关性分数会通过边( A , B )向段落 B 传播,从而提升了段落 B 的相关性分数。
边权重计算 基于内容的特征的段落的相似度计算方法
为 :
1 2 1 21 2 1 2
1 2
| | | |( , ) * * ( ( ), ( ))
1 max(| |,| |)
p p p pSC p p Cos VSR p VSR p
span p p
段落之间的“原始”的隶属关系对相似度的影响,最终的段落之间的相似度,也就是段落 -段落之间的边的权重为:
其中 是指示性函数,当 pi 和 pj 属于同一个文档时,值为 1 ,反之为 0;是一个大于 1的参数,用来对属于同一文档的段落的相似度值进行加强 .
( , ) if I( ,( , )
* ( , ) if I( ,i j i j
i ji j i j
SC p p p pw p p
SC p p p p
I( ,i jp p
KNN-GRank算法
其中 表示段落 p 和问题 q 之间的初始相关性,表示连接两个相邻的段落 u 和 z 的边的权重。参数 d 和( 1- d )表示两部分分数的不同权重, KNN-GRank算法是一个依赖于参数 d 的排序算法。
[ ] [ ]( , )
( , )( | ) * ( | ) (1 ) ( | )init
u adj p z adj uw z u
w p uR p q d R p q d R u q
( | )initR p q
基于排序的损失函数 一个好的排序函数在于排序结果的错误最小,也就是具有
较小的排序损失( ranking loss )。给定训练数据,其最好的排序函数是使得排序损失最小的函数:
其中 f 是排序函数, L 是损失函数, xk 是第 k 个问题实例, yk 是对应于 xk 的理想排序结果, f(xk) 是对问题实际返回的排序结果。
1
* arg min ( ( ), )n
k kf
k
L f x y
排序交叉熵
参数 k
00. 10. 20. 30. 40. 50. 60. 70. 8
40 50 60 70 80 90
k
ATRD
R
k vs ATRDR 选择最佳的 k = 60
参数 d
0
0. 1
0. 2
0. 3
0. 4
0. 5
0. 6
d
Loss
0. 56 0. 532 0. 513 0. 496 0. 48 0. 456 0. 46 0. 465 0. 47
0. 5 0. 6 0. 65 0. 7 0. 75 0. 8 0. 85 0. 9 0. 95
选择最佳的 d = 0.8
性能比较Methods MRR(1) MRR(5) ATRDR
VSM 0.2470 0.3102 0.6780
MITRE 0.3219 0.4073 0.7852
Our Method 0.5634 0.6520 0.9078
MRR(1) Improve
MRR(5) Improve
ATRDR Improve
VSM 128.1% 110.2% 33.9%
MITRE 75.02% 60.07% 15.6%
谢谢!
Q&A