
摘要
尽管Transformer架构属于前馈网络,却已在序列化、自回归任务中取得了成功。与循环神经网络不同,Transformer通过注意力机制在并行处理输入标记的同时捕捉时间依赖关系。尽管这种并行化设计提升了计算效率,却限制了模型对输入序列固有顺序特性的充分挖掘:当前层的表示只能访问较低层的表示,而无法利用已生成的高层抽象表示。针对这一局限,本文提出了一种名为反馈Transformer(Feedback Transformer)的新型架构,该架构将所有先前时刻的表示显式地传递给所有后续时刻的表示,使得当前时间步的最低层表示能够基于过去时刻的高层抽象表示进行构建。我们在语言建模、机器翻译和强化学习等多个基准任务上进行了实验验证,结果表明,这种增强的表示能力能够使结构更小、层数更浅的模型在性能上显著超越传统Transformer。
代码仓库
lucidrains/feedback-transformer-pytorch
pytorch
GitHub 中提及
facebookresearch/transformer-sequential
官方
pytorch
GitHub 中提及
rajaswa/feedback-and-memory-in-transformers
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| language-modelling-on-enwiki8 | Feedback Transformer | Bit per Character (BPC): 0.96 Number of params: 77M |
| language-modelling-on-penn-treebank-character | Feedback Transformer | Bit per Character (BPC): 1.160 Number of params: 10.7M |
| language-modelling-on-wikitext-103 | Feedback Transformer (8 layers) | Number of params: 139M Test perplexity: 18.2 Validation perplexity: 17.5 |
| language-modelling-on-wikitext-103 | Feedback Transformer (4 layers) | Number of params: 44M Test perplexity: 22.4 Validation perplexity: 21.4 |