热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于kbqa的复旦大学论文解释learningquestionansweringoverQAcorporaandknowledgebases(一)

由于我利用了大牛的论文复现了代码,但是很多同学都不太懂,由于本人代码规范不是太好,并且最近太忙所以一直没有整理这方面的,所以

        由于我利用了大牛的论文复现了代码,但是很多同学都不太懂,由于本人代码规范不是太好,并且最近太忙所以一直没有整理这方面的,所以抽出时间,准备再重新过一遍,然后看是否能够基于本篇论文做更多的贡献,然后把代码从头梳理一遍。

       那么从论文开始进行编辑。


1. abstract 摘要

        问答已经变成一个比较流行的方式,人类从billion数据集中获取知识的方式。与网页搜索不同的是基于知识库的QA更加精准并且答案简洁,并且提供了一个自然语言的理解,映射为一个从知识库结构化查询。最大的挑战在于,同一种意思,用户可以有十几种不同的问法,之前的方法由于他们的表示方法有一定的限制:

        基于规则的方法知识能够理解小部分数据集, 虽然基于关键字或基于同义词的方法不能完全理解这些问题。在这篇文章,我们提供了一个新的问题表示方法:template(其实并不是新的方法),通过a billion 知识库和a million scale QA 语料(非常重要)。例如:针对一个有关城市的人口问题,我们学习一个模板what's the population of $city ?(这可以理解为一个问题的模板。)how many people are there in $city ,在这篇论文中,一共对2785个意图学习了27 million 模板(可见非常多的问题模板对应了一个意图)基于这些模板,我们的系统能够有效的回答二元事实性问题,针对于一系列复杂的问题,由一系列的二元事实问题组成也能够很好的回答(本次代码也只针对二元事实问题做了实验,也只对二元事实问题作解释,原因是这篇论文对于实际应用,不太现实)。


2.introduction介绍

         QA有大量研究,一个QA一般被设计为回答一些特定的问题[5].其中最重要的一种类型问题就是事实性问题,问的是一些基于实体的,问一些有关实体的一个属性。例如:how many people are there in Honolulu,如果我们能够回答BFQs,那么我们能够一些其他类型问题,例如 :which city has the 3rd largest population;

         基于知识库的QA有一个长的历史,近些年,一些非常大的知识库变得可用例如:google 的graph,freebase,YAGO2,大大增加了QA  system的重要性以及商业价值。这些知识库大部分采用的RDF的数据格式,他们包含了billion 的SPO(subject,predict,objects).

figure1: 一个简单的知识库(这里dob pob分别代表date of birth 和place of birth),sponse of 意图是由多个边表示:name-》marriage-person-name。


