近年來,智能對話還出現(xiàn)了新的應用場景,例如可以將自然語言轉換為各種程序性語言,如SQL,從數(shù)據(jù)庫中找到相應的答案,讓用戶和數(shù)據(jù)庫的交互變得更加直接和方便。
1問題語義等價的重要性
盡管智能對話系統(tǒng)取得了長足的進展,但對于專業(yè)性非常強的對話系統(tǒng),自動構建回答對的技術尚不能保證其回答的絕對正確性。另一方面,專業(yè)性非常強的對話系統(tǒng)相比以閑聊為目的的對話系統(tǒng)而言,是更有業(yè)務價值的。對于專業(yè)性非常強的對話系統(tǒng),其挑戰(zhàn)在于,問題回答稍有不慎,往小了說可能對用戶造成困惑,往大了說甚至會引起法律糾紛,這種情況對于政府機構、金融機構和大型企業(yè)都是存在的。在這種情況下,目前最可靠的方法仍然是通過人工構建問答對來獲取答案。然而針對基于問答對的問答系統(tǒng),雖然我們可以采取人工擴充問答對的方式來提高系統(tǒng)系統(tǒng)匹配的準確性,但是由于自然語言本身的復雜性,采用窮舉的方式去列出用戶對于同一問題所有可能的問法需要耗費大量人力物力,這是不現(xiàn)實的。舉例來說,即使對于詢問天氣這樣的簡單問題,其問法可能也是多種多樣的。比如說,用戶可能會采用”請問,北京明天天氣怎么樣?”,”北京明天多少度?”,”北京明天天兒咋樣?”等等問法。在這種情況下,所需要的算法是一種能夠判別給定的問題和問題庫中的問題是否語義上等價的模型。
簡單的看起來,似乎只需要判斷兩個句子的相似度,例如其重合詞語的個數(shù)即可以解決。但事實上,判斷句子是否等價的任務要遠遠比單純的詞語匹配復雜。舉例來說,問題”市政府的管轄范圍是什么?”和”市長的管轄范圍是什么?”僅有兩個字的差異,但兩者語義是不相同的,因此其回答也應該不一樣的。另一方面來說,”市政府的職責是什么”和”請問,從法律上來講,市政府究竟可以管哪些事情”這兩個問題,除去在”市政府”一詞外,幾乎是沒有任何重合的,但兩者語義是等價的,因此其答案也應該是一樣的。
從這幾個例子來看,句子匹配的任務需要模型能夠真正理解其句子的語義。而今天我們所介紹的模型就是如何讓機器更有效的理解和分析兩個句子的含義,并進行語義等價比較。而我們采用的方法借鑒了MMD在圖像處理時用到的深度匹配思想,并將此思想運用在了BERT多層網絡模型上。
2基于BERT和BIMPM的問題語義等價新模型
在BERT等預訓練模型出現(xiàn)之前,語義本身的表達一般是用word vector來實現(xiàn)。為了得到句子的深層語義表達,所采用的方法往往是在上層架設網絡,以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 的匹配方法,用于獲取兩個問題細粒度的聯(lián)系信息,然后進入Aggregation Layer 聚合多個匹配向量序列,組成一個固定長度的匹配向量,最后用于Prediction Layer 進行預測概率。
通過BIMPM模型可以捕捉到句子之間的交互特征,但是這樣的匹配僅僅也只是在表層特征進行比較,并不涉及深層次的特征比較。為了進行深層次的特征比較,我們借鑒了圖像中的MMD思想,Maximum Mean Discrepancy,即最大平均差異,通過深度神經網絡的特征變換能力,對變換后的特征分布進行匹配。MMD的最大優(yōu)點在于它不僅進行表層特征的匹配,還進行深層次特征的匹配,這樣可以更精確地計算出特征之間的匹配程度,提升模型的效果。拿圖像對比來舉例,圖像中所蘊含的信息不單單是由表層特征就可以來涵蓋的,往往是通過表層、多個隱藏層以及它們之間不同的參數(shù)相加得到的結果??墒菫槭裁催@種方法很少在NLP領域聽聞呢?因為之前的模型如BIMPM 是總結表層的特征,而并非深層特征。BIMPM將每個句子中的每個詞語表示成d維向量,然后經過Context Representation Layer,將上下文的信息融合到需要對比的P和Q兩個句子中的time-step表示,最終比較句子P和句子Q的所有上下文向量,但它也只是對表層特征進行匹配,從而忽略很多額外的語義特征,但是BERT 預訓練模型的流行,讓深層特征匹配成為了現(xiàn)實。
如果我們將MMD的思想應用到句子匹配的任務上,并用BERT預訓練深層模型來實現(xiàn),就會得到一個重要的啟發(fā),MMD思想的主要效果來源于它將BERT預訓練深層模型的不同層表示進行匹配,形象地來說,這是一種”向下匹配”的思維。而BIMPM由于在BERT之前出現(xiàn),其語義表示只能通過詞(字)向量和LSTM等網絡進行,因此它捕捉特征表示的方法只能通過”向上匹配”。這是否意味著自從BERT出現(xiàn)以后,將這兩種方式進行結合呢?
基于這個思路,我們在本文中提出了問題語義等價的層次匹配模型,它的思想是將特征”向下匹配”和”向上匹配”相結合。在具體的實現(xiàn)上,我們分別從BERT深層模型的最后幾層中提取特征通過加法進行拼接,替代原始的字向量輸入到BIMPM模型當中。這種做法是和MMD很相似的,只不過MMD中采用各種距離函數(shù),而在這里我們采用的是多種匹配函數(shù)。除此之外,我們對BIMPM模型也做了以下修改:
首先,我們去掉了原始BIMPM模型中接在字向量層的Bi-LSTM模型,之所以這樣做,其原因在于LSTM并沒有設計機制保證梯度向深度模型的后向傳導;其次,我們用Transformer模型替代了BIMPM最上層的Bi-LSTM模型。這樣做的原因主要是考慮到Bi-LSTM能夠捕捉數(shù)據(jù)當中的序列特征。但是由于BIMPM采用多種匹配后,其序列性并不強,所以Transformer更適合該模型。
3模型的實驗結果實驗一:Quora數(shù)據(jù)集上的問題語義等價我們提出的問題層次匹配模型在公開的Quora數(shù)據(jù)集達到了目前的State-of-the-art,這個數(shù)據(jù)集包括了超過400,000問題組,專門用來研究兩個句子是否語義等價的二分問題。因為該數(shù)據(jù)集的標注質量非常高,它經常用來測試語義理解的模型效果,我們按照7:2:1的比例來分配訓練集、驗證集和測試集,測試集上的具體實驗結果如下:
為了進行對比,我們第一個結果為BERT單模型的的結果,第二個、第三個則分別為BERT和ABCNN、BERT和BIMPM的結果。在配對深度方面,我們選擇了BERT預訓練模型的表層一層、表面兩層和表面三層,隨著層數(shù)的增加我們應用了橫向合并和縱向合并。
如上表中結果所示,BERT和BIMPM的結合已經比兩個單模型的表現(xiàn)要出色。在BIMPM中,我們先去除了Bi-LSTM,其模型的表現(xiàn)降低到了88.55%,如果我們在配對層之后繼續(xù)去除Bi-LSTM,其模型的表現(xiàn)會降低到87.8%。我們還可以看出,在預訓練模型中增加上層模型可以提升幾個點的表現(xiàn),隨著層數(shù)的增加,可以得到更高的F1值和準確率。
實驗二:SLNI子數(shù)據(jù)集上的問題語義等價為了確保實驗結論的有效性,除去Quora的數(shù)據(jù)集之外,我們還采用了SLNI數(shù)據(jù)集當中包含句子等價性的數(shù)據(jù)集,該數(shù)據(jù)集包括55萬條訓練集和10000條測試集。很多學者都用了這些數(shù)據(jù)來測試他們的模型包效果,對比這些模型,我們的準確率上有將近兩個點的提升,達到了目前的State-of-the-art,具體實驗結果如下表所示:
在本文中,我們介紹了一種新的問句語義匹配模型,在后BERT時代,該模型的核心思想是通過抽取語言模型中不同層的表示而達到更好的匹配效果。針對目前層出不窮的深層預訓練語言模型,例如Roberta、ERNIE、XLNet等,這種思路無疑是值得嘗試和探索的。從簡單的層面來說,對于一些不同的基礎NLP任務,例如文本分類、序列標注、關系提取、語義分析等,我們完全可以通過提取不同層面的特征來提升效果。從更廣的角度而言,MMD在計算機視覺領域的域遷移取得了良好的效果,而在NLP領域目前尚無采用深層提取特征的嘗試,而這種嘗試從邏輯上來說應該是完全可行的。在目前半監(jiān)督學習和域遷移正成為NLP研究熱點的情況下,這種思維可以作為一種重要的嘗試方向。從一個角度來說,對于問句語義匹配來說,雖然我們提出的新模型達到了很好的效果,但是對于智能對話系統(tǒng)來說,僅僅應用一個等價性模型并不能解決全部問題。舉例來說,由于問題庫當中的候選問句較多,如果每次用戶提出問題都要匹配問題庫中的全部問句,顯然是不現(xiàn)實的。這種情況下,有至少兩種解決方案:一種是通過network distillation的方法或其它網絡,降低單次推理所耗費的算力和時間,但是這種方法所帶來的效果往往是有限的;更現(xiàn)實的一種方法是先通過簡單的算法召回一部分候選問題,但是這種情況下如何平衡召回率和效率卻并不簡單。
此外,在本文中,我們只考慮了問題語義等價或不等價的情況。但如果問題庫不夠完整,在沒有識別出等價問題的情況下,僅返回安全回答常常會降低用戶的體驗。在這種情況下,通常的做法是返回相似或相關的問題,這是一個問句語義相似度的計算問題,也是我們需要進一步研究的。
來源:百分點認知智能實驗室