Paper Note Feedforward sequential memory networks (FSMN)

1. 目的

Feedforward sequential memory networks 来源于数字滤波器的设计灵感: FIR 滤波器随着阶数的增加可以无限的逼近 IIR 滤波器。设计FSMN 的目的就是用 Feed forward neural network 去近似 RNN,对时间序列建模。RNN结构如下图:

2. 实现

2.1 网络结构

FSMN 的实现非常简单,就是在隐藏层之间插入 memory block,用于记录隐藏层节点的历史状态,如下图:

假设输入序列为\(X={x_1, x_2, …, x_T}\),其中\(x_i \in R^{D\times 1}\),第\(l\)个隐藏层的输出为\(H^l={h_1^l, h_2^l, …, h_T^l}\),其中\(h_i^l \in R^{D_l \times 1}\),论文中提出了两种形式的 FSMN:

  • scalar FSMN(sFSMN):

其中\(a_i^l\)是标量。

  • vector FSMN(vFSMN):

其中\(a_i^l\)是向量, \(\odot\)表示向量的点乘。

上述的定义中,可以称之为单向 FSMN,因为它只考虑了历史的序列信息,对于双向 FSMN,它的定义如下:

此时下一个隐藏层的输出为:

2.2 训练

以 N 阶 scalar FSMN 为例,memory block 会有 \(N+1\)个参数:\({a_0, a_1, a_2, …, a_N}\)。给定一个长度为\(T\)的序列输入\(X\)时,我们可以构造一个\(T \times T\)的参数矩阵\(M\):

对于双向的 FSMN 有:

因此,memory block 的计算可以表示为:

其中\(H\)表示隐层的序列输出,\(\tilde{H}\)表示 memory block 的序列输出。因此,对于一个 mini-batch \(L={X_1, X_2, …, X_K}\),memory block 的输出为:

因此,前向推导的时候,通过矩阵运算,很容易就可以使用 GPU 加速。在进行后向传播时,我们需要更新\(\bar{M}\)矩阵,假设关于\(\tilde{H}\)的误差为\(e_{\tilde{H}}\),那么有

关于\(\bar{H}\)的误差为

对于 vFSMN 的训练,可参考论文[2]。

3. 结构演化

3.1 FSMN

见上文。

3.2 cFSMN(compact-FSMN)

其结构如下图: 与 FSMN 相比,cFSMN可以看作在隐藏层后面又加了一个线性层,并且为线性层增加 memory block,并只将 memory block的输出作为下一层的输入,因此它的推导过程会有轻微的变化:

其中,\(p_t^l = V^l h^l_t + b^l\). 下一个隐藏层的输出为:

显然,当 FSMN 的线性变化层和 memory block 的权值矩阵相等时,FSMN 等价于cFSMN.

优点:

  • 简化网络结构,减小参数空间大小
  • 加速训练过程,性能基本保持不变

3.3 DFSMN(Deep-FSMN)

其结构如下图: 借鉴了深度残差网络的思路,为了防止深度网络在训练过程中出现的梯度消失或弥散的现象,在 memory block 之间进行直接连接,因此网络的推导公式为:

其中,\(p_t^l = V^l h^l_t + b^l\). \(H(\cdot)\)表示 memory block 连接的变换,论文中使用了恒等变换,即

4. 总结

作者创造性的从滤波器理论中得到启发,用memory block 去逼近 RNN,在达到相似性能的同时,降低了网络的训练复杂度,在语音识别的任务上,取得了不错的性能。

Reference

[1] Zhang S, Jiang H, Wei S, et al. Feedforward sequential memory neural networks without recurrent feedback[J]. arXiv preprint arXiv:1510.02693, 2015.
[2] Zhang S, Liu C, Jiang H, et al. Feedforward sequential memory networks: A new structure to learn long-term dependency[J]. arXiv preprint arXiv:1512.08301, 2015.
[3] Zhang S, Jiang H, Xiong S, et al. Compact Feedforward Sequential Memory Networks for Large Vocabulary Continuous Speech Recognition[C]//INTERSPEECH. 2016: 3389-3393.
[4] Zhang S, Lei M, Yan Z, et al. Deep-FSMN for Large Vocabulary Continuous Speech Recognition[J]. arXiv preprint arXiv:1803.05030, 2018.