近年来,我们发现,通过使用许多语言的大型语料库来预训练多语言文本编码器来促进跨语言迁移学习。然而,由于不同语言的类型差异,跨语言迁移具有挑战性。然而,语言语法,例如语法依赖性,可以弥合类型上的差距。之前的研究表明,预先训练过的多语言编码器,如mBERT,可以捕获语言语法,帮助跨语言迁移。这项工作表明,显式地提供语言语法和使用一个辅助目标来编码通用依赖树结构来训练mBERT,有助于跨语言迁移。作者对四个NLP任务进行了严格的实验,包括文本分类、问答、命名实体识别和面向任务的语义解析。实验结果表明,语法增强的mBERT在流行的基准测试中,如PAWS-X和MLQA,在所有语言中平均提高了1.4和1.6个点。在广义转移设置中,性能显著提高,PAWS-X和MLQA的平均表达值分别为3.9点和3.1点。
跨语言传输减少了标记数据在目标语言中执行自然语言处理(NLP)的需求,因此能够在低资源语言中使用NLP应用程序。然而,由于在形态学、语法和语义水平上的语言差异,跨语言转换具有挑战性。例如,词序差异是影响跨语言迁移的关键因素之一。如图1所示,英语和印地语中的两个句子有相同的含义,但不同的词序(英语有SVO(主动词-宾语)顺序,印地语遵循SOV)。然而,句子具有相似的依赖结构,组成词有相似的词性标签。据推测,语言语法可以帮助弥合不同语言之间的类型差异。
近年来,对一种或多种语言的大规模未标记文本数据进行Transformer Encoder的预训练的方法也在应用。它们通过对多种语言的联合预训练,将文本序列映射到一个共享的多语言空间中。自mBERT引入以来,一些工作表明,mBERT捕获了语言语法,使其能够有效地进行跨语言迁移。最近的一些工作表明,BERT学习了组合特征;模仿与通用依赖分类法相一致的树状结构。
但是,在源语言中对下游任务的微调可能不需要mBERT保留结构特性或学习编码语法。作者认为,鼓励mBERT学习语法结构和目标标签之间的相关性,可以有利于跨语言迁移。如图2,mBERT预测的西班牙语语境下的错误答案可以利用语法线索来纠正。利用语法结构也可以有利于广义的跨语言转移,其中输入的文本序列属于不同的语言。
在这项工作中,作者建议在微调通用语言语法的同时增强mBERT。作者使用一个图形注意网络(GAT)来学习被整合到自我注意机制中的输入序列的结构化表示。作者采用一个辅助目标来训练GAT,使其准确地嵌入输入序列的依赖结构。作者对文本分类、问题回答、命名实体识别和面向任务的语义解析的零镜头跨语言迁移进行了评估。实验结果表明,使用语法增强mBERT可以提高跨语言迁移。此外,本文还讨论了在通用语言语法建模中所面临的挑战和局限性。
多语言BERT(mBERT)支持跨语言学习,因为它将文本序列嵌入到一个共享的多语言空间中。mBERT对下游任务进行了微调,例如,使用单语数据进行文本分类,然后直接用于在目标语言上执行。这指的是zero-shot的跨语言转移。本文的idea是用语言语法来增强mBERT的zero-shot跨语言传输。作者使用图注意网络(GAT)来学习语法表示,并将其融合到mBERT的自我注意机制中。
本节结构:(2.1)回顾基于mBERT的Transformer Encoder,(2.2)描述图注意网络(GAT),它从文本序列的依赖结构中学习语法表示。(2.3)描述如何将语言语法显式地合并到转换器编码器中。
Transformer encoder由一个嵌入层和堆叠的编码器层组成。每个编码器层由两个子层组成,一个是多头注意层,然后是一个完全连接的前馈层。作者详细介绍了将一个输入token序列 ( w 1 , . . . , w n ) (w_1,...,w_n) (w1,...,wn)编码为一个向量表示序列 H = [ h 1 , . . . , h n ] H=[h_1,...,h_n] H=[h1,...,hn]的过程。
Embedding Layer
嵌入层由两个嵌入矩阵参数化——标记嵌入矩阵 W e ∈ R U × d m o d e l W_e ∈ R^{U×d_{model}} We∈RU×dmodel和位置嵌入矩阵 W p ∈ R U × d m o d e l W_p ∈ R^{U×d_{model}} Wp∈RU×dmodel(其中U是词汇表大小, d m o d e l d_{model} dmodel是编码器输出维数)。一个输入的文本序列以两个序列的形式进入模型:token序列 ( w 1 , . . . , w n ) (w_1,...,w_n) (w1,...,wn)和相应的绝对位置序列 ( p 1 , . . . , p n ) (p_1,...,p_n) (p1,...,pn)。嵌入层的输出是一个向量序列 { x i } i = 1 n \{x_i\}^n_{i=1} {xi}i=1n,其中 x i = w i W e + p i W p x_i=w_iW_e+p_iW_p xi=wiWe+piWp。向量被打包到矩阵 H 0 = [ x 1 , . . . , x n ] ∈ R n × d m o d e l H^0=[x_1,...,x_n]∈R^{n×d_{model}} H0=[x1,...,xn]∈Rn×dmodel模型,并输入到第L层编码器。
Multi-head Attention
允许共同关注来自不同表征子空间的信息,称为注意力头。由具有相同参数化结构的h个注意头组成的多头注意层。在每个注意力头上,来自前一层 H l − 1 H^{l−1} Hl−1的输出首先被线性地投影到查询、键和值中。
Q = H l − 1 W l Q , K = H l − 1 W l K , V = H l − 1 W l V Q=H^{l-1}W_l^Q,K=H^{l-1}W_l^K,V=H^{l-1}W_l^V Q=Hl−1WlQ,K=Hl−1WlK,V=Hl−1WlV
其中参数 W l Q , W l K ∈ R d m o d e l × d k W_l^Q,W_l^K∈R^{d_{model}×d_k} WlQ,WlK∈Rdmodel×dk和 W l V ∈ R d m o d e l × d v W_l^V∈R^{d_{model}×d_v} WlV∈Rdmodel×dv是独立的每个注意力头部,然后进行缩放点积注意力来计算输出向量 { o i } i = 1 n ∈ R n × d v \{o_i\}^n_{i=1}∈R^{n×d_v} {oi}i=1n∈Rn×dv
Attention ( Q , K , V , M , d k ) = softmax ( Q K T + M d k ) V \text{Attention}(Q,K,V,M,d_k)=\text{softmax}(\frac{QK^T+M}{\sqrt{d_k}})V Attention(Q,K,V,M,dk)=softmax(dkQKT+M)V (1)
其中, M ∈ R n × n M∈R^{n×n} M∈Rn×n是决定一对输入位置是否可以相互参与的掩蔽矩阵。在经典的多头注意中, M M M是一个零矩阵(所有的位置都可以互相参加)。利用参数矩阵 W o ∈ R h d v × d m o d e l W_o∈R^{hd_v×d_{model}} Wo∈Rhdv×dmodel将所有注意头的输出向量连接并投影到模型维中。最后,将向量通过前馈网络进行输出 H l ∈ R n × d m o d e l H^l∈R^{n×d_{model}} Hl∈Rn×dmodel
作者使用输入标记序列的通用依赖关系解析来嵌入它们的语法结构。依赖关系解析是一个有向图,其中节点表示单词,边表示依赖关系(头部和依赖关系单词之间的依赖关系)。作者使用一个图形注意网络(GAT)来嵌入输入序列的依赖树结构,如图3。
给定输入序列,单词 w i w_i wi及其词性标签 p o s i pos_i posi使用两个参数矩阵嵌入到向量中:标记嵌入矩阵 W e W_e We和词性嵌入 W p o s W_{pos} Wpos。然后将输入序列编码到一个输入矩阵 G 0 = [ g 1 , . . . , g n ] \mathcal{G^0}=[g_1,...,g_n] G0=[g1,...,gn],其中 g i = w i W e + p o s i W p o s ∈ R m o d e l d g_i=w_iW_e+pos_iW_{pos}∈R^d_{model} gi=wiWe+posiWpos∈Rmodeld。token嵌入矩阵 W e W_e We是在GAT和变 Transformer encoder之间共享的。然后将 G 0 \mathcal{G^0} G0输入一个第 L G L_{\mathcal{G}} LG层GAT,每一层通过输入相邻的单词来生成单词表示。GAT使用多头注意机制,并执行依赖意识的自我注意作为:
O = Attention ( T , T , V , M , d g ) O=\text{Attention}(\mathcal{T},\mathcal{T},V,M,d_g) O=Attention(T,T,V,M,dg) (2)
即将查询和关键矩阵分别设置为相同的 T ∈ R n × d g \mathcal{T}∈R^{n×d_g} T∈Rn×dg和掩码 M M M
M i j = { 0 , D i j ≤ δ − ∞ , otherwise M_{ij}=\left\{\begin{aligned}0,& & D_{ij}\leq \delta \\-∞& , & \text{otherwise}\end{aligned}\right. Mij={0,−∞,Dij≤δotherwise (3)
式中, D D D为距离矩阵, D i j D_{ij} Dij表示依赖图结构中单词 i i i和单词 j j j之间的最短路径距离
通常在GAT中, δ δ δ被设置为1;只允许相邻单词之间的注意。然而,在本文研究中,作者发现将 δ δ δ设置为 [ 2 , 4 ] [2,4] [2,4]有助于下游任务。最后,来自所有注意力头的向量表示(如在等式中(2))被连接形成输出表示 G l ∈ R n × k d g \mathcal{G^l}∈R^{n×kd_g} Gl∈Rn×kdg,其中 k k k是所使用的注意头的数量。GAT编码器的目标是将依赖关系结构编码为向量表示。因此,作者将GAT设计为light-weight;与Transformer encoder相比,参数要少得多。请注意,GAT不采用位置表示,只由多头注意组成;没有前馈子层和残余连接。
Dependency Tree over Wordpieces and Special Symbols
mBERT将输入序列标记化为subword单位,也称为wordpieces。因此,作者修改了语言标记的依赖结构来适应词片。作者在语言标记的第一个subword(head)和其他subword(依赖关系)之间引入了额外的依赖关系。更具体地说,本文引入了从头subwords到依赖subwords的新边。mBERT的输入使用特殊的符号:[CLS]和[SEP]。作者将[CLS]标记中的一条边添加到依赖树和[SEP]标记的根中。
作者希望Transformer encoder在执行输入序列元素之间的自注意时考虑语法结构。所以作者使用由GAT产生的语法表示(来自最后一层的输出,表示为 G \mathcal{G} G)来偏向自我注意。
O = Attention ( Q + G G l Q , K + G G l K , V , M , d k ) O=\text{Attention}(Q+\mathcal{G}G_l^Q,K+\mathcal{G}G_l^K,V,M,d_k) O=Attention(Q+GGlQ,K+GGlK,V,M,dk)
其中 G l Q , G l K ∈ R d k d g × d k G_l^Q,G_l^K∈R^{d_{kd_g ×d_k}} GlQ,GlK∈Rdkdg×dk是一种通过学习表征来偏向自我注意力的新参数。作者认为附加项 ( G G l Q , G G l K ) (\mathcal{G}G_l^Q,\mathcal{G}G_l^K) (GGlQ,GGlK)是语法偏差,它提供了语法线索来指导自我注意。语法偏差背后的高级直觉是要关注具有特定的词性标签序列或依赖性的token。
Syntax-heads mBERT使用 h ( = 12 ) h(=12) h(=12)注意力头,语法表示可以注入其中一个或多个头部,称为语法头。在本文实验中,可以观察到向许多注意力头部灌输结构信息会使表现下降。对于下游任务,作者考虑一个或两个提供最佳性能的语法头。
Syntax-layers 语法层是指由来自GAT的语法表示所注入的编码器层。mBERT有一个12层的编码器,本文研究发现,考虑到所有的编码层都是有利于跨语言转移的语法层。
作者按照标准程序联合调整源语言(本工作中的英语)中的下游任务上的mBERT和GAT。然而,特定于任务的训练可能不能指导GAT来编码树状结构。因此,作者采用了一个辅助目标来监督GAT来学习表示,可以用来解码树结构的表示。更具体地说,作者使用GAT的输出表示 G = [ g 1 , . . . , g n ] \mathcal{G}=[g_1,...,g_n] G=[g1,...,gn]来预测所有单词对 ( g i , g j ) (g_i,g_j) (gi,gj)之间的树距离和输入序列中每个单词的树深度 ∣ ∣ g i ∣ ∣ ||g_i|| ∣∣gi∣∣。参考Hewitt,本文应用一个线性变换 θ 1 ∈ R m × k d g θ_1∈R^{m×kd_g} θ1∈Rm×kdg来计算平方距离:
d θ 1 ( g i , g j ) 2 = ( θ 1 ( g i − g j ) ) T ( θ 1 ( g i − g j ) ) d_{\theta_1}(g_i,g_j)^2=(\theta_1(g_i-g_j))^T(\theta_1(g_i-g_j)) dθ1(gi,gj)2=(θ1(gi−gj))T(θ1(gi−gj))
参数矩阵 θ 1 θ_1 θ1是通过最小化来学习的:
min θ 1 ∑ s 1 n 2 ∑ i , j ∣ d i s t ( w i , w j ) @ − d θ ( g i , g j ) 2 ∣ \min_{\theta_1}\sum_s \frac{1}{n^2} \sum_{i,j}|dist(w_i,w_j)^@-d_\theta(g_i,g_j)^2| θ1mins∑n21i,j∑∣dist(wi,wj)@−dθ(gi,gj)2∣
其中, s s s表示训练语料库中的所有文本序列。类似地,作者训练另一个参数矩阵 θ 2 θ_2 θ2来计算平方向量范数, d θ 2 ( g i ) = ( θ 2 g i ) T ( θ 2 g i ) d_{θ_2}(g_i)=(θ_2g_i)^T(θ_2g_i) dθ2(gi)=(θ2gi)T(θ2gi),它描述了单词的树的深度。作者通过最小化损失来训练GAT的参数和 θ 1 , θ 2 θ_1,θ_2 θ1,θ2: L = L t a s k + α ( L d i s t + L d e p t h ) L=L_{task}+α(L_{dist}+L_{depth}) L=Ltask+α(Ldist+Ldepth),其中 α α α是树结构预测损失的权重。
Pre-training GAT 与mBERT的参数不同,GAT的参数是在特定于任务的微调过程中从头开始训练的。对于资源不足的任务,GAT可能无法学会准确地编码语法结构。因此,作者利用通用依赖解析对源语言和目标语言进行GAT预训练。注意,GAT的训练目标是预测如上所述的树的距离和深度。
为了研究语法增强的mBERT在更广泛的环境下的性能,作者对四个NLP应用进行了评估:文本分类、命名实体识别、问题回答和面向任务的语义解析。评估重点是评估在zero-shot跨语言迁移中使用通用语法的有效性。
Text Classification
作者在两个广泛使用的跨语言文本分类任务上进行了实验:(i)自然语言推理和(ii)释义检测。我们分别使用XNLI和PAWS-X的数据集来完成任务。在这两个任务中,都有一对句子作为mBERT的输入。作者通过将[CLS]标记加入到依赖树的根中来组合两个句子的依赖树结构。线性分类器采用[CLS]标记的上下文表示来预测目标标签。
Named Entity Recognition
NER是一个结构预测任务,需要识别输入句子中提到的命名实体。使用维基数据集和CoNLL-2002和CoNLL-2003NER的两个任务的一个子集。作者从XGLUE中收集CoNLL数据集。在这两个数据集中,有4种类型的命名实体:Person, Location, Organization, and Miscellaneous。
Question Answering
作者对两个跨语言的问题回答基准进行了评估,即MLQA和XQuAD。作者使用SQuAD数据集来进行训练和验证。在QA任务中,输入是一个问题和一个由许多句子组成的上下文段落。作者将QA表述为多句子阅读理解任务;联合训练模型来预测答案句子,并从中提取答案跨度。作者将问题和上下文段落中的每个句子连接起来,并使用[CLS]标记表示来对候选句子进行评分。
Task-oriented Semantic Parsing
第四个评估任务是跨语言的面向任务的语义解析。在这个任务中,输入是一个用户的话语,其目标是预测话语的意图并填充相应的插槽。我们在最近提出的两个基准上进行了实验:(i)mTOP和(ii)mATIS++。本文按照Chen等人的建议,联合训练了BERT模型。
表1总结了评估任务基准数据集和评价指标。
本文通过使用UDPipe对数据集进行预处理,从而收集了通用的词性标签和句子的依赖性解析。作者对预处理数据集上的mBERT进行了微调,并将其视为本文提出的使用语法增强的mBERT的基线。作者扩展了基于transformers API的XTREME框架开发,对mBERT模型使用相同的超参数设置,如XTREME中所示。对于图形注意网络(GAT),设置 L G = 4 、 k = 4 和 d g = 64 L_G=4、k=4和d_g=64 LG=4、k=4和dg=64(得到∼50万个参数)。作者调优了等式(3)中的 δ δ δ和树状结构预测损失的权重 α α α分别在 [ 1 , 2 , 4 , 8 ] 和 [ 0.5 − 1.0 ] [1,2,4,8]和[0.5−1.0] [1,2,4,8]和[0.5−1.0]范围内。
本文目标是解决以下问题:
比较mBERT和合成增强mBERT的实验结果见表2。
在广义跨语言迁移设置中,下游任务(如文本分类、QA)的输入文本序列可能来自不同的语言。如图2所示,给定英语的上下文段落,多语言QA模型应该回答用西班牙语编写的问题。由于现有基准数据集的并行性:XNLI、PAWS-X、MLQA和XQuAD,本文在广义跨语言传输设置上评估了mBERT及其“语法增广变体”。PAWS-X和MLQA的结果如表3所示。
基于实证结果,作者将在以下几点上讨论和分析了研究结果。
Impact on Languages
作者研究了在英语(源语言)上的微调语法增强的mBERT是否会影响特定的目标语言或语言族。图4展示了在四个下游任务中按其族分组的目标语言的性能提高。跨任务的整体性能提高没有明显的趋势。然而,XNLI曲线微弱地表明,当目标语言在类型上与源语言不同时,传输性能会有所提高(与曲线的左半部分到右半部分相比)。
Impact of Pre-training GAT
在微调语法增强的mBERT之前,作者对17种目标语言上的GAT进行了预训练(在2.4中讨论)。实验可观察到这种预训练提高了语义解析性能,而在分类和QA任务上有一些收获。作者还观察到,训练前的GAT减少了使用辅助目标(预测树的结构)的微调增益。作者假设,当训练数据有限时,使用辅助目标微调GAT或预训练会有帮助。例如,语义解析基准测试有少量的训练示例,而XNLI有很多。因此,在语义解析任务中,由于预训练或微调GAT而导致的改进是显著的,而在XNLI任务中,它是边缘化的。
Discussion :为了促进这个方向的研究,我们讨论了其他的实验结果。
在这项工作中,作者假设可以访问一个现成的通用解析器,例如,UDPipe或Stanza来收集词性标签和输入序列的依赖结构。依赖于这样的解析器有一个局限性,它可能不支持基准数据集中的所有可用的语言,例如,在基准数据集中不考虑泰国语和斯瓦希里语。
在使用通用解析器方面存在几个挑战。首先,通用解析器将输入序列标记为单词,并为它们提供部分词性标记和依赖关系。标记化的单词可能不是输入的一部分。因此,需要提取文本跨度的任务(例如,QA)需要从输入标记到单词的额外映射。其次,解析器的输出字序列被标记化为字段,这通常会导致不一致的字段,从而导致下游任务中的性能退化。
Encoding Syntax for Language Transfer
通用语言语法,如词性(POS)标签、依赖解析结构和关系对跨语言转换有帮助。许多之前的工作使用图神经网络(GNN)来编码输入序列的依赖图结构。本文利用了图注意网络(GAT),这是一种使用多头注意机制的GNN的变体。
Syntax-aware Multi-head Attention
之前的大量工作研究了结合语言语法来增强自注意机制的优势。现有的技术可以大致分为两种类型。第一种方法依赖于外部解析器(或人工注释)来在推理过程中获得句子的依赖关系结构。这种方法将依赖结构嵌入到上下文表示中。本文提出的方法属于这一类别;然而,与之前的工作不同,我们的研究调查了将通用依赖结构融合到现有多语言编码器的自我关注中是否有助于跨语言迁移。使用多头注意的图注意网络(GATs)也被用于NLP任务也属于这一类。第二类方法在推理过程中不需要输入文本的语法结构。这些方法通过训练来通过监督学习预测依赖解析。
本文提出通过将结构化表示注入到多语言的多头注意机制中,将通用语言语法合并到多语言BERT(mBERT)中。本文采用了一个改进的图注意网络来编码输入序列的语法结构。研究结果支持了本文提出的方法在跨语言迁移中的有效性。作者将讨论推动未来工作的局限性和挑战。
在当今世界,某些语言的使用者数量是数十亿种,而许多语言的使用者数量只有几千种。因此,一些语言提供了大规模的注释资源,而对于许多语言,只有有限或没有标记数据。由于这种差异,自然语言处理(NLP)在资源匮乏的语言中具有极具挑战性。近年来,跨语言迁移学习取得了显著的改进,使我们能够将NLP应用于世界各地人们使用的广泛语言。然而,跨语言迁移的挑战之一是学习语言之间的语言相似性和差异性,以及它们与目标NLP应用程序的相关性。现代可转移模型在未标记的大量语料库上进行了预先训练,这样它们就可以学习语言语法和语义,并将它们编码为通用表示。这种预先训练的模型可以在不同下游应用程序的微调过程中显式合并通用语言语法。这项工作提出了一个全面的研究来分析利用通用依赖(UD)框架的优缺点,该框架包括跨许多人类语言的语法注释。本文的工作可以广泛地影响跨语言迁移解决方案的发展,使全球的人都能使用它们。在这项工作中,作者讨论了使用通用解析器来造福预先训练的模型的局限性和挑战。本文工作的消极方面之一是缺乏解释为什么某些语言由于普遍的语法知识合并而比其他语言获得更多的好处。