赞
踩
原作者:苏剑林
GlobalPointer的设计,它利用全局归一化的思路来进行命名实体识别(NER),可以无差别地识别嵌套实体和非嵌套实体
- 其核心思想为类似attention的打分机制,将多种个实体类型的识别视为Muti-head机制,将每一个head视为一种实体类型识别任务,最后利用attention的score(QK)作为最后的打分。
- 为了考虑到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多头识别嵌套实体示意图
长度为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+
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。