Effective Deep Memory Networks for Relation Extraction
Citation:Zeng, D., Liu, K., Chen, Y., & Zhao, J. (2015). Distant Supervision forRelation Extraction via Piecewise Convolutional Neural Networks. Proceedings ofthe 2015 Conference on Empirical Methods in Natural Language Processing,(September), 1753–1762. https://doi.org/10.18653/v1/D15-1203
动机
本文将高效深度记忆网络应用于远程监督的关系抽取,基于的观察有两点:
(1)句子中实体对的上下文单词对于判断其关系的重要性是不同的;
(2)不同的关系之间存在依存关系;
本文提出的模型包括两个基于注意力的记忆神经网络,第一个是单词级别的记忆网络,用于句子中不同单词的权重学习,每个单词的权重与两个实体有关;第二个是关系级别的基于注意力的记忆神经网络,用于学习不同句子实例的权重和关系间的依存关系。
实验结果表明本文提出的方法比现有最好的方法有较大提升。
贡献
(1)本文提出一个包含两个记忆网络的神经网络架构,能够建模每个单词与两个实体的语义相关性和关系间的依存关系;
(2)本文提出的方法在真实数据集上超过所有已有方法;
方法
文章提出的神经网络模型包括三个模块:(1)单词级别的记忆网络,用于表示句子中实体对的上下文信息,即生成每个句子包含的实体对信息的向量;(2)关系级别的记忆网络,用于将实体对对应的句子集表示成相对于每一种关系的向量表示;(3)输出层,以句子集相对于每一种关系的向量表示作为输入,得到实体在各种关系上的可能性;
下面着重介绍单词级别的记忆网络和关系级别的记忆网络:
单词级别的记忆网络
单词级别的记忆网络如上如左下角所示,以句子作为输入,生成表示句子的向量。模型流程为:
(1)以句子作为记忆神经网络的输入,其中实体的上下文单词做为外部记忆memory,实体单词作为第一个隐藏层的输入;
(2)第一个隐藏层使用包括两个部分,其一是注意力网络,得到memory中每个单词相对于实体单词的重要性权重,其二是对对输入的分线性变换,两者相连接作为下一个隐藏层的输入;
(3)后面的几个隐藏层同第一个隐藏层的结构类似,多层累积形成深度的记忆网络,从而提取出memory中更抽象的实体信息;
(4)使用卷积神经网对句子提取特征,得到句子的特征表示;
(5)将记忆神经网络与卷积神经网络的输出相结合,得到句子的最终表示。
关系级别的记忆网络
关系级别的记忆网络如上如右下角所示,以句子向量的集合作为输入,对于每一种关系输出一种句子集合的表示。关系级别的记忆网络的模型流程为:
(1)将句子向量序列输入第一层注意力网络,得到每个句子的重要性权重,并对句子向量加权求和,得到句子集合的初步表示;
(2)使用各种关系的初步集合表示输入关系级别的注意力网络,学习各种关系间的依存关系,得到句子集合相对于每一种关系的表示。
实验
本文实验采用的数据集是在(Rediel et al, 2010)数据集基础上过滤的数据集,数据集的情况如下表:
文章进行了heldout实验,并与当时已有的其他方法做对比,结果如下图,可见本文的方法整体优于当前已有的其他方法。
文章为了验证两个记忆网络的作用,分别去掉两个记忆网络进行试验,结果如下图所示,可见去掉任何一个记忆网络都会降低模型的性能,因此两中记忆网络对模型的提升都是重要的。
论文笔记整理:刘兵,东南大学博士,研究方向为自然语言处理、机器学习。
OpenKG.CN
中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。
- Java多线程详解5【面试+工作】
- Java多线程详解6【面试+工作】
- MySQL备份恢复第二篇(r5笔记第6天)
- SpringMVC 中配置 Swagger 插件.
- MySQL和Oracle对比学习之事务(r5笔记第4天)
- 【面试宝典】Java如何打印数组
- MySQL数据导入导出牛刀小试(r5笔记第3天)
- SpringMVC 异常处理.
- 一条简单的sql在11g和12c中的不同(r5笔记第2天)
- 浅析 SpringMVC 原理和配置.
- 使用impdp不当导致的数据丢失问题(r5笔记第1天)
- MySQL数据库 Event 定时执行任务.
- Tomcat 日志分割.
- crontab导致的频繁发送邮件的问题(r5笔记第20天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法