Seq2Seq模型概述

seq2seq序列到序列模型

本文從RNN角度出發(fā)伤哺,主要是講述seq2seq模型的原理燕侠。

Seq2Seq模型簡介

? ? ??Seq2Seq模型是輸出的長度不確定時(shí)采用的模型,這種情況一般是在機(jī)器翻譯的任務(wù)中出現(xiàn)立莉,將一句中文翻譯成英文绢彤,那么這句英文的長度有可能會(huì)比中文短,也有可能會(huì)比中文長蜓耻,所以輸出的長度就不確定了茫舶。如下圖所,輸入的中文長度為4刹淌,輸出的英文長度為2饶氏。


seq2seq模型

? ? ? ?在網(wǎng)絡(luò)結(jié)構(gòu)中,輸入一個(gè)中文序列有勾,然后輸出它對(duì)應(yīng)的中文翻譯疹启,輸出的部分的結(jié)果預(yù)測(cè)后面,根據(jù)上面的例子蔼卡,也就是先輸出“machine”喊崖,將"machine"作為下一次的輸入,接著輸出"learning",這樣就能輸出任意長的序列雇逞。
? ? ? ?機(jī)器翻譯荤懂、人機(jī)對(duì)話、聊天機(jī)器人等等對(duì)話生成場(chǎng)景人物塘砸,這些都是應(yīng)用在當(dāng)今社會(huì)都或多或少的運(yùn)用到了我們這里所說的Seq2Seq节仿。
? ? ? ?舉個(gè)簡單的例子,當(dāng)我們使用機(jī)器翻譯時(shí):輸入(Hello) --->輸出(你好)掉蔬。再比如在人機(jī)對(duì)話中廊宪,我們問機(jī)器:“你是誰?”女轿,機(jī)器會(huì)返回答案“我是某某某”箭启。如下圖所示為一個(gè)簡單的郵件對(duì)話的場(chǎng)景,發(fā)送方問:“你明天是否有空”谈喳;接收方回答:“有空,怎么了戈泼?”婿禽。

郵箱對(duì)話:輸入:你明天有空赏僧?回復(fù):有,怎么啦扭倾?

Seq2Seq結(jié)構(gòu)

? ? ? ?seq2seq屬于encoder-decoder結(jié)構(gòu)的一種淀零,這里看看常見的encoder-decoder結(jié)構(gòu),基本思想就是利用兩個(gè)RNN膛壹,一個(gè)RNN作為encoder驾中,另一個(gè)RNN作為decoder。encoder負(fù)責(zé)將輸入序列壓縮成指定長度的向量模聋,這個(gè)向量就可以看成是這個(gè)序列的語義肩民,這個(gè)過程稱為編碼,如下圖链方,獲取語義向量最簡單的方式就是直接將最后一個(gè)輸入的隱狀態(tài)作為語義向量C持痰。也可以對(duì)最后一個(gè)隱含狀態(tài)做一個(gè)變換得到語義向量,還可以將輸入序列的所有隱含狀態(tài)做一個(gè)變換得到語義變量祟蚀。

RNN網(wǎng)絡(luò)

? ? ? ?而decoder則負(fù)責(zé)根據(jù)語義向量生成指定的序列工窍,這個(gè)過程也稱為解碼,如下圖前酿,最簡單的方式是將encoder得到的語義變量作為初始狀態(tài)輸入到decoder的RNN中患雏,得到輸出序列“瘴可以看到上一時(shí)刻的輸出會(huì)作為當(dāng)前時(shí)刻的輸入淹仑,而且其中語義向量C只作為初始狀態(tài)參與運(yùn)算,后面的運(yùn)算都與語義向量C無關(guān)言津。
語義無關(guān)seq2seq:語義向量只作初始化參數(shù)參與運(yùn)算

? ? ? ?decoder處理方式還有另外一種攻人,就是語義向量C參與了序列所有時(shí)刻的運(yùn)算,如下圖悬槽,上一時(shí)刻的輸出仍然作為當(dāng)前時(shí)刻的輸入怀吻,但語義向量C會(huì)參與所有時(shí)刻的運(yùn)算。


語義相關(guān)seq2seq:語義向量參與解碼的每一個(gè)過程