2.1` challenges 挑战

     给定一个问题,和一个知识库,我们面临这两个挑战:第一个是问题的表示(表示设计),第二个是怎么把表示映射到结构化查询中(语意匹配);


   2.11representation designment(表示设计)

       

        一般问题描述了上千种意图,一种意图有上千种问题的模板,例如表1的a和b问的都是有关于Honolulu的人口数量,但是它们表达的方式确实不同,那么QA系统需要对不同的questions表示成不同的representation。(1)那么这样的表示必须能够鉴别问题有相同的语义.(2)能够区别不同的意图。在QA语料,我们利用了27M问题模板,2782个意图,所以处理这些意图是一个非常大的挑战。


     2.12semantic matching(语义匹配)

        弄清楚问题表示之后,我们需要把表示映射为结构化的查询。对于FBQ结构画的查询主要依赖与知识库的predicate,由于predicate与representation之间的gap,找到这样的mapping非常重要,对于表1的例子a的语义与population相同。更有甚者,二元关系并不是单边关系,例如spouse of 用路径表达marriage-->person-->name对于知识库,会发现超过98%的意图对应这复杂的结构关系。

        因此关键的问题通过一个合适的问题表示方式,构建一个知识库的predicate与自然语言问题之间的映射。


2.2Previous Works

       根据之前的基于QA系统表示问题的,分为三类:基于规则的、基于关键词的、synonym based(同义词的)。


      1.基于规则 

         基于规则的是通过用人工的结构话规则吧问题映射为predicate。虽然能够获得非常搞得准确率,但是有着非常低的召回率。人为对大量问题创建规则不可行的。


      2.基于关键词

        关键词匹配是利用问题中的关键词与predicate进行匹配,这样的模型可能能够回答简单的问题,例如在table1中的b在问题中鉴别出来population映射到知识库中的predicate的population。但是一般情况很难用这种方式找到类似的mapping,在知识库中的一个predicate不能够匹配多个自然语言的表示,例如我们不能够匹配a或者c


     3.基于语法

         基于语法的通过考虑谓词的同义词来扩展关键词,他们首先对每一个predicate生成同义词,然后从questions与同义词之间找到mapping,DEANNA是一个典型的基于同义词的-+QA问答系统。主要的思想是把QA降低到评估谓语predicate与与候选同义词之间的相似性。例如question  C,可以得到答案通过在问题中number of people与population是同义词,很显然可以通过Wikipedi-
a.来计算他们之间的语义相似性。gAnser能够获取更高的精度通过学习复杂的结构,但是所有的这些方法不能够回答问题a,很显然没有一个how many people are there 与population相关,how many people在不同的场景下有不同的意思。在how many people live in Honolulu ,它表示population,在how many people visit New Yoker each year ,他表示旅客的数量。

          一般的上述方法并不能解决以上挑战,基于规则的方法,需要付出人类难以达到的标记努力,基于关键词和基于同义词的方法,一个单词或者一个短语并不能完整的表示问题的语义,我们需要完整的理解整个句子的意思。如果一个问题是一个复杂的问题或者映射到一个复杂的结构知识库,对于之前的方法是非常困难的。例如e和f。


2.3 overview of our approach

   

如图所示,为了回答一个问题,首先represent问题,为了表示一个问题,首先应该吧自然语言的questions转换威意图representation,这个表示能够获取语义以及问题的意图,然后对于每一个表示,怎么映射到RDF查询基于一个知识库。因此我me们关键的工作在即internal representation,表示为templates。

        REpresenting questions by templates 有关于同义词在a中的缺陷激励我们用templates进行表示,例如how many people are there in $city? 是a的一个模板。不管$city是Honolulu 还是其他的城市。这个模板总是有关于population的问题。

        那么问题的关键在于怎么把一个问题映射到已经存在的templates心中。为了得到这个我们把问题中的entity替换成对应的concepts,例如图2,Honolulu将会用$city替代,这个方法虽然不算抬起眼,但是是通过一个概念化的机制来获得[25,17],会自动的对输入进行消岐,(所以例如apple的项将会被company替代在what is the headquarter of apple这个句子中)。这个概念化的机制是基于一个大的语义网络(Probase[32]),这个女网络涵盖了millions of 概念。所以我们有足够的granularity来表示所有类型的问题。

          the templates 对于复杂的问题也非常有效,用模板我们能够吧复杂的问题分解威一系列的简单问题,每一个简单的问题对应了一个predicate,对问题f进行分享,我们把问题分解为Barack Obama's wife 和 when was Michele Obama born?对应了marriage-->person-->name 和 dob,第一个问题嵌套在第二个问题中,we know dob modifies marriage → person → name,
and marriage → person → name modifies Barack Obama.

        Mapping  template to predicates   我们学习模板和映射到对应的predicates用的是Yahoo! Answers.这个问题很像语义解析。大部分语义解析是通过同义词。为了构造谓语与predicate之间的关系模型。SEMPRE [2] uses一个二分图,概率组合分类语法。他们仍然是基于同义词的方法,mapping`从template到predicate是n:1的关系,每一个predicate有多个对应关系。在我们的工作,我们一共学习了27126355个模板针对2782个predicate。大量保证了基于模板的QA的广泛覆盖。

          学一个模板的predicate的过程如下,首先对于训练问答对的每一个,我们提取出来对应的实体和对应的value。通过查找连接实体与value的predicate从知识库中。我们的基本思想是,如果most的模板映射到同一个predicate,那么就用这些predicate来映射这一个predicate,能够利用一定方法计算template到predicate之间的特定概率。映射到复杂知识库结构的学习模板采用类似的过程,唯一不同的是我们发现了扩展predicate对应了多个边,映射了一个实体到一个特定的value。


      2.4Paper Oraganization

         在第2章介绍KBQA的基本综述,这篇论文的主要贡献在于从QA语料中学习templates,所有的先关技术都是围绕着它,第3章展示了在线回答问题基于template,第4章详细说明了利用模板对predicate的推断,其中关键步骤就是利用模板。第五章是扩展了我们的方法回答复杂的问题。第6章是扩展了模板推断复杂的问题。提出的实验在第7章,2


