Linear Attention Recurrent Neural Network(LARNN)由Guillaume Chevalier结合前人的经验于2018年八月发表的论文《LARNN: Linear Attention Recurrent Neural Network》中提出。
LARNN的核心机制是将Self-Attention Mechanisms(SAM)应用到Recurrent Neural Network(循环神经网络,RNN)中。
首先,作者在文中通过分析算法模型的时间复杂度和计算难度,肯定了RNN的地位(不可抛弃)。后,结合Yoshua Bengio的工作成果,论证LARNN的存在价值和优势。最后,介绍LARNN算法原理,并通过一个案例进行实验。
为简单明了,引用Chevalier文中算法结构图,通过一个SAM与LSTM结合的LARNN进行说明和细解LARNN的算法原理。算法图示如下:
![Linear Attention Recurrent Neural Network——LARNN Linear Attention Recurrent Neural Network——LARNN](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzc2My9lMzJkZjAzNWEwYjFkYmNlYWNmNjA5NzljNDZmYzk5Yi5wbmc=)
该图简单明了,左侧是一个窗口大小为4的LSTM,右侧是一个LSTM。其中pos encoding的方式采用《Attention Is All You Need》文中提出的一种sin和cos的几何序列,计算公式和表示方法如下:
PE(pos,2i)=sin(pos/100002i/dmodel))
PE(pos,2i+1)=cos(pos/100002i/dmodel))
其中dmodel的隐藏单元数量与LARNN的特征数量相同,类似于LSTM的特征数量。
现在采用Batch Normaliztion的LSTM公式(BN-LSTM)以及Exponential Linear Unit(ELU)将算法进行公式化,为避免公式过多,我在图中标出每一步的输出符号。
图中左侧部分进行优化和表示:
vt=[[ct−1,ct−2,ct−3,...,ct−k]]
key=value=postionalEncoding(vt)
query=Wxh([xt,ht−1])
BNELUj(arg)=BatchNormj(elu(arg))=BN(elu(arg))
at=MultiHeadSoftmax(sqrt(dk))query∗BNELU1(key)))∗BNELU2(values)
ft=σ(BN(Whfht−1+Wxfxt+bf))
it=σ(BN(Whiht−1+Wxixt+bi))
ot=σ(BN(Whoht−1+Wxoxt+bo))
gt residual mode=tanh(BN(Whcht−1+Wxcxt+bc))
gt layer mode=Wa([xt,ht−1,at])+ba
Ct=BN(f∗Ct−1+i∗xt∗gt))
ht=BN(ot∗elu(Ct)))
其中gt residual mode和gt layer mode二选一。
至此整个算法的计算原理和公式书写完毕,共勉共进。
参考文档
- 《LARNN: Linear Attention Recurrent Neural
Network》
- 《Long Short-Term Memory》
- 《Attention Is All You Need》