Semantic Decomposition for Question Answering 于佳婕 大家好,我今天报告的论文是关于问题的语义分解的,这篇论文发表在2008年ECAI会议上。
Introduction Decomposable questions & Atomic questions Decomposition form:sequences of two questions, later questions are built on top of the answers to earlier questions. 6 decomposition classes, linked to different decomposition methods. Decomposition methods are mostly based on the semantic representation of questions(MultiNet formalism ) 先简单介绍一下它的研究背景。这项研究是基于德语的问答系统来进行的。 首先,它认为问答系统所遇到的问题分为可分解的问题和原子性的问题。这里可分解的问句并不是特指含有多个分句的问句,而是指通过分解,更容易回答正确的问句。而对于可分解的问题(decomposable questions)来说,把它分解为一些简单问题,会更容易得到解答。这里提出的拆分方式是通过把一个问题拆分成两个更简单的问题,把对原始问题的求解实际上就转化成了对问题序列的求解,并且后一个问题是基于前一个问题的答案形成的。 对于可分解的问题,它目前提出了6个类别,不同的类别对应的也是不同的分解方法。这些分解方法中,大部分都是基于问句的语义表示来进行分解的,遵循的是MultiNet的表示形式。在语义层面分解的好处是,不需要做自然语言生成的工作,也不需要在重新生成的问句上进行parsing,从而规避了这两个过程中的错误。但这种方法的先决条件是,需要一个能够对问句提供充分语义表示的parser。
Decomposition Classes Temporal decomposition Local decomposition Coordinated situation decomposition Meronymy decomposition Description decomposition Operational decomposition 这里是它提出的6类可分解的内容,主要是含有时间限定的问题、含有地点限定的问题、含有相同的情境限定的问题、含有部分-整体关系的问题、含有描述限定的问题和计算型问题。 它通过一个约1200条问句的德语数据集统计了这些问题的出现频次,总体来说,大约有1/6的问题是可分解的。因为这些问题的频次都不高,所以他没有尝试基于规则去做拆分,而是通过MultiNet提供的API进行的。 论文里也没有详细讲拆分的方法和求解的策略,而是主要讲了他对于可分解问题的分类设计。 下面用一些例子,说明一下这6类分解。
Temporal Decomposition A situation that is used as a temporal specification can be replaced by its date of occurrence. E.g. Who was US president when Vietnam war ended? 首先是时间相关内容的分解,它的作用就是把问句里的时间状语转换为对应的日期。 这里的一个例子是问:在越南战争结束时,美国总统是谁? 对于第一幅图中原问句的时间状语部分,通过加入一个问句焦点的结点,转换成了第三幅图上半部分的次级问句:越南战争是什么时候结束的,并把得到的答案接入到原有的图中,从而得到了第二幅图的简化问句:在1975年4月,美国总统是谁? 这里的每条边表示一种关系,每个结点表示一个概念,下标表示它所属的实体种类,方括号里描述了它的一些属性。含有?的结点标志的是问题的焦点,并且?后面的内容表示句子的类型。图里面有一些边折叠在结点的下面。 对于概念,co=具体事物concrete objects,d=离散对象discrete objects,st=状态state,dn=发生happenings,ad=动态情境的抽象abstraction from dynamic situations,nu=数值化的量numeric quantificators,t=时间相关的描述temporal description of situations,me=度量单位units of measurements,oa=操作属性operational attributes,ta=抽象的时间对象abstract temporal objects 对于属性,gener表征泛化程度(sp特指,ge泛指),fact表事实程度(real真实,nonreal非真实的,hypo假设的),quant表量化(one一个,nfquant表示all),refer表确定是否引用(det表示引用了实例,indet表示无引用),varia表变化程度(var变量,con常量),card表基数,etype表外延性(0表非集合,1表0的集合……) 对于边,ARG表参数详情,ASSOC表联系,ATTR表属性详情,EQU表等价,SUB表示对象实例,SUBS表情境实例,SUBR表元级实例,TEMP表示对情境的时间限制,VAL表示属性与值的关系 Who was US president when Vietnam war ended? Wer war US-Pra ̈sident, als der Vietnamkrieg endete? Who was US president in April 1975? Wer war US-Pra ̈sident im April 1975? When did the Vietnam war end? Wann endete der Vietnamkrieg? Answer:April 1975
Local Decomposition a local (or spatial) restriction can be replaced by the answer(s) to a subquestion about the exact location(s) fulfilling the restriction. E.g. Which parties reign in countries that are in Northern Europe? =》(subquestion)Which countries are located in Northern Europe? =》(revised question with a list-valued answer)Which parties reign in Sweden, Norway, and Finland? 问句中的地点或者说空间限制,与时间限制一样,可以进行分解。 例如,问:哪些政党统治北欧的国家?首先查询:“哪些国家在北欧地区”得到了一个答案序列,再对这些答案序列中的值提问“哪些政党统治瑞典、挪威和芬兰”
Coordinated Situation Decomposition A question can contain several propositions also in the form of a con- junction of situations, often involving ellipsis. E.g. Which football players played for Borussia Dortmund and Real Madrid? =》(subquestion)Which football players played for Borussia Dortmund? =》(revised question with a list-valued answer)Do …… played for Real Madrid? 有一些问题,其实通过省略部分成分的方式,包含了几个并列的命题。对于这种问题,我们通过拆分并列命题,也能够让它们更容易被解答。 比如,问“哪个足球运动员为多特蒙德和皇家马德里踢过比赛?”,通过先查询“谁为多特蒙德踢过比赛”得到一个人名列表,再询问列表中的每个人是否为皇马踢过球,就可以得到答案。
Multisituation Decomposition Involve 2 situations that are linked by a relation in the semantic network for the question. Includes: Temporal Decomposition Local Decomposition Coordinated situation Decomposition 对于前面讲过的这三类分解,其实都可以归入“多情境分解”的大类,因为在这些问句的语义表示中,都出现了两个以某种关系相连的情境。这也就可以作为这些分解类型的一种表现,用于提取一些特征来帮助识别。
Meronymy Decomposition Meronymy decomposition tries to generate and exploit geographical knowledge on the fly (here: meronymy knowledge for geographical objects). E.g. When did a hurricane hit Northern Germany? =》 (subquestion) Which regions/cities are in Northern Germany? =》(revised question with a list-valued answer)When did a hurricane hit Niedersachsen/Hamburg……? 部分整体关系的分解,主要是应用在地理知识领域,用于处理问句中某些精确地点与抽象地域之间的转换。 比如这里的德国北部,通过查询得到德国北部的地区或城市,就把一个不一定能获取到相应知识的表示,转化为更容易获取到对应知识的表示方式。 而这一类与前面所说的地点的分解不同的是,地点的分解要求地点被一个从句所修饰,而不是这里“Northern Germany”这样的命名实体。也就是说,前者是针对一种地点状语从句的修饰关系来触发分解的,而这里是针对地点相关命名实体来触发的。
Description Decomposition Descriptions in question focus E.g. Which Italian cities have an Olympic stadium? =》 (subquestion) Name Italian cities =》(revised question with a list-valued answer)Does Rome/Pisa…… have an Olympic stadium? 对于问句焦点中的描述性限定,也可以把它分解成一个子问句。 比如这里问“哪个意大利城市拥有一个奥林匹克体育场”,这里意大利是对城市的一个描述性限定,就可以把它分解成一个“列举意大利城市”的子问题,再根据子问题的结果回答原始的问题。
Operational Decomposition Calculate an operation on the different answers of a subquestion E.g. How many countries belonged to the EU in 1994? =》(subquestion)Name countries that belonged to the EU in 1994 =》 (revised question with a list-valued answer)count the countries in the answer of the subquestion Sometimes can be answered directly( The 12 EU member states…… ) Operations:cardinality, maximum, minimum, mean average…… 最后一类是运算相关的分解,这一类问题需要我们对子问题的答案进行一些运算操作。 典型的例子有问“1994年有多少国家属于欧盟”,可以分解出“列举1994年属于欧盟的国家”这样的子问题,再对它的答案进行计数操作。 这里需要说明的是,因为文本知识可能有很多种表达形式,这种问题有时候可以不做拆分直接回答,比如如果文本中提到“12个欧盟成员国”这样的短语,就不需要再进行计数操作。所以这里提出的问题拆分都是在原始问句得不到解答的时候才会进行。 而运算相关的拆分实际上也比较复杂,可能存在像基数、最大值、最小值、平均值这样的运算要求。为了避免分解出错误的子问题,还需要采用一些启发式的方法。比如对于一个计数问题,如果存在很多个列举的答案,那么就需要关注问句中是否含有“thousand”、“million”这样的基数。s
Evaluation 在他的实验中,对于问题分类的结果展示在第一个表格中。他其实只是对于问题是可分解的还是原子性的做了二分类,而不是对问题属于哪个分解类别做了多分类的实验。从这个结果来看,可能因为任务的难度比较大,可分解性问题的识别精度和召回率都不算太高,但因为它们占比比较小,所以整体的识别精度还不错。 第二个表格展示的是进行问题分解前后做对的题数。总体而言,通过分解,在184个可分解的问句中,做对的题从25道提升到43道。并且,虽然由于分类错误,对一些原子性的问句也做了拆分,但没有影响到原子性问句的答对数量。
Some additional remarks Sometimes decomposing questions can be dangerous E.g. Multi-property Decomposition:a concept is modified by two or more properties. “Name a German communist politician. ” A question can belong to zero or more decomposition classes E.g. How many aristocrats were archbishops in Italy before the Western Schism? operational (How many), description (aristocrats), meronymy (in Italy), temporal (before the Western Schism). A question can often be decomposed in several ways when it contains several propositions Which planet orbits the sun once in every 12 years? A:a) What orbits the sun once in every 12 years? b) Is ⟨subanswer⟩ a planet B:a) Name planets! b) Does ⟨subanswer⟩ orbit the sun once in every 12 years? 这里是对问题拆分的一些补充说明。 对于问题分解来说,需要考虑到分解操作的可能带来的风险,控制风险的方法。例如,被多个属性修饰的某个概念,也可以把这些属性拆分开作为子问题。但这种情况有可能导致回答错误。例如对于“说出一个德国共产党派的政客”这样的问题,如果拆分成“列举德国政客”和“判断他是否是共产党派的政客”,在大量的文本中很容易找到一个人名“Miller”既是德国政客,又是共产党派的政客,但相同的人名却不是指向同一个人。 另外,有些问题可能有属于多个分解类别,但在这篇文章里,没有对这种问题进行层次的拆分,而是尝试把它归为一个更容易得到解答的类别中。而什么类别更容易得到解答,哪些内容需要分解,也是跟文本信息的性质有关的。例如,如果文本是关于德国的新闻语料的,那么一个询问德国有多少城市的问题更偏向归于计数分解,而询问美国有多少州的问题就不会归入计数分解。这种偏向也主要体现在对于问题的标注上,通过标注影响模型的分类偏好。 而就算是对一个确定了分解类别的问题而言,由于存在多个命题,它的分解方式也可能存在多种。而不同的分解方式对回答正确性的影响也是不一样的。怎么选择内层和外层的问题,也是需要进一步探讨的问题。而最对于系统来说,可以通过尝试多种分解方式来选择回答。这篇文章里的系统,更偏向于选择子问题答案更少的回答。
A decomposition task Which class does the question belong to Where to split How to adjust question type How to integrate the subanswer(s) into the original question to form the revised question(s) 所以,从这篇文章的工作来看,对于一个问题分解的任务,需要考虑的问题主要就是需要对问题做哪一类分解,从哪里拆分,怎么调整拆分后问题的类型,以及怎么把子问题的答案整合到原始问题中,形成一个简化的问题。这些内容都还需要一些更深入的研究。