李宏毅DLHLP.22.Multilingual BERT

介绍

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

Zero-shot Reading Comprehension

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

Cross-lingual Alignment

下面来看看为什么Multilingual BERT为什么可以做跨语言任务:Cross-lingual Alignment(跨语言对齐)
在这里插入图片描述
就是Multilingual BERT在看不同语言的词语的时候,会把相同意思的词语embedding到一起,对此,老师做了一个实验:Mean Reciprocal Rank
在这个实验中,对于一词多义的情况,可将多个意思的embedding求平均,例如:
在这里插入图片描述
然后计算中文character和英文的token做成一个矩阵,看其表征的cosine相似度:
在这里插入图片描述
这里先要建立一个双语字典:
在这里插入图片描述
最后的矩阵如下:
在这里插入图片描述
左边的Rank是英文embedding对应中文embedding相似度的排名,Score=1/Rank
最后把Score做平均,如果这个数值越高,代表两个语音对齐得越好。下图是各个模型做MRR的结果。
在这里插入图片描述
这里要补充一下,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对齐,中文和英文就对齐了。
这两个可能有人做了实验,都不正确,实验是用如下语料:
在这里插入图片描述
可以看到Fake-English与英文没有相同的token,两个也不会有什么X相关,训练结果差不多:
在这里插入图片描述
那么模型是如何针对不同的语言进行Reconstruction任务?它怎么知道当前输入的是哪种语言?
在这里插入图片描述
说明Multilingual BERT肯定是将语言的信息隐藏在了embedding之中。下面这个实验是将多个语言通过Multilingual BERT后得到的embedding按照语言进行分类平均,然后投影在二维平面上。可以看到每个语言之间还有有明显的不同。
在这里插入图片描述
根据这个实验,有三个同学(劉記良、許宗嫄、莊永松)设计了一个很有意思的实验:
在这里插入图片描述
既然每个中英文对应的单词都有一定的差异(如上图),那么中文和英文的embedding分别求平均后,可以得到二者平均值的差,这个差是一个向量,用蓝色方块表示:
在这里插入图片描述
然后用一句英文,丢到Multilingual BERT得到对应的英文embedding,然后再加上蓝色中英文的差,然后再做reconstruction,看是否能得到对应的中文。
在这里插入图片描述
这个做法和之前在图像上做映射后生成特定的图像很像:
在这里插入图片描述
这个方法的最后将蓝色向量加到翻译上,带上一个权重
在这里插入图片描述
结果如下表:随着权重增加,中文比例越大,虽然意思有偏差。
在这里插入图片描述
然后这个结论可以用于优化NLI,如下图所示,先在英文做训练,在对中文测试的时候在某些隐藏层加上蓝色向量,效果更好:
在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oldmao_2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值