系統學習NLP(十五) seq2seq

2021-09-12 11:46:17 字數 2349 閱讀 1644

**:

什麼是 seq2seq?

seq2seq 是乙個encoder–decoder 結構的網路,它的輸入是乙個序列,輸出也是乙個序列, encoder 中將乙個可變長度的訊號序列變為固定長度的向量表達,decoder 將這個固定長度的向量變成可變長度的目標的訊號序列。

這個結構最重要的地方在於輸入序列和輸出序列的長度是可變的,可以用於翻譯,聊天機械人,句法分析,文字摘要等。

下面是寫過的 seq2seq 的應用:

rnn與機器翻譯

如何自動生成文字摘要

自己動手寫個聊天機械人吧

encoder–decoder 結構?

cho 在 2014 年提出了 encoder–decoder 結構,即由兩個 rnn 組成,

(其中的 rnncell 可以用 rnn ,gru,lstm 等結構)

在每個時刻, encoder中輸入乙個字/詞,隱藏層就會根據這個公式而改變,

到最後乙個字/詞 xt 時 ,隱藏層輸出 c ,因為 rnn 的特點就是把前面每一步的輸入資訊都考慮進來了,所以c 相當於把整個句子的資訊都包含了,可以看成整個句子的乙個語義表示。

decoder 在 t 時刻的隱藏層狀態 ht 由 ht−1,yt−1,c 決定:

yt 是由 ht,yt−1,c 決定:

f 和 g 都是啟用函式,其中 g 函式一般是 softmax。

模型最終是要最大化下面這個對數似然條件概率:

其中每個 (xn, yn) 表示一對輸入輸出的序列, θ 為模型的引數。

seq2seq 結構?

sutskever 在 2014 年也發表了**:

這個模型結構更簡單,

因為decoder 在 t 時刻yt 是由 ht,yt−1 決定,而沒有 c:

**中的encoder 和 decoder 都用的 lstm 結構,注意每句話的末尾要有 「」 標誌。 encoder 最後乙個時刻的狀態 [cxt,hxt] 就和第一篇**中說的中間語義向量 c 一樣,它將作為 decoder 的初始狀態,在 decoder 中,每個時刻的輸出會作為下乙個時刻的輸入,直到 decoder 在某個時刻**輸出特殊符號 結束。

lstm 的目的是估計條件概率 p(y1, … , yt′ |x1, … , xt ) ,

它先通過最後乙個隱藏層獲得輸入序列 (x1, … , xt ) 的固定長度的向量表達 v,

然後用 lstm-lm 公式計算輸出序列 y1, … , yt′ 的概率,

在這個公式中,初始狀態就是 v,

而且用了 4 層的 lstm,而不是一層:**中的實驗結果表明深層的要比單層的效果好

下面是個 3 層的例子

計算公式如下:

為了便於理解,單層的表示如下:

並且對輸入序列做了乙個翻轉,即不是把 a, b, c 對映到 α, β, γ, 而是把 c, b, a 對映到 α, β, γ, 這樣的結果是相應的 a 會更接近 α,並且更利於 sgd 建立輸入輸出間的關係。

參考:

learning phrase representations using rnn encoder–decoder

for statistical machine translation

sequence to sequence learning

with neural networks

generating sequences with

recurrent neural networks

系統學習NLP(三) NLP入門綜述

從這個月開始,進入nlp方向了,因此,系統了看了一遍 自然語言處理綜論 對nlp做了點系統性的了解,後面抽時間乙個乙個業務或者方向進行實現學習。這裡主要是入門的認識,因此,大多數不涉及每個業務應用的最佳實現,比如基本沒有深度學習層面的 因為那本書只總結了2009年之前的 不過有了這個基礎,每個業務應...

系統學習NLP(二十六) NBSVM

baselines and bigrams good sentiment and topic classification 參考 跟原文有一定差異,理解不一致。樸素貝葉斯 bayes,nb 和支援向量機 support vector machines,svm 的變體常被用作文字分類的基線方法,但它們...

系統學習NLP(二十七) EMLo

deep contextualized word representations 參考 elmo的語言理解是通過 訓練單詞序列中的下乙個單詞來實現,這項任務被稱為語言建模。這是很方便的,因為我們有大量的文字資料,這樣的模型不需要標籤就可以從中學習。今天給大家介紹一篇2018年提出的 deep con...