论文浅尝 | 利用问题生成提升知识图谱问答

论文笔记整理:谭亦鸣,东南大学博士生,研究方向为知识库问答。


640?wx_fmt=png

来源:NLPCC2019

链接:http://tcci.ccf.org.cn/conference/2019/papers/183.pdf

           

    本文提出了一种利用问题生成提升知识图谱问答模型性能的方法(一个框架),动机主要有两个,其一是问答模型训练基于大量有标注问答数据集(人工成本高,且规模有限),其二是当问答模型面对训练过程中没见过的谓词(predicate)时,性能将会受到严重影响。因此作者提出基于现有知识图谱和文本语料,联合问答(QA)和问题生成(QG),将问题生成的结果用于问答模型的微调(fine-tune)中。

           

方法

1.    联合策略

作者提出使用对偶学习(dual-learning)联合QA和QG模型,训练的目标符合以下约束,其中 θqg 表示训练得到的 QG 模型,θqa 表示 QA 模型,QG 模型对于给定答案 a 生成的问题 q 需要对应 QA 模型对于问题 q 给出的答案 a:

640?wx_fmt=png

即对于给定的问答对 <q, a>,QA 和 QG 模型均需要最小化他们的初始损失函数,规则化后如下:

640?wx_fmt=png

作者给出了基于对偶学习的fine tuning过程如下图,初始训练数据集被分别用于QA和QG模型,而后QG模型将文本语料和其内容对应知识库的三元组(triple)作为输入生成<q, a>对,用于QA模型的fine tune:

640?wx_fmt=png

2.    问答模型

为了实验方便,本文的简化问答模型为一个关系分类模型(relation classification model),作者表示在现有高质量 Entity Linking的 基础上,实际影响问答性能的主要因素依赖于关系/谓词的识别精度。

作者构建了一个简单的RNN关系抽取模型,为了更好的支持模型对未识别谓词的处理能力,关系名被分解为词序列,因此关系抽取实质上是一种序列匹配+排序的过程。

问题的表示也使用了相同的RNN完成,且为得到更 general 的表示形式,问题中的实体均用<e>标记替换,得到类似于“where is <e> from”这样的形式,同时对于<e>的类型添加了约束,以避免模型训练中可能存在的样本冲突。

 

3.    问题生成模型

       作者基于 Seq2Seq 翻译模型(基于 GRU)设计并构建了本文的 QG 过程,该模型包含图谱和文本两个编码器:

图谱编码将给定的事实三元组中的头实体,谓词,尾实体分别进行编码,而后融合三者的编码结果,作为解码输入;

另一方面,对应事实三元组的文本信息也从Wiki中抽取获得,利用文本编码器编码,也作为解码过程的输入,从而实现基于知识库的自然语言问题生成。

 

实验

数据集

       本文实验使用的数据集包含以下两个:

       SimpleQuestion:一个包含超过 10 万标注数据的问题集,每个问题由一个实体和一个关系组成,这里作者使用到了它的子集 FB2M,包含 2M 的实体。

       WebQSP:一个中等规模的知识图谱问答数据集,包含单三元组和多三元组问题,作者使用 S-MART 实现实体链接。

 

实验结果

640?wx_fmt=png 为了验证模型对未知谓词的处理能力,作者分别取5%~100%训练集对模型进行评估,结果如表1所示,指标反映的都是关系检测的准确性。

 

问题生成的结果如下表所示:

640?wx_fmt=png

该评估包含BLEU-4自动评价和人工评价。

 

问答实验的结果如下:

640?wx_fmt=png

 


OpenKG

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

640?wx_fmt=jpeg

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

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

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

相关文章

顶会论文:基于神经网络StarNet的行人轨迹交互预测算法

1.背景 民以食为天&#xff0c;如何提升超大规模配送网络的整体配送效率&#xff0c;改善数亿消费者在”吃“方面的体验&#xff0c;是一项极具挑战的技术难题。面向未来&#xff0c;美团正在积极研发无人配送机器人&#xff0c;建立无人配送开放平台&#xff0c;与产学研各方共…

python操作mysql数据库实现增删改查

python操作mysql数据库实现增删改查 Python 标准数据库接口为 Python DB-API&#xff0c;Python DB-API为开发人员提供了数据库应用编程接口。 Python 数据库接口支持非常多的数据库&#xff0c;你可以选择适合你项目的数据库&#xff1a; GadFlymSQLMySQLPostgreSQLMicrosoft …

tf2: Gradients do not exist for variables when minimizing the loss.

WARNING:tensorflow:Gradients do not exist for variables when minimizing the loss. 情况一 该变量没有参与最后loss的计算 &#xff08;1&#xff09;如果直接没有参与计算&#xff0c;其实很好就能找出来&#xff0c;删掉无用变量即可&#xff1b; &#xff08;2&#xff…

LeetCode 654. 最大二叉树(递归)

文章目录1. 题目2. 解题1. 题目 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下&#xff1a; 二叉树的根是数组中的最大元素。 左子树是通过数组中最大值左边部分构造出的最大二叉树。 右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给…

Probe:Android线上OOM问题定位组件

配送骑手端App是骑手用于完成配送履约的应用&#xff0c;帮助骑手完成接单、到店、取货及送达&#xff0c;提供各种不同的运力服务&#xff0c;也是整个外卖闭环中的重要节点。由于配送业务的特性&#xff0c;骑手App对于应用稳定性的要求非常高&#xff0c;体现App稳定性的一个…

Android中使用官方提供好的功能使用说明(比如系统图库获取),也作为延生学习的学习文档

这篇文章最核心的就是去学习如何学习Android&#xff0c;如何去使用Android文档。 我们一般在刚开始接触开发的时候&#xff0c;如果遇到无法解决的问题&#xff0c;常常会百度&#xff0c;或者google去寻找答案&#xff0c;比如有个需求是获取系统中的图片&#xff0c;你可能…

再介绍一篇Contrastive Self-supervised Learning综述论文

文 | 黄浴源 | 知乎之前已经介绍过三篇自监督学习的综述&#xff1a;《怎样缓解灾难性遗忘&#xff1f;持续学习最新综述三篇&#xff01;》。这是最近2020年10月arXiv上的又一篇论文"A Survey On Contrastive Self-supervised Learning"。论文地址&#xff1a;https…

GCN-Based User Representation Learning for Unifying Robust Recommendation and Fraudster Detection

GCN-Based User Representation Learning for Unifying Robust Recommendation and Fraudster Detection 点击率预测&#xff1a;其主要思想是根据用户的历史行为对一组未评级的项目进行评级预测&#xff0c;然后从预测评级最高的项目中选择个性化推荐。 欺诈检测&#xff1a;…

公开课 | 知识图谱构建与应用概述

本文转载自公众号&#xff1a;博文视点Broadview。 AI是新的生产力&#xff0c;知识图谱是AI进步的阶梯。随着近年来人工智能的进一步发展&#xff0c;知识图谱也取得了一系列新的进展&#xff0c;并在各个行业中落地应用。知识图谱的相关技术已经在搜索引擎、智能问答、…

python中mysql更新字段中传参问题

更新表 可以使用“UPDATE”语句&#xff0c;更新表格内的现有记录: 示例 将地址栏由“Valley 345”改写为“Canyoun 123”: import mysql.connectormydb mysql.connector.connect(host"localhost",user"你的用户名",passwd"你的密码",databa…

LeetCode 217. 存在重复元素(哈希)

文章目录1. 题目2. 解题1. 题目 给定一个整数数组&#xff0c;判断是否存在重复元素。 如果任何值在数组中出现至少两次&#xff0c;函数返回 true。如果数组中每个元素都不相同&#xff0c;则返回 false。 示例 1:输入: [1,2,3,1] 输出: true 示例 2:输入: [1,2,3,4] 输出:…

美团BERT的探索和实践

2018年&#xff0c;自然语言处理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;领域最激动人心的进展莫过于预训练语言模型&#xff0c;包括基于RNN的ELMo[1]和ULMFiT[2]&#xff0c;基于Transformer[3]的OpenAI GPT[4]及Google BERT[5]等。下图1回顾了近…

解决AndroidStudio添加ProjectLibary后在编译时遇到的各种问题之解决方式索引(finished with non-zero exit value and so on...)

解决AndroidStudio添加ProjectLibary后在编译时遇到的各种问题之解决方式索引(finished with non-zero exit value and so on...)因为项目需要&#xff0c;我需要将一个外部工程作为Libary导入项目&#xff0c;起初导入还是比较简单的&#xff0c;但是在编译的时候就遇到了各种…

论文浅尝 | 探索将预训练语言模型用于事件抽取和事件生成

论文笔记整理&#xff1a;郝凯龙&#xff0c;南京大学硕士链接&#xff1a;https://www.aclweb.org/anthology/P19-1522.pdf动机传统的 ACE 事件抽取任务依赖于人工标注的数据&#xff0c;耗费大量的人力并且数据量有限&#xff0c;数据量不足给事件抽取带来了阻碍。传统的事件…

谷歌、CMU发文:别压榨单模型了!集成+级联上分效率更高!

文 | Sherry 不是小哀集成模型&#xff08;Ensemble&#xff09;可以提升模型的精度&#xff0c;但往往面临提升计算量的困境&#xff0c;用级联模型&#xff08;Cascade&#xff09;在预测时提前中断则可解决计算量的问题。最近&#xff0c;谷歌和CMU的研究者对此进行了深入的…

Linux-Centos 安装Anaconda(2021)

安装步骤 1、下载Anaconda到本地 Anaconda3-5.3.1-Linux-x86_64.sh2、上传本地 Anaconda 文件到 linux 服务器 rz # 打开笔记本方式上传3、安装 bash Anaconda3-5.3.1-Linux-x86_64.sh4、检查是否安装成功 conda info --envs配置步骤 如果没有安装成功&#xff0c;需要…

大数据技术和python开发工程师

一&#xff1a;大数据技术 简单来说&#xff0c;从大数据的生命周期来看&#xff0c;无外乎四个方面&#xff1a;大数据采集、大数据预处理、大数据存储、大数据分析&#xff0c;共同组成了大数据生命周期里最核心的技术&#xff0c;下面分开来说&#xff1a;一、大数据采集大数…

LeetCode 219. 存在重复元素 II(哈希)

文章目录1. 题目2. 解题1. 题目 给定数组nums和常数k&#xff0c;存在不同的i、j使得nums[i] nums[j]&#xff0c;且abs(i-j) < k。 输入: nums [1,2,3,1], k 3 输出: true 示例 2:输入: nums [1,0,1,1], k 1 输出: true 示例 3:输入: nums [1,2,3,1,2,3], k 2 输出…

记录对String.format(Formatter().format())方法的总结

String.format其实是调用的Formatter.format&#xff1a; public static String format(String format, Object... args) {return new Formatter().format(format, args).toString();}第一个参数是格式化字符串&#xff0c;第二个参数是可变的被格式化的参数。 我们主要看的是格…

Android静态代码扫描效率优化与实践

背景与问题 DevOps实践中&#xff0c;我们在CI(Continuous Integration)持续集成过程主要包含了代码提交、静态检测、单元测试、编译打包环节。其中静态代码检测可以在编码规范&#xff0c;代码缺陷&#xff0c;性能等问题上提前预知&#xff0c;从而保证项目的交付质量。Andro…