论文浅尝 | 为基于知识库的问答构建形式查询生成

论文笔记整理:刘晓臻,东南大学计算机科学与工程学院本科生。


640?wx_fmt=png

Citation: H.Zafar, G. Napolitano, and J. Lehmann. Formal query generation for question

answering overknowledge bases. ESWC, 2018.

https://link.springer.com/content/pdf/10.1007%2F978-3-319-93417-4_46.pdf


动机

QA 任务通常被划分为命名实体消歧(Named EntityDisambiguation, NED),关系提取(Relation Extraction, RE),以及查询生成(Query Generation,QG)几个子任务。但这种划分很少能够真正实现QA系统构造的模块化,这导致研究人员群体无法成功有效地将自己的研究建立在本领域之前的成果上。虽然的确有诸如OKBQA的模块化框架的存在,但OKBQA对查询生成关注的太少,其24个可重复利用的QA组件中只有一个是查询生成器。而且,不断增加的问题复杂程度给查询生成任务带来了几个难点:

  1. 处理大规模的知识库;

  2. 识别问题类型,诸如布尔型;

  3. 处理有噪声的标注;

  4. 对一些需要特殊查询特性的复杂问题的支持,诸如聚集、排序和比较等;

  5. 输入问题存在句法上的不明确性,如语序可以颠倒等。

因此,针对以上的问题及难点,本文提出了SPARQL查询生成器(SPARQL QueryGenerator, SQG),一个能够超越现有最高水平的,用于QA任务工作流的模块化查询构造器。SQG使用基于树形LSTMTree-LSTM)相似度的候选查询排名机制,能够处理含噪声的输入,且在基于DBpedia的大型Q/A数据集上经过评估。


贡献

文章的贡献有:

(1)给出了KBQA任务中QG任务的模块化、与其他子任务分开的正式定义。

(2)指出了影响QG任务性能的因素,并针对这些现有难点,提出了SQG这一模块化的、性能优良的查询生成器,并引入排名机制增强答案的准确度。


方法

(1)任务定义及理论基础

定义查询生成如下:给出问题字符串s和一个知识图谱K =E,R,T,其中E为实体集合,R为关系标签集合,为有序三元组集合。在QA工作流的之前阶段已执行实体和关系的链接,即已给出一个从s的子串(话语串)到知识图谱中的ER各自映射的集合M。查询生成这一任务即用 s, DM 来生成一个 SPARQL 查询。文中并未对D做出明确解释由于NEDRE模块会为问题中的每一个话语串列出一些候选注释,因此这一注释任务在此就不那么重要。基于查询生成的定义,可以定义高级查询生成任务:条件是每一个子串 s 都已映射到ER各自的一个非空子集上,即实体和关系都有一些候选注释。例如,如图 1 所示,实体“artists”有多个候选注释,诸如“dbo:Artist”,“dbo:artists”等。本文的实验表明考虑多个候选注释而不是只选择得分最高的注释会提升表现。

 

640?wx_fmt=png

1 一个经过NEDRE组件输出注释后的简单问题。

对于问句中每个已识别的话语串,根据可行度得分排名

列出一些候选注释。

 

本文猜想一个问题的形式化理解为知识图谱中的一个路径(walkw,其只含有输入问题s的目标实体 E 和关系 R,以及答案节点。其中,知识图谱K =E,R,T中的一个路径定义为一串边和这些边连接的节点:W = (e,r­­0,e1,r1,e2,…,ek-1,rk-1,ek),且对于 0≤i≤k-1,(ei,ri,ei+1)T。就一个实体集合E’和关系集合R’ 而言,当且仅当一个路径W包含 E’R’ 中的所有元素时,此路径为有效路径,即 eE’ : eWeR’ : eW若一个节点 eW e E’此节点即为未连接的,未连接节点用来连接一个路径中其他的节点。

获取有效路径有两步:第一步,先确定问题的类型(例如为布尔型或计数型),根据类型来从知识图谱中抽取一些有效路径,但因为这些路径可能会无法正确获取问题背后的意图,大部分路径可能都是输入问题的错误映射。这时就需要第二步,根据候选路径和输入问题的相似度来对候选路径排名。SQG的大体框架如下图2

 

640?wx_fmt=png

2 SQG的框架

2)查询生成

