论文浅尝 | 基于知识图谱难度可控的多跳问题生成

论文笔记整理:谭亦鸣,东南大学博士生,研究兴趣:知识图谱问答。


     

来源:ISWC 2019

链接:https://link.springer.com/content/pdf/10.1007%2F978-3-030-30793-6_22.pdf

 

本文提出一个end2end神经网络模型以知识图谱为数据源,自动生成复杂的多跳问题,且问题难度是可控的。该模型以一个子图(来自知识图谱)及预设的问题答案为输入,利用基于transformer的模型生成自然语言问题。问题难度的控制因子基于命名实体的popularity指标构建得到。实验方面,利用现有的两个2-hops问答数据集,构建训练/测试数据得到的实验结果验证了该模型可以生成高质量,流利,且与输入子图密切相关的自然语言问题。

相关数据集和源码链接传送门:https://github.com/liyuanfang/mhqg.

动机

目前最好的KG QA模型基于神经网络建立,这种数据驱动的模型需要大量的训练数据,包括知识图谱中的三元组集,问题集以及对应的答案数据。为了迎合这种数据需求,近些年来,很多问答数据集被构建出来,包括简单的Single-hop信息的问题,以及更复杂信息的问题。其中复杂问题数据集又大体可以分为两类:多跳推理或者离散型推理问题。

但是,随着上述数据集被充分利用之后,模型性能的进一步提升又受到了数据集规模的限制,虽然这对Single-hop问答没什么影响,其性能在实验数据上已经媲美人类问答水平(Single-hop问题难度并不高),对于复杂问题则不然,其依然需要更多高质量的问答数据集提升模型的质量。显然复杂问题相对简单问题数据的建立难度更高,大部分现有的复杂问题都是基于人工或半自动的方式得到。

因此本文拟利用现有的复杂问题集作为训练数据(包含问题子图,对应的自然语言问题reference以及答案,来自COMPLEXWEBQUESTIONS及PathQuestion数据集),例1描述了这些数据的形式:

             

             

方法

本文将基于知识图谱的问题生成任务看作一个Seq2Seq学习问题:

假定背景知识(图谱)为G,其中包含一系列三元组事实,给定一个子图g(来自G),及n个三元组,EA表示三元组中的答案实体(可能不唯一,建例1的第二张图),模型将会生成一个自然语言问题Q = (w1,…,wm),生成过程可以描述如下:

             

θ表示模型参数

模型的框架如下图所示:

             

这个框架整体还是类Transformer结构,主体分为编码和解码两个部分,相关网络细节就不多赘述。

关于知识图谱编码

对于子图g,编码器以其embedding作为输入(对g中的三元组做embedding),令d_e表示实体/关系的embedding维度,d_g 表示三元组embedding的维度

初始化阶段,三元组的embedding由主体,谓词,客体的embedding拼接,加之其余值随机初始化以匹配三元组的embedding维度

每个E_A答案实体还被embedding到一个d_e维的向量中,通过一个多层感知机学习该实体是否是一个答案实体。

接着对答案embedding和原始实体embedding做元素加法以获得最终对每个答案实体的embedding

因此,对于包含n个三元组的子图g,可以表示为一个n×d_g矩阵G,以该矩阵为输入,Transformer 编码器将其映射为一个连续表示序列Z = (z1,…,zn)∈R^{n×dg}

令Q,K,V分别表示编码器中的query,key和value矩阵,给定输入G,使用query矩阵对相关的三元组做软筛选(soft select)并积累Attention,公式如下:

             

其中,KT为K的转置      均为可训练模型参数

为了获得不同三元组在不同表示子空间的信息,作者使用包含k个head的Multi-head attention,并汇总它们如下:

             

其中,   ,      

汇总后的输出x被传递到一个前馈网络,如下:

             

关于难度评价模型

本文主要提到了两个衡量难度的因素:问题中实体链接的confidence;子图中实体的selectivity

前者指的是对问题做命名实体识别时,具有较高confidence的实体识别一般具有较小的ambiguity,这使得子图很容易理解所问的目标实体,且生成的问题也更易于回答。

后者指的是识别完实体后图谱中可匹配的实体的候选数量,当候选实体较多时,意味具有更低的selectivity,这表示问题所问的内容具有较高的模糊性,也就更难。

基于此,作者构建了难度评价模型如下:

             

其中G和q分别表示子图和问题,Con表示confidence,Sel表示selectivity,该难度得分被标准化到[0,1]之间。考虑单靠得分不具备明确的区分度,比如想生成较难的问题该怎么定义阈值,因此作者随机抽取了200个简单例子做难度测量,最终取其得到的最高值作为阈值。

 

