Instance-Based Learning of Span Representations:A Case Study through Named Entity Recognition

该文提出了一种基于实例学习的方法,用于命名实体识别(NER),通过学习span之间的相似性,建立高可解释性的模型。模型以span分类形式处理NER,解决了嵌套实体的问题。实验表明,这种方法在不牺牲性能的同时,能构建具有解释性的NER模型,且对训练数据量的减少表现出一定的鲁棒性。
摘要由CSDN通过智能技术生成

qpBSnf.png

Instance-Based Learning of Span Representations:A Case Study through Named Entity Recognition

基于实例的跨度表示学习:命名实体识别的实例研究

Abstract

本文提出了一种学习跨度相似性的基于实例的学习方法,能够在不失去性能的前提下建立具有较高可解释性的模型

code

1 Introduction

基于实例的学习方法(通过学习实例之间的相似性)。在推理时,将最相似的训练实例的类标签分配给新的实例。

采用token span的原因:

  • 为实体候选“World Health Organization”分配不一致的标签
    • 采用BIO标注:B-LOC I-ORG I-ORG
    • 而真实标签:B-ORG I-ORG I-ORG
    • 采用span预测,可以为每个span分配一个标签(可以解决嵌套NER问题)。

2 Model

2.1 NER as span classification

给定一个由T个单词的句子 X = ( w 1 , w 2 , . . . , w T ) X=(w_1,w_2,...,w_T) X=(w1,w2,...,wT),首先列举出可能的span S ( X ) \mathcal{S}(X) S(X),并给每个span s ∈ S ( X ) s\in \mathcal{S}(X) sS(X)分配类标签 y ∈ Y y\in \mathcal{Y} yY

把每个span写成 s = ( a , b ) s=(a,b) s=(a,b),其中 1 ≤ a ≤ b ≤ T 1\le a \le b \le T 1abT

qpy5wV.png

  • 可能存在的spans 为 S ( X ) = { ( 1 , 1 ) , ( 1 , 2 ) , ( 1 , 3 ) , . . . , ( 4 , 5 ) , ( 5 , 5 ) } \mathcal{S}(X)=\{(1,1),(1,2),(1,3),...,(4,5),(5,5)\} S(X)={(1,1),(1,2),(1,3),...,(4,5),(5,5)}

  • F r a n z   K a f k a \mathrm{Franz\ Kafka} Franz Kafka s = ( 1 , 2 ) s=(1,2) s=(1,2),被分配为人名类标签 y = P E R y=PER y=PER

  • 其他的非实体span被分配到null标签(y=NULL)

每个span s 被分配为标签y的概率可以用softmax函数建模:
P ( y ∣ s ) = e x p ( s c o r e ( s , y ) ) ∑ y ′ e x p ( s c o r e ( s , y ′ ) ) P(y|s) = \frac{exp(score(s,y))}{\sum_{y^{'}}exp(score(s,y^{'}))} P(ys)=yexp(score(s,y))exp(score(s,y))
score函数通过使用每个标签的权重向量 W y W_y Wy和span特征向量 h s h_s hs来计算:
s c o r e ( s , y ) = w y ⋅ h s score(s,y) = w_y\cdot h_s score(s,y)=wyhs
NULL 标签的得分被计算为一个常数:
s c o r e ( s , y = N U L L ) = 0 score(s,y=NULL)=0 score(s,y=NULL)=0
loss 为负对数似然函数log-likelihood:
L = − ∑ ( X , Y ) ∈ D ∑ ( s , y ) ∈ S ( X , Y ) l o g P ( y ∣ s ) \mathcal{L}=-\sum_{(X,Y)\in \mathcal{D}}\sum_{(s,y)\in \mathcal{S}(X,Y)}log P(y|s) L=(X,Y)D(s,y)S(X,Y)logP(ys)
其中 S ( X , Y ) \mathcal{S}(X,Y) S(X,Y)是一组有span s和它的ground-truth label y组成的对

2.2 Instance-based span model

根据实例的span模型根据span之间的相似度对每个span进行分类

qpBpB8.png

一个实体候选 F r a n z   K a f k a \mathrm{Franz\ Kafka} Franz Kafka以及训练集的span被映射到特征向量空间。在向量空间中,分别计算所有候选对和训练实例 ( s 1 , s 2 , . . . , s 9 ) (s_1,s_2,...,s_9) (s1,s2,...,s9)之间的相似性,计算token概率分布,并给出PER概率最高的token分。

