论文浅尝 | 以词-词关系进行分类的统一命名实体识别

1a6f4a14307affdd02714d1fbfae0f40.png

笔记整理:曹旭东,东南大学硕士,研究方向为知识图谱构建、自然语言处理

链接:https://arxiv.org/abs/2112.10070

1. 动机

在以前的工作中,命名实体识别(NER)涉及的主要问题有三种类型,包括平面、重叠(也称为嵌套)和不连续的命名实体识别,这些类型大多分别研究。最近,对于统一的NER模型的研究越来越多,它只需一个模型,就可以同时处理上述三种问题。目前表现最佳的方法主要包括基于span的模型和sequence-to-sequence模型,然而,现有的最优方法都有着不足,前者主要关注边界识别,后者可能受到曝光偏差的影响。

为了继续提升统一NER的效果,文章提出了一种新颖的方法,将统一的NER建模为word-word关系分类,即W2NER。该架构通过有效地建模实体词之间的相邻关系,解决了统一的NER的核心瓶颈。基于W2NER方案,文章开发了一个神经框架,其中统一的NER被建模为一个单词对的2D网格。然后,提出了多粒度的2D卷积来更好地调整网格表示。最后,使用共同预测器充分推理单词之间的关系。

2. 贡献

文章的贡献有:

1)提出了一种创新的方法,将统一的命名实体识别(NER)视为word-word关系分类,同时充分考虑了实体边界词之间的关系和实体内部词之间的关系;

2)为统一的命名实体识别(NER)开发了一个神经网络框架,在其中提出了一种多粒度的二维卷积方法,以充分捕捉近距离和远距离单词之间的相互作用;

3. 方法

(1)将NER看作word-word关系分类

任务可以形式化如下: 给定一个由Ntokenword组成的输入句子X = {x1, x2 xN},任务旨在提取每个标记对(xi, xj)之间的关系R,其中R是预定义的,包括NONE, Next-Neighboring-Word (NNW)Tail-Head-Word-* (THW-*)。这些关系如图1所示的示例:

I am  having aching  in  legs and  shoulders

dfcd0f882f7ecfb211ad494a933ed0ff.png

1 关系分类示例

NONE,表示该单词对在本文中没有定义任何关系。

Next-Neighboring-WordNNW):NNW关系表示该单词对属于一个实体

Tail-Head-Word-*THW):THW关系表示网格中某一行的单词是实体提及的尾部,而网格中某一列的单词是实体提及的头部。“*”表示实体类型。

在示例中,说明aching-in, in-legs, in-shoulders之间是NNWaching-legs, aching-shoulders之间是THW-S(symptom)

(2)模型框架:如下图2所示为本文提出的统一的命名实体识别(NER)的神经网络框架W2NER。

ed1bb0f345582be54313f065ffa128c2.png

2神经框架

框架的体系结构如图2所示,它主要由三个组件组成。

•编码器层:

利用BERT作为模型的输入。给定一个输入句子  ,将每个标记或单词  转换为词块,然后将它们输入预训练的BERT模块。经过BERT计算后,每个句子词可能包含几个片段的向量表示。为了进一步增强上下文建模,采用双向LSTM生成最终的单词表示。

•卷积层:

卷积层包括三个模块,包括一个具有规范化的条件层,用于生成词对网格的表示,一个BERT风格的网格表示构建,以丰富词对网格的表示,以及一个多粒度扩展卷积,用于捕获近词和远词之间的相互作用。

条件层:由于NNW关系和THW关系都是有方向的,因此,单词对  的表示  可以认为是  的表示  和  的表示  的组合,这种组合应该意味着  以  为条件。采用条件层归一化(Conditional Layer Normalization, CLN)机制来计算  

570439162f1f29ee681e129f94389aaa.png

其中,  为产生层归一化增益参数 γαα 和偏置 λββ 的条件。µσ是  各元素之间的均值和标准差。

BERT风格的网格:在BERT的启发下,用类似的思路丰富了词对网格的表示,其中张量  表示单词信息,张量  表示每对单词之间的相对位置信息,张量  表示网格中用于区分上下三角形区域的区域信息。然后,将三种嵌入连接起来,并采用多层感知器(MLP)将其降维并混合这些信息,以获得网格  的位置区域感知表示。

多粒度扩展卷积:在TextCNN的启发下,采用不同扩展率l(例如,l[1,2,3])的多个二维扩展卷积(DConv)来捕捉不同距离的单词之间的相互作用。

•共同预测层:

