Empirical Analysis of Beam Search Performance Degradation in Neural Sequence Modelshtml
2019-06-13 10:28:44算法
Paper: [abs] [Download PDF][Supplementary PDF] Eldan Cohen, Christopher Beck ; PMLR 97:1290-1299性能
1. Background and Motivation: spa
Beam search 是一種經常使用在時序任務中解碼算法,如:NLP 中的語言翻譯,Image Captioning 等。不一樣於通常的貪婪搜索策略,該算法會始終維持相同的搜索寬度,最終會輸出該寬度的多個搜索結果。就是由於這種自然的優點,該算法被普遍的應用於各類時序任務中。可是,大量的研究代表,beam search 存在以下的不足:「隨着 width」 的增長,最終的效果也會不斷下降,即:增長 width,不能提高效果,該算法只能在特定的較小的 width 條件下,纔會 work 的很好。翻譯
針對上述問題,做者在本文中在多個任務上進行了大量的實驗,來研究這個問題:machine translation,abstract summarization, and image captioning。做者在這些實驗的基礎上,提出了一種可解釋的模型,該模型基於 search discrepancies(搜索差別性) 的概念,而後基於該差別性的分佈進行了經驗性的研究。主要貢獻以下:3d
1). 本文代表增長 beam width 將會致使 solution 在早期有較大的不一致性 (discrepancies);這些序列一般會有較低的評價得分,從而致使最終的性能衰減。orm
2). 本文所提出的 explanatory model generalizes the previouly observed "copies" and predictions that repeat training set targets and accounts for more of the degraded predictions. htm
3). 本文代表對 beam search 進行修改,使其不考慮 large search discrepancies 能夠有效的緩解性能衰減。blog
2. Neural Sequence Models:token
在神經序列模型中,經過充分的搜索以求得一個全局最優序列幾乎是不可能的。貪心算法會在每個時刻,選擇一個最優的候選,使得序列局部最優,可是可能最終獲得的僅僅是一個局部次優的序列。Beam search 將每個時刻的可能序列寬度拓展爲 B,這個 B 稱爲 beam width。正式的來講,beam search candidate 經過以下的方式進行更新:
本文將 search discrepancy 定義爲:extending a partial sequence with a token that is not the most probable one. 正式的來講,一個序列 y 在時刻 t 有一個 search discrepancy,若是其知足以下的條件:
咱們將最可能的 token 和 選擇的 token 的差別性,取 log,記爲:
爲了說明該 discrepancy gap 是如何計算的,咱們給出了上圖1。具備最高條件機率候選的 discrepancy gap 爲 0,其餘候選之間的 gap 就是其 log 機率的距離。
3. Discrepancy-Constrained Beam Search:
本文評價了兩種相似 trick 的方法來約束 beam search,都是考慮到較大的搜索差別。
Discrepancy Gap:
給定閾值 M,咱們修改 beam search 來僅僅考慮搜索差別小於等於 M 的候選。正式的來講,咱們修改公式 1,使其包含這一約束:
Beam Candidate Rank:
給定閾值 N,咱們修改 $y_t$ 使其在每個 beam 中僅僅包含 top N one-token extensions。注意到,beam search 仍然保持 top B candidates,然而在每個 beam 中,其不會考慮超過 N 的候選。
4. Experiments:
做者的實驗代表,當考慮到做者提到的不一致性約束時,在增長 beam width 的時候,就不存在精度降低的問題了。可是這個表格貌似也反映了,beam width 設置的太大,有些狀況下,並不會明顯提高精度,反而有可能下降。到底該不應設置較大的 beam width,仍是應該調調參數,試試才知道哇。
==