译者 | Arno
来源 | Medium
XLNet是一种新的预训练模型,在20项任务中表现优于BERT,且有大幅度的提升。
这是什么原因呢?
在不了解机器学习的情况下,不难估计我们捕获的上下文越多,预测就越准确。
因此,模型能够深入而有效地捕获大多数上下文的能力是其提升的原因。
让我们玩一个游戏,在下面的上下文中,[Guess1]和[Guess2]分别是什么呢?
[‘Natural’, ‘language’, ‘processing’, ‘is’, ‘a’, ‘marriage’, ‘of’, [Guess1], [Guess2], ‘and’, ‘linguistics’]
考虑到3分钟的限制,我就直接揭示答案了。
答案: [‘Natural’, ‘language’, ‘processing’, ‘is’, ‘a’, ‘marriage’, ‘of’, ‘machine’,‘learning’, ‘and’, ‘linguistics’]
我们使用符号Pr(Guess | Context) 代表一个基于上下文词的猜测概率。
GPT中,我们从左到右阅读,因此我们不知道 ‘machine’, ‘learning’各自后面的下文:
Pr (‘machine’ | [‘Natural’, ‘language’, ‘processing’, ‘is’, ‘a’, ‘marriage’, ‘of’])
Pr (‘learning’ | [‘Natural’, ‘language’, ‘processing’, ‘is’, ‘a’, ‘marriage’, ‘of’, ‘machine’])
知道‘machine’实际上可以帮助你猜‘learning’,因为‘learning’经常跟随‘machine’,而‘machine learning’是现在很火热的术语。
BERT中,与GPT对比,我们能知道预测单词前向和后向上下文,但我们在猜测 ‘machine’和 ‘learning’时都是基于相同的上下文:
Pr (‘machine’ | [‘Natural’, ‘language’, ‘processing’, ‘is’, ‘a’, ‘marriage’, ‘of’, ‘and’, ‘linguistics’])
Pr (‘learning’ | [‘Natural’, ‘language’, ‘processing’, ‘is’, ‘a’, ‘marriage’, ‘of’, ‘and’, ‘linguistics’])
拥有‘linguistics’实际上可以帮助你猜测‘machine’ ‘learning’ ,因为你知道自然语言处理是机器学习和语言学的完美结合。即使你不知道,有了‘linguistics’的存在,你至少知道预测单词不是 ‘linguistics’。
你可以看到BERT的明显缺点是,它无法知道 ‘machine’ 和 ‘learning’之间的联系。
那么我们如何结合GPT和BERT的优点呢?
XLNet
排列!排列的作用是即使我们只从左到右阅读,排列也允许我们捕捉前向和后向上下文(从左到右阅读,从右到左阅读)。
其中一种排列可以让我们捕捉到前向和后向上下文:
[‘Natural’, ‘language’, ‘processing’, ‘is’, ‘a’, ‘marriage’, ‘of’, ‘and’, ‘linguistics’, ‘machine’, ‘learning’]
Pr (‘machine’ | [‘Natural’, ‘language’, ‘processing’, ‘is’, ‘a’, ‘marriage’, ‘of’, ‘and’, ‘linguistics’])
Pr(‘learning’ | [‘Natural’, ‘language’, ‘processing’, ‘is’, ‘a’, ‘marriage’, ‘of’, ‘and’, ‘linguistics’, ‘machine’])
这一次,你拥有完整的上下文,在猜测 ‘machine’之后,你可以立即猜测‘learning’。
你可以清楚地看到XLNet结合了GPT和BERT的优点。
当然,如果你想了解更多细节,请阅读XLNet论文[1]。
[1]: https://arxiv.org/pdf/1906.08237.pdf
欢迎关注磐创博客资源汇总站:
http://docs.panchuang.net/
欢迎关注PyTorch官方中文教程站:
http://pytorch.panchuang.net/