?

基于預訓練語義編碼的判斷句答案推理

2024-02-21 06:00王顏顏黃友志
軟件導刊 2024年1期
關鍵詞:段落語料文檔

李 飛,王顏顏,王 超,黃友志

(1.中國科學技術大學 計算機科學與技術學院,安徽 合肥 230026;2.科大國創云網科技有限公司,安徽 合肥 230088)

0 引言

智能問答旨在為用戶問題提供精準的答案。當答案檢索范圍是大規模文檔時,即為開放域問答[1]。該技術是一種對語言的理解和推理,是由感知智能向認知智能邁進的關鍵,被廣泛應用于搜索引擎中,以實現更精準的搜索反饋。早期問答采用流式結構,包括問題分析、文檔檢索與答案提?。?-4]。這種級聯組合的問答形式導致誤差傳遞積累,問答效果難以保證,已有研究表明問題類型分類錯誤導致問答不準的情況占比高達36.4%[5]。

隨著神經網絡的發展,以“檢索器—閱讀器”為主的兩段式開放域問答算法開始流行[6]。2017 年,文獻[7]使用維基百科作為知識來源,用于解決開放域問題,該任務結合了文檔檢索和機器理解文本兩個模塊。后續研究者們提出了一系列改進方案,例如針對檢索器的研究,提出了基于表示的檢索器[8-9]、基于交互的檢索器[10-11]以及將二者結合的檢索器[12-13]。檢索器是獲取正確答案的第一步,對于問答的精度至關重要,但將其應用于大規模文檔將存在嚴重的計算壓力。因此,同期也有一些學者研究通過離線方法構建檢索器[14-15],在犧牲語義表征精度的同時,一定程度上提升了計算效率。針對閱讀器的研究側重于從檢索獲取的相關文檔中找到答案片段[16-18],演進方向主要是以聯合的方式檢索答案段落跨度,比如聯合文本詞性[7]、命名實體識別[7]、外部知識[19]等信息進行答案檢索。

由于判斷句問答僅依靠“檢索器—閱讀器”難以獲取精準答案,因此一種面向判斷句的答案推理方法被提出。研究重點分為4 部分,首先通過語義編碼器對問題和依據進行編碼表征;其次在答案生成器模塊中,通過問題與依據組合訓練一個判斷句答案生成器;之后在答案依據獲取器中,針對僅有問題沒有依據的測試數據,通過使用Faiss大規模語義匹配工具進行依據獲??;最終將判斷句問題與答案依據組合輸入到答案生成器中推理出問題答案。經過實驗驗證,基于大規模語料的判斷句問答準確率高達96.58 %。

1 相關工作

基于大規模文本的問答研究與以往工作的不同之處在于問答中的問題類型是判斷題,需要從大規模文本中抽取判斷依據,對問題進行答復。這項工作通過從大規模文本中抽取與問題語義最相關的依據,然后結合問題和依據給出對應答案,可以看作開放域問答。

傳統開放域問答[4]分為3 個階段,包括問題分析、文檔檢索和答案提取。問題分析用于理解問題,便于后續進行基于語義的文檔查找和答案提取。近期受到閱讀理解模型的啟發,基于檢索器和閱讀器組合的開放域問答被提出。首先通過檢索器將查詢范圍從全文檔定位到相關文檔,然后通過閱讀器進一步將答案鎖定在某一篇文檔段落[6]。文獻[7]在問答檢索階段,先基于TF-IDF 加權的詞和二元組進行問題表示,再使用信息檢索方法召回最相關的N 篇文檔。然后在文檔閱讀階段,基于文檔段落和問題訓練兩個分類器預測答案的起始與結束位置。由于文獻[7]提出的基于TF-IDF 的稀疏檢索器語義表征維度高、計算量大,后續稠密的檢索器不斷被提出:首先是表示檢索器[8-9],也被稱為雙塔編碼器,采用兩個相同的獨立編碼分別對問題和文檔進行編碼,并計算表征相似度。文獻[8]使用基于BERT[20]的預訓練模型進行問題和文檔的語義表征。但在這種方法中,文檔和答案獨立表征獲取,無法獲取文檔和答案語義層面的深層關聯含義。為了解決以上問題,基于交互的檢索器[10-11]被提出,其將問題和文檔同時作為輸入,通過二者token 之間的交互構建檢索器。但該方法通常需要進行大量計算,不適用于大規模文本。因此,結合基于表示和基于交互的檢索器[12-13]被提出。文獻[12]提出ColBERT-QA 問答模型,其不僅在問題與段落之間創建了細粒度的交互,而且可以迭代地使用ColBERT創建自己的訓練數據,從而極大地提升了開放域問答的檢索性能。

