翻译:Structure-Level Knowledge Distillation For Multilingual Sequence Labeling

Structure-Level Knowledge Distillation For Multilingual Sequence Labeling(面向多语言序列标注的结构级知识蒸馏)

面向多语言序列标注的结构级知识蒸馏

  • 0 摘要
  • 1 简介
  • 2 研究背景
    • 2.1 序列标注
    • 2.2 知识蒸馏
  • 3 实验方法
    • 3.1 Top-K蒸馏
    • 3.2 后验蒸馏
    • 3.3 多语言知识提蒸馏
  • 4 实验
    • 4.1 设置
    • 4.2 结果
    • 4.3 Zero-shot转移
    • 4.4 较弱的教师KD
    • 4.5 Top-K的k值
    • 4.6 训练时间和内存消耗
  • 5 相关工作
  • 6 关于Flair/M-BERT微调的讨论
  • 7 结论

0 摘要

多语言序列标记是一项使用多种语言的单一统一模型预测标记序列的任务。与依赖多种单语模型相比,使用多语模型具有模型规模小、易于在线服务、可推广到低资源语言的优点。然而,由于模型容量的限制,目前的多语言模型的性能仍明显低于单语言模型。本文提出将几种单语模型(教师)的结构化知识蒸馏为统一多语模型(学生),从而缩小单语模型与统一多语模型之间的差距。我们提出了两种基于结构级信息的KD方法

  1. 近似最小化学生与教师结构级概率分布之间的距离;
  2. 将结构层次的知识聚合到局部分布,最小化两个局部概率分布之间的距离。

我们在25个数据集的4个多语言任务上的实验表明,我们的方法优于几个强基线,并具有比基线模型和教师模型更强的0-shot泛化能力。

1 简介

序列标注是自然语言处理中的一项重要任务。许多任务,如命名实体识别(NER)和词性标注,可以表述为序列标注问题,这些任务可以为许多下游任务和产品,如搜索引擎、聊天机器人和语法分析提供额外的信息。以往关于序列标注的工作大多集中在单语模型上,多语序列标注的工作主要集中在跨语言迁移学习上,以提高低资源或零资源语言的性能,但他们的工作仍然训练单语模型。

然而,如果我们为世界上7000多种语言训练单语模型,这将是非常耗费资源的。此外,还有一些语言的标注数据有限,需要培训。因此,有一个统一的多语言序列标注模型来处理多语言是有益的,但由于不同语言之间存在显著差异,统一的多语言模型较少受到重视。最近,多语言BERT (M-BERT) 在NER和POS标记等任务的0-shot跨语言模型转移方面惊人地出色。M-BERT连接了多种语言,使训练成为高性能的多语言序列标注模型。然而,多语言模型的准确性仍然低于使用不同类型强预训练词表示的单语言模型,如Akbik等人提出的上下文字符串嵌入(Flair)。

为了缩小单语模型和多语言模型之间的性能差距,我们建议利用知识蒸馏将知识从多个具有强单词表示的单语模型转移到单个多语言模型中。知识蒸馏是一种首先训练强教师模型,然后通过模仿输出概率训练弱学生模型的技术或隐藏状态的老师模型。学生模型可以达到与教师模型相当的精度,而且通过KD模型的尺寸通常较小。受KD应用于神经机器翻译和多语言的启发,我们的方法包含一组单语教师模型一个多语言学生模型。两组模型均基于BiLSTM-CRF ,其中一个最先进的模型在序列标签。在BiLSTM-CRF中,CRF层对相邻标签之间的关系进行建模,这比简单地基于BiLSTM输出分别预测每个标签产生更好的结果。

然而,CRF结构利用相邻标签之间的相关性对标签序列进行全局建模,增加了从教师模型中提取知识的难度。在本文中,我们提出了两种考虑结构层次知识的多语言序列标注方法。为了共享结构级知识,我们可以通过近似的方法直接使学生和教师对全局序列结构分布的差异最小,也可以将全局序列结构聚合成局部后验分布,使聚合后的局部知识差异最小。实验结果表明,该方法在25个数据集的4个任务中提高了多语言模型的性能。此外,与基础多语模型和几种单语教师模型相比,我们的方法在0-shot迁移方面有更好的表现。

