貪心學院AI學習挑戰賽(獎學金活動)第11週第1個問題,問題在描述裡,你的答案是什麼呢?

時間 2021-08-12 02:30:59

1樓:卡瑪花生公尺

1.暴露偏差,訓練時最小化的是交叉熵損失,而測試時用的是離散度量,並且在訓練時使用teach forcing的方式,decoder的訓練依賴於真實值,而在測試階段,真實值是沒有的,將模型的輸出近似等於正確的輸出反饋給模型。

通過使用計畫抽樣法來解決這個問題,我們先使用交叉熵預訓練模型,然後慢慢將真實值替換成模型本身的 action。我們以概率用真實值,以概率用模型自身的 action。當時,為式(3),即全用真實值。

當時,為式(5),即全用自身的 action。

2.訓練和測試的度量不一致

我們訓練時使用的交叉熵誤差,而測試時使用的是不可微的度量,例如:BLEU 和 ROUGE,這就會導致訓練目標和測試目標不匹配,結果不一致。

可以通過強化學習來解決這個問題

3.迴圈生成文字,最後得到看起來很奇怪的句子或者根本停不下來。可以通過主動新增或者自截斷設計來解決此問題

2樓:2fight41love

Seq2Seq+attention是比較經典的文字生成類專案的baseline,編碼器解碼器通常會採用LSTM以及雙向LSTM。它當然也有一些老生常談的問題:

究其原因,seq2seq常規的解碼演算法中並沒有確保解碼會停下來,只有讓模型自己學習在哪個地方停下來,然而在模型訓練的較差時,它就很容易出現解碼停不下來的情況,為此,也有不少對策。

1、最簡單暴力的方式,長度截斷。在到達一定長度後直接停止解碼。

2、主動新增結束符,對於原生隨機解碼方式來說成立;對於top-k隨機解碼和Nucleus隨機解碼則需要手動新增結束符到取樣空間。

3.自截斷設計,對於隨機解碼方式可以使用新增結束符。而對於確定性解碼來說,因為沒有隨機性,不能確保碰到結束符為此設計的新方法。(具體的我不大明白啊啊啊,看參考資料)

1.降低資料單位的粒度,如講詞級別的資料處理降低到字級別的,但治標不治本,仍然會有極少量OOV問題。

2.pointer跟蹤摘抄原文內容,和PGN網路結合,採用複製or生成二選一的方式進行文字生成。

這個問題在我面試的時候也被問到過,在使用預訓練網路或者組合多個網路的時候都可能出現網路們的訓練目標不一致的問題。文中分別提到了解決方法:

1.計畫抽樣法

2.強化學習

3樓:我很好奇

seq2seq模型的結構,一般來說是包含了encoder和decoder的序列轉換模型,進一步可以加入attention機制。

seq2seq模型的問題主要有幾點:

生成序列包含Unknown

由於包含所有單詞的詞表往往過於龐大,因此一般會根據頻次對詞表截斷,也就是取前Top k的詞進行訓練,其他詞用unknown代替,因此可能會被生成。

主要有兩種解決思路,一種是使用char級別的embedding訓練,雖然從理論上解決了這個問題,但本質上是轉移了訓練壓力,模型將更難學到語義,很大程度上只能學到單詞之間的組合關係,同時也很難真正生成專有名詞。另一種是使用複製方式,直接將輸入的專有名字對映到輸出,我認為這種方式相對更加有效。

2.解碼可能難以停止

有時seq2seq解碼時會不斷生成相同的短文本序列。一般的方法是新增停止標誌,但不能完全解決這種問題的出現,偶爾還是會達到長度上限。另一種思路是使用自截斷的設計,使得輸出停止符的概率隨序列長度不斷增大,最終一定會停止。

4樓:

Seq2Seq模型是乙個Encode-decode結構的模型。

encoder使用乙個神經網路將輸入序列對映到乙個固定維數的向量上,decoder另乙個神經網路從這個向量對映到目標序列。

用於生成的效果不好的原因有以下三點。

1、生成重複的單詞

單句中出現某個字不斷重複出現,多句中出現某個句子重複出現。

解決方法:加入coverage vector,Coverage Mechanism通過統計各個詞語在歷史對齊向量a中的出現的概率值的累積和,將累計和分別納入Generator Network公式和懲罰項,以達到解決序列生成中,相同文字不停迴圈出現的問題。

