Propose-and-Refine: A Two-Stage Set Prediction Network forNested Named Entity Recognition

本文主要是介绍Propose-and-Refine: A Two-Stage Set Prediction Network forNested Named Entity Recognition,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文链接:

https://www.ijcai.org/proceedings/2022/0613.pdf\

IJCAI 2022

介绍

        问题

        作者认为基于span的模型存在以下问题:1)忽略了span和其他实体短语之间的关系,span的表征往往只有内部的信息,看不见全局的信息,就会导致一些实体被分类错误。(不是很站得住脚哈 因为一般基于span的方法都会加入一些其他信息 比如句子的cls 或者span前后的一些token信息);2)基于span的模型由于存在最长枚举长度的限制,在处理长实体上存在限制。

        IDEA 

        因此,作者提出了一个用于嵌套实体的两阶段集合预测网络Propose-and-Refine Network(PnRNet),在propose阶段,使用一个基于span的预测器来生成coarse entity作为entity proposals;在refine阶段,将这些proposals进行交互,丰富proposal的表征,再次对实体边界和类别进行预测。

方法

        该模型整体结构如下:

Stage I:Propose 

         该模块可以理解为对span的筛选模块,对枚举出的所有span进行预测,筛选出可能是实体的span,作为proposal。

        给定一个长为N的句子X,将每个token的上下文embedding、word embedding、POS embedding、character embedding进行concate后,经过一个BiLSTM得到每个token的表征:

        以自下而上的方式生成span表征, h_{l,i}表示长度为l且起点是第i个token的span:

      然后对每个span进行分类,P表示span(l,i)是实体类别ty_{t}的可能性, \varepsilon表示句子中的所有实体:

       对span按其属于每个实体类别的总分数降序排序,将top-k作为proposal 实体 Q,送入下一个模块进行细化。

Stage II: Refine

         使用transformer decoder对proposal 实体进行细化,Um表示第m层的输出,U0=Q

        具体的,在自注意力层,proposal 实体通过多头注意力机制进行相互融合:

        为了对proposal句子中的其他短语的关系进行建模。proposal实体与句子表征通过交叉注意力来丰富其上下文信息:

        考虑到文本的层次性,使用多尺度句子表征来为嵌套ner提供层次上下文信息,即将propsal阶段生成的span表征来形成分层金字塔状的多尺度句子表征:

        H_{l}是长度为l的span list,H是包括了所有span特征的list,由于H包含了不同长度span的特征,可以看作是输入句子的多尺度表示。

        作者认为有了多尺度特征,proposal表征能够直接与相关span的特征相关联,与token级的特征比,在交叉注意力中使用多尺度特征作为key和value可以更有效的聚合层次上下文信息。

         最后经过一个前馈层,得到当前解码器的输出:

        将最后一层transformer的输出用来对实体的边界和类型再次进行预测:

        边界检测部分,将细化后的entity proposal和所有1-gram跨度特征融合后进行分类,得到每个token是左右边界的概率:

Training Objective

         proposal阶段的loss是gt实体和枚举出的所有span之间的交叉熵损失:

        refine阶段的loss由分类损失和边界预测损失组成(由于模型预测的结果可以看作是一堆实体的集合,因此需要计算预测出的实体与golden entity之间的匹配代价,使用匈牙利算法选择匹配代价最小的golden entity label作为预测实体的真实标签),这里作者提到为了快速的收敛模型,使用每个解码器层的输出来预测实体,并将所有层的loss相加。

实验

对比实验

        作者在多个nest 和 flat数据集上进行实验,结果如下所示:

消融实验

         在ACE04和GENIA数据集上进行了消融实验,结果如下所示:

        Entity Proposal:使用随机初始化可学习的向量代替proposal的特征

        Proposal refinement:去掉proposal refinement阶段,直接对poposali阶段生成的span进行分类预测

        Multi-scale:使用一个sequence encoder的输出代替作者提出的多尺度特征

        基于proposal阶段生成的entity proposal与PnRNet的最终实体在不同长度实体上的表现:

        可以看出作者提出的模型,在长实体上性能优于基于span的模型。

