Seq2Seq中Exposure Bias现象的浅析与对策
?PaperWeekly 原創 ·?作者|蘇劍林
單位|追一科技
研究方向|NLP、神經網絡
前些天筆者寫了CRF用過了,不妨再了解下更快的MEMM?,里邊提到了 MEMM 的局部歸一化和 CRF 的全局歸一化的優劣。
同時,筆者聯想到了 Seq2Seq 模型,因為 Seq2Seq 模型的典型訓練方案 Teacher Forcing 就是一個局部歸一化模型,所以它也存在著局部歸一化所帶來的毛病——也就是我們經常說的“Exposure Bias”。
帶著這個想法,筆者繼續思考了一翻,將最后的思考結果記錄在此文。
▲ 經典的 Seq2Seq 模型圖示
本文算是一篇進階文章,適合對Seq2Seq模型已經有一定的了解、希望進一步提升模型的理解或表現的讀者。關于Seq2Seq的入門文章,可以閱讀舊作玩轉Keras之seq2seq自動生成標題和從語言模型到Seq2Seq:Transformer如戲,全靠Mask。
本文的內容大致為:
Exposure Bias 的成因分析及例子;
簡單可行的緩解 Exposure Bias 問題的策略。
Softmax
首先,我們來回顧 Softmax 相關內容。大家都知道,對于向量 ,它的 Softmax 為:
由于 是關于 的嚴格單調遞增函數,所以如果 是 中的最大者,那么 也是?中的最大者。
對于分類問題,我們所用的 loss 一般是交叉熵,也就是:
其中是目標類。如文章《尋求一個光滑的最大值函數》[1] 所述,上式第一項實際上是 的光滑近似,所以為了形象理解交叉熵,我們可以寫出:
也就是說,交叉熵實際上在縮小目標類得分 與全局最大值的差距,顯然這個差距最小只能為 0,并且此時目標類得分就是最大值者。所以,Softmax 加交叉熵的效果就是“希望目標類的得分成為最大值”。
Teacher Forcing
現在,我們來看 Seq2Seq,它通過條件分解來建模聯合概率分布:
每一項自然也就用 Softmax 來建模的,即:
乘起來就是:
而訓練目標就是:
這個直接的訓練目標就叫做 Teacher Forcing,因為在算 的時候我們要知道真實的 ,在算 我們需要知道真實的 ,依此類推,這就好像有一個經驗豐富的老師預先給我們鋪好了大部分的路,讓我們只需要求下一步即可。
這種方法訓練起來簡單,而且結合 CNN 或 Transformer 那樣的模型就可以實現并行的訓練,但它可能會帶來 Exposure Bias 問題。
Exposure Bias
其實 Teacher Forcing 這個名稱本身就意味著它本身會存在 Exposure Bias 問題。回想一下老師教學生解題的過程,一般的步驟為:
第一步應該怎么思考;
第一步想出來后,第二步我們有哪些選擇;
確定了第二步后,第三步我們可以怎么做;
...
有了這 n-1 步后,最后一步就不難想到了。
這個過程其實跟 Seq2Seq 的 Teacher Forcing 方案的假設是一樣的。有過教學經驗的讀者就知道,通常來說學生們都能聽得頻頻點頭,感覺全都懂了,然后讓學生課后自己做題,多數還是一臉懵比。
為什么會這樣呢?其中一個原因就是 Exposure Bias。說白了,問題就在于,老師總是假設學生能想到前面若干步后,然后教學生下一步,但如果前面有一步想錯了或者想不出來呢?這時候這個過程就無法進行下去了,也就是沒法得到正確答案了,這就是 Exposure Bias 問題。
Beam Search
事實上,我們真正做題的時候并不總是這樣子,假如我們卡在某步無法確定時,我們就遍歷幾種選擇,然后繼續推下去,看后面的結果反過來輔助我們確定前面無法確定的那步。對應到 Seq2Seq 來說,這其實就相當于基于 Beam Search 的解碼過程。
對于 Beam Search,我們應該能發現,beam size 并不是越大越好,有些情況甚至是 beam size 等于 1 時最好,這看起來有點不合理,因為 beam size 越大,理論上找到的序列就越接近最優序列,所以應該越有可能正確才對。事實上這也算是 Exposure Bias 的現象之一。
從式(6)我們可以看出,Seq2Seq 對目標序列 的打分函數為:
正常來說,我們希望目標序列是所有候選序列之中分數最高的,根據本文開頭介紹的 Softmax 方法,我們建立的概率分布應該是:
但上式的分母需要遍歷所有路徑求和,難以實現,而式(6)就作為一種折衷的選擇得到了廣泛應用。但式(6)跟式(9)并不等價,因此哪怕模型已經成功優化,也可能出現“最優序列并不是目標序列”的現象。
簡單例子
我們來舉一個簡單例子。設序列長度只有 2,候選序列是 和 ,而目標序列是 ,訓練完成后,模型的概率分布情況為:
如果 beam size 為 1,那么因為 ,所以第一步只能輸出?,接著因為 ,所以第二步只能輸出 ,成功輸出了正確序列 。但如果 beam size 為 2,那么第一步輸出 ,而第二步遍歷所有組合,我們得到:
所以輸出了錯誤的序列 。
那是因為模型沒訓練好嗎?并不是,前面說過 Softmax 加交叉熵的目的就是讓目標的得分最大,對于第一步我們有 ,所以第一步的訓練目標已經達到了,而第二步在 已經預先知道的前提下我們有 ,這說明第二步的訓練目標也達到了。
因此,模型已經算是訓練好了,只不過可能因為模型表達能力限制等原因,得分并沒有特別高,但“讓目標的得分最大”這個目標已經完成了。
思考對策
從上述例子中讀者或許可以看出問題所在了:主要是 太高了,而 是沒有經過訓練的,沒有任何顯式的機制去抑制 變大,因此就出現了“最優序列并不是目標序列”的現象。
看到這里,讀者可能就能想到一個樸素的對策了:添加額外的優化目標,降低那些Beam Search出來的非目標序列不就行了?
事實上,這的確是一個有效的解決方法,相關結果發表在 2016 年的論文 Sequence-to-Sequence Learning as Beam-Search Optimization [2]。但這樣一來幾乎要求每步訓練前的每個樣本都要進行一次 Beam Search,計算成本太大。
還有一些更新的結果,比如 ACL 2019 的最佳長論文 Bridging the Gap between Training and Inference for Neural Machine Translation?[3] 就是聚焦于解決 Exposure Bias 問題。此外,通過強化學習直接優化 BLEU 等方法,也能一定程度上緩解 Exposure Bias。
然而,據筆者所了解,這些致力于解決 Exposure Bias 的方法,大部分都是大刀闊斧地改動了訓練過程,甚至會犧牲原來模型的訓練并行性(需要遞歸地采樣負樣本,如果模型本身是 RNN 那倒無妨,但如果本身是 CNN 或 Transformer,那傷害就很大了),成本的提升幅度比效果的提升幅度大得多。
構建負樣本
縱觀大部分解決 Exposure Bias 的論文,以及結合我們前面的例子和體會,不難想到,其主要思想就是構造有代表性的負樣本,然后在訓練過程中降低這些負樣本的概率,所以問題就是如何構造“有代表性”的負樣本了。
這里給出筆者構思的一種簡單策略,實驗證明它能一定程度上緩解 Exposure Bias,提升文本生成的表現,重要的是,這種策略比較簡單,基本能做到即插即用,幾乎不損失訓練性能。
方法很簡單,就是隨機替換一下 Decoder 的輸入詞(Decoder 的輸入詞有個專門的名字,叫做 oracle words),如下圖所示:
▲ 一種緩解Exposure Bias的簡單策略:直接將Decoder的部分輸入詞隨機替換為別的詞
其中紫色的 [R] 代表被隨機替換的詞。其實不少 Exposure Bias 的論文也是這個思路,只不過隨機選詞的方案不一樣。筆者提出的方案很簡單:
1. 50%?的概率不做改變;
2. 50% 的概率把輸入序列中 30% 的詞替換掉,替換對象為原目標序列的任意一個詞。
也就是說,隨機替換發生概率是 50%>>隨機替換的比例是 30%,隨機抽取空間就是目標序列的詞集。
這個策略的靈感在于:盡管 Seq2Seq 不一定能完全生成目標序列,但它通常能生成大部分目標序列的詞(但順序可能不對,或者重復出現同一些詞),因此這樣替換后的輸入序列通常可以作為有代表性的負樣本。對了,說明一下,50% 和 30% 這兩個比例純粹是拍腦袋的,沒仔細調參,因為生成模型調一次實在是太累了。
效果如何呢?筆者做了兩個標題(摘要)生成的實驗(就是 CLGE [4] 的前兩個),其中 baseline 是 task_seq2seq_autotitle_csl.py [5],代碼開源于:
https://github.com/bojone/exposure_bias
結果如下表:
可以發現,在 CSL 任務中,基于隨機替換的策略穩定提升了文本生成的所有指標,而 LCSTS 任務的各個指標則各有優劣,考慮到 LCSTS 本身比較難,各項指標本來就低,所以應該說 CSL 的結果更有說服力一些。
這表明,筆者提出的上述策略確實是一種值得嘗試的方案(注:所有實驗都重復了兩次然后取平均,所以實驗結果應該是比較可靠的了)。
對抗訓練
思考到這里,我們不妨再“天馬行空”一下:既然解決 Exposure Bias 的思路之一就是要構造有代表性的負樣本輸入,說白了就是讓模型在擾動下依然能預測正確,而前些天我們不是才討論了一種生成擾動樣本的方法嗎?
不錯,那就是對抗訓練。如果直接往 baseline 模型里邊加入對抗訓練,能不能提升模型的性能呢?簡單起見,筆者做了往 baseline 模型里邊梯度懲罰(也算是對抗訓練的一種)的實驗,結果對比如下:
可以看到,對抗訓練(梯度懲罰)進一步提升了 CSL 生成的所有指標,而 LCSTS 上則同樣比較“隨緣”。因此,對抗訓練也可以列入“提升文本生成模型的潛力技巧”名單之中。
本文小結
本文討論了 Seq2Seq 中的 Exposure Bias 現象,嘗試從直觀上和理論上分析 Exposure Bias 的原因,并給出了簡單可行的緩解 Exposure Bias 問題的對策。
其中包括筆者構思的一種隨機替換策略,以及基于對抗訓練的策略,這兩種策略的好處是它們幾乎是即插即用的,并且實驗表明它們能一定程度上提升文本生成的各個指標。
相關鏈接
[1] https://kexue.fm/archives/3290
[2] https://arxiv.org/abs/1606.02960
[3] https://arxiv.org/abs/1906.02448
[4] https://github.com/CLUEbenchmark/CLGE
[5] https://github.com/bojone/bert4keras/blob/master/examples/task_seq2seq_autotitle_csl.py
點擊以下標題查看更多往期內容:?
變分推斷(Variational Inference)最新進展簡述
變分自編碼器VAE:原來是這么一回事
圖神經網絡三劍客:GCN、GAT與GraphSAGE
如何快速理解馬爾科夫鏈蒙特卡洛法?
深度學習預訓練模型可解釋性概覽
ICLR 2020:從去噪自編碼器到生成模型
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的Seq2Seq中Exposure Bias现象的浅析与对策的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消息称华为智选笔记本命名“Hi Mate
- 下一篇: 华硕灵耀 14 Air 新增英特尔酷睿