丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能 正文
發(fā)私信給叢末
發(fā)送

0

放棄幻想,全面擁抱 Transformer:自然語言處理三大特征抽取器(CNN/RNN/TF)比較(下篇)

本文作者: 叢末 2019-02-16 16:25
導(dǎo)語:萬字干貨文~

雷鋒網(wǎng) AI 科技評論按:本文作者是張俊林老師,他是中國中文信息學(xué)會理事,中科院軟件所博士,目前在新浪微博 AI Lab 擔(dān)任資深算法專家。在此之前,張俊林老師曾在阿里巴巴任資深技術(shù)專家并負(fù)責(zé)新技術(shù)團(tuán)隊(duì),也曾在百度和用友擔(dān)任技術(shù)經(jīng)理及技術(shù)總監(jiān)等職務(wù)。同時他是技術(shù)書籍《這就是搜索引擎:核心技術(shù)詳解》(該書榮獲全國第十二屆優(yōu)秀圖書獎)、《大數(shù)據(jù)日知錄:架構(gòu)與算法》的作者。本文首發(fā)于知乎,經(jīng)作者許可,雷鋒網(wǎng) AI 科技評論進(jìn)行轉(zhuǎn)載。

本部分為下篇。

華山論劍:三大特征抽取器比較

結(jié)合 NLP 領(lǐng)域自身的特點(diǎn),上面幾個部分分別介紹了 RNN/CNN/Transformer 各自的特性。從上面的介紹,看上去好像三大特征抽取器在 NLP 領(lǐng)域里各有所長,推想起來要是把它們拉到 NLP 任務(wù)競技場角斗,一定是互有勝負(fù),各擅勝場吧?

事實(shí)究竟如何呢?是三個特征抽取器三花齊放還是某一個一枝獨(dú)秀呢?我們通過一些實(shí)驗(yàn)來說明這個問題。

為了更細(xì)致和公平地做對三者進(jìn)行比較,我準(zhǔn)備從幾個不同的角度來分別進(jìn)行對比,我原先打算從以下幾個維度來進(jìn)行分析判斷:句法特征提取能力;語義特征提取能力;長距離特征捕獲能力;任務(wù)綜合特征抽取能力。上面四個角度是從 NLP 的特征抽取器能力強(qiáng)弱角度來評判的,另外再加入并行計(jì)算能力及運(yùn)行效率,這是從是否方便大規(guī)模實(shí)用化的角度來看的。

因?yàn)槟壳瓣P(guān)于特征抽取器句法特征抽取能力方面進(jìn)行比較的文獻(xiàn)很少,好像只看到一篇文章,結(jié)論是 CNN 在句法特征提取能力要強(qiáng)于 RNN,但是因?yàn)槭潜容^早的文章,而且沒有對比 transformer 在句法特征抽取方面的能力,所以這塊很難單獨(dú)比較,于是我就簡化為對以下幾項(xiàng)能力的對比:

  • 語義特征提取能力;

  • 長距離特征捕獲能力;

  • 任務(wù)綜合特征抽取能力;

  • 并行計(jì)算能力及運(yùn)行效率

三者在這些維度各自表現(xiàn)如何呢?下面我們分頭進(jìn)行說明。

語義特征提取能力

放棄幻想,全面擁抱 Transformer:自然語言處理三大特征抽取器(CNN/RNN/TF)比較(下篇)


從語義特征提取能力來說,目前實(shí)驗(yàn)支持如下結(jié)論:Transformer 在這方面的能力非常顯著地超過 RNN 和 CNN(在考察語義類能力的任務(wù) WSD 中,Transformer 超過 RNN 和 CNN 大約 4-8 個絕對百分點(diǎn)),RNN 和 CNN 兩者能力差不太多。

長距離特征捕獲能力


放棄幻想,全面擁抱 Transformer:自然語言處理三大特征抽取器(CNN/RNN/TF)比較(下篇)

在長距離特征捕獲能力方面,目前在特定的長距離特征捕獲能力測試任務(wù)中(主語-謂語一致性檢測,比如 we……..are…),實(shí)驗(yàn)支持如下結(jié)論:原生 CNN 特征抽取器在這方面極為顯著地弱于 RNN 和 Transformer,Transformer 微弱優(yōu)于 RNN 模型 (尤其在主語謂語距離小于 13 時),能力由強(qiáng)到弱排序?yàn)?Transformer>RNN>>CNN; 但在比較遠(yuǎn)的距離上(主語謂語距離大于 13),RNN 微弱優(yōu)于 Transformer,所以綜合看,可以認(rèn)為 Transformer 和 RNN 在這方面能力差不太多,而 CNN 則顯著弱于前兩者。

