詳解從 Seq2Seq模型芭逝、RNN結(jié)構(gòu)、Encoder-Decoder模型 到 Attention模型

一渊胸、Seq2Seq 模型

1. 簡介

Sequence-to-sequence (seq2seq) 模型旬盯,顧名思義,其輸入是一個(gè)序列蹬刷,輸出也是一個(gè)序列瓢捉,例如輸入是英文句子,輸出則是翻譯的中文办成。seq2seq 可以用在很多方面:機(jī)器翻譯泡态、QA 系統(tǒng)、文檔摘要生成迂卢、Image Captioning (圖片描述生成器)某弦。

2. 基本框架

第一種結(jié)構(gòu)

[參考1]論文中提出的 seq2seq 模型可簡單理解為由三部分組成:Encoder、Decoder 和連接兩者的 State Vector (中間狀態(tài)向量) C 而克。

RNN encoder-decoder

上圖中 EncoderDecoder 可以是一個(gè) RNN 靶壮,但通常是其變種 LSTM 或者 GRUEncoderDecoder 具體介紹請(qǐng)見第三部分员萍。

第二種結(jié)構(gòu)

該結(jié)構(gòu)是最簡單的結(jié)構(gòu)腾降,和第一種結(jié)構(gòu)相似,只是 Decoder 的第一個(gè)時(shí)刻只用到了 Encoder 最后輸出的中間狀態(tài)變量

RNN encoder-decoder

應(yīng)用:

……

注:確保你對(duì)所有模型都有所了解后再閱讀應(yīng)用后面的參考鏈接。

二墩划、RNN 結(jié)構(gòu)

1. 為什么在這里提及 RNNRNN 變種涕刚?

接下來要介紹的 Encoder-Decoder 模型中,EncoderDecoder 兩部分的輸入輸出可以是文字走诞、圖像副女、語音等等,所以 EncoderDecoder 一般采用 CNN 蚣旱、RNN 碑幅、LSTMGRU 等等塞绿。這里沟涨,我們只介紹經(jīng)典 RNN 的結(jié)構(gòu)。

如果對(duì) LSTM 感興趣的話异吻,請(qǐng)參考 -原創(chuàng)翻譯- 詳解 LSTM(Understanding LSTM Networks)

2. 圖解 RNN 結(jié)構(gòu)

RNN 大都用來處理像一串句子裹赴、一段語音這種的序列化數(shù)據(jù)。展開的 RNN 結(jié)構(gòu)圖如下:

roolled RNN

由圖可見诀浪,其當(dāng)前時(shí)間 t 的輸出依賴兩部分:前一時(shí)刻的隱層 h_{t-1} 和當(dāng)前的輸入 x_{t} 棋返。

下面主要介紹經(jīng)典的三種 RNN 結(jié)構(gòu):

(1) n VS 1

nvs1

注:圓圈代表給定的輸入,箭頭代表運(yùn)算雷猪,矩形代表隱層睛竣,也就是箭頭運(yùn)算后的結(jié)果。其中參數(shù) W求摇、U射沟、V 都是一樣的。在自然語言處理問題与境。x_{1} 可以看做是第一個(gè)單詞验夯,x_{2} 可以看做是第二個(gè)單詞…

這種結(jié)構(gòu)可應(yīng)用于情感分析、文本分類等等摔刁。

(2) 1 VS n

1vsn1

下圖是把輸入當(dāng)作每個(gè)時(shí)刻的輸入:

1vsn2

這種結(jié)構(gòu)可應(yīng)用于應(yīng)用于 Image Caption 挥转,輸入是圖像的特征矩陣,輸出是一段對(duì)圖像的描述。

(3) n VS n

nvsn

這種結(jié)構(gòu)可應(yīng)用于機(jī)器翻譯等绑谣。如果感興趣准潭,可以參考下面的 文章。作者使用 RNN 實(shí)現(xiàn)了根據(jù)一個(gè)字母推測下一個(gè)字母的概率域仇。

參考3:-原創(chuàng)翻譯- RNNs的“神奇功效”(The Unreasonable Effectiveness of Recurrent Neural Networks)

(4) n VS m