将任务限制在含有所有链接实体和关系的子图中,在其中列举出候选路径并直接映射到SPARQL查询中。另外还需要识别问题类型才能从有效路径中创建结构正确的候选查询。

获取子图:从一个充满链接实体E作为节点的空子图开始,增加与在知识图谱中存在的链接关系R相对应的边,如图3中实线所示。在这一步中,一个关系可能连接两个子图中已有的节点,也可能将一个实体与一个未连接的节点相连。这样一来这个子图就可能包含一些有效路径,但根据问题的意图,可能需要包含距离实体两跳(hop)的节点,故这些有效路径可能都不是正确的。比如在图3中,由于答案节点“unbound1”距离实体“dbr:Send_It_On”两跳,就没有被包含在当前的子图(由实线连接)中。为了解决这个问题且避免在底层的知识图谱中搜索空间过大,本文的做法是用候选关系集合R来扩大子图中现有的边并且排除现有边代表的关系。如图3所示,虚线代表扩展的边。获取子图的算法如算法1所示。

640?wx_fmt=png

3 为已标注候选实体和关系的所给问题获取的子图;

实线表示的是在一跳距离上的子图;

虚线是在大于一跳距离上的子图;

圆圈代表未连接节点,方框中是链接实体,

边是知识图谱中的关系。

640?wx_fmt=png

算法1 获取子图


列出候选路径:获取覆盖了问题中所有实体和关系的子图之后,视每个未连接节点为潜在的答案节点,由此需要寻找有效路径,有效路径的定义上文已给出。例如,图4中有四个有效路径。若子图中只有一个有效路径,映射该路径到SPARQL查询上并将其报告为所给问题对应的查询;若有不同类型的问题,比如要求计数或者是返回布尔值的问题,可能还需要进一步的扩大;若不只有一个有效路径,则需要执行如下文所示的排序任务。

 

640?wx_fmt=png

4 找到的四个候选路径,分别用不同的颜色表示


问题类型分类:SQG支持简单和复合问题。为了支持诸如布尔型和计数型的问题,首先需要识别问题的类型。本文的做法是训练一个SVM和朴素贝叶斯模型以根据问题的TF-IDF表示来将其分为布尔型、计数型或是列举型。给出问题的类型之后,查询生成器就可以根据类型来格式化查询。例如,查询生成器会为一个计数型查询的SPARQL查询输出变量增加相应的函数。

3)查询排名

本文猜想路径的结构是用来区分候选路径与输入问题之间相似度的一个重要特性。比如,图7中,已生成的四个路径有独特的结构。因此,排名模型就应该需要包含输入问题的结构。

本文给出的排名模型基于树形LSTMTree-LSTM),该模型考虑候选路径关于问题句法结构上的树形表示,以此来计算相似度。树形LSTM旨在收纳在子节点中的信息,它考虑到子节点的状态来计算其内在状态和输出。这一结构使得树形LSTM能够轻松地涵盖本文中输入的树形结构。

640?wx_fmt=png

5 排名模型结构

 

排名模型:图 5 展示了排名模型的架构,使用两个树形LSTM来将输入的路径和问题映射到一个潜在向量化的表达中。之后采用一个相似度函数计算相似度并来排名。在处理问题的树形LSTM准备阶段,用一个占位符来代替实体的表面提及(surface mentions),在这之后创建一个依存分析树,如图 6。然后,查询树形LSTM接收候选路径的树形表示,如图7,其中只有7a是输入问题的正确表达。

640?wx_fmt=png

6 问题“What are some artists on the show whose

opening theme is Send It On? ”的依存分析树

 

640?wx_fmt=png

7 候选路径的树形表示及其自然语言意思,其中颜色同图4


实验

1)实验相关细节

