MEMORIZING TRANSFORMERS
返回论文和资料目录
论文地址
1.导读
谷歌去年做的一个工作。内容很简单,在Transformer模块中加入了一层记忆层,结果表明这个方法可以帮助模型提高在NLP任务上的表现:generic webtext (C4), math papers (arXiv), books (PG-19),code (Github)。
2.摘要和引言
Transformer缺乏长期记忆的能力。以往的方式是通过训练,利用模型的参数来存储长期记忆,但这种方式需要大量的训练。
因此,作者提出将上一次模型中的一部分键和值(这里要看懂,需要了解Transformer结构中的Q,K,V)进行存储,再后面使用时,再利用一个被广泛应用的信息检索的方式–近似K近邻查找KNN来检索这个信息。最后,利用这个检索得到的信息和现有的信息得到结果。
相比以往的,作者认为有两个不同。
- KNN直接找原本文,而不是对原文本进行归纳总结。
- 反向传播的梯度不会更新外部内存。
3.方法
直接用下图理解。
与之前的Transformer不同的地方是1.左边加入了一个外部内存用于存放长期技艺,2.KNN检索 ,3.KNN attention层
作者提出首先将前M个input输入到KNN&local attention+FFN时的在FFN的建K和值V存放在外部内存(左边橙色)。
下一次输入时,会利用KNN检索当前的Q与之前的。。。对不起我看不懂作者想说啥。
未完待续