優拓 Paper Note ep.11: Training RNNs as Fast as CNNs
編按:在優拓每週一次的 Seminar,Data Team 的大夥會輪流分享最近看過的一篇印象深刻的論文。這一系列文章就是將會議上討論的內容整理出來,分享給優拓以外的同好。本系列的前一篇請見:
《Training RNNs as Fast as CNNs》by Tao Lei, Yu Zhang
註:以下的圖皆截自這篇論文
GRU、LSTM 原始的實作,運算速度是相當慢的,主要原因是一些內部的 Gate 運算依賴於前一個狀態,比如說 Forget Gate:
中間的 h 必須經由不斷迭代來求得,因此,不管是 forward 還是 backward,運算過程都得按照順序來一個個算,無法平行化。
這篇由 ASAAP 的研究員上個月發布在 Arxiv 上,並公開程式碼的論文,刻意將這些 gate 對過去狀態的相依性拿掉。以上面提到的 Forget Gate 為例,他們將它改成:
只是一個簡單的修改,就達到 10x 以上的加速。
看點
作者們提出的 Simple Recurrent Unit (SRU) 速度飛快,和 cuDNN 的 LSTM 以及 CNN 比較:
幾個文字分類及語音辨識的準確度,和原先的 GRU 或 LSTM 比起來,差不多或甚至更好。
演算法
這篇論文提出的 SRU,讓前一個 hidden state 完全不接到下一個時間的 gate ,運算過程如下:
其中,前三條運算量龐大,但可以平行化。合併前三條的矩陣乘法,然後使用 GPU 加速:
便能獲得相當可觀的效能。
缺點
在 machine translation 上,BLEU 輸 LSTM,即便參數量差不多。筆者猜測,在 seq2seq 類型的任務上,SRU 在 decode 時,各個 gate 少了 hidden state 的提示,只依賴前一個 decode 出來的字,無法有效更新 hidden state。 也許加上 attention mechanism 便能大大改善這個問題。
優拓資訊 (Yoctol Info Inc.)
At YOCTOL, We AI Your Business by Bot.
優拓為新銳 AI 團隊,利用自行研發的機器人框架、自然語意理解、網路爬蟲、推薦引擎,為企業提供全方位的商務機器人解決方案,不僅可以即時回應顧客的客服需求,也能主動推播個人化商品推薦,提昇企業經營效能。
若您有相關業務需求或是任何建議、疑問,都歡迎寄信至 service@yoctol.com,我們將盡速與您聯繫,期待您的來信!