更近人類的對話系統自動評測方法

PaperWeekly發表於2017-07-28

本期論文


TOWARDS AN AUTOMATIC TURING TEST: LEARNING TO EVALUATE DIALOGUE RESPONSES

本文使用 context 和真實 response 來對模型生成的 response 進行打分,並和人類打分的分值進行比較,從而達到一種自動進行 Turing test 效果。訓練出來的模型可以生成符合人類判斷、能回答輸入語句的對話。 在給定 ground truth 的情況下,以往的工作都是計算生成話語和 ground truth 的相似性(包括字面上、語義上),這篇文章從人的理解角度出發,對生成的 response 進行度量。

論文連結: 

http://pdfs.semanticscholar.org/a4f0/4123597f076da2fcf4c3c48c3091abaf1b51.pdf

閱讀筆記精選


caogang449

Motivation 

現今關於對話回覆的評估問題沒有一個很好的方法,原來用於機器翻譯的 BLEU 已經被證明和人類的判決標準不具備太大的相關性(這篇文章中有說明)還有(How NOT To Evaluate Your Dialogue System: An Empirical Study of Unsupervised Evaluation Metrics for Dialogue Response Generation)也詳細討論了各種評價指標。 

Main Work 

用一個 HRED 模型來逼近和模仿人類的打分,所以需要準備大量的(人類打分<->對話 pair)資料集,訓練的時候採用更近人類的對話系統自動評測方法更近人類的對話系統自動評測方法採用 content vector,reference response,human response 來產生評分 score,引數是 θ,然後用 score 和 human score 的均方誤差來逼近人類的打分。

個人看法 

這種方法採用的是學習性評估方法,那麼就存在一些問題,比如資料集中打分的波動太大,並且對話 pair 的多樣性都會直接大幅度影響該模型的效果,所以這種方法不同的人做出來可能不具有什麼可比性。

YinongLong


作者給自己文章達到的效果立了兩個 flag,一是儘可能的區別於 BLEU 等判斷標準,可以學習到語義的相似性,二是在考慮對話的 context 和 reference response 情況下,對模型生成的 response 進行打分。其中第二個 flag 比較容易,作者文章中就是通過預訓練自己之前的工作 VHRED 來得到一個 encoder,然後對 context,reference response,以及模型的 response 都進行 embedding,最後計算相似度。相比來說,第一個 flag 就比較困難了,因為語義相似性很難定義,但是文章最後的解決方案就是利用 ADEM 的打分和人的打分的高相關性來說明自己達到了捕捉語義相似,但是這個還是值得商榷的。最後其實我個人感覺這篇文章比較重要的是資料。

RyanHuang

INTRODUCTION 

儘管基於神經網路的模型取得了進步,但是在非任務導向的情況下,自動評估對話響應質量仍然是一個具有挑戰性和未被研究的問題。現在使用的最多的方法是 BELU,這種方法最初是用於檢測機器翻譯中的字重疊。然而,BELU 和其他字重疊評估方法已經被認為存在偏差和與人的響應質量的判斷的相關性較差。因此,需要有一種準備的模型可以自動評估對話的響應質量。

 

為了實現這個目標,我們首先在各種對話響應中收集認為評分的資料集,並利用這些資料集來訓練自動對話評估模型,這個模型我們稱為 ADEM(Automatic Dialogue Evaluation Model),該模型使用半監督的方式訓練,使用分層的迴圈神經網路(RNN)來預測人為的評分。

A DATASET FOR DIALOGUE RESPONSE EAVLUATION 

這部分介紹的是如何生成訓練資料集(筆記略)。


TECHNICAL BACKGROUND RECURRENT NEURAL NETWORK 

這部分簡略地介紹了 RNN,論文中使用的是 LSTM。

字重疊的評估方法 

現在最常用的字重疊評估方法是使用在機器翻譯中的 BLEU 和 METEOR 評分,和使用在自動摘要中的 ROUGE 評分。

BLEU:分析了在參考響應中,n-gram 在例項中的共同出現。它計算整個資料集的 n-gram 準確度,然後乘以簡單的懲罰項來懲罰短的翻譯句子。

缺點:字重疊評估方法的一個主要的缺點是當沒有共同的詞語的時候,它不能捕獲模型和參考響應之間的語義相似度。再者,字重疊方法直接計算模型和參考響應,這樣就沒有考慮到了對話的上下文。

AN AUTOMATIC DIALOGUE EAVLUATION MODEL (ADEM)

為了克服字重疊評估方法中存在的缺點,我們的目標是構建一個對話評估模型可以實現以下兩點:1. 越過字重疊統計,捕獲語義的相似度。2. 利用會話的上下文和參考響應來計算模型響應的分數。 