SQGPython/Pytorch实现,其中排名模型中,单词表示采用Glove单词分词工具。实验的数据集为包含5000个问题-答案对的LC-QuAD,不过实验时用的是其中的3200对。对于排名模型的数据集生成,采用Stanford分析器来产生输入问题以及(查询生成步骤中生成的)候选查询的依存分析树,并将数据集划分成70%/20%/10%分别用于训练/开发/测试。

用精确率、召回率和F1值来衡量SQG的性能,基线系统为SinaNLIWOD

除此之外,本文还分别对SQG的子任务,即问题类型分类、查询生成及排名模型进行了评估。

问题类型分类的评估中,评估结果独立于实体/关系链接模块,在数据集的50%上执行k-折交叉验证,以训练模型并找到最优参数值然后用它评估分类器,分别评估了朴素贝叶斯和SVM的精确率、召回率和F1值。

在查询生成器的评估中,引入三个评估情形。第一个是Top-1 correct,只给出正确的链接实体/关系,以提供模型性能的上界估计。第二个是用于评估SQG健壮性的Top-5 EARL+correctEARL是一个用于NERRE任务的工具,此评估情形考虑来自于EARL的每个实体/关系的5个候选(查询)列表,为了评估SQG独立于链接系统之外的性能,当其不存在于列表中时,插入正确的目标实体/关系。第三个是Top-5 EARL,用EARL的输出来评估QG组件在一个功能正常的QA系统中的性能。

对于排名模型,本文实验了两种计算相似度的函数,分别为余弦相似度和基于神经网络的函数,不过经测试神经网络的方法明显优于余弦相似度,因此结果中只分别评估三种情形下,神经网络方法计算相似度的结果。

 

2)实验结果

如下表1所示,SQG表现明显优于基线系统。基线系统中有三个缺点,一是必须要接收正确的实体/关系输入;二是查询扩大的能力有限;三是缺少排名机制,这些问题在SQG中都得到了解决。

640?wx_fmt=png

1 SQG与现有成果的比较


问题类型分类的评估结果如下表2所示,尽管模型简单,但大量的多样化训练数据确保了其优良性能。SQG避免了手写模式集,因此它在不同环境下的应用性更强。

640?wx_fmt=png

2 LC-QuAD数据集上,问题类型分类器的准确率

 

查询生成器的评估结果如下表3所示。在Top-1 correct中,由于只有真正的目标实体/关系被给到了查询生成器中,所以有效路径数量非常低。在 Top-5 EARL+correct 可看出查询生成器能够处理有噪声的输入,并能够涵盖98%的问题,并且平均每个问题生成的查询增加到了2.25。在Top-5 EARL中,表现显著下降,因为对于85%的问题,EARL提供的是部分正确而不是完全正确的注释。如果只考虑EARL能够容纳所有正确目标链接的问题,覆盖率就能够达到98%

 

640?wx_fmt=png

3 查询生成器的评估标准

 

排名模型的数据集细节如下表 4。在 Top-1 correct 中,每个问题生成的查询数量是1.18,因为没有很多可能的链接实体/关系的方式。表中第一行结果中正确/错误数据的不均衡导致排名模型接收的是一个不平衡的数据集,因为数据集中的样本大多是正例。而在Top-5 EARL+correct中,生成的查询数量增加带来训练数据数量和多样性的增加,此时正确和错误数据的分布几乎是平衡的,这带来模型性能上的提升。在Top-5 EARL中,尽管生成的查询的平均数相比前两种情形更高,但正确和错误数据的分布仍不均衡,这是因为72%的情况下没有路径被生成,导致生成的查询总数远比其他情形少。错误如此之高是因为NEDRE组件提供的错误注释。

 

640?wx_fmt=png

4 每一个情形中正误数据的分布

 

排名模型的评估结果如下图5。在 Top-1 correct 中,尽管数据集分布不均衡,排名模型也能达到74%F1值,但由于此情形下平均查询数量只有1.18,故此结果不能准确地反映模型的性能。在Top-5 EARL+correct情形下,F1值增加到84%,表明模型相对于第一种情形,在数据集更大和更均衡的情况下表现更好。在Top-5 EARL中,微F1值下降到74%。这是由于数据集的不平衡和数量小。