2 研究背景

2.1 序列标注

BiLSTM-CRF是最流行的序列标记方法之一。给定的序列 n n n 词标记 x = { x 1 , ⋅ ⋅ ⋅ , x n } x = \{x_1,···,x_n\} x={x1,,xn} 和黄金的相应序列标签 y ∗ = { y 1 ∗ ⋅ ⋅ ⋅ y n ∗ } y^∗= \{y^∗_1···y^∗_n\} y={y1yn},我们首先将 x x x 的标记表示馈送到BiLSTM中,以获得上下文标记表示 r = { r 1 , ⋯   , r n } r = \{r_1,\cdots,r_n\} r={r1,,rn}。条件概率 p ( y ∣ x ) p(y|x) p(yx) 由下式定义:
在这里插入图片描述
翻译:Structure-Level Knowledge Distillation For Multilingual Sequence Labeling_第1张图片
其中, Y ( x ) \mathcal Y(x) Y(x) 表示 x x x 的所有可能的标记序列的集合, ψ ψ ψ 是势函数, W y W_y Wy b y ′ b_y' by 是参数, y ′ y' y 被定义为特殊的起始符号。通常分别称为排放和过渡分数。在训练期间,输入序列的负对数似然损失由下式定义:
在这里插入图片描述
BiLSTM-Softmax序列标注方法通过忽略标签转换,将任务简化为一组标签分类问题,并简单地将排放得分 W r i T W^T_{ri} WriT 送入Softmax层,以获得每个变量 y i y_i yi 的概率分布。

在这里插入图片描述

损失函数变成:
翻译:Structure-Level Knowledge Distillation For Multilingual Sequence Labeling_第2张图片
尽管简单,这种方法忽略了相邻标签之间的相关性,因此不能充分模拟序列结构。因此,在许多应用中,它在经验上表现不如第一种方法。

2.2 知识蒸馏

KD的一个典型方法是通过模仿老师的预测来训练学生网络。在BiLSTM-Softmax序列标记上实现KD的最简单方法遵循Eq.3。并且通过最小化由教师模型和学生模型预测的各个标签分布之间的交叉熵损失来执行token标题级蒸馏:

翻译:Structure-Level Knowledge Distillation For Multilingual Sequence Labeling_第3张图片
其中 p t ( y i = j ∣ x ) p_t(y_i= j|\mathbf x) pt(yi=jx) p s ( y i = j ∣ x ) p_s(y_i= j|\mathbf x) ps(yi=jx) 分别为教师模型和学生模型预测的标签分布, ∣ V ∣ |\mathcal V| V 为可能的标签数。学生模型的最终损失结合了KD损失和负对数似然损失:

在这里插入图片描述
其中 λ λ λ 是超参数。然而,正如2.1节所指出的,基于Eq.3的序列标注存在忽视结构级知识的问题。在BiLSTM-CRF方法中,我们也可以应用发射蒸馏,通过输入Eq.3中的发射得分,得到发射概率属于 p ( y i ∣ x ) p(y_i|\mathbf x) p(yix),则损失函数为:

翻译:Structure-Level Knowledge Distillation For Multilingual Sequence Labeling_第4张图片

3 实验方法

在本节中,我们提出了两种学习单个多语言序列标注模型(student)的方法,即从多个单语言模型中提取结构级知识。第一种方法近似地使学生和教师预测的结构级概率分布之间的差异最小化。第二种是将结构层面的知识聚集为局部后验分布,从而使学生和教师产生的局部分布差异最小化。我们的方法如图1所示。

翻译:Structure-Level Knowledge Distillation For Multilingual Sequence Labeling_第5张图片
图1:结构级知识蒸馏方法。Mono/Multi分别表示单语和多语。Pos.表示后验分布。

3.1 Top-K蒸馏

