百分點認知智慧實驗室出品:基於BERT的問題語義等價新模型

百分點發表於2019-09-30

問題的語義等價判斷是智慧對話系統中的典型難題,百分點認知智慧實驗室提出了一種新的問題語義層次匹配模型,該模型借鑑了域適應的MMD思想,創新的結合了BERT時代的預訓練模型和BIMPM上層架設網路,通過抽取語言模型中不同層的表示而達到更好的效果。在公開的Quora和SLNI兩個資料集上分別進行實驗,該模型的效果都達到了目前的State-of-the-art。

智慧對話系統因其巨大的潛力和商業價值受到越來越多研究者和從業者的關注,對話的主要種類包括閒聊型、任務型、知識型、閱讀理解型等,目前已經廣泛應用在智慧客服、智慧音響、智慧車載等眾多場景。

近年來,智慧對話還出現了新的應用場景,例如可以將自然語言轉換為各種程式性語言,如SQL,從資料庫中找到相應的答案,讓使用者和資料庫的互動變得更加直接和方便。

1問題語義等價的重要性
儘管智慧對話系統取得了長足的進展,但對於專業性非常強的對話系統,自動構建回答對的技術尚不能保證其回答的絕對正確性。另一方面,專業性非常強的對話系統相比以閒聊為目的的對話系統而言,是更有業務價值的。對於專業性非常強的對話系統,其挑戰在於,問題回答稍有不慎,往小了說可能對使用者造成困惑,往大了說甚至會引起法律糾紛,這種情況對於政府機構、金融機構和大型企業都是存在的。在這種情況下,目前最可靠的方法仍然是通過人工構建問答對來獲取答案。

然而針對基於問答對的問答系統,雖然我們可以採取人工擴充問答對的方式來提高系統系統匹配的準確性,但是由於自然語言本身的複雜性,採用窮舉的方式去列出使用者對於同一問題所有可能的問法需要耗費大量人力物力,這是不現實的。舉例來說,即使對於詢問天氣這樣的簡單問題,其問法可能也是多種多樣的。比如說,使用者可能會採用“請問,北京明天天氣怎麼樣?”,“北京明天多少度?”,“北京明天天兒咋樣?”等等問法。在這種情況下,所需要的演算法是一種能夠判別給定的問題和問題庫中的問題是否語義上等價的模型。

簡單的看起來,似乎只需要判斷兩個句子的相似度,例如其重合詞語的個數即可以解決。但事實上,判斷句子是否等價的任務要遠遠比單純的詞語匹配複雜。舉例來說,問題“市政府的管轄範圍是什麼?”和“市長的管轄範圍是什麼?”僅有兩個字的差異,但兩者語義是不相同的,因此其回答也應該不一樣的。另一方面來說,“市政府的職責是什麼”和“請問,從法律上來講,市政府究竟可以管哪些事情“這兩個問題,除去在“市政府”一詞外,幾乎是沒有任何重合的,但兩者語義是等價的,因此其答案也應該是一樣的。

從這幾個例子來看,句子匹配的任務需要模型能夠真正理解其句子的語義。而今天我們所介紹的模型就是如何讓機器更有效的理解和分析兩個句子的含義,並進行語義等價比較。而我們採用的方法借鑑了MMD在影像處理時用到的深度匹配思想,並將此思想運用在了BERT多層網路模型上。


2基於BERT和BIMPM的問題語義等價新模型
在BERT等預訓練模型出現之前,語義本身的表達一般是用word vector來實現。為了得到句子的深層語義表達,所採用的方法往往是在上層架設網路,以BIMPM為例,BIMPM是一種matching-aggregation的方法,它對兩個句子的單元做匹配,如經過LSTM處理後得到不同的time step輸出,然後通過一個神經網路轉化為向量,然後再將向量做匹配。

下面來詳細介紹一下BIMPM的大體流程,如圖中所示,從Word Representation Layer 開始,將每個句子中的每個詞語表示成d維向量,然後經過Context Representation Layer 將上下文的資訊融合到需要對比的P和Q兩個問題中的每個time-step表示。Matching Layer 則會比較問題P和問題Q的所有上下文向量,這裡會用到multi-perspective 的匹配方法,用於獲取兩個問題細粒度的聯絡資訊,然後進入Aggregation Layer 聚合多個匹配向量序列,組成一個固定長度的匹配向量,最後用於Prediction Layer 進行預測概率。
  百分點認知智慧實驗室出品:基於BERT的問題語義等價新模型
通過BIMPM模型可以捕捉到句子之間的互動特徵,但是這樣的匹配僅僅也只是在表層特徵進行比較,並不涉及深層次的特徵比較。為了進行深層次的特徵比較,我們借鑑了影像中的MMD思想,Maximum Mean Discrepancy,即最大平均差異,通過深度神經網路的特徵變換能力,對變換後的特徵分佈進行匹配。MMD的最大優點在於它不僅進行表層特徵的匹配,還進行深層次特徵的匹配,這樣可以更精確地計算出特徵之間的匹配程度,提升模型的效果。拿影像對比來舉例,影像中所蘊含的資訊不單單是由表層特徵就可以來涵蓋的,往往是通過表層、多個隱藏層以及它們之間不同的引數相加得到的結果。