关于带有难度控制因子的解码

本文利用一个多层感知机DE将难度信息编码进解码器,其由输入线性层,整流线性单元层和输出线性层构成。公式如下:

             

其中,x表示难度level,W和b是可训练的模型参数。

实验

数据集相关

实验使用到了三个多跳问题集:

WebQuestionsSP,ComplexWebQuestions,PathQuestion

对于每个实例,WebQuestionsSP,ComplexWebQuestions都包含自然语言问题,SPARQ query及答案实体和一些辅助信息

PathQuestion相对上述数据集缺少了实体对应知识库(Freebase)的ID,因此处理方式稍有不同。

数据集统计信息如下表:

             

作者对其实验细节在文章中做了详细描述,有需要可以去瞅瞅

 

实验结果

             

由于是自然语言生成类的任务,这里使用的评价指标均为翻译常用的自动评价指标BLEU,METEOR等

 同时,作者也提供了人工评价结果如下:

             


 

OpenKG

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

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

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

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

相关文章

LeetCode 933. 最近的请求次数(queue)

1. 题目 写一个 RecentCounter 类来计算最近的请求。 它只有一个方法:ping(int t),其中 t 代表以毫秒为单位的某个时间。 返回从 3000 毫秒前到现在的 ping 数。 任何处于 [t - 3000, t] 时间范围之内的 ping 都将会被计算在内,包括当前&…

如何融合深度学习特征向量?

本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作 -----》我是传送门 关注后,回复以下口令: 回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读) 回复【入群】&#xf…

将军令:数据安全平台建设实践

背景 在大数据时代,数据已经成为公司的核心竞争力。此前,我们介绍了美团酒旅起源数据治理平台的建设与实践,主要是通过各种数据分析挖掘手段,为公司发展决策和业务开展提供数据支持。 近期,业内数据安全事件频发&#…

Android官方开发文档Training系列课程中文版:与其它APP交互之将用户带到其它的APP

原文地址:http://android.xsoftlab.net/training/basics/intents/index.html 导言 一个Android APP应用通常会有若干个Activity。每一个Activity所展示的用户界面用于允许用户执行特定的任务(比如浏览地图或者是拍照)。为了把用户从一个activity带到另一个activit…

开源开放 | 图数据交互可视化分析框架 InteractiveGraph v0.3 版本发布

图数据交互可视化分析框架 InteractiveGraph 日前发布 v0.3 版本,下载地址:https://github.com/grapheco/InteractiveGraph/releases/tag/0.3.1图数据模型具有对实体关系的表达能力强、属性 及结构可扩展性好、关联查询高效等优势。在对海量 的多元异构信…

LeetCode 589. N叉树的前序遍历(前序遍历)

