如何评价新提出的RNN变种SRU
一、动机:
相信搞deep learning & NLP 的朋友都遇到过以下问题,
RNN的训练实在是太慢了!这点跑过 RNN & CNN的自然懂,无需我多言。
模型的应用性和实验的可重复性。某模型在某任务A or B上效果很炸。但其他任务呢?模型是否开源?有没有附上实验代码证明可重复性?
网络结构的可解释性。阅读到新的网络/模型的时候,是否碰到过“这东西为什么有效”的疑问 ?举个栗子,下图是谷歌利用强化学习找到的循环网络单元NASCell,是不是问号脸():
相反很多简单的东西不仅效果好,并且更具有解释性,比如残差(residual)和 注意力机制(attention)。
基于上述三点,SRU及其相关工作旨在提出和探索“简单快速并更具解释性的循环神经网络”。我们对SRU进行了较广泛的测试,同时开源全部代码。希望得到更多检验,甚至帮助找到更有效的模型。
关于可解释性的一点补充:我对目前常用的RNN的理解是,它们将序列相似度更好的encode在了hidden state中 (they better encode sequence similarity,不太确定怎么用中文表达),因此能更好的泛化。我的presentation和近期工作有涉及到一些[13, 6], 有时间我会在回答中加入更多讨论。。
二、原创性,包括与Quasi-RNN的联系:
坦白地说,我们之前并不知道Quasi-RNN的工作。在SRU的报告完成之后,我发给了圈内朋友阅读并提供修改建议。Yoon Kim 知道Quasi-RNN所以建议我引用这篇工作。于是我在论文出现在arxiv公***平台之前草率的引用了Q-RNN。我们没有预料到SRU会这么快在Github / Twitter / Facebook火起来。不到一天的时间就看到Q-RNN作者包括Richard Socher带有质疑的帖子吓了一跳 -_-b,现在经过交流双方算是和解了(想八卦的同学可以翻墙fb,贴子在这里)。没有适当引用和比较相关工作是我们的锅,我们已经修改并提交了第二版本。
回到主题,SRU可以追溯到我和小伙伴们今年ICML 17甚至更早的15年论文 [6,7,8]。因此,我个人并不太赞同SRU就是Quasi-RNN的说法。理由如下,
(1) ?网络结构:Quasi-RNN的核心是在 k-gram CNN(文本卷积)的基础上使用 adaptive gating。在讨论k-gram卷积的时候,通常不会使用k=1既 window size 1作为运行参数。这点在包括Q-RNN本身的许多论文中都有体现 [1,2,3,4,5]。SRU中的矩阵变换虽然可以看做 k=1的情况,但这跟声称“所有前馈神经网络(fast forward network)都是 k=1 卷积” 或者 “VGG net 和 GoogLeNet 是 AlexNet 改成3*3卷积然后加深度”没有本质差别。
此外,很多循环/卷积网络变种是殊途同归的。以"CNN + adaptive weighting"这种思路为例,仅仅本人所知就包括华为实验室15年的 genCNN [9],我们15年提出的RCNN [8,7],FAIR提出的Gated ConvNet [4] 等等。Q-RNN的作者也承认,很难声称谁是“第一”,重要得是去实现和验证想法:
these architectures are so mathematically simple that they’ve been reinvented several times and it’s difficult to be sure exactly who tried them first, but it’s our job as authors to attempt to do it anyway (we certainly failed to include enough discussion of PixelCNN in our arxiv version, but added it in the camera-ready) ?-- Bradbury
(2) 加速技巧:RNN的加速技巧,包括batched gemm(),element-wise operation fusion等等是由 Nvidia 的研究人员最先提出并开源的 [10,11]。这点我们在论文中讲的很清楚,而不像一些同学认为的由Q-RNN提出。由于Q-RNN使用卷积核conv2d,自带比传统RNN好很多的加速效果。在SRU中,因为h[t-1]的依赖被去掉,导致可以夸时间维(或者输入位置)并行加速,这点跟conv2d / Q-RNN是一样的。
(3) 残差链接:在我们 ICML-17 [6] 的工作中已经对简化的RNN结构加入残差链接(highway connection)。SRU的结构极其变种已经出现在第一部分PTB的实验中([6] Figure 3)。这些工作包括实验、理论解释和相关证明实际上在17年前已经完成,并收录在 17年1月毕业答辩之后的毕业论文中 [12]。在此基础上,SRU和其加速是为了提高应用性,同时在更多的任务数据集上测试该模型有效性。