XLMs
在BERT的启发下,提出了一个新的预训练目标:MAsked Sequence to Sequence learning(MASS)用于语言生成。MASS是基于序列到序列(seq2seq)的学习框架:它的编码器将一个带有掩码片段(几个连续的标记)的句子作为输入,它的解码器根据编码器的表示预测这个被提及的片段。与BERT或只对编码器或解码器进行预训练的语言模型不同,MASS分两步对编码器和解码器进行联合预训练:1)通过预测在编码器一侧被屏蔽的句子片段,MASS可以使得编码器理解未被掩码的标记的含义,以便在解码器一侧预测被掩码的标记。2)通过掩码源端未掩码的解码器的输入标记,MASS可以令解码器在预测下一个标记时更多地依赖源端表示,而不是目标端之前的标记,从而更好地促进编码器和解码器之间的联合训练。
MASS只需要对一个模型进行预训练,然后在各种下游任务上进行微调。使用transformer作为基本的序列模型,在WMT单语语料库上进行预训练,然后在三种不同的语言生成任务上进行微调,包括NMT、文本总结和对话回应生成。考虑到下游任务涵盖了像NMT这样的跨语言任务,因此,需对模型进行多语言的预训练。
图6. MASS的编码器-解码器框架。符号"_"代表掩码符号[M]
Sequence to Sequence Learning
令(x, y)∈(X , Y)表示一个句子对,其中,x = (x_1, x_2, ..., x_m)是有m个标记的源句,y = (y_1, y_2, ..., y_n)是有n个标记的目标句,而X和Y是源域和目标域。seq2seq模型学习参数θ来估计条件概率P(y|x; θ),通常使用对数似然作为目标函数
条件概率P(y|x; θ)可以根据chain rule进一步分解如下:
seq2seq学习的一个主要方法是 encoder-decoder 框架。编码器读取源序列并生成一组表征;解码器根据源表征和其前面的标记估计每个目标标记的条件概率。在编码器和解码器之间进一步引入了注意力机制,以找到在预测当前标记时应关注的源表示法。
Masked Sequence to Sequence Pre-training
MASS通过预测句子片段x^(u:v)来预训练一个seq2seq的模型,将被掩码的序列x^(\u:v)作为输入。使用对数似然作为目标函数:
图6给出了一个示例,输入序列有8个标记,对其中的片段x_3、x_4、x_5、x_6进行掩码处理。模型只预测了被掩码的片段x_3、x_4、x_5、x_6,给定x_3、x_4、x_5作为位置4-6的解码器输入,解码器将特殊掩码符号[M]作为其他位置的输入。该方法适用于任何基于神经网络的编码器-解码器框架,考虑到Transformer在多个序列学习任务中实现了最先进的性能,作者在实验中选择了Transformer。
当k=1时,源句中的掩码片段只包含一个标记,解码器在没有任何标记作为输入的情况下预测这个标记,但以未掩码的源标记为条件,如图17(a)所示。此时,模型就是BERT中使用的掩码语言模型。当k=m时(m是句子x中的token数),编码器一侧的所有token都掩码,解码器需要在给定先前token的情况下预测所有token,如图7(b)所示。条件概率为P(x^(1:m)|x^(\1:m); θ),此时,模型就是GPT中的标准语言模型,条件是来自编码器的空信息,因为编码器侧的所有token都被掩码了。
图17. MASS的模型结构
下面给出两种跨语言模型( cross-lingual language models,XLMs)方法:一种是只依靠单语数据的无监督方法,另一种是利用平行数据与跨语言模型的有监督方法。XLMs中具体使用了三种目标函数,其中,两个目标函数只依赖于单语数据(无监督),而第三个则需要平行句子(有监督)。考虑N种语言的情况,假设有N个单语语料库{C_i}_i=1...N,使用n_i表示C_i中的句子数量。
Shared sub-word vocabulary
通过字节对编码( Byte Pair Encoding,BPE)创建的同一套共享词汇来处理所有语言,这极大地改善了不同语言的嵌入空间的一致性,这些语言共享相同的字母或锚定标记,如数字或专有名词。在从单语语料库中随机抽取的句子的连接上学习BPE分词。句子的抽样根据概率为{q_i}_i=1...N的分布进行抽样,其中q_i表示为
Causal Language Modeling (CLM)
因果语言建模(Causal Language Modeling,CLM)任务由一个Transformer语言模型组成,该模型经过训练,可以根据句子中的前几个词来模拟一个词的概率P(w_t|w_1, ... , w_t-1, θ)。
Masked Language Modeling (MLM)
掩码语言建模masked language modeling (MLM)任务从文本流中随机抽取15%的BPE标记,80%用[MASK]标记替换,10%用随机标记替换,10%保持不动。
图5. 跨语言的语言模型预训练。
TLM目标将MLM扩展到平行句子对。为了预测一个被掩码的英语单词,该模型可以同时关注英语句子和它的法语翻译,并鼓励将英语和法语的表征对齐。重置目标句子的位置嵌入,以促进对齐
Translation Language Modeling (TLM)
CLM和MLM的目标函数都是无监督的,只需要单语数据。当平行数据可用时,进一步引入了一个新的翻译语言建模( translation language modeling ,TLM)目标函数来改进跨语言的预训练。TLM的目标函数是对MLM的扩展,不考虑单语文本流,而是将平行的句子连接起来,如图5所示。在源句和目标句中随机屏蔽单词。为了预测英语句子中被掩码的单词,该模型既可以关注临近的英语单词,也可以关注法语翻译,鼓励该模型将英语和法语的表述统一起来。特别是,如果英语上下文不足以推断出被掩码的英语单词时,该模型还可以利用法语上下文。为了促进对齐,重新设定了目标句子的位置。
Cross-lingual Language Models
考虑对本文提及的XLMs(CLM、MLM或TLM)进行跨语言模型预训练。对于CLM和MLM的目标函数,使用由256个标记组成的64个连续句子流来训练模型。在每次迭代中,利用来自同一语言的句子组成一个batch,从上述分布{q_i}_i=1...N中取样,设定公式中α=0.7。当TLM与MLM结合使用时,在这两个目标函数之间交替执行预训练,并以类似的方法对语言进行抽样。
当前 SOTA!平台收录 XLMs 共 4 个模型实现资源。
项目 | SOTA!平台项目详情页 |
XLMs | 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/xlm |
MASS
在BERT的启发下,提出了一个新的预训练目标:MAsked Sequence to Sequence learning(MASS)用于语言生成。MASS是基于序列到序列(seq2seq)的学习框架:它的编码器将一个带有掩码片段(几个连续的标记)的句子作为输入,它的解码器根据编码器的表示预测这个被提及的片段。与BERT或只对编码器或解码器进行预训练的语言模型不同,MASS分两步对编码器和解码器进行联合预训练:1)通过预测在编码器一侧被屏蔽的句子片段,MASS可以使得编码器理解未被掩码的标记的含义,以便在解码器一侧预测被掩码的标记。2)通过掩码源端未掩码的解码器的输入标记,MASS可以令解码器在预测下一个标记时更多地依赖源端表示,而不是目标端之前的标记,从而更好地促进编码器和解码器之间的联合训练。
MASS只需要对一个模型进行预训练,然后在各种下游任务上进行微调。使用transformer作为基本的序列模型,在WMT单语语料库上进行预训练,然后在三种不同的语言生成任务上进行微调,包括NMT、文本总结和对话回应生成。考虑到下游任务涵盖了像NMT这样的跨语言任务,因此,需对模型进行多语言的预训练。
图6. MASS的编码器-解码器框架。符号"_"代表掩码符号[M]
Sequence to Sequence Learning
令(x, y)∈(X , Y)表示一个句子对,其中,x = (x_1, x_2, ..., x_m)是有m个标记的源句,y = (y_1, y_2, ..., y_n)是有n个标记的目标句,而X和Y是源域和目标域。seq2seq模型学习参数θ来估计条件概率P(y|x; θ),通常使用对数似然作为目标函数
条件概率P(y|x; θ)可以根据chain rule进一步分解如下:
seq2seq学习的一个主要方法是 encoder-decoder 框架。编码器读取源序列并生成一组表征;解码器根据源表征和其前面的标记估计每个目标标记的条件概率。在编码器和解码器之间进一步引入了注意力机制,以找到在预测当前标记时应关注的源表示法。
Masked Sequence to Sequence Pre-training
MASS通过预测句子片段x^(u:v)来预训练一个seq2seq的模型,将被掩码的序列x^(\u:v)作为输入。使用对数似然作为目标函数:
图6给出了一个示例,输入序列有8个标记,对其中的片段x_3、x_4、x_5、x_6进行掩码处理。模型只预测了被掩码的片段x_3、x_4、x_5、x_6,给定x_3、x_4、x_5作为位置4-6的解码器输入,解码器将特殊掩码符号[M]作为其他位置的输入。该方法适用于任何基于神经网络的编码器-解码器框架,考虑到Transformer在多个序列学习任务中实现了最先进的性能,作者在实验中选择了Transformer。
当k=1时,源句中的掩码片段只包含一个标记,解码器在没有任何标记作为输入的情况下预测这个标记,但以未掩码的源标记为条件,如图7(a)所示。此时,模型就是BERT中使用的掩码语言模型。当k=m时(m是句子x中的token数),编码器一侧的所有token都掩码,解码器需要在给定先前token的情况下预测所有token,如图17(b)所示。条件概率为P(x^(1:m)|x^(\1:m); θ),此时,模型就是GPT中的标准语言模型,条件是来自编码器的空信息,因为编码器侧的所有token都被掩码了。
图7. MASS的模型结构
当前 SOTA!平台收录 XLMs 共 2 个模型实现资源。
项目 | SOTA!平台项目详情页 |
MASS | 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/mass |
前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及API等资源。
网页端访问:在浏览器地址栏输入新版站点地址 sota.jiqizhixin.com ,即可前往「SOTA!模型」平台,查看关注的模型是否有新资源收录。
移动端访问:在微信移动端中搜索服务号名称「机器之心SOTA模型」或 ID 「sotaai」,关注 SOTA!模型服务号,即可通过服务号底部菜单栏使用平台功能,更有最新AI技术、开发资源及社区动态定期推送。