640?wx_fmt=png

5 使用排名最高的查询得到的排名模型微准确率


总结

本文探讨了QA系统中查询生成任务的难点,引入了可以轻松集成进QA工作流的模块化查询生成器SQG,其先生成候选查询,再进行排名。实验表明SQG性能优于现有的查询生成方法。

 



OpenKG


开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

640?wx_fmt=jpeg

点击阅读原文,进入 OpenKG 博客。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java多线程系列(十一):ReentrantReadWriteLock的实现原理与锁获取详解

我们继续Java多线程与并发系列之旅,之前我们分享了Synchronized 和 ReentrantLock 都是独占锁,即在同一时刻只有一个线程获取到锁。 然而在有些业务场景中,我们大多在读取数据,很少写入数据,这种情况下,如…

这篇顶会paper,讲述了疫情期间憋疯的你和我

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术编 | 小轶2020年净忙着见证历史了。年初疫情爆发后,大家的生活模式也因为疫情发生了巨变。经历了史上最长假期,躺尸太久,到后来满脑子只想开学/复工。今年KDD会议上有一篇很…

论文浅尝 | Knowledge Vault: 全网规模的知识概率融合方法

论文笔记整理:吴桐桐,东南大学博士生,研究方向为自然语言处理。链接:https://www.cs.ubc.ca/~murphyk/Papers/kv-kdd14.pdf基于机器学习,Knowledge Vault不仅能够从多个来源(文本,表格数据&…

java程序员的必用的9款开发工具

今天推荐java程序员开发利器,包含如如下: 开发环境: Eclipse IntelliJ IDEA IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn等&#xff…

动态规划应用--搜索引擎拼写纠错

文章目录1. 字符串相似度1.1 莱文斯坦距离1.2 最长公共子串长度2. 计算编辑距离2.1 莱文斯坦距离2.2 最长公共子串长度3. 搜索引擎拼写纠错4. 练习题在 Trie树那节讲过,利用Trie可以进行关键词提示,节省输入时间。在搜索框中你不小心打错了字&#xff0c…

玩转算法之面试第十章-贪心算法

leetcode 455 分配饼干 尝试将最大的饼干给最贪心的朋友 如果满足&#xff0c;则1 如果不满足&#xff0c;则将最大的饼干给次贪心的朋友&#xff0c;一次类推 试图让最多的小朋友开心 在这里插入代码片 #include<iostream> #include<vector>using namespace …

论文浅尝 | 基于知识库的自然语言理解 04#

本文转载自公众号&#xff1a;知识工场。罗康琦&#xff0c;上海交通大学计算机系2019届博士&#xff0c;研究方向为自然语义理解和知识图谱。2012年获得华中科技大学软件工程学士学位&#xff0c;现就职于京东数据科学实验室&#xff08;Data Science Lab&#xff09;。他曾在…

BERT跨模态之后:占领了视觉常识推理任务榜单TOP 2!

星标/置顶小屋&#xff0c;带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 小鹿鹿lulu编 | YY前言由于 BERT-like 模型在 NLP 领域上的成功&#xff0c;研究者们开始尝试将其应用到更为复杂的 多模态 任务上。要求模型除文本数据以外&#xff0c;还要接收其他模态的数据&#xf…

常见的算法面试问题以及代码实现

1 时间复杂度分析 一个简单的时间测试代码如下&#xff1a; #include<iostream> #include<cmath> #include<ctime>using namespace std;int main(){for(int x1;x<9;x){int npow(10,x);clock_t startTimeclock();int sum0;for(int i0;i<n;i)sumi;clock…

阿里P8架构师谈:高并发与多线程的关系、区别、高并发的技术方案

什么是高并发&#xff1f; 高并发&#xff08;High Concurrency&#xff09;是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况&#xff0c;主要发生在web系统集中大量访问收到大量请求&#xff08;例如&#xff1a;12306的抢票情况&#xff1b;天猫双十一活动…

LeetCode 1. 两数之和(哈希)