如何訓(xùn)練Seq2Seq模型

? ? ? ?RNN是可以學(xué)習(xí)概率分布初婆,然后進(jìn)行預(yù)測(cè)蓬坡,比如我們輸入t時(shí)刻的數(shù)據(jù)后,預(yù)測(cè)t+1時(shí)刻的數(shù)據(jù)磅叛,比較常見的是字符預(yù)測(cè)例子或者時(shí)間序列預(yù)測(cè)屑咳。為了得到概率分布,一般會(huì)在RNN的輸出層使用softmax激活函數(shù)弊琴,就可以得到每個(gè)分類的概率兆龙。(在對(duì)話生成任務(wù)中,即得到詞典中每個(gè)單詞出現(xiàn)的概率)
? ? ? ?Softmax 在機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中有著非常廣泛的應(yīng)用敲董。尤其在處理多分類(C分類數(shù) > 2)問題紫皇,分類器最后的輸出單元需要Softmax 函數(shù)進(jìn)行數(shù)值處理慰安。關(guān)于Softmax 函數(shù)的定義如下所示:

S_i=\frac {e^{vi}}{\Sigma^C_i e^{vi}}

? ? ? ?其中,V_i是分類器前級(jí)輸出單元的輸出聪铺。i 表示類別索引化焕,總的類別個(gè)數(shù)為C,表示的是當(dāng)前元素的指數(shù)與所有元素指數(shù)和的比值。Softmax 將多分類的輸出數(shù)值轉(zhuǎn)化為相對(duì)概率铃剔,更容易理解和比較撒桨。我們來看下面這個(gè)例子。
? ? ? ?一個(gè)多分類問題键兜,C = 4凤类。線性分類器模型最后輸出層包含了四個(gè)輸出值,分別是:
V= \left [ \begin{matrix} -3 \\ 2 \\ -1 \\ 0 \end {matrix} \right ]
? ? ? ?經(jīng)過Softmax處理后蝶押,數(shù)值轉(zhuǎn)化為相對(duì)概率:(和為1踱蠢,即被稱為歸一化的過程)
V= \left [ \begin {matrix} 0.0057 \\ 0.8390 \\ 0.0418 \\ 0.1135 \end {matrix} \right ]
? ? ? ?很明顯怔接,Softmax 的輸出表征了不同類別之間的相對(duì)概率教届。我們可以清晰地看出,S1 = 0.8390油狂,對(duì)應(yīng)的概率最大赶盔,則更清晰地可以判斷預(yù)測(cè)為第1類的可能性更大企锌。Softmax 將連續(xù)數(shù)值轉(zhuǎn)化成相對(duì)概率,更有利于我們理解于未。 (在對(duì)話生成任務(wù)中撕攒,則輸出字典第1個(gè)序號(hào)代表的單詞)

RNN模型

? ? ? ?對(duì)于RNN,對(duì)于某個(gè)序列烘浦,對(duì)于時(shí)刻t抖坪,它的詞向量輸出概率為P(x_t | x_1,x_2,...,x_{t-1}),則softmax層每個(gè)神經(jīng)元的計(jì)算如下:
P(x_t ,t| x_1,...,x_{t-1}) = \frac {exp(w_th_t)}{\Sigma^K_{i=1}exp(w_ih_t)}
? ? ? ?其中h_t是當(dāng)前第t個(gè)位置的隱含狀態(tài)闷叉,它與上一時(shí)刻的狀態(tài)及當(dāng)前輸入有關(guān)擦俐,即h_t=f(h_{t-1},x_t)t表示文本詞典中的第t個(gè)詞對(duì)應(yīng)的下標(biāo)握侧。x_t表示詞典中第t個(gè)詞蚯瞧;w_t是詞權(quán)重參數(shù)。
? ? ? ?那么整個(gè)序列的生成概率就為
p(x) = \Pi^T_{t=1} p(x_t|x_1,...,x_{t-1})
? ? ? ?其表示從第一個(gè)詞到第T個(gè)詞一次生成品擎,產(chǎn)生這個(gè)詞序列的概率埋合。

Seq2Seq模型

