時間卷積網路(TCN)將取代RNN成為NLP預測領域王者
時間卷積網路(TCN)將取代RNN成為NLP預測領域王者
譯者 | 李志
編輯 | Vincent
AI 前線導讀:我們一開始認為,時序問題(如語言、語音等等)天生就是 RNN 的地盤。然而現在這一觀點要成為過去式了。時間卷積網路(Temporal Convolutional Nets, TCNs)作為 CNN 家族中的一員健將,擁有許多新特性,如今已經在諸多主要應用領域中擊敗了 RNN。看起來 RNN 可能要成為歷史了。
更多幹貨內容請關注微信公眾號“AI 前線”,(ID:ai-front)
也就是從 2014、15 年起,我們基於深度神經網路的應用就已經在文字和語音識別領域達到 95% 的準確率,可以用來開發新一代的聊天機器人、個人助理和即時翻譯系統等。
卷積神經網路(Convolutional Neural Nets, CNNs)是影像和影片識別領域公認的主力軍,而迴圈神經網路(Recurrent Neural Nets, RNNs)在自然語言處理領域的地位與其是相似的。
但二者的一個主要不同是,CNN 可以識別靜態影像(或以幀分割的影片)中的特徵,而 RNN 在文字和語音方面表現出色,因為這類問題屬於序列或時間依賴問題。也就是說,待預測的後一個字元或單詞依賴於前面的(從左到右)字元或單詞,因此引入時間的概念,進而考慮到序列。
實際上,RNN 在所有的序列問題上都有良好表現,包括語音 / 文字識別、機器翻譯、手寫體識別、序列資料分析(預測),甚至不同配置下的自動編碼生成等等。
在很短的一段時期裡,RNN 的改進版本大行其道,其中包括 LSTM(long short term memory,長短期記憶網路)和 GRU(gated recurring units,門迴圈單元)。這二者都改進了 RNN 的記憶範圍,令資料可以將距離其很遠的文字資訊利用起來。
解決“才怪”問題
當 RNN 從左到右按順序讀取字元時,上下文就成了一個重要問題。比如,對一條評論進行情感分析時,剛開始的幾句話可能是正面的(例如,食物好,氣氛好)但以負面評論結束(如服務差,價格高),最後整條評論實際上是負面的。這其實在邏輯上等同於“才怪”的玩笑:“這個領帶看著不錯……才怪!”
這個問題的解決方案是使用兩個 LSTM 編碼器,同時從兩個方向讀取文字(即雙向編碼器)。這相當於在現在掌握了(文字的)未來資訊。這很大程度上解決了問題。精度確實提高了。
Facebook 和 Google 遭遇的一個問題
早些年,當 Facebook 和 Google 釋出各自的自動語言翻譯系統時,他們意識到了一個問題——翻譯耗時太長了。
這實際上是 RNN 在內部設計上存在的一個問題。由於網路一次只讀取、解析輸入文字中的一個單詞(或字元),深度神經網路必須等前一個單詞處理完,才能進行下一個單詞的處理。
這意味著 RNN 不能像 CNN 那樣進行大規模並行處理(massive parallel processing,MPP),特別是在 RNN/LSTM 對文字進行雙向處理時。
這也意味著 RNN 極度地計算密集,因為在整個任務執行完成之前,必須儲存所有的中間結果。
2017 年初,Google 和 Facebook 針對該問題提出了相似的解決方案——在機器翻譯系統中使用 CNN,以便將大規模並行處理的優勢發揮出來。在 CNN 中,計算不依賴於之前時間的資訊,因此每個計算都是獨立的,可以並行起來。
Google 的解決方案叫做 ByteNet,而 Facebook 的稱為 FairSeq(這是用 Facebook 內部的人工智慧研究團隊 FAIR 來命名的)。FairSeq 的程式碼已釋出至 GitHub。
Facebook 稱他們的 FairSeq 網路的執行速度比基本的 RNN 快 9 倍。
基本工作原理
CNN 在處理影像時,將影像看作一個二維的“塊”(高度和寬度);遷移到文字處理上,就可以將文字看作一個一維物件(高度 1 個單位,長度 n 個單位)。
但 RNN 不能直接預定義物件長度,而 CNN 需要長度資訊。因此,要使用 CNN,我們必須不斷增加層數,直到整個感受野都被覆蓋為止。這種做法會讓 CNN 非常深,但是得益於大規模並行處理的優勢,無論網路多深,都可以進行並行處理,節省大量時間。
特殊結構:選通 + 跳躍 = 注意力
當然,具體的解決方案不會像上面所說的那樣簡單。Google 和 Facebook 還向網路中新增了一個特殊結構:“注意力(Attention)”函式。
最初的注意力函式是去年由 Google Brain 和多倫多大學的研究者們提出的,命名為變換器(Transformer)。
原論文連結:
。
當時,Facebook 和 Google 使用的函式幾乎一模一樣,因此該函式備受關注,被稱為“注意力”函式。該函式有兩個獨特的特徵。
第一個特徵被 Facebook 稱為“多跳躍”。和傳統 RNN 方法的每個句子只“看”一次不同,多跳躍讓系統可以“瞥”一個句子“好多眼”。這種行為和人工翻譯更相似。
每“一瞥”可能會關注某個名詞或動詞,而這些詞並不一定是一個序列,因此在每一次迭代中可以更深入地理解其含義。每“瞥”之間可能是獨立的,也可能依賴於前面的“瞥”,然後去關注相關的形容詞、副詞或助動詞等。
上圖是 Facebook 給出的一個法英翻譯的例子,展示了第一次迭代的過程。該次迭代編碼了每一個法語單詞,然後用“多跳躍”的方法選擇最合適的英文翻譯。
第二個特徵是選通(即門控制),用來控制各隱藏層之間的資訊流。在上下文理解過程中,門透過對 CNN 的尺度控制,來判斷哪些資訊能更好地預測下一個單詞。
不只是機器翻譯——時間卷積網路(TCN)
至 2017 年中旬,Facebook 和 Google 已經透過使用 CNN 和注意力函式,完全解決了機器翻譯的時間效率問題。而更重要的一個問題是,這種技術大有用武之地,不能將其埋沒在加速機器翻譯的小小任務中。我們能否將其推廣到所有適用於 RNN 的問題?答案是,當然可以。
2017 年,相關的研究發表了很多;其中有些幾乎是和 Facebook、Google 同時發表的。其中一個敘述比較全面的論文是 Shaojie Bai、J. Zico Kolter 和 Vladlen Koltun 發表的“An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling”。
原文連結:。
有些同仁將這種新架構命名為時間卷積網路。當然隨著工業上的應用,這個名稱有可能會被更改。
上述論文所做的工作是在 11 個不同的、非語言翻譯類的工業標準 RNN 問題上,將 TCN 與 RNN、LSTM、GRU 進行了直接比較。
研究的結論是:TCN 在其中的 9 個問題中,不僅速度更快,且精度更高;在 1 個問題中與 GRU 打了平手(下表中的粗體文字代表精度最高項。圖片擷取自原論文)。
TCN 優缺點
Shaojie Bai、J. Zico Kolter 和 Vladlen Koltun 還給出了下面這一實用的列表,列舉了 TCN 的優缺點。
- 速度很重要。更快的網路能使反饋環更短。由於在 TCN 中可以進行大規模並行處理,網路訓練和驗證的時間都會變短。
- TCN 為改變感受野大小提供了更多靈活性,主要是透過堆疊更多的卷積層、使用更大的膨脹係數及增大濾波器大小。這些操作可以更好地控制模型的記憶長短。
- TCN 的反向傳播路徑和序列的時間方向不同。這避免了 RNN 中經常出現的梯度爆炸或梯度消失問題。
- 訓練時需要的記憶體更少,尤其是對於長輸入序列。
然而,作者指出,TCN 在遷移學習方面可能沒有 CNN 的適應能力那麼強。這是因為在不同的領域,模型預測所需要的歷史資訊量可能是不同的。因此,在將一個模型從一個對記憶資訊需求量少的問題遷移到一個需要更長記憶的問題上時,TCN 可能會表現得很差,因為其感受野不夠大。
進一步考慮TCN 已經被應用在很多重要領域,也獲得了極大成功,甚至幾乎可以解決一切序列問題。因此,我們需要重新考慮我們之前的看法。序列問題不再是 RNN 的專屬領域,而 TCN 應該成為我們未來專案的優先選項。
關於作者:Bill Vorhies,資料科學中心主編,資料科學家,自 2001 年起就開始從事資料科學領域相關職業。郵箱:Bill@DataScienceCentral.com。
本文首發於 Data Science Central,原文連結:
https://www.datasciencecentral.com/profiles/blogs/temporal-convolutional-nets-tcns-take-over-from-rnns-for-nlp-pred
參考文獻:K碼農-
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2662201/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- BiTCN:基於卷積網路的多元時間序列預測卷積
- LSTM的備胎,用卷積處理時間序列——TCN與因果卷積(理論+Python實踐)卷積Python
- 【NLP】瞭解用於NLP的卷積神經網路(譯)卷積神經網路
- 史丹佛NLP課程 | 第11講 - NLP中的卷積神經網路卷積神經網路
- 何為神經網路卷積層?神經網路卷積
- 2.0 卷積網路卷積
- 卷積神經網路卷積神經網路
- 卷積神經網路四種卷積型別卷積神經網路型別
- Seeking Alpha:騰訊成為中國消費者網際網路領域領頭羊
- 網路流量預測入門(一)之RNN 介紹RNN
- 為什麼說 NLP 將是未來資料領域的珠峰?
- 谷歌的googLeNet卷積神經網路為什麼在計算機視覺領域如此強大?谷歌Go卷積神經網路計算機視覺
- 基於WOA鯨魚最佳化的GroupCNN分組卷積網路時間序列預測演算法matlab模擬CNN卷積演算法Matlab
- 卷積神經網路:卷積層和池化層卷積神經網路
- 5.2.1 卷積神經網路卷積神經網路
- 卷積神經網路概述卷積神經網路
- 解密卷積神經網路!解密卷積神經網路
- 卷積神經網路CNN卷積神經網路CNN
- 卷積神經網路初探卷積神經網路
- 卷積神經網路-1卷積神經網路
- 卷積神經網路-2卷積神經網路
- 卷積神經網路-3卷積神經網路
- 卷積神經網路1-邊緣檢測卷積神經網路
- 基於PSO粒子群最佳化的GroupCNN分組卷積網路時間序列預測演算法matlab模擬CNN卷積演算法Matlab
- TCN 一維預測の筆記筆記
- 積極探索 瞻博網路將引領智慧網路發展
- 趨勢科技:到2030年人工智慧將在網路安全領域取代人類人工智慧
- 掌握視覺化卷積神經網路模型,帶你暢遊影像識別技術領域視覺化卷積神經網路模型
- 網際網路週刊:行為預測即將降臨社交網路
- NLP領域預訓練模型的現狀及分析模型
- 如何正確理解神經網路在NLP領域的運用神經網路
- 用 Pytorch 理解卷積網路PyTorch卷積
- 全卷積神經網路FCN卷積神經網路
- 深度剖析卷積神經網路卷積神經網路
- 看懂卷積神經網路(CNN)卷積神經網路CNN
- 卷積神經網路-AlexNet卷積神經網路
- 卷積神經網路中的Winograd快速卷積演算法卷積神經網路演算法
- 卷積神經網路鼻祖LeNet網路分析卷積神經網路