從QANet看自然語言處理如何"炫技"

這篇文章講講谷歌大腦團隊和 CMU 聯(lián)合推出的 QANet模型贩绕,QAnet是SQUAD排行榜2018年3月份排名第一的模型。既然有Bert赠法,為什么還要講QAnet麦轰?因為QAnet融合了2017年~2018年NLP領(lǐng)域一些重要的突破(各種炫酷技巧),通過學(xué)習(xí)它,你可以對NLP近兩年的發(fā)展有較為全面的了解款侵。QAnet鏈接

? ? ? ? 這篇文章從以下幾部分講:

? ? ? ? 第一部分:QANet模型整體網(wǎng)絡(luò)結(jié)構(gòu)介紹

? ? ? ? 第二部分: 分別介紹各個炫酷的技術(shù)點的原理

? ? ? ? 第三部分: 總結(jié)(與Bert對比)

? QANet融合的NLP和深度學(xué)習(xí)領(lǐng)域近兩年內(nèi)主要成果包括:

? ? (1)Fackbook 2017.5? 提出CNN seq2seq,替代LSTM 末荐,position encoding。

? ? (2)Google 2017.6 提出《Attention is all you need》 muti-head attention新锈。

? ? (3)Depthwise Separable Conv 深度可分離卷積? ? ? ?

? ? (4)Highway network 高速神經(jīng)網(wǎng)絡(luò)? ?

? ? ? ? .........

一甲脏、QANet模型網(wǎng)絡(luò)結(jié)構(gòu)介紹

QAnet整體網(wǎng)絡(luò)結(jié)構(gòu)

(1)輸入的數(shù)據(jù)有Context和Question兩部分組成。

(2)通過Embedding層轉(zhuǎn)化為Embedding向量妹笆,分為word embedding和char embedding块请。Highway network包含在embedding層中。

(3)通過Encoder Block層拳缠,Encoder Block是QANet重要組成部分,如右圖所示脊凰。Encoder Block層分別通過四個部分抖棘,Position Encoding茂腥、 Conv卷積層狸涌、Self attention和Feedword層。每個部分開頭做layernorm處理最岗,結(jié)尾做殘差連接帕胆。

(4)Context和Question的encoder向量,通過Context Query Attention計算相關(guān)性般渡。

(5)接著通過三層Encoder Block層懒豹,第一層和第二層輸出連接后,通過一層全鏈接層作為起始位置的概率驯用。

(6)第一層和第三層輸出連接后脸秽,通過一層全鏈接層作為起始位置的概率。

二蝴乔、 梳理各個炫酷的技術(shù)點

1.技能點一:Encoder Block層里的卷積

? ? ? 2017年Facebook發(fā)表了NLP領(lǐng)域重要論文《Convolutional Sequence to Sequence Learning》记餐,提到它們用卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)seq2seq,實現(xiàn)機器翻譯薇正,效果上達(dá)到LSTM網(wǎng)絡(luò)的水平片酝,效率明顯優(yōu)于LSTM。

? ? ? 這塊有很多文章可以參考挖腰,我就不細(xì)講了雕沿。

2.技能點二:Depthwise Separable Conv

? ? ? 值得注意的是,QANet用的不是簡單的CNN猴仑,而是采用Depthwise Separable Conv(深度可分離卷積)审轮。

? ? ? 這個卷積的的大致意思是對每一個深度圖分別進(jìn)行卷積再融合,步驟是先 Depthwise Conv 再 Pointwise Conv,大大減少了參數(shù)量疾渣。目的是加速整個卷積計算過程的速度贤姆。Depthwise Separable Conv來源于Inception和Xception。

? ? ? ? Inception 最初提出的版本稳衬,其核心思想就是使用多尺寸卷積核去觀察輸入數(shù)據(jù)霞捡。也就是把一個尺寸較大的卷積核替換為多個小的卷積核串聯(lián)或者并聯(lián),以降低計算量薄疚。

Inception

? ? ? ? ? 基于Inception發(fā)展而來的 Xception 碧信,作者稱其為 Extreme Inception。首先探討的是Inception 的 多尺寸卷積核 和 卷積核替換街夭,然后到 Bottleneck砰碴,最后到 Xception 的 Depthwise Separable Conv 。從Inception 到Xception大大減少參數(shù)量板丽,從而加快訓(xùn)練速度呈枉。N=1024,Dk=3,參數(shù)降為0.112埃碱。

Depthwise Separable Conv

3.技能點三:Self attention

? ? ? ? Self attention 來源于Google 2017年發(fā)表的一篇重要論文《Attention is all you need》提出的Multi-head attention猖辫。如果你關(guān)注自然語言處理領(lǐng)域,估計對這個很熟悉了砚殿。多頭”(Multi-Head)啃憎,就是只多做幾次同樣的事情(參數(shù)不共享),然后把結(jié)果拼接似炎。 比如Multi-Head Attention就是Attention做多次然后拼接辛萍,這跟CNN中的多個卷積核的思想是一致的。Self attention即兩個輸入是一樣的羡藐,自己和自己做attention計算贩毕。

