WHY does BERT work?
BERT会考虑上下文! 进行Word Embedding!将一个单词表示成向量,比如苹果单词中的“果”和苹果公司中的“果”,在经过Embedding后虽然同样是同一个词,但是由于上下文不同,所以vector距离是远的! 不一样的表示! 但是相同语境的“果”则距离比较近!
接下来我们计算两个果的相似度!
为什么你能知道一个单词的意思呢? 这个人说了: 你要知道一个单词的意思,就得根据它的上下文决定的! 所以即使你将该单词盖住,这个单词还是会被预测出。 在BERT之间其实已经有该技术了,就是word Embedding!word Embedding是一个简单的模型,就是两个Transformer! 有人就问,为什么只是Transformer,不能是其它的更加复杂的结构,为什么只是linear,不能是deep learning? 因为只是因为算力的问题!
Multi-lingual BERT
这有啥特别之处呢? 就是你会将加入不同语言的输入
我们通过使用不同的语言的单词训练模型,在该模型English的QA上进行Fine-tune训练模型时,居然可以回答中文问题
可以看到即便是在English上fine-tune的Bert模型,最终回答中文问题准确率也可以达到78%
为什么会这样呢? 因为在预训练的时候,不同语言但是相同的词汇在经过Bert后距离很近!
我们通过实验来验证两种语言的word embedding的距离! 其中MRR就是这个指标,它的值越大,表明两个语言越接近!
起初我们使用的是200k句子来做实验,但是各种调参都没发现模型更好的效果;
但是后面想是不是句子的规模不够? 索性增加到1000k,发现模型的效果很好!
但是还是感觉怪怪的! 因为你在做语言填空的时候,你将汉语输入Bert里,它给你补全了汉语; 你用英语输入Bert里,它给你不劝了英语,它不会给你互相补充。 这说明句子与句子之间还是有差距的!
我们通过计算两种语言之间的总体的差距,并表示成向量! 之后再在Bert后加向量,就是最后的结果!