这篇是DeepMind基于transformer-XL 方法进行改进,通过压缩memory 使得模型可以处理更长的序列 可长达一个本书。
同时他们 在一个目标匹配任务上发现 该算法可以有效地模拟高频语音,并可作为RL的记忆机制。
论文的另外一个贡献是提出一个基于Project Gutenberg 书的长序列的benchmark PG-19 这个序列是目前语言模型的长度的两倍,并且也包含更长的上下文信息。
前面提到来目前改进transformer的模型有 Transformer - XL , Sparse Transformer, 以及 span Transformer。
Compressive Transformer 的具体实现
本模型是 Transformer 的改进版本,借鉴Transformer-XL的思想,但是transformer-XL 会丢掉 记忆窗口以外的信息,而本文的 Compress transformer 不会丢掉,而是把他们压缩并且存储到一个额外的记忆模块。
压缩函数如下,其中d是隐藏层的维度,c是压缩比例,c越大 压缩越多。
具体步骤如下:
首先 有 2个memory: 一个是存放正常的前几个segment的hidden state 下图中计做 m, 一个是存放压缩的记忆模块 cm。
假设原始序列为S ( x 1 , x 2 , . . . x ∣ s ∣ x_1, x_2,...x_{|s|} x1,x2,...x∣s∣),我们将S 切割成长度为 n s n_s ns大小的片段,那么在t时刻的输入片段为 X = x t , x t + 1 . . . x t + n s X=x_t,x_{t+1}...x_{t+n_s} X=xt,xt+1...x