同时使用BiaffineMLP这两个预测器来计算两个独立的词对  的关系分布,并将它们组合起来作为最终的预测。

(3)损失函数

对于每个句子  ,的训练目标是最小化负对数似然损失形式化为:

28633f21c53920956f5f83ec2673ebad.png

其中N是句子中的单词数,  是表示单词对  的关系标签的二进制向量,  是预测的概率向量。r表示预定义关系集R的第r个关系。

4. 实验

(1)实验相关数据集

为了评估三个NER子任务框架,在14个数据集上进行了实验。

扁平的NER数据集有:CoNLL-2003,OntoNotes 5.0,OntoNotes 4.0,Weibo,Resume

实体重叠的NER数据集:ACE 2004中文和英文,ACE 2005中文和英文,GENIA

实体不连续的NER数据集:CADEC,ShARe13,ShARe14

选取的baselines有:Tagging-based方法,Span-based方法,Hypergraph-based方法,Seq2Seq方法等等。

(2)实验结果

对比实验:

在六个扁平数据集上评估框架。如表1所示,W2NER模型在CoNLL 2003和OntoNotes 5.0数据集上获得了93.07% F1和90.50% F1的最佳性能。W2NER模型在OntoNotes 5.0上的F1比另一个统一的NER框架高出0.23%。中文数据集的结果如表2所示,其中基线均为基于标注的方法。发现W2NER模型在OntoNotes 4.0、MSRA、Resume和Weibo上分别比之前的SoTA结果高出0.27%、0.01%、0.54%和1.82%。

eb5cb0cf9a59fd87c1357086121b1271.png

表1 英文扁平NER数据集的结果

4b37cfa56040c717b0ef182db16767b3.png

表2 中文扁平NER数据集的结果

表3给出了重叠的NER数据集和不连续NER数据集的结果。W2NER模型优于以前的工作。

a159b40695ac87474f6b1caf96b81b67.png

表3 英文重叠NER数据集的结果

8746683e7d3a0825e37588a7d4434661.png

表4 不连续NER数据集的结果

消融实验:

d697919bb230ea48c726e97360ef15a4.png

表5 消融实验结果

在CoNLL2003、ACE2005和CADEC数据集上消融了模型的各个部分。验证了多粒度扩展卷积的有效性,同时也证明了NNW关系对结果的重要性。

5. 总结

本文提出了一种对NER任务新颖的建模方法,看作word-word的关系预测,并且验证了NONE, Next-Neighboring-Word (NNW)和Tail-Head-Word-* (THW-*)的关系预测,可以很好的支撑NER的进行,同时解决了统一NER的问题,提出的新的模型表现优于已有模型。


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

0645cf3655f1bcbb79ea4ab89db02b17.png

点击阅读原文,进入 OpenKG 网站。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

每日一题——LeetCode1051.高度检查器

方法一 sort排序: 创建一个元素和heights一模一样的expect数组 ,将expect数组从小到大进行排序,比较heights和expect相同位置不同的元素个数 var heightChecker function(heights) {var expect [],count0for(const n of heights){expect.…

1、Excel工作场景和知识点总结

参考: 戴师兄–戴你玩转数据分析 Excel发挥战斗力的场景 地量级数据的存储 我们日常所用的各种数据表格,基本都以excel的.xlsx或者.xls格式进行存储。并且因为大家电脑上都有excel,这就使excel的通用性很高(我用excel做好一个表发给你&#x…

消息队列-RocketMQ-概览与搭建

RocketMQ 领域模型 RockeMQ整体结构预览 RocketMQ 中的一些概念 Topic:主题,可以理解为类别、分类的概念 MessageQueue:消息队列,存储数据的一个容器(队列索引数据),默认每个 Topic 下有 4 个队…

登录验证

JWT Json Web Token 定义了一种简洁的,自包含的格式,用于在通信双方以json数据格式安全的传输信息。由于数字签名的存在,这些信息是可靠的 组成 第一部分 header 头:记录令牌类型,签名算法等 第二部分 Payload 有效载荷…

servlet+jdbc+jsp实现登录界面的验证(基于MVC思想)

一、MVC的概念 MVC是模型(Model)和视图(View)以及控制器(Controller)的简写,是一种将数据、界面显示和业务 逻辑进行分离的组织方式,这样在改进界面及用户交互时,不需要重新编写业务逻辑,从而提高了 代码的可维护性。 M&#xf…

基于JavaWeb+SSM+Vue基于微信小程序的消防隐患在线举报系统的设计与实现

基于JavaWebSSMVue基于微信小程序的消防隐患在线举报系统的设计与实现 源码获取入口KaiTi 报告Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 KaiTi 报告 1.1 题目背景 随着信息化飞速发展,互联网不…

RabbitMQ(八)消息的序列化

目录 一、为什么需要消息序列化?二、常用的消息序列化方式1)Java原生序列化(默认)2)JSON格式3)Protobuf 格式4)Avro 格式5)MessagePack 格式 三、总结 RabbitMQ 是一个强大的消息中间…

