Last updated 2 years ago
论文地址:
参考资料:
对任务背景没有特别的了解,感觉是一种抽特征的方式,直接讨论计算方式,忽略Normlize相关部分:
X∈RN×d1\mathbf X\in \mathbb R^{N\times d_1}X∈RN×d1
S∼N(μ,diag(σ))∈RK×d2\mathbf {S} \sim \mathcal{N}(\mu, \operatorname{diag}(\sigma)) \in \mathbb{R}^{K \times d_2}S∼N(μ,diag(σ))∈RK×d2(代表Slots\mathbf {Slots}Slots)
for t=0,…,T−1t=0,\ldots ,T-1t=0,…,T−1:
Sprev=S∈RK×d2\mathbf {S}_{\mathrm{prev}}=\mathbf{S}\in \mathbb R^{K\times d_2}Sprev=S∈RK×d2
Q=SWq∈RK×d,K=XWk∈RN×d,V=XWv∈RN×d\mathbf Q= \mathbf{S}\mathbf W_q \in \mathbb R^{K\times d},\mathbf K=\mathbf X\mathbf W_k\in \mathbb R^{N\times d},\mathbf V=\mathbf X\mathbf W_v \in \mathbb R^{N\times d}Q=SWq∈RK×d,K=XWk∈RN×d,V=XWv∈RN×d
A=Softmax(QK⊤,dim=0)∈RK×N\mathrm{A}=\mathrm{Softmax}(\mathbf Q\mathbf K^{\top} , \mathrm{dim}=0)\in \mathbb R^{K\times N}A=Softmax(QK⊤,dim=0)∈RK×N
U=AV∈RK×d\mathbf{U}=\mathbf A\mathbf V\in \mathbb R^{K\times d}U=AV∈RK×d
S=GRU(Sprev,U)∈RK×d2\mathbf{S}= \mathrm{GRU}(\mathbf {S}_{\mathrm{prev}}, \mathbf U) \in \mathbb R^{K\times d_2}S=GRU(Sprev,U)∈RK×d2
MHA\mathrm{MHA}MHA的时间复杂度为O(KNd)O(KNd)O(KNd),总时间复杂度为O(TKNd)O(TKNd)O(TKNd)。
没有变化。
作者进行的实验比较简单,这里不进行讨论。
略过。
个人理解是一种抽特征的方式,不知道能否适用于NLP任务。