受Kim和Rush(2016)的启发,我们建议鼓励学生模仿教师在所有可能的标签序列上的全局结构概率分布:
在这里插入图片描述
然而, ∣ Y ( x ) ∣ |\mathcal Y(\mathbf x)| Y(x) 是指数级大的,因为它代表所有可能的标记序列。我们提出了两种方法来缓解这个问题,通过使用k-best标记序列的 p t ( y ∣ x ) p_t(\mathbf y|\mathbf x) pt(yx) 的有效近似。

Top-K Eq.6可以看作是计算学生对教师结构分布的期望对数概率:
在这里插入图片描述
期望可以通过对教师分布 p t ( y ∣ x ) p_t(\mathbf y|\mathbf x) pt(yx) 进行抽样来近似。然而,从分布中进行无偏抽样是困难的。相反,我们采用一种有偏差的方法,将教师模型预测的 k k k-best 标签序列作为我们的样本。我们使用改进的Viterbi算法来预测 k k k-best 标签序列 T = { y ^ 1 , … , y ^ k } \mathcal T=\{\hat y_1,…,\hat y_k\} T={y^1,,y^k}。Eq.7可以近似为:
在这里插入图片描述
这也可以看作是教师对每个输入句子生成 k k k 个伪目标标签序列的数据增强。

加权Top-K Top-K方法有很大的偏倚,因为 k k k 越大,近似值越差。一个更好的方法是将权值与 k k k 个样本关联起来,从而更好地近似 p t ( y ∣ x ) p_t(\mathbf y|\mathbf x) pt(yx)在这里插入图片描述
Eq.7可以近似为:
在这里插入图片描述
这可以看作是教师对每个输入句子产生的学生学习加权伪目标标签序列。

Top-K方法与之前在神经机器翻译和多语言神经机器翻译中的模型压缩工作有关。在神经机器翻译中,生成 k k k-best 标记序列是一个棘手的问题,在实践中,波束搜索解码已被用来逼近 k k k-best 标记序列。而对于线性链CRF模型,改进的Viterbi算法可以精确地生成 k k k-best 标签序列。

3.2 后验蒸馏

Top-K相对于教师的结构分布是近似的,在大 k k k 上仍然很慢。我们的第二种方法试图基于可处理的局部(token-式)分布 q ( y k ∣ x ) q(y_k|x) q(ykx) 提取结构级知识,这是可以精确计算的。
翻译:Structure-Level Knowledge Distillation For Multilingual Sequence Labeling_第6张图片
其中 Z \mathcal Z Z 是Eq. 2的分母。通常称为配分函数, α ( y k ) α(y_k) α(yk) β ( y k ) β(y_k) β(yk) 是利用前向-后向算法在前向和后向通道中计算的。我们假设 β ( y n ) = 1 β(y_n) = 1 β(yn)=1

已知每个token的局部概率分布,我们以与Eq.5中的token级别蒸馏类似的方式定义KD损失函数。
翻译:Structure-Level Knowledge Distillation For Multilingual Sequence Labeling_第7张图片
token级蒸馏与后验蒸馏的区别在于后验蒸馏基于BiLSTM-CRF,以局部概率分布的方式传递全局结构知识。

由于难以计算局部分布,后验提取在神经机器翻译的知识提取的相关研究中还没有得到应用。然而,在序列标记中,可以使用前向-后向算法精确地计算BiLSTM-CRF中的局部分布。

表1给出了计算这一小节和最后一小节中讨论的结构知识的例子。
翻译:Structure-Level Knowledge Distillation For Multilingual Sequence Labeling_第8张图片
表1:计算标签集为 { T , F } \{T,F\} {T,F} 的3个token序列的结构知识的示例。 ψ ( y k ′ , y k , r k ) ψ(y_k',y_k,r_k) ψ(yk,yk,rk) 表示为Eq.1中的势能。每个Label SeqProb对应的标签序列定义在Eq.2中。Top-2表示得分最高的两个标签序列,权重为KD对应的权重(Eq.8,9)。根据Eq.11、12和10分别计算 α ( y k ) α(y_k) α(yk) β ( y k ) β(y_k) β(yk) 和后验分布 q ( y k ∣ x ) q(y_k|\mathbf x) q(ykx)。我们假设 ψ ( y ′ , y 1 , r 1 ) = 1 ψ(y', y_1,r_1) = 1 ψ(y,y1,r1)=1,不论 y 1 y_1 y1 T T T 还是 F F F