那么為什么 CNN 在捕獲長距離特征方面這么弱呢?這個我們在前文講述 CNN 的時候就說過,CNN 解決這個問題是靠堆積深度來獲得覆蓋更長的輸入長度的,所以 CNN 在這方面的表現(xiàn)與卷積核能夠覆蓋的輸入距離最大長度有關(guān)系。如果通過增大卷積核的 kernel size,同時加深網(wǎng)絡(luò)深度,以此來增加輸入的長度覆蓋。實(shí)驗(yàn)證明這能夠明顯提升 CNN 的 long-range 特征捕獲能力。但是盡管如此,CNN 在這方面仍然顯著弱于 RNN 和 Transformer。這個問題背后的原因是什么呢(因?yàn)樯鲜鲋髡Z-謂語一致性任務(wù)中,CNN 的深度肯定可以覆蓋 13-25 這個長度了,但是表現(xiàn)還是很弱)?其實(shí)這是一個很好的值得探索的點(diǎn)。

對于 Transformer 來說,Multi-head attention 的 head 數(shù)量嚴(yán)重影響 NLP 任務(wù)中 Long-range 特征捕獲能力:結(jié)論是 head 越多越有利于捕獲 long-range 特征。在上頁 PPT 里寫明的論文出來之前,有個工作(論文:Tran. The Importance of Being Recurrent for Modeling Hierarchical Structure)的結(jié)論和上述結(jié)論不一致:它的結(jié)論是在」主語-謂語一致性」任務(wù)上,Transformer 表現(xiàn)是弱于 LSTM 的。如果綜合這兩篇論文,我們看似得到了相互矛盾的結(jié)論,那么到底誰是正確的呢?Why Self-attention 的論文對此進(jìn)行了探索,它的結(jié)論是:這個差異是由于兩個論文中的實(shí)驗(yàn)中 Transformer 的超參設(shè)置不同導(dǎo)致的,其中尤其是 multi-head 的數(shù)量,對結(jié)果影響嚴(yán)重,而如果正確設(shè)置一些超參,那么之前 Trans 的論文結(jié)論是不成立的。也就是說,我們目前仍然可以維持下面結(jié)論:在遠(yuǎn)距離特征捕獲能力方面,Transformer 和 RNN 能力相近,而 CNN 在這方面則顯著弱于前兩者。

任務(wù)綜合特征抽取能力

上面兩項(xiàng)對比是從特征抽取的兩個比較重要的單項(xiàng)能力角度來評估的,其實(shí)更重要的是在具體任務(wù)中引入不同特征抽取器,然后比較效果差異,以此來綜合評定三者的綜合能力。那么這樣就引出一個問題:NLP 中的任務(wù)很多,哪些任務(wù)是最具有代表性的呢?答案是機(jī)器翻譯。你會看到很多 NLP 的重要的創(chuàng)新模型都是在機(jī)器翻譯任務(wù)上提出來的,這背后是有道理的,因?yàn)闄C(jī)器翻譯基本上是對 NLP 各項(xiàng)處理能力綜合要求最高的任務(wù)之一,要想獲得高質(zhì)量的翻譯結(jié)果,對于兩種語言的詞法,句法,語義,上下文處理能力,長距離特征捕獲等等更方面都需要考慮進(jìn)來才行。這是為何看到很多比較工作是在機(jī)器翻譯上作出的,這里給個背后原因的解釋,以避免被質(zhì)疑任務(wù)單一,沒有說服力的問題。當(dāng)然,我預(yù)料到那位「因?yàn)槌蕴澤佟? 愛挑刺」的同學(xué)會這么質(zhì)問我,沒關(guān)系,即使你對此提出質(zhì)疑,我依然能夠拿出證據(jù),為什么這么講,請往后看。

那么在以機(jī)器翻譯為代表的綜合特征抽取能力方面,三個特征抽取器哪個更好些呢?

放棄幻想,全面擁抱 Transformer:自然語言處理三大特征抽取器(CNN/RNN/TF)比較(下篇)


先給出一個機(jī)器翻譯任務(wù)方面的證據(jù),仍然是 why Self attention 論文的結(jié)論,對比實(shí)驗(yàn)結(jié)果數(shù)據(jù)參考上圖。在兩個機(jī)器翻譯任務(wù)中,可以看到,翻譯質(zhì)量指標(biāo) BLEU 證明了如下結(jié)論:Transformer 綜合能力要明顯強(qiáng)于 RNN 和 CNN(你要知道,技術(shù)發(fā)展到現(xiàn)在階段,BLEU 絕對值提升 1 個點(diǎn)是很難的事情),而 RNN 和 CNN 看上去表現(xiàn)基本相當(dāng),貌似 CNN 表現(xiàn)略好一些。

你可能覺得一個論文的結(jié)論不太能說明問題,那么我再給出一個證據(jù),不過這個證據(jù)只對比了 Transformer 和 RNN,沒帶 CNN 玩,不過關(guān)于說服力我相信你不會質(zhì)疑,實(shí)驗(yàn)對比數(shù)據(jù)如下:

