原文地址
摘要
随着网络的不断发展,百科网页、搜索网页、问答社区等也随之发展,壮大,在这些应用上,机器人的自动回答,智能的答案提示等等应用也相继出现。针对于海量的知识的智能回答系统也发展得很火热。其背后支持的实际技术正是问答系统。问答(QA)是信息检索和自然语言处理(NLP)领域的一门计算机科学学科,它涉及构建能自动回答人类用自然语言提出的问题的系统。[1]QA系统能通过映射,将问题映射到知识库中去,直指答案,通过这样的方式来为用户反馈答案。而KBQA使用的时候新的问题表达形式——模板,能够通过百万级的QA语料库进行学习,之后生成大量的模板,用于后续的问题识别。我们试着举一个这样的例子,例如,在对于城市人口的问题上,我们的KBQA系统能够从语料库中学习生成得出以下这样的模板:城市的人口是多少?城市中有多少人?我们将这样的KBQA对4690关系进行学习,生成出了超过1171303个模板。基于这些模板,KBQA能够有效率地为解决复杂问题、2元事实问题提供支持。
问题
本身QA问题就吸引大批学者进行研究,而在应用上,正如摘要中所提到的那样,各大主流网页,问答社区,也有采用这样的技术,对一些还没人回答的问题,或者正在进行提问的问题,除了进行已有问题的匹配。也有将QA技术应用,然后直接提示问题答案或许是这个的一些智能的提醒等等,各种很惊人的效果。但也存在明显的问题,像是:匹配出来答案不准,答非所问;答案表述不自然。
研究上,一个QA系统通常设计成回答某一特定类型的问题,而这其中,最重要的问题类型之一就是——基于事实的问题。基于事实的问题问的是某个实体的一些个客观事实。而基于事实的问题中,又有一种特殊的问题——二元事实问题(BFQ)。二元事实问题问的是某个实体的某些个属性。举个例子,檀香山有多少人?在本文中,我们着重回答这些基于Freebase的二元事实问题。
而我们的系统采用KBQA的方式去解决 问题,KBQA的特点就是通过模板了解问题,通过这样的方式能够识别出问题的更多谓词,系统反馈答案,映射的时候,能够更好地识别问题的具体意图。
方法/结果(计划如何解决)
针对事实问题,尤其是二元事实问题,KBQA系统由于能够对事实语料库提取中问题的模板,能够对问题的谓词进行提炼,对问题的意向,问题在问什么,这样的方面对问题的理解上有更进一步的提升。
KBQA系统基于模板,举回上面的例子:城市指的是檀香山还是其他城市,模板a总是问某个城市的人口问题。KBQA从一个有数百万个问答对的巨型问答语料库(雅虎问答)来学习、训练,来学习模板的相应谓词。
以下表格显示了KBQA学习到的谓词和模板数量,并和Bootstrapping系统进行比较。表格显示,尽管用于学习的语料库更小,KBQA系统仍然能够生成更多的模板。也就意味着,在系统后续的问题识别上,能够识别出来更多的问题谓词,知道更多的问题的问题意向,想问实体的哪个方面的问题。在后续流程中,能够提升QA系统的效率和精度。
KBQA系统中,首先是在模板提取模型中能够生成从模板到谓词的映射,然后再用离线程序部分通过使用最大似然估计器(ML)来学习这些映射。实体和价值定位的结果用来做估计器的训练数据。另外,KBQA系统通过谓词扩展模块来识别知识库中的复杂问题中的谓词形式。当问题进入在线程序时,KBQA先将它转化为一个或多个二元事实问题(BFQ)。对任意的二元事实问题,KBQA提取出它的模板,然后在模板库中找这个模板。最后,KBQA系统返回知识库中实体的值和谓词来作为答案。
问题解析 在线程序的关键是将问题转化为模板。KBQA用斯坦福的NER系统来解决这个问题,并且,用概念化[5]的方式来用概念去替换问题本身。概念化机制基于一个由数百万个实体和概念组成的大型语义网络(Probase [6]),因此KBQA具有足够的粒度来表示不同的问题。
模板提取部分 KBQA从一个有数百万个问答对的巨型问答语料库(雅虎问答)来学习、训练,来学习模板的相应谓词。首先,对雅虎回答中的所有问答对,KBQA提取中问题中的实体和答案中的对应值出来。然后,KBQA在谓词库中,找出实体和这个值之间用的谓词。这其中的基本思想是,KBQA用QA对作训练数据。对每个模板,如果大多数对应的问题实例共享同一个谓词,那么KBQA就将这个模板映射到这个谓词中去。
结论
KBQA的实现的效果,如图2所示,在网页上为用户提供了一个简单的界面,由三个部分组成:
(1)展示问题结果的QA部分
(2)给用户对此问题投票的反馈部分
(3)解释这个答案是怎么提取出来和KBQA为什么能够提取出答案的原理解释部分
根据问题类型进行分类 KBQA事实上能顾满足各个用户的不同需求并支持各个问题类型。
简单的二元事实问题 用户能够提问一些简单的二元事实问题,也就是问实体的属性问题。图2展示了莎士比亚的生日问题。
依赖扩展谓词的为题 KBQA通过扩展谓词模块能够理解复杂形式的谓词的问题。例如,Freebase通过扩展谓词spouse_s->spouse->name来表示spouse关系。
复杂问题 问题转化模型将一个复杂问题转化为几个简单二元问题。这使得KBQA也能够理解和回答出复杂问题。图3展示了一个复杂问题的具体样式。
用户反馈部分 在反馈部分,KBQA使得用户对答案进行投票。这个反馈会返回去作为系统的输入,并提升系统。