3.3 多语言知识提蒸馏

D = { D 1 , ⋯   , D l } \mathcal D=\{D^1,\cdots,D^l\} D={D1,,Dl} 表示一组 l l l 种语言的训练数据。第 i i i 语言的语料库,包含多个句子和标签序列对。为了从多个单语预训练教师中训练一个单语学生模型,对于每个输入句子,我们首先使用相应语言的教师模型来预测伪目标( k k k-best 标签序列或后验蒸馏的后验分布)。

然后学生通过优化以下损失函数,共同学习训练中的黄金目标和伪目标:
在这里插入图片描述
在Clark等人(2019)的整个训练过程中, λ λ λ 从1下降到0, L K D \mathcal L_{KD} LKD 是Eq.5,8,9,13之一或Eq.9,13的平均值。整个蒸馏过程总结在算法1中。
翻译:Structure-Level Knowledge Distillation For Multilingual Sequence Labeling_第9张图片

4 实验

4.1 设置

数据集 在实验中,我们使用了4个序列标记任务的数据集。

  • CoNLL NER:我们从CoNLL 2002和2003共享任务中收集了4种语言的语料库;
  • WikiAnn NER:该数据集包含标准NER标签,可在维基百科中存在的282种语言上自动注释。我们选取了8种不同语系或印欧语系不同语族的语言资料。我们从数据集中,除了英语外,每一种语言随机选取5000个句子,而英语则随机选取10000个句子,以体现实践中英语语料库的丰富程度。我们将数据集以8:1:1分割,用于培训/开发/测试。
  • Universal Dependencies (UD) :我们在UD数据集中使用通用POS标记注释。我们从不同的语系或语言子组中选择了8种语言,每种语言都有一个数据集。
  • Aspect Extraction:数据集来自SemEval-2016任务5中的基于方面的情感分析任务。我们选择所有域中语言最多的餐馆域的子任务1,分割10%的训练数据作为dev数据。

模型配置 在我们的实验中,所有的word embedding都是固定的,M-BERT的token embedding是通过平均池化得到的。我们将token embedding到BiLSTM-CRF中进行解码。根据数据集的不同,单语教师模型的BiLSTM层隐藏尺寸为256,多语学生模型的隐藏尺寸为600或800,因为多语模型的隐藏尺寸越大,在我们的实验中性能越好。教师和学生模型设置如下:

  • 单语教师模型:每个教师都用一种特定语言的数据集进行培训。我们使用M-BERT连接特定语言的Flair embedding和fastText单词向量作为token embedding用于所有的单语教师模型。
  • 多语言学生模型:学生模型是用所有语言组合的数据集训练的。对于多语言学生模型,我们只使用M-BERT作为token embedding。

训练 对于模型训练,mini批大小设置为2000个token。我们用学习率为0.1的SGD优化器训练所有模型,如果10个Epoch的dev设置没有改进,则将学习率退火0.5。对于所有的模型,我们使用单个NVIDIA Tesla V100 GPU进行培训,包括学生模型。我们将损失插值退火速率调整在 { 0.5 , 1.0 } \{0.5,1.0\} {0.5,1.0} 内,Top-K的 k k k 值在 [ 1 , 10 ] [1,10] [1,10] 范围内。

4.2 结果

我们报告以下方法的结果。

  • 基线表示用所有语言组合的数据集训练多语言模型,不需要进行知识精馏。
  • Emission:基于Eq.5的KD方法。
  • Top-K、Top-WK、Posterior分别是由式8、式9、式13制定的KD方法。
  • Pos.+Top-WK是后向蒸馏和加权Top-K蒸馏的混合物。

我们还报告了作为教师的单语模型和基于Eq.4的Token级KD作为Softmax和Token的多语BiLSTM-Softmax模型的结果供参考。