放棄幻想,全面擁抱 Transformer:自然語言處理三大特征抽取器(CNN/RNN/TF)比較(下篇)


上面是 GPT 論文的實(shí)驗(yàn)結(jié)論,在 8 個不同的 NLP 任務(wù)上,在其它條件相同的情況下,只是把特征抽取器從 Transformer 換成 LSTM,平均下來 8 個任務(wù)得分掉了 5 個點(diǎn)以上。這具備足夠說服力嗎?

其實(shí)還有其它機(jī)器翻譯方面的實(shí)驗(yàn)數(shù)據(jù),篇幅原因,不一一列舉了。如果你是個較真的人,實(shí)在還想看,那請看下一節(jié),里面有另外一個例子的數(shù)據(jù)讓來你服氣。如果歸納一下的話,現(xiàn)在能得出的結(jié)論是這樣的:從綜合特征抽取能力角度衡量,Transformer 顯著強(qiáng)于 RNN 和 CNN,而 RNN 和 CNN 的表現(xiàn)差不太多,如果一定要在這兩者之間比較的話,通常 CNN 的表現(xiàn)要稍微好于 RNN 的效果。

當(dāng)然,需要強(qiáng)調(diào)一點(diǎn),本部分所說的 RNN 和 CNN 指的是原生的 RNN 和 CNN 模型,就是說你可以在經(jīng)典的結(jié)構(gòu)上增加 attention,堆疊層次等各種改進(jìn),但是不包含對本身結(jié)構(gòu)特別大的變動,就是說支持整容,但是不支持變性。這里說的原生版本指的是整容版本,我知道你肯定很關(guān)心有沒有變性版本的 RNN 和 CNN,我負(fù)責(zé)任地跟你說,有。你想知道它變性之后是啥樣子?等會你就看到了,有它們的照片給你。

并行計(jì)算能力及運(yùn)算效率

關(guān)于三個特征抽取器的并行計(jì)算能力,其實(shí)我們在前文分述三個模型的時候都大致提過,在此僅做個歸納,結(jié)論如下:

RNN 在并行計(jì)算方面有嚴(yán)重缺陷,這是它本身的序列依賴特性導(dǎo)致的,所謂成也蕭何敗也蕭何,它的這個線形序列依賴性非常符合解決 NLP 任務(wù),這也是為何 RNN 一引入到 NLP 就很快流行起來的原因,但是也正是這個線形序列依賴特性,導(dǎo)致它在并行計(jì)算方面要想獲得質(zhì)的飛躍,看起來困難重重,近乎是不太可能完成的任務(wù)。

而對于 CNN 和 Transformer 來說,因?yàn)樗鼈儾淮嬖诰W(wǎng)絡(luò)中間狀態(tài)不同時間步輸入的依賴關(guān)系,所以可以非常方便及自由地做并行計(jì)算改造,這個也好理解。

所以歸納一下的話,可以認(rèn)為并行計(jì)算能力由高到低排序如下:Transformer 和 CNN 差不多,都遠(yuǎn)遠(yuǎn)遠(yuǎn)遠(yuǎn)強(qiáng)于 RNN。

我們從另外一個角度來看,先拋開并行計(jì)算能力的問題,單純地比較一下三個模型的計(jì)算效率。可能大家的直觀印象是 Transformer 比較重,比較復(fù)雜,計(jì)算效率比較低,事實(shí)是這樣的嗎?

放棄幻想,全面擁抱 Transformer:自然語言處理三大特征抽取器(CNN/RNN/TF)比較(下篇)

上圖列出了單層的 Self attention/RNN/CNN 的計(jì)算效率,首先要注意:上面列的是 Self attention,不是 Transformer 的 Block,因?yàn)?Transformer Block 里其實(shí)包含了好幾層,而不是單層。我們先說 self attention,等會說 Transformer Block 的計(jì)算量。

從上圖可以看出,如果是 self attention/CNN/RNN 單層比較計(jì)算量的話,三者都包含一個平方項(xiàng),區(qū)別主要是:self attention 的平方項(xiàng)是句子長度,因?yàn)槊恳粋€單詞都需要和任意一個單詞發(fā)生關(guān)系來計(jì)算 attention,所以包含一個 n 的平方項(xiàng)。而 RNN 和 CNN 的平方項(xiàng)則是 embedding size。那么既然都包含平方項(xiàng),怎么比較三個模型單層的計(jì)算量呢?首先容易看出 CNN 計(jì)算量是大于 RNN 的,那么 self attention 如何與其它兩者比較呢??梢赃@么考慮:如果句子平均長度 n 大于 embedding size,那么意味著 Self attention 的計(jì)算量要大于 RNN 和 CNN;而如果反過來,就是說如果 embedding size 大于句子平均長度,那么明顯 RNN 和 CNN 的計(jì)算量要大于 self attention 操作。而事實(shí)上是怎樣?我們可以想一想,一般正常的句子長度,平均起來也就幾十個單詞吧。而當(dāng)前常用的 embedding size 從 128 到 512 都常見,所以在大多數(shù)任務(wù)里面其實(shí) self attention 計(jì)算效率是要高于 RNN 和 CNN 的。