在機(jī)器翻譯中,源語言和目標(biāo)語言的句子序列都是不等長的寺擂,而原始的 n VS n 結(jié)構(gòu)都是要求序列等長的暇务。為此,我們有了 n VS m 結(jié)構(gòu)怔软,這種結(jié)構(gòu)又被稱為 Encoder-Decoder模型 垦细。具體請(qǐng)見下一部分。

三挡逼、Encoder-Decoder 模型

1. 簡介

在第二節(jié)的第四部分括改,我們提出了 RNNn VS m 結(jié)構(gòu):Encoder-Decoder 模型,Encoder-Decoder 模型是深度學(xué)習(xí)中常見的一種模型家坎。在本文中嘱能,我們只簡單介紹其在文本-文本的應(yīng)用,比如將英語翻譯成漢語虱疏,所以該模型也可以稱為 Seq2Seq 模型 惹骂。下圖為 Encoder-Decoder 模型的抽象圖:

Encoder-Decoder框架

2. 分析

1) Encoder

給定句子對(duì) <X,Y> ,我們的目標(biāo)是給定輸入句子 X 做瞪,通過Encoder-Decoder 模型來翻譯成目標(biāo)句子 Y 对粪。而 XY 分別由各自的單詞序列構(gòu)成:

x && y

首先,Encoder 對(duì)輸入語句 X 進(jìn)行編碼装蓬,經(jīng)過函數(shù)變換為中間語義向量 C (可以通過多種方式得到) :

e&d1

2) Decoder

得到中間語義向量 C 后著拭,使用 Decoder 進(jìn)行解碼。Decoder根據(jù)中間狀態(tài)向量 C 和已經(jīng)生成的歷史信息 y1牍帚,y2…yi-1 去生成 t 時(shí)刻的單詞 yi

<center style="color: rgb(85, 85, 85); font-family: Lato, "PingFang SC", "Microsoft YaHei", sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;">y_{i} = g (C, y_{1}, y_{2}, y_{i-1})</center>

如果直接將 c 輸入到 Decoder 中儡遮,則是 Seq2Seq 模型的第二種模型:

e&d stru1

如果將 c 當(dāng)作 Decoder 的每一時(shí)刻輸入,則是 Seq2Seq 模型的第一種模型:

e&d stru2
  • 中英翻譯中履羞, <X,Y> 是不同語言的句子峦萎,X 是英文句子,Y 是中文句子忆首。

  • QA 系統(tǒng)中爱榔,X 是問題,Y 是回答糙及。

  • ……

    Encoder-Decoder 模型是使用非常廣泛的深度學(xué)習(xí)模型框架详幽,與其說 Encoder-Decoder 是一種模型,不如稱其為一種通用框架。因?yàn)?EncoderDecoder 具體使用什么模型是根據(jù)任務(wù)而定義的唇聘。在自然語言處理研究中通常使用 LSTM 或者是 GRU 版姑。

四、Attention 模型

1. Encoder-Decoder 模型的局限性

(1) 從第三節(jié)的第一部分的 Encoder-Decoder 模型的抽象圖中可以看出 EncoderDecoder 的唯一聯(lián)系只有語義編碼 迟郎,即將整個(gè)輸入序列的信息編碼成一個(gè)固定大小的狀態(tài)向量再解碼剥险,相當(dāng)于將信息”有損壓縮”。很明顯這樣做有兩個(gè)缺點(diǎn):

  • 中間語義向量無法完全表達(dá)整個(gè)輸入序列的信息宪肖。
  • 隨著輸入信息長度的增加表制,由于向量長度固定,先前編碼好的信息會(huì)被后來的信息覆蓋控乾,丟失很多信息么介。

(2)大家看第三節(jié)的第二部分的第二個(gè) Decoder 過程,其輸出的產(chǎn)生如下:

y_{1}=g(C, h’_{0})

y_{2}=g(C, y_{1})

y_{3}=g(C, y_{1}, y_{2})

明顯可以發(fā)現(xiàn)在生成 y_{1}蜕衡、y_{2}壤短、y_{3} 時(shí),語義編碼 對(duì)它們所產(chǎn)生的貢獻(xiàn)都是一樣的慨仿。例如翻譯:Cat chase mouse 久脯,Encoder-Decoder 模型逐字生成:“貓”、“捉”镶骗、“老鼠”桶现。在翻譯 mouse 單詞時(shí),每一個(gè)英語單詞對(duì)“老鼠”的貢獻(xiàn)都是相同的鼎姊。如果引入了Attention 模型骡和,那么 mouse 對(duì)于它的影響應(yīng)該是最大的。

