段建勇,周 帥,何 麗,王 昊
1(北方工業(yè)大學 信息學院,北京 100144) 2(北方工業(yè)大學 CNONIX國家標準應用與推廣實驗室,北京 100144) 3(富媒體數(shù)字出版內(nèi)容組織與知識服務重點實驗室,北京 100038)
傳統(tǒng)的單輪問答任務(QA)只關注于回答與段落相關的單個問題.在一般情況下,不同的問題與相同段落的答案之間沒有聯(lián)系.但是,人類尋求答案以及加深對事物的理解,最自然最普遍的方法是通過基于內(nèi)容的對話交流方式獲得,這種流暢的對話承載了豐富的上下文信息,諸如蘋果語音助手Siri和小米的小愛同學之類的對話式人工智能(AI).近年來,通過構建一些公共數(shù)據(jù)集,例如QuAC[1],CoQA[2]和QBLink[3],回答基于給定段落的對話中問題,該任務被稱為會話問答(Conversational Question Answering).它是智能社交機器人重要組成部分,任務的目的是生成有意義的和連貫的會話,以吸引或測試用戶對某個主題的理解.
在會話問答任務中,機器學習模型必須理解文本段落并回答對話中出現(xiàn)的一系列問題.例如給定一篇文章和相應的一段對話,會話問答任務是回答對話中的下一個問題.每一輪對話中都包含一個問題和一個答案.會話問答任務有兩個特點:1)相比傳統(tǒng)的問答任務,更需要理解人類對話中問題本質(zhì).因為在對話中,第一個問題之后的每個問題都依賴于對話歷史記錄.傳統(tǒng)的機器學習模型在很大程度上依賴于問題和段落之間的詞匯相似性.所以,上下文連貫的問題對于目前機器學習模型來說很難解析,需要進一步改進;2)第2個特點是需要構建跨領域穩(wěn)健的問答系統(tǒng).當前的問答系統(tǒng)數(shù)據(jù)集主要是集中在單個領域,這使得現(xiàn)有模型很少有泛化能力.而在會話問答任務中,從七個不同的領域收集數(shù)據(jù)集—兒童故事、文學、初中和高中英語考試、新聞、維基百科、Reddit和科學.因此會話問答模型需要有更強的跨領域理解的能力.
現(xiàn)有的大多數(shù)會話問答模型都是采用單輪問答方法,并使用問答歷史記錄來單純增加模型輸入,從而忽略了模型的編碼過程.單輪問答的框架SDNet[4]提出了一種使用BERT[5]基于特征的方法,將多輪問答任務轉(zhuǎn)換為單輪問答任務.該方法通過重新構造的問題,在多回合上下文中使用特殊標記對問題和答案序列進行串聯(lián).但是由于會話問答任務與傳統(tǒng)的單輪問答任務相比,不僅需要考慮給定的文章,還需要結(jié)合會話歷史信息.因此它需要深入理解目前所要求的內(nèi)容以及上下文之間的信息,以便生成連貫的對話.這就導致會話問答中蘊含著更豐富并且復雜的上下文信息,單純僅經(jīng)過一層神經(jīng)網(wǎng)絡不能很好的提取.
在本文中,提出了新的動態(tài)編碼網(wǎng)絡框架,有效解決了針對會話問答任務中上下文信息提取不充分的問題.模型包括了兩個主要的步驟.第1步,構建編碼層,使用Glove[6]分別對文章段落,當前問題以及會話歷史詞嵌入編碼,將特征向量拼接被送往編碼層中;第2步,構建動態(tài)編碼結(jié)構,通過軟決策器動態(tài)地更新編碼表示,最后將新的編碼送往解碼器中生成答案.
本論文有下面幾點貢獻:1)為CQA任務提出了一個新的有效的模型,該模型設計了多層動態(tài)編碼程序,用來提取段落和對話歷史之間的交互依賴關系,在不同的編碼層之間,為生成當前問題答案,分配合理的權重,以生成流暢連貫的問答對話;2)由于沒有使用任何預訓練語言模型,模型較為小巧,并且在OVERALL F1指標上與不使用預訓練語言模型的方法相比具有一定的競爭力;3)通過對會話歷史長度的實驗結(jié)果分析,不同的會話歷史長度對模型效果影響很大.
近年來,一般都是通過在大規(guī)模閱讀理解數(shù)據(jù)集下采用基于seq2seq框架.在Encoder層,利用BiLSTM[7]結(jié)合Attention機制[8]來對上下文向量進行編碼,在問答任務中取得了顯著成功.
在會話問答任務中,一大挑戰(zhàn)是如何有效地利用對話歷史.對于話題轉(zhuǎn)移或回歸等復雜的對話行為,簡單地選擇立即轉(zhuǎn)換可能效果不佳.因此在Encoder層,上下文段落的詞匯標記、選定的會話歷史輪次和當前問題,需要轉(zhuǎn)換為模塊的輸入嵌入編碼.在編碼層步驟可能隨不同方法和推理輸入而變化,在高層次上,編碼涉及到與上下文嵌入(稱為詞匯嵌入)的轉(zhuǎn)換和組合.例如GloVE、ELMo[9]、BERT或RNN、問題感知嵌入以及附加特征嵌入,如POS標簽、歷史嵌入或?qū)υ捰嫈?shù).會話歷史通常與詞匯嵌入模塊集成到任何或所有上下文輸入嵌入中.此過程稱為歷史建模,是會話問答模型編碼器最重要的一部分.
推理模塊生成的上下文嵌入包含相關問題、上下文段落和對話歷史的所有潛在信息.為了獲得令牌級別的輸出,全連接網(wǎng)絡后softmax層通常用于計算每個令牌的概率或開始/結(jié)束概率.此外,還會使用線性神經(jīng)網(wǎng)絡來查找文本序列的聚合結(jié)果.
在2018年,Gao等人[10]將問答模型閱讀理解的步驟定義為:1)將問題和上下文編碼為神經(jīng)網(wǎng)絡空間中的一組嵌入;2)在神經(jīng)網(wǎng)絡空間中推理識別答案向量;3)將答案向量解碼為自然語言輸出.Huang等人[11]在會話問答任務中,通過添加對話歷史信息調(diào)整了這些步驟.所提出的FlowQA模型,在回答前面的問題的過程中,通過構建交替并行處理結(jié)構和合并生成的中間表示,來提取上下文信息.Qu等人[12]在2019年,提出了ConvQA模型,該模型具有用于歷史選擇和建模的單獨模塊,基于動態(tài)學習策略,來自其他模塊的反饋可以指導其更新.Zhou[13]等人提出的UTMCQA框架,通過對命名實體識別,關系抽取等自然語言任務統(tǒng)一訓練,進而相比于其他框架模型,能夠更有效地學習復雜語句中豐富的信息.
基于CoQA數(shù)據(jù)集,現(xiàn)有的模型有還有DrQA + PGNet,SDNet,BiDAF++w/2-ctx[14]等.這些模型都試圖在給定文章段落和對話歷史的情況下,獲得最佳答案.其中Reddy等人提出的DrQA+PGNet模型增強了傳統(tǒng)的提取式閱讀理解模型.Zhu等人提出的SDNet模型,引入一種基于BERT的單輪問答模型.為了將多輪問答轉(zhuǎn)換為單輪問答,模型使用一個重新表述的問題,即使用特殊標記在多輪上下文中串聯(lián)問題和答案序列.然后,它使用BERT分別為重新制定的問題和段落獲取上下文嵌入.Baheti等人[15]提出了STs方法,對特定問題生成多個候選答案,并使用基于BERT的分類器,將這些候選答案從最好到最差進行排名,模型的效果相比與SDNet有一定提升,但是由于參數(shù)較多,模型訓練相對較慢.
在本論文中,還提出了在編碼層中,構建動態(tài)編碼結(jié)構,在保證模型相對小巧的前提下,通過軟決策器動態(tài)地更新編碼表示.最大程度保留重要信息并舍棄不相關信息的方法作為模型的重要特征信息來源.
在會話問答任務中,不僅需要考慮當前的問題,而且還需要結(jié)合上下文對話歷史.模型首先將當前問題qi,與會話歷史{qi-1,ai-1,…,qi-k,ai-k}串聯(lián)進行詞嵌入編碼.考慮到會話問答中上下文篇幅較長,傳統(tǒng)的方法通過多層LSTM處理,很難有效提取信息來生成當前問題的答案.為了解決這個問題,通過設計動態(tài)編碼層.在每次迭代時,動態(tài)編碼機制將會話歷史信息的輸出通過軟決策器(Pd)動態(tài)地與之前的編碼相結(jié)合作為新的編碼表示,舍棄不相關的信息,隨后被送往下一編碼層中.最終,解碼器通過解碼生成當前問題的答案.動態(tài)編碼模型(Dynamic Encoding Network,簡稱DENet)的結(jié)構如圖1所示.
圖1 DENet模型Fig.1 DENet model
為了更高效更方便的提取文章段落以及會話歷史中的語義信息,將當前問題qi與會話歷史中的問題和答案進行串聯(lián),c=
S=RTC∈Rm×n
(1)
然后利用相關性矩陣S,計算出會話歷史中每一個單詞與文章段落的相關聯(lián)程度,即注意力機制分數(shù).新的會話歷史由式(2)表示:
H=R·softmax(S)
(2)
同樣,可以通過softmax函數(shù)計算段落中每個單詞的會話歷史記錄的注意力權重,并通過C·softmax(ST)計算獲得段落依據(jù)新的上下文表示.同時,使用H·softmax(ST)將新的會話歷史表示映射到段落的編碼空間,最終獲得更新后會話歷史與文章段落的相互依賴表示,矩陣G.更新后的相互依賴表示由式(3)表示:
G=[C;H]·softmax(ST)∈R2d×m
(3)
式(3)中,[;]代表行之間向量的串聯(lián).為了進一步深入提取段落和對話歷史之間的交互關系,將與段落R結(jié)合的相互依賴表示G輸入雙向LSTM中,由式(4)表示:
(4)
由于會話歷史與文章段落中,包含著豐富的語義信息,經(jīng)過一層編碼并不能很好的進行提取.因此,模型提出了多層編碼程序,可以將上下文信息進行有效的提取,提高模型生成答案的質(zhì)量.將上一層編碼生成的矩陣U0作為新的段落表示,與當前段落表示R一起被送往下一層編碼程序中,由式(5)表示:
(5)
(6)
(7)
在式(6)中,wu,wg,wr和b都是所需訓練的參數(shù).式(7)中的e1是一個全1向量.而pd∈Rm作為決策器,用于在不同的編碼層之間對上下文信息分配合理的權重.U1則是經(jīng)過編碼程序之后新的表示信息,隨后被送往下一層中.將最大編碼層數(shù)設置為3,當達到最大編碼層數(shù)時,上下文編碼信息U2被送往解碼器中進行解碼.
在解碼器步驟中,模型使用si和ei分別代表開始的索引號以及結(jié)束的索引號.首先,將輸出的特征U2送往BiGRU中,轉(zhuǎn)換為矩陣M(1).隨后,將特征矩陣U2與M(1)拼接,結(jié)合線性變化,通過softmax函數(shù)計算.預測開始的下標索引si的概率,由式(8)獲得:
(8)
在式(8)中,w1和b1是可訓練的向量.下一步,為了預測結(jié)束的索引ei,模型將M(1)送往另一個BiGRU之中,生成矩陣M(2).然后,相似地,結(jié)束的索引ei的概率,由式(9)獲得:
(9)
此外,在CoQA數(shù)據(jù)集中,有大量會話問題的答案不需要將段落序列作為依據(jù),只是簡單的回答”yes”,”no”,或者答案未知”unknown”.針對這種問題,分別生成與這3種情況相對應的3個概率Py,Pn和Pu.例如,要生成答案為“是”的概率Py,由式(10)獲得:
(10)
使用斯坦福大學Reddy等人公布的數(shù)據(jù)集Conversational Question Answering(簡稱CoQA).CoQA是用于構建會話問答系統(tǒng)的的大規(guī)模會話式問答集.從各個領域的8000篇文章段落中,收集了12.7萬輪對話.每一輪對話中包括一個問題和一個答案.
CoQA包含了來自7個不同領域的文章段落:兒童故事,文學,初中及高中英語考試,新聞文章,維基百科文章,科學文章和Reddit文章.在論文中,使用CoQA數(shù)據(jù)集來評估模型以及與其他基準模型對比.
本文將提出的動態(tài)編碼會話問答模型與近些年在CoQA數(shù)據(jù)集上獲得優(yōu)異表現(xiàn)的基準模型做對比,驗證模型的有效性.
1)PGNet[16]是一個基礎的結(jié)合復制機制的編碼器-解碼器機器學習模型,已經(jīng)廣泛的用于機器閱讀和對話生成任務中.
2)BiDAF++最初由Yatskar等人[17]提出,使用Attention機制并采用多階段層次化處理,使得可以捕獲原文不同粒度的特征,在對話任務中表現(xiàn)十分出色.
3)DrQA[18]使用維基百科作為知識源,結(jié)合搜索,弱監(jiān)督,多任務學習等方法,在大規(guī)模機器閱讀理解任務中,達到了相對領先的水平.
4)FlowQA引入了FLOW機制,可以通過交替并行處理結(jié)構,結(jié)合回答先前問題過程中產(chǎn)生的中間表示到當前的問題編碼中,可以讓機器更好的掌握對話流程,在CoQA中達到了優(yōu)異水平.
5)SDNet引入了一種基于BERT的單輪問答模型.將多輪問答轉(zhuǎn)換為單輪問答,使用特殊標記串聯(lián)會話歷史中的問題和答案序列.然后,使用BERT分別為重新制定的問題和段落獲取上下文嵌入.
模型的詞嵌入由Gloves.840B.300d初始化得到.另外,在解碼器中,將LSTM的隱藏單元的大小設置為500,同時LSTM的層數(shù)設置為2.學習率在20000開始衰減,并且每5000步的衰減率為0.95.Mini-batch size的大小設置為32,Dropout設置為0.3.同時,為了和官方排行榜保持一致,使用F1分數(shù)作為評估指標.F1分數(shù)通過計算預測答案與真實答案數(shù)據(jù)之間在單詞級別的精準度和召回率的平均率,衡量答案生成的質(zhì)量.
在CoQA數(shù)據(jù)集中,文章被分為Child.Liter.Mid-High.News.Wiki.Reddit.Science 7個子類型,以及Overall代表整個數(shù)據(jù)集.同時使用F1分數(shù),作為實驗的評估指標.不同模型在CoQA數(shù)據(jù)集的展示效果,如表1所示.在表1中,動態(tài)編碼模型與基準模型相比都表現(xiàn)得更優(yōu)秀,證明了論文設計的動態(tài)編碼程序能夠有效地提高文章段落以及會話歷史的編碼表示能力,進而能夠提高模型生成答案的質(zhì)量.
表1 使用CoQA數(shù)據(jù)集對生成答案的質(zhì)量進行評估Table1 Use the CoQA data set to evaluate the quality of the generated answers
表2 在動態(tài)編碼模型在CoQA測試集上的消融實驗研究Table 2 Ablation experimental research of dynamic coding model on CoQA test set
1)當模型的編碼層數(shù)設置為一層時,模型的性能出現(xiàn)了明顯的倒退.因此實驗結(jié)果證明,輸入的文本段落中包含了大量的語義信息,經(jīng)過多層編碼是很有必要性的.
2)當模型的編碼層數(shù)設置為2到3層,并沒有加入軟決策器Pd時,可以看到模型的各方面性能在編碼層數(shù)為2時有了顯著的提升,但是在編碼層數(shù)設置為3時,實驗結(jié)果則出現(xiàn)了明細的倒退.因此推測大多數(shù)文本段落序列在經(jīng)過兩層編碼程序后,已經(jīng)接近飽和.單純的只增加編碼程序的層數(shù)并不會對模型性能有所提升,反而可能使其下降.
3)當每一層編碼程序中加入軟決策器Pd用來動態(tài)的更新編碼表示后,各個領域數(shù)據(jù)集的結(jié)果有了大幅度的提升.這證明了使用動態(tài)編碼能夠?qū)⒉幌嚓P的信息舍棄,為不同長度的輸入序列信息分配合理的權重.
在DENet模型中,通過加入N輪歷史問題和對應的答案作為會話歷史的信息,測試會話歷史長度N對模型的影響.實驗結(jié)果如圖2所示.
圖2 會話歷史信息對模型的影響Fig.2 Impact of conversation history information on the model
1)通過實驗結(jié)果可以看到,在加入一輪會話歷史信息后(N=0到N=1),3個模型都出現(xiàn)大幅度的增長,驗證了會話歷史信息對模型的重要性.
2)本文提出的DENet模型,在N=0時,與SDNet模型的F1分數(shù)基本相近.但是在加入會話歷史信息后(N=1),DENet模型的表現(xiàn)明顯優(yōu)于SDNet模型.并且隨著會話歷史長度的增加,DENet模型的性能依然由于其他兩個模型.這證明了DENet模型能夠更高效地處理豐富的上下文語義信息,進而提高生成的答案質(zhì)量.
3)FlowQA模型隨著會話歷史長度的增加(N=3),F1分數(shù)出現(xiàn)了巨幅度的下降,甚至接近只加入一輪會話歷史信息(N=1).這說明了FlowQA模型并不適合處理多輪長對話,而提出的DENet模型,與其他兩個模型相比表現(xiàn)依然穩(wěn)定,不存在大幅度的下降.
在模型對比實驗中,實驗結(jié)果已經(jīng)驗證了本文設計的動態(tài)編碼模型相比與其他模型更加優(yōu)秀.為了進一步對生成答案的質(zhì)量進行分析,本文把CoQA數(shù)據(jù)集中的問答類型分為兩部分.一種是驗證類型的問題,可以被表示為A∈yse/no.而另一種是求知類型的問題,被表示為A?yse/no.通過這種分類,更深入理了解型關于生成答案的表現(xiàn).
由表3的結(jié)果顯示可以看到,PGNet模型在回答驗證類型問題(A∈yse/no)的表現(xiàn)比DrQA模型明顯更好.但是在回答求知類型的問題(A?yse/no)中,表現(xiàn)卻不如DrQA模型.因為 DrQA 從原文章段落中識別文本間的跨度,這種方式更適合求知類型的問題.DrQA+PGNet 在前3個基線模型中獲得了最好的表現(xiàn),因為它結(jié)合了兩個模型的優(yōu)點.本文設計的DENet模型自動為指定問題的預測結(jié)果分配合理的權重,因此在回答驗證類型問題(A∈yse/no)時候,獲得了與DrQA+PGNet相近的結(jié)果.但是在求知類型的問題(A?yse/no)上,本文設計的模型比其他模型表現(xiàn)得都更好,說明本文設計的動態(tài)編碼結(jié)構能夠在編碼過程中不斷更新調(diào)整上下文信息,將不相關信息舍棄.因此在回答場景更復雜信息量更豐富的求知類型問題(A?yse/no)時候,能夠取得更好的表現(xiàn).最后,從整體結(jié)果分析,可以看到本文設計的模型取得了最優(yōu)秀的結(jié)果.并且模型表現(xiàn)更加穩(wěn)定,在兩種問題類型中,都獲得了優(yōu)異表現(xiàn).
表3 CoQA 中的兩種問題類型結(jié)果分析(A∈yse/no表示驗證類型的問題,A?yse/no表示求知類型的問題,Overall表示所有類型的數(shù)據(jù))Table 3 Analysis of the results of the two question types in CoQA(A∈yse/no represents the verification type question,A?yse/no represents the knowledge type question,and Overall represents all types of data)
在論文設計的DENet模型與其他模型對比實驗,以及消融實驗中,都是通過F1分數(shù)來計算模型預測答案與真實答案數(shù)據(jù)之間召回率,衡量答案生成的質(zhì)量,驗證了模型的有效性.為了更進一步的驗證生成答案的質(zhì)量,本文還設計了人工評估實驗.隨機挑選了60個問題,以及相應的文章段落和會話歷史信息,并且從4個方面來進行評估.Relevance,用來評估生成的答案是否與問題,以及文章段落相關.Coherence,用來評估生成的答案是否與文章段落和會話歷史連貫,貼合人類自然對話場景.Fluency,用來評估生成答案的語意是否流暢.Richness,用來評估生成的答案中,語意信息是否豐富.對于每個問題樣本,5個英語六級考試都在500分以上的人來為生成的3個答案(DENet生成的答案,FlowQA生成的答案,人工回答的答案)打分數(shù).分數(shù)評判的范圍在1-3之間.對于每個評估的方面,展示了所有樣本的五個評估者的平均分數(shù).人工評估對比的結(jié)果,如表4所示.
表4 CoQA上的人工評估結(jié)果(Human表示在CoQA中人類生成的答案)Table 4 Human evaluation results on CoQA(Human means that the answers generated by primitive humans are in CoQA)
表4顯示了人工評估的結(jié)果.可以看到DENet模型在各個方面的評估都比FlowQA模型表現(xiàn)的要好.可能是因為根據(jù)數(shù)據(jù)集回答的答案都相對比較簡短,所以兩個模型在Fluency方面上的差異區(qū)別不大.在Relevance和Coherence兩個重要評估方面上,本文提出的DENet模型明顯表現(xiàn)得更好.這說明論文設計的多層動態(tài)編碼程序能夠更有效地提取上下文信息,生成更加貼合人類的流暢連貫對話,而FlowQA模型生成得對話相對比較直白.但是在第4個評估Richness方面,DENet模型和FlowQA模型相比與人類本身的對話,在語意信息豐富度上還有一定差距,需要更一步對信息處理進行完善.
從CoQA數(shù)據(jù)集中隨機一篇文章段落為示例,分別顯示了DENet模型和FlowQA模型輸出的答案.在第1輪和第2輪對話中,DENet和FlowQA模型都正確生成了答案,但是本文設計的模DENet模型在語法層面更合理.在第3輪對話中,可能是與之前的問題跨度較大,FlowQA無法回答‘What country was he in?’的問題,但是DENet能夠正確簡潔的作答.在第4輪對話中,FlowQA生成了正確的答案,但是卻過于簡單‘Western’.相反DENet生成的答案‘Eastern Germany at the time of his hospital stay.’,正確地提取了文本信息,同時還結(jié)合了段落中的內(nèi)容,生成了流暢連貫的對話.實驗結(jié)果如圖3所示.
圖3 Human,NQG和DENet生成問題案例對比Fig.3 Comparison of Human,NQG and DENet generation problem cases
為了驗證設計的模型能夠在任意文章段落上生成問答風格的對話,還將DENet模型應用于 SQuAD閱讀理解數(shù)據(jù)集中的段落,實驗的結(jié)果如圖 4 所示.
在圖4中,因為第一個問題 “圣母院的第一所大學是什么?”,由于沒有會話歷史信息,所以模型的輸入僅由文章段落和當前問題組成.可以看到本文設計的DENet模型依然能夠正確回答指定的問題“藝術與文學學院”.在之后的問題中,加入了會話歷史信息作為引導.可以看到,第1個和第4個問題分是‘what’和‘which’類型,關于實體的問題,而第2個,第3個則是‘when’類型,關于時間的問題,即使問題類型的跨度很大,模型仍可以在領域開放的SQuAD閱讀理解數(shù)據(jù)集上正確且流暢的回答,證明了本文設計模型能夠構建跨領域的穩(wěn)健的問答系統(tǒng),跨領域理解的能力很強.
圖4 在SQuAD段落上生成的對話,答案由DENet模型預測Fig.4 Dialogue generated on the SQuAD paragraph,the answer is predicted by the DENet model
在本文中,針對Conversational Question Answering(CQA)任務設計了一個在主流數(shù)據(jù)集CoQA表現(xiàn)優(yōu)秀的新框架.在編碼器-解碼器模型的基礎上,加入了提出的動態(tài)編碼程序,可以為不同長度的輸入序列分配合理的權重,動態(tài)的更新上下文編碼表示,使模型能夠理解歷史對話信息同時與段落內(nèi)容相融合,生成高質(zhì)量的答案.同時,通過對實驗結(jié)果仔細分析,還發(fā)現(xiàn)了輸入的會話歷史長度對模型性能有著的巨大影響,并且當會話歷史長度為3時,模型的表現(xiàn)最好.本文在實驗部分,一方面通過使用斯坦福大學構建的大規(guī)模會話問答任務語料庫(CoQA)與其他模型的表現(xiàn)對比,驗證了設計的動態(tài)推理程序能夠有效提取上下文信息,進而提高模型的表現(xiàn),另一方面在目前公認頂級水平的大規(guī)模數(shù)據(jù)集SQuAD上,本文設計的模型能夠在任意文章段落中,正確預測答案并且生成流暢連貫的對話,驗證了該模型的穩(wěn)健性和跨領域的理解能力.
近些年隨著知識庫的發(fā)展,涌現(xiàn)了很多基于大規(guī)模知識庫的問答系統(tǒng).基于數(shù)據(jù)庫的問答任務一般被劃分為命名實體識別,實體鏈接[19],關系檢測,以及查詢生成4個子任務.目前基于知識庫的問答系統(tǒng)的主流方法依然是深度學習[20].在本文模型中,只需要稍作調(diào)整,先通過BiLSTM-CRF進行命名實體識別,再利用BiLSTM進行關系分類,最后本文設計的動態(tài)推理程序能夠用于學習大規(guī)模數(shù)據(jù)庫中的語意和文字層面的相關信息以及問題和文章段落之間的相關信息.針對邏輯相對復雜的問題,在訓練時應該加以邏輯標注并且進行模式匹配計算,通過注意力機制對答案不同部分分配不同的權重.
機器學習模型訓練需要大量的問答數(shù)據(jù).因此,基于大規(guī)模未標記語料庫的預訓練語言模型的遷移學習能夠有助于提高模型準確性.尤其是BERT在執(zhí)行各種任務時,都取得了比較先進的成果,包括頂級閱讀理解數(shù)據(jù)集SQuAD.但是針對會話問答任務,考慮到BERT在預訓練期間,捕捉序列之間的關系,只能接收兩個512的令牌長度,并不能很好的捕獲多輪對話中每個序列與段落之間的交互.因此,為了提高模型的準確性,在上下文編碼階段,可以使用BERT分別獨立的獲得當前問題,以及會話歷史的段落表示.并且當前答案的開始和結(jié)束位置根據(jù)上一步中串聯(lián)上下文段落編碼來預測.