但是,那位因?yàn)槌蕴澇缘纳偎韵矚g挑刺的同學(xué)會繼續(xù)質(zhì)問我:「哥,我想知道的是 Transformer 和 RNN 及 CNN 的計(jì)算效率對比,不是 self attention。另外,你能降低你腦袋里發(fā)出的水聲音量嗎?」。嗯,這個質(zhì)問很合理,我來粗略估算一下,因?yàn)?Transformer 包含多層,其中的 skip connection 后的 Add 操作及 LayerNorm 操作不太耗費(fèi)計(jì)算量,我先把它忽略掉,后面的 FFN 操作相對比較耗時,它的時間復(fù)雜度應(yīng)該是 n 乘以 d 的平方。所以如果把 Transformer Block 多層當(dāng)作一個整體和 RNN 及 CNN 單層對比的話,Transformer Block 計(jì)算量肯定是要多于 RNN 和 CNN 的,因?yàn)樗旧硪舶粋€ n 乘以 d 的平方,上面列出的 self attention 的時間復(fù)雜度就是多出來的計(jì)算量。這么說起來,單個 Transformer Block 計(jì)算量大于單層 RNN 和 CNN,沒毛病。

上面考慮的是三者單層的計(jì)算量,可以看出結(jié)論是:Transformer Block >CNN >RNN。如果是考慮不同的具體模型,會與模型的網(wǎng)絡(luò)層深有很大關(guān)系,另外還有常見的 attention 操作,所以問題會比較復(fù)雜,這里不具體討論了。

說完非并行情況的三者單層計(jì)算量,再說回并行計(jì)算的問題。很明顯,對于 Transformer 和 CNN 來說,那個句子長度 n 是可以通過并行計(jì)算消掉的,而 RNN 因?yàn)樾蛄幸蕾嚨膯栴},那個 n 就消不掉,所以很明顯,把并行計(jì)算能力考慮進(jìn)來,RNN 消不掉的那個 n 就很要命。這只是理論分析,實(shí)際中三者計(jì)算效率到底如何呢?我們給出一些三者計(jì)算效率對比的實(shí)驗(yàn)結(jié)論。

論文「Convolutional Sequence to Sequence Learning」比較了 ConvS2S 與 RNN 的計(jì)算效率,證明了跟 RNN 相比,CNN 明顯速度具有優(yōu)勢,在訓(xùn)練和在線推理方面,CNN 比 RNN 快 9.3 倍到 21 倍。論文「Dissecting Contextual Word Embeddings: Architecture and Representation」提到了 Transformer 和 CNN 訓(xùn)練速度比雙向 LSTM 快 3 到 5 倍。論文「The Best of Both Worlds: Combining Recent Advances in Neural Machine Translation」給出了 RNN/CNN/Transformer 速度對比實(shí)驗(yàn),結(jié)論是:Transformer Base 速度最快;CNN 速度次之,但是比 Transformer Base 比慢了將近一倍;Transformer Big 速度再次,主要因?yàn)樗膮?shù)量最大,而吊在車尾最慢的是 RNN 結(jié)構(gòu)。

總而言之,關(guān)于三者速度對比方面,目前的主流經(jīng)驗(yàn)結(jié)論基本如上所述:Transformer Base 最快,CNN 次之,再次 Transformer Big,最慢的是 RNN。RNN 比前兩者慢了 3 倍到幾十倍之間。

綜合排名情況

以上介紹內(nèi)容是從幾個不同角度來對 RNN/CNN/Transformer 進(jìn)行對比,綜合這幾個方面的實(shí)驗(yàn)數(shù)據(jù),我自己得出的結(jié)論是這樣的:單從任務(wù)綜合效果方面來說,Transformer 明顯優(yōu)于 CNN,CNN 略微優(yōu)于 RNN。速度方面 Transformer 和 CNN 明顯占優(yōu),RNN 在這方面劣勢非常明顯。這兩者再綜合起來,如果我給的排序結(jié)果是 Transformer>CNN>RNN,估計(jì)沒有什么問題吧?那位吃虧….. 愛挑刺的同學(xué),你說呢?

從速度和效果折衷的角度看,對于工業(yè)界實(shí)用化應(yīng)用,我的感覺在特征抽取器選擇方面配置 Transformer base 是個較好的選擇。

三者的合流:向 Transformer 靠攏