分析

        作者对PnRNet最后一层的交叉注意力map进行了可视化,如下所示:

        可以看出通过多尺度特征,proposal 实体 可以直接关注与自身高度相关的跨度特征,从而实现交叉关注。

        case study,红色表示coarse proposal,蓝色表示模型最终的预测,绿色表示ground truth:

        可以看出模型能够通过proposal refine来消除proposal中的错误。

总结

        这个确实是Two-Stage,第一个阶段过滤掉非实体的span,第二阶段中将这些span通过交叉注意力机制进行交互,来更新每个span的表征,然后再对这些span进行分类和边界确定。这里的边界确定,是通过这个span的表征与其他每个token之间的融合后通过一个softmax,来确定左右边界,感觉这里的公式没有很懂。最后实验结果其实也不是很高,但你说它是sota吧也是,不过作者这样叠加模型和注意力块,计算量是远高于其他模型的吧?不过span之间的交互,真的有用吗?试试!

        但是这篇论文没有代码!又是一篇没有代码的!

这篇关于Propose-and-Refine: A Two-Stage Set Prediction Network forNested Named Entity Recognition的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/827813

相关文章

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D

poj 3050 dfs + set的妙用

题意: 给一个5x5的矩阵,求由多少个由连续6个元素组成的不一样的字符的个数。 解析: dfs + set去重搞定。 代码: #include <iostream>#include <cstdio>#include <set>#include <cstdlib>#include <algorithm>#include <cstring>#include <cm

Collection List Set Map的区别和联系

Collection List Set Map的区别和联系 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

多路转接之select(fd_set介绍,参数详细介绍),实现非阻塞式网络通信

目录 多路转接之select 引入 介绍 fd_set 函数原型 nfds readfds / writefds / exceptfds readfds  总结  fd_set操作接口  timeout timevalue 结构体 传入值 返回值 代码 注意点 -- 调用函数 select的参数填充  获取新连接 注意点 -- 通信时的调用函数 添加新fd到

Android set Tag, findViewWithTag使用

设置了tag为“principal”的view ImageView principal = (ImageView) findViewById(R.id.imagen_home_0);principal.setTag("principal"); 在其它地方获取,获取已经设置了tag为“principal”的view LayoutInflater inflater = LayoutInflate

C++ STL关联容器Set与集合论入门

1. 简介 Set(集合)属于关联式容器,也是STL中最实用的容器,关联式容器依据特定的排序准则,自动为其元素排序。Set集合的底层使用一颗红黑树,其属于一种非线性的数据结构,每一次插入数据都会自动进行排序,注意,不是需要排序时再排序,而是每一次插入数据的时候其都会自动进行排序。因此,Set中的元素总是顺序的。 Set的性质有:数据自动进行排序且数据唯一,是一种集合元素,允许进行数学上的集合相

图神经网络框架DGL实现Graph Attention Network (GAT)笔记

参考列表: [1]深入理解图注意力机制 [2]DGL官方学习教程一 ——基础操作&消息传递 [3]Cora数据集介绍+python读取 一、DGL实现GAT分类机器学习论文 程序摘自[1],该程序实现了利用图神经网络框架——DGL,实现图注意网络(GAT)。应用demo为对机器学习论文数据集——Cora,对论文所属类别进行分类。(下图摘自[3]) 1. 程序 Ubuntu:18.04

Eclipse或MyEclipse中Java Working Set管理项目

随着学习JAVA的时间的越来越久,项目也越来越多,Eclipse或MyEclipse界面中显示一堆! 每次工作使用到的项目肯定不会太多...... 每次从这么大数量的工程当中找到自己要使用的, 必须大规模的滚动滚动条...... 图片一   Project Explorer中:    图片二:Package Explorer中: 这样就好找很多了,分类放!

深度学习--对抗生成网络(GAN, Generative Adversarial Network)

对抗生成网络(GAN, Generative Adversarial Network)是一种深度学习模型,由Ian Goodfellow等人在2014年提出。GAN主要用于生成数据,通过两个神经网络相互对抗,来生成以假乱真的新数据。以下是对GAN的详细阐述,包括其概念、作用、核心要点、实现过程、代码实现和适用场景。 1. 概念 GAN由两个神经网络组成:生成器(Generator)和判别器(D