2. 圖解 Attention

為了解決上面兩個(gè)問題相寇,于是引入了 Attention 模型慰于。Attention 模型的特點(diǎn)是 Decoder 不再將整個(gè)輸入序列編碼為固定長度的中間語義向量 ,而是根據(jù)當(dāng)前生成的新單詞計(jì)算新的 C_{i} 唤衫,使得每個(gè)時(shí)刻輸入不同的 婆赠,這樣就解決了單詞信息丟失的問題。引入了 AttentionEncoder-Decoder 模型如下圖:

am

對(duì)于剛才提到的那個(gè)“貓捉老鼠”的翻譯過程變成了如下:

y_{1}=g(C_{1}, h’_{0})

y_{2}=g(C_{2}, y_{1})

y_{3}=g(C_{3}, y_{1}, y_{2})

整個(gè)翻譯流程如下:

h1

圖中輸入是 Cat chase mouse 佳励,Encoder 中隱層 h1休里、h2、h3 可看作經(jīng)過計(jì)算 Cat赃承、chase妙黍、mouse 這些詞的信息。

h2

使用 a_{ij} 表示 Encoder 中第 j 階段的 h_{j} 和解碼時(shí)第 i 階段的相關(guān)性瞧剖,計(jì)算出解碼需要的中間語義向量 C_{i} 拭嫁。C_{1} 和 “貓” 關(guān)系最近可免,相對(duì)應(yīng)的 a_{11} 要比 a_{12}a_{13} 大做粤;而 C_{2} 和 “捉” 關(guān)系最近浇借,相對(duì)應(yīng)的 a_{22} 要比 a_{21}a_{23} 大怕品;同理 C_{3} 和 “老鼠” 關(guān)系最近妇垢,相對(duì)應(yīng)的 a_{33} 要比 a_{31}a_{32} 大肉康。

h3

那么參數(shù) a_{ij} 是如何得到呢修己?

Encoder 中第 j 個(gè)隱層單元 h_{j}Decoderi-1 個(gè)隱層單元 h’*{i-1} 經(jīng)過運(yùn)算得到 a*{ij}

例如 a_{1j} 的計(jì)算過程:

a1j

a_{2j} 的計(jì)算過程:

a2j

參考 :引入Attention 并基于 RNNEncoder-Decoder 模型公式推導(dǎo)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末迎罗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子片仿,更是在濱河造成了極大的恐慌纹安,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件砂豌,死亡現(xiàn)場離奇詭異厢岂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)阳距,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門塔粒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人筐摘,你說我怎么就攤上這事卒茬。” “怎么了咖熟?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵圃酵,是天一觀的道長。 經(jīng)常有香客問我馍管,道長郭赐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任确沸,我火速辦了婚禮捌锭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘罗捎。我一直安慰自己观谦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布宛逗。 她就那樣靜靜地躺著坎匿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上替蔬,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天告私,我揣著相機(jī)與錄音,去河邊找鬼承桥。 笑死驻粟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的凶异。 我是一名探鬼主播蜀撑,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼剩彬!你這毒婦竟也來了酷麦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤喉恋,失蹤者是張志新(化名)和其女友劉穎沃饶,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體轻黑,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡糊肤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了氓鄙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馆揉。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖抖拦,靈堂內(nèi)的尸體忽然破棺而出升酣,到底是詐尸還是另有隱情,我是刑警寧澤态罪,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布拗踢,位于F島的核電站,受9級(jí)特大地震影響向臀,放射性物質(zhì)發(fā)生泄漏巢墅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一券膀、第九天 我趴在偏房一處隱蔽的房頂上張望君纫。 院中可真熱鬧,春花似錦芹彬、人聲如沸蓄髓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽会喝。三九已至陡叠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肢执,已是汗流浹背枉阵。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留预茄,地道東北人兴溜。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像耻陕,于是被迫代替她去往敵國和親拙徽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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