可是為什麼這種方法很少在NLP領域聽聞呢?因為之前的模型如BIMPM 是總結表層的特徵,而並非深層特徵。BIMPM將每個句子中的每個詞語表示成d維向量,然後經過Context Representation Layer,將上下文的資訊融合到需要對比的P和Q兩個句子中的time-step表示,最終比較句子P和句子Q的所有上下文向量,但它也只是對錶層特徵進行匹配,從而忽略很多額外的語義特徵,但是BERT 預訓練模型的流行,讓深層特徵匹配成為了現實。

如果我們將MMD的思想應用到句子匹配的任務上,並用BERT預訓練深層模型來實現,就會得到一個重要的啟發,MMD思想的主要效果來源於它將BERT預訓練深層模型的不同層表示進行匹配,形象地來說,這是一種“向下匹配”的思維。而BIMPM由於在BERT之前出現,其語義表示只能通過詞(字)向量和LSTM等網路進行,因此它捕捉特徵表示的方法只能通過“向上匹配”。這是否意味著自從BERT出現以後,將這兩種方式進行結合呢?

基於這個思路,我們在本文中提出了問題語義等價的層次匹配模型,它的思想是將特徵“向下匹配”和“向上匹配”相結合。在具體的實現上,我們分別從BERT深層模型的最後幾層中提取特徵通過加法進行拼接,替代原始的字向量輸入到BIMPM模型當中。這種做法是和MMD很相似的,只不過MMD中採用各種距離函式,而在這裡我們採用的是多種匹配函式。除此之外,我們對BIMPM模型也做了以下修改:

首先,我們去掉了原始BIMPM模型中接在字向量層的Bi-LSTM模型,之所以這樣做,其原因在於LSTM並沒有設計機制保證梯度向深度模型的後向傳導;

其次,我們用Transformer模型替代了BIMPM最上層的Bi-LSTM模型。這樣做的原因主要是考慮到Bi-LSTM能夠捕捉資料當中的序列特徵。但是由於BIMPM採用多種匹配後,其序列性並不強,所以Transformer更適合該模型。

3模型的實驗結果

實驗一:Quora資料集上的問題語義等價

我們提出的問題層次匹配模型在公開的Quora資料集達到了目前的State-of-the-art,這個資料集包括了超過400,000問題組,專門用來研究兩個句子是否語義等價的二分問題。因為該資料集的標註質量非常高,它經常用來測試語義理解的模型效果,我們按照7:2:1的比例來分配訓練集、驗證集和測試集,測試集上的具體實驗結果如下:
百分點認知智慧實驗室出品:基於BERT的問題語義等價新模型
為了進行對比,我們第一個結果為BERT單模型的的結果,第二個、第三個則分別為BERT和ABCNN、BERT和BIMPM的結果。在配對深度方面,我們選擇了BERT預訓練模型的表層一層、表面兩層和表面三層,隨著層數的增加我們應用了橫向合併和縱向合併。

如上表中結果所示,BERT和BIMPM的結合已經比兩個單模型的表現要出色。在BIMPM中,我們先去除了Bi-LSTM,其模型的表現降低到了88.55%,如果我們在配對層之後繼續去除Bi-LSTM,其模型的表現會降低到87.8%。我們還可以看出,在預訓練模型中增加上層模型可以提升幾個點的表現,隨著層數的增加,可以得到更高的F1值和準確率。
 
實驗二:SLNI子資料集上的問題語義等價

為了確保實驗結論的有效性,除去Quora的資料集之外,我們還採用了SLNI資料集當中包含句子等價性的資料集,該資料集包括55萬條訓練集和10000條測試集。很多學者都用了這些資料來測試他們的模型包效果,對比這些模型我們的準確率上有將近兩個點的提升,達到了目前的State-of-the-art,具體實驗結果如下表所示:
百分點認知智慧實驗室出品:基於BERT的問題語義等價新模型
4問題語義等價的延伸思考

在本文中,我們介紹了一種新的問句語義匹配模型,在後BERT時代,該模型的核心思想是通過抽取語言模型中不同層的表示而達到更好的匹配效果。針對目前層出不窮的深層預訓練語言模型,例如Roberta、ERNIE、XLNet等,這種思路無疑是值得嘗試和探索的。從簡單的層面來說,對於一些不同的基礎NLP任務,例如文字分類、序列標註、關係提取、語義分析等,我們完全可以通過提取不同層面的特徵來提升效果。從更廣的角度而言,MMD在計算機視覺領域的域遷移取得了良好的效果,而在NLP領域目前尚無採用深層提取特徵的嘗試,而這種嘗試從邏輯上來說應該是完全可行的。在目前半監督學習和域遷移正成為NLP研究熱點的情況下,這種思維可以作為一種重要的嘗試方向。

從一個角度來說,對於問句語義匹配來說,雖然我們提出的新模型達到了很好的效果,但是對於智慧對話系統來說,僅僅應用一個等價性模型並不能解決全部問題。舉例來說,由於問題庫當中的候選問句較多,如果每次使用者提出問題都要匹配問題庫中的全部問句,顯然是不現實的。這種情況下,有至少兩種解決方案:一種是通過network distillation的方法或其它網路,降低單次推理所耗費的算力和時間,但是這種方法所帶來的效果往往是有限的;更現實的一種方法是先通過簡單的演算法召回一部分候選問題,但是這種情況下如何平衡召回率和效率卻並不簡單。

此外,在本文中,我們只考慮了問題語義等價或不等價的情況。但如果問題庫不夠完整,在沒有識別出等價問題的情況下,僅返回安全回答常常會降低使用者的體驗。在這種情況下,通常的做法是返回相似或相關的問題,這是一個問句語義相似度的計算問題,也是我們需要進一步研究的。

相關文章