怎樣生成語言才能更自然,史丹佛提出超越Perplexity的評估新方法

機器之心發表於2019-04-19

困惑度是評估生成語言是否「自然」的最常見標準,它的值越小,則表示模型生成的句子越接近人類語言。但是這種基於統計的方法並不能很好地評估生成質量,因此本文提出一種新的評估方式 HUSE,它為自然語言生成提供了結合人類和統計評估的新架構。

怎樣度量生成的語言

生成文字是很多 NLP 任務的核心,但如何恰當地評估生成語言的「自然性」是很有難度的。好的評估指標應該不僅能捕捉到生成結果的質量,還能考慮到生成結果的多樣性,這對對話或故事生成這類需要創造性的開放性任務尤為關鍵。

人類評估通常被視為金科玉律,既能捕捉質量也不會忽略多樣性。但是,統計評估(即在參考測試集上的困惑度)也能捕捉多樣性,因為它確保模型為新句子分配合理的概率,但是困惑度(Perplexity)無法提供充分的質量評估。

目前困惑度在語言模型等領域中是應用最廣泛的度量方法,它刻畫的是語言模型估計一句話出現的概率。困惑度有一個非常直觀的理解,即我們可以認為它是平均分支系數。也就是說語言模型預測下一個詞時平均可選的數量,即模型對下一個詞的「困惑程度」。

現有的將統計評估和人類評估結合起來的方法是點對點的,這會導致有誤導性的效能評估。常見的方法是通過概率模型的困惑度來評估多樣性、通過對束搜尋輸出進行人類評估來衡量質量。這就會產生一種錯覺:某個模型質量高且具備多樣性,而現實則是這個模型要麼只具備多樣性,要麼只能輸出高質量的結果。

史丹佛的解決方案

在這篇論文中,史丹佛的研究者採用對抗的思想,用判別器判斷句子到底是來自參考分佈還是模型分佈,並將最優判別器誤差率的 2 倍作為理想的評估指標。如果模型生成的句子質量較低,則最優判別器能夠對模型生成的句子進行準確地分類。如果參考分佈包含該模型無法生成的句子(低多樣性),則最優判別器也能夠對來自參考分佈的句子進行準確地分類。


但是,最優判別器並不可得。「人類」判別器無法高效捕捉多樣性,訓練得到的判別器(比如基於 GAN 或人類判斷訓練得到的判別器)也無法用於嚴謹的評估。

該研究的關鍵結果,即最優分類器依賴於兩個數值:句子是模型生成的概率;句子才樣子參考分佈的概率。前者可以直接從模型中計算得到,後者可以通過人類判斷的分數近似得到,從而得到圖 1 所示的二維空間。

怎樣生成語言才能更自然,史丹佛提出超越Perplexity的評估新方法

圖 1:HUSE(Human Unified with Statistical Evaluation)是分類誤差的兩倍,即基於人類判斷分數和模型預測概率來區分文字是來自參考資料還是模型生成。HUSE 能識別出質量和多樣性存在問題的樣本。

CodaLab 與 論文復現

該研究在 CodaLab 平臺上提供了所有程式碼、資料和實驗結果。值得注意的是,CodaLab 也是 Percy Liang 和史丹佛等研究者構建的一個開放平臺,它希望能為可復現研究提供管理實驗、資料等方法。

  • Codalab 地址:https://worksheets.codalab.org/worksheets/0x88644b5ee189402eb19d39d721d1005c

  • GitHub 地址:https://github.com/hughbzhang/HUSE

論文:Unifying Human and Statistical Evaluation for Natural Language Generation

怎樣生成語言才能更自然,史丹佛提出超越Perplexity的評估新方法

論文連結:https://arxiv.org/pdf/1904.02792.pdf

我們該如何度量自然語言生成系統是否生成高質量和多樣性的輸出?人類評估可以捕捉質量,但是不能衡量多樣性,因為這種方法不能分辨生成結果是不是簡單地抄襲自訓練集。但同時,基於統計的度量方法(即困惑度)能很好地捕捉多樣性,但不能嚴格地度量質量,因為偶爾生成的低質量樣本並不能得到充分的懲罰。

在這篇論文中,我們提出了一個統一的框架以同時評估生成質量與多樣性,它主要通過預測一句話到底是機器生成語言還是人類語言,從而給出預測的最優誤差率。我們表示,該誤差率能通過結合人類和統計評估高效地估計,我們將使用的評估度量稱之為 HUSE。

在摘要生成和聊天對話生成中,我們證明了 (1) HUSE 能夠檢測到純粹人類評估無法發現的多樣性缺陷,(2) 退火等技術在提升質量的同時降低了 HUSE 值,即以降低多樣性為代價。

核心方法 HUSE