ADEM 使用分層的 RNN 編碼器學習上下文,模型響應和參考響應的分散式表示。給定對話上下文 c,參考響應 r,和模型響應 r^。ADEM 首先用 RNN 解碼器將相應的 c,r,r^解碼為向量的形式。然後,ADEM 使用線性變換空間中的 c,r,r^的向量之間的點積來計算得分分數:更近人類的對話系統自動評測方法是需要學習的矩陣引數,一般初始化為單位矩陣,α,β 是標量常數,範圍在 [0, 5][0,5] 之間,是初始化模型的預測。

矩陣 M,N 可以解釋為一個投射矩陣將模型響應 r^ 對映到相對應的上下文和參考響應的空間中。這個模型是端到端可微分的:所有引數都可以通過反向傳播學習。引數 θ={M,N} 是通過最小化模型預測和人為評分之間的平方誤差訓練可得:更近人類的對話系統自動評測方法是標量常數。 


我們模型中的分層的 RNN 由兩層的 RNN 組成。低層的 RNN,話語層的解碼器,將對話中的詞語作為輸入,在每一個話語的末端生成一個向量結果;上下文級別的解碼器,將每個話語的表示作為輸入,並輸出上下文的向量表示。 

Pre-training with VHRED:因此,我們採用半監督學習,並使用預訓練模型來學習編碼器的引數。我們把解碼器作為神經語言模型的一部分,我們使用另外一個 RNN 解碼器將編碼器的輸出當作輸入,來訓練給定條件的上下文來預測下一回復話語。 我們用於預訓練的對話模型是潛變數分層的RNN編碼器-解碼器模型。VHRED 模型是具有轉向級(turn-level 不大懂是什麼)隨機潛變數,是的原始 HRED 模型的擴充套件。分層的解碼器將對話的上下文解碼為一個向量,VHRED 然後取樣高斯變數,用於調節解碼器。VHRED 模型訓練完後,我們使用最後一個隱藏狀態的上下文級別的編碼器,將 c,r,r^ 作為模型的輸入。


Chen

dialog領域現在兩大問題:

1. 沒有各方面合適的標準資料集,s2s 訓練需要相對大規模語料,但大規模 dialog 資料集相對較難獲得,所以許多時候一篇文章一個資料集,很多還不開源,難以比較。

2. 沒有科學的 evaluation 方法,BLEU 和 ppl 都不太適合 dialog,但又必須要有一個除了 human 以外的 metric,所以很多時候實驗的評測本身就沒法說明問題。

針對第二點,目前還沒有特別靠譜的 metric 提出來,許多文章會在 evaluation 裡引一下 How Not 那篇文章,但最後還是要用那幾個來評價。這篇文章想換一種思路來作 eval,感覺想法有很多值得借鑑的好的地方,但有一些根本問題還是沒有解決,感覺最終合理的 metric 可能還不會是用這種思路。

MT 領域裡 BLEU 之所以合理,很大程度上是因為它切中了 MT 的一個核心特徵——翻譯文字間存在 alignment,所以可以從 word-level 來入手設計 metric。感覺現在 dialog 裡合適的 metric 沒被提出來很大程度上其實是因為大家還沒想清楚 dialog 這個領域相對 MT 或者別的領域它最核心的特點是什麼,感覺還是要從這個特點入手,比想各種 trick 要靠譜些。

nancy


針對現有評估系統沒有考慮到語義,並且其與人為對回覆質量的判斷不太相符,提出了新的自動對話評估模型,稱為 ADEM。 首先收集一份人為對不同對話回覆的評估分數的資料集,這份資料集由 AMT 平臺提供,文中很詳細介紹了相關資料收集的細節,以便他人在類似資料收集工作中能有效的工作; 對於 ADEM 模型,模型本身不復雜,使用一組 RNN 網路來預測分數。感覺這個模型對資料依賴非常大,如果使用這個模型的話,資料的處理工作量應該會很大。

zhangjun


開放域的 chatbot 自動評測現階段問題非常多,用 bleu 也好,用 meteor 也好,或者用 rouge 也好都存在一個嚴重的問題就是無法判斷語義的相似度。機器翻譯任務和自動文摘任務通過匹配相同的 n-gram 都可以比較真實的反應出模型的效果,而對話則不同,太過靈活,可能很高 bleu 值的一句話和 target 的意思都是相反的。封閉域的 chatbot 評測相對容易一些,可以將評測任務轉化成一些可測量的指標上,開放域的評測確實很難,現在的幾個工作都是非常依賴人工的資料,這個代價太大效果也並不那麼理想。

相關文章