MELM: Data Augmentation with Masked Entity Language Modeling for Low-Resource NER
前言
一篇来自ACL2022的文章,用数据增强的方法解决低资源场景NER问题,方法独特新颖,同时结合了上下文和标签序列化,具有很强的说服力,并且数据增强的方法在任何低资源场景都适用,无论模型是小模型还是大模型。
Abstract
数据增强是解决低资源场景下数据稀缺的有效方案。但是在NER任务上,数据增强通常会受到token标签错位的影响,导致降低性能。本文提出将Masked Entity Language Modeling (MELM)作为低资源NER中新的数据增强框架。为了缓解token标签错位问题,作者明确将NER标签注入到句子上下文中,因此经过微调的MELM能够通过显示调节token的标签来预测mask的实体token。从而使MELM生成高质量的增强数据提升NER表现。此外,作者还展示了MELM在各种低资源场景单语言、跨语言和多语言NER上的有效性。
1. Introduction
NER作为信息抽取的子任务,是信息检索、问答系统、文本摘要系统的关键部分,但是绝大部分场景数据标注数量有限。
由于手动构建充足标签数据成本高昂,低资源场景NER受到广泛关注,数据增强作为解决低资源场景下数据稀缺的有效方法,通过对数据进行标签不变变换来扩大训练集。典型的NLP数据增强方法包括:
- 词级修改;
- 回译。
但是词级的修改会导致替换的实体和原来的标签不匹配,回译依赖于外部单词对齐工具,容易出错。为了将数据增强用于token级别的任务,Dai和Adel提出将实体mention随机替换为现有的同类实体,这避免了token不匹配问题,但是实体多样性没有增加,此外对上下文增强的工作对模型只有微弱的改进。
上图的实验也表明,在训练数据中多样化实体比多样化上下文模型更有效。受此启发,作者提出MELM作为低资源NER的数据增强框架,缓解了标签不对齐的挑战。MELM建立在预训练的MLM上,并且只有实体标记被mask的训练句子上进行微调,方便面向实体的token替换。为了避免替换实体标签不一致问题,以下图b中为例,输出符合上下文但是与原始标签不一致,为了缓解不对齐问题, MELM引入了标签序列线性化策略,在每个实体标记前后分别插入一个标记,并将插入的标记作为MLM建模时正常的上下文标记。这样mask的token不仅依赖于上下文,还依赖于实体的标签。
注入标签信息和在标签增强的NER数据微调后,MELM可以利用预训练中丰富的知识增加实体的多样性,同时大大减少token标签错位。此外,MELM可以应用在多语言低资源NER的场景,以获得进一步的性能增益。作者首先将同类型外语实体替换源语言句子中的实体(会造成token不适合上下文),接着提出了一种基于双语嵌入的实体相似性搜索算法,从其他语言的训练实体中检索语义最相似的实体,最后在混合语言数据中添加语言标记后,使用它微调MELM可以生成更多混合语言的增强数据。
本文的主要贡献如下:
- 提出一个新颖的框架,联合使用上下文和实体标签进行基于实体的数据增强;
- 所提出的标签序列线性化策略有效缓解了增强过程中token标签错位的问题;
- 为了在多语言场景进行数据增强,提出一种实体相似性搜索算法。
2. Method
上图c展示了数据增强框架的工作流程,下面是算法的伪代码。
算法的步骤如下:
- 首先进行标注序列线性化,将实体标签插入到NER训练句子中;
- 接着在线性化序列上微调MELM,通过生成不同的实体创建增强数据;
- 增强后的数据与原始数据结合用于训练NER模型。
此外在多语言场景提出一种实体相似性搜索算法,将MELM应用于训练数据和code-mixed数据,进一步提高性能。
2.1 Labeled Sequence Linearization
作者在每个实体标记的前后添加标签标记,作为正常的上下文标记。利用得到的线性序列进一步微调MELM,使其预测额外依赖于插入的标签标记。注意,标签的选择在语义上和实体类相近,如“organization”用标签表示。这样可以让线性化序列在语义上更接近自然语句,降低微调的难度。
2.2 Fine-tuning MELM
和MLM不同,只有实体token在微调阶段被mask。在开始阶段,以一定的比例随机掩码实体token。输入被掩码的句子,MELM被训练去最大化被mask实体标记的概率,并重建线性化序列
X
X
X:
max
θ
log
p
θ
(
X
∣
X
~
)
≈
∑
i
=
1
n
m
i
log
p
θ
(
x
i
∣
X
~
)
\max _{\theta} \log p_{\theta}(X \mid \tilde{X}) \approx \sum_{i=1}^{n} m_{i} \log p_{\theta}\left(x_{i} \mid \tilde{X}\right)
maxθlogpθ(X∣X~)≈∑i=1nmilogpθ(xi∣X~)
其中,
θ
\theta
θ是MELM的参数,
x
i
x_i
xi是
X
X
X的原始token,
m
i
m_i
mi值为1或0分别表示
x
i
x_i
xi被mask或没被mask,通过上述微调过程,MELM学会了利用上下文和标签信息来预测mask的实体token。
2.3 数据生成
给定一个mask的句子,MELM输出每个被mask的token在词表中预测得到token的概率,为了防止预测的token和原始mask的token相同,作者从前k个最可能的结果随机采样替换。获得生成序列后,作者移除标签标记并将剩下部分用于增强训练数据。
为了增加增强数据的多样性,采用了与训练时不同的掩码策略。对于包含n个标记的实体mention,作者从高斯分布
N
(
μ
,
σ
2
)
\mathcal{N}(\mu, \sigma^2)
N(μ,σ2)中随机抽取一个动态掩码率,其中高斯方差
σ
2
\sigma^2
σ2设置为
1
n
2
\frac{1}{n^2}
n21,这样,同一个句子在不同的轮次中会生成不同的增强数据。
2.4 Post-Processing
为了去除增强数据中的噪声和信息量少的样本,将在原始数据集训练好的NER模型为增强句子分配标签,只保留预测标签与原始标签一致的增强句子。将处理后的句子重新训练NER模型。
2.5 Extending to Multilingual Scenarios
MELM被证明在多语言场景有更高的潜力。本文为了融合数据增强和code-mixing,提出了一种实体相似性算法来执行code-mixing友好的MELM。
具体来说,给定在一系列语言
L
\mathbb{L}
L上的黄金训练集
{
D
t
r
a
i
n
ℓ
∣
ℓ
∈
L
}
\left \{ \mathbb{D}^{\ell}_{\mathrm{train} } | {\ell} \in \mathbb{L} \right \}
{Dtrainℓ∣ℓ∈L},首先收集标注的实体集合。为了在源语言上应用code-mixing,作者用目标语言实体替换相同标签的源语言实体mention,其中目标语言采样为
ℓ
t
g
t
∼
U
(
L
∖
{
ℓ
s
r
c
}
)
{\ell}_{tgt} \sim \mathcal{U} \left ( \mathbb{L} \setminus \left \{ \ell_{\mathrm{src} } \right \} \right )
ℓtgt∼U(L∖{ℓsrc})。当然采样并不是随机采样,而是选择与源实体语义相似度最高的实体进行检索。具体应用上,引入MUSE双语言的嵌入层,通过平均实体token的嵌入计算实体的embedding:
Emb
(
e
)
=
1
∣
e
∣
∑
i
=
1
∣
e
∣
MUSE
ℓ
s
r
c
,
t
g
t
(
e
i
)
\operatorname{Emb}(\mathbf{e})=\frac{1}{|\mathbf{e}|} \sum_{i=1}^{|\mathbf{e}|} \operatorname{MUSE}_{\ell_{\mathrm{src}},_{\mathrm{tgt}}}\left(\mathbf{e}_{i}\right)
Emb(e)=∣e∣1∑i=1∣e∣MUSEℓsrc,tgt(ei)
其中,
e
i
\mathbf{e}_{i}
ei表示源域实体第i个token,接着得到与
e
\mathbf{e}
e语义最接近的目标语言实体
e
s
u
b
\mathbf{e}_{sub}
esub如下:
e
s
u
b
=
a
r
g
m
a
x
e
~
∈
E
ℓ
t
g
t
,
y
f
(
E
m
b
(
e
)
,
E
m
b
(
e
~
)
)
\mathbf{e}_{sub}=\mathrm{argmax}_{\tilde{\mathbf{e}} \in \mathbb{E}^{\ell _{tgt}, y} }f(\mathrm{Emb}(\mathbf{e}), \mathrm{Emb}(\tilde{\mathbf{e}}))
esub=argmaxe~∈Eℓtgt,yf(Emb(e),Emb(e~))
函数f为余弦相似度,使用输出实体替换源实体用于数据增强。由于当前训练数据包含多种语言的实体,因此加入语言标记,帮助MELM区分不同语言,如下所示:
3. Experiments
为了综合评估MELM在低资源场景的有效性,考虑三种场景:单语种、零样本跨语种和多语种低资源场景。
3.1 Dataset
实验在CoNLL NER数据集上进行,包含四种语言:英语,德语,西班牙语,荷兰语。对于每种语言,首先从完整数据集中采样
N
N
N个句子,其中
N
∈
{
100
,
200
,
400
,
800
}
N \in \left \{ 100, 200, 400, 800 \right \}
N∈{100,200,400,800}用来模拟不同的低资源场景。同样低资源场景验证集、测试集的大小也是
N
N
N。
3.2 Experimental Setting
MELM微调: 作者使用XLM-RoBERTa-base初始化MELM参数,MELM使用Adam微调20轮。
NER模型: 作者使用带有CRF的XLM-RoBERTa-Large作为NER模型。
超参数微调: 通过网格搜索进行调整。
3.3 Baseline Methods
为了详细说明MELM方法的有效性,与以下方法进行比较:
Gold-Only: NER模型只在原始的训练数据上训练。
标签替换: 随机选择相同类型的实体对原始数据集进行替换。
MLM-Entity: 随机mask实体标记,直接使用预训练的MLM进行数据扩充,而不像MELM那样微调和标记序列线性化。
DAGA: 首先将标签序列化到输入句子中,然后训练自回归语言模型。该模型用于从头开始合成增强数据。
MUIDA: 在线性化多语言NER数据上微调mBART以生成具有新的上下文和实体的增强数据。
3.4 Experimental Results
3.4.1 Monolingual and Cross-lingual NER
如上图左边所示,MELM在不同的低资源场景都取得最佳表现,证明其在单语言NER上的有效性。跨语言NER结果在表中右边所示,同样获得最优表现。
MELM w/o linearize和MELM相比有大幅度的性能下降,证明通过线性化注入标签信息确实有助于MELM区分不同的实体类型,并生成与原始标签兼容的实体。
此外,发现单语言场景标签替换方法在很多数据中表现不佳,可能的原因是实体多样性没有增加,此外随机替换实体会导致上下文与实体之间不兼容,从而为训练带来噪声。
尽管MELM-Entity尝试利用预训练MLM生成适合上下文的新token,但是生成的标签可能与原始不一致,此外MELM通过预训练模型进行数据增强。
同时,MELM结合标签序列化策略,通过标签信息的引导,极大缓解了token标签不对齐问题。
DAGA虽然在高资源场景表现优异,但是低资源场景表现不佳,可能是由于未训练的语言模型重新生成的句子不流利或者不合语法。
3.4.2 Multilingual NER
作者首先将MELM应用于多语言数据集的连接。由上表可知,MELM对比Gold-only实现了实质性的改进。作者和作为数据增强的baseline的MulDAG方法进行比较,MulDAG使用mBART模型自回归生成增强数据,该模型在插入标签标记的NER数据上进行微调。结果表明MulDAG可能导致性能下降,主要原因是插入标签标记导致预训练和微调之间造成差异。
Code-Mix-random和Code-Mix-ess都实现比Gold-only更好的性能,并且Code-Mix-ess在更低资源场景能够带来比Code-Mix-random更为显著的提升,说明了实体相似性搜索算法的有效性。
4. Further Analysis
4.1 Case Study
上表展示了来自预训练MLM、MELM w/o linearize和MELM的前5个预测示例。可以看到MLM倾向生成高频词,并且大部分生成词不会属于原始实体类。相比之下,MELM w/o linearize可以生成实体相关的tokens,但是容易造成token标签错位。MELM同时考虑了标签信息和上下文,从而生成更多适合上下文并且与原始标签对齐的标签。此外,MELM利用预训练模型生成原始NER中不存在的实体,从本质上增加了实体多样性。
4.2 Number of Unique Entities
为了证实引入未见的实体可以提供更多的实体规律性知识,有助于提升NER性能。上图是实验结果,说明MELM引入了大量未见的实体,因此MELM可以提供更丰富的规律性知识,这解释了它优于baseline的原因。
5. Related Work
一系列数据增强方法建立在词级修改之上,包括LSTM语言模型、MLM、自回归预训练LM等,这些方法会造成标签未对齐问题,需要后序复杂操作进行降噪。
此外部分工作利用语言翻译来保留原始句子的整体语义,但是依赖于标签传播的外部词对齐工具,容易出错。
6. Conclusion
MELM利用标签序列线性化,有效缓解了token标签错位问题,并且生成的实体符合上下文语境,可以利用预训练知识生成具有新实体的增强数据。多语言设置下,将MELM与code-mixing混合,进一步提升性能。
阅读总结
一篇在低资源场景通过数据增强的方法扩充数据从而提升模型性能的文章,作者设计的MELM在MLM基础上,只对实体进行mask,在利用上下文的同时又加入了实体标签,避免了token标签不一致的问题,同时语义相似计算得到的token又保持了上下文的一致性。文章最大的亮点在于数据增强的思路清晰,具有很强的说服力,实验也能很好说明结果。数据增强确实是在低资源场景下,得到更多数据的好方法,即使在LLM场景下,设计prompt也需要一定的数据集,所以这样的方法在低资源LLM场景下仍然值得借鉴。