上文提到了,Transformer 的效果相對原生 RNN 和 CNN 來說有比較明顯的優(yōu)勢,那么是否意味著我們可以放棄 RNN 和 CNN 了呢?事實(shí)倒也并未如此。我們聰明的科研人員想到了一個巧妙的改造方法,我把它叫做「寄居蟹」策略(就是上文說的「變性」的一種帶有海洋文明氣息的文雅說法)。什么意思呢?我們知道 Transformer Block 其實(shí)不是只有一個構(gòu)件,而是由 multi-head attention/skip connection/Layer Norm/Feed forward network 等幾個構(gòu)件組成的一個小系統(tǒng),如果我們把 RNN 或者 CNN 塞到 Transformer Block 里會發(fā)生什么事情呢?這就是寄居蟹策略的基本思路。

那么怎么把 RNN 和 CNN 塞到 Transformer Block 的肚子里,讓它們背上重重的殼,從而能夠?qū)崿F(xiàn)寄居策略呢?

放棄幻想,全面擁抱 Transformer:自然語言處理三大特征抽取器(CNN/RNN/TF)比較(下篇)


放棄幻想,全面擁抱 Transformer:自然語言處理三大特征抽取器(CNN/RNN/TF)比較(下篇)

其實(shí)很簡單,參考上面兩張 PPT,簡而言之,大的方向就是把 self attention 模塊用雙向 RNN 或者 CNN 替換掉,Transformer Block 的其它構(gòu)件依然健在。當(dāng)然這只是說明一個大方向,具體的策略可能有些差異,但是基本思想八九不離十。

那么如果 RNN 和 CNN 采取這種寄居策略,效果如何呢?他們還爬的動嗎?其實(shí)這種改造方法有奇效,能夠極大提升 RNN 和 CNN 的效果。而且目前來看,RNN 或者 CNN 想要趕上 Transformer 的效果,可能還真只有這個辦法了。

放棄幻想,全面擁抱 Transformer:自然語言處理三大特征抽取器(CNN/RNN/TF)比較(下篇)

我們看看 RNN 寄居到 Transformer 后,效果是如何的。上圖展示了對原生 RNN 不斷進(jìn)行整容手術(shù),逐步加入 Transformer 的各個構(gòu)件后的效果。我們從上面的逐步變身過程可以看到,原生 RNN 的效果在不斷穩(wěn)定提升。但是與土生土長的 Transformer 相比,性能仍然有差距。

放棄幻想,全面擁抱 Transformer:自然語言處理三大特征抽取器(CNN/RNN/TF)比較(下篇)

類似的,上圖展示了對 CNN 進(jìn)行不斷改造的過程以及其對應(yīng)效果。同樣的,性能也有不同幅度的提升。但是也與土家 Transformer 性能存在一些差距。

這說明什么?我個人意見是:這說明 Transformer 之所以能夠效果這么好,不僅僅 multi-head attention 在發(fā)生作用,而是幾乎所有構(gòu)件都在共同發(fā)揮作用,是一個小小的系統(tǒng)工程。

但是從上面結(jié)果看,變性版本 CNN 好像距離 Transformer 真身性能還是比不上,有些數(shù)據(jù)集合差距甚至還很大,那么是否意味著這條路也未必走的通呢?Lightweight convolution 和 Dynamic convolutions 給人們帶來一絲曙光,在論文「Pay Less Attention With LightweightI and Dynamic Convolutions」里提出了上面兩種方法,效果方面基本能夠和 Transformer 真身相當(dāng)。那它做了什么能夠達(dá)成這一點(diǎn)呢?也是寄居策略。就是用 Lightweight convolution 和 Dynamic convolutions 替換掉 Transformer 中的 Multi-head attention 模塊,其它構(gòu)件復(fù)用了 Transformer 的東西。和原生 CNN 的最主要區(qū)別是采用了 Depth-wise separable CNN 以及 softmax-normalization 等優(yōu)化的 CNN 模型。

而這又說明了什么呢?我覺得這說明了一點(diǎn):RNN 和 CNN 的大的出路在于寄生到 Transformer Block 里,這個原則沒問題,看起來也是他倆的唯一出路。但是,要想效果足夠好,在塞進(jìn)去的 RNN 和 CNN 上值得花些功夫,需要一些新型的 RNN 和 CNN 模型,以此來配合 Transformer 的其它構(gòu)件,共同發(fā)揮作用。如果走這條路,那么 RNN 和 CNN 翻身的一天也許還會到來。

盡管如此,我覺得 RNN 這條路仍然不好走,為什么呢,你要記得 RNN 并行計(jì)算能力差這個天生缺陷,即使把它塞到 Transformer Block 里,別說現(xiàn)在效果還不行,就算哪天真改出了一個效果好的,但是因?yàn)樗牟⑿心芰?,會整體拖慢 Transformer 的運(yùn)行效率。所以我綜合判斷 RNN 這條路將來也走不太通。