multihead attention原理圖

4.技能點四:Position Encoding

? ? ? 這里的Position Encoding方式可參考Facebook的《Convolutional Sequence to Sequence Learning》,用法是一致的仆嗦。計算公式如下:

position encoding計算公式

? ? ? 對于position encoding辉阶,多說一句,個人觀點欧啤,原理上是很有道理的睛藻,但是效果并不明顯,從論文可以看出邢隧,對模型的效果貢獻(xiàn)不大店印,屬于可有可無。也就是比較接近我的說法:”炫技”倒慧。

5.技能點五:Highway Network

? ? ? ? 如果你仔細(xì)看過QAnet詳細(xì)資料按摘,可以看到QAnet的Embedding層不是簡單的把word embedding和char embedding做了一層連接作為輸出包券,而是通過highway network再做輸出。

QAnet embedding層

Highway network本質(zhì)上與殘差網(wǎng)絡(luò)作用類似炫贤,降低信息在傳輸過程中的損失溅固。這是通過一種控制穿過神經(jīng)網(wǎng)絡(luò)的信息流的閘門機制所實現(xiàn)的。通過這種機制兰珍,神經(jīng)網(wǎng)絡(luò)可以提供通路侍郭,讓信息穿過后卻沒有損失。我們將這種通路稱為information highways掠河。

6.技能點六:Batch normalization

? ? ? Batch normalization每個batch里面的很接近的樣本亮元,都?xì)w一成0均值1方差。

? ? ? 為什么要歸一成0均值1方差呢唠摹?隨著在神經(jīng)網(wǎng)絡(luò)訓(xùn)練深度加深爆捞,其整體分布逐漸發(fā)生偏移或變動,導(dǎo)致后向傳播時神經(jīng)網(wǎng)絡(luò)梯度消失勾拉,深度網(wǎng)絡(luò)收斂越來越慢煮甥。Batch normalization把越來越偏的分布強行正態(tài)分布,梯度變大藕赞,減緩梯度消失問題成肘。因此,加Batch normalization是為了使深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練速度加快找默。

7.技能點七:LayerNorm

? ? ? Encoder層每個部分的輸入都用到了LayerNorm艇劫,實現(xiàn)近似獨立同分布吼驶。

? ? ? 為什么要獨立同分布惩激?隨著神經(jīng)網(wǎng)絡(luò)的加深,每一層的輸出到下一層的輸入蟹演,會出現(xiàn)分布偏差越來越大风钻。最后輸出的target層的分布和輸入的分布差距很大。而完全的白華操作代價高昂酒请,特別是我們還希望白化操作是可微的骡技,保證白化操作可以通過反向傳播來更新梯度。

三羞反、 個人總結(jié)

? ? ? 對比下Bert和QAnet布朦,Bert整體網(wǎng)絡(luò)結(jié)構(gòu)相對于QAnet更加簡單。QANet強調(diào)技巧昼窗,Bert強調(diào)算力是趴。從對比中,可以看出NLP發(fā)展的趨勢澄惊。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末唆途,一起剝皮案震驚了整個濱河市富雅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌肛搬,老刑警劉巖没佑,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異温赔,居然都是意外死亡蛤奢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進(jìn)店門陶贼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來远剩,“玉大人,你說我怎么就攤上這事骇窍」衔睿” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵腹纳,是天一觀的道長痢掠。 經(jīng)常有香客問我,道長嘲恍,這世上最難降的妖魔是什么足画? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮佃牛,結(jié)果婚禮上淹辞,老公的妹妹穿的比我還像新娘。我一直安慰自己俘侠,他們只是感情好象缀,可當(dāng)我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著爷速,像睡著了一般央星。 火紅的嫁衣襯著肌膚如雪惫东。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天颓遏,我揣著相機與錄音,去河邊找鬼滞时。 笑死,一個胖子當(dāng)著我的面吹牛漂洋,可吹牛的內(nèi)容都是我干的力喷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼演训,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拂募?” 一聲冷哼從身側(cè)響起窟她,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤震糖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后吊说,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颁井,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡雅宾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了贯吓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吐辙。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡昏苏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出威沫,到底是詐尸還是另有隱情贤惯,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布孵构,位于F島的核電站颈墅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏官还。R本人自食惡果不足惜毒坛,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一煎殷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧劣摇,春花似錦弓乙、人聲如沸唆貌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酪刀。三九已至骂倘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間诅需,已是汗流浹背荧库。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工分衫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人铐懊。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓科乎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親残邀。 傳聞我的和親對象是個殘疾皇子芥挣,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,647評論 2 354

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