当前位置:   article > 正文

GlobalPointer:用统一的方式处理嵌套和非嵌套NER

globalpointer

原作者:苏剑林
GlobalPointer的设计,它利用全局归一化的思路来进行命名实体识别(NER),可以无差别地识别嵌套实体和非嵌套实体

  1. 其核心思想为类似attention的打分机制,将多种个实体类型的识别视为Muti-head机制,将每一个head视为一种实体类型识别任务,最后利用attention的score(QK)作为最后的打分。
  2. 为了考虑到Start和end之间距离的关键信息,作者在此基础上引入了旋转式位置编码(RoPE),在其文中显示引入位置信息能给结果带来极大提升,符合预期先验。

嵌套实体和非嵌套实体

实体嵌套:指在一句文本中出现的实体,存在某个较短实体完全包含在另外一个较长实体内部的情况

例如:「《叶圣陶散文选集》」中会出现两个实体「叶圣陶」和「叶圣陶散文选集」分别代表「作者」和「作品」两个实体。

具体思路

假设要识别文本序列长度为n,简单起见先假定只有一种实体要识别,并且假定每个待识别实体是该序列的一个连续片段,长度不限,并且可以相互嵌套(两个实体之间有交集),

那么该序列有多少个“候选实体”呢?不难得出,答案是n(n+1)/2个,即长度为n的序列有n(n+1)/2个不同的连续子序列,这些子序列包含了所有可能的实体,

而我们要做的就是从这n(n+1)/2个“候选实体”里边挑出真正的实体,其实就是一个“n(n+1)/2选k”的多标签分类问题。如果有m种实体类型需要识别,那么就做成m个“n(n+1)/2选k”的多标签分类问题。

GlobalPoniter多头识别嵌套实体示意图
  • 1

GlobalPoniter多头识别嵌套实体示意图
长度为n的序列中,总共可能有n(n+1)/2个实体。

例如:北京大学在深圳有分校吗?总共长度为12,可能有78个实体,图中每个格子都可以看成一个实体。比如地名中,北京为一个地名 竖边列为起始坐标 横列为结束坐标。
坐标(0,1)标上了1,证明实体从起始坐标0,到结束坐标1,这个范围就是检测到的地名实体。

----->转换从了:多标签分类问题

那们我知道要怎么搞后,我该怎么做。
先了解一下多标签分类的常规流程和原理。

多标签分类问题该怎么实现

设长度为n的输入t经过编码后得到向量序列[h1,h2,⋯,hn]

通过线性变换 q i , α = W q , α h i + b q , α q_{i,\alpha }=W_{q,\alpha }h_{i}+b_{q,\alpha } qi,α=Wq,αhi+bq,α k i , α = W k , α h i + b k , α k_{i,\alpha }=W_{k,\alpha }h_{i}+b_{k,\alpha } ki,α=Wk,αhi+

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/695143
推荐阅读
相关标签
  

闽ICP备14008679号