2019 來自未來的消息:總結(jié)

很多年前的小學(xué)語文課本上有句話,是這么說的:「張華考上了北京大學(xué);李萍進(jìn)了中等技術(shù)學(xué)校;我在百貨公司當(dāng)售貨員:我們都有光明的前途」。我們小的時候看到這句話,對此深信不疑,但是走到 2019 的今天,估計(jì)已經(jīng)沒有父母愿意跟他們的孩子說這句話了,畢竟欺騙孩子是個挺不好的事情。如果套用這句話來說明 NLP 的三大特征抽取器的前途的話,應(yīng)該是這樣的:「Transformer 考上了北京大學(xué);CNN 進(jìn)了中等技術(shù)學(xué)校,希望有一天能夠考研考進(jìn)北京大學(xué);RNN 在百貨公司當(dāng)售貨員:我們都有看似光明的前途。」

我們把上文的所有證據(jù)都收集起來進(jìn)行邏輯推理,可以模仿曹雪芹老師,分別給三位 NLP 界佳麗未來命運(yùn)寫一句判詞。當(dāng)然,再次聲明,這是我個人判斷。

進(jìn)退維谷的 RNN

為什么說 RNN 進(jìn)退維谷呢?有幾個原因。

首先,如果靠原生的 RNN(包括 LSTM,GRU 以及引入 Attention 以及堆疊層次等各種你能想到的改進(jìn)方法,可以一起上),目前很多實(shí)驗(yàn)已經(jīng)證明效果比起 Transformer 有較大差距,現(xiàn)在看基本沒有迎頭趕上的可能,所以原生的 RNN 從效果來講是處于明顯劣勢的。

其次,原生的 RNN 還有一個致命的問題:并行計(jì)算能力受限制太嚴(yán)重。想要大規(guī)模實(shí)用化應(yīng)用?目前看希望渺茫。我們前面說過,決定了 RNN 本身的根本特質(zhì)是:T 時刻隱層節(jié)點(diǎn)對前向輸入及中間計(jì)算結(jié)果的序列依賴,因?yàn)樗€形序列收集前面的信息,這是 RNN 之所以是 RNN 的最主要特點(diǎn)。正是它的這個根本特質(zhì),使得 RNN 的并行計(jì)算能力想要獲得根本解決基本陷入了一個兩難的境地:要么仍然保持 RNN 序列依賴的根本特性,這樣不論怎么改造,因?yàn)檫@個根本還在,所以 RNN 依舊是 RNN,所謂「我就是我,是不一樣的煙火」,但是如果這樣,那么其并行能力基本無法有力發(fā)揮,天花板很低;當(dāng)然除此外,還有另外一條路可走,就是把這種序列依賴關(guān)系打掉,如果這樣,那么這種打掉序列依賴關(guān)系的模型雖然看上去仍然保留了部分 RNN 整形前的樣貌,其實(shí)它骨子里已經(jīng)是另外一個人了,這已經(jīng)不是你記憶中的 RNN 了。就是說,對 RNN 來說,要么就認(rèn)命接受慢的事實(shí),躲進(jìn)小樓成一統(tǒng),管他春夏與秋冬,僅僅是學(xué)術(shù)界用來發(fā)表論文的一種載體,不考慮大規(guī)模實(shí)用化的問題。要么就徹底改頭換面變成另外一個人,如果真走到這一步,我想問的是:你被別人稱為高效版本的 RNN,你自己好意思答應(yīng)嗎?這就是 RNN 面臨的兩難境地。

再次,假設(shè)我們再樂觀一點(diǎn),把對 RNN 的改造方向定位為將 RNN 改造成類似 Transformer 的結(jié)構(gòu)這種思路算進(jìn)來:無非就是在 Transformer 的 Block 里,把某些部件,當(dāng)然最可行的是把 Multi-head self attention 部件換成 RNN。我們就算退一步講,且將這種大幅結(jié)構(gòu)改造的模型也算做是 RNN 模型吧。即使這樣,已經(jīng)把自己整形成長得很像 Transformer 了,RNN 依然面臨上述原生 RNN 所面臨的同樣兩個困境:一方面即使這種連變性削骨都上的大幅度整容版本的 RNN,效果雖然有明顯提升,但是仍然比不過 Transformer;另外,一旦引入 RNN 構(gòu)件,同樣會觸發(fā) Transformer 結(jié)構(gòu)的并行計(jì)算能力問題。所以,目前 Transformer 發(fā)動機(jī)看上去有點(diǎn)帶不動 RNN 這個隊(duì)友。

綜合以上幾個因素,我們可以看出,RNN 目前處于進(jìn)退兩難的地步,我覺得它被其它模型替換掉只是時間問題,而且好像留給它的時間不多了。當(dāng)然,這是我個人意見。我說這番話的時候,你是不是又聽到了水聲?