開放域問答的另一個核心是閱讀器,一般通過神經機器閱讀理解模型來實現,用于從一組細分到段落級的文檔中提取出問題對應的答案。許多研究按照包含答案的概率對檢索到的文檔進行排序,并將問題與相關文檔拼接作為閱讀器的輸入提取答案跨度[16-18]。文獻[16]提出使用段落選擇器過濾掉一些噪聲,用于更好地提取文檔段落中的正確答案跨度。還有一些研究以聯合的方式基于所有檢索到的文檔提取答案跨度[7,19]。文獻[19]提出一個端到端的問答系統,以整合BERT 和開放資源信息,實驗結果顯示該方法在答案跨度提取上具有很高的準確率。

以上研究基本都是通過問題直接從文檔中提取答案片段。針對判斷題,從文檔中只能提取答案的判斷依據,還需進一步推理答案。

2 判斷句問答推理方法

針對目前大規模文本問答方法大多從候選文本中檢索答案,而忽略了有些答案無法直接提取原文內容,需要作進一步推理。為了解決以上問題,一個面向大規模文本的判斷問句答案生成方法被提出。具體研究框架如圖1所示,包括語義編碼器、答案生成分類器、答案依據獲取器以及答案預測4 個模塊。在語義編碼器中通過對大規模文本使用RoBERTa 模型[21]繼續進行預訓練獲取豐富的文本語義信息,實現問題和依據語義編碼;在答案生成器中通過對比學習構造訓練數據,捕捉文本語義特性并進行答案推理;在答案依據獲取器中通過Faiss[22]向量化可以快速檢索答案依據,并拼接到對應問題進行答案預測。

Fig.1 Full flow of the model圖1 模型全流程

2.1 問題描述

給定一個自然語言的問題q,基于大規模文本語料給出對應的答案a。其中,所有問題類型為判斷題,因此候選答案為Yes/No。首先設置大規模語料D中共有N篇文檔,再將N篇文檔分為Mc個段落,其中第i個段落pi包含L個字,即。QC是一系列問題,這些問題在大規模語料D中對應存在依據C與答案標簽A,組合表示為訓練數據集DC=(QC,C,A)。QU也是一系列問題,但這些問題沒有對應依據和答案標簽。

本文主要工作是對給定問題q,先從Mc個候選文本段落中找到問題最匹配的段落pi作為答案依據c,最終結合答案依據c和問題q,給出推理的答案a。a有兩個值Yes和No。

2.2 基于預訓練模型的語義編碼器

為了能精準地回答問題,一個良好的語義編碼器是必不可少的。因此,基于預訓練模型的語義編碼器被提出。使用RoBERTa 架構在原有模型基礎上繼續預訓練領域語料C,不僅可以實現已有語言知識的遷移,而且可以捕捉更多領域知識。由于RoBERTa 方法相比BERT 方法采用了動態編碼,而且使用了大的batch size,可以捕捉更多語義信息,因此以Roberta 預訓練模型框架作為語義編碼器繼續預訓練大規模語料。

將大規模語料和全部問題文本都作為預訓練語義編碼器輸入,記為CAll。預訓練的關鍵是獲取訓練詞匯表,具體過程是先統計CAll中的詞匯,設置詞匯閾值TW,選擇詞頻大于TW的存入詞匯表V中。之后基于RoBERTa 進行領域語義編碼器訓練,訓練后的RoBERTa 模型記為語義編碼器(Semantic Encoder Based on Pre-training Model,SEPM),主要是通過語料進一步訓練詞匯表V 中詞匯,使其包含更豐富的語義信息。

2.3 問題生成分類器

本部分的重點是構建領域問題、依據以及答案三者組合的(q,a,c)數據集,用于答案生成分類器訓練?;赟EPM模型,通過輸入問題q和對應依據c,輸出答案a,并訓練答案生成的分類模型。領域任務微調的關鍵是構造微調數據集,由于DC數據集中只包含正確依據和答案的數據對,如果不進行擴充,會導致模型訓練結果的適應性差。為此,基于對比學習的數據集增強策略被提出。

針對訓練數據集DC中的第j個問題qj,可以找到對應的答案aj以及依據cj。將問題qj與依據cj進行拼接作為一條正樣本數據,記為,將答案aj量化為1,作為訓練標簽。然后基于問題qj從其他問題對應的依據中隨機選擇K個組成CK,將CK中第k條ck與qj結合。由于這些選擇的CK與問題qj并不一致,因此可以構造K條負訓練數據。將答案標簽全部設為0,其中第k條負樣本數據為。最終每一個batch size 里包含K+1 條數據DB=,其中包含1 條正樣本,K條負樣本。通過微調分類任務,針對K+1 條數據模型輸出分類概率為:

其中,第i條正樣本的概率為,K 條負樣本的概率為。優化該對比學習的損失函數,定義如下:

其中,θ是訓練數據集中的正樣本數。

2.4 基于Faiss快速匹配的答案依據獲取器

由于在上一節分類器中訓練的模型是將問題與對應依據拼接,然后進行答案分類預測,這里重點介紹如何基于領域語義編碼器獲取QU中每一個問題對應的答案依據。待檢索語料庫D分為Mc個段落,通過SEPM模型獲取Mc個段落的表征矩陣AD,矩陣大小為Mc×d,其中d表示向量維度。對于問題集中的NQ個問題,通過SEPM模型獲得問題的表征矩陣AQ,矩陣大小為NQ×d。然后,建立基于Mc個段落表征矩陣AC的搜索索引Index。由于Faiss 存在多種不同的索引特性,因此實驗中根據不同索引進行訓練。最終針對問題表征AQ中的每一個問題,檢索最接近的Nk個段落作為依據候選。

其中,P表示AQ中最接近的Nk個段落id,I 表示每一個段落與問題AQ的距離,將其作為問題AQ與文本語料不同段落相似的重要程度衡量指標。

通過以上方法獲得問題的依據,再與問題語義相結合來預測問題的答案分類標簽。

2.5 答案預測

通過以上部分,針對第j個問題qj,通過2.2 節的SEPM模型獲取問題的語義表征ej,通過2.4節獲取問題回答的相關依據cj,最終將ej和cj拼接輸入到2.3 節的答案生成分類器中,預測輸出分類標簽的概率分布,再轉換為對應標簽Yes或No作為判斷句答案輸出。

3 實驗與分析

3.1 實驗設置

實驗數據為新聞領域的英文問答數據,其中檢索的語料庫為英文新聞語料,共計200 萬條,每條新聞語料的平均長度為713 個字。判斷句共有1 萬條,平均每條10.93 個字。將1 萬條數據按8:1:1 的比例分為訓練集、驗證集和測試集,8 000 條訓練集數據屬于正樣本數據,通過對每一條正樣本構造多條負樣本進行數據增強,K 取值為63,新增負樣本訓練數據50.4萬條,共計訓練數據51.2萬條。

本文的實驗環境為Linux 系統,torch 版本為1.11.0,torch-geometric 版本為2.0.4,GPU 型號為Tesla V100。實驗中設詞匯閾值TW為3 000,即選擇詞匯詞頻大于3 000 的詞作為預訓練詞匯,共計22 573 個詞匯。在對比學習中K+1的取值對應batch size 的大小,在敏感性分析中設置batch size 的大小為16、32、64、128 等值,并確定最優的batch size為64。對比實驗中學習率選擇2*10-5,最大序列長度為128。

精準度、召回率以及F1值3 個指標被用于評估模型表現,也即評估判斷句答案生成效果。具體計算公式如下:

其中,x1為使用研究模型得到的判斷句正樣本的正確答案數,x2為通過模型獲取的判斷句問答任務中的正樣本數據,x3為原始數據中判斷句的正樣本數據。

3.2 實驗結果及分析

為了驗證本文方法對大規模問答檢索的有效性,實驗中與多種已有方法進行比較。BERT[20]方法是Google 于2019 年提出的大規模預訓練語言模型的基礎架構,采用Transformer[23]的編碼器建模語言表征。BERT-base 的參數規模較小,BERT-large 的參數規模較大。由于BERT 參數量巨大,為了減少模型參數,Google 在2020 年提出了Albert 模型[24],其是A Lite BERT 的簡稱,意為精簡的BERT。其減少了整體的參數量,加快了訓練速度。RoBERTa 模型[21]沿用BERT 架構,但改進了很多BERT 的預訓練策略,可以更充分地學習到語言中的知識。

表1 展示了基于預訓練語言編碼的判斷句問答推理模型與其他已有模型的精準率、召回率以及F1值的實驗結果比較??梢钥闯?,相比目前已有的多種基于預訓練進行問答判斷的方法,基于預訓練語言編碼的判斷句問答推理模型具有更佳的效果,F1指標高達96.58%。在已有方法中,Albert 方法在BERT 基礎上減少了參數量,并沒有使效果得到提升。RoBERTa 方法由于使用了多種預訓練策略,可以更好地學習數據中的語言知識,因此相比于BERT 和Albert 具有更佳的效果。本文使用的預訓練模型是基于RoBERTa 框架,并在此基礎上進行語義編碼,最終在問答推理中取得了最佳效果。

