當前位置:
首頁 > 新聞 > 阿里開源新一代人機對話模型 ESIM:準確率打破世界紀錄,提升至 94.1%

阿里開源新一代人機對話模型 ESIM:準確率打破世界紀錄,提升至 94.1%

雷鋒網 AI 科技評論按:近日,阿里 AI 開源了新一代人機對話模型 Enhanced Sequential Inference Model(ESIM)。ESIM 是一種專為自然語言推斷而生的加強版 LSTM,據阿里介紹,該演算法模型自 2017 年被提出之後,已被谷歌、facebook 在內的國際學術界在論文中引用 200 多次,更曾在國際頂級對話系統評測大賽(DSTC7)上獲得雙料冠軍,並將人機對話準確率的世界紀錄提升至 94.1%。

ESIM 模型在智能客服、導航軟體、智能音箱等場景均具有廣泛的應用前景。阿里 AI 發布了相關論文介紹了該模型,雷鋒網 AI 科技評論將其編譯如下。

阿里開源新一代人機對話模型 ESIM:準確率打破世界紀錄,提升至 94.1%

打開今日頭條,查看更多圖片ESIM 引入背景

極具潛力和商業價值的人機對話系統正在受到越來越多的關注。隨著近來深度學習模型的引入,我們在構建端到端的對話系統過程中有了更高的成功幾率。然而這一對話系統的構建仍然充滿了挑戰,它要求系統記憶並理解多輪對話文本,而不是像單輪對話系統那樣僅僅考慮當前的話語內容。

多輪對話系統建模可分為基於生成文本的方法和基於檢索的方法。基於檢索的方法將從多輪對話的候選池中選擇最佳回復,該方法可視為對多輪迴復文本選擇任務的執行。選擇回復文本的典型方法主要包括基於序列的方法和基於層級信息的方法。基於序列的方法通常將對話連接成一個長序列,而基於層級信息的方法通常會分別對每個對話文本進行建模,然後再對話語之間的交互進行建模。

最近,有研究工作稱基於層級信息的方法與複雜神經網路結合可以實現比基於序列方法更顯著的增益效果。但在本文中,我們依然選擇研究基於序列的方法即增強序列推理模型(ESIM)的有效性,該模型最初是為了自然語言推理(NLI)任務而開發。

