论文地址:
https://arxiv.org/abs/2007.03356arrow-up-right
之前Transformer中引入Memory的方法在每层中的Memory长度都一样,本文的方式是将Memory分为Long和Short,减少了一定的内存和计算开销,同时保证效果不会差太多。
备注,引入Memory的方式:
Memory为向量M∈Rm×d\mathbf M\in \mathbb R^{m\times d}M∈Rm×d;
输入为X∈Rn×d\mathbf X\in \mathbb R^{n\times d}X∈Rn×d;
拼接为Z=[X;M]∈R(n+m)×d\mathbf Z=[\mathbf X;\mathbf M] \in \mathbb R^{(n+m)\times d}Z=[X;M]∈R(n+m)×d
返回MHA(X,Z)\mathrm{MHA}(\mathbf X,\mathbf Z)MHA(X,Z)
时间复杂度为O(n(n+m)d)O(n (n+m)d)O(n(n+m)d)。
不变。
暂无,但实现起来也很简单。
适用于Encoder,Decoder;论文里测试了lm,short/long memory结合的效果和全是long memory的效果相当。
short/long memory结合使用的方式有3种:
前几层使用short memory
最后几层使用short memory
short/long memory交替使用
总体感觉一般,因为还是拿参数量换性能的方式。
Last updated 3 years ago