新智元的这篇文章《比RNN快136倍!上交大提出SRNN,能做并行计算》已经对SRNN做了足够的介绍,简单说就是以下4步:
- 把整个序列分成n个子序列
- 并行的在每一个子序列上运行RNN(LSTM,GRU或者任何其他RNN单元都可以)
- 把每个子序列的输出作为新的序列,重复步骤1,2
- 上述过程可以重复k次,形成k层RNN序列,每层的RNN参数可以不同
因此,该结构可以实现高度的并行,整个序列中的顺序信息也不会丢失,论文中分类准确率优于现有的RNN结构。可能有不少人会感觉这真是一个可以从RNN自然而然得出的idea,但不得不说,在别人提出之前,你的思路却受着传统RNN结构的束缚。个人以为SRNN要比近年的QRNN,SRU,DCCNN什么的重要的多,说是RNN的革命也不为过。