Unified Named Entity Recognition as Word-Word Relation Classification

news2024/12/23 19:16:13

原文链接:https://arxiv.org/pdf/2112.10070.pdf

AAAI 2022

介绍

         NER主要包括三种类型:flatoverlap和discontinuous。目前效果最好的模型主要是:span-based和seq2seq,但前者注重于边界的识别,后者可能存在exposure bias。

        作者对entity words之间的相邻关系进行建模,将NER定义为一个word-word之间的关系分类任务,一共定义三种关系NONENext-Neighboring-Word(NNW)Tail-Head-Word-*(THW-S)如下图所示:

方法

        模型的整体架构如下图所示,主要包括三个部分:BERT和LSTM组合而成的encoder、用于建立和完善word-pair grid表征的卷积层,Biaffine和MLP联合的分类层

Encoder Layer

        使用BERT+BiLSTM来作为encoder,将一个词的pieces经过一个max pooling来得到该词的表征,送入到BiLSTM来进一步获取上下文信息,得到word表征为H=\left \{ h_{1},h_{2},h_{3},,,h_{N} \right \}\subseteq R^{N\times d_{h}}d_{h}表示每个word embedding的维度。

Convolution Layer 

        使用CNN来优化表征,包括三个模块,1)condition layer,用于生成word-pair grid的表征;2)用于丰富word-pair grid表征的bert式grid表征;3)用于捕捉相邻词和distant word之间交互的多粒度扩张卷积。 

Conditional Layer Normalization

        为了预测word pairs之间的关系,将word-pair gird的表征视为3维的矩阵V,vij表示word pair(xi,xj),而不是(xj,xi),因为NNW和THW关系是有方向的,Vij由xi和ji计算得出。如下所示: 

BERT-Style Grid Representation Build-Up 

        BERT中的输出由token embedding、position embedding和segment embedding组成,作者受此启发,使用V\subseteq R^{N\times N\times d_{h}}(词的信息)、E^{d}\subseteq R^{N\times N\times d_{E_{d}}}(每对单词之间的相对位置)和E^{t}\subseteq R^{N\times N\times d_{E_{t}}}(区域信息,用于表示网格中上三角和下三角)这三种embedding进行concate后送入MLP得到最终的网格表征C\subseteq R^{N\times N\times d_{c}}: 

Multi-Granularity Dilated Convolution

         使用不同扩张率(l = 1,2,3)的二维扩张卷积来捕获不同距离word之间的交互,经过多次扩张中,得到最终word-pair的表征Q=[Q^{1},Q^{2},Q^{3}],

Co-Predictor Layer 

        作者使用MLP和biaffine分别进行预测分类(作者说是因为之前有论文说这样效果更好),最将两者的结果进行合并。不过biaffine模型是将encoder的输出作为输入(即图中虚线的表示) ,使用两个MLP分别计算xi和yj的word presentation,然后使用biaffine classifier来计算这对词之间的关系分数作为预测结果:

        而NLP是基于word-pair grid表征Q_{ij},使用一个MLP来计算单词对之间的分数y{}''_{ij},最后将两者的结果进行结合:

Decoder 

        以上步骤后,模型的输出可以视为一个词的有向图,解码的目标就是利用NNW在图中找到从一个词到另一个词的特定路径,每条路对应着一个实体部分。下图描述了4种从易到难的情况:

         4)仅使用NNW关系的情况下能在这个例子中找到4条路径,如果只使用THW只能找到识别到ABCD,而不是ACD或者BCD,因此通过同时使用这两者关系来获得正确答案。

Learning

        损失函数:

        N是句子中单词的个数,y是gold relation labels的二值向量(xi,yj),r表示集合R中预定义好的第r种关系。 

实验

对比试验

        在英文flat NER数据集上进行实验,结果如下所示:

        在中文flat NER数据集上进行实验,结果如下图所示:

         在英文overlap数据集上进行实验,结果如下图所示:

        在discontinuousNER数据集上进行实验,结果如下图所示: 

        在中文overlapNER数据集上进行实验,结果如下图所示:

        作者在只有overlap和discontinue的数据集进行了实验,结果如下图所示,这样一对比就突出了W2NER模型的优势。

消融实验 

         在三个数据集上进行消融实验,结果如下所示:

         移除NNW关系时,所有数据集上的F1都有所下降,特别时CADEC数据集上,F1下降了4.2%,这是因为CADEC数据种包括不连续实体,如果没有NNW关系,discontinuedNER会被识别为连续span。

总结 

        作者将NER问题视为词与词之间的关系, 这样就能灵活的解决discontinueNER的问题,最后在discontinue的数据集上表现更为明显。不过感觉作者构建的网格有点复杂的亚子(不能用其他方式简化一下吗?),另外,作者也提到使用两个分类器进行分类,对模型的效果也有一定的提升,感觉可以借鉴一下。

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

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

相关文章

保护用户数据隐私:Web3 技术在电商行业中的应用

电商行业一直是全球经济发展的重要推动力。然而,随着电商行业的不断发展,中心化的支付、物流和数据存储方式逐渐暴露出安全隐患和隐私问题。这时,Web3 技术以其去中心化、安全性和透明性等特点,为电商行业带来了新的解决方案和可能…

关于var、let、const相同与不同

相同:var、let、const都可以声明变量 var milliaA "milliaA" let milliaB "milliaB" const milliaC "milliaC"console.log(milliaA,milliaB,milliaC) 不同: 一、变量提升,var有提升,let、cons…

