自然語言處理N天-Transformer學(xué)習(xí)(讀書筆記)

新建 Microsoft PowerPoint 演示文稿 (2).jpg

這個算是在課程學(xué)習(xí)之外的探索撒蟀,不過希望能盡快用到項目實踐中虽风。在文章里會引用較多的博客咆瘟,文末會進(jìn)行reference嚼隘。
搜索Transformer機(jī)制,會發(fā)現(xiàn)高分結(jié)果基本上都源于一篇論文Jay Alammar的《The Illustrated Transformer》(圖解Transformer)袒餐,提到最多的Attention是Google的《Attention Is All You Need》飞蛹。

  • 對于Transformer的運(yùn)行機(jī)制了解即可须肆,所以會基于這篇論文來學(xué)習(xí)Transformer,結(jié)合《Sklearn+Tensorflow》中Attention注意力機(jī)制一章完成基本的概念學(xué)習(xí)桩皿;
  • 找一個基于Transformer的項目練手

3.Transformer的一些筆記

本節(jié)內(nèi)容學(xué)習(xí)自大佬張俊林的《放棄幻想,全面擁抱Transformer:自然語言處理三大特征抽取器(CNN/RNN/TF)比較》幢炸,當(dāng)時也是看到這篇文章才想看看Transformer
上一節(jié)對Transformer有了一個簡單的認(rèn)識泄隔,但是太耗腦細(xì)胞了,今天把這篇舊文拿出來復(fù)習(xí)一下宛徊,只是讀書筆記佛嬉。

開篇就是,在NLP領(lǐng)域CNN改改還能用闸天,RNN遲早要被放棄暖呕,Transformer將是未來的重點。然后就是一頓論證苞氮,知道大概意思就行了湾揽,RNN改造之后成為SRNN具備并行計算的能力,SRNN速度比GRU模型快5到15倍笼吟;CNN改造之后增加深度库物。
了解Transformer的三篇論文:

  • Jay Alammar可視化地介紹Transformer的博客文章The Illustrated Transformer ,非常容易理解整個機(jī)制贷帮,建議先從這篇看起戚揭,有中文譯本https://zhuanlan.zhihu.com/p/54356280
  • Calvo的博客:Dissecting BERT Part 1: The Encoder 撵枢,盡管說是解析Bert民晒,但是因為Bert的Encoder就是Transformer,所以其實它是在解析Transformer锄禽,里面舉的例子很好潜必;
  • 哈佛大學(xué)NLP研究組寫的“The Annotated Transformer. ”,代碼原理雙管齊下沟绪,講得也很清楚刮便。

進(jìn)一步介紹Transformer的機(jī)制,作者認(rèn)為Transformer核心并不僅僅是Self Attention绽慈,還有它自身的Block中的所有元素Multi-head self attention恨旱,Skip connection,LayerNorm坝疼,F(xiàn)eedForward搜贤。

針對NLP任務(wù)的特點來說下Transformer的對應(yīng)解決方案

  • 如何解決自然語言不定長問題?
    使用Padding填充钝凶,和之前Seq2seq類似仪芒,找到最長的那句話唁影,其他句子用空來填補(bǔ)到那么長。
  • 如何保留輸入句子中詞與詞之間的位置相對信息掂名?
    Transformer不像RNN或CNN据沈,必須明確的在輸入端將Positon信息編碼,Transformer是用位置函數(shù)來進(jìn)行位置編碼的饺蔑,而Bert等模型則給每個單詞一個Position embedding锌介,將單詞embedding和單詞對應(yīng)的position embedding加起來形成單詞的輸入embedding。
  • 如何解決NLP句子中長距離依賴特征的問題猾警?
    Self attention天然就能解決這個問題孔祸,因為在集成信息的時候,當(dāng)前單詞和句子中任意單詞都發(fā)生了聯(lián)系发皿,所以一步到位就把這個事情做掉了崔慧。不像RNN需要通過隱層節(jié)點序列往后傳,也不像CNN需要通過增加網(wǎng)絡(luò)深度來捕獲遠(yuǎn)距離特征穴墅,Transformer在這點上明顯方案是相對簡單直觀的惶室。

Transformer的兩個版本

Transformer base和Transformer Big。兩者結(jié)構(gòu)其實是一樣的封救。主要區(qū)別是包含的Transformer Block數(shù)量不同拇涤,Transformer base包含12個Block疊加,而Transformer Big則擴(kuò)張一倍誉结,包含24個Block鹅士。
無疑Transformer Big在網(wǎng)絡(luò)深度,參數(shù)量以及計算量相對Transformer base翻倍惩坑,所以是相對重的一個模型掉盅,但是效果也最好。

CNN/RNN/Transformer作為特征抽取器的比較

