> For the complete documentation index, see [llms.txt](https://doraemonzzz.gitbook.io/transformer_evolution_paper/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doraemonzzz.gitbook.io/transformer_evolution_paper/memory/006.md).

# GMAT Global Memory Augmentation for Transformers

论文地址：

* <https://arxiv.org/abs/2006.03274>

## 整体思路以及计算方式

整体思路是attention模块增加memory模块，为了验证memory模块有效性，作者使用chunk的方式计算attention（因为无法捕捉全局信息）。

整体计算方式如下：

* 输入：$$\mathbf X\in \mathbb R^{n\times d}$$
* memory：$$\mathbf X\_M\in \mathbb R^{m\times d}$$
* 记：

  $$
  \mathbf Y=\left\[\begin{array}{l} \mathbf X \ \mathbf X\_{M} \end{array}\right] \in \mathbb R^{(n+m)\times d}
  $$
* for $$i=1,\ldots, n\_1$$:
  * $$\mathbf X\_M=\mathrm{MHA}(\mathbf X\_M, \mathbf Y)\in \mathbb R^{m\times d}$$
* for $$i=1,\ldots,n\_2$$:
  * $$\mathbf X\_M=\mathrm{MHA}(\mathbf X\_M, \mathbf X\_M)\in \mathbb R^{m\times d}$$
* for $$i=1,\ldots,n\_3$$:
  * $$\mathbf X=\mathrm{MHA}(\mathbf X, \mathbf Y)\in \mathbb R^{n\times d}$$

每个阶段的作用分别为：

* 第一阶段：压缩信息至memory；
* 第二阶段：编码memory信息；
* 第三阶段：解压缩信息；

## 时间复杂度

$$O(m(m+n )d)$$，其中$$m$$是memory长度。

## 训练以及loss

不变。

## 代码

* <https://github.com/ag1988/gmat>

## 实验以及适用场景

适用于所有场景，可以带来一定提升。

## 细节

暂无。

## 简评

主要是验证这样训练设置下，memory的有效性，不过改方法应该会增加不少时间复杂度，所以是否值得有待商榷。