形式上,在邻域组件分析框架中,定义邻域span概率,即在训练集中选择一个span s i ∈ S ( X ) s_i\in \mathcal{S}(X) siS(X)(可能的span)然后在剩余的候选集中的span中选择其他span s j s_j sj作为它的邻域:
P ( s j ∣ s i , D ’ ) = e x p ( s c o r e ( s i , s j ) ) ∑ s k ∈ S ( D ’ ) e x p ( s c o r e ( s i , s k ) ) (1) P(s_j|s_i,\mathcal{D}^{’}) = \frac{exp(score(s_i,s_j))}{\sum_{s_k\in \mathcal{S(D}{’})}exp(score(s_i,s_k))}\tag{1} P(sjsi,D)=skS(D)exp(score(si,sk))exp(score(si,sj))(1)
本文从训练集 D ’ = D ∖ ( X , Y ) \mathcal{D^{’}=D}\setminus {(X,Y)} D=D(X,Y)中排除输入句子X以及它的真实标签Y,并把其他所有的span都作为候选者 S ( D ’ ) = { s ∈ S ( X ’ ) ∣ ( X ’ , Y ’ ) ∈ D ′ } \mathcal{S(D^{’})}=\{s\in\mathcal{S}(X^{’})|(X^{’},Y^{’})\in \mathcal{D^{'}}\} S(D)={sS(X)(X,Y)D}。评分函数返回的是span s i , s j s_i,s_j si,sj之间的相似度。

然后计算span s i s_i si被分配给标签 y i y_i yi的概率:
P ( y i ∣ s i ) = ∑ s j ∈ S ( D ′ , y i ) P ( s j ∣ s i , D ′ ) S ( D ′ , y i ) = { s j ∈ D ′ ∣ y i = y j } P(y_i|s_i) = \sum_{s_j\in \mathcal{S(D^{'},y_i)}}P(s_j|s_i,\mathcal{D^{'}})\\ \mathcal{S(D^{'},y_i)}= \{s_j\in \mathcal{D^{'}}|y_i=y_j\} P(yisi)=sjS(D,yi)P(sjsi,D)S(D,yi)={sjDyi=yj}
将具有与span s i s_i si相同标签的相邻span的概率相加,最小化的损失函数是负对数似然:
L = − ∑ ( X , Y ) ∈ D ∑ ( s i , y i ) ∈ S ( X , Y ) l o g P ( y i ∣ s i ) \mathcal{L}=-\sum_{(X,Y)\in \mathcal{D}}\sum_{(s_i,y_i)\in \mathcal{S}(X,Y)}log P(y_i|s_i) L=(X,Y)D(si,yi)S(X,Y)logP(yisi)
S ( X , Y ) \mathcal{S}(X,Y) S(X,Y)是一个span s i s_i si对的集合,它的真实标签是 y i y_i yi,推理时,根据最大边远概率预测标签:
y i ∧ = a r g   m a x y ∈ Y P ( y ∣ s i ) \overset{\wedge}{y_i} = \underset{y\in\mathcal{Y}}{arg\ max}P(y|s_i) yi=yYarg maxP(ysi)

2.3 Efficient neighbor probability computation

等式1中邻域span 概率 P ( s j ∣ s i , D ′ ) P(s_j|s_i,\mathcal{D}^{'}) P(sjsi,D)取决于整个训练集 D ′ \mathcal{D}^{'} D,这样计算成本太高了,因此使用随机采样来从训练集 D ′ \mathcal{D}^{'} D中检索k个句子 D " = { ( X k ′ , Y k ′ ) } k = 0 K \mathcal{D}^{"}=\{(X_k^{'},Y_k^{'})\}_{k=0}^{K} D"={(Xk,Yk)}k=0K,训练时,从每个epoch的每个mini-batch中随机采样k个句子,可以在时间和内存两个方面都进行优化,使用V100,只用不到一天的时间。

3 Experiments

3.1 Experiment setup

Data CoNLL-2003进行flat NER;GENIA进行nested NER

**Encoder and span representation **使用word embedding和字符级CNN来编码,编码后的token表示为:
w 1 : T = ( w 1 , w 2 , . . . , w T ) w_{1:T}=(w_1,w_2,...,w_T) w1:T=(w1,w2,...,wT)
将编码后的token输入到双向LSTM中计算上下文向量得到 h 1 : T → \overset{\rightarrow}{h_{1:T}} h1:T h 1 : T ← \overset{\leftarrow}{h_{1:T}} h1:T,然后为每个span s = ( a , b ) s=(a,b) s=(a,b)生成 h s l s t m h_s^{lstm} hslstm

  • 对于flat NER :

h s l s t m = [ h b → − h a − 1 → , h a ← − h b + 1 ← ] h_s^{lstm}=[\overset{\rightarrow}{h_b}-\overset{\rightarrow}{h_{a-1}},\overset{\leftarrow}{h_a}-\overset{\leftarrow}{h_{b+1}}] hslstm=[hbha1,hahb+1]

  • 对于nested NER:

h s l s t m = [ h b → − h a − 1 → , h a ← − h b + 1 ← , h a → + h b → , h a ← + h b ← ] h_s^{lstm}=[\overset{\rightarrow}{h_b}-\overset{\rightarrow}{h_{a-1}},\overset{\leftarrow}{h_a}-\overset{\leftarrow}{h_{b+1}},\overset{\rightarrow}{h_a}+\overset{\rightarrow}{h_{b}},\overset{\leftarrow}{h_a}+\overset{\leftarrow}{h_{b}}] hslstm=[hbha1,hahb+1,ha+hb,ha+hb]

接着使用一个权重矩阵乘以 h s l s t m h_s^{lstm} hslstm
h s = W h s l s t m h_s=Wh_s^{lstm} hs=Whslstm
对于在基于实例的span模型中的公式1的评分函数,本文使用两个span表示的内积:
s c o r e ( s i , s j ) = h s i ⋅ h s j score(s_i,s_j)=h_{si}\cdot h_{sj} score(si,sj)=hsihsj

3.2 Model configuration

  • mini-batch中随机检索K=50个训练句子
  • 利用余弦相似度选择K=50个最近邻的训练句子
  • 词嵌入Glove=100维

3.3 Overall F1 scores

qp0xjP.png

  • 基于实例的span模型和基于分类器的span模型结果相当

  • 基于实例的学习方法能够不牺牲性能构造NER模型

3.5 Effects of training data size

图2展示了模型分别训练了所有、1/2、1/4、1/8的训练数据,得到的CoNLL-2003验证集的F1值

qp0vct.png

  • 随着训练数据的减少,两个模型的性能逐渐降低

  • 两个模型的指标曲线相当

4 启示

  • 应用了相似度的方式进行NER,能否迁移到zero-shot呢?
  • 论文的模型部分表达的很好
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值