论文地址:
https://arxiv.org/abs/2006.03274arrow-up-right
整体思路是attention模块增加memory模块,为了验证memory模块有效性,作者使用chunk的方式计算attention(因为无法捕捉全局信息)。
整体计算方式如下:
输入:X∈Rn×d\mathbf X\in \mathbb R^{n\times d}X∈Rn×d
memory:XM∈Rm×d\mathbf X_M\in \mathbb R^{m\times d}XM∈Rm×d
记:
for i=1,…,n1i=1,\ldots, n_1i=1,…,n1:
XM=MHA(XM,Y)∈Rm×d\mathbf X_M=\mathrm{MHA}(\mathbf X_M, \mathbf Y)\in \mathbb R^{m\times d}XM=MHA(XM,Y)∈Rm×d
for i=1,…,n2i=1,\ldots,n_2i=1,…,n2:
XM=MHA(XM,XM)∈Rm×d\mathbf X_M=\mathrm{MHA}(\mathbf X_M, \mathbf X_M)\in \mathbb R^{m\times d}XM=MHA(XM,XM)∈Rm×d
for i=1,…,n3i=1,\ldots,n_3i=1,…,n3:
X=MHA(X,Y)∈Rn×d\mathbf X=\mathrm{MHA}(\mathbf X, \mathbf Y)\in \mathbb R^{n\times d}X=MHA(X,Y)∈Rn×d
每个阶段的作用分别为:
第一阶段:压缩信息至memory;
第二阶段:编码memory信息;
第三阶段:解压缩信息;
O(m(m+n)d)O(m(m+n )d)O(m(m+n)d),其中mmm是memory长度。
不变。
https://github.com/ag1988/gmatarrow-up-right
适用于所有场景,可以带来一定提升。
暂无。
主要是验证这样训练设置下,memory的有效性,不过改方法应该会增加不少时间复杂度,所以是否值得有待商榷。
Last updated 3 years ago