2 SYSTEM OVERVIEW

           在这一章,我们介绍知识库的背景和KBQA的综述,如表2:列出了文章的符号

           

         Binary factoid QA 我们主要集中在的是二元事实性问答,意思就是问题问的是一个针对一个实体的制定属性。例如咋表1中的问题除了问题f。

        RDF knowledge base      给定一个问题,我们寻找答案在一个RDF知识库中,一个RDF知识库是一个有三元组构成的(s,p,o),其中s,p,o代表主语,谓语,宾语。图1展示了一个简单的RDF通过一个有向图展示的知识库。每一个(s,p,o)被表示成从s到o的有向边用p进行标记。例如,一条边从a到1961用dob表示了一个三元组(a,dob,1961),代表了奥巴马的出生日期。

            QA corpora   我们学习问题模板从Yahoo! Answer中,包含了41millionQA对,QA语料表示为,其中,并且提取的answer在回复中包含,表3展示了其中几个例子,.

             Templates    通过从问题中替换实体e变成实体e的类别c,得到问题的模板,表示模板为,一个问题可能包含多个实体,每一个实体可能包含多个类别,我们获取实体的概率分布通过基于上下文的概念化[32],其实论文就是利用了这篇论文的结果,在微软的网站上,并没有啥技术含量。例如在表3的问题q1包含一个实体a,由于a含有两个类别$person  $politicain,那么可以获取两个template,When was $person born?   When was $politician born?

System Architecture .   图3展示QA系统的流程,主要包含两个过程


   • Online procedure

          在线过程,当一个问题进来时,首先解析并且分解成一系列二元事实问题,分解过程在第5章解释,对于你每一个二元事实问题,我们采用概率推断的方法来寻找他的答案,,在第三章介绍,推断依赖于谓词的模板分布,例如:p(p|t),这个学习在线学习。


  • Offline procedure:  

          离线的任务就是学习template到predicate之间的映射,用P(p|t)进行表示,在第4章进行讲解,扩展predicate在第6章进行解释,所以我们可以学习更加复杂的predicate的模板(eg,marriage-->person-->name在图1)


3.OUR APPROACH: KBQA

        在这一章,用概率的方式格式化我们的问题在3.1章,在3.2章将详细介绍大部分的概率估计,剩下的p(p|t)将在第4章进行介绍

我们在3.3详细介绍在线处理过程。


 3.1  Problem Model

         KBQA学习问答是基于QA语料和一个知识库,我们强调了从问题的意图到知识库的谓语的不确定性[18]。例如问题"where was  Brack from" 至少与FReabase 的两个predicate相关,1:place of birth,2:place lived location。在DBpedia 中who founded $organization ? 与两个谓语先关founder 和father

         问题定义1 :给定一个问题q。我们的目标就是寻找一个最大概率的答案v(v 是一个简单的value):

                                                                                                                                              (1)

   

        为了阐述给定一个问题,怎么能够占到答案,我们提出了一个生成模型,开始与给定一个问题q,首先通过P(e|q)概率分布鉴别出实体,然后根据问题和实体我们产生的template分布概率P(t|q,e),谓语p仅仅依赖与t,所以我们可以根据P(p|t) 来推断p,最后根据实体e和p产生答案v根据P(v|e,p),v可以直接返回也可以    ,展示这些变量之间的依赖在图4,基于生成模型我们计算P(q,e,t,p,v)基于公式2,那么公式1就减少为公式3

                                                                                             (2)

                                                                                                                                                      (3)

                                                           

        例子1来解释这样的计算答案的过程,考虑生成过程()在表格3,由于在问题仅有一个实体“Honolulu”,我们产生实体节点通过=1,把Honolulu概念话为city,我们产生了一个模板how many people are there in $city?.注意到模板对应的谓语总是population,不管指定哪个城市,所以我们通过P(p|t)预测出是population,然后通过“Honolulu”和“population”,则值是390k可以非常容易的从知识库中找到。

       Outline of the following subsections   

        给定上边的目标函数,我们的问题就减小为计算公式(2)的每一项的概率,P(p|t)通过离线在第四章进行讲解,可以通过现成的解决方案直接计算其他概率项,(例如命名实体识别(这个是错误的,实体识别决定了这个系统的好坏),和概念化),我们将在3.2章阐述这些概率,在3.3章阐述在线过程。