初识 Redis - 分布式,内存数据存储,缓存

目录 1. 什么是 Redis 1.1 Redis 内存数据存储 1.2 Redis 用作数据库 1.3 Redis 用作缓存 (cache) 1.4 用作消息中间件 1. 什么是 Redis The open source , in-memory data store used by millions of developers as a database, cache, streaming engine, and message br…

使用 Elastic 时间序列数据流探索 Nginx 指标

作者:Lalit Satapathy Elasticsearch 最近发布了用于指标的时间序列数据流。 这不仅为 Elastic Observability 提供了更好的指标支持,而且还有助于降低存储成本。 我们在之前的博客中讨论过这个问题。 在本博客中,我们通过回顾什么是时间序列…

rar文件怎么打开?简单4步,轻松解决!

什么是rar文件? Rar文件是一种专用的文件格式,比较常用于归档打包和数据的压缩,我们可以将原有的文件数据压缩后保存为rar文件格式。其常用于将文件夹或者大型文件压缩为单个文件,以便更方便地传输和存储。 在日常的工作中&…

jmeter 终端命令执行jmx文件 生成jtl日志文件

终端命令执行jmx文件 生成jtl日志文件, 步骤如下: 步骤1:终端进入jmx文件目录 步骤2:执行命令:jmeter -n -t ****.jmx -l ****.jtl -n 以cli模式(命令行运行模式)运行jmeter -t 需要运行的…

怎么快速敲代码,最简单的代敲代码工具,codeWhisperer走起

题记:谁不想提升工作效率,谁不想有人帮你敲代码,来吧,上菜; 第一步:下载并安装AWS Toolkit(下载有点慢,请耐心等待); 第二步:点击start。 第三步…

【论文阅读笔记】Attack-Resistant Federated Learning with Residual-based Reweighting

个人阅读笔记,如有错误欢迎指出 Arxiv 2019 [1912.11464] Attack-Resistant Federated Learning with Residual-based Reweighting (arxiv.org) 问题: 联邦学习容易受到后门攻击 创新: 提出一种基于残差的重新加权聚合算法 聚合算法…

windows系统下jdk8和jdk17灵活切换

安装了jdk8和jdk17后环境变量path中会多出2条 C:\Program Files\Common Files\Oracle\Java\javapath C:\Program Files (x86)\Common Files\Oracle\Java\javapath 将它们下移到最下面,点击确认 这样做的原因是为了JAVA_HOME的优先级最高,达到更换JAVA…

分布式应用之监控Zabbix

分布式应用之监控Zabbix 一、什么是Zabbix? ●zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 ●zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存…

深入Vite核心编译能力

我们知道,Vite 在开发阶段实现了一个按需加载的服务器,每一个文件请求进来都会经历一系列的编译流程,然后 Vite 会将编译结果响应给浏览器。而在生产环境下,Vite 同样会执行一系列编译过程,将编译结果交给 Rollup 进行…

CP AUTOSAR中的CanTrcv

环境 CanTrcv驱动实际上是要实现CanIf指出的接口,包括5个API函数 CanTrcv_SetOpMode CanTrcv_GetOpMode CanTrcv_GetBusWuReason CanTrcv_SetWakeupMode CanTrcv_CheckWakeup CanIf接口会有对应的接口回调CanTrcv的API,包括5个A…

CODESYS 联合体变量(Union)

联合Union也是一种特殊的自定义类型这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体),联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的…

Drools用户手册翻译——第三章 构建,部署,应用和运行(三)运行

主要对于运行相关内容的介绍,又多了很多新的概念,还没有着手去尝试,感觉很多内容确实有用,等我把这一章结束时候,实际跑一跑代码感受一下。 甩锅声明:本人英语一般,翻译只是为了做个笔记&#…

在Vue种使用Vant框架

第一步:打开Vant框架地址 https://vant-contrib.gitee.io/vant/v2/#/zh-CN/home 第二步: 安装 第三步:引入(我这里使用的是按需导入) 执行命令: npm i babel-plugin-import -D ①:src下创建个…

pycharm 配置github

文章目录 环境必备操作步骤1.在pycharm中配置git和github2.获取ssh密钥3.将本地项目与github仓库连接4.同步本地项目到github 相关问题参考文章 环境必备 pycharm 2020.1:集成开发环境,需要安装并配置环境 PyCharm 开发环境搭建指南:安装、配…

【RISC-V】寄存器及 PCS(过程调用标准)

文章目录 寄存器与别名函数入栈示例代码作用为什么需要保存 函数出栈示例代码作用为什么需要恢复 浮点寄存器的保存示例代码作用 浮点寄存器的恢复示例代码作用 寄存器与别名 Caller(调用者)指的是调用(或执行)一个函数的代码段或…

Pandas 和 CSV文件读取导出小纪

要从CSV文件中访问数据,我们需要一个函数read_csv(),它以数据帧的形式检索数据。 read_csv() 语法: pd.read_csv(filepath_or_buffer, sep’ ,’ , header’infer’, index_colNone, usecolsNone, engineNone, skiprowsNone, nrowsNone) 参…

vue启动编译时报错:134(内存溢出)

项目环境:win7 vue2 webpack2 最近开发过程中项目莫名其妙就起不来了,报错大致如下: 经过一番搜索,尝试了多种方法都不行,比如: 1. npm install increase-memory-limit npm install cross-env 在package.json中添加…