Table 1 Comparison of experimental results of different models表1 不同模型實驗結果比較 %

3.3 敏感性分析

為進一步評估模型的效果,模型訓練損失Loss 和模型整體評估指標F1被用于探究模型不同參數的影響。首先在相同參數下,對比不同batch size 對驗證集損失以及F1的影響,batch size 的取值包括16、32、64以及128。

從圖2 可以看出,在不同batch size 下,模型表現的差異性較大。圖2(a)中的每一條線段展示了在固定batch size 時,隨著訓練輪次的改變模型的損失變化??梢钥闯鲭S著batch size 的增大,驗證集上模型的損失呈先下降后上升的趨勢。說明由于訓練數據并不多,訓練輪次較多時會導致模型過擬合。因此,考慮到時間效率和準確性,模型訓練輪次不宜太多。同時對比不同batch size 下的影響可以看出,整體上batch size 取值越大,損失越小,說明模型性能越好。圖2(b)中的每一條線段展示了在固定batch size 時,隨著訓練輪次的改變模型準確性指標F1的變化??梢钥闯?,該指標與損失具有相反的表現,整體上隨著輪次增加,模型準確性指標F1曲折上升。同時對比不同batch size 下的影響可以看出,隨著batch size 取值增加,模型的性能表現先有所提升,當batch size 等于64 時模型表現最佳。之后隨著batch size 繼續增加,模型性能開始下降。原因在于模型訓練的batch size 并非越大越好,batch size 取值為64 較為適中。如果batch size 持續增大,會陷入局部最優,導致泛化能力差,因此在測試集上效果變差。綜上所述,訓練輪次選擇一個適中的值5,batch size 取64。

Fig.2 Model performances under different batch sizes圖2 不同batch size下的模型表現

此外,為了驗證模型的穩定性,在相同參數下,基于模型整體評估指標F1開展了不同學習率對模型準確率影響的實驗。圖3 展示了在不同學習率下模型的性能表現??梢钥闯?,隨著學習率降低,模型表現逐漸提升。當學習率為0.001 時,模型效果非常差,當學習率逐漸下降,到達0.000 1 時,模型表現顯著提升,之后繼續降低學習率,模型表現略有提升。最終,當學習率為1*10-5時模型效果最佳。因此,最終實驗選擇學習率為1*10-5。

Fig.3 Model accuracy performance under different learning rates圖3 不同學習率下的模型準確率表現

3.4 案例分析

為更好地闡述本文模型的表現,實驗選擇5 個不同的問題進行案例分析,通過模型查找相關依據以及最終對應的推理答案如表2 所示。由表2 的實驗結果可以看出,本文提出的方法在大部分情況下都可以得到較好的結果。具體表現為,示例中所有查詢到的依據都包含與問題相關的內容。例如第4 個問題是詢問“?,敗だ趴ㄅ钡男畔?,而通過模型在大規模語料中查詢即明確搜索出關于此人的相關信息,而且該條信息對于問題判斷至關重要??梢哉f明兩點:一是本文方法提出的繼續預訓練語義表征可以豐富問題的語義信息,讓其在依據獲取階段獲得非常相關的依據;二是使用依據與問題相結合共同進行答案推斷,使得依據可以對問題語義進行補充,從而提升答案的準確性。

Table 2 Results analysis of five specific problems表2 5個具體問題的結果分析

4 結語

為了解決開放域判斷句答案生成問題,本文提出一個面向大規模文本的判斷句答案生成方法,并在基于大規模新聞語料的判斷句答案生成任務上驗證了該方法的有效性,表明先生成依據,再將問題與依據結合推理答案的方法,相比傳統直接將其作為分類問題的方法效果有明顯提升。當然該方法中對依據的選取還是較為粗糙,下一步將對依據的劃分采用更細粒度的方法,以期進一步提升模型的表現。

猜你喜歡
段落語料文檔
淺談Matlab與Word文檔的應用接口
有人一聲不吭向你扔了個文檔
【短文篇】
心理小測試
夏天,愛情的第四段落
基于語料調查的“連……都(也)……”出現的語義背景分析
基于RI碼計算的Word復制文檔鑒別
弄清段落關系 按圖索驥讀文
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
華語電影作為真實語料在翻譯教學中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合