馬新宇 范意興 郭嘉豐 張儒清 蘇立新 程學旗
(中國科學院網絡數(shù)據(jù)科學與技術重點實驗室(中國科學院計算技術研究所) 北京 100190)(中國科學院大學 北京 100049)
短文本匹配任務是指輸入2段短文本,通常是句子級或者短語級,算法或者模型需要預測它們之間的匹配程度.自然語言理解中的許多任務,包括自然語言推斷[1]、復述問題[2]、答案選擇[3]、問答任務[4]都可以抽象成短文本匹配問題,例如自然語言推斷需要判斷2個句子間是否存在蘊含關系,復述問題需要判斷2個句子是否語義相等,答案選擇和問答任務都需要判斷句子是否包含問題的答案.短文本匹配任務在現(xiàn)實中有著廣泛的應用,例如在線聊天機器人中對話的匹配[5]、社區(qū)問答系統(tǒng)中相似問題的匹配[6],以及機器閱讀理解系統(tǒng)[7]中問題和答案的匹配等.
近年來,短文本匹配取得了顯著進步,一方面得益于深度學習的發(fā)展,深度學習模型在計算機視覺和自然語言處理領域已經幾乎顯著超越或者碾壓所有傳統(tǒng)基于規(guī)則的方法和機器學習技術,尤其是近年來以BERT(bidirectional encoder representations from transformers)[8]為代表的首先在大規(guī)模無監(jiān)督語料上學習通用表達的預訓練模型,使得自然語言處理(natural language processing, NLP)中的很多任務得到了全面的性能提升.然而,深度學習模型通常需要大量的標注數(shù)據(jù)來進行訓練,現(xiàn)實中往往沒有很多標注數(shù)據(jù),并且標注數(shù)據(jù)的成本很高;同時預訓練模型一直被認為有較好的泛化能力,但是通過我們的實驗發(fā)現(xiàn),在大多數(shù)情況下,BERT的泛化能力是比較差的.另一方面大量公開的數(shù)據(jù)集也對短文本匹配任務的發(fā)展起到了非常重要的促進作用.比如被廣泛使用的GLUE benchmark[9]是很多自然語言理解模型評價的標準數(shù)據(jù)集集合,10個任務中的9個都可以抽象成短文本匹配問題.問答領域也發(fā)布了很多通用的數(shù)據(jù)集,比如SQuAD[10],Ms marco[11],尤其是Ms marco,它的標注數(shù)據(jù)量達到了百萬級.然而,對于這些現(xiàn)有的有標注數(shù)據(jù)集,很少有研究去分析它們是否能泛化到一個新的數(shù)據(jù)集,以及如何利用這些現(xiàn)有的大量有標注數(shù)據(jù)到新的領域中去,達到減少新領域的數(shù)據(jù)標注量和提升性能的目標.
本文的主要目標為分析短文本匹配數(shù)據(jù)集之間的泛化性和遷移性,為未來利用遷移學習的方式在新領域提升短文本匹配模型的性能提供有價值的指導.具體來說,我們將分析目標分解為3個具體的研究問題.
問題1. 不同短文本匹配數(shù)據(jù)集之間的泛化關系是怎么樣的,與哪些因素有關?
問題2. 是否能利用其他領域的數(shù)據(jù)集提升目標領域數(shù)據(jù)集的性能?
問題3. 基于以上分析,如何有效利用其他領域的標注數(shù)據(jù)來提升新領域的性能?
對于問題1,我們首先在源數(shù)據(jù)集上進行訓練,然后在目標數(shù)據(jù)集上直接測試性能(泛化),為了規(guī)避模型對泛化能力的影響,我們在所有實驗中都使用了2個深度學習模型進行對照,一個是傳統(tǒng)的深度學習模型ESIM[12],另外一個是預訓練語言模型BERT[8].然后通過力導向圖算法可視化數(shù)據(jù)集之間的關系.對于問題2,我們首先在源數(shù)據(jù)集上進行預訓練,然后在目標數(shù)據(jù)集上微調再測試性能(遷移),同時對數(shù)據(jù)集之間的遷移關系進行了定量的分析,即給定不同的源數(shù)據(jù)集的數(shù)據(jù)量,觀察遷移帶來的性能提升效果.對于問題3,基于對數(shù)據(jù)集之間泛化性和遷移性的分析,我們提出了一種簡單可行的辦法,可以提升模型的泛化能力和遷移能力,并在新領域并且只有很少標注樣本的情況下,取得了很好的效果.
本文的主要貢獻有3個方面:
1) 分析研究了不同數(shù)據(jù)集上的模型泛化能力.發(fā)現(xiàn)模型的泛化能力主要與數(shù)據(jù)集的類型和來源有關,并且類型的影響要大于數(shù)據(jù)集的來源.
2) 分析研究了不同數(shù)據(jù)集上的模型遷移能力.發(fā)現(xiàn)數(shù)據(jù)集的遷移能力和泛化能力的趨勢往往是不一致的;并且即使是預訓練模型BERT,在目標數(shù)據(jù)集很大的情況下(幾十萬標注樣本),合適的遷移仍能帶來性能的提升.
3) 基于對泛化性和遷移性的分析,提出通過將數(shù)據(jù)集進行平均混合的方式,可以提高模型的泛化能力和遷移能力.實驗表明BERT在此混合數(shù)據(jù)集預訓練之后,在新的領域并且只有100個標注樣本的情況下,達到了堪比原始千級和萬級標注數(shù)據(jù)量的效果.
r=F(T1,T2),
其中F代表不同的匹配模型.
我們選擇了10個常用的短文本匹配數(shù)據(jù)集來進行此次分析實驗,這些數(shù)據(jù)集除了SNLI[13]和MNLI[14]為三分類,其余全部為二分類.我們按照數(shù)據(jù)集規(guī)模,以10萬數(shù)據(jù)量為分界線,將數(shù)據(jù)集分為大數(shù)據(jù)集和小數(shù)據(jù)集.在接下來的實驗中,為了消除數(shù)據(jù)規(guī)模的影響,我們固定大數(shù)據(jù)集的數(shù)據(jù)量,每個大數(shù)據(jù)集只隨機選取10萬的數(shù)據(jù)進行實驗.表1是關于這些數(shù)據(jù)集的一些特征描述,包括數(shù)據(jù)集的數(shù)據(jù)量、數(shù)據(jù)集來源和類型.
我們首先介紹大數(shù)據(jù)集:
SNLI[13]是斯坦福自然語言推斷數(shù)據(jù)集,它是根據(jù)圖像數(shù)據(jù)集人工標注的,需要判斷2個句子是蘊含、矛盾或者中立關系.
MNLI[14]是多類型自然語言推斷數(shù)據(jù)集,數(shù)據(jù)集中的數(shù)據(jù)來自多種領域,例如演講、小說和政府報告等.它需要判斷2個句子是蘊含、矛盾或者中立關系.
QNLI是由問答數(shù)據(jù)集SQuAD[10]轉換成的自然語言推斷數(shù)據(jù)集,數(shù)據(jù)主要來自于英文維基百科.該數(shù)據(jù)集需要判斷問題的答案是否被另外一個句子所包含.
Ms marco[11]是一個大規(guī)模的微軟閱讀理解數(shù)據(jù)集,我們從原始的數(shù)據(jù)集中抽取了12萬數(shù)據(jù)并轉換為問題和答案所在句的匹配問題,該數(shù)據(jù)集的數(shù)據(jù)來自網頁文檔.
QQP[15]是復述問題數(shù)據(jù)集,該數(shù)據(jù)集主要來自問答網站Quora,它需要判斷1個句子對是否是重復問題,是二分類任務.
小數(shù)據(jù)集主要有:
WNLI[16]是一個自然語言推斷數(shù)據(jù)集,數(shù)據(jù)主要來自于小說,訓練集數(shù)據(jù)量約為1 000.
RTE[17]是二分類自然語言推斷數(shù)據(jù)集,數(shù)據(jù)主要來自于網上新聞,訓練集數(shù)據(jù)量約為3 000.
SciTail[18]是自然語言推斷數(shù)據(jù)集,數(shù)據(jù)主要來自于科學考試中的多項選擇題,訓練集數(shù)據(jù)量約為3萬.
MRPC[2]是一個復述問題數(shù)據(jù)集,數(shù)據(jù)主要來自在線新聞,訓練集數(shù)據(jù)量約為4 000.
WikiQA[19]是一個問答數(shù)據(jù)集,數(shù)據(jù)主要來自必應的搜索問題和維基百科的文檔,訓練集數(shù)據(jù)量約為3萬.
Table 1 Statistics of Different Matching Datasets
我們使用了2種常用的深度學習模型進行分析實驗:一種是傳統(tǒng)的深度學習模型ESIM[12],另外一種是預訓練語言模型BERT[8],2個模型主要用來進行對照.
ESIM[7]是短文本匹配中效果較好的模型之一,它模型結構簡單,但是高效,且在短文本匹配中比較通用,它主要由3個模塊組成.
1) 表達層.使用雙向長短記憶網絡LSTM[20]編碼2個句子的詞向量,提取詞表達.
2) 特征提取層.由局部注意力機制[21]對2個句子進行對齊操作.
3) 匹配層.使用池化層和全連接計算匹配得分.我們使用了Spacy分詞工具對文本進行分詞和Glove300d[22]初始化詞向量.
BERT[8]是預訓練語言模型,它首先在大量的無標注文檔上進行預訓練,然后在下游任務上進行微調,它在多種自然語言理解任務上達到了目前最好的效果.模型的結構使用了Transformer[21]的編碼器部分,主要的組成部分包括了自注意力、Layer-Norm[23]等.輸入由2個句子s1和s2拼接而成,[CLS]+s1+[SEP]+s2+[SEP],輸出為線性全連接層,即分類層.實驗中句子最大長度設置為128,BERT的分詞使用自帶的WordPiece[24]分詞方法,一個單詞有可能會被分成多個子詞,我們使用谷歌開源的BERT-base-uncased版本的模型進行實驗.
為了對比公正,我們嚴格控制了實驗流程,確保所有數(shù)據(jù)集的訓練和測試流程一致,盡量不引入其他變量,只微調部分超參.我們將發(fā)布代碼,供研究社區(qū)使用.ESIM模型在訓練過程中采用了early-stop技術,使用Adam[25]優(yōu)化器進行優(yōu)化,使用Glove300d初始化詞向量;BERT模型對大數(shù)據(jù)集學習率設置為2E-5,小數(shù)據(jù)集學習率選取1E-5,2E-5,3E-5,4E-5,5E-5中效果最好的,訓練5次取平均值.
深度學習模型目前在單個數(shù)據(jù)集上已經取得了很好的性能,我們很自然地想到是否能從一個數(shù)據(jù)集直接泛化到一個新的數(shù)據(jù)集,不做任何訓練就能達到很好的性能.我們首先在5個大的數(shù)據(jù)集上進行訓練,由于這些數(shù)據(jù)集規(guī)模不一,為了消除數(shù)據(jù)量的影響,我們對每個大數(shù)據(jù)集只取10萬的樣本進行訓練.另外我們也隨機從這5個大數(shù)據(jù)集中隨機取2萬的樣本,組成一個新的數(shù)據(jù)集Multi-100K(MT100K).在源數(shù)據(jù)集上訓練完模型之后,我們在其他所有數(shù)據(jù)集上直接進行測試,不在目標數(shù)據(jù)集上再進行訓練.由于SNLI和MNLI是三分類自然語言推斷數(shù)據(jù)集,我們將其標簽從(蘊含、中立和矛盾)合并成2類(蘊含和不蘊含)以進行泛化實驗.
實驗結果如表2所示,表2中值為準確率,其中上表是ESIM模型結果,下表是BERT模型結果,虛線右側是大數(shù)據(jù)集,虛線左側是小數(shù)據(jù)集,行代表源數(shù)據(jù)集,列代表目標數(shù)據(jù)集,SELF行表示在目標數(shù)據(jù)集上訓練和測試,MT100K行表示在MT100K數(shù)據(jù)集上訓練,然后在目標數(shù)據(jù)集上測試,由于MT100K是從大數(shù)據(jù)集中取了部分數(shù)據(jù),所以它對大數(shù)據(jù)集不做泛化實驗.我們發(fā)現(xiàn)模型在不同數(shù)據(jù)集上的泛化能力非常差.對于ESIM模型,在源數(shù)據(jù)集上訓練,在目標數(shù)據(jù)集上測試,比在目標數(shù)據(jù)集上訓練和測試(SELF行)的性能平均下降14.1個百分點,即使我們取每個數(shù)據(jù)集上泛化性能最好的結果,性能也平均下降了6.1個百分點;對于BERT模型,在源數(shù)據(jù)上訓練,在目標數(shù)據(jù)集上測試與SELF行相比,性能下降了18.7個百分點,即使取每個數(shù)據(jù)集上泛化能力最好的,性能也下降了7.5個百分點.因此,模型在訓練過的數(shù)據(jù)集上發(fā)生了過擬合現(xiàn)象.雖然BERT相比于ESIM模型下降的稍多,但是整體泛化性能還是要比ESIM高2.5個百分點,這得益于BERT在大規(guī)模語料上預訓練以及模型本身的能力.
Table 2 Generalization Experimental Results
Fig. 1 Visualization of similarity between datasets
結果如圖1所示,我們發(fā)現(xiàn)這些數(shù)據(jù)集很自然地按照任務類型(形狀內的紋理)和數(shù)據(jù)集來源(形狀)聚集.泛化性最好的2個數(shù)據(jù)集一定是類型相同,來源相同,例如圖1中右上角區(qū)域的SNLI和MNLI,左下角區(qū)域Ms marco和QNLI,因為QNLI是從問答數(shù)據(jù)集中轉變過來的,訓練數(shù)據(jù)更像是問答類型,所以它和問答數(shù)據(jù)集的泛化性能較好,尤其是和Ms marco數(shù)據(jù)集.因此,數(shù)據(jù)集之間的泛化能力主要與數(shù)據(jù)集的類型和來源有關.
從實驗中,我們發(fā)現(xiàn)MT100K的泛化性能已經接近在目標數(shù)據(jù)集泛化最好的性能,平均性能僅下降3%.為此,我們基于混合數(shù)據(jù)集進一步分析源數(shù)據(jù)集規(guī)模大小對其泛化能力的影響.具體地,我們從5個大數(shù)據(jù)集中等量抽取4萬、6萬、8萬和10萬數(shù)據(jù)進行訓練,然后將其泛化到小的數(shù)據(jù)集.
實驗結果如表3所示,我們可以看到增大源數(shù)據(jù)集規(guī)模之后,除了WNLI數(shù)據(jù)集,其他4個數(shù)據(jù)集的性能都有所提升,平均性能提高了6個百分點.尤其是MT500K,在SciTail數(shù)據(jù)集上比MT400K提升了約2個百分點.增大源數(shù)據(jù)集規(guī)模之后,WNLI數(shù)據(jù)集性能下降的一個可能原因是WNLI的訓練和測試集過于小,其中測試集只有幾百個測試樣本,與預訓練數(shù)據(jù)集的規(guī)模差異過大,導致模型在源數(shù)據(jù)集上出現(xiàn)了過擬合現(xiàn)象.因此一般情況下,源數(shù)據(jù)集規(guī)模越大,泛化性能越強.
Table 3 Generalization Results of Different Sizes of Mixed Datasets on Small Datasets
在這個實驗中,我們分析不同數(shù)據(jù)集之間的遷移是否和泛化具有相同的趨勢.如果趨勢一致,我們就可以直接選擇泛化能力強的數(shù)據(jù)集,用來提升目標領域數(shù)據(jù)集的性能.具體地,我們在5個大數(shù)據(jù)集上進行預訓練,然后在其他所有數(shù)據(jù)集上進行遷移測試,并分析遷移后的性能與之前分析的泛化性能的一致性.同泛化實驗一樣,我們保證訓練流程一致,只微調部分參數(shù),尤其BERT這種對小數(shù)據(jù)集敏感的模型,我們實驗多次取平均值.
實驗結果如表4所示,我們發(fā)現(xiàn)了數(shù)據(jù)集之間泛化和遷移的趨勢往往是不一致的.從源數(shù)據(jù)到目標數(shù)據(jù)的組合共有45種,而ESIM和BERT模型泛化和遷移趨勢一致的分別只有3個和2個.雖然泛化實驗計算量很小,但是我們不能直接從泛化實驗的趨勢推廣到遷移實驗.另外,從實驗結果看,BERT模型比ESIM模型的遷移效果要高很多.因此,預訓練模型的泛化能力要比傳統(tǒng)的深度學習模型強,并且遷移能夠帶來比泛化更大的性能提升.
Table 4 Results of Transfer Experiment
我們在此實驗中,進一步分析經過在源數(shù)據(jù)集預訓練之后的模型,遷移到目標數(shù)據(jù)集上能夠帶來多少性能提升,尤其是預訓練語言模型BERT,是否能在目標數(shù)據(jù)集很大的情況下,還能有性能上的提升.
從實驗結果表4中,我們可以看到ESIM模型在5個大數(shù)據(jù)集上遷移的平均性能比在源數(shù)據(jù)集本身進行訓練和測試(SELF行)提升2.2個百分點,如果選取每個數(shù)據(jù)集上泛化最好的性能,則提升3.5個百分點;對于BERT模型,在5個小數(shù)據(jù)集上如果選取泛化最好的性能,則提升3個百分點,在5個大數(shù)據(jù)集上如果選取每個數(shù)據(jù)集上泛化最好的性能,仍能提升0.3個百分點.所以,即使是BERT這種預訓練模型,合適的遷移仍然能帶來性能的提升.
我們在此實驗中分析,在目標領域中不同數(shù)據(jù)量的情況下對應的遷移性能的變化,觀察模型能否在少樣本的情況下取得不錯的效果.具體來說,我們首先使用在5個大的目標數(shù)據(jù)集上遷移能力最好的大的源數(shù)據(jù)集上進行預訓練,然后不斷增加目標數(shù)據(jù)集的數(shù)據(jù)量,比如對于ESIM模型和SNLI數(shù)據(jù)集,我們先在QNLI上預訓練,然后不斷增加SNLI的數(shù)據(jù)量,測試其性能.由于MT100K良好的泛化能力和遷移能力,我們也將其加入到了BERT模型下的實驗.實驗結果如圖2所示,圖2(a)為ESIM模型下的實驗結果,圖2(b)為BERT模型下的實驗結果.圖2中正方形標記的曲線代表只在目標數(shù)據(jù)集上的訓練和測試;三角形標記曲線代表首先在遷移效果最好的數(shù)據(jù)集上預訓練,然后在目標數(shù)據(jù)集上訓練;圓形標記曲線代表先在MT100K上訓練,然后在目標數(shù)據(jù)集上訓練和測試.實驗結果表明,在遷移效果最好的數(shù)據(jù)集上進行預訓練,不管對于ESIM模型還是BERT模型,在幾乎所有實驗中都要比只在數(shù)據(jù)集本身訓練和測試要高,證明了合適的遷移會給數(shù)據(jù)集帶來性能上的提升.根據(jù)統(tǒng)計,我們發(fā)現(xiàn)在源數(shù)據(jù)集上進行預訓練之后,僅需37%的目標數(shù)據(jù)集量,就能達到目標數(shù)據(jù)集95%的性能.此外,由圖2(b)所示,在MT100K上進行預訓練的結果曲線比在遷移效果最好的源數(shù)據(jù)集訓練的曲線更加平滑,性能也有所提升,進一步驗證了多個數(shù)據(jù)集的融合能提高模型的遷移能力.
Fig. 2 Learning curves of five large datasets
基于對不同領域數(shù)據(jù)集之間泛化性和遷移性的分析,我們發(fā)現(xiàn)預訓練模型BERT在平均混合的數(shù)據(jù)集上預訓練之后,有著更好的泛化能力和遷移能力.為此,我們探索在少量樣本的情況下,將MT100K應用到新領域的表現(xiàn).我們選擇4個小數(shù)據(jù)集SciTail,WNLI,RTE,MRPC進行實驗,在這4個小數(shù)據(jù)中隨機取100個樣例.我們先使用BERT模型在MT100K上進行預訓練,然后再在這4個小數(shù)據(jù)集上100個樣例進行微調和評價.
實驗結果如表5所示,其中MT100K行是在MT100K數(shù)據(jù)上預訓練之后,再在4個小數(shù)據(jù)集上100個樣本進行微調,最后進行測試;SELF行代表在小數(shù)據(jù)集上的全量數(shù)據(jù)進行訓練和測試.我們發(fā)現(xiàn)在少量樣本(只有100個)情況下,MT100K的平均性能只比全量的小數(shù)據(jù)集低4.1個百分點.因此在短文本匹配領域,對于新領域的數(shù)據(jù)集,我們可以首先將其他領域的數(shù)據(jù)集等量混合,然后使用BERT模型在混合的數(shù)據(jù)集預訓練之后,再進行少量的目標樣本標注和訓練,就可以達到不錯的效果.
Table 5 Experimental Results of MT100K on 100 Samples
深度學習方法尤其是預訓練方法在短文本匹配問題取得了目前最好的效果,但是這些模型在某個數(shù)據(jù)集訓練之后很難泛化到其他的數(shù)據(jù)集,尤其因為短文本匹配包含多種匹配任務[1-4],這種任務之間的差距使得泛化更加困難.Liu等人[27]結合了多任務學習和預訓練方法,訓練之后可以在多個數(shù)據(jù)集上取得較好的效果,并且證明了經過多任務學習,模型的領域遷移能力有很大的提升.Raffel等人[28]將文本匹配問題和閱讀理解等其他問題全部抽象成“text-to-text”問題,通過超大規(guī)模的無標注數(shù)據(jù)的預訓練,提升模型的泛化能力.Yogatama等人[29]嘗試通過在多個數(shù)據(jù)集上預訓練得到更加通用的表達.本文主要受Talmor[30]的工作啟發(fā),它們從機器閱讀的領域出發(fā),研究了不同的機器閱讀理解數(shù)據(jù)集的泛化性和遷移性,我們嘗試將其推廣到短文本匹配領域.
本文在10個數(shù)據(jù)集上,使用2種深度學習模型對短文本匹配的泛化性和遷移性進行了詳盡的分析實驗.實驗結果表明:1)深度學習模型的泛化能力很差,會在訓練過的數(shù)據(jù)集發(fā)生過擬合,即使是BERT這種預訓練模型;2)影響泛化能力的因素主要有匹配的類型和匹配數(shù)據(jù)集的來源;3)實驗結果顯示不同數(shù)據(jù)集之間泛化性和遷移性趨勢通常情況下并不保持一致;4)通過遷移,模型能在小數(shù)據(jù)集上有較大的提升,即使是BERT這種預訓練模型,合適的遷移也能在目標數(shù)據(jù)集帶來提升;5)將數(shù)據(jù)集進行簡單的混合能帶來更好的泛化能力和遷移能力,在將其應用到新的領域和少量樣本的情況下,模型取得的效果非常好.總結來看,本文的分析工作對未來利用現(xiàn)有數(shù)據(jù)集遷移到新的領域,并且在減少目標數(shù)據(jù)標注量和提升性能上提供了有價值的指導.
作者貢獻聲明:馬新宇負責所有的實驗及分析,以及文章的撰寫;范意興參與了論文想法的討論、論文邏輯的梳理,還設計各個實驗和修改論文等;郭嘉豐參與了論文想法的討論、論文摘要和前言的修改,以及部分實驗的分析;張儒清參與了論文想法的討論、論文邏輯的梳理和實驗的設計,修改了論文的實驗部分;蘇立新是論文想法的提出者,并在實驗過程中給予了大量的指導;程學旗參與了論文想法的討論,確定了論文的分析思路,提供了服務器進行大量的實驗.