Transformer

  • 时间:
  • 浏览:
  • 来源:互联网

卷积神经网络的一个优点是它们比 RNN 更可并行化,因为其在每个时间步长的状态只依赖于本地上下文(通过卷积运算),而不是像 RNN 那样依赖过去所有的状态。使用膨胀卷积,可以扩大 CNN 的感受野,使网络有能力捕获更长的上下文(Kalchbrenner等,2016)。CNN 和 LSTM 可以组合和叠加(Wang等,2016),卷积也可以用来加速 LSTM


sequence-to-sequence模型的主要瓶颈是需要将源序列的全部内容压缩为一个固定大小的向量。注意力机制通过允许解码器回头查看源序列隐藏状态来缓解这一问题,然后将其加权平均作为额外输入提供给解码器

多层Transformer结构,其最大的特点是抛弃了传统的RNNCNN,通过Attention机制将任意位置的两个单词的距离转换成1,有效的解决了NLP中棘手的长期依赖问题。Transformer的结构在NLP领域中已经得到了广泛应用,并且作者已经发布在TensorFlow的tensor2tensor库中。

Transformer的网络架构如图1所示,Transformer是一个encoder-decoder的结构,由若干个编码器和解码器堆叠形成。图1的左侧部分为编码器,由Multi-Head Attention和一个全连接组成,用于将输入语料转化成特征向量。右侧部分是解码器,其输入为编码器的输出以及已经预测的结果,由Masked Multi-Head Attention, Multi-Head Attention以及一个全连接组成,用于输出最后结果的条件概率

1.2 输入表示

BERT的输入的编码向量(长度是512)是3个嵌入特征单位和,如图4,这三个词嵌入特征是:

  1. WordPiece 嵌入[6]:WordPiece是指将单词划分成一组有限的公共子词单元,能在单词的有效性和字符的灵活性之间取得一个折中的平衡。例如图4的示例中‘playing’被拆分成了‘play’和‘ing’;
  2. 位置嵌入(Position Embedding):位置嵌入是指将单词的位置信息编码成特征向量,位置嵌入是向模型中引入单词位置关系的至关重要的一环。位置嵌入的具体内容参考我之前的分析;
  3. 分割嵌入(Segment Embedding):用于区分两个句子,例如B是否是A的下文(对话场景,问答场景等)。对于句子对,第一个句子的特征值是0,第二个句子的特征值是1。

最后,说明一下图4中的两个特殊符号[CLS][SEP],其中[CLS]表示该特征用于分类模型,对非分类模型,该符合可以省去。[SEP]表示分句符号,用于断开输入语料中的两个句子。

1.3 预训练任务

BERT是一个多任务模型,它的任务是由两个自监督任务组成,即

MLM

NSP

2. 总结

  1. 使用Transformer的结构将已经走向瓶颈期的Word2Vec带向了一个新的方向,并再一次炒火了《Attention is All you Need》这篇论文;
  2. 11个NLP任务的精度大幅提升足以震惊整个深度学习领域;
  3. 无私的开源了多种语言的源码和模型,具有非常高的商业价值。
  4. 迁移学习又一次胜利,而且这次是在NLP领域的大胜,狂胜。

BERT算法还有很大的优化空间,例如我们在Transformer中讲的如何让模型有捕捉Token序列关系的能力,而不是简单依靠位置嵌入。BERT的训练在目前的计算资源下很难完成,论文中说  的训练需要在64块TPU芯片上训练4天完成,而一块TPU的速度约是目前主流GPU的7-8倍。非常幸运的是谷歌开源了各种语言的模型,免去了我们自己训练的工作。

 

本文链接http://metronic.net.cn/metronic/show-22210.html