表2、3和4显示了我们的方法在25个数据集上的4个任务上的有效性。在所有的表格中,我们报告平均分超过5分。
翻译:Structure-Level Knowledge Distillation For Multilingual Sequence Labeling_第10张图片
表2:CoNLL 2002/2003 NER任务f1得分结果和SemEval 2016任务5的方向提取结果。
翻译:Structure-Level Knowledge Distillation For Multilingual Sequence Labeling_第11张图片
表3:WikiAnn NER任务中的F1分数。

  • 观察#0,在大多数情况下,BiLSTM-Softmax模型在多语言环境下的表现不如BiLSTM-CRF模型:结果表明,在4个任务中的3个上,BiLSTM-CRF方法强于BiLSTM-Softmax方法,这与之前的序列标注工作一致。除了方面提取任务外,在大多数任务中,token级KD方法的执行几乎与BiLSTM-Softmax基线相同。
  • 观察#1,单语教师模型优于多语学生模型:这可能是因为单语教师模型基于多语向量M-BERT和强单语向量(Flair/fastText)。单语向量可以提供多语学生模型无法获得的额外信息。此外,请注意,多语言学生模型面临的学习问题比教师模型困难得多,因为学生模型必须使用与教师模型大致相同的模型大小来处理所有的语言。
  • 观察#2,Emission并不能传递知识:在25个数据集中,只有12个数据集的Emission性能优于基线。这表明,对于BiLSTM-CRF模型,仅仅遵循从Emission分数中提炼知识的标准方法是不够的。
  • 观察#3,Top-K和Top-WK的性能优于基线:在15个数据集上,Top-K的性能优于基线。它在Wikiann NER和Aspect Extraction上的平均性能优于Emission,在其他两个任务上与Emission相平。Top-WK在18个数据集上优于基线,在所有任务中也优于Top-K
  • 观察#4,后验方法在大多数任务上实现了最佳性能:后验方法在21个数据集上优于基线,仅在WikiAnn的2种语言上0.12和在UD POS标记的一种语言上0.01落后于基线。它在所有任务中平均优于其他方法,除了在CoNLL NER任务中稍低于Pos.+Top-WK
  • 观察#5,Top-WK+后验处于中间位置Pos.+Top-WK仅在CoNLL NER任务中表现优于Top-WK和后验。在其他三个任务中,其表现高于Top-WK,但低于Posterior

4.3 Zero-shot转移

我们使用单语教师模型、多语基线模型以及在CoNLL NER数据集上训练的后验模型和Pos.+Top-WK模型来预测第4.2节中使用的WikiAnn 7种语言测试集上的NER标记。表5显示了结果。对于教师模型,我们报告所有教师在每种语言上的最高分数。
翻译:Structure-Level Knowledge Distillation For Multilingual Sequence Labeling_第12张图片
表5:在NER任务中零射转移的结果(CoNLL → \to WikiAnn)。

结果表明,多语言模型显著优于教师模型。对于泰米尔语和希伯来语等与CoNLL数据集中的语言非常不同的语言,教师模型的性能与多语言模型相比显著下降。这表明教师模型的语言特性限制了其对新语言的概括。我们的多语言模型,后验Pos.+Top-WK在所有语言上都优于基线。Emission略低于基线,再次表明它在知识蒸馏中的无效。

我们还在WikiAnn NER数据集和UD POS标记数据集上分别对其他28种语言和24种语言进行了零射迁移实验。平均结果如表6所示。NER实验表明,我们的方法在28种语言中的24种上优于基线,后验Pos.+Top-WK的平均F1分强0.29。POS标记实验表明,我们的方法在24种语言中的20种上优于基线。更多详情,请参阅附录A。

4.4 较弱的教师KD

为了证明我们的方法的有效性,我们在CoNLL NER任务的四个数据集上仅使用M-BERT 向量来训练较弱的单语教师。我们运行后蒸馏,并保持学生模型的设置不变。在这种设置下,后验不仅优于基线,而且平均也优于教师模型。这表明,当教师和学生拥有相同的 token embeddding 时,我们的方法仍然有效。通过对比表7和表2,我们也可以看到老师越强,学生越好。
翻译:Structure-Level Knowledge Distillation For Multilingual Sequence Labeling_第13张图片
表7:较弱教师的后验蒸馏

