Lead Reconfigurable Memory Computing to the Feature

NLP里比BERT更优秀的XLNet长什么样?_2019-06-21

TensorChip Homepage - TensorChip    原创技术文章    NLP里比BERT更优秀的XLNet长什么样?_2019-06-21

NLP里比BERT更优秀的XLNet长什么样?

 

William Chen

2019-06-21

 

自从BERT模型夺得NLP武林大赛桂冠后,就不断有年轻后辈前来挑战切磋

近踢馆成功出名的是CMUZhilin Yang等提出的XLNet其论文在今年619上传于arxiv.org。(没错,就是前几天你正等着618快递的时候

这个新的NLP武林盟主号称在20项购物(任务)比拼中撸BERT模型的羊毛。

 

img1

 

废话不多说,让我们看看这XLNet到底厉害在哪里,招式如何?

 

XLNet优势

放上原文源码地址为敬:

论文地址:https://arxiv.org/pdf/1906.08237.pdf

预训练模型及代码地址:https://github.com/zihangdai/xlne

 

我们再看看XLNet小伙子的优势

 

1)独得ARAE两大绝学

一直以来,ARautoregressive自回归)与AEautoencoding自编码)就是无监督表征学习中的两大绝学

AR语言模型基于大量语料统计,被训练为编码单向上下文AE则通过被掩盖的输入重建原始数据(例如BERT),弥补了双向信息的损失,但却由于信息的掩盖导致训练与实际推理的偏差。

 

XLNet的出现一开始就对准了这两个绝学的命门。

首先XLNet借鉴NADE中的置换(Permutation考虑句段各种分解顺序的可能性。这样就把上下文信息都加进的AR的计算之中。

其次XLNet训练再依赖于数据遮盖(Mask这样就BERT训练时遮遮掩掩实际推理的偏差规避了。

 

2集成了Tansformer-XL

借助Tansformer-XL戏称超大号变形金刚)的循环机制和相对位置编码。(后面会详细介绍从而改善了长文本序列的客户体验准确度

 

XLNet的结构特点

 

1)       置换语言模型(Permutation Language ModelingPLM

 

Permutation(置换)是个很有意思的数学思想

其最早实践大概来自于Fisher提出的置换检验Permutation Test。就是利用样本的随机排列进行统计分析和推断。置换这个概念非常适合总体分布未知的样本数据。

 

XLNet借用最近提出的了Orderless NADE想法来实现置换。把序列中所有的元素都放到计算袋子里求最大期望:

img2

这一模型收集了元素两端所有位置的信息来进行训练从而具备了捕获双向上下文的能力。

 

img3

上图就是不同排列x3的预测
例如,以句子序列img4为例,假设img5预测目标XLNetBERT期望计算可以近似理解为

img6

 

2)       双流自注意Two-Stream Self-Attention机制

所谓的双流,就是内容(Contenet与查询Query。通过这两组Attention,来进行PLM的训练。

img7

ContentQuery流的定义如下:

img8

QKV分别表示Attention中的QueryKeyValue

Content流提供了完整的上下文信息用于AR的完整期望训练Query提供了类似掩盖的方式来增强预测。

 

3)引入Transformer-XL

Transformer-XL 是在Vanilla Transformer的基础上诞生的长程依赖现象在序列数据很常见。例如常见订票问答中的一个回答,可能要参照若干条对话之前订票人员信息。Vanilla Transformer使用固定长度上下文数据单元之间建立直接的长程依赖关系。这也使得句子边界附近的上下文碎片化。

 

https://img-blog.csdnimg.cn/20190202141712600.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhbmR5MTM0ODM0,size_16,color_FFFFFF,t_70

具有固定长度上下文的 Vanilla Transformer

 

https://img-blog.csdnimg.cn/20190202142731837.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhbmR5MTM0ODM0,size_16,color_FFFFFF,t_70具有句段循环的 Transformer-XL

 

Transformer-XL了两个关键工作

1)       循环机制(Recurrence Mechanism

2)       相对位置编码(Relative Positional Encoding

先说循环机制。在训练期间,为前一个句段计算的表征会被修正并缓存,当处理下一句段时,前一个句段即作为扩展上下文使用。

Transformer-XL中,相对位置信息由一组位置编码提供,即相对位置编码。

基于上述两点,Transformer-XL 学习的依赖关系大约比传统RNN  80%,比 Vanilla Transformer  450%当然Transformer-XL由于参数量巨大训练和推理所需的算力也是很大的(烧钱

 

很有意思的是,Transformer-XL论文投稿到 ICLR 2019 被毫不留情的拒绝了的。估计也是评委心里暗想土豪TPU的所有者,Google卡丽熙,算力吞噬者。。。。。。就不要用钱砸场子了。

 

XLNetBERT模型带来的NLP算力竞赛

XLNet确实对得起它的名字,XL号的训练时使用了512 TPU v3芯片。要知道这可是极度碾压阿尔法狗的算力相当于XL学问答要用几百个李世石的围棋脑力

 

我们自然界的角度来看,似乎可以看到一些端倪:

大部分昆虫凭借很小的脑容量就可以拥有视觉能力,却难以通过语音交互

大部分小型哺乳动物拥有中等的脑容量可以通过语音交互(类似ASR之类的命令词却难以进行复杂的表达和对话(类似NLP多轮对话)

目前看,几乎只有人类,拥有较大的脑容量和几乎最大的脑重比,才可以进行复杂的自然语言处理和理解。

 

BERTXLnet和自然界,似乎在暗示我们:算力应该NLP基础

 

NLP人工智能皇冠上那颗最珍贵的钻石,大概也需要极大的算力高温下才能完美的诞生(土豪专有

 

E:\_system\_cloud1\Cdep_surveyreport\P2019e_xlnetreport\timg.jpg

2019-11-22 19:50
Pageviews:0