2、模型的生成不準確

解決方法:加入coverage 機制來保證模型的正確性。

3、無法處理詞彙表外OOV(out of vocabulary) 單詞

一些無法被納入詞表的詞,為OOV單詞,它們會被unk代替顯示,語義資訊也將被丟棄。

解決方法:

①擴大詞表:將部分低頻詞納入詞表,但缺乏足夠數量的語料的情況下,訓練出來的詞向量效果不佳。

②指標拷貝網路:通過使用指標生成器網路能夠通過指標從源文字複製單詞,提高了OOV單詞的準確性。

③字向量或n-gram

5樓:facilitator

1、UNK問題

解決方法:

Char-based:英文本元的種類遠遠少於詞的種類,用char來代替word可以將decoder輸出層的維度降低很多,而且覆蓋了所有的可能,從根本上避免了UNK的問題。

Vocabulary expansion:詞彙表擴充套件的方法,在高頻詞詞彙表中新增一定數量的UNK,並且編號。

2、迴圈生成文字

解決方法:

主動新增 以及自截斷設計,使推理在有限步內結束不產生迴圈。

3、處理長句子是準確率較低

可以引入Attention機制;考慮使用LSTM或者GRU等RNN的變體,能緩解處理長句子是準確率低的問題。

6樓:起床啦123

缺點一:未知單詞

Unknown Word是發生在解碼過程的乙個問題問題。在文字生成的任務中比如說機器翻譯、摘要生成,對話系統等語言模型,會逐一計算備選詞彙每個單詞在當前條件下出現的概率,來生成該條件下的單詞。為了提高計算效率,一般而言,詞彙表只選擇出現頻次最高的幾個單詞,其他的單詞都用UNK來替換。

解決思路:盡量提高備菜單詞的數量

缺點二:在編碼過程中會發生迴圈。由於我們在生成過程中,重複利用之前的生成結果,那麼就會可能發生類似於無線迴圈小數的問題。

解決思路:第一種是設定生成規則,比如說「樂」已經出現,那麼就嘗試一定概率選擇當前在「樂」之後的一些字元。第二種是把生成的過程本身就隨機化,這樣每個字的生成是以一定概率得到幾個結果的,而不是選最高。

缺點三:文字長度問題

對於太長的文字,難以充分提取整體的資訊

解決思路:完全採用注意力機制的Transformer特徵構造器。

7樓:豆芽

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

seq2seq模型存在的幾個問題:

暴露偏差(exposure bias)

訓練時最小化的是交叉熵損失,而測試時用的是離散度量。由於訓練時使用了 teacher forcing 的方式,decoder 的訓練依賴於真實值 ,而在測試階段,真實值是沒有的。

解決方法:可以採用計畫抽樣法。 使用交叉熵預訓練模型,然後慢慢將真實值替換成模型本身的 action。我們以概率用真實值,以概率用模型自身的 action。

2. UNK問題。

Seq2Seq中為了提高計算效率,通常會選擇最高的Top N個單詞,其他詞用UNK來代替,這樣就會導致在decoder的時候出現UNK。

解決辦法: 用char來代替word可以將decoder輸出層的維度降低很多並且覆蓋所有的可能性,從而避免unk的問題。

3.變成復讀機

Seq2Seq重複解碼和解碼不停止

對於一些特定名詞,例如地名、人名等,採用拷貝的方式來處理。

8樓:敵人就在本能寺

1,第乙個原因就是seq2seq無法生成OOV的UNK,無法生成vocabulary以外的詞,解決的思路主要有引入attention機制,設定attention weight,更進一步的方法包括在seq2seq內引入PGN作為優化;

2,第二個原因就是seq2seq容易陷入生成不停止的窘境。解決的方法就是自動引入,或者設定重複詞懲罰;這種方法可以使用Mixed Incremental Cross-Entropy Reinforce (MIXER)的方法,前期用交叉熵訓練,後期引入RL訓練,也能有效解決生成不停止的窘境。

3,第三個原因就是seq2seq無法較好地解決長文字問題。這是由LSTM等內部結構導致的,解決的方法也是引入attention weight,將長文字前一些重要的詞彙賦予更重的權重,從而使得seq2seq模型生成時能夠更加考慮這些詞彙。

9樓:kk清源