4.5 Top-K的k值

为了说明k值如何影响Top-KTop-WK精馏方法的性能,我们在CoNLL NER任务中比较了两种精馏方法和不同 k k k 值的模型。图2显示当 k k k 增大时,Top-WK的性能会显著下降。因此Top-WK对超参数 k k k 不太敏感,在实际应用中可能是实用的。

4.6 训练时间和内存消耗

我们比较了不同方法在CoNLL NER任务上的训练时间,并将结果报告在表8中。我们的上周和后周入路的训练时间分别是基线入路的1.45和1.63倍。培训、内存消耗的GPU内存成本不显著不同的方法,而所有的CPU内存成本KD方法是基线模型的2倍,因为训练模型与KD需要存储的预测教师在CPU的内存中。

5 相关工作

多语言序列标注 许多重要的任务,如NER和词性标注,都可以归结为一个序列标注问题。关于多语言学习者的大部分最新研究和POS标记的重点是将一种特定语言的知识转移到另一种(低资源)语言。例如,Johnson et al.(2019)为NER提出了跨语言迁移学习,重点是从英语中引导日语,因为英语的字符集与日语不同。

预训练单词表征 ELMo、BERT和XLNet等预训练词表示的最新进展显著提高了多个自然语言处理任务的性能。多语言BERT是一个预先训练的BERT模型,将104种语言合并到一个单一的多语言模型中。Pires等人在NER和POS标记上显示了其泛化和0-shot迁移学习的能力,Keung等人使用M-BERT进行对抗学习,显著改善了零资源跨语言NER。在NER和POS标记任务上,Flair embeddings是基于字符级语言模型的最先进的方法。Straka等人发现,在54种语言的CoNLL 2018共享任务数据集的大多数子任务中,将Flair embedding与BERT embedding 相结合的效果优于ELMo、BERT和Flair embedding的其他混合,这启发我们使用M-BERT + Flair embedding作为教师的单词表示。

知识蒸馏 知识蒸馏已经被用来在大模型的指导下提高小模型的性能,并在自然语言处理中得到应用、计算机视觉和语音识别。对于简单的分类问题,在情感分析、图像识别和跨语言文本分类等任务上有多种工作。对于结构化预测问题,有神经机器翻译方面的工作线,语音识别领域的连接主义时间分类和依存句法分析。近年来,许多基于知识提取的BERT研究主要集中在将一个大的BERT模型提取到一个小的BERT模型上。Tsai等人将一个大的M-BERT模型提取为三层M-BERT模型用于序列标记,并通过显著的速度改进获得了具有竞争力的高精度。焦等提出了TinyBERT用于自然语言理解。Sanh等人提出了BERT模型的浓缩版本,其速度比更大的BERT模型快60%,性能保持在97%。

6 关于Flair/M-BERT微调的讨论

先前的工作已经讨论并实证研究了将单语预处理embedding模型适应单语下游任务的两种方法:要么修复模型并将其用于特征提取,要么在下游任务中对其进行微调。他们发现,在大多数情况下,这两种设置的性能相当。吴和Dredze发现,在底层固定的情况下微调M-BERT可以在多语言环境下进一步提高性能。在本文中,我们主要集中在第一种方法,并利用预处理embedding作为固定特征提取器,因为Flair/M-BERT微调对于我们的大规模多语言知识发现实验设计来说太慢了。为预包含的嵌入模型设计一种廉价而快速的微调方法可能是未来工作的一个有趣方向。

7 结论

在本文中,我们的主要贡献是在序列标注中将单语模型的知识提取到单个多语言模型的两种结构级方法:Top-K知识提取和后验提取。实验结果表明,在25个数据集上,我们的方法在4个任务上提高了多语言模型的性能。分析还表明,我们的模型在NER和词性标注任务中对看不见的语言具有较强的0-shot迁移能力。

我们的代码可以在 https://github. com/Alibaba-NLP/MultilangStructureKD上公开获得。

你可能感兴趣的:(NLP,人工智能,nlp,深度学习)