LaMemo Language Modeling with Look-Ahead Memory
论文地址:
整体思路以及计算方式
之前Transformer中使用memory的方式都是当前token和memory中token交互,但是memory中token无法和当前token交互,本文就是对这点进行改进。
符号:
当前token:Xτ=[xτ+1,⋯,xτ+N]∈RN×d
memory:Xτ−1=[xτ−M+1,⋯,xτ]∈RM×d
X~τ−1=[xτ−N+2,⋯,xτ+1]∈RN×d
计算:
Qτ=XτWq,Kτ=XτWk,Vτ=XτWv
K~τ−1=X~τ−1Wk,V~τ−1=X~τ−1Wv
Cτ←=Softmaxlower-triangle(dQτK~τ⊤)V~τ
Cτ→=Softmaxupper-triangle(dQτK~τ⊤)V~τ
Cτ−1↔=ατsg(Cτ→)+(1−ατ)Cτ←
ατ=sg(sτ→)+sτ←+εsg(sτ→);
其中sτ→表示Cτ→中Softmax矩阵归一化之前的元素和;
时间复杂度
时间复杂度为O(N(N+M)d)。
训练以及loss
不变。
代码
实验以及适用场景
适用于encoder和decoder;论文只测试了lm(decoder)场景,获得了一定的提升。
细节
暂无。
简评
提供了一种新的memory交互方式。