在 DSTC7 對話回複選擇挑戰賽中,我們的模型在兩個數據集(即 Advising 和 Ubuntu 數據集)中都排名第一。除此之外,我們的模型在兩個大型公共基準數據集(Lowe"s Ubuntu)上都比以前所有模型的效果更好,其中也包括上面所提到的最先進的基於層級信息的模型。我們的開源代碼可在 https://github.com/alibaba/ESIM上獲得。

基於層級信息的方法通常會使用額外的神經網路來對多輪對話之間的關係進行模擬,該方法需要將多輪對話中的文本進行分段截取,使其具有相同的長度並且短於最大長度。然而,每輪對話的長度通常在實際任務中會有很大的變化,當使用較大的最大長度值時,我們則需要在基於層級信息的方法中添加大量的 0 進行填充,這將極大地增加計算複雜性和內存成本;而當使用較小的最大長度時,我們則可能在多輪對話環境中丟失一些重要信息。

我們建議在多輪對話回複選擇任務中使用基於序列的 ESIM 模型來有效地解決基於層級信息方法所遇到的上述問題。該方法將多輪對話內容連接成一個長序列,並將多輪對話回複選擇任務轉換為一個句子對的二進位分類(即下一個句子是否是當前對話的回復)任務。

與基於層級信息的方法相比,ESIM 有兩個主要優點。首先,由於 ESIM 不需要使每個話語具有相同的長度,因此它具有較少的零填充,可以比基於層級信息的方法更具計算效率。其次,ESIM 以一種有效的方式隱式地模擬對話中話語之間的交互,而並沒有使用額外複雜的網路結構,詳情如下文中「模型說明」部分所述。

任務描述

對話系統技術挑戰賽(DSTC7)劃分了三個不同的賽道,而我們提出的方法則是針對「端到端的回複選擇」主題的賽道。該賽道側重於面向目標的多輪對話,著重於從一組對話候選文本中選擇正確的回復。參與該賽道的比賽系統不能使用基於人工數據或基於規則的數據,而需要使用比賽方提供的 Ubuntu 和 Advising 這兩個數據集,這些在「實驗部分」我們會做詳細的介紹。

「端到端的回複選擇」賽道提供了一系列具有相似結構的子任務,但在輸出部分和可用於對話部分的任務各不相同。在圖 1 中,「√」表示在標記的數據集上評估任務,「×」表示未在該數據集上進行任務評估。

阿里開源新一代人機對話模型 ESIM:準確率打破世界紀錄,提升至 94.1%

圖 1 任務描述

模型說明

多輪迴複選擇任務是在給定多輪對話的情況下,從候選池中選擇下一對話內容。我們將問題轉換為二進位分類任務,即對於給定多輪對話和候選回復,我們的模型只需要確定候選回復是否正確。在本節中,我們將介紹這個起初專為自然語言推理開發的模型——增強順序推理模型(ESIM)。該模型由三個主要組成部分組成,即輸入編碼(Input Encoding)、局部匹配(Local Matching)和匹配合成(Matching Composition),如圖 2 所示。

阿里開源新一代人機對話模型 ESIM:準確率打破世界紀錄,提升至 94.1%

圖 2 基於注意力機制力的句子對分類方法

輸入編碼

輸入編碼部分則執行對對話信息進行編碼,以及在對話含義中的做標記的任務。ESIM 和基於層級信息的方法不同,後者通過複雜的層級信息來編碼對話信息,而 ESIM 則是像這樣簡單地編碼對話信息——首先,將多輪對話內容連接為長序列,其被標記為 c =(c1 ;:::;cm);候選回復被標記為 r =(r1 ;:::; rn);然後使用預訓練的字嵌入 E ∈ R de×|V|(其中 |V| 是辭彙量大小,de是詞語嵌入的維度)將 c 和 r 轉換為兩個矢量序列 [E(c1);:::;E(cm)] 和 [E(r1);:::; E(rn)]。其中有許多類型的預訓練詞嵌入,在這裡我們提出了一種利用多個嵌入的方法——給定 k 個預訓字嵌入 E1 ;:::; Ek,我們連接單詞 i 的所有嵌入,如:E(ci)= [E1(ci);:::; EK(CI)];然後再使用具有 ReLU 的前饋層將詞語嵌入的維度從(de1+ + dek)減小到 dh

為了在其對話含義中表示標記,我們將對話和回復輸入 BiLSTM 編碼器來獲得依賴於對話隱藏狀態的 cs和 rs

其中 i 和 j 分別表示對話中的第 i 個標記和回復中的第 j 個標記。

局部匹配

對話和回復之間的局部語義關係建模是確定回復是否正確的關鍵組件。因為正確的回復通常與文本中的一些關鍵字有關,它可以通過對局部語義關係建模來獲得。我們並不是直接將對話和回復編碼為兩個密集向量,而是使用交叉注意力機制將標記與對話對齊並重新回復,然後計算標記層級的語義關係。注意力機制的權重計算如下:

軟對齊用於獲得對話與回復之間的局部相關性,其由上述等式中的注意力機制力矩陣 e ∈ R m×n 計算而得。然後,對於對話中第 i 個標記的隱藏狀態,即 cis(已編碼標記本身及其對話含義),候選回復中的相關語義被識別為向量 cid,在此稱為雙向量,它是所有回復狀態的加權組合,公式如下所示:

其中α ∈ R m×n和 β ∈ Rm×n是相對於軸 2 和軸 1 的歸一化注意力機制權重矩陣。我們對回復中每個標記的隱藏狀態 rjs,執行類似的計算,公式如下:

通過比較矢量對>,我們可以模擬對齊標記對之間的標記層級語義關係。類似的計算也適用於矢量對>。我們收集如下的局部匹配信息:

在這裡,我們使用了一種啟發式的差分匹配方法和基於元素的產物來分別獲得對話和回復的局部匹配向量

。其中 F 是一個單層前饋神經網路,可以使用 RELU 減少維數。

匹配合成

匹配合成的實現如下:為了確定回復是否是當前對話的下一個話語,我們探索了一個集成層來集成所得的局部匹配向量(cl和 rl):

我們再次使用 BiLSTM 作為集成圖層的構建塊,但 BiLSTMs 的作用與輸入編碼圖層的作用完全不同。這裡的 BiLSTM 讀取局部匹配向量(cl和 rl)並學習對關鍵局部匹配向量進行區分從而獲得總體對話的層級關係。

BiLSTM2 的輸出隱藏向量通過集成的操作轉換為固定長度向量,並饋送到最終的分類器以確定整體關係;其中最大值和平均值將被使用並連接在一起,來獲得一個固定長度的向量;最後一個矢量被送入有一個隱藏層、TANH 激活層和 SOFTMAX 輸出層的多層感知器(MLP)分類器中;整個過程通過端到端的方式來最小化交叉熵損失,從而訓練整個 ESIM 模型。

基於句子編碼的方法

對於 Ubuntu 數據集中的子任務 2,我們需要從 120000 個句子的候選池中選擇下一個回復話語;如果我們直接使用基於交叉注意力機制的 ESIM 模型,則計算成本是讓人難以接受的。相反,我們先使用基於句子編碼的方法從 120000 個句子中選擇前 100 個候選話語,然後使用 ESIM 重新排列它們,這樣的方式也是行之有效的。

基於句子編碼的方法使用了圖 3 所示的 Siamese 架構,它應用參數綁定神經網路來編碼對話和回復;然後再使用神經網路分類器來確定兩個句子之間的關係。在這裡,我們使用具有多頭自注意力機制池中的 BiLSTM 來對句子進行編碼,以及用 MLP 進行分類。

阿里開源新一代人機對話模型 ESIM:準確率打破世界紀錄,提升至 94.1%

圖 3 基於句子編碼的句子對分類方法

我們使用與 ESIM 相同的輸入編碼過程。為了將可變長度句子變換為固定長度矢量表示,我們使用所有 BiLSTM 隱藏向量(H)的加權求和:

是權重矩陣;

是偏差; da是關注網路的維度,dh是 BiLSTM 的維度。

是 BiLSTM 的隱藏向量,其中 T 表示序列的長度。

是多頭注意力機制權重矩陣,其中 dm是需要使用保持集調整的頭數的超參數。我們不是使用最大池或平均池,而是根據權重矩陣 A 對 BiLSTM 隱藏狀態 H 求和,以得到輸入句子的向量表示:

其中矩陣

可以轉換為矢量表示

。為了增強句子對之間的關係,與 ESIM 類似,我們將兩個句子的嵌入及其絕對差異和元素乘積連接為 MLP 分類器的輸入:

MLP 有 ReLU 激活層、快捷連接層和 softmax 輸出層,並能夠通過最小化交叉熵損失對整個模型進行端到端的訓練。

實驗

數據集

我們在 DSTC7「端到端的回複選擇」賽道的兩個數據集上測試了我們的模型,即 Ubuntu 和 Advising 數據集。此外,為了與以前的方法進行比較,我們還在兩個大規模的公共回複選擇基準數據集上測試了我們的模型,即 Lowe 的 Ubuntu 數據集和電子商務數據集。

Ubuntu 數據集。Ubuntu 數據集包括了來自 Ubuntu Internet Relay Chat(IRC)的雙人對話數據。在這個挑戰下,每個對話框包含了超過 3 個回合的對話,系統被要求從給定的候選句子集中選擇下一個回復話語,其中 Linux 手冊頁會作為外部知識提供給參賽者。我們使用了與 Lowe 提出的類似數據增強策略,即我們將每個話語(從第二個開始)視為潛在回復,而先前的話語作為其對話;因此,長度為 10 的對話將產生 9 個訓練樣例。為了訓練二進位分類器,我們需要從候選池中抽取負面(錯誤)的回復。最初,我們使用正負回複比率為 1:1 來平衡樣本;後來我們發現使用更多的負面回復將能夠有效改善結果,如 1:4 或 1:9。考慮到效率因素,我們在所有子任務的最終配置中除了子任務 2 採用了 1:1 的正負回複比率,其餘均選擇了 1:4 的正負回複比率。

Advising 數據集。Advising 數據集包括了模擬學生和學術顧問之間討論的雙人對話數據;結構化信息則作為資料庫提供,包括了課程信息和角色;其中數據還包括了句子的釋義和目標回復。我們使用類似的數據增強策略,基於原始對話及其釋義的 Ubuntu 數據集,正面回復之間的比率是 1:4.33。

Lowe 的 Ubuntu 數據集。此數據集類似於 DSTC7 Ubuntu 數據,訓練集包含了一百萬個對話-回復對,正負回復之間的比率為 1:1。在開發和測試集上,每個對話關聯了一個肯定回復和 9 個否定回復。

電子商務數據集。電子商務數據集是從中國最大的電子商務平台淘寶網的客戶與客戶服務人員之間的真實對話中收集的。訓練和開發集中的正負回復之間的比率為 1:1,測試集中的比率為 1:9。

數據訓練

我們使用 spaCy3 來標記兩個 DSTC7 數據集的文本,並使用原始標記化文本,這過程中無需對兩個公共數據集進行任何進一步的預處理;然後再對多輪對話內容進行連接並插入兩個特殊標記 eou 和 eot,其中 eou 表示話語結束,eot 表示結束。

超參數基於開發集進行調整。我們使用 GloVe 和 fastText 作為預訓練的單詞嵌入。對於 Ubuntu 數據集的子任務 5,我們用 word2vec 從所提供的 Linux 手冊頁中訓練了單詞嵌入。詳細信息如圖 4 所示。

阿里開源新一代人機對話模型 ESIM:準確率打破世界紀錄,提升至 94.1%

圖 4 預訓練的單詞嵌入統計。其中,1-3 行來自 Glove;4-5 行來自 FastText;6 行來自 Word2Vec。

請注意,對於 Advising 數據集的子任務 5,我們嘗試使用建議的課程信息作為外部知識,但並沒有觀察到任何有效提升;因此,我們在不使用任何外部知識的情況下提交了 Advising 數據集的結果。對於 Lowe 的 Ubuntu 和電子商務數據集,我們使用 word2vec 對訓練數據進行預訓練的單詞嵌入。在兩個 DSTC7 數據集的訓練過程中,預先訓練的嵌入是固定的,但是我們針對 Lowe 的 Ubuntu 和電子商務數據集進行了微調。

Adam 演算法則被用於訓練過程中的優化。已知 Lowe 的 Ubuntu 數據集的初始學習率為 0.0002,其餘為 0.0004 的情況下;對於 DSTC7 數據集,小批量數據的大小設置為 128,對於 Lowe 的 Ubuntu 數據集,小批量數據的大小設置為 16,對於電子商務數據集,小批量數據的大小為 32。BALTMS 和 MLP 的隱藏大小設置為 300。

為了使序列小於最大長度,我們切斷了回復的最後一個標記,但同時對上下文進行了反向切斷;這是因為我們假設上下文中的最後幾句話比前幾句話更重要。對於 Lowe 的 Ubuntu 數據集,上下文序列和回復序列的最大值分別為 400 和 150;對於電子商務數據集,對應最大值為 300 和 50;其餘數據集分別為 300 和 30。

更詳細的方法細節為:對於 DSTC7 Ubuntu 的子任務 2,我們使用 BILSTM 的隱藏序列長度為 400,並用 4 個頭來進行句子編碼方法。對於子任務 4,候選池可能不包含正確的下一個話語,因此我們需要選擇一個閾值;當正面標記的概率低於閾值時,我們預測候選池不包含正確的下一個話語。閾值則基於開發集從 [0:50; 0:51; ::; 0:99] 中進行選擇。

結果

圖 5 總結了所有 DSTC7 回複選擇子任務的結果。挑戰排名考慮了 recall@10 效果和平均倒數排名(Mean Reciprocal Rank,簡稱 MRR,是一種用于衡量搜索之類的指標)的平均值,在 advising 數據集上,因為測試用例 1(advising1)對訓練數據集有一定的依賴性,因此則根據測試用例 2(advising2)結果進行排名。我們的結果在 7 個子任務中排名第一,在 Ubuntu 的子任務 2 中排名第二,在 DSTC7 回複選擇挑戰賽的兩個數據集中總體排名第一。子任務 3 可能包含多個正確的回復,因此平均精度(MAP)被視為附加的衡量標準。

阿里開源新一代人機對話模型 ESIM:準確率打破世界紀錄,提升至 94.1%

圖 5 針對 DSTC7 回複選擇挑戰的隱藏測試集的提交結果。其中 NA 表示不適用。總共有 8 個測試條件。

消融分析

對於 Ubuntu 和 Advising 數據集,分別在圖 6 和圖 7 中顯示了消融分析。對於 Ubuntu 子任務 1,ESIM 達到 0.854 的 R @ 10 和 0.6401 的 MRR。如果我們移除局部匹配和匹配組合以加速訓練過程(「-CtxDec」),則 R @ 10 和 MRR 分別下降到 0.845 和 0.6210;再進一步捨棄最後一個單詞而不是對話的前幾個詞(「-CtxDec&-Rev」),R10 和 MRR 將降低到 0.840 和 0.6174。

通過對不同參數初始化和不同結構訓練的模型的輸出進行平均來對上述三種模型進行集成(「Ensemble」),得到 0.887 的 R @ 10 和 0.6790 的 MRR。而對於 Ubuntu 子任務 2,使用基於句子編碼的方法(「Sent-based」)可達到 0.082 的 R @ 10 和 0.0416 的 MRR。在使用不同的參數初始化集成幾個模型後(「Ensemble1」),R @ 10 和 MRR 將會增加到 0.091 和 0.0475。使用 ESIM 重新排列「Ensemble1」預測的前 100 名候選人,將獲得 0.125 的 R @ 10 和 0.0713 的 MRR。移除對話的局部匹配和匹配組合(「-CtxDec」)會將 R @ 10 和 MRR 降低為 0.117 和 0.0620。對上述兩種 ESIM 方法進行集成(「Ensemble2」),將得到 0.134 R @ 10 和 0.0770 MRR。

對於 Ubuntu 子任務 4,我們觀察到與子任務 1 相似的趨勢。ESIM 達到 0.887 R @ 10 和 0.6434 MRR;而使用「-CtxDec」,則性能降低到 0.877 R @ 10 和 0.6277 MRR;如果使用「-CtxDec&-Rev」,則性能進一步降低至 0.875 R @ 10 和 0.6212 MRR。上述三個模型「Ensemble」的集成將達到 0.909 R @ 10 和 0.6771 MRR。

對於 Ubuntu 子任務 5,除了使用 Linux 手冊頁的外部知識外,數據集與子任務 1 相同。從 Linux 手冊頁(「+ W2V」)中添加預訓練的字嵌入將得到 0.858 的 R @ 10 和 0.6394 的 MRR,在沒有外部知識的情況下與 ESIM 相比,對子任務 1(0.887 R @ 10 和 0.6790 MRR)的集成模型與「+ W2V」模型進行集成,將帶來了進一步的增益,使其效果分別達到 0.890 R @ 10 和 0.6817 MRR。

阿里開源新一代人機對話模型 ESIM:準確率打破世界紀錄,提升至 94.1%

圖 6 DSTC7 中 Ubuntu 數據集的開發集消融分析

圖 7 顯示了 DSTC7 中 Advising 數據集的開發集消融分析。我們使用了移除局部匹配和匹配組合的 ESIM 來提高計算效率,並觀察到該數據集與 Ubuntu 數據集有類似的趨勢。「-CtxDec&-Rev」的 R@10 和 MRR 效果降低值會比「-CtxDec」更多,但總體來看,兩個模型的整體會比單個模型產生更顯著增益。

阿里開源新一代人機對話模型 ESIM:準確率打破世界紀錄,提升至 94.1%

圖 7 DSTC7 中 Advising 數據集的開發集消融分析

與以前的工作比較

圖 8 總結了兩個公共回複選擇基準數據集的結果。第一組模型包括基於句子編碼的方法,他們使用了人工特徵或神經網路特徵數據來對回復和對話進行編碼,然後應用餘弦分類器或 MLP 分類器來確定兩個序列之間的關係。之前的工作則使用了 TF-IDF,RNN 和 CNN,LSTM,BiLSTM 來編碼對話和回復。

阿里開源新一代人機對話模型 ESIM:準確率打破世界紀錄,提升至 94.1%

圖 8 兩個大型公共基準數據集上不同模型的比較。除了我們做的研究結果之外,其他所有結果都來自以前的工作

第二組模型由基於序列的匹配模型組成,通常使用注意力機制,包括 MV-LSTM,Matching-LSTM,Attentive-LSTM 和多渠道。這些模型比較了對話與回復之間的標記層級關係,而不是像在基於句子編碼的方法中那樣直接比較兩個密集向量。這些模型比第一組模型具有更好的性能。

第三組模型包括更複雜的基於層級信息的模型,它們通常明確地模擬標記層級和話語層級信息。Multi-View 模型利用了話語關係——來自單詞序列視圖和話語序列視圖。DL2R 模型採用了神經網路,並在對話中用其他話語重新表達最後一個話語。SMN 模型則使用了 CNN 和注意力機制來匹配對話中每個話語的回復。DUA 和 DAM 模型則採用了與 SMN 類似的框架,其中一個改進了封閉式自注意力機制,另一個改進了 Transformer 結構。

雖然之前基於層級信息的工作聲稱他們通過使用多輪對話內容的層級信息,能夠實現最先進的性能,但我們的 ESIM 序列匹配模型效果優於所有先前的模型,包括基於層級的模型。在 Lowe 的 Ubuntu 數據集中,ESIM 模型在性能方面比 DAM 模型先前的最佳結果有更顯著的提高,效果高達 79.6%(從 76.7%)R @ 1,89.4%(從 87.4%)R @ 2 和 R@5 為 97.5%(從 96.9%)。對於電子商務數據集,ESIM 模型也通過 DUA 模型完成了對先前技術水平的實質性改進,高達 57.0%(從 50.1%)R @ 1,76.7%(從 70.0%)R @ 2 和 R@5 為 94.8%(從 92.1%)。這些結果均證明了 ESIM 模型(一種順序匹配方法)對多輪迴複選擇的有效性。

結論

先前最先進的多輪迴複選擇模型使用基於層級的(話語級和標記級)神經網路來準確地模擬不同回合對話之間的相互作用,從而實現對對話進行建模。但在本文中,我們證明了僅基於序列的順序匹配模型也可以表現得比所有先前的模型更好,其中包括最先進的基於層級的方法。這表明這種採用順序匹配的方法在過去尚未得到充分的利用;而且值得注意的是,該模型在 DSTC7 的端到端回複選擇挑戰賽中,在兩個數據集測試上都取得了第一名的結果,並在兩個大規模的公共回複選擇基準數據集上都產生了最優的性能。我們在未來的多輪迴複選擇研究中,也將考慮探索外部知識的有效性,如:知識圖譜和用戶概況。


論文鏈接:

https://arxiv.org/abs/1901.02609

開源地址:

https://github.com/alibaba/esim-response-selection

雷鋒網 AI 科技評論

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

中國如何在開源晶元領域找到突破口?RISC-V 會是一個絕佳機會
華為在歐洲提交鴻蒙 OS 商標;谷歌 Fuchsia 支持驍龍 835;魅族 5G 手機明年見 | 雷鋒早報

TAG:雷鋒網 |