? ? ? ?而對(duì)于encoder-decoder模型,設(shè)有輸入序列x_1,x_2,...,x_T萄传,輸出序列y_1,y_2,...,y_T甚颂,輸入序列和輸出序列的長度可能不同。那么其實(shí)就需要根據(jù)輸入序列去得到輸出序列可能輸出的詞概率,于是有下面的條件概率振诬,x_1,x_2,...,x_T發(fā)生的情況下瓣铣,y_1,y_2,...,y_T發(fā)生的概率等于p(y_t|v,y_1,y_2,...,y_{t-1})連乘,如下公式所示贷揽。其中,v表示x_1,x_2,...,x_T對(duì)應(yīng)的隱含狀態(tài)向量(輸入中每個(gè)詞的詞向量),它其實(shí)可以等同表示輸入序列(模型依次生成y_1,y_2,...,y_T的概率)梦碗。
p(y_1,y_2,...,y_T|x_1,x_2,...,x_T) = \Pi^T_{t=1}p(y_t|x_1,...,x_{t-1},y_1,...,y_{t-1})
= \Pi^T_{t=1}p(y_t|v,y_1,...,y_t-1)
? ? ? ?此時(shí)禽绪,h_t = f(h_{t-1},y_{t-1},v),decode編碼器中隱含狀態(tài)與上一時(shí)刻狀態(tài)洪规、上一時(shí)刻輸出和狀態(tài)v都有關(guān)(這里不同于RNN印屁,RNN是與當(dāng)前時(shí)刻的輸入相關(guān),而decode編碼器是將上一時(shí)刻的輸出輸入到RNN中斩例。于是decoder的某一時(shí)刻的概率分布可用下式表示雄人,
p(y_t|v,y_1,y_2,...,y_{t-1}) = g(h_t,y_{t-1},v)
? ? ? ?所以對(duì)于訓(xùn)練樣本,我們要做的就是在整個(gè)訓(xùn)練樣本下念赶,所有樣本的p(y_1,y_2,...,y_T|x_1,...,x_T)概率之和最大础钠。對(duì)應(yīng)的對(duì)數(shù)似然條件概率函數(shù)為\frac {1}{N} \Sigma^N_{n=1} log(y_n|x_n,θ),使之最大化叉谜,θ則是待確定的模型參數(shù)旗吁。

參考:
1、NLP之Seq2Seq:
原文:https://blog.csdn.net/qq_32241189/article/details/81591456
2停局、深度學(xué)習(xí)的seq2seq模型:
原文:https://blog.csdn.net/wangyangzhizhou/article/details/77883152
3很钓、Seq2Seq模型簡介
原文:http://www.reibang.com/p/1c6b1b0cd202
4、三分鐘帶你對(duì) Softmax 劃重點(diǎn)
原文:https://blog.csdn.net/red_stone1/article/details/80687921

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末董栽,一起剝皮案震驚了整個(gè)濱河市码倦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锭碳,老刑警劉巖袁稽,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異工禾,居然都是意外死亡运提,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門闻葵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來民泵,“玉大人,你說我怎么就攤上這事槽畔≌蛔保” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鳞尔。 經(jīng)常有香客問我嬉橙,道長,這世上最難降的妖魔是什么寥假? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任市框,我火速辦了婚禮,結(jié)果婚禮上糕韧,老公的妹妹穿的比我還像新娘枫振。我一直安慰自己,他們只是感情好萤彩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布粪滤。 她就那樣靜靜地躺著,像睡著了一般雀扶。 火紅的嫁衣襯著肌膚如雪杖小。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天愚墓,我揣著相機(jī)與錄音予权,去河邊找鬼。 笑死浪册,一個(gè)胖子當(dāng)著我的面吹牛伟件,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播议经,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼斧账,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了煞肾?” 一聲冷哼從身側(cè)響起咧织,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎籍救,沒想到半個(gè)月后习绢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蝙昙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年闪萄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奇颠。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡败去,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出烈拒,到底是詐尸還是另有隱情圆裕,我是刑警寧澤广鳍,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站吓妆,受9級(jí)特大地震影響赊时,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜行拢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一祖秒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧舟奠,春花似錦狈涮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽握巢。三九已至晕鹊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間暴浦,已是汗流浹背溅话。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留歌焦,地道東北人飞几。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像独撇,于是被迫代替她去往敵國和親屑墨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354