Transformer and its New Architecture
本次课是助教纪伯翰教授的,视频地址
1. Review
-
Fully Connected Network——全连接网络有大量模型
-
Convolutional Neural Network——可以抓住局部的信息
- Convolutional Neural Network
- ResNet
- DenseNet
- Inception Network
-
Recurrent Neural Network
- Recurrent Neural Network
- Seq2seq
- LSTM
- Pointer Network
Stack them and hope the new model will be better !(堆叠他们,希望新的模式会更好!)
然后使用Learing Rate、DropOut等参数进行调参
但是很难训练的起来:
是不是我们叠的不够深?
End
一般通过以下方式获得新结构:
- Follow up SOTA structure (跟进SOTA(state-of-the-art)结构)
- Stable and explore faster (稳定探索更快)
为什么需要新结构?
- Increase Performance !(提高性能!)
- Extract better feature from data(从数据中提取更好的特征)
- Generalization(泛化)
- Reduce Parameters or explainable(减少参数或解释)
当今的新结构
- The variant structure design from the old module in 2019 (2019年旧模块的变型结构设计)
- The cool application of architecture in 2019 (2019年优异结构的应用)
- The SOTA models in the trend for 2019 (2019年的趋势中的SOTA模型)
今天会讲到的RNN less structure:
- Transformer
- Sandwich Transformers
- Universal Transformer
- Residual Shuffle Exchange Network
- BERT
- AlBERT
- Reformer
2. Transformer - Encoding & Decoding
细看一下模型的架构:
Transformer的大致工作过程如下所示:
2.1 Sandwich Transformers
目的:设计一个更好的Transformer
- Reorder the sublayer ?(重新安排子层?)
- Could we increase the performance just by reorder the sublayer module ?(我们可以通过重新排序子层模块来提高性能吗?)
Highlight(重点)
-
models with more self-attention toward the bottom and more feedforward sublayers toward the top tend to perform better in general.
自身注意力更多的模型朝向底部,更多的前馈子层朝向顶部,一般来说,这些模型的表现往往更好 -
No extra parameters, memory requirement.
没有额外的参数,内存要求
Same parameters but different order(相同参数但顺序不同)
原论文在语言模型中表现其实没有很好,但有一些表现好一些,即很不稳定
Are Balanced Architectures Better?(平衡的结构更好吗?)
Sandwich Coefficient(夹层系数)
实验:
2.2 Universal Transformer
动机(希望演算法任务做得很好):
-
其每一个Encoder都是同一个参数
本来Transformer每一层都是不一样的,现在在纵轴上,深度上换成RNN,每一层都是一样的Transformer -
在深度的方向是自己决定的(Dynamic Halting)
实验
-
Lambda Question Answering Dataset
结果:
-
WMT 14 En-De translation task 机器翻译
足够GPU的情况下可以表现的很好
3. Residual Shuffle Exchange Network
HighLight(重点):
- Less parameters compare to other models for the same tasks(与其他模型相比,相同任务的参数较少)
- Sequence processing in O(n log n) Time, specialize application on long sequence(时间复杂度为O(nlogn)时间序列处理,专门应用于长序列)
- Shuffle & Exchange operators capture distant informations replace attention(洗牌和交换操作获取远距离信息取代了attention)
Shuffle Exchange Network和洗牌有什么关系呢?
Switch Unit
其中的swapHalf:
以上是前作,后作如下:
共同点:经过element时会交换不同的信息
Residual Shuffle Exchange Network
实验
- Lambda Question Answering Dataset √
2. MusicNet Dataset
3. Multiplication Task
4. Sort Task
5. Adding Task
评价:同样是11g GPU内存,序列长是 Neural Shuffle-Exchange Network 的4倍,是Universal Transformer的128倍
4. BERT
18年10月google里面提出的模型,NLP模型架构表现的很优秀,是一个芝麻街的人物
Bert:Pre-training Task
- Mask Language Model:
Input: [CLS]刘硕他要签[MASK] → [CLS]刘硕他要签博 - Next Sentence Prediction:
Input: [CLS]我要当老师[SEP]人民的法槌 ×
Input: [CLS]这只手是人民的意志[SEP]人民的法槌 √
4.1 ALBERT
12层共享参数
共享参数实验:
ALBERT
- Sentence Order Prediction
Input: [CLS]人民的法槌[SEP]这只手是人民的意志 ×
Input: [CLS]这只手是人民的意志[SEP]人民的法槌 √
4.2 Reformer
例如:N = 8k?参数矩阵将会很大
Hash Function
Reformer: Find a small set of candidates by hash function(通过哈希函数找到一小部分候选部分)
Reformer的第二个特点,Reversible Layer:
运算不需要存12层的计算图,只需要存最后一层的计算图
把复杂度从n2变成了nlog(n)
最后课程展示了一下2019年的Style GAN
小结
大致了解了一下RNN其它新结构:
- Sandwich Transformers就是有多个transformer层的时候,把self-attention的层放前面可以表现的更好
- Universal Transformer两个特点:一是深度方向采用RNN结构,二是可以动态控制深度
- Residual Shuffle Exchange Network采用洗牌和交换的操作符,其最大的优点就是参数少
- ALBERT与BERT相比,不同之处一是十二层参数共享参数,二是词嵌入输入的地方减少了参数,三是预训练的时候考虑了句子顺序的预测
- Reformer与BERT相比,不同之处一是self-attention通过哈希函数找到一小部分,这样可以降低复杂度,二是采用Reversible Layer不需要存12层的计算图
大致了解了一下吧,听听故事