文章目录1. 题目2. 解题1. 暴力解法2. 哈希法3. python3解答1. 题目 题目链接&#xff1a;https://leetcode-cn.com/problems/two-sum/ 给定一个整数数组 nums 和一个目标值 target&#xff0c;请你在该数组中找出和为目标值的那 两个 整数&#xff0c;并返回他们的数组下标。…

论文浅尝 | TuckER:基于张量分解的知识图谱补全

笔记整理&#xff1a;孙泽群&#xff0c;南京大学计算机科学与技术系&#xff0c;博士研究生。论文链接&#xff1a;https://arxiv.org/abs/1901.09590背景知识图谱是图结构的数据库&#xff0c;以三元组(es, r, eo)的形式存储事实&#xff0c;其中es和eo分别表示主语和宾语实体…

阿里Java P系列技术要求(P5-P7)

阿里p系列薪资&#xff08;最新数据比这个高1倍左右&#xff09; 阿里P5&#xff08;高级研发工程师&#xff09; 工作要求&#xff1a; 能独立完成日常工作&#xff0c;并能够对一些方案提出自己的建议。 基本考核就是能上手独立完成工作&#xff0c;熟练掌握。 技能要求…

如何配置一台深度学习工作站?

星标/置顶小屋&#xff0c;带你解锁最萌最前沿的NLP、搜索与推荐技术这篇文章主要介绍的是家用的深度学习工作站&#xff0c;典型的配置有两种&#xff0c;分别是一个 GPU 的机器和四个 GPU的机器。如果需要更多的 GPU 可以考虑配置两台四个 GPU 的机器。如果希望一台机器同时具…

LeetCode 2. 两数相加(单链表反转)

题目链接&#xff1a;https://leetcode-cn.com/problems/add-two-numbers/ 给出两个 非空 的链表用来表示两个非负的整数。其中&#xff0c;它们各自的位数是按照 逆序 的方式存储的&#xff0c;并且它们的每个节点只能存储 一位 数字。 如果&#xff0c;我们将这两个数相加起…

报名 | 全国知识图谱与语义计算大会(CCKS 2019)评测任务发布

全国知识图谱与语义计算大会是由中国中文信息学会语言与知识计算专委会定期举办的全国年度学术会议。CCKS 2018吸引了来自学术界和工业界的超800人参加。2019 年全国知识图谱和语义计算大会(www.ccks2019.cn) 将于2019年8月24日至8月27日在杭州召开&#xff0c;CCKS 2019的主题…

UML是什么?UML常用图以及建模工具有哪些?

“ 在做项目设计方案的时候&#xff0c;理解为需求后&#xff0c;我们都会做技术设计方案&#xff0c;这个时候就需要用到UML建模&#xff0c;涉及到UML常用图形以及工具画图&#xff0c;以下我会详细介绍UML图形和我个人推荐的UML建模工具。 UML即Unified Model Language&am…

炼丹必备!推荐一个超级好用的机器学习云平台

矩池云是一个专业的国内深度学习云平台&#xff0c;拥有着良好的深度学习云端训练体验&#xff0c;和高性价比的自建GPU集群资源。高性价比矩池云拥有很高的性价比&#xff0c;其的计费方式主要分为按时租与按周/月租。按时租用采用的是分钟级的实时计费模式&#xff0c;满足了…

直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置

JVM基本是BAT面试必考的内容&#xff0c;今天我们先从JVM内存模型开启详解整个JVM系列&#xff0c;希望看完整个系列后&#xff0c;可以轻松通过BAT关于JVM的考核。 BAT必考JVM系列专题 1.JVM内存模型 2.JVM垃圾回收算法 3.JVM垃圾回收器 4.JVM参数详解 5.JVM性能调优 JV…

论文浅尝 | 基于平行新闻的Bootstrapping关系抽取

笔记整理&#xff1a;吴锐&#xff0c;东南大学大四本科生&#xff0c;研究方向为自然语言处理。Citation&#xff1a;Michael Glass, K. B. . (2012). Bootstrapping relation extraction using parallel news articles. Retrieved from https://pdfs.semanticscholar.org/bfa…