在句法特征抽取方面以舒,文獻(xiàn)較少趾痘,之前的對比是CNN要優(yōu)于RNN。
作者從四個方面進(jìn)行了對比

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


    image.png
  • 長距離特征捕獲能力;
    在長距離特征捕獲能力方面兰绣,目前在特定的長距離特征捕獲能力測試任務(wù)中(主語-謂語一致性檢測世分,比如we……..are…),實驗支持如下結(jié)論:原生CNN特征抽取器在這方面極為顯著地弱于RNN和Transformer缀辩,Transformer微弱優(yōu)于RNN模型(尤其在主語謂語距離小于13時)臭埋,能力由強(qiáng)到弱排序為Transformer>RNN>>CNN; 但在比較遠(yuǎn)的距離上(主語謂語距離大于13)踪央,RNN微弱優(yōu)于Transformer,所以綜合看瓢阴,可以認(rèn)為Transformer和RNN在這方面能力差不太多畅蹂,而CNN則顯著弱于前兩者。
    CNN弱于RNN的原因就是之前所述荣恐,卷積神經(jīng)網(wǎng)絡(luò)是依靠堆積深度來實現(xiàn)覆蓋更長的輸入長度魁莉,所以在對長距離的處理上會弱于RNN。
    對于Transformer來說募胃,Multi-head attention的head數(shù)量嚴(yán)重影響NLP任務(wù)中Long-range特征捕獲能力:結(jié)論是head越多越有利于捕獲long-range特征。

    image.png

  • 任務(wù)綜合特征抽取能力畦浓;
    使用機(jī)器翻譯MT作為綜合任務(wù)痹束,BLEU作為評判指標(biāo)。Transformer綜合能力要明顯強(qiáng)于RNN和CNN(你要知道讶请,技術(shù)發(fā)展到現(xiàn)在階段祷嘶,BLEU絕對值提升1個點是很難的事情),而RNN和CNN看上去表現(xiàn)基本相當(dāng)夺溢,貌似CNN表現(xiàn)略好一些论巍。

    image.png

  • 并行計算能力及運(yùn)行效率
    RNN在并行計算方面天生缺陷,Transformer優(yōu)于CNN风响。

所以嘉汰,綜上可以看到,Transformer在NLP領(lǐng)域是優(yōu)于RNN和CNN的状勤,而RNN和CNN由于自身結(jié)構(gòu)特點鞋怀,在不同的領(lǐng)域具有各自的優(yōu)勢。

向Transformer靠攏

就是對CNN和RNN進(jìn)行各種魔改持搜,Transformer Block其實不是只有一個構(gòu)件密似,而是由multi-head attention/skip connection/Layer Norm/Feed forward network等幾個構(gòu)件組成的一個小系統(tǒng),如果把RNN或者CNN塞到Transformer Block里會發(fā)生什么事情呢葫盼?這就是寄居蟹策略的基本思路残腌。

image.png

image.png

將CNN和RNN替換掉Block中的Multi-head attention。有論文這么搞了之后贫导,性能也有不同幅度的提升抛猫。但是是和Transformer性能還是存在一些差距。


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脱盲,一起剝皮案震驚了整個濱河市邑滨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钱反,老刑警劉巖掖看,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匣距,死亡現(xiàn)場離奇詭異,居然都是意外死亡哎壳,警方通過查閱死者的電腦和手機(jī)毅待,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來归榕,“玉大人尸红,你說我怎么就攤上這事∩残梗” “怎么了外里?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長特石。 經(jīng)常有香客問我盅蝗,道長,這世上最難降的妖魔是什么姆蘸? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任墩莫,我火速辦了婚禮,結(jié)果婚禮上逞敷,老公的妹妹穿的比我還像新娘狂秦。我一直安慰自己,他們只是感情好推捐,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布裂问。 她就那樣靜靜地躺著,像睡著了一般牛柒。 火紅的嫁衣襯著肌膚如雪愕秫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天焰络,我揣著相機(jī)與錄音戴甩,去河邊找鬼。 笑死闪彼,一個胖子當(dāng)著我的面吹牛甜孤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播畏腕,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缴川,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了描馅?” 一聲冷哼從身側(cè)響起把夸,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铭污,沒想到半個月后恋日,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膀篮,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年岂膳,在試婚紗的時候發(fā)現(xiàn)自己被綠了誓竿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡谈截,死狀恐怖筷屡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情簸喂,我是刑警寧澤毙死,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站喻鳄,受9級特大地震影響规哲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜诽表,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望隅肥。 院中可真熱鬧竿奏,春花似錦、人聲如沸腥放。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秃症。三九已至候址,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間种柑,已是汗流浹背岗仑。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留聚请,地道東北人荠雕。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像驶赏,于是被迫代替她去往敵國和親炸卑。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容