文章目录1. 题目2. 解题2.1 递归2.2 循环1. 题目 2. 解题 2.1 递归 class Solution { public:vector<int> preorder(Node* root) {vector<int> ans;preRec(root,ans);return ans;}void preRec(Node* root, vector<int> &ans) {if(root NULL)return;ans…

打脸!一个线性变换就能媲美“最强句子embedding”?

文 | 苏剑林&#xff08;追一科技&#xff09;编 | 小轶小编&#xff1a;前几周小屋刚推完《还在用[CLS]&#xff1f;从BERT得到最强句子Embedding的打开方式&#xff01;》&#xff0c;苏神就来打脸了_(:з」∠)_BERT-flow来自论文《On the Sentence Embeddings from Pre-trai…

AI Challenger 2018:细粒度用户评论情感分析冠军思路总结

2018年8月-12月&#xff0c;由美团点评、创新工场、搜狗、美图联合主办的“AI Challenger 2018全球AI挑战赛”历经三个多月的激烈角逐&#xff0c;冠军团队从来自全球81个国家、1000多所大学和公司的过万支参赛团队中脱颖而出。其中“后厂村静静”团队-由毕业于北京大学的程惠阁…

论文浅尝 | 融入知识的弱监督预训练语言模型

论文笔记整理&#xff1a;叶群&#xff0c;浙江大学计算机学院&#xff0c;知识图谱、NLP方向。会议&#xff1a;ICLR 2020链接&#xff1a;https://arxiv.org/pdf/1912.09637.pdf Abstract预训练语言模型不仅在传统的语言学任务上取得了很好的表现&#xff0c;在一些涉及到背景…

2021 年 1 月程序员薪资出炉,持续上涨!你过平均线了吗?

瑟瑟发抖&#xff01;程序员薪资报告又来了。2021 年 1 月的薪资报告一定能给你个大惊喜&#xff01;程序员薪资扶摇直上。&#xff08;2021年1月程序员收入情况&#xff09;1 月全国程序员平均工资 14915 元&#xff0c;工资中位数 12500 元&#xff0c;其中 96% 的人工资介于…

LeetCode 590. N叉树的后序遍历(后序遍历)

文章目录1. 题目2. 解题2.1 递归2.2 循环1. 题目 2. 解题 2.1 递归 class Solution { public:vector<int> postorder(Node* root) {vector<int> ans;postRec(root, ans);return ans;}void postRec(Node* root, vector<int> &ans){if (root NULL)return…

人物志 | MIT 科技创新“远见者”:美团 NLP 负责人王仲远

2019 年 1 月 21 日&#xff0c;《麻省理工科技评论》发布了 2018 年“35 岁以下科技创新 35 人”&#xff08;35 Innovators Under 35&#xff09;中国榜单&#xff0c;美团点评AI平台部 NLP 中心负责人、点评搜索智能中心负责人王仲远获评为“远见者”。 Innovators Under 35…

论文浅尝 | GraphSAINT—基于图采样的归纳学习方法

论文笔记整理&#xff1a;杨海宏&#xff0c;浙江大学博士生&#xff0c;研究方向为开放世界下的多语言知识问答。1. 简介受显存的因素限制&#xff0c;应用图神经网络于大规模图学习任务上面临“邻居爆炸&#xff08;Neighbor Explosion&#xff09;”问题&#xff0c;导致网络…

LeetCode 105. 已知前序中序 求二叉树

文章目录1. 题目2. 解题1. 题目 类似POJ 2255 Tree Recovery 2. 解题 class Solution { public:TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {unordered_map<int,int> m;//哈希表for(int i 0; i < inorder.size(); i) {…

李在福羽毛球教学

2020年11月27日更 工作的业余之时一定要记得好好健身哦&#xff0c;争取做个健康小达人很行动上的小巨人。不困于时间、不困于地点、不困于等等。没有借口哦&#xff0c;投资自己的身体也是未来很重要的一部分噶。 1 握拍&#xff1a;大拇指和四个手指头握紧&#xff0c;可以更…

不讲武德,只用标签名就能做文本分类

文 | 谁动了我的炼丹炉编 | 兔子酱今天给大家介绍一篇微软研究院在EMNLP2020上发表的论文&#xff0c;主题是弱监督文本分类。看到标题的你可能会和我刚开始一样震惊&#xff0c;只是知道标签名怎么给文本分类呢&#xff1f;是的&#xff0c;虽然听起来不可思议&#xff0c;但看…

Android官方开发文档Training系列课程中文版:分享简单数据之发送简单数据给其它APP

原文地址&#xff1a;http://android.xsoftlab.net/training/building-content-sharing.html 引言 Android应用程序有一项伟大的事情就是它们有可以与其它应用程序交流及整合。为什么不重新使用已经存在于其它APP中的非核心功能呢&#xff1f; 这节课覆盖了一些共同的方式&a…

美团点评技术年货:一本覆盖各技术领域、1200+页的电子书

春节已近&#xff0c;年味渐浓。 又到了我们献上技术年货的时候。 不久前&#xff0c;我们已经给大家分享了技术沙龙大套餐&#xff0c;汇集了过去一年我们线上线下技术沙龙99位讲师&#xff0c;85个演讲&#xff0c;70小时分享。 今天出场的&#xff0c;同样重磅——技术博客2…

论文浅尝 | 基于文本关联的知识图谱的无监督嵌入增强

来源&#xff1a;IJCAI2019论文链接&#xff1a; https://www.ijcai.org/proceedings/2019/0725.pdf概述知识图谱嵌入是从多关系数据中提取数据的工具&#xff0c;最近的嵌入模型对从现有数据库中推断新事实具有很高的效率。然而&#xff0c;这种精确结构的数据通常在数量和范围…

ICLR2021 Oral |9行代码提高少样本学习泛化能力

文 | 杨朔知乎本文已获作者授权&#xff0c;禁止二次转载介绍一篇我们刚刚发表在ICLR2021 Oral上的一篇少样本学习工作&#xff0c;简单有效。题目&#xff1a;Free Lunch for Few-shot Learning: Distribution Calibration链接&#xff1a;https://openreview.net/forum?idJW…