seq2seq 是目前比較經典的生成框架,在機器翻譯、摘要生成有著廣泛的應用。seq2seq 模型由 encoder 和 decoder 構成,encoder 負責將源文字進行編碼,decoder 負責生成文字,decoder 階段經常使用 Attention 機制,根據當前狀態對 encoder 的文字進行動態權重計算,可進一步提公升 seq2seq 的效果。

seq2seq 在使用中也存在不少的問題,本文就主要的問題和解決方法進行介紹。

(1)無法收斂,生成無限迴圈的文字

decoder 階段如果出現了 就會停止,但會出現一直不出現 的情況,即無法收斂,這種情況的解決方法為:

主動新增 :先確定解碼方式,分為隨機解碼or確定性解碼;前者包括原生隨機解碼、top-k 隨機解碼、Nucleus 隨機解碼;舉個例子,針對原生隨機解碼,可以通過主動新增停止標記來避免解碼不停止。

自截斷設計:可以設定自截斷公式,可使推理在有限步內結束;

(2)OOV 問題

OOV 問題就是未登入詞,容易在 decoder 的階段出現該問題。該問題可以使用 copy 機制來解決,比如 pointer-generator 網路,該網路除了可以從詞彙表中生成詞外,也可以從源文字生成詞,這樣就有效解決了 OOV 問題。

(3)生成重複問題

10樓:ZYK

是否使用了beam search?

如果只用了貪心搜尋,那麼問題很可能處在這裡,因為貪心的缺點是太不魯棒,某個時間步上decoder出錯,後面全部面目全非。

2. 如果用了beam search,其關鍵引數K是否可以調整?

這是個超引數調整問題,K越大越精確,但是inference的時間消耗將變大。這是乙個trade-off。

3. 當結果不夠精準,看看是不是輸入序列如果直接把某些詞加入到輸出中去,結果會更好?

如果觀察一些輸出結果發現確實如此,我們可以考慮加入PGN。PGN正是解決這個問題的。而且PGN實現起來也不是特別複雜。

4. 當結果中出現若干個重複的詞彙時

我們懷疑attention的表現不夠好,總是重複的關注到encoder中的某(幾)個時間步,導致輸出失去意義。這個時候可以考慮加上針對這個問題的coverage機制。

5. 考慮加上scheduled sampling機制

scheduled sampling是在training過程中的乙個重要技巧,大致通過乙個概率p,來控制在training時,是否採用ground truth來餵給decoder的各個時間步(否則將餵給模型上一步的輸出結果,而這個結果在訓練前期的時候顯然是不夠精確的)。這個p是可變的,初期比較大(ground truth的比例大),後期則逐漸令這個p縮小到0(到0是必要的,因為這將使inference和training的環境一致)。

這個技巧一方面讓訓練更快,同時可以讓模型的結果更精確,因此是應該加上的。

貪心學院AI學習挑戰賽(獎學金活動)第15週第2個問題,問題在描述裡,你的答案是什麼呢

SamHsiWu 含義 歧義與消歧是自然語言理解中最核心的問題 即字面內容完全一致但語義並不一致 在詞義 句義 篇章含義層次都會出現語言根據上下文語義不同的現象,消歧即指根據上下文確定物件語義的過程。詞義消歧即在詞語層次上的語義消歧。例子 今天去水果店買了一袋蘋果 和 今天去專賣店買了一台蘋果 中的...

貪心學院AI學習挑戰賽(獎學金活動)第7週第2個問題,開放式話題,關於描述裡的問題,你的答案是什麼?

Qien ZHANG 由於反向傳播複雜性,稍微一點失誤就會導致整個訓練面臨失敗。要真正完全正確實現乙個反向傳播演算法是非常難的,因為要準確計算出幾十層甚至幾百層的引數梯度。在神經網路學習演算法中,整個演算法由資訊的正向傳遞和誤差的反向傳播這兩部分組成的,但是,也會存在著一些問題。例如,存在區域性最優...

貪心學院 深度學習是很多模型的疊加,這種深度模型跟淺層模型相比有什麼優勢呢?

Hanamaki 有一種說法 在自然語言領域,淺層模型解析的是語法結構,深層模型解析的是語義結構,例如 我愛北京和北京愛我 從語法上來說兩個都是對的,都是主謂賓,但是從意義上來說,第二句不對因為北京是個地點無法有愛這種動作。語義建模 或語義語法 通常與語言建模 或語言語法 相比較,我們現在從二者的定...