之前有被人问到过为什么transformer要采取这样的架构。当然transformer的细节很多,self attention, fully connected layer, residual connection, layer normalization, etc, etc。如果真的要问为什么必须要做这样的设计,说实话我也不知道,我一般会倾向于认为这样的设计有很大的偶然性和随机性在里面。作者就是发现了这个模型能够在翻译任务上取得比之前的LSTM+Attention架构更好的效果,然后这个架构就被广泛采用了。
最近看到一篇文章 Improving Transformer Models by Reordering their Sublayers。作者提出了一个非常有趣的问题,"Could ordering the sublayers in a different pattern lead to better performance?" 也就是说,我们如果把transformer架构中的层与层之间关系随机打乱,会不会让模型取得更好的效果?然后他们确实发现了有一些打乱方法可以让transformer在语言模型的评估上表现更好(perplexity更低)。然后这些架构大多属于 sandwich transformer, 也就是说下面聚集着self attention layers,上面聚集着feed forward layers。