自然語言生成可以視為在給定先驗句 x 的情況下生成後續 y 的概率,即 p_model(y | x)。現在我們理想的評估是判斷 p_model 與真實的參考分佈 p_ref 之間的距離,如果它們之間的距離很小,那麼我們就可以說生成效果很好。

具體而言,如果 y 可以是機器生成的(取樣自 p_model),也可以是人類的自然語言(取樣自 p_ref),那麼類似 GAN 的概念可以定義為:

怎樣生成語言才能更自然,史丹佛提出超越Perplexity的評估新方法

如果我們有任意判別器,它嘗試在給定 x 和 y 的情況下判斷 z,那麼我們可以定義 L*為該判別器最低可能誤差率的兩倍:

怎樣生成語言才能更自然,史丹佛提出超越Perplexity的評估新方法

其中 L*即度量了 p_model 和 p_pref 的相似性,它是總變分散度(variational divergenc)的線性函式。因此,如果 p_model 和 p_pref 是互斥的,那麼 L*就為 0,如果是等同的,那麼 L*就為 1。

對於將 (x, y) 對映到 d 維實數φ(x, y) 的任意特徵對映φ,我們可以將評估分數 L(φ) 定義為:

怎樣生成語言才能更自然,史丹佛提出超越Perplexity的評估新方法

其中 L(φ) 會在所有依賴於φ的函式上做最優化,因此φ包含的資訊越多,L(φ) 就會越低。這表示了兩個內在關係:首先任何特徵對映φ都會導致 L*的上邊界(optimistic),即 L(φ) 能檢測模型差的程度但卻又不能確定好的程度;第二向 φ新增新特徵只會提升上邊界。

因為基於 (x, y) 的最優判別器只需要兩個特徵就足夠了,我們可以將特徵對映 φ 定義為如下:

怎樣生成語言才能更自然,史丹佛提出超越Perplexity的評估新方法

此外,如果我們使用句子長度 len(y) 做正則化,它會構建更低或更緊緻的分數。因此總的而言,HUSE 特徵可以定義為如下:

怎樣生成語言才能更自然,史丹佛提出超越Perplexity的評估新方法

其中 HJ(x, y) 為 20 個眾包工作者的平均回覆,圖 2 展示了 Reddit 語料庫的自然語言建模與 HJ(x, y)。

怎樣生成語言才能更自然,史丹佛提出超越Perplexity的評估新方法

圖 2:在 Reddit 語料庫中,對於句子 y 中的「typicality」人類判斷(HJ),它與其在語料庫出現的頻率高度相關(r = 0.92)。因此 HJ 是 log p_ref 很好的代理函式。

實驗

研究者使用 HUSE 評估三種不同型別的單句子自然語言生成任務:1)無條件和高熵的語言建模;2)有條件和高熵的故事生成、聊天對話系統;3)有條件和低熵的文字摘要。實驗表明,HUSE 為高熵任務上的多樣性提供直接、可解釋的評估,同時為低熵任務提供有用的模型診斷。

怎樣生成語言才能更自然,史丹佛提出超越Perplexity的評估新方法

表 1:在文字摘要、故事生成、聊天對話系統和語言建模四種任務上最優模型的效能,評估指標為整體的擬合優度 (HUSE)、樣本質量 (HUSE-Q) 和多樣性 (HUSE-D)。HUSE 和 HUSE-Q 的範圍是 0.0(完全可與參考文字區分開來)到 1.0(完全無法與參考文字區分開來),分類誤差為 HUSE/2。當 HUSE-Q > HUSE 時,HUSE-D 的範圍可能會超出 1.0,因為它的樣本量較小。

怎樣生成語言才能更自然,史丹佛提出超越Perplexity的評估新方法

圖 3:HUSE-D 和 HUSE-Q 之間的權衡。點表示模型,顏色表示任務。神經模型(圓圈)使用退火生成(點標籤表示 Temperature)。與右上最接近的模型越優秀,灰色的對角線表示 HUSE。任務的陰影區域表示嚴格主導該任務的模型。退火是對多樣性和質量的權衡,但是它無法輕鬆地增加底層模型效能(HUSE)。

怎樣生成語言才能更自然,史丹佛提出超越Perplexity的評估新方法

圖 4:演算法 1 中的二維分類問題在具備不同 Softmax Temperature 的摘要任務上的示例。每個點表示參考句子 φ_huse(x_i, y_i) 或模型生成句子 φ_huse(x_i, y'_ i)。顏色表示句子的來源 (z),陰影表示最近鄰分類器的分類置信度。

怎樣生成語言才能更自然,史丹佛提出超越Perplexity的評估新方法

圖 5:HUSE 的估計也適用於較小的測試集規模,但是通常需要約 20 個眾包工作者對每個樣本進行評估。

相關文章