李宏毅DLHLP.22.Multilingual BERT

文章目录

  • 介绍
  • Zero-shot Reading Comprehension
  • Cross-lingual Alignment
  • How alignment happens

介绍

本门课程是2020年李宏毅老师新课:Deep Learning for Human Language Processing(深度学习与人类语言处理)
课程网站
B站视频
公式输入请参考:在线Latex公式
这个世界上有很多很多种语言,不需要为每一种语言准备一个BERT,而是用Multilingual BERT,将所有语言的训练数据放在一起,去训练BERT,只要有足够大的Token set。下面就是用Mask来无监督的训练英文和中文的例子。
李宏毅DLHLP.22.Multilingual BERT_第1张图片

Zero-shot Reading Comprehension

Multilingual BERT对于单个语言的BERT的优点是可以做zero-shot相关的任务,例如:Zero-shot Reading Comprehension。
下图中有一组英文QA训练数据(每个样本包含一篇文章,一个问题和一个答案),然后用它在Multi-BERT上(谷歌用104种语言训练的)做fine-tune之后,可以用在中文上做QA的任务
李宏毅DLHLP.22.Multilingual BERT_第2张图片
语料来源:English: SQuAD, Chinese: DRCD
结果如下:
李宏毅DLHLP.22.Multilingual BERT_第3张图片
Multilingual BERT性能相当不错,如果只有英文的QA数据,目标是做中文的QA时,Multi-BERT是一个比较好的选择。但老师补充说,如果先做一下翻译,然后就相当于有了中文的QA数据,再去训练,这样的效果还不如直接用Multi-BERT的效果,估计是因为翻译本身存在较大的误差。
Multilingual BERT很强,因此谷歌专门弄了一个benchmark:XTREME,可以看这里:https://blog.csdn.net/jilrvrtrc/article/details/106368357
李宏毅DLHLP.22.Multilingual BERT_第4张图片

Cross-lingual Alignment

下面来看看为什么Multilingual BERT为什么可以做跨语言任务:Cross-lingual Alignment(跨语言对齐)
李宏毅DLHLP.22.Multilingual BERT_第5张图片
就是Multilingual BERT在看不同语言的词语的时候,会把相同意思的词语embedding到一起,对此,老师做了一个实验:Mean Reciprocal Rank
在这个实验中,对于一词多义的情况,可将多个意思的embedding求平均,例如:
李宏毅DLHLP.22.Multilingual BERT_第6张图片
然后计算中文character和英文的token做成一个矩阵,看其表征的cosine相似度:
李宏毅DLHLP.22.Multilingual BERT_第7张图片
这里先要建立一个双语字典:
李宏毅DLHLP.22.Multilingual BERT_第8张图片
最后的矩阵如下:
李宏毅DLHLP.22.Multilingual BERT_第9张图片
左边的Rank是英文embedding对应中文embedding相似度的排名,Score=1/Rank
最后把Score做平均,如果这个数值越高,代表两个语音对齐得越好。下图是各个模型做MRR的结果。
李宏毅DLHLP.22.Multilingual BERT_第10张图片
这里要补充一下,MRR和训练数据量是正相关的。但是普通的Word2vec and GloVe cannot align well even with more data.

How alignment happens

• Typical answer:Different languages share some common tokens.
但是无法解释中英文这种差异非常大的语系。
因此有两种可能:
1.Code Switching:是不同语言之间有一些相同的token,相同的token搭建了一个桥梁,让Multilingual BERT可以在不同语言间对齐。例如中英混杂的语句:
在这里插入图片描述
还有阿拉伯数字,专有名词之类的。
2.Intermediate Language:有一种我们不知道的语言X,这个语音X与中文和英文的token有共享关系,只要中文和X对齐,英文也和X对齐,中文和英文就对齐了。
这两个可能有人做了实验,都不正确,实验是用如下语料:
李宏毅DLHLP.22.Multilingual BERT_第11张图片
可以看到Fake-English与英文没有相同的token,两个也不会有什么X相关,训练结果差不多:
李宏毅DLHLP.22.Multilingual BERT_第12张图片
那么模型是如何针对不同的语言进行Reconstruction任务?它怎么知道当前输入的是哪种语言?
李宏毅DLHLP.22.Multilingual BERT_第13张图片
说明Multilingual BERT肯定是将语言的信息隐藏在了embedding之中。下面这个实验是将多个语言通过Multilingual BERT后得到的embedding按照语言进行分类平均,然后投影在二维平面上。可以看到每个语言之间还有有明显的不同。
李宏毅DLHLP.22.Multilingual BERT_第14张图片
根据这个实验,有三个同学(劉記良、許宗嫄、莊永松)设计了一个很有意思的实验:
李宏毅DLHLP.22.Multilingual BERT_第15张图片
既然每个中英文对应的单词都有一定的差异(如上图),那么中文和英文的embedding分别求平均后,可以得到二者平均值的差,这个差是一个向量,用蓝色方块表示:
李宏毅DLHLP.22.Multilingual BERT_第16张图片
然后用一句英文,丢到Multilingual BERT得到对应的英文embedding,然后再加上蓝色中英文的差,然后再做reconstruction,看是否能得到对应的中文。
李宏毅DLHLP.22.Multilingual BERT_第17张图片
这个做法和之前在图像上做映射后生成特定的图像很像:
李宏毅DLHLP.22.Multilingual BERT_第18张图片
这个方法的最后将蓝色向量加到翻译上,带上一个权重
李宏毅DLHLP.22.Multilingual BERT_第19张图片
结果如下表:随着权重增加,中文比例越大,虽然意思有偏差。
李宏毅DLHLP.22.Multilingual BERT_第20张图片
然后这个结论可以用于优化NLI,如下图所示,先在英文做训练,在对中文测试的时候在某些隐藏层加上蓝色向量,效果更好:
李宏毅DLHLP.22.Multilingual BERT_第21张图片
李宏毅DLHLP.22.Multilingual BERT_第22张图片

你可能感兴趣的:(李宏毅.DLHLP2020)