參考鏈接:http://blog.csdn.net/mebiuw/article/details/53341404
http://blog.csdn.net/u014595019/article/details/52826423
http://blog.csdn.net/malefactor/article/details/50550211
多用于NLP領域
????什么是encoder-decoder模型梆造?就是編碼-解碼模型欧瘪,其實是一個解決問題的框架,主要解決seq2seq類問題挖腰,Sequence在這里可以理解為一個字符串序列雕沿,當我們在給定一個字符串序列后,希望得到與之對應的另一個字符串序列猴仑,比如問答系統(tǒng)审轮,比如翻譯系統(tǒng)肥哎。
? ? encoder-decoder模型的流程可以理解為“編碼--》存儲--》解碼”這一流程,可以用人腦流程來類比疾渣,我們先看到源Sequence篡诽,將其讀一遍,然后在我們大腦當中就記住了這個源Sequence榴捡,并且存在大腦的某一個位置上杈女,形成我們自己的記憶(對應Context),然后我們再經過思考吊圾,將這個大腦里的東西轉變成輸出达椰,然后寫下來。那么我們大腦讀入的過程叫做Encoder项乒,即將輸入的東西變成我們自己的記憶啰劲,放在大腦當中,而這個記憶可以叫做Context檀何,然后我們再根據這個Context蝇裤,轉化成答案寫下來,這個寫的過程叫做Decoder埃碱。
? ? 整個模型用圖表示如下:
? ? 但是它有一個顯著的缺點猖辫,也就是整個編碼-解碼過程共享一個單獨不變的語義編碼C酥泞。我們可以將輸入句子X=(X1砚殿,X2,......Xm)芝囤,Y=(Y1似炎,Y2,......Yn)悯姊,中間語義C=F(X1羡藐,X2,...Xm)悯许。
那么對Y的輸出就是如下
我們可以看到仆嗦,無論生成Y幾,中間語義是不變的先壕,也就是說這個模型是“沒有注意力的”瘩扼。這個模型有幾個很大的問題,它無法體現(xiàn)前幾(一)個單詞對當前單詞的影響垃僚,整個句子X的語義被壓縮成一個向量X集绰,二是語義向量無法完全表示整個序列的信息,還有就是先輸入的內容攜帶的信息會被后輸入的信息稀釋掉谆棺,或者說栽燕,被覆蓋了。
? ? 介紹完原始E-D模型,這時候我們要引入下Attetion模型碍岔,模型圖如下:
生成目標句子Y就成了如下: