引言
得益於深度學習的發展,端到端的生成式聊天系統在模型層面的研究工作在近兩到三年中取得了長足的進步 [1-5]。與之相比,對於生成結果的合理評價方法的探索則極為滯後,無法為模型的優化方向提供有效的指引。現有的較為通用的自動評價方法多是來源於機器翻譯、自動文摘等領域,被普遍認為無法有效評測端到端的生成式模型生成結果的語義多樣性,而人工評測的開銷較大且無法保證很高的一致性 [6,7]。與此同時,儘管目前開放域聊天的通用訓練資料較多,但針對特定領域的富含較大資訊量的對話資料則比較缺少。針對這些問題,論文 LSDSCC: A Large Scale Domain-Specific Conversational Corpus for Response Generation with Diversity Oriented Evaluation Metrics 提出了兩種用於自動評測生成回覆的語義多樣性的量化指標,並開放了一個由電影領域的高質量 query-response 組成的資料集。
1 新的端到端對話生成資料集 LSDSCC
生成式聊天是自動對話領域中最前沿的研究方向之一,其核心技術就是利用端到端的一體化結構自動生成回覆(Response Generation),而回復生成模型通常需要大規模的聊天資料進行訓練。理論上,使用者通過社交網路平臺積累的海量對話資料可以用於訓練端到端的回覆生成模型。然而,目前學術界常用的大規模訓練資料集普遍存在噪聲資料比例較高、主題分散等問題,給模型的訓練和評價帶來了一定的問題。針對這方面的問題,本文給出了一個基於單一領域資料來源的高質量對話生成訓練資料集。
1.1 基於單一領域的對話生成資料集
現有的很多聊天資料集通常是開放域資料集(包括很多領域,如電影,音樂等),如果生成的回覆與參考回覆不在統一領域,評價生成回覆的質量的難度可想而知。除此之外,常見的訓練資料集諸如 Twitter、Ubuntu 等 [8,9],包含了大量的噪聲資訊(如,typos 和 slangs,超連結等),也不利於模型的有效訓練。因此,使用高質量的單一領域資料集評價不同的回覆生成模型更加合理。為此,作者選取了 Reddit 論壇的電影板塊的對話作為候選資料集,並在此基礎上進行了資料清洗(替換掉 html 標籤、表情符等)、詞表截斷以及對話精簡(刪除特別長的句子)等複雜的預處理。
資料清洗:首先,在 Reddit 獲取的原始人與人的對話資料中通常包含 mark-down 和 html 標籤,這些標籤會干擾語句的合法性,作者將這種型別的標籤剝離,從而得到完整通順的句子。此外,Reddit 的回覆通常還包含大量的 URL、Email 和數字,本文利用正規表示式將此類字串統一格式化為「__URL__」、「__EMAIL__」和「__DIGIT__」。然後,如 Reddit 這樣的社交網路中會經常使用表情符號傳遞資訊,作者將利用對應的表情符號與詞語的對映表,將其轉換為對應的詞語,從而有利於文字分析和理解。最後,本文將重複多次的詞語或者字(如,「cooool」and「ahahaha」)也轉化為正常的形式。
詞表剪枝:經過上述清洗之後,詞表中仍然存在大量的超長或者低頻字串(如,「ILoveYou」),這導致詞表包含超過 160K 的詞語。如表 1 所示,這些詞語中約 45% 左右的是超長組合詞彙或者不是 ascii 的詞彙。對於「序列-序列」模型來說,這麼大的詞表將使得模型引數非常龐大、模型很難收斂等問題。將這些詞語全部對映成「UNK」會損失掉大量的資訊,從而影響模型的表現。為此,作者將超長或者低頻的字串拆解成若干高頻詞,儘量保留的回覆所包含的資訊。
表 1 Post 和 Response 中的噪聲詞彙的比例
對話精簡:圖 1 是資料集中詢問 post 和回覆 response 的長度分佈情況,可以看出約有 40% 的話語長度超過了 50。而大多數回覆生成模型的關鍵元件迴圈神經網路(RNN)在實際的應用中很難捕獲長距離的語義資訊。此外,回覆過長,「序列-序列」模型中的解碼器也很難訓練,並且生成過程中的效率也會受到影響。【同時,聊天場景下的回覆通常是用很少的句子表達一個單一的觀點】。為此,作者選取了詢問 post 長度不超過 100、回覆長度不超過 60 的對話,最終獲取了一個包含約 74 萬單論對話的資料集。
圖 1 資料集中 Post 和 Response 長度分佈
2 面向生成結果語義多樣性的自動評價方法
自動生成的回覆的自動評價方法一直都是一個難點。目前大多數生成的回覆質量自動評價方法大多數來源於機器翻譯 (如 BLEU Score)[10,11],這些方法可以從一定程度上度量生成的回覆與輸入話語的相關性。但是,由於聊天場景下回復通常比較發散(一個輸入話語常有很多語義相差很大的回覆,如表 2 所示),與機器翻譯有很大不同,因此上述這些自動方法很難評價生成回覆的質量,特別是面向回覆的語義多樣性 (semantic diversity) 的評價。此外,基於人工標註的方法固然能夠保證較全面的評價,但主要問題在於開銷較大且無法保證很高的一致性。為了自動地對回覆生成模型合理地評價,作者使用半自動地方法構建了一個電影領域的、高質量的測試集合,同時提出了兩個多樣性的自動評價指標。
表 2 多樣性回覆的例項
2.1 複合參考回覆集的半自動構建
圖 2 資料集中詢問 post 的回覆個數分佈
圖 2 給出了 Reddit 語料中 post 的回覆個數分佈。可以看出,約 70% 的只有一個回覆,16% 的有兩個回覆,這與我們最終的聊天場景下一個輸入話語有很多回復不相符。因此,如果使用這樣的測試資料去衡量回復生成模型的表現是不合理的。為此,本文使用半自動的方法為輸入話語構建了多個回覆,並按照回覆語義關係進行了分組。
為一個輸入話語構建多個回覆的第一步就是從大規模的資料中將與輸入話語語義相似的話語找出來。為此,作者通過基於 TF-IDF 和語義向量的相似度方法計算話語之間的相似度,從而找到跟當前話語最相似的若干個語句。整個過程可以分為兩個階段,首先根據詞的 TF-IDF,使用 apache lucence 抽取 100 個最相似的語句;然後,使用 Doc2Vec 將當前話語和所有候選語句向量化,根據向量計算當前話語與候選語句之前的語義相似度,進而對候選語句重新排序,選取相似度大於某一閾值(如,0.9)作為當前話語最相似的語句。
將與當前話語語義相似的語句的回覆作為當前話語的回覆是合理的,因此,作者將 15 個最相似語句的回覆收集起來作為當前話語的回覆。而在社交網路中噪聲比較大,會有一些不合理的回覆混入到其中。為了保證資料質量,邀請了一些標註人員進行話語與回覆的相關性判斷。在相關性判斷過程中,要求標註人員首先判斷候選回覆的語法是否正確,是否與對應的話語語義相關,如果這兩個條件都滿足,該回覆被標為「1」,否則被標為「0」。經過這個過程之後,每個話語的回覆的個數分佈如下:
圖 3 測試集的回覆個數分佈
本文主要的目的是構建一個可以評價對話模型多樣性的測試資料集,為此,作者對獲取的回覆集合進行了分組,每個組內的回覆語義高度相關,組之間的語義有較大差異。首先,通過回覆之間的詞重疊度的將回復自動分組。這種自動分組方法非常粗糙,只能將一些詞重疊比較多的回覆歸併到一個組裡,而對於那些語義相近用詞差異很大的回覆沒法合併到一個組裡。為此,作者請標註人員將語義相似的組合並,從而實現了將話語的多個回覆分成了若干組。在這個過程中標註人員需要先理解 post 的語義,然後閱讀每組回覆理解其表達的語義,在此基礎上,將語義相近的回覆組進行歸併。因此,可以通過對話模型生成回覆對於這些組的覆蓋情況判斷其多樣性。
2.2 基於複合參考回覆的多樣性評價指標
現有的回覆生成框架大都基於神經機器翻譯模型,因此 BLEU Score 對於生成結果的語義相關性的度量是有相對的指示價值的。然而,由於多個參考回覆的語義差異較大,使用生成回覆與每一個參考回覆的平均 BLUEU 值評價生成模型的表現是不合理的。為了揭示生成的回覆的多樣性,本文首先提出了一個基於 Multi-BLEU 的 MaxBLEU 評價生成回覆與參考回覆集合之前的相關性。然後,基於 MaxBLEU 提出了兩個多樣性的評價指標。其過程如下:
給定一個輸入問句,生成模型會生成一組回覆假設 {h_i},同時還有一組半自動的參考回覆 {r_ij},r_ij 表示第 i 組的第 j 個回覆,基於此 MaxBLEU 定義如下:
基於 Max BLEU,本文提出了兩個多樣性評價指標:平均多樣性 (Mean Diversity Score, MDS) 和概率多樣性 (Probabilistic Diversity Score, PDS),用於評價生成模型生成的回覆的多樣性。其計算過程如表所示,
演算法 1 PDS 和 MDS 求解過程
從 MDS 和 PDS 演算法中可以看出,MDS 假設每組回覆都有相同的概率,而不考慮其中包含的參考回覆的數量;與之相反,PDS 在估算每組回覆的概率的時候,則將回復的數量考慮在其中。總之,MDS 和 PDS 越大,生成的假設回覆覆蓋的參考回覆組越多,對應的生成模型的多樣性就越好。下圖用一個實際的例子展示了 PDS 和 MDS 計算過程。
圖 4 MDS 和 PDS 的例項分析
3 結語
本文提出了一個電影領域的對話資料集以及複合參考回覆的測試集,並基於此提出了兩個度量生成式對話模型多樣性的評價指標 PDS 和 MDS。實驗發現本文提出的評價指標可以更好的反應已有的回覆生成模型在回覆多樣性上的表現。此外,由於缺乏統一的評價標準和資料集,生成式對話的研究一直無法專注於模型的主航道上,本文提出的資料集和評價方法從一定程度上緩解這個問題。同時,期望本文的多樣性指標可以為構建基於多樣性的損失函式提供新的研究思路,從而實現對回覆多樣性的直接優化。