我看到網(wǎng)上很多人還在推 RNN 說:其實(shí)還是 RNN 好用。我覺得這其實(shí)是一種錯覺。之所以會產(chǎn)生這個錯覺,原因來自兩個方面:一方面是因?yàn)?RNN 發(fā)展歷史長,所以有大量經(jīng)過優(yōu)化的 RNN 框架可用,這對技術(shù)選型選擇困難癥患者來說是個福音,因?yàn)槟汶S手選一個知名度還可以的估計(jì)效果就不錯,包括對一些數(shù)據(jù)集的前人摸索出的超參數(shù)或者調(diào)參經(jīng)驗(yàn);而 Transformer 因?yàn)闅v史太短,所以各種高效的語言版本的優(yōu)秀框架還少,選擇不多。另外,其實(shí)我們對 Transformer 為何有效目前還不是特別清楚,包括相關(guān)的各種數(shù)據(jù)集合上的調(diào)參經(jīng)驗(yàn)公開的也少,所以會覺得調(diào)起來比較費(fèi)勁。隨著框架越來越多,以及經(jīng)驗(yàn)分享越來越充分,這個不再會是問題。這是一方面。另外一方面,很多人反饋對于小數(shù)據(jù)集 RNN 更好用,這固然跟 Transformer 的參數(shù)量比較多有關(guān)系,但是也不是沒有解決辦法,一種方式是把 Block 數(shù)目降低,減少參數(shù)量;第二種辦法是引入 Bert 兩階段訓(xùn)練模型,那么對于小數(shù)據(jù)集合來說會極大緩解效果問題。所以綜合這兩方面看,RNN 貌似在某些場合還有優(yōu)勢,但是這些所謂的優(yōu)勢是很脆弱的,這其實(shí)反映的是我們對 Transformer 整體經(jīng)驗(yàn)不足的事實(shí),隨著經(jīng)驗(yàn)越來越豐富,RNN 被 Transformer 取代基本不會有什么疑問。

一希尚存的 CNN

CNN 在 14 年左右在 NLP 界剛出道的時候,貌似跟 RNN 比起來表現(xiàn)并不算太好,算是落后生,但是用發(fā)展的眼光看,未來的處境反而看上去比 RNN 的狀態(tài)還要占優(yōu)一些。之所以造成這個奇怪現(xiàn)象,最主要的原因有兩個:一個是因?yàn)?CNN 的天生自帶的高并行計(jì)算能力,這對于延長它的生命力發(fā)揮了很大作用。這就決定了與 Transformer 比起來,它并不存在無法克服的困難,所以仍然有希望;第二,早期的 CNN 做不好 NLP 的一個很大原因是網(wǎng)絡(luò)深度做不起來,隨著不斷借鑒圖像處理的新型 CNN 模型的構(gòu)造經(jīng)驗(yàn),以及一些深度網(wǎng)絡(luò)的優(yōu)化 trick,CNN 在 NLP 領(lǐng)域里的深度逐步能做起來了。而既然深度能做起來,那么本來 CNN 做 NLP 天然的一個缺陷:無法有效捕獲長距離特征的問題,就得到了極大緩解。目前看可以靠堆深度或者結(jié)合 dilated CNN 來一定程度上解決這個問題,雖然還不夠好,但是仍然是那句話,希望還在。

但是,上面所說只是從道理分析角度來講 CNN 的希望所在,話分兩頭,我們說回來,目前也有很多實(shí)驗(yàn)證明了原生的 CNN 在很多方面仍然是比不過 Transformer 的,典型的還是長距離特征捕獲能力方面,原生的 CNN 版本模型仍然極為顯著地弱于 RNN 和 Transformer,而這點(diǎn)在 NLP 界算是比較嚴(yán)重的缺陷。好,你可以說:那我們把 CNN 引到 Transformer 結(jié)構(gòu)里,比如代替掉 Self attention,這樣和 Transformer 還有一戰(zhàn)吧?嗯,是的,目前看貌似只有這條路是能走的通的,引入 depth separate CNN 可以達(dá)到和 Transformer 接近的效果。但是,我想問的是:你確認(rèn)長成這樣的 CNN,就是把 CNN 塞到 Transformer Block 的肚子里,你確認(rèn)它的親朋好友還能認(rèn)出它嗎?

當(dāng)然,我之所以寫 CNN 一希尚存,是因?yàn)槲矣X得把 CNN 塞到 Transformer 肚子里這種方案,對于篇章級別的 NLP 任務(wù)來說,跟采取 self attention 作為發(fā)動機(jī)的 Transformer 方案對比起來,是具有極大優(yōu)勢的領(lǐng)域,也是適合它的戰(zhàn)場,后面我估計(jì)會出現(xiàn)一些這方面的論文。為什么這么講?原因下面會說。