网络层协议及IP编址

0x00 前言 本节为网络层协议及IP编址内容 IP地址的范围:0.0.0.0-255.255.255.255 IP分为网络位以及主机位。子网划分就是向主机位借位。 网络层协议 IPICMP(internet Control message protocol)IPX IP协议的作用 为网络层的设备提供逻…

程序语言相关知识——偏向Eigen矩阵

1 查看 Eigen库表示的矩阵 方法 1.1 列矩阵x在监视中,这样查看,数值右侧的圈圈 可用于更新数值 随程序 1.2 比较全的方法:来自于知乎:https://zhuanlan.zhihu.com/p/625334009?utm_id0 1.3 eigen的用法:https://ww…

linux高级管理——Squid代理

一、squid服务基础: 1.1缓存代理的概述: 代理的工作机制 当客户机通过代理来请求Web页面时.指定的代理服务器会先检查自己的缓存,如果缓存中已经有客户机需要的页面,则直接将缓存中的页面内容反馈给客户机:如果缓存中…

整合事务,名词,概念

1、MySQL是单进程多线程(而Oracle等是多进程),也就是说MySQL实例在系 统上表现就是一个服务进程,即进程,(通过多种方法可以创建多实例,再安装一个端口号不同的mysql,或者通过workben…

滞回比较器(施密特触发器)在软件中的应用-电池电压显示

1、单限比较器和滞回比较器的区别 在单限比较器中,输入电压在阈值电压附近的任何微小变化,都会引起输出电压的跃变。不管这种微小变化是来源于输入电压还是来源于外部干扰。因此,虽然单限比较器很灵敏,但是抗干扰能力差。在单限比…

学习Redis缓存

学习Redis缓存 NoSQL和SQL的区别缓存缓存作用缓存成本添加Redis缓存 Redis特征Redis中数据结构Redis通用命令String类型Key的层级格式Hash类型Redis的Java客户端 NoSQL和SQL的区别 缓存 缓存就是数据交换的缓冲区,是存储数据的临时地方,一般读写性比较高…

10款有趣的前端源码分享(附效果图及在线演示)

分享10款非常有趣的前端特效源码 其中包含css动画特效、js原生特效、svg特效以及小游戏等 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源 自毁按钮动画特效 自毁按钮动画特效 点击打开盒子可以点击自毁按钮 进而会出现自毁…

使用Python+selenium3.0实现第一个自动化测试脚本

这篇文章主要介绍了使用Pythonselenium实现第一个自动化测试脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 最近在学web自动化,记录一下学习过程。…

Linux驱动学习—中断

1、中断基础概念 1.1 什么是中断 CPU在正常运行期间&#xff0c;由外部或者内部引起的时间&#xff0c;让CPU停下当前正在运行的程序&#xff0c;转而去执行触发他的中断所对应的程序&#xff0c;这就是中断。 响应中断的过程&#xff1a; <1>中断请求 <2>中断…

Spring Cloud之OpenFeign异常处理

简易原理图 原理基于请求头传递错误消息&#xff0c;利用aop和全局异常拦截机制实现。 服务提供者 远程调用本地方法b&#xff0c;throw异常出来FeignExceptionAspect AOP拦截处理异常到请求头中&#xff0c;继续throwGlobalExceptionHandler处理&#xff0c;返回响应Respons…

1868_C语言单向链表的实现

Grey 全部学习内容汇总&#xff1a; GitHub - GreyZhang/c_basic: little bits of c. 1868_C语言中简单的链表实现 简单整理一下链表的实现&#xff0c;这一次结合前面看到的一些代码简单修改做一个小结。 主题由来介绍 以前工作之中链表的使用其实不多&#xff0c;主要是…

C++动态内存分配(动态内存分配函数)栈区

内存拷贝函数&#xff1a; void *memcpy(void *dest,const void *src,size_tn);#include<string.h>功能&#xff1a;从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest内存地址的起始位置 分配内存使用new 例如&#xff1a;salarynew int[num]; 最后需要释放…