馮 鈞,李 艷,杭婷婷
河海大學(xué) 計(jì)算機(jī)與信息學(xué)院 水利部水利大數(shù)據(jù)重點(diǎn)實(shí)驗(yàn)室,南京 211100
問答系統(tǒng)[1]作為目前自然語言處理(natural language processing,NLP)領(lǐng)域中備受人們關(guān)注且具有廣泛發(fā)展前景的研究方向之一,允許用戶以自然語言問句的形式表達(dá)復(fù)雜的信息需求,并針對(duì)用戶提出的問題直接返回精準(zhǔn)的答案。現(xiàn)有的問答系統(tǒng)根據(jù)答案獲取途徑可以分為檢索式問答系統(tǒng)、生成式問答系統(tǒng)[2]。檢索式問答系統(tǒng)是從已有的知識(shí)庫、數(shù)據(jù)集、文檔或者網(wǎng)頁中檢索與問題最相關(guān)的答案,例如基于知識(shí)庫的問答(KBQA)、基于文檔的問答(DBQA)。而生成式問答系統(tǒng)則根據(jù)用戶查詢的問題,由模型自動(dòng)生成相關(guān)的答案[3]。根據(jù)問題的類型以及答案特點(diǎn),問答又分為事實(shí)型問答和非事實(shí)型問答[4]。事實(shí)型問答一般詢問的某一客觀事實(shí),答案是唯一確定的,通常是實(shí)體或短語,例如以Who、Where、When 等疑問詞為首的問句[5]。而非事實(shí)型問答的問題可以是詢問觀點(diǎn)、方法等,答案不具有確定性,可能是段落或句子,注重回答是否合理,例如How、Why、解釋類問題,以及閑聊類問題[6]。
問答系統(tǒng)一般分為三個(gè)模塊:?jiǎn)栴}理解、信息檢索和答案抽取[7]。問題理解作為問答系統(tǒng)的首要環(huán)節(jié),其重要性顯而易見,其結(jié)果為后續(xù)的信息檢索和答案抽取兩個(gè)環(huán)節(jié)提供了指導(dǎo)信息。隨著大數(shù)據(jù)時(shí)代的到來,用戶不再滿足于僅限于單一屬性或單一實(shí)體的問答,而更傾向于涉及多個(gè)本體、多個(gè)類的復(fù)雜問題,如“中國的首都有哪些展示抗戰(zhàn)精神的景點(diǎn)?”[8]。復(fù)雜問題有兩個(gè)特征:一是具有比較復(fù)雜的句法結(jié)構(gòu);二是問句內(nèi)容可能包含多個(gè)本體的多個(gè)類及屬性或者具有多個(gè)約束條件,因此其語義結(jié)構(gòu)也比較復(fù)雜。傳統(tǒng)的問題理解方法(如問句類型識(shí)別[9]、問句主題識(shí)別[10]、查詢擴(kuò)展[11]、關(guān)鍵詞項(xiàng)賦權(quán)[12]以及問句復(fù)述[13]等)不足以有效地幫助問答系統(tǒng)處理復(fù)雜問題。通過對(duì)復(fù)雜問題進(jìn)行分解,可以有效地達(dá)到理解問題的目的。同時(shí),問題分解的有效性和必要性在復(fù)雜問題回答領(lǐng)域的許多研究中得到了證明[14-16]。問答系統(tǒng)中的復(fù)雜問題分解技術(shù)是指將一個(gè)復(fù)雜問題分解為若干簡(jiǎn)單問題,將這些簡(jiǎn)單問題與其答案作為原始復(fù)雜問題的上下文提供給模型,從而降低直接回答復(fù)雜問題的難度。這些子問題之間相互依賴、相互支持。問答系統(tǒng)體系結(jié)構(gòu)如圖1所示。
圖1 問答系統(tǒng)結(jié)構(gòu)圖Fig.1 Structure of question answering system
問題分解研究的意義如下:
(1)豐富復(fù)雜問題的語義信息。將分解得到的子問題與子問題答案作為復(fù)雜問題上下文信息,由此復(fù)雜問題語義信息得到進(jìn)一步的豐富。
(2)使問答系統(tǒng)不受限于檢索的資源空間。在回答復(fù)雜問題的子問題時(shí)可以不限于依賴一種資源(一篇文檔或知識(shí)圖譜中的一個(gè)三元組)。
(3)去除復(fù)雜問題中的冗余信息,精簡(jiǎn)問句。由于自然語言往往具有復(fù)雜的語義結(jié)構(gòu),用戶在提出問題時(shí),容易增加一些冗余信息,可能降低問答系統(tǒng)處理問題的能力。
(4)增強(qiáng)問答系統(tǒng)處理復(fù)雜問題過程的可解釋性。將復(fù)雜問題分解后,通過展示子問題、子問題答案、子問題之間的限制關(guān)系,可以讓用戶了解問答系統(tǒng)回答問題的過程,增強(qiáng)了問答系統(tǒng)的可解釋性。
本文將針對(duì)問答系統(tǒng)中復(fù)雜問題分解任務(wù),梳理從傳統(tǒng)機(jī)器學(xué)習(xí)方法到深度學(xué)習(xí)方法的相關(guān)代表工作,對(duì)其中模型的核心思想以及方法的優(yōu)勢(shì)和不足進(jìn)行分析和總結(jié)。在此基礎(chǔ)上,為接下來的研究方向提出可能性的建議。
傳統(tǒng)的機(jī)器學(xué)習(xí)方法借助特征工程的方法,提取問句的代表性特征,包括句子的詞法特征、語義特征。根據(jù)這些特征借助規(guī)則或模板等生成相應(yīng)的簡(jiǎn)單子問題,通過單跳問答系統(tǒng)得到子問題的答案,再經(jīng)過組合與評(píng)分得到原問題的答案,傳統(tǒng)機(jī)器學(xué)習(xí)的問題分解框架如圖2 所示。主要包括基于規(guī)則模板的方法和基于分割的方法。
圖2 傳統(tǒng)機(jī)器學(xué)習(xí)方法的解決框架Fig.2 Solution framework of traditional machine learning
1.1.1 基于規(guī)則模板的方法
基于規(guī)則模板的方法在很多NLP任務(wù)中都有應(yīng)用,屬于比較傳統(tǒng)的方法。通過人工構(gòu)造的規(guī)則模板匹配處理問答的過程不涉及問題的分析,這種方法獲得的答案準(zhǔn)確性高,系統(tǒng)響應(yīng)速度快。根據(jù)分解的步驟不同,進(jìn)一步劃分為規(guī)則匹配的方法和模板匹配的方法。
(1)規(guī)則匹配的方法
規(guī)則匹配的核心思想是根據(jù)預(yù)先設(shè)定好的經(jīng)驗(yàn)規(guī)則來識(shí)別復(fù)雜問題中的事實(shí),再根據(jù)上下文將事實(shí)重寫,進(jìn)而生成子問題。Hartrumpf[17]提出基于問題語義表示的分解,定義了六個(gè)分解規(guī)則:針對(duì)問句中時(shí)間的分解、針對(duì)主題實(shí)體中地名的分解、針對(duì)問題條件中地名的分解、針對(duì)并列情景的分解、針對(duì)描述的分解、針對(duì)運(yùn)算的分解。利用上述六個(gè)分解規(guī)則為問題生成具有足夠語義表示的解析器。文獻(xiàn)[18-20]中DeepQA 系統(tǒng)主要處理復(fù)合事實(shí)型問句的分解,分解類型分為并列類和嵌套類。并行類問題包含相互獨(dú)立評(píng)估的子問題。嵌套問題需要按順序進(jìn)行分解。具體地,首先,分解識(shí)別器使用一套分解規(guī)則來識(shí)別基于詞典句法特征的復(fù)雜問題中的事實(shí);然后,問題重寫器根據(jù)原始問題的上下文將得到的事實(shí)重寫為子問題,并添加關(guān)鍵的上下文信息。在問題分解之后,通過候選答案合成并由重新排序器生成最終排序的答案列表。但是,該方法的初衷是為了解決DeepQA 回答知識(shí)競(jìng)賽節(jié)目《危險(xiǎn)邊緣(Jeopardy!)》中的復(fù)雜問題,很難應(yīng)用于其他問答系統(tǒng)。
(2)模板匹配的方法
模板匹配是根據(jù)問題的特征成分匹配相似度最高的模板,直接生成子問題,再將子問題進(jìn)行組合。王振宇等[21]提出了一種基于句法模板的復(fù)雜問題分解方法,經(jīng)過對(duì)復(fù)雜問題進(jìn)行實(shí)體抽取、將抽取到的實(shí)體與模板匹配、生成子問題間關(guān)系的問題依賴圖等步驟,實(shí)現(xiàn)對(duì)復(fù)雜問題的分解。該分解方法受限于制定的模板,可分解的問題類型十分有限,并且制定模板難度大,需要相關(guān)領(lǐng)域知識(shí)和語言學(xué)基礎(chǔ)的支持。針對(duì)上述的問題,Zheng等[22]提出了一種利用知識(shí)圖譜和大規(guī)模文本語料庫自動(dòng)構(gòu)建大量模板的低成本方法。先將輸入的問題分解為一組子問題,這些子問題生成一個(gè)依賴圖,再生成原問題的結(jié)構(gòu)化查詢語句。該方法窮舉復(fù)雜問題Q的每一個(gè)子問題q并計(jì)算q與每個(gè)模板的問題模式之間的相似性。這些選中的模板可以形成用于描述問題語義結(jié)構(gòu)的概念語義依賴圖,它是輸入問題和結(jié)構(gòu)化查詢的中間表示。但是,采用窮舉的方法生成復(fù)雜問題的子問題,雖然準(zhǔn)確率高,但是效率低下。所以該文提出了基于類型和基于順序的方法來進(jìn)行子問題與模板的匹配,大大縮減了搜索空間。雖然,自動(dòng)化構(gòu)建模板的方法可以克服耗時(shí)耗力的問題。但是,模板不具備通用性,覆蓋面不足,無法進(jìn)行跨領(lǐng)域的移植。
1.1.2 基于分割的方法
基于分割的思想是通過分析問句的詞法和語義特征,找到子問句之間的邊界,制定合適的分割方案。由于對(duì)問句分析的角度不同,進(jìn)一步分為基于分割點(diǎn)的分割和基于句法分析的分割。
(1)基于分割點(diǎn)的分割
Saquete 等[23]針對(duì)包含“隱式時(shí)間標(biāo)志”的問題進(jìn)行分解,例如“after the Iraqi annexation of Kuwait”。該方法根據(jù)時(shí)序標(biāo)識(shí)將問句分割,并轉(zhuǎn)化為簡(jiǎn)單時(shí)間問句和“when”類型問句。顯而易見,該方法僅適用于時(shí)間類的問句,適用范圍有限。2019 年,Min 等[24]設(shè)計(jì)了DECOMPRC 系統(tǒng),通過跨度預(yù)測(cè)尋找分裂點(diǎn)對(duì)組合多跳問題進(jìn)行分割。DECOMPRC將問題的推理類型分為橋接、交叉和比較,其中,橋接類型需要先找到第一跳證據(jù)才能找到第二跳或其他跳的證據(jù),交叉類型需要找到滿足兩個(gè)獨(dú)立條件的兩個(gè)實(shí)體,比較類型需要比較兩個(gè)不同實(shí)體的屬性。DECOMPRC首先根據(jù)問句推理類型將原始的多跳問題分解為幾個(gè)單跳子問題。然后,利用單跳閱讀理解模型來回答子問題,并依據(jù)子問題的推理類型組合答案。最后,利用一個(gè)分解評(píng)分器來判斷合適的分解,采用一種新的全局重新打分方法,考慮每一種分解來獲得答案,并用答案重新評(píng)分每種分解以決定最終答案,這樣做不僅大幅提高了整體性能,而且提高了正確分解的概率。
然而,這種通過跨度預(yù)測(cè)來分解復(fù)雜問題可能找不到最佳子問題,子問題中可能仍然存在多重關(guān)系或約束,得到的子問題通常是不完整的,有時(shí)會(huì)丟失一些信息。并且,以問題跨度作為子問題的方法只適用于并列組合式復(fù)雜問題,不適用于嵌套類的復(fù)雜問題。
(2)基于句法分析的分割
句法分析又稱為文法分析,是很多NLP任務(wù)的基礎(chǔ)環(huán)節(jié),旨在分析輸入的句子并得到它的句法結(jié)構(gòu)。句法分析的形式一般分為成分句法分析和依存句法分析[25]。成分句法分析旨在識(shí)別句子中的短語和短語之間的層次句法結(jié)構(gòu)。依存句法分析側(cè)重于識(shí)別句子中詞匯之間的二元依存關(guān)系。依存句法樹以層次化結(jié)構(gòu)的方式展示句子的結(jié)構(gòu)信息,它包含了句子成分之間的依賴關(guān)系。
歐石燕等[26]提出通過句法分析將復(fù)雜問題分解為若干個(gè)簡(jiǎn)單問題。分解過程:首先,對(duì)復(fù)雜問題進(jìn)行句法解析,輸出詞語之間的依賴關(guān)系,根據(jù)依賴關(guān)系生成依存句法分析樹。依賴關(guān)系密切的詞語一般位于同一棵子樹中,而關(guān)系疏遠(yuǎn)的詞語位于不同的子樹中。依存句法樹就是子樹之間的組合。然后,根據(jù)生成的依賴樹進(jìn)行分割。分析子樹是否為一個(gè)有效問句,如果是有效問句,則將其作為一個(gè)子問題分割出來。最后,判斷上一步分割出來的子問題是簡(jiǎn)單句還是復(fù)雜句。如果是復(fù)雜句,則將其看作一個(gè)完整的子樹,對(duì)其進(jìn)一步分割。這樣,關(guān)系密切的詞語被分割在一個(gè)簡(jiǎn)單問題中,同時(shí)也能保證分解之后的語義信息不會(huì)發(fā)生變化。
劉雄等[27]提出的分解方法將復(fù)合事實(shí)型問句分解類型總結(jié)歸納為三種:原子類、并列類以及嵌套類。首先,問句分解類型識(shí)別。問句分解類別的不同體現(xiàn)在句法結(jié)構(gòu)上,采用基于樹核支持向量機(jī)的方法準(zhǔn)確識(shí)別問句的分解類別。然后,采用基于依存句法分析的方法生成子問句。在子問句的生成過程中,保留了依存句法樹的整體結(jié)構(gòu),將句法樹中的邊上的依存關(guān)系標(biāo)簽修改為分解標(biāo)簽,用來表征問句分解信息。該方法可以較好地生成嵌套類問句的子問句,但是對(duì)于并列類的復(fù)合問句的分解表現(xiàn)一般。劉雄[28]采用條件隨機(jī)場(chǎng)模型實(shí)現(xiàn)了基于序列標(biāo)注的子問句生成,可以較好地解決并列類的復(fù)雜問題分解。
基于句法分析的方法處理問題分解任務(wù)的關(guān)鍵技術(shù)在于能否正確地構(gòu)造出依存句法樹?;谝?guī)則匹配的方法具有準(zhǔn)確度高的優(yōu)點(diǎn),將句法分析與規(guī)則匹配結(jié)合,通過規(guī)則匹配識(shí)別依存句法樹中的句法成分,是未來的一個(gè)研究方向。中文句法分析是基于詞級(jí)別的,正確的分詞與正確的句法分析樹相互依賴,相互影響[29]。最近的研究[30-31]將中文分詞和句法分析作為聯(lián)合任務(wù),采用基于圖的聯(lián)合模型在中文分詞和依存分析方面都取得了較好的性能。因此,未來可以考慮通過改進(jìn)依存分析來解決中文復(fù)雜問題分解。
總而言之,傳統(tǒng)機(jī)器學(xué)習(xí)方法處理問題分解時(shí),采用流水線的方法,多模塊逐個(gè)分開學(xué)習(xí),并且嚴(yán)重依賴自然語言處理工具抽取的特征。其存在的問題,一方面每個(gè)模塊單獨(dú)優(yōu)化,其優(yōu)化目標(biāo)和任務(wù)的總目標(biāo)可能不一致,另一方面自然語言處理工具往往會(huì)產(chǎn)生特征提取錯(cuò)誤,這些錯(cuò)誤在模塊之間傳播會(huì)被不斷放大,最終影響問答系統(tǒng)的效果。
1.1.3 傳統(tǒng)機(jī)器學(xué)習(xí)的問題分解模型對(duì)比
上面介紹和分析了基于傳統(tǒng)機(jī)器學(xué)習(xí)的問題分解的基本思想和相關(guān)代表工作,表1就分解類型、機(jī)制、優(yōu)勢(shì)以及劣勢(shì)進(jìn)行了總結(jié)。
表1 傳統(tǒng)機(jī)器學(xué)習(xí)問題分解方法總結(jié)Table 1 Summary of question decomposition methods based on traditional machine learning
深度學(xué)習(xí)(deep learning,DL)[32]被公認(rèn)為是機(jī)器學(xué)習(xí)領(lǐng)域中研究得最深入的方向之一。近年來,眾多學(xué)者將DL應(yīng)用到智能問答任務(wù)中[33]。基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)采用端到端方法,模型訓(xùn)練過程不進(jìn)行模塊劃分,統(tǒng)一優(yōu)化任務(wù)目標(biāo),并且自動(dòng)化地提取特征,不需要人為干預(yù)?;谏疃葘W(xué)習(xí)的方法主要解決兩個(gè)問題:子問題生成、子問題組合排序,如圖3 所示。子問題生成大多采用序列編碼-解碼框架,使用神經(jīng)網(wǎng)絡(luò)完成復(fù)雜問題到子問題的轉(zhuǎn)換。由于回答復(fù)雜問題需要單一事實(shí)或多個(gè)事實(shí)進(jìn)行比較、聚合等推理,如果子問題的回答是任意順序,將導(dǎo)致更大的搜索空間和更高的丟失答案的風(fēng)險(xiǎn),因此這些子問題的順序?qū)卮饐栴}的效率和準(zhǔn)確性有至關(guān)重要的作用。有一些模型為了解決復(fù)雜問題存在子問題之間嵌套的問題,其子問題生成和排序是一個(gè)不斷迭代的過程。
圖3 基于深度學(xué)習(xí)的問題分解方法的框架Fig.3 Framework of question decomposition method based on deep learning
1.2.1 基于Transformer
Transformer[34]是Google 在2017 年提出的一種NLP經(jīng)典模型,采用端到端的編碼器-解碼器(encoder-decoder)結(jié)構(gòu)。Transformer 完全基于注意力機(jī)制,由于encoder和decoder 中采用具有較強(qiáng)特征學(xué)習(xí)能力的自注意(self-attention)和多頭注意(multi-head self-attention)機(jī)制,所以Transformer具有較強(qiáng)的特征抽取能力。
Zhang 等[35]提出一個(gè)基于Transformer 的問題分解器,根據(jù)輸入的復(fù)雜問題直接生成完整自然的子問題,沒有詞序和內(nèi)容限制。這個(gè)問題分解器由一個(gè)Transformer編碼器和迭代的解碼器組成,直接生成子問題表示。該文專注于復(fù)雜問題的語義解析,提出了一種分層語義解析(hierarchical semantic parsing,HSP)模型,利用復(fù)雜問題的分解性進(jìn)行語義解析,基于分解-集成的思想,以三階段的解析架構(gòu)設(shè)計(jì)。在第一階段,運(yùn)用問題分解器將一個(gè)復(fù)雜的問題分解為一系列子問題。在第二階段,利用信息提取器導(dǎo)出問題的類型和謂詞信息。在最后階段,將先前階段生成的信息進(jìn)行整合,為復(fù)雜問題生成邏輯形式。該模型在生成子問題表示時(shí)不考慮問題的分解類型,因此適合所有問題的分解。
Khot 等[36]提出一個(gè)TMN 框架,并基于該框架構(gòu)建了一個(gè)ModularQA系統(tǒng),該系統(tǒng)由單跳的事實(shí)型問答系統(tǒng)和問題邏輯計(jì)算器組成。TMN框架通過一系列子模型將復(fù)雜問題分解為子問題。其中,子模型是任意的,在框架中是黑盒模型。模型通過下一問題生成器獲得子問題,并通過問答模型回答子問題,當(dāng)下一問題生成器達(dá)到最終節(jié)點(diǎn)標(biāo)記時(shí),問答模型返回最終結(jié)果。子問題生成模型采用Transformer 結(jié)構(gòu),并通過復(fù)制機(jī)制增強(qiáng)解碼器。同時(shí),這一分解過程是遠(yuǎn)程監(jiān)督的,不需要分解標(biāo)注。
Fu等[37]提出一個(gè)三階段框架RERC(relation extractorreader and comparator)。關(guān)系提取器對(duì)復(fù)雜問題進(jìn)行分解,然后閱讀器依次回答子問題,最后比較器進(jìn)行數(shù)值比較并總結(jié)所有子問題以得到最終答案。Relation Extractor 可以從復(fù)雜的文本表示中提取問題的主題和關(guān)系,有兩種不同的結(jié)構(gòu),一種是classification-type,針對(duì)四種分解類型Compositional、Inference、Comparison和Bridge-Comparison 進(jìn)行具體的推理;另一種是spantype,問題關(guān)系的類型不受限制,從問題中提取多個(gè)跨度作為問題關(guān)系。關(guān)系提取器使用Transformer網(wǎng)絡(luò)作為交互層,通過對(duì)問句的表示進(jìn)行編碼來表達(dá)自我交互,從而找到問題的主題和關(guān)系。在這個(gè)分解模型中,不生成完整的句子狀子問題,只提取主題實(shí)體和問題關(guān)系,通過模板進(jìn)行構(gòu)造子問題,降低了復(fù)雜問題分解的難度。
Wolfson 等[38]提出一種問題分解意義表示(question decomposition meaning representation,QDMR),基于數(shù)據(jù)庫查詢語言(SQL,SPARQL)和語義解析所設(shè)計(jì),將復(fù)雜的問題通過一系列簡(jiǎn)單的原子可執(zhí)行步驟來表示,復(fù)雜問題的答案是最后一步的答案。同時(shí),提出一個(gè)基于序列到序列的模型將問題解析為QDMR。QDMR從根本上描述了輸入問題中跨度之間的標(biāo)記關(guān)系。受此啟發(fā),Hasson 等[39]提出通過使用依賴圖(dependency graphs,DG)監(jiān)督向編碼器提供更多信息來改進(jìn)序列到序列解析器。使用結(jié)構(gòu)化的中間邏輯形式表示LF自動(dòng)將問題DG映射到QDMR。DG中的節(jié)點(diǎn)對(duì)應(yīng)于QDMR步驟中的token,邊描述對(duì)應(yīng)于不同計(jì)算步驟的邏輯關(guān)系。編碼器由一個(gè)RAT 層和Transformer 組成,RAT 層在Transformer 自注意力機(jī)制中注入token 之間關(guān)系的信息。RAT層可以明確表示標(biāo)記之間的關(guān)系,并且可用于在語義解析的上下文中對(duì)輸入圖上的token 進(jìn)行編碼[40]。但是,QDMR 依賴于昂貴的人工注釋,可能無法推廣到具有其他分解類型的領(lǐng)域。
Transformer 由于性能良好,在NLP 領(lǐng)域獲得了廣泛應(yīng)用,但是也存在缺陷,如,序列上下文需要固定長(zhǎng)度,長(zhǎng)序列可以得到高效處理,短序列的效率一般。2019 年,Dai等[41]提出Transformer-XL,引入片段級(jí)遞歸機(jī)制和相對(duì)位置編碼方案兩種技術(shù),有效地解決了這一限制。未來將改進(jìn)的Transformer應(yīng)用到問題分解任務(wù)有待進(jìn)一步的探索。
1.2.2 基于圖神經(jīng)網(wǎng)絡(luò)
圖神經(jīng)網(wǎng)絡(luò)(graph neural network,GNN)[42]是一種基于深度學(xué)習(xí)的處理圖數(shù)據(jù)結(jié)構(gòu)的方法,通過將深度學(xué)習(xí)算法和圖廣播操作結(jié)合,可以讓圖的結(jié)構(gòu)和頂點(diǎn)屬性信息參與到學(xué)習(xí)中,在信息傳播、關(guān)系歸納偏置等應(yīng)用中表現(xiàn)出良好的效果。GNN中的每個(gè)節(jié)點(diǎn)在信息傳播時(shí)學(xué)習(xí)其鄰居節(jié)點(diǎn)的狀態(tài)表示,以此更新自己的節(jié)點(diǎn)表示。顯然,將GNN 用于復(fù)雜問題分解任務(wù)時(shí)必須解決以下問題:(1)確定圖中的節(jié)點(diǎn)以及其初始節(jié)點(diǎn)表示;(2)確定節(jié)點(diǎn)之間連邊的情況;(3)設(shè)計(jì)節(jié)點(diǎn)之間信息傳遞的算法。
Wang等[43]采用早期圖神經(jīng)網(wǎng)絡(luò)的思想研究多問句分割方法,將問句和語境中的所有句子作為圖的頂點(diǎn),根據(jù)它們的關(guān)系建立邊,依據(jù)是否是上下句關(guān)系、是否具有共指關(guān)系以及KL 散度等條件給邊設(shè)置初始權(quán)重,并設(shè)計(jì)權(quán)重的傳播算法,通過迭代地傳播鄰居信息來更新頂點(diǎn)的表示,直到達(dá)到穩(wěn)定的平衡,最后得到權(quán)重較高的邊相連的問句和語境對(duì)即為分割后的結(jié)果。但是,這種遞歸函數(shù)在層與層間參數(shù)共享,導(dǎo)致訓(xùn)練過程的計(jì)算代價(jià)很大。并且該方法是針對(duì)社區(qū)問答的多問句分割,并且分割過程需要依靠答案,無法應(yīng)用于其他問答系統(tǒng)。
1.2.3 基于注意力機(jī)制
注意力機(jī)制(attention mechanism,簡(jiǎn)稱Attention)是一種模擬人腦注意力機(jī)制的模型,在提取特征的時(shí)重點(diǎn)關(guān)心某些重要的信息。近兩年,Attention被廣泛應(yīng)用在NLP、圖像識(shí)別等各種深度學(xué)習(xí)任務(wù)當(dāng)中[44]。
2018 年,Talmor 等[45]提出的SplitQA 模型采用指針網(wǎng)絡(luò)[46]分解問題的方法。指針網(wǎng)絡(luò)將Attention 分布作為指針指向輸入中的某些部分,然后組合輸入序列,輸出是輸入序列的子集,如圖4所示。主要用于解決組合優(yōu)化問題。具體地,先構(gòu)造問題的計(jì)算樹,通過計(jì)算樹分析問題語義并拆分問題,然后使用KG或搜索引擎計(jì)算答案和該答案的得分,并將其與原來得分作比較,從而決定是否進(jìn)行分解。但是,該方法需要大量的訓(xùn)練數(shù)據(jù),目前帶有分解標(biāo)簽的復(fù)雜問題數(shù)據(jù)集還比較匱乏。
圖4 指針網(wǎng)絡(luò)的基本結(jié)構(gòu)Fig.4 Basic architecture of pointer network
2019 年,Bhutani 等[47]設(shè)計(jì)出了TextRay 模型,提出分解-連接-執(zhí)行的方法來通過子查詢構(gòu)建復(fù)雜查詢。首先,他們借鑒了Talmor等采用指針網(wǎng)絡(luò)生成子問題的思想,使用一個(gè)增強(qiáng)指針網(wǎng)絡(luò)生成計(jì)算方案,即子查詢的執(zhí)行序列。然后,分階段生成子查詢的候選集,通過計(jì)算子查詢候選集與問題的語義相似性,找到最佳候選子查詢。最后,按照計(jì)算方案依次組合子查詢并執(zhí)行它們。由于原問題語法語義相對(duì)復(fù)雜,并且要匹配多個(gè)子查詢的表達(dá)式,問題中的無關(guān)信息會(huì)分散匹配的注意力,因此,作者在基于LSTM 的語義匹配模型中加入了注意力機(jī)制,以強(qiáng)調(diào)問題的特別部分,對(duì)子查詢候選集進(jìn)行篩選。對(duì)于缺乏標(biāo)記數(shù)據(jù)的問題,作者采用了隱式監(jiān)督的方法。隨后,Bhutani 等[48]提出了MULTIQUE 模型,在TextRay 系統(tǒng)基礎(chǔ)上,MULTIQUE 可以結(jié)合多個(gè)數(shù)據(jù)源為每個(gè)子查詢生成其對(duì)應(yīng)的候選集。這樣做可以聚合分散在多個(gè)KB 上的證據(jù),同時(shí)不同KB 上的證據(jù)可以相互補(bǔ)充。
李威宇[49]改進(jìn)了指針網(wǎng)絡(luò)生成子問句方法,所提出的mul-attention PGN在指針網(wǎng)絡(luò)模型的基礎(chǔ)上,加入多注意力機(jī)制,既能復(fù)制源文本中的關(guān)鍵信息,又能通過生成器生成新的詞匯,同時(shí)保證生成的多個(gè)子問題可以出現(xiàn)原問題的同一個(gè)詞匯和短語。
Jiang 等[50]基于堆棧的思想提出了一個(gè)基于控制器的模塊自組裝神經(jīng)網(wǎng)絡(luò),包括四個(gè)模塊(Find,Relocation,Compare,No),每個(gè)模塊分別執(zhí)行一種類型的推理。該自組裝網(wǎng)絡(luò)通過一個(gè)控制器從復(fù)雜問題中推斷所需要的每一步推理行為來進(jìn)行問句分解??刂破饔?jì)算所有問題詞注意力分布來識(shí)別隱藏的子問題。Find模塊在給定上下文和問題表示的情況下,會(huì)在上下文詞上生成注意力圖。Relocate模塊將前一個(gè)子問題的中間答案與當(dāng)前子問題結(jié)合,輸出一個(gè)以前一個(gè)問題為條件的新注意力圖。Compare 模塊根據(jù)問題直觀地“比較”來自前兩個(gè)模塊的輸出??刂破鞑捎枚褩泶鎯?chǔ)模塊的輸出。在控制器輸出子問題的同時(shí),預(yù)測(cè)所有可用模塊的軟組合,該軟組合會(huì)引導(dǎo)主網(wǎng)絡(luò)遵循推理路徑。該方法根據(jù)三種推理類型將原始的復(fù)雜問題分解為簡(jiǎn)單子問題,可分解的問題類型有限,可能存在無法分解的情況。
1.2.4 基于查詢圖
查詢圖在基于知識(shí)圖譜的問答系統(tǒng)中具有廣泛的應(yīng)用,基于查詢圖的方法將自然語言問題抽象成結(jié)構(gòu)化的查詢圖,查詢圖可以直接匹配問題的邏輯形式,在知識(shí)圖譜上執(zhí)行查詢就能得到問題的答案?;诓樵儓D的問題分解就是生成子問題的查詢圖。
Shin 等[51]提出了分解-重組的問答方法。在分解任務(wù)中,首先根據(jù)問題的語法結(jié)構(gòu)和依存分析樹將復(fù)雜問題拆分為多個(gè)子問題,同時(shí)過濾需要數(shù)學(xué)運(yùn)算的約束。然后,從問題查詢圖庫中搜索與子問題對(duì)應(yīng)的子圖。在這個(gè)階段,模型從局部角度計(jì)算每個(gè)子圖的語義。接下來,通過使用基于BiGRU 的語義匹配模型從全局角度捕獲組合語義,并選擇得分最高的子查詢圖組合作為完整的查詢圖。最后,將捕獲的約束反映到完整的查詢圖中,合并中間結(jié)果來提取答案集。但是該方法需要從訓(xùn)練問題-答案對(duì)中收集所有問題中的正確查詢圖,然后將問題和查詢圖分別拆分為子問題和子查詢圖,并將它們存儲(chǔ)到問題查詢圖庫中,該圖庫包括原始問題-查詢圖對(duì),原始問題的子問題-子查詢圖對(duì)。構(gòu)建這樣的問題查詢圖庫并不是一件容易的事。
Hu等[52]提出了一種稱為實(shí)體描述圖(entity description graph,EDG)的新型圖結(jié)構(gòu)來表示復(fù)雜問題。使用基于規(guī)則的方法迭代地將問題表示為EDG,并將EDG運(yùn)用到一個(gè)QA 系統(tǒng),得到EDGQA。具體地,首先,對(duì)問題成分進(jìn)行解析得到問題的解析樹。然后,識(shí)別問題類型并生成初始EDG,初始的EDG包含一個(gè)根節(jié)點(diǎn)、一個(gè)實(shí)體節(jié)點(diǎn)、一個(gè)用于描述實(shí)體的描述節(jié)點(diǎn),問題邊連接根節(jié)點(diǎn)與實(shí)體節(jié)點(diǎn),約束邊連接實(shí)體節(jié)點(diǎn)和描述節(jié)點(diǎn)。根節(jié)點(diǎn)用于描述問題的類型。最后,根據(jù)一組規(guī)則和成分解析樹迭代地分解問題描述,生成問題的EDG。問題的EDG 由多個(gè)塊組成,每個(gè)塊對(duì)應(yīng)一個(gè)子問句。在得到問題的EDG后,通過實(shí)體鏈接、關(guān)系路徑生成、子查詢生成與子查詢集成模塊,生成問題的查詢語句,在LC-QuAD1.0 數(shù)據(jù)集[53]取得了53.1%的F1 值。但是,這種基于查詢圖的方法不到搜索結(jié)束,不會(huì)產(chǎn)生中間解析結(jié)果,即無法把中間結(jié)果應(yīng)用于后續(xù)步驟。
1.2.5 基于強(qiáng)化學(xué)習(xí)的方法
強(qiáng)化學(xué)習(xí)方法在問答系統(tǒng)中有著廣泛的應(yīng)用,尤其是知識(shí)圖譜問答推理[54]。利用實(shí)體間的復(fù)雜路徑特征學(xué)習(xí)一個(gè)隨機(jī)游走器,進(jìn)而推斷出答案。較為典型的模型DeepPath[55]將路徑搜索轉(zhuǎn)化為強(qiáng)化學(xué)習(xí)過程,通過控制所找到的路徑的屬性來縮減搜索空間。
先前的工作大多集中于子問題生成,但優(yōu)化子問題順序的工作卻很少。Zhang等[56]提出利用強(qiáng)化學(xué)優(yōu)化子問題的回答順序,同時(shí)使用知識(shí)圖譜結(jié)構(gòu)捕捉子問題之間的聯(lián)系。該模型動(dòng)態(tài)地決定在每個(gè)推理狀態(tài)下應(yīng)該回答哪個(gè)子問題,通過計(jì)算子問題答案對(duì)正確預(yù)測(cè)整個(gè)問題的程度與給定狀態(tài)下子問題預(yù)測(cè)出錯(cuò)的可能性兩個(gè)原則設(shè)計(jì)獎(jiǎng)勵(lì)。模型由一個(gè)狀態(tài)編碼網(wǎng)絡(luò)、一個(gè)用于跟蹤已回答子問題的兩層LSTM 和一個(gè)用于選擇動(dòng)作的策略網(wǎng)絡(luò)組成,如圖5所示。狀態(tài)編碼網(wǎng)絡(luò)采用當(dāng)前子圖表示向量,并對(duì)其進(jìn)行多頭編碼。輸出將與LSTM的輸出連接起來,并饋送到一個(gè)兩層策略網(wǎng)絡(luò)中,該網(wǎng)絡(luò)的末端有一個(gè)softmax 層,用于操作的輸出分布。該模型旨在學(xué)習(xí)一個(gè)子問題序列,而不是設(shè)計(jì)復(fù)雜的QA模型,與經(jīng)典的MIERVA 模型[57]比較,該模型在WC-14數(shù)據(jù)集[58]上取得了Hit@1值14%的提升。
圖5 基于強(qiáng)化學(xué)習(xí)的復(fù)雜問題分解Fig.5 Decomposition of complex question based on reinforcement learning
基于強(qiáng)化學(xué)習(xí)的方法將復(fù)雜問答任務(wù)當(dāng)作序列決策過程,模型的泛化能力強(qiáng),無須大量的標(biāo)注語句。同時(shí),通過強(qiáng)化學(xué)習(xí)優(yōu)化子問題回答順序,不僅能夠提高模型的正確率,而且增強(qiáng)了問答過程的可解釋性。
1.2.6 基于深度學(xué)習(xí)問題分解模型對(duì)比
上面介紹和分析了基于深度學(xué)習(xí)的問題分解的基本思想和相關(guān)代表工作,表2就問答類型、分解類型、機(jī)制、優(yōu)勢(shì)以及劣勢(shì)進(jìn)行了總結(jié)。
表2 深度學(xué)習(xí)問題分解方法總結(jié)Table 1 Summary of question decomposition methods based on deep learning
無論傳統(tǒng)機(jī)器學(xué)習(xí)的方法還是基于深度學(xué)習(xí)的分解,都是基于監(jiān)督的方法,需要大量高質(zhì)量的分解案例。而Perez等[59]提出了一種在完全無監(jiān)督的情況下自動(dòng)分解問題的方法。分解的過程包括三個(gè)階段:(1)通過使用嵌入相似性的方法從一個(gè)簡(jiǎn)單的問題語料庫S中檢索類似于復(fù)雜問題Q的候選子問題,并創(chuàng)建一個(gè)偽分解語料庫D。(2)使用Q和D作為訓(xùn)練數(shù)據(jù),通過一種One-to-N 無監(jiān)督序列轉(zhuǎn)換算法(ONUS),以改進(jìn)問題的偽分解。(3)使用現(xiàn)有的QA系統(tǒng)回答子問題,將子問題及其答案提供給重組模型,以組合生成復(fù)雜問題的答案。該方法在無監(jiān)督的情況下,實(shí)現(xiàn)了與依賴于強(qiáng)監(jiān)督的方法一樣的效果,即無監(jiān)督產(chǎn)生的子問題的答案與數(shù)據(jù)集中標(biāo)注的證據(jù)事實(shí)一致。但是,這種無監(jiān)督的問題分解很大程度上是抽取式的,雖然對(duì)于組合式的復(fù)雜問題也有效,但是不能處理所有的復(fù)雜問題。因此,探索魯棒的無監(jiān)督問題分解也是一種研究思路。
問答系統(tǒng)可追溯到1950 年,早期的問答系統(tǒng)不能對(duì)自然語言真正理解,隨著大量的研究成果出現(xiàn),今天在單一問題上已經(jīng)取得較好的成果[60]。問答系統(tǒng)取得的巨大發(fā)展離不開數(shù)據(jù)集。目前QA 領(lǐng)域復(fù)雜問題的常用數(shù)據(jù)集如下:
(1)HotpotQA 數(shù)據(jù)集[61]是一個(gè)基于維基百科的具有自然、多跳問題的問答數(shù)據(jù)集,包含了112 779個(gè)問答對(duì)。該數(shù)據(jù)集的問題本身沒有考慮任何預(yù)先存在的知識(shí)庫或知識(shí)模式,問題必須經(jīng)過兩步及以上推理才能得到答案,并且提供了回答問題所必需的證據(jù)事實(shí)。問題的推理類型有三種:①需要對(duì)比兩個(gè)實(shí)體或者需要橋?qū)嶓w;②通過檢查多個(gè)屬性來定位答案實(shí)體;③通過橋?qū)嶓w推斷相關(guān)實(shí)體的屬性。
(2)ComplexWebQuestions數(shù)據(jù)集[45]是基于WebQSP數(shù)據(jù)集[62]構(gòu)建的,包含34 689個(gè)問答對(duì)和SPARQL查詢。從WebQSP中采樣問題-SPARQL查詢對(duì),自動(dòng)地構(gòu)造包含組合、連接、最高級(jí)和比較級(jí)形式的復(fù)雜SPARQL 查詢,然后由眾包平臺(tái)將SPARQL查詢轉(zhuǎn)化為自然語言問題,通過在Freebase 執(zhí)行SPARQL 查詢來獲得問題的答案。
(3)WebQuestiosSP 數(shù)據(jù)集[62]是WebQuestions 數(shù)據(jù)集的升級(jí)版。WebQSP 刪除了WebQuestions 中的有歧義且答案不清晰的問題,它的每一個(gè)問題都有其對(duì)應(yīng)的SPARQL查詢。WebQSP包含了4 737個(gè)簡(jiǎn)單或復(fù)雜問題。
問答系統(tǒng)中常用的評(píng)價(jià)指標(biāo)包括:準(zhǔn)確率(Precision)、召回率(Recall)、F1 值、Hit@1。Precision 從查準(zhǔn)率對(duì)模型進(jìn)行評(píng)估。Recall 從查全率對(duì)模型進(jìn)行評(píng)估。F1 值是Precision 和Recall 的等權(quán)調(diào)和平均。將問答看作問題答案檢索任務(wù),Hit@1指正確答案是最終排序的第一個(gè)的占比。
表3 收集了相關(guān)論文和典型模型在數(shù)據(jù)集上的表現(xiàn)。其中,HotpotQA具有Distractor和Fullwiki兩個(gè)任務(wù)。
表3 不同模型的數(shù)據(jù)集及其評(píng)測(cè)標(biāo)準(zhǔn)Table 3 Different models of data sets and their evaluation criteria
目前,研究者針對(duì)問題分解任務(wù)開展了很多有益的研究,但仍然存在著提升空間,值得進(jìn)一步探索。未來的研究工作可以從以下幾個(gè)方面展開:
(1)構(gòu)建統(tǒng)一的復(fù)雜問題分解類型體系?,F(xiàn)有的研究大多根據(jù)各自的應(yīng)用領(lǐng)域自行定義分解類型,導(dǎo)致研究人員無法共享訓(xùn)練數(shù)據(jù)。所以,未來需要一個(gè)統(tǒng)一的問句分解類型體系,從而促進(jìn)問題分解的研究和發(fā)展。
(2)將預(yù)訓(xùn)練模型應(yīng)用到問題分解任務(wù)中。近年來,BERT等預(yù)訓(xùn)練模型在眾多NLP任務(wù)中取得了驚人的成績(jī),預(yù)訓(xùn)練模型采用預(yù)訓(xùn)練+微調(diào)的模式,先使用大規(guī)模無監(jiān)督語料進(jìn)行模型的預(yù)訓(xùn)練,再使用小規(guī)模標(biāo)注語料進(jìn)行下游任務(wù)上的微調(diào)。未來研究可以考慮將現(xiàn)有的問題分解模型與預(yù)訓(xùn)練模型結(jié)合,進(jìn)一步提升問題分解的效果。
(3)缺乏問題分解任務(wù)的評(píng)價(jià)指標(biāo)。EDGQA 通過比較分解的塊數(shù)與SPARQL 中變量個(gè)數(shù)是否相等來評(píng)價(jià)分解的好壞;HSP采用Bleu-4[68]和Rouge-L[69]作為問題分解的評(píng)價(jià)指標(biāo);模塊自組裝方法將問題分解作為問答系統(tǒng)的一個(gè)步驟,通過評(píng)價(jià)問答系統(tǒng)的好壞來表現(xiàn)問題分解的性能。當(dāng)下缺乏一種針對(duì)問題分解的評(píng)價(jià)指標(biāo),這極大地阻礙了模型的對(duì)比與提升。因此未來考慮制定一種評(píng)價(jià)指標(biāo),從而促進(jìn)問題分解的研究和發(fā)展。
(4)結(jié)合生成對(duì)抗網(wǎng)絡(luò)(generative adversarial networks,GAN),提高問題分解的準(zhǔn)確性。GAN[70]采用對(duì)抗博弈思想,通過讓生成器和判別器相互博弈的方式進(jìn)行學(xué)習(xí),經(jīng)過不斷地優(yōu)化迭代,模型達(dá)到最優(yōu)。因此,未來研究中可以考慮引入GAN,考慮生成器分解問題,判別器判別分解的正確性。
復(fù)雜問題分解作為理解復(fù)雜問題的一種有效手段,在問答系統(tǒng)回答復(fù)雜問題的過程中發(fā)揮了不可估量的作用,受到學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。本文綜述了復(fù)雜問題分解的研究進(jìn)展,分析和總結(jié)了前人研究的不足,提出了對(duì)未來研究方向的建議,希望有助于問題分解任務(wù)未來進(jìn)一步的研究和發(fā)展。