穩(wěn)操勝券的 transformer

我們在分析未來 NLP 的三大特征抽取器哪個會勝出,我認(rèn)為,起碼根據(jù)目前的信息來看,其實(shí) Transformer 在很多戰(zhàn)場已經(jīng)贏了,在這些場地,它未來還會繼續(xù)贏。為什么呢?上面不是說了嗎,原生的 RNN 和 CNN,總有一些方面顯著弱于 Transformer(并行計(jì)算能力或者效果,或者兩者同時都比 Transformer 弱)。那么他們未來的希望,目前大家都寄托在把 RNN 和 CNN 寄生在 Transformer Block 里。RNN 不用說了,上面說過它的進(jìn)退維艱的現(xiàn)狀。單說 CNN 吧,還是上一部分的那句話,我想問的是:你確認(rèn)長成這樣的 CNN,就是把 CNN 塞到 Transformer Block 的肚子里,你確認(rèn)它的親朋還能認(rèn)出它嗎?

目前能夠和 Transformer 一戰(zhàn)的 CNN 模型,基本都已經(jīng)長成 Transformer 的模樣了。而這又說明了什么呢?難道這是 CNN 要能戰(zhàn)勝 Transformer 的跡象嗎?這是一道留給您的思考題和辯論題。當(dāng)然,我不參加辯論。

Transformer 作為一個新模型,并不是完美無缺的。它也有明顯的缺點(diǎn):首先,對于長輸入的任務(wù),典型的比如篇章級別的任務(wù)(例如文本摘要),因?yàn)槿蝿?wù)的輸入太長,Transformer 會有巨大的計(jì)算復(fù)雜度,導(dǎo)致速度會急劇變慢。所以估計(jì)短期內(nèi)這些領(lǐng)地還能是 RNN 或者長成 Transformer 模樣的 CNN 的天下(其實(shí)目前他倆這塊做得也不好),也是目前看兩者的希望所在,尤其是 CNN 模型,希望更大一些。但是是否 Transformer 針對長輸入就束手無策,沒有解決辦法呢?我覺得其實(shí)并不是,比如拍腦袋一想,就能想到一些方法,雖然看上去有點(diǎn)丑陋。比如可以把長輸入切斷分成 K 份,強(qiáng)制把長輸入切短,再套上 Transformer 作為特征抽取器,高層可以用 RNN 或者另外一層 Transformer 來接力,形成 Transformer 的層級結(jié)構(gòu),這樣可以把 n 平方的計(jì)算量極大減少。當(dāng)然,這個方案不優(yōu)雅,這個我承認(rèn)。但是我提示你一下:這個方向是個值得投入精力的好方向,你留意一下我這句話,也許有意想不到的收獲。(注:上面這段話是我之前早已寫好的,結(jié)果今天(1 月 12 日)看見媒體號在炒作:「Transforme-XL,速度提升 1800 倍」云云??戳诵侣劊艺襾?Transformer-XL 論文看了一下,發(fā)現(xiàn)它解決的就是輸入特別長的問題,方法呢其實(shí)大思路和上面說的內(nèi)容差不太多。說這么多的意思是:我并不想刪除上面內(nèi)容,為避免發(fā)出來后,那位「愛挑刺」同學(xué)說我拷貝別人思路沒引用。我決定還是不改上面的說法,因?yàn)檫@個點(diǎn)子實(shí)在是太容易想到的點(diǎn)子,我相信你也能想到。)除了這個缺點(diǎn),Transformer 整體結(jié)構(gòu)確實(shí)顯得復(fù)雜了一些,如何更深刻認(rèn)識它的作用機(jī)理,然后進(jìn)一步簡化它,這也是一個好的探索方向,這句話也請留意。還有,上面在做語義特征抽取能力比較時,結(jié)論是對于距離遠(yuǎn)與 13 的長距離特征,Transformer 性能弱于 RNN,說實(shí)話,這點(diǎn)是比較出乎我意料的,因?yàn)?Transformer 通過 Self attention 使得遠(yuǎn)距離特征直接發(fā)生關(guān)系,按理說距離不應(yīng)該成為它的問題,但是效果竟然不如 RNN,這背后的原因是什么呢?這也是很有價(jià)值的一個探索點(diǎn)。

我預(yù)感到我可能又講多了,能看到最后不容易,上面幾段話算是送給有耐心的同學(xué)的禮物,其它不多講了,就此別過,請忽略你聽到的嘩嘩的水聲。

(完)

點(diǎn)擊查看本文上篇內(nèi)容

雷鋒網(wǎng) AI 科技評論經(jīng)作者許可轉(zhuǎn)載。

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

放棄幻想,全面擁抱 Transformer:自然語言處理三大特征抽取器(CNN/RNN/TF)比較(下篇)

分享:
相關(guān)文章
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說