3.2 Probability Computation

        这一章我们计算公式(2)的每一个概率,除了p(p|t).

        Entity distribution

        P(e|q)是从问题中鉴别实体,我们鉴别实体包含两个条件,实体在问题中;并且他在知识库中,他们用的是斯坦福的命名实体识别,很明显具有一定的局限性,因为命名实体识别是整个系统的关键,但是斯坦福只能识别有限的实体类型,然后我们检查实体名称是否在知识库中,如果有多个实体,仅仅简单的给定一个均匀概率,很明显有事不合乎情理的。

        在4.1章我们已经提取出来了,对于问题和答案,其中values是从答案中获取,其实并不需要解释了,这里作者就是用的斯坦付的命名实体方法,没啥技术含量。

         Template distribution

         P(t|q,e) 一个模板类似于When was $person born?.换句话说,就是用问题中的实体的类别替代实体,用表示用实体e的类别c替代实体因此我们有:

                                                                                                                                                   (5)

其中,表示基于q的上下文的实体e的类别分布,在这篇文章中利用的是概念化方法[25]来计算P(c|q,e),其实文章是直接调用的微软的api接口,应为微软这个是利用大量数据获得概念化概率,所以文章这几个概率,比较水。

        Value (answer) distribution

           p(v|e,p) 对于实体e和一个实体的谓语,基本上已经找到了答案,所以这里说的都是废话,基本上。


3.3     Online Procedure

      在在线过程,给定一个问题q,可以根据公式7,返回最大的答案

                                                   (7)

右上可知,本论文的基本核心就在第四章,其他的概率有点扯。


4.PREDICATE INFERENCE

         这一章将会介绍怎么利用template推断出谓语来评估,我们把作为参数,用最大似然估计(ML)来估计,首先我们构造观察数据的最大似然,(例如QA对语料)在4.1,然后评估参数在4.2,以及算法实现在4.3.


4.1 Likelihood Formulation

       我们并不是直接构造观察数据的最大似然估计,首先构造一个简单的案例,question-entity-value的三元组的似然是从QA对中提取而来,然后构建两个似然之间关系,间接之间的关系很好goujian,在QA中的答案是一个包含确切答案和其他单词的复杂的自然语言句子。大部分单词对于表示谓语以及对于观察带来噪声。另外一方面在生成模型中构建一个完整的答案是困难的,尽管在生成模型中构建一个答案非常容易。

         首先我们从QA语料中抽取出来entity-value对,在4.1,允许构建一个question-entity-value三元组的似然函数(X),然后构建QA语料与X的似然关系,在E-q(13)4.1.2章。


4.1.1   Entity-Value Extraction

        我们的原则是从answer中提取values,以至于entity&value在知识库中有对应的关系。基于这样的原则我们从来鉴别entity-value对如下:

                                                                                                (8)

其中是子串,阐述例子2.

        example 2 在表3的,一些词并没有用例如(the ,was,in ),我们提取有效数值1961,注意到Brack Obama和1961是由pob进行连接在图1可以看出来,我们也提取出来噪声politician,接下来就会如何在下面的过程进行细化过滤的过程

       Refinement of ,我们需要过滤噪声对,例如:e.g. (Barack Obama, politician)在例子2中直觉就是,正确的答案和问题应该有same 类别。在这里一个答案的类别意味着回答问题类型的期望,这已经作为问题分类的问题[22],We use the UIUC taxonomy [20].对于我们使用的方法在文献[22]中提到,对于value的类别我们参考他的谓语的类别,罪域谓语的类别一般是手工标记的,由于谓语一般只有几千个,所以是可行的。


4.1.2 likelihood function

      经过entity&value从q,a中提取,每一个QA对()转移成一个问题,和一个entity-value的集合,假设这些实体value对的独立性,QA对的观察概率如公式9所示,因此我们计算语料QA对的似然函数如公式10.

                                                                 (9)

                                                                                 (10)

假定每一个问题的生成有相同的概率,例如

               

                                                                                       (11)

其中可以认为是一个常数,由于训练数据集是一定的,所以应该可以作为常数,等式11意味着与question-entity-value三元组成比例,利用X表示为从QA语料中提取的三元组:

                                                                (12)

 

通过假设每一个位图有一个等价的概率产生,例如,我们有如下:

 

请看基于kbqa 的复旦大学论文解释 learning question answering over QA corpora and knowledge bases(二)

 

      

 

        

 

.

 

     


 



 


推荐阅读
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
author-avatar
小遥2502881765
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有