仇韞琦,王元卓,白 龍,尹芷儀,沈華偉,白 碩
(1.中國(guó)科學(xué)院計(jì)算技術(shù)研究所數(shù)據(jù)智能系統(tǒng)研究中心,北京 100190;2.中國(guó)科學(xué)院大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,北京 101408;3.中科大數(shù)據(jù)研究院,河南鄭州 450046;4.中國(guó)科學(xué)院計(jì)算技術(shù)研究所網(wǎng)絡(luò)數(shù)據(jù)科學(xué)與技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100190)
隨著人工智能技術(shù)的快速發(fā)展,人機(jī)交互的現(xiàn)實(shí)應(yīng)用日益廣泛.知識(shí)庫(kù)問(wèn)答(Knowledge Base Question Answering,KBQA)作為人機(jī)交互的重要支撐,成為工業(yè)界與學(xué)術(shù)界共同關(guān)注的研究熱點(diǎn)之一.相較于基于非結(jié)構(gòu)化文本數(shù)據(jù)的問(wèn)答(如文檔檢索、閱讀理解等),知識(shí)庫(kù)問(wèn)答能借助知識(shí)庫(kù)中精度高、關(guān)聯(lián)性強(qiáng)的結(jié)構(gòu)化知識(shí),為給定的復(fù)雜事實(shí)型問(wèn)句提供精確的語(yǔ)義理解或解析,并在知識(shí)庫(kù)中查詢(xún)推理來(lái)得到準(zhǔn)確、簡(jiǎn)短的答案.如問(wèn)句“法國(guó)在第一次世界大戰(zhàn)時(shí)的總統(tǒng)是誰(shuí)?”中需要對(duì)法國(guó)歷任總統(tǒng)的就任與卸任時(shí)間分別同第一次世界大戰(zhàn)的開(kāi)始與結(jié)束時(shí)間進(jìn)行數(shù)值比較,從而得到答案“雷蒙·普恩加萊”.
目前主要有兩類(lèi)知識(shí)庫(kù)問(wèn)答方法:一類(lèi)基于語(yǔ)義解析(semantic parsing)[1~3],將自然語(yǔ)言問(wèn)句按照特定文法(grammar)或者處理步驟映射為結(jié)構(gòu)化的語(yǔ)義表征(meaning representation),再將其改寫(xiě)為知識(shí)庫(kù)查詢(xún)從而獲得最終答案;另一類(lèi)基于信息檢索(information retrieval)[4~6],首先通過(guò)實(shí)體鏈接,識(shí)別出問(wèn)句中關(guān)心的實(shí)體作為主題實(shí)體(topic entity),并獲取以主題實(shí)體為中心的知識(shí)庫(kù)子圖,將子圖中的每個(gè)節(jié)點(diǎn)都視作候選答案,再學(xué)習(xí)問(wèn)句和候選答案的向量表示,最后通過(guò)排序模型或分類(lèi)模型對(duì)候選答案進(jìn)行篩選,從而獲得最終答案.基于語(yǔ)義解析的方法以符號(hào)化表征表示問(wèn)句的語(yǔ)義,基于信息檢索的方法以稠密向量表示問(wèn)句的語(yǔ)義.相比基于信息檢索的方法,語(yǔ)義解析的方法能夠應(yīng)對(duì)更多類(lèi)型的問(wèn)句,例如含有實(shí)體約束、類(lèi)別約束、數(shù)值比較、數(shù)值排序等的問(wèn)句,從而有更好的應(yīng)用前景.
早期的知識(shí)庫(kù)問(wèn)答系統(tǒng)以基于符號(hào)和規(guī)則的專(zhuān)家系統(tǒng)為主,具有代表性的如BASEBALL[7],將問(wèn)句解析為規(guī)格列表(specification list),從而回答美國(guó)棒球比賽相關(guān)的問(wèn)句.但是專(zhuān)家系統(tǒng)的核心是強(qiáng)依賴(lài)領(lǐng)域?qū)<业囊?guī)則,這導(dǎo)致其應(yīng)用領(lǐng)域狹窄,可回答問(wèn)句類(lèi)型受限等問(wèn)題.
近年來(lái),隨著自然語(yǔ)言處理和機(jī)器學(xué)習(xí)技術(shù)的進(jìn)步,這些問(wèn)題逐步得到緩解,面向知識(shí)庫(kù)問(wèn)答的語(yǔ)義解析技術(shù)也涌現(xiàn)出了大量高水平研究論文,在諸多評(píng)測(cè)數(shù)據(jù)集上顯示出良好的性能.盡管如此,現(xiàn)有方法依舊面臨了如下挑戰(zhàn).
(1)如何選擇合適的語(yǔ)義表征形式以表達(dá)問(wèn)句的語(yǔ)義.語(yǔ)義解析的第一步是為問(wèn)句選擇具體的語(yǔ)義表征形式,現(xiàn)有方法采用了多種不同形式的語(yǔ)義表征.有些語(yǔ)義表征的表達(dá)能力強(qiáng),能覆蓋多數(shù)類(lèi)型的自然語(yǔ)言問(wèn)句,但結(jié)構(gòu)復(fù)雜,構(gòu)造困難;有些語(yǔ)義表征的結(jié)構(gòu)緊湊,構(gòu)造相對(duì)容易,但表達(dá)能力有所欠缺.因此,采用合適的語(yǔ)義表征才能平衡好表達(dá)完備性與構(gòu)造便捷性,在覆蓋更多類(lèi)型的問(wèn)句的同時(shí),降低模型構(gòu)造該語(yǔ)義表征的難度.
(2)如何解析問(wèn)句的復(fù)雜語(yǔ)義并輸出相應(yīng)的語(yǔ)義表征.復(fù)雜問(wèn)句的語(yǔ)義豐富,包含了知識(shí)庫(kù)中的多個(gè)關(guān)系,實(shí)體或類(lèi)別約束,比較或排序等函數(shù)算子等.同時(shí),相同的語(yǔ)義成分按照不同的順序或結(jié)構(gòu)組合,表達(dá)的語(yǔ)義則大不相同.因此,準(zhǔn)確地識(shí)別出問(wèn)句包含的語(yǔ)義成分,并將不同的語(yǔ)義成分按照特定順序和結(jié)構(gòu)組合,才能準(zhǔn)確地反映問(wèn)句的真實(shí)語(yǔ)義.
(3)如何應(yīng)對(duì)特定領(lǐng)域中數(shù)據(jù)標(biāo)注成本高昂、高質(zhì)量數(shù)據(jù)匱乏的問(wèn)題.現(xiàn)有方法主要是數(shù)據(jù)驅(qū)動(dòng),但是給問(wèn)句標(biāo)注相應(yīng)的語(yǔ)義表征或最終答案需要標(biāo)注人員熟悉知識(shí)庫(kù)的本體(ontology)和實(shí)例(instance),高昂的標(biāo)注成本導(dǎo)致特定領(lǐng)域僅有少量標(biāo)注數(shù)據(jù),甚至沒(méi)有標(biāo)注數(shù)據(jù),從而讓問(wèn)答模型訓(xùn)練困難.因此,在標(biāo)注樣本匱乏的情況下實(shí)現(xiàn)模型的有效訓(xùn)練與泛化,是知識(shí)庫(kù)問(wèn)答落地的必要條件.
現(xiàn)有的部分知識(shí)庫(kù)問(wèn)答綜述[8~11]對(duì)語(yǔ)義表征的分析較少,對(duì)語(yǔ)義解析方法的介紹較籠統(tǒng),未能體現(xiàn)不同解析方式的特點(diǎn)與適用場(chǎng)景.為了更好地幫助領(lǐng)域內(nèi)研究者,本文通過(guò)梳理面向知識(shí)庫(kù)問(wèn)答的語(yǔ)義解析研究,總結(jié)和分析當(dāng)前方法應(yīng)對(duì)上述挑戰(zhàn)的途徑和發(fā)展趨勢(shì),為實(shí)現(xiàn)高質(zhì)量的知識(shí)庫(kù)問(wèn)答系統(tǒng)提供可借鑒的思路.
知識(shí)庫(kù)是用于存儲(chǔ)結(jié)構(gòu)化事實(shí)信息的計(jì)算機(jī)系統(tǒng).早期的知識(shí)庫(kù)以關(guān)系型數(shù)據(jù)庫(kù)(Relational Data-Base,RDB)為主,將現(xiàn)實(shí)世界的實(shí)體、實(shí)體本身的屬性、實(shí)體之間的聯(lián)系以表格形式的關(guān)系模型來(lái)表示.近年來(lái),以語(yǔ)義網(wǎng)絡(luò)(semantic web)和知識(shí)圖譜(knowledge graph)為根基的圖數(shù)據(jù)庫(kù)(Graph DataBase,GDB)成為知識(shí)庫(kù)的研究主流,其中,實(shí)體、類(lèi)別、屬性值作為節(jié)點(diǎn),分別以特定的關(guān)系或?qū)傩赃呄噙B.圖1給出的圖數(shù)據(jù)庫(kù)實(shí)例展示了中國(guó)部分省份的相關(guān)信息,如三元組“(Jiangsu,capital,Nanjing)”表明江蘇的省會(huì)是南京.典型的知識(shí)庫(kù)包括WordNet[12],DBpedia[13],F(xiàn)reebase[14],Wikidata[15]等.
圖1 圖數(shù)據(jù)庫(kù)示意圖
基于知識(shí)庫(kù)中的結(jié)構(gòu)化信息,知識(shí)庫(kù)問(wèn)答系統(tǒng)能針對(duì)用戶(hù)給定的自然語(yǔ)言問(wèn)句,給出簡(jiǎn)潔、準(zhǔn)確的回答.目前主要有基于語(yǔ)義解析和基于信息檢索這兩類(lèi)知識(shí)庫(kù)問(wèn)答方法.以問(wèn)句“Which provinces border Jiangsu?”為例,基于語(yǔ)義解析的方法將該問(wèn)句映射為結(jié)構(gòu)化的語(yǔ)義表征,如λ演算(lambda calculus)表達(dá)式[16,17]λx.province(x)∧border(x,Jiangsu),再將其改寫(xiě)為知識(shí)庫(kù)查詢(xún)得到答案,如SPARQL查詢(xún)[18]SELECT?xWHERE{Jiangsu border?x.?xtype province.};基于信息檢索的方法將圖1所示的以主題實(shí)體(即Jiangsu)為中心的知識(shí)庫(kù)子圖中的每個(gè)節(jié)點(diǎn)都視作候選答案,學(xué)習(xí)問(wèn)句和候選答案的向量表示,再通過(guò)排序模型計(jì)算二者之間的相似度,或者通過(guò)分類(lèi)模型對(duì)候選答案進(jìn)行分類(lèi),從而得到答案.
早期的基于信息檢索的方法[4]以詞袋(bag-ofwords)模型表示問(wèn)句,以候選答案及其關(guān)聯(lián)子圖內(nèi)的實(shí)體和關(guān)系作為答案特征,并分別通過(guò)兩個(gè)線(xiàn)性映射得到問(wèn)句和候選答案的向量表示,再以向量點(diǎn)積作為相似度得分.隨著深度學(xué)習(xí)的發(fā)展,基于信息檢索的方法廣泛使用神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)問(wèn)句和候選答案的向量表示[5,19~23].例如,Dong等人[5]提出多列卷積神經(jīng)網(wǎng)絡(luò),從主題實(shí)體到候選答案的路徑、候選答案的鄰居子圖、候選答案的類(lèi)別這3個(gè)方面考慮候選答案的特征,并為問(wèn)句同樣學(xué)習(xí)了3個(gè)向量與之對(duì)應(yīng).Hao等人[20]通過(guò)長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)[24](Long Short-Term Memory,LSTM)獲得問(wèn)句的表示,并利用交叉注意力(cross-attention)機(jī)制建模候選答案與問(wèn)句之間的關(guān)聯(lián)性.Sun等人[22,23]結(jié)合外部文本(如維基百科)和知識(shí)庫(kù)子圖,構(gòu)建問(wèn)句相關(guān)的子圖,并利用圖神經(jīng)網(wǎng)絡(luò)在該子圖上更新候選答案的向量表示.部分工作[6,25~28]引入多跳推理(multi-hop reasoning)機(jī)制,迭代更新問(wèn)句或候選答案的向量表示,從而更好地應(yīng)對(duì)多關(guān)系問(wèn)句.例如,Miller等人[6]提出鍵值記憶網(wǎng)絡(luò)(key-value memory network),將問(wèn)句關(guān)聯(lián)的三元組存入鍵值記憶網(wǎng)絡(luò)中,迭代計(jì)算存儲(chǔ)的三元組與問(wèn)句的關(guān)聯(lián)性,并利用三元組信息更新問(wèn)句的向量表示.
由此可見(jiàn),基于信息檢索的方法無(wú)需研究者了解問(wèn)句語(yǔ)義表征和知識(shí)庫(kù)查詢(xún)語(yǔ)言的細(xì)節(jié),較為便捷,但是可回答問(wèn)句的類(lèi)型受限,難以回答帶有實(shí)體約束或函數(shù)算子的問(wèn)句.如問(wèn)句“Which is the largest province that borders Jiangsu?”需要對(duì)江蘇省相鄰省份的面積進(jìn)行排序操作.而基于語(yǔ)義解析的方法生成的語(yǔ)義表征可以包含問(wèn)句中的約束和算子,并利用知識(shí)庫(kù)本身的查詢(xún)引擎獲得準(zhǔn)確答案.本文主要介紹面向知識(shí)庫(kù)問(wèn)答的語(yǔ)義解析方法,對(duì)信息檢索方法不做進(jìn)一步展開(kāi).
語(yǔ)義解析是將自然語(yǔ)言句子映射為結(jié)構(gòu)化語(yǔ)義表征,解析得到的語(yǔ)義表征通??梢栽谀硞€(gè)環(huán)境中被執(zhí)行并獲得相應(yīng)的結(jié)果,如知識(shí)庫(kù)問(wèn)答中查詢(xún)知識(shí)庫(kù)獲得問(wèn)句的答案.除知識(shí)庫(kù)問(wèn)答外,語(yǔ)義解析技術(shù)在其他多種人機(jī)交互場(chǎng)景中也得到廣泛應(yīng)用,如機(jī)器人引導(dǎo)(robot instruction)、任務(wù)導(dǎo)向型對(duì)話(huà)(task-oriented dialogue)等.相較于這些場(chǎng)景,面向知識(shí)庫(kù)問(wèn)答的語(yǔ)義解析要求輸出的語(yǔ)義表征中所有語(yǔ)義成分與知識(shí)庫(kù)中的信息對(duì)應(yīng).圖2給出了面向知識(shí)庫(kù)問(wèn)答的語(yǔ)義解析的一般流程:首先為問(wèn)句選擇具體的語(yǔ)義表征形式;然后根據(jù)該語(yǔ)義表征形式設(shè)計(jì)相應(yīng)的語(yǔ)義解析方法,從而完成自然語(yǔ)言問(wèn)句到其對(duì)應(yīng)的語(yǔ)義表征的映射;最后將生成的問(wèn)句語(yǔ)義表征改寫(xiě)為知識(shí)庫(kù)查詢(xún),從知識(shí)庫(kù)中獲取問(wèn)句的最終答案.
圖2 面向知識(shí)庫(kù)問(wèn)答的語(yǔ)義解析的一般流程
面向知識(shí)庫(kù)問(wèn)答的語(yǔ)義解析方法按照解析方式可以分為兩類(lèi):枚舉排序和編碼解碼.如圖3所示,基于枚舉排序的方法是通過(guò)特定文法或者人工設(shè)計(jì)的處理步驟枚舉所有候選語(yǔ)義表征,再通過(guò)一個(gè)打分函數(shù)對(duì)枚舉的所有候選排序,篩選高分候選輸出.考慮到候選的搜索空間巨大,一部分工作采用迭代式枚舉排序,每輪迭代基于上一輪篩選得到的語(yǔ)義表征子式進(jìn)行擴(kuò)展,再進(jìn)入下一輪迭代.最終輸出的語(yǔ)義表征被改寫(xiě)為相應(yīng)的知識(shí)庫(kù)查詢(xún).相比枚舉排序這類(lèi)方法依賴(lài)特定文法、人工規(guī)則或者模板,編碼解碼的方法采用基于編碼器-解碼器(encoder-decoder)架構(gòu)的模型直接學(xué)習(xí)自然語(yǔ)言到語(yǔ)義表征的映射,首先利用編碼器得到問(wèn)句的向量表示,再利用解碼器根據(jù)問(wèn)句向量輸出符號(hào)化的語(yǔ)義表征.
圖3 面向知識(shí)庫(kù)問(wèn)答的語(yǔ)義解析方法分類(lèi)
在語(yǔ)義表征到知識(shí)庫(kù)查詢(xún)的改寫(xiě)階段,語(yǔ)義表征中的成分需要與知識(shí)庫(kù)對(duì)應(yīng),即語(yǔ)義表征中的實(shí)體需要被鏈指到知識(shí)庫(kù)中的對(duì)應(yīng)實(shí)體,語(yǔ)義表征中實(shí)體間的關(guān)系需要被映射到知識(shí)庫(kù)中對(duì)應(yīng)實(shí)體間的關(guān)系.一部分工作在解析得到語(yǔ)義表征時(shí)已經(jīng)完成與特定知識(shí)庫(kù)的對(duì)應(yīng),因此可直接將其改寫(xiě)為知識(shí)庫(kù)查詢(xún),這類(lèi)語(yǔ)義表征被稱(chēng)為有根基的語(yǔ)義表征(grounded meaning representation).相比直接生成有根基的語(yǔ)義表征,一部分工作認(rèn)為先將問(wèn)句解析為知識(shí)庫(kù)無(wú)關(guān)的通用表征能夠?qū)崿F(xiàn)解析模型在不同知識(shí)庫(kù)上的遷移與復(fù)用,因?yàn)橥ㄓ帽碚鞯膶?shí)體和關(guān)系沒(méi)有與特定知識(shí)庫(kù)對(duì)應(yīng),所以稱(chēng)之為無(wú)根基的語(yǔ)義表征(ungrounded meaning representation).無(wú)根基的語(yǔ)義表征在改寫(xiě)為知識(shí)庫(kù)查詢(xún)時(shí),往往通過(guò)結(jié)構(gòu)修改、實(shí)體鏈指及關(guān)系映射等方式先獲得有根基的語(yǔ)義表征,再將其改寫(xiě)為知識(shí)庫(kù)查詢(xún).不同解析方式的實(shí)現(xiàn)方法和優(yōu)缺點(diǎn)將在第4節(jié)和第5節(jié)進(jìn)一步展開(kāi)介紹.
在數(shù)十年的發(fā)展中,知識(shí)庫(kù)問(wèn)答領(lǐng)域涌現(xiàn)了大量的數(shù)據(jù)集.早期以關(guān)系型數(shù)據(jù)庫(kù)為基準(zhǔn)知識(shí)庫(kù)的階段,被廣泛采用的問(wèn)答數(shù)據(jù)集包括面向美國(guó)地理領(lǐng)域的GEO880(https://www.cs.utexas.edu/users/ml/nldata/geoquery.html)、面向工作領(lǐng)域的JOBS640(https://www.cs.utexas.edu/users/ml/nldata/jobquery.html)、面向旅行計(jì)劃領(lǐng)域的ATIS[29]等.近年來(lái),以圖數(shù)據(jù)庫(kù)為基準(zhǔn)知識(shí)庫(kù)的問(wèn)答數(shù)據(jù)集成為知識(shí)庫(kù)問(wèn)答領(lǐng)域的主流.表1列舉了近年來(lái)被廣泛采用的以圖數(shù)據(jù)庫(kù)為基準(zhǔn)的英文知識(shí)庫(kù)問(wèn)答數(shù)據(jù)集[2,25,30~44],分別介紹了各數(shù)據(jù)集名稱(chēng)、采用的基準(zhǔn)知識(shí)庫(kù)、數(shù)據(jù)集的樣例規(guī)模、是否含有需要多個(gè)三元組查詢(xún)或函數(shù)約束的復(fù)雜問(wèn)句、每個(gè)問(wèn)句的具體標(biāo)注形式、樣例中問(wèn)句的來(lái)源.
表1 以圖數(shù)據(jù)庫(kù)為基準(zhǔn)知識(shí)庫(kù)的部分英文知識(shí)庫(kù)問(wèn)答數(shù)據(jù)集
表1列舉了現(xiàn)有知識(shí)庫(kù)問(wèn)答數(shù)據(jù)集主要采用的基準(zhǔn)知識(shí)庫(kù),分別為Freebase,DBpedia,Wikidata和Wikimovies[6],均為圖數(shù)據(jù)庫(kù).從構(gòu)建方式上,F(xiàn)reebase,DBpedia和Wikidata均為眾包模式構(gòu)建,即允許用戶(hù)創(chuàng)建、修改、查詢(xún),同時(shí)也采用信息抽取模型進(jìn)行自動(dòng)擴(kuò)充(Freebase已于2015年停止更新,原數(shù)據(jù)遷移至Wikidata);而Wikimovies來(lái)源于已有電影數(shù)據(jù)庫(kù)Open Movie DataBase(OMDB).從面向領(lǐng)域上,F(xiàn)reebase,DBpedia和Wikidata為通用領(lǐng)域,即包含多個(gè)特定領(lǐng)域的事實(shí)信息;而Wikimovies僅面向電影領(lǐng)域.從數(shù)據(jù)規(guī)模上,F(xiàn)reebase包含超過(guò)4 600萬(wàn)個(gè)實(shí)體和5 323種關(guān)系,共計(jì)31億個(gè)三元組;DBpedia的最新發(fā)布版本(2016-10版)包含600萬(wàn)個(gè)實(shí)體和9億個(gè)三元組;當(dāng)前Wikidata包含超過(guò)9 000萬(wàn)個(gè)實(shí)體和超過(guò)9 000種關(guān)系,共計(jì)超過(guò)100億個(gè)三元組;Wikimovies為小規(guī)模知識(shí)庫(kù),包含43 234個(gè)實(shí)體和9種關(guān)系,共計(jì)13萬(wàn)個(gè)三元組.
從表1可以看出,知識(shí)庫(kù)問(wèn)答數(shù)據(jù)集的構(gòu)造方法主要分兩種:(1)先有問(wèn)句,再有答案,即通過(guò)人工撰寫(xiě)或者現(xiàn)有網(wǎng)站獲取真實(shí)的自然語(yǔ)言問(wèn)句,再通過(guò)人工標(biāo)注獲得問(wèn)句的最終答案或問(wèn)句相應(yīng)的知識(shí)庫(kù)查詢(xún)[2,30~35];(2)先有答案,再有問(wèn)句,即先從知識(shí)庫(kù)中構(gòu)造出語(yǔ)義表征,再通過(guò)預(yù)定義模板或規(guī)則將其轉(zhuǎn)變?yōu)槟0鍐?wèn)句,考慮到這些模板問(wèn)句表述單一且可能存在語(yǔ)法錯(cuò)誤,部分工作再通過(guò)眾包,將模板問(wèn)句復(fù)述為具有相同含義且表述更自然的問(wèn)句[25,36~44].這兩種構(gòu)造方法中,前者需要標(biāo)注人員熟悉基準(zhǔn)知識(shí)庫(kù)的本體概念與具體實(shí)例,在以大規(guī)模知識(shí)庫(kù)為基準(zhǔn)時(shí),因?qū)嶓w和關(guān)系數(shù)量龐大,標(biāo)注難度較高,且收集來(lái)的部分問(wèn)句可能無(wú)法用知識(shí)庫(kù)中的事實(shí)信息來(lái)回答;后者需要構(gòu)造合適的語(yǔ)義表征,從而才能生成有實(shí)際意義的問(wèn)句,同時(shí)需要標(biāo)注人員提供盡可能多的表述方式,防止單一的問(wèn)句使得解析模型過(guò)擬合且缺乏泛化性.
除了構(gòu)造方式,不同數(shù)據(jù)集的區(qū)別主要在樣例規(guī)模和是否含有復(fù)雜問(wèn)句上.遵循現(xiàn)有工作[9~11]的定義,知識(shí)庫(kù)問(wèn)答中的復(fù)雜問(wèn)句指問(wèn)句對(duì)應(yīng)的知識(shí)庫(kù)查詢(xún)中含有多個(gè)知識(shí)庫(kù)關(guān)系、實(shí)體或類(lèi)別約束、比較或排序等函數(shù)算子,例如問(wèn)句“When’s the last time the Mets won the World Series?”需要對(duì)紐約大都市棒球隊(duì)奪冠的日期進(jìn)行排序操作.與之相對(duì)的,簡(jiǎn)單問(wèn)句僅依賴(lài)單個(gè)三元組查詢(xún),例如問(wèn)句“What city was Alex Golfis born in?”只需要(Alex Golfis,place_of_birth,?a)組成的知識(shí)庫(kù)查詢(xún)即可回答.為了更全面地檢驗(yàn)知識(shí)庫(kù)問(wèn)答模型的能力,新近構(gòu)造的數(shù)據(jù)集往往呈現(xiàn)出規(guī)模越來(lái)越大、復(fù)雜問(wèn)句的種類(lèi)越來(lái)越多、難度越來(lái)越高的趨勢(shì).例如,Berant等人[2]指出Free917人工撰寫(xiě)問(wèn)句并標(biāo)注的方式難以進(jìn)一步擴(kuò)展數(shù)據(jù)集規(guī)模,因此利用Google suggest API搜集事實(shí)性問(wèn)句,并提交給眾包平臺(tái)直接標(biāo)注問(wèn)句的最終答案,從而得到數(shù)據(jù)集WebQuestions,數(shù)據(jù)規(guī)模超過(guò)Free917的5倍;Yih等人[32]刪去WebQuestions中無(wú)法利用Freebase回答的問(wèn)句,并為每個(gè)問(wèn)句提供了SPARQL標(biāo) 注,形 成 數(shù) 據(jù) 集WebQuestionsSP;Bao等人[33]和Talmor等人[40]指出WebQuestionsSP中復(fù)雜問(wèn)句偏少,因此按照不同約束類(lèi)別添加了新的復(fù)雜問(wèn)句,其中Bao等人[33]將復(fù)雜問(wèn)句中的約束條件細(xì)化分類(lèi),并人工撰寫(xiě)一部分問(wèn)句作為補(bǔ)充,形成數(shù)據(jù)集Complex-Questions,而Talmor等人[40]則是在WebQuestionsSP標(biāo)注的SPARQL中加入額外約束條件,再通過(guò)模板填充與人工復(fù)述得到更加復(fù)雜的問(wèn)句,形成數(shù)據(jù)集Complex-WebQuestions.
表1展示了知識(shí)庫(kù)問(wèn)答數(shù)據(jù)集為每個(gè)問(wèn)句提供的具體標(biāo)注形式.一部分?jǐn)?shù)據(jù)集僅標(biāo)注了問(wèn)句的最終答案,例如WebQuestions;一部分?jǐn)?shù)據(jù)集采用知識(shí)庫(kù)查詢(xún)語(yǔ)言SPARQL作為標(biāo)注形式,并且標(biāo)注的SPARQL可在對(duì)應(yīng)的基準(zhǔn)知識(shí)庫(kù)中查詢(xún)得到問(wèn)句的最終答案,例如數(shù)據(jù)集WebQuestionsSP中,問(wèn)句“When’s the last time the Mets won the World Series?”對(duì)應(yīng)的SPARQL查詢(xún)標(biāo)注是SELECT?xWHERE{New_York_Mets championships?x.?xend_date?sk0.}ORDER BY DESC(datetime(?sk0))LIMIT 1.少量數(shù)據(jù)集采用問(wèn)句涉及的具體三元組作為標(biāo)注形式,問(wèn)句的最終答案為標(biāo)注的三元組或三元組序列的尾實(shí)體,例如數(shù)據(jù)集SimpleQuestions中,問(wèn)句“What city was Alex Golfis born in?”對(duì)應(yīng)的三元組為(Alex Golfis,place_of_birth,Athens)(數(shù)據(jù)集的實(shí)際標(biāo)注中,實(shí)體及關(guān)系均以其在知識(shí)庫(kù)中的ID形式呈現(xiàn),本文將ID替換為其具體名稱(chēng),以便理解).基于上述數(shù)據(jù)集衡量一個(gè)知識(shí)庫(kù)問(wèn)答模型的效果時(shí),通常以問(wèn)句的最終答案作為評(píng)價(jià)標(biāo)準(zhǔn),并且要將模型生成的問(wèn)句語(yǔ)義表征改寫(xiě)為基準(zhǔn)知識(shí)庫(kù)可讀的查詢(xún),獲取模型預(yù)測(cè)的答案.而數(shù)據(jù)集Free917以λ演算作為問(wèn)句的標(biāo)注形式,并且以問(wèn)答模型解析得到的語(yǔ)義表征與標(biāo)注的λ演算相比較,兩者完全對(duì)應(yīng)上才視為解析正確,從而避免偽正例現(xiàn)象(即錯(cuò)誤的語(yǔ)義表征得到正確的查詢(xún)結(jié)果)導(dǎo)致評(píng)價(jià)失準(zhǔn).
以問(wèn)句的最終答案作為評(píng)價(jià)標(biāo)準(zhǔn)衡量一個(gè)知識(shí)庫(kù)問(wèn)答模型的效果時(shí),通??梢钥紤]以下指標(biāo):精確率(precision)、召回率(recall)、F1值、準(zhǔn)確率(accuracy)等.對(duì)于一個(gè)給定問(wèn)句q,其標(biāo)準(zhǔn)答案集合記為Aq,模型預(yù)測(cè)的答案集合記為Pq,則模型在給定問(wèn)句上的精確率為模型預(yù)測(cè)答案集合中正確元素的占比,即
而模型在給定問(wèn)句上的召回率為問(wèn)句標(biāo)準(zhǔn)答案集合中被模型預(yù)測(cè)出來(lái)的元素的占比,即
同時(shí)考慮到精確率與召回率,模型在給定問(wèn)句上的F1值的計(jì)算方式為
對(duì)模型在數(shù)據(jù)集中所有問(wèn)句上的F1值求均值,可得到模型在當(dāng)前數(shù)據(jù)集上的平均F1值(averageF1),又稱(chēng)為宏F1值(macroF1).而準(zhǔn)確率是指模型在數(shù)據(jù)集中所有問(wèn)句中完全回答正確的問(wèn)句的占比,只有當(dāng)Aq=Pq時(shí),問(wèn)句q才被視為完全回答正確.相較于平均F1值,準(zhǔn)確率這一指標(biāo)更為嚴(yán)格,對(duì)模型要求更高.
在設(shè)計(jì)具體的語(yǔ)義解析模型前,研究者需要先確定采用何種語(yǔ)義表征作為模型的輸出以表示問(wèn)句的語(yǔ)義.現(xiàn)有方法采用了多種不同形式的語(yǔ)義表征.有些語(yǔ)義表征的表達(dá)能力強(qiáng),能覆蓋多數(shù)類(lèi)型的自然語(yǔ)言問(wèn)句,但結(jié)構(gòu)復(fù)雜,構(gòu)造困難;有些語(yǔ)義表征的結(jié)構(gòu)緊湊,構(gòu)造相對(duì)容易,但表達(dá)能力有所欠缺.選取合適的語(yǔ)義表征對(duì)提升解析模型的效果起著至關(guān)重要的作用,因此需要平衡好語(yǔ)義表征的表達(dá)完備性與構(gòu)造便捷性,在覆蓋更多類(lèi)型的問(wèn)句的同時(shí),降低模型構(gòu)造該語(yǔ)義表征的難度.如表2所示,目前知識(shí)庫(kù)問(wèn)答中常用的語(yǔ)義表征可分為3類(lèi),分別是λ演算及其衍生[16,17,45]、圖狀邏輯表達(dá)式[3,46~53]、程序語(yǔ)言[18,43,54~57].表2總結(jié)了這些常用語(yǔ)義表征的特點(diǎn)和相應(yīng)的不足之處.下文分別介紹這三類(lèi)語(yǔ)義表征,并對(duì)其進(jìn)行了小結(jié)與討論.
表2 知識(shí)庫(kù)問(wèn)答中常用的語(yǔ)義表征
λ演算[16]源自數(shù)理邏輯,是一套以變量綁定和替換的規(guī)則來(lái)研究函數(shù)如何抽象化定義、函數(shù)如何被施用以及遞歸的形式系統(tǒng).在此基礎(chǔ)上,有類(lèi)型的λ演算[17](typed lambda calculus)在語(yǔ)義解析工作中得到廣泛使用,它主要包含3個(gè)基本類(lèi)型,分別是實(shí)體、真值、實(shí)數(shù),并在基本類(lèi)型之上構(gòu)建函數(shù)類(lèi)型,如將實(shí)體映射為真值的函數(shù).本文后續(xù)部分均以λ演算代指有類(lèi)型的λ演算.以問(wèn)句“Which is the largest province that borders Jiangsu?”為例,其λ演算表達(dá)式arg max(λx.province(x)∧border(x,Jiangsu),λx.size(x))中,Jiangsu就是實(shí)體;province和size均是函數(shù),前者將實(shí)體映射到真值上,表明這個(gè)實(shí)體的類(lèi)別是否是省份,后者將實(shí)體映射到實(shí)數(shù)上,返回這個(gè)省份的面積.總的來(lái)說(shuō),在知識(shí)庫(kù)問(wèn)答中常用的有類(lèi)型的λ演算的組成元素包括:(1)常量,包括實(shí)體、實(shí)數(shù)、函數(shù);(2)邏輯聯(lián)結(jié)詞,即合?。ā模⑽鋈。ā牛?、否定(﹁)、蘊(yùn)含(→);(3)量詞,包括全稱(chēng)量詞(?)、存在量詞(),如?x.province(x)∧border(x,Jiangsu)為真,當(dāng)且僅當(dāng)至少存在一個(gè)省份與江蘇省相鄰;(4)λ表述(lambda expression),接收參數(shù)并返回結(jié)果值,如λx.border(x,Jiangsu)將實(shí)體映射為真值,表明輸入的實(shí)體是否與江蘇省相鄰;(5)額外的量詞,包括count,arg max,arg min等.
λ演算是圖靈完備的,具有很強(qiáng)的語(yǔ)義表達(dá)能力,但其本身較為繁瑣,增加了構(gòu)造難度,因此在其基礎(chǔ)上改進(jìn),使得表述更緊湊的語(yǔ)義表征同樣得到廣泛使用,如λ-DCS[45](Lambda Dependencybased Compositional Semantics).λ-DCS隱去了λ演算中的變量,以上段問(wèn)句為例,其λ-DCS表達(dá)式為arg max(type.province?border.Jiangsu,size).具體來(lái)說(shuō),λ-DCS主要包括2個(gè)組成成分,即一元邏輯表達(dá)式(unary)和二元邏輯表達(dá)式(binary).前者表示的是實(shí)體或?qū)嶓w集合,如Jiangsu,對(duì)應(yīng)的是實(shí)體江蘇??;后者表示的是實(shí)體對(duì)集合,如border,對(duì)應(yīng)的是接壤的實(shí)體對(duì)集合,其在λ演算中的對(duì)應(yīng)表達(dá)式為λx.λy.border(x,y).不同的邏輯表達(dá)式可以通過(guò)連接(join)、交叉(intersection)、求并集(union)、否定(negation)、高階算子(high-order function)等操作符組合,例如一元邏輯表達(dá)式Jiangsu和二元邏輯表達(dá)式border通過(guò)連接操作可以得到一元邏輯表達(dá)式border.Jiangsu,對(duì)應(yīng)與江蘇省相鄰的實(shí)體集合,其在λ演算中對(duì)應(yīng)λx.border(x,Jiangsu).
隨著圖數(shù)據(jù)庫(kù)成為知識(shí)庫(kù)的主流,以圖為形式的邏輯表達(dá)式也成為知識(shí)庫(kù)問(wèn)答中的主要語(yǔ)義表征.在圖狀邏輯表達(dá)式中,節(jié)點(diǎn)通常指實(shí)體、事件、數(shù)值等常量或變量,連邊代表節(jié)點(diǎn)之間的語(yǔ)義關(guān)系.相較于λ演算和λ-DCS,圖狀邏輯表達(dá)式有更強(qiáng)的可讀性,同時(shí)與問(wèn)句本身的句法結(jié)構(gòu)或者圖數(shù)據(jù)庫(kù)的拓?fù)浣Y(jié)構(gòu)具有一定的相似性,降低了構(gòu)造難度.從問(wèn)句本身的句法結(jié)構(gòu)改造而來(lái)的圖狀邏輯表達(dá)式有語(yǔ)義圖[46](semantic graph)、語(yǔ)義查詢(xún)圖[47](semantic query graph)、抽象語(yǔ)義表征[48](Abstract Meaning Representation,AMR)等.從圖數(shù)據(jù)庫(kù)的子圖改造而來(lái)的圖狀邏輯表達(dá)式有查詢(xún)圖[3](query graph).
圖4為語(yǔ)義圖示例[49].其中圖4(a)為無(wú)根基的語(yǔ)義圖(ungrounded semantic graph),圖4(b)為有根基的語(yǔ)義圖(grounded semantic graph).前者是將問(wèn)句通過(guò)組 合 范 疇 文 法[50,51](Combinatory Categorial Grammar,CCG)解析或者依存句法解析(dependency parsing)得到的λ演算表達(dá)式改造成圖的形式,節(jié)點(diǎn)有單詞、實(shí)體、事件、類(lèi)別、函數(shù)等,連邊主要為依存關(guān)系,且圖上的節(jié)點(diǎn)與連邊沒(méi)有與特定知識(shí)庫(kù)對(duì)應(yīng);后者將前者的節(jié)點(diǎn)鏈指到知識(shí)庫(kù)中對(duì)應(yīng)的實(shí)體,將實(shí)體節(jié)點(diǎn)間的連邊對(duì)應(yīng)到知識(shí)庫(kù)中對(duì)應(yīng)實(shí)體間的關(guān)系,并依據(jù)人工定義的操作進(jìn)行結(jié)構(gòu)修改,從而與特定知識(shí)庫(kù)對(duì)應(yīng).語(yǔ)義查詢(xún)圖與之類(lèi)似,是將問(wèn)句的依存句法解析樹(shù)通過(guò)預(yù)定義的操作改造而來(lái).而抽象語(yǔ)義表征中,節(jié)點(diǎn)表示概念,連邊表示概念之間的語(yǔ)義角色關(guān)系.其概念和語(yǔ)義角色繼承并改進(jìn)自PropBank[52],圖5給出了問(wèn)句“Who is starring in Spanish movies produced by Benicio del Toro?”的抽象語(yǔ)義表征[53],其中“unknown”節(jié)點(diǎn)被視為答案節(jié)點(diǎn).
圖4 問(wèn)句“What is the name of the company which Disney acquired in 2006?”的語(yǔ)義圖[49]
圖5 問(wèn)句“Who is starring in Spanish movies produced by Benicio del Toro?”的抽象語(yǔ)義表征[53]
由于問(wèn)句的句法結(jié)構(gòu)與知識(shí)庫(kù)子圖的拓?fù)浣Y(jié)構(gòu)依舊存在差異,在根據(jù)解析得到的語(yǔ)義表征生成具體知識(shí)庫(kù)查詢(xún)時(shí)需要先通過(guò)圖匹配算法找到與解析結(jié)果最相關(guān)的知識(shí)庫(kù)子圖.為了進(jìn)一步降低構(gòu)造難度,查詢(xún)圖直接在知識(shí)庫(kù)子圖上進(jìn)行改造,得到的語(yǔ)義表征可以直接改寫(xiě)為知識(shí)庫(kù)查詢(xún).以圖6中的問(wèn)句“Who first voiced Meg on Family Guy?”為例,查詢(xún)圖包括4類(lèi)結(jié)點(diǎn):常量節(jié)點(diǎn)(圓角矩形),即問(wèn)句中出現(xiàn)的知識(shí)庫(kù)實(shí)體、類(lèi)別、數(shù)值等,如圖6中的“Family Guy”和“Meg Griffin”;變量節(jié)點(diǎn)(圓形),包括未被鏈指到知識(shí)庫(kù)中的實(shí)體、事件、數(shù)值等節(jié)點(diǎn),如圖6中的“?y”;λ變量(陰影圓形),表示問(wèn)句的答案,即圖6中的“?a”;聚合函數(shù)(菱形),作用在實(shí)體集合或者單個(gè)實(shí)體的數(shù)值屬性上,如圖6中的“argmin”.節(jié)點(diǎn)之間的連邊均為知識(shí)庫(kù)中的對(duì)應(yīng)關(guān)系或?qū)傩?在查詢(xún)圖的常量節(jié)點(diǎn)中,其中一個(gè)節(jié)點(diǎn)作為根節(jié)點(diǎn),對(duì)應(yīng)問(wèn)句的主題實(shí)體,而主題實(shí)體到答案節(jié)點(diǎn)的關(guān)系路徑稱(chēng)為核心推理鏈(core inferential chain),其余常量節(jié)點(diǎn)和函數(shù)算子作為核心推理鏈上的分叉,對(duì)應(yīng)問(wèn)句中的約束條件.圖6所示的查詢(xún)圖以“Family Guy”為主題實(shí)體,(Family Guy,cast,?y,actor,?a)為核心推理鏈,(?y,from,argmin)和(?y,character,Meg Griffin)分別作為候選答案在配音工作開(kāi)始時(shí)間和配音角色這兩個(gè)知識(shí)庫(kù)屬性或關(guān)系上的約束條件.
圖6 問(wèn)句“Who first voiced Meg on Family Guy?”的查詢(xún)圖[3]
無(wú)論是λ演算、λ-DCS還是圖狀邏輯表達(dá)式,最終均要轉(zhuǎn)變?yōu)橹R(shí)庫(kù)查詢(xún)語(yǔ)言,因此一部分工作會(huì)直接采用查詢(xún)語(yǔ)言作為語(yǔ)義表征,如SPARQL[18].與之類(lèi)似地,一部分工作會(huì)基于已有的或者自定義的解釋器(interpreter)改造或設(shè)計(jì)相應(yīng)的程序語(yǔ)言式語(yǔ)義表征,典型的包括Prolog[54]和Lisp[55]等.
Prolog主要基于一階謂詞邏輯(first-order logic),主要是表達(dá)對(duì)象之間的關(guān)系,并基于此來(lái)計(jì)算給定的查詢(xún).Prolog的輸入格式遵從霍恩子句(Horn clause)形式,包含頭部(head)和體部(body)兩部分,需要通過(guò)計(jì)算來(lái)返回輸入的真值或滿(mǎn)足輸入為真的文字.例如問(wèn)句“Which provinces border Jiangsu?”對(duì)應(yīng)的Prolog表 達(dá) 式 為?-province(X),border(X,Jiangsu),使該表達(dá)式為真值的X值即為問(wèn)句的答案.同樣基于一階謂詞邏輯的語(yǔ)義表征FunQL[56](Functional Query Language)是不含變量(variable-free)的,這一點(diǎn)與λ-DCS類(lèi)似.上述問(wèn)句對(duì)應(yīng)的FunQL表達(dá)式為answer(province(border(Jiangsu))).
Lisp以列表為主要數(shù)據(jù)結(jié)構(gòu),列表內(nèi)為一列S-表達(dá)式(S-expression),每個(gè)S-表達(dá)式均為前綴表達(dá)式,以左括號(hào)開(kāi)始,以右括號(hào)終止,括號(hào)內(nèi)為預(yù)定義的函數(shù)和函數(shù)論元.例如問(wèn)句“Which is the largest city in China?”對(duì) 應(yīng) 的Lisp表 達(dá) 式 為[(Hop China!CityIn),(ArgmaxR1 Population)],其 中Hop和Argmax均為預(yù)定義的函數(shù),!表示反關(guān)系,(Hop China!CityIn)表示以實(shí)體China為尾實(shí)體,返回與其以CityIn關(guān)系相連的頭實(shí)體集合,作為R1,(ArgmaxR1 Population)表示對(duì)實(shí)體集合R1按照Population這一屬性值降序排序,返回值最大的實(shí)體.部分工作[43,57]借鑒Lisp,專(zhuān)門(mén)設(shè)計(jì)了函數(shù)-論元形式的語(yǔ)義表征,將自然語(yǔ)言問(wèn)句的語(yǔ)義建模為一系列函數(shù)-論元表達(dá)式.
綜上所述,語(yǔ)義表征的表達(dá)完備性決定了可覆蓋問(wèn)句類(lèi)型的范圍,而構(gòu)造便捷性影響了模型構(gòu)造該語(yǔ)義表征的難易程度.在上述3類(lèi)語(yǔ)義表征中,λ演算及其衍生和程序語(yǔ)言均具有較強(qiáng)的語(yǔ)義表達(dá)能力,其中函數(shù)-論元型的程序語(yǔ)言語(yǔ)義表征可通過(guò)更新自定義函數(shù)來(lái)增強(qiáng)其表達(dá)能力.而圖狀邏輯表達(dá)式受限于圖結(jié)構(gòu),表達(dá)完備性較弱于其他兩類(lèi)語(yǔ)義表征,例如問(wèn)句“Which province is larger,Jiangsu or Anhui?”所需的三目運(yùn)算符size(Jiangsu)>size(Anhui)?Jiangsu:Anhui較難通過(guò)圖狀邏輯表達(dá)式呈現(xiàn).
雖然表達(dá)能力較弱,但圖狀邏輯表達(dá)式有更強(qiáng)的可讀性,并且與問(wèn)句本身的句法結(jié)構(gòu)或者圖數(shù)據(jù)庫(kù)的拓?fù)浣Y(jié)構(gòu)具有一定的相似性,可以在問(wèn)句的句法解析結(jié)果或者知識(shí)庫(kù)子圖上直接改造,降低了語(yǔ)義表征的構(gòu)造難度.而λ演算雖然表達(dá)能力強(qiáng),但是表述較為繁瑣,增加了構(gòu)造難度,因此λ-DCS在其基礎(chǔ)上改進(jìn),使得表述更緊湊.程序語(yǔ)言式語(yǔ)義表征通常以嵌套結(jié)構(gòu)表示子式和語(yǔ)義成分之間的關(guān)系,與問(wèn)句句法結(jié)構(gòu)及知識(shí)庫(kù)拓?fù)浣Y(jié)構(gòu)差異較大,無(wú)法像圖狀邏輯表達(dá)式一樣利用問(wèn)句結(jié)構(gòu)或知識(shí)庫(kù)拓?fù)浣Y(jié)構(gòu)的信息,在生成嵌套結(jié)構(gòu)時(shí)易出錯(cuò).
因此,平衡好表達(dá)完備性和構(gòu)造便捷性,是選擇語(yǔ)義表征時(shí)需要考慮的主要問(wèn)題,在覆蓋更多類(lèi)型的問(wèn)句的同時(shí),降低模型構(gòu)造該語(yǔ)義表征的難度,從而提升模型的解析效果.
在選定了語(yǔ)義表征的具體形式后,研究者設(shè)計(jì)相應(yīng)的語(yǔ)義解析方法將非結(jié)構(gòu)化的自然語(yǔ)言問(wèn)句轉(zhuǎn)變?yōu)榻Y(jié)構(gòu)化的語(yǔ)義表征.當(dāng)前的語(yǔ)義解析方法可以分為基于枚舉排序的方法和基于編碼解碼的方法.本節(jié)主要介紹基于枚舉排序的方法.
如圖3所示,枚舉排序類(lèi)的方法先枚舉所有可能的候選語(yǔ)義表征子式,再利用打分模型對(duì)枚舉的所有候選排序,并輸出高分候選.所有的候選均通過(guò)特定文法或者人工定義的處理步驟獲得,為了減少候選語(yǔ)義表征的搜索空間,部分工作采用迭代式枚舉排序,即束搜索(beam search),每輪迭代基于上一輪篩選得到的語(yǔ)義表征子式進(jìn)行擴(kuò)展,再進(jìn)入下一輪迭代,從而完成對(duì)問(wèn)句復(fù)雜語(yǔ)義的解析.在枚舉產(chǎn)生的語(yǔ)義表征上,一部分工作會(huì)直接構(gòu)造與特定知識(shí)庫(kù)對(duì)應(yīng)的有根基的語(yǔ)義表征;另一部分工作選擇與特定知識(shí)庫(kù)無(wú)關(guān)的無(wú)根基的語(yǔ)義表征,最后將其映射到特定知識(shí)庫(kù)上.表3將基于枚舉排序的語(yǔ)義解析方法按照枚舉方式進(jìn)一步分類(lèi),即依賴(lài)特定文法[1,30,58~62]和自定義處理步驟[2,3,33,34,46,47,49,53,63~87]列 舉 了 每 種 方 式 涉 及 的 相 關(guān) 論文,概括介紹其主要特點(diǎn).下文分別介紹這幾類(lèi)方法,并總結(jié)了枚舉排序類(lèi)方法的主要區(qū)別以及各自的優(yōu)缺點(diǎn).
表3 基于枚舉排序的語(yǔ)義解析方法分類(lèi)
早期的工作在枚舉語(yǔ)義表征階段依賴(lài)特定文法中的規(guī)則,包括問(wèn)句詞語(yǔ)與語(yǔ)義表征字段之間的表述映射、語(yǔ)義表征子式的組合規(guī)則;在打分篩選階段主要利用基于離散特征的打分函數(shù).
如圖7所示,Zettlemoyer等人[1]在枚舉階段采用組合范疇文法,首先通過(guò)詞匯表將問(wèn)句中的詞語(yǔ)映射到所有可能的范疇,再根據(jù)句法類(lèi)別和組合規(guī)則進(jìn)行組合,得到候選的語(yǔ)義表征.例如圖7的問(wèn)句“What states border Texas?”中“states”既可能對(duì)應(yīng)到名詞“州”,也可能對(duì)應(yīng)到動(dòng)詞“聲明”,其名詞范疇“N:λx.state(x)”中包含了該詞的句法類(lèi)別“N”,即名詞,與語(yǔ)義表征λx.state(x),其動(dòng)詞范疇“(SNP)/NP:λx.λy.state(x,y)”中句法類(lèi)別“(SNP)/NP”包含了相應(yīng)的組合規(guī)則,即“state”需要先向右結(jié)合一個(gè)名詞短語(yǔ)(NP),再向左結(jié)合一個(gè)名詞短語(yǔ).正是由于一個(gè)單詞可能存在多個(gè)語(yǔ)義表征字段與之對(duì)應(yīng),再加上組合順序的不確定性,一個(gè)問(wèn)句在組合范疇文法下可以枚舉出多個(gè)候選語(yǔ)義表征.Zettlemoyer等人[1]在打分階段采用對(duì)數(shù)線(xiàn)性函數(shù)對(duì)候選語(yǔ)義表征進(jìn)行篩選.
圖7 組合范疇文法解析示意[1]
后續(xù)工作主要從3個(gè)角度進(jìn)行改進(jìn):(1)嘗試詞匯表的不同獲取方式[30,58~60],從而提升詞匯表的擴(kuò)展能力;(2)當(dāng)前方法受限于文法規(guī)則,無(wú)法應(yīng)對(duì)自然語(yǔ)言語(yǔ)序靈活多變、詞語(yǔ)省略的現(xiàn)象,部分工作[61]降低組合規(guī)則的限制;(3)當(dāng)前方法從問(wèn)句直接解析出有根基的λ演算的難度大,部分工作[62]引入無(wú)根基的λ演算,在語(yǔ)義成分的表述上接近于輸入問(wèn)句,在結(jié)構(gòu)和形式上接近于最終語(yǔ)義表征,從而降低解析難度.
早期依賴(lài)特定文法的方法在枚舉階段由于從數(shù)據(jù)集中歸納出表述映射與組合規(guī)則,泛化性受限.因此,近期的工作利用自定義的處理步驟枚舉候選語(yǔ)義表征,解析過(guò)程簡(jiǎn)潔明了.這些工作可以進(jìn)一步分為3類(lèi),分別為基于線(xiàn)圖(chart)的、基于轉(zhuǎn)移(transition)的和基于模板填充(template filling)的.
4.2.1 基于線(xiàn)圖的方法
基于線(xiàn)圖的方法在枚舉階段主要借助詞匯映射與自定義操作,先對(duì)問(wèn)句中的詞語(yǔ)或短語(yǔ)進(jìn)行詞匯映射,從映射后獲得的詞級(jí)別子式出發(fā),通過(guò)自定義操作進(jìn)行組合,并利用打分函數(shù)進(jìn)行篩選,迭代生成最終的語(yǔ)義表征.如圖8所示,Berant等人[2]以λ-DCS作為目標(biāo)語(yǔ)義表征,首先利用構(gòu)造好的詞匯映射表,將問(wèn)句“Where was Obama born?”中的每個(gè)詞語(yǔ)映射到所有可能的一元或二元邏輯表達(dá)式,如將“Obama”映射為一元邏輯表達(dá)式“BarackObama”,表示姓名為巴拉克·奧巴馬的實(shí)體,將“born”映射到二元邏輯表達(dá)式“PeopleBornHere”,表示所有以出生地關(guān)系相連的實(shí)體對(duì)集合;再通過(guò)連接(join)、交叉(intersection)、橋接(bridging)等簡(jiǎn)單操作對(duì)任意兩個(gè)不重復(fù)的相鄰子邏輯表達(dá)式進(jìn)行兩兩組合,生成新的候選子式,如“BarackObama”和“PeopleBornHere”可通過(guò)連接操作得到一元邏輯表達(dá)“PeopleBornHere.BarackObama”,表示巴拉克·奧巴馬的出生地,同時(shí)利用對(duì)數(shù)線(xiàn)性函數(shù)對(duì)所有可能的組合進(jìn)行打分篩選.
圖8 問(wèn)句“Where was Obama born?”的解析流程示意[2]
后續(xù)工作主要從2個(gè)角度進(jìn)行改進(jìn):(1)當(dāng)前方法的打分函數(shù)未考慮問(wèn)句與語(yǔ)義表征的結(jié)構(gòu)差異,部分工作[63]改良打分函數(shù),利用人工模板將候選語(yǔ)義表征復(fù)述為自然語(yǔ)言問(wèn)句,以復(fù)述問(wèn)句與輸入問(wèn)句的相似度為打分函數(shù)的特征;(2)為了減少當(dāng)前方法按固定順序自底向上構(gòu)建語(yǔ)義表征時(shí)產(chǎn)生的干擾項(xiàng),部分工作[64]調(diào)整枚舉階段的子式組合順序,利用打分函數(shù)從當(dāng)前候選中選擇子式置于線(xiàn)圖中,同左右兩邊的子式組合為新的子式.
4.2.2 基于轉(zhuǎn)移的方法
基于轉(zhuǎn)移的方法定義了迭代過(guò)程中的不同狀態(tài),狀態(tài)對(duì)應(yīng)當(dāng)前語(yǔ)義表征子式,當(dāng)前狀態(tài)下可執(zhí)行的操作得到的所有候選語(yǔ)義表征通過(guò)打分篩選,形成新一輪的狀態(tài),從而完成狀態(tài)轉(zhuǎn)移.
部 分 方 法[46,47,49,53,65~68]采 用 語(yǔ) 義 分 析(semantic analysis)的思路,先利用特定文法、依存解析工具、自定義操作等獲取問(wèn)句的中間形態(tài),如無(wú)根基的圖狀邏輯表達(dá)式,再通過(guò)實(shí)體鏈指、關(guān)系映射、圖匹配算法等操作,將中間形態(tài)對(duì)應(yīng)到知識(shí)庫(kù)子圖上,得到最終語(yǔ)義表征,如有根基的圖狀邏輯表達(dá)式.因此,在這類(lèi)工作中,可執(zhí)行的操作包括特定文法解析、依存解析、自定義操作、實(shí)體鏈指、關(guān)系映射、圖匹配等,由上述操作枚舉候選語(yǔ)義表征,打分函數(shù)進(jìn)行篩選,從而實(shí)現(xiàn)狀態(tài)的轉(zhuǎn)移.例如,Reddy等人[49]首先利用依存解析為問(wèn)句生成了無(wú)根基的λ演算,并將其改造為無(wú)根基的語(yǔ)義圖,如圖4(a)所示,在此基礎(chǔ)上,通過(guò)自定義的收縮(contract)操作與展開(kāi)(expand)操作進(jìn)一步改寫(xiě)無(wú)根基的語(yǔ)義圖,從而減少結(jié)構(gòu)差異;再通過(guò)實(shí)體鏈指、關(guān)系映射將無(wú)根基的語(yǔ)義圖中連邊上的標(biāo)簽變成知識(shí)庫(kù)中的關(guān)系,類(lèi)別結(jié)點(diǎn)變成實(shí)體類(lèi)別,實(shí)體結(jié)點(diǎn)對(duì)應(yīng)到知識(shí)庫(kù)中的實(shí)體,從而得到有根基的語(yǔ)義圖,如圖4(b)所示.為了在依存解析得到的無(wú)根基語(yǔ)義表征中減少冗余成分,Hu等人[67]先通過(guò)節(jié)點(diǎn)識(shí)別找出問(wèn)句中的實(shí)體、類(lèi)別、字符串,然后根據(jù)問(wèn)句的依存解析結(jié)果對(duì)識(shí)別出的節(jié)點(diǎn)進(jìn)行連結(jié)(connect)、合并(merge)、展開(kāi)(expand)、折疊(fold)得到語(yǔ)義查詢(xún)圖,再通過(guò)圖匹配算法將其與知識(shí)庫(kù)子圖對(duì)應(yīng),并采用對(duì)數(shù)線(xiàn)性模型對(duì)其進(jìn)行打分篩選.由于依存解析工具解析的結(jié)果與知識(shí)庫(kù)查詢(xún)存在較大差異,Sun等人[68]在依存句法的基礎(chǔ)上設(shè)計(jì)了骨架文法(skeleton grammar)對(duì)問(wèn)句進(jìn)行解析,再通過(guò)自定義操作構(gòu)造出語(yǔ)義查詢(xún)圖.該文法的解析結(jié)果為一棵有向樹(shù),其節(jié)點(diǎn)表示問(wèn)句中的文本片段,連邊表示文本片段之間的依存關(guān)系.
考慮到問(wèn)句的句法結(jié)構(gòu)與知識(shí)庫(kù)子圖的拓?fù)浣Y(jié)構(gòu)存在差異,為了進(jìn)一步降低構(gòu)造難度,Yih等人[3]直接通過(guò)知識(shí)庫(kù)子圖構(gòu)建查詢(xún)圖作為問(wèn)句的語(yǔ)義表征,并定義了圖9所示的4種狀態(tài),分別是空?qǐng)Dφ、只有主題實(shí)體的單節(jié)點(diǎn)圖Se、含有核心推理鏈的圖Sp、含有額外約束條件的復(fù)雜查詢(xún)圖Sc,針對(duì)這4種狀態(tài),Yih等人[3]設(shè)計(jì)了4種動(dòng)作,包括主題實(shí)體鏈接Ae、確定核心推理鏈Ap、添加聚合函數(shù)Aa和約束條件Ac.其中,Ae即利用實(shí)體鏈接模型識(shí)別出問(wèn)句中的所有實(shí)體并鏈接到知識(shí)庫(kù)上,作為候選主題實(shí)體;Ap即在知識(shí)庫(kù)中枚舉以候選主題實(shí)體出發(fā)的一跳或者兩跳關(guān)系路徑,作為候選核心推理鏈,而核心推理鏈的末端節(jié)點(diǎn)作為候選答案;Ac與Aa即依據(jù)啟發(fā)式規(guī)則在候選核心推理鏈上添加約束條件或聚合函數(shù).在打分篩選階段,上述動(dòng)作得到的候選均采用對(duì)數(shù)線(xiàn)性函數(shù)進(jìn)行篩選.
圖9 基于狀態(tài)轉(zhuǎn)移的查詢(xún)圖生成流程示意[3]
以圖6所示問(wèn)句“Who first voiced Meg on Family Guy?”為例,Yih等人[3]首先通過(guò)主題實(shí)體鏈接Ae識(shí)別出問(wèn)句中的實(shí)體“Family Guy”和“Meg Griffin”,并以得分高的候選實(shí)體為主題實(shí)體,不妨假設(shè)“Family Guy”為主題實(shí)體,再通過(guò)枚舉在知識(shí)庫(kù)中以“Family Guy”為頭實(shí)體的一跳或者兩跳關(guān)系路徑作為候選核心推理鏈,如“Family Guy,cast,?y,actor,?a),(Family Guy,genre,?a)等,得分高的候選核心推理鏈進(jìn)入下一輪處理,即添加聚合函數(shù)Aa和約束條件Ac.不妨以(Family Guy,cast,?y,actor,?a)例,問(wèn)句中除了主題實(shí)體以外的其他實(shí)體作為實(shí)體約束,連向核心推理鏈上的變量節(jié)點(diǎn)或答案結(jié)點(diǎn),因此(?y,character,Meg Griffin)作為候選答案在配音角色這個(gè)關(guān)系上的約束;同時(shí)由于問(wèn)句中出現(xiàn)了“first”這一最高級(jí)詞匯,觸發(fā)了排序操作,因此(?y,from,argmin)作為候選答案在配音工作開(kāi)始時(shí)間這個(gè)屬性上的約束.由此,圖6所示的查詢(xún)圖最終生成.
在迭代枚舉階段,后續(xù)工作主要從以下2個(gè)角度改進(jìn):(1)當(dāng)前方法可處理問(wèn)句約束類(lèi)型較少,部分工作細(xì)化約束條件類(lèi)型及其觸發(fā)規(guī)則[33];(2)當(dāng)前方法限制核心推理鏈長(zhǎng)度,無(wú)法回答多跳問(wèn)句,部分工作調(diào)整處理步驟,設(shè)計(jì)不同的多跳推理機(jī)制,從而處理核心推理鏈更長(zhǎng)的多跳關(guān)系問(wèn)句[69,70].
在打分篩選階段,后續(xù)工作[70~76]對(duì)打分函數(shù)中問(wèn)句和核心推理鏈的向量表示計(jì)算方式進(jìn)行改進(jìn),從而抓住問(wèn)句與核心推理鏈或查詢(xún)圖在整體或局部上的關(guān)聯(lián)性.
4.2.3 基于模板填充的方法
基于模板填充的方法根據(jù)問(wèn)句的語(yǔ)義信息直接從知識(shí)庫(kù)中抽取三元組或子圖,填充到查詢(xún)模板中構(gòu)成知識(shí)庫(kù)查詢(xún).這類(lèi)工作大多需要先選擇可能的查詢(xún)模板,再將候選實(shí)體和候選關(guān)系信息填充到特定模板中,最后用打分函數(shù)完成篩選.
不同方法的主要區(qū)別在于獲取查詢(xún)模板的方式上,部分方法從數(shù)據(jù)集中歸納總結(jié),得到查詢(xún)模板.如Unger等人[77]先對(duì)問(wèn)句進(jìn)行詞性標(biāo)注和詞匯映射,將映射后的所有詞匯輸入到已有解析工具Pythia[78],并基于總結(jié)出的人工規(guī)則將解析結(jié)果改寫(xiě)為SPARQL模板;Bast等人[79]從數(shù)據(jù)集中人工歸納出圖10所示的3種查詢(xún)模板作為限定,其中e1和e2均為問(wèn)句中出現(xiàn)的實(shí)體的占位符,m為變量占位符,t為答案占位符,r1,r2,r3為關(guān)系占位符,例如問(wèn)句“What company did Henry Ford work for?”可以將主題實(shí)體“Henry Ford”相關(guān)聯(lián)的一跳關(guān)系填入第一個(gè)模板,如(Henry Ford,birthdate,t),兩跳關(guān)系填入第二個(gè)模板,如“(Henry Ford,employment,m,company,t)”,由于沒(méi)有出現(xiàn)額外實(shí)體或?qū)嶓w類(lèi)別,因此第三個(gè)模板未得到填充,填充后得到的所有候選查詢(xún)通過(guò)邏輯回歸(logistic regression)和隨機(jī)森林(random forest)模型進(jìn)行打分排序;Zheng等人[80]通過(guò)將多個(gè)數(shù)據(jù)集中的查詢(xún)圖的節(jié)點(diǎn)和連邊的標(biāo)簽剔除,構(gòu)造了12個(gè)結(jié)構(gòu)化查詢(xún)模板,并根據(jù)輸入問(wèn)句的句法解析結(jié)果,以深度模型篩選模板并進(jìn)行模板填充.
圖10 預(yù)定義的3種模板[79]
后續(xù)工作[34,81~84]從數(shù)據(jù)集中自動(dòng)構(gòu)建問(wèn)句模板與查詢(xún)模板的配對(duì),當(dāng)輸入新的問(wèn)句時(shí),通過(guò)計(jì)算輸入問(wèn)句與已有的問(wèn)句模板的相似度,如依存解析結(jié)果之間的最小樹(shù)編輯距離等,找到合適的查詢(xún)模板.而不同方法構(gòu)造的問(wèn)句模板在形式也不盡相同,例如,Abujabal等人[34,81]針對(duì)每個(gè)問(wèn)句首先構(gòu)造對(duì)應(yīng)的查詢(xún)模板,再依據(jù)查詢(xún)模板,從問(wèn)句的依存解析樹(shù)中抽象出骨架作為問(wèn)句模板,具體地,Abujabal等人[34,81]首先通過(guò)實(shí)體鏈接找到包含問(wèn)句所有實(shí)體和答案的最小知識(shí)庫(kù)子圖,將答案和其他未提及實(shí)體替換為變量,構(gòu)造為候選查詢(xún)模板,再將問(wèn)句中的短語(yǔ)和候選查詢(xún)模板上的語(yǔ)義成分構(gòu)造為二部圖,通過(guò)求解整數(shù)線(xiàn)性規(guī)劃問(wèn)題,刪除候選查詢(xún)模板上有歧義的或者多余的邊,并將所有的實(shí)體和關(guān)系替換為對(duì)應(yīng)的占位符,從而得到查詢(xún)模板;再對(duì)問(wèn)句的依存樹(shù)刪除無(wú)法跟剪枝后的查詢(xún)模板對(duì)應(yīng)的成分,并將依存樹(shù)中的復(fù)合短語(yǔ)替換為詞性標(biāo)簽,將能對(duì)應(yīng)到查詢(xún)中的文本提及也替換為實(shí)體、關(guān)系、類(lèi)別的標(biāo)簽,從而得到問(wèn)句模板.而Cui等人[84]直接將問(wèn)答數(shù)據(jù)集中每一個(gè)樣例問(wèn)句的實(shí)體替換為實(shí)體類(lèi)別,構(gòu)造出問(wèn)句模板.相比之下,Cui等人[84]的模板更實(shí)例化,而Abujabal等人[34,81]的模板有更強(qiáng)的泛化性.
然而從數(shù)據(jù)集中歸納出的模板有限,部分方法采用模型生成結(jié)構(gòu)更多樣的模板.例如Bhutani等人[85]針對(duì) 給 定 的 問(wèn) 句,利 用 增 強(qiáng) 指 針 網(wǎng) 絡(luò)[40](augmented pointer networks)生成查詢(xún)模板,描述語(yǔ)義表征子式如何被連接和交叉操作組合為最終的語(yǔ)義表征,再通過(guò)Yih等人[3]的方法來(lái)生成語(yǔ)義表征子式從而填充相應(yīng)的查詢(xún)模板.Ding等人[86]將標(biāo)注數(shù)據(jù)中的查詢(xún)圖上的常量節(jié)點(diǎn)和部分謂詞關(guān)系替換為占位符得到查詢(xún)結(jié)構(gòu)(query structure),并在查詢(xún)結(jié)構(gòu)上進(jìn)一步分解得到查詢(xún)子結(jié)構(gòu)(query substructure),針對(duì)輸入問(wèn)句,先用神經(jīng)網(wǎng)絡(luò)模型判斷需要哪些查詢(xún)子結(jié)構(gòu),再判斷將查詢(xún)子結(jié)構(gòu)按不同方式組合的查詢(xún)模板與輸入問(wèn)句的匹配概率,最后將匹配得到的查詢(xún)模板實(shí)例化.Chen等人[87]定義了查詢(xún)模板的生成流程,包括向當(dāng)前模板添加某一類(lèi)節(jié)點(diǎn)、選擇當(dāng)前模板中的某個(gè)節(jié)點(diǎn)、為新添加的節(jié)點(diǎn)和被選擇的節(jié)點(diǎn)之間添加某一類(lèi)連邊,并利用一個(gè)基于編碼器-解碼器的神經(jīng)網(wǎng)絡(luò)模型,從標(biāo)注數(shù)據(jù)中學(xué)習(xí)如何迭代生成問(wèn)句對(duì)應(yīng)的查詢(xún)模板,同時(shí)學(xué)習(xí)另一個(gè)打分函數(shù)對(duì)模板實(shí)例化后的候選查詢(xún)進(jìn)行排序篩選.
綜上所述,枚舉排序這一類(lèi)方法在應(yīng)用時(shí)主要區(qū)別在兩個(gè)方面:一個(gè)是特定文法、人工定義的處理步驟、或者模板庫(kù)的不同,導(dǎo)致每輪迭代能枚舉獲得的候選語(yǔ)義表征子式不同,對(duì)方法本身的完備性也有不同的影響;另一個(gè)是打分函數(shù)設(shè)計(jì)多樣,早期主要依賴(lài)以人工特征為輸入的對(duì)數(shù)線(xiàn)性函數(shù),隨著深度學(xué)習(xí)的不斷發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)[3]、循環(huán)神經(jīng)網(wǎng)絡(luò)[71,72]、圖神經(jīng)網(wǎng)絡(luò)[73]、預(yù)訓(xùn)練語(yǔ)言模型[70]等深度學(xué)習(xí)模型也得到廣泛采用,打分函數(shù)考慮的特征信息愈發(fā)多樣.
枚舉排序這類(lèi)方法的主要優(yōu)點(diǎn)包括:(1)可控性強(qiáng),因?yàn)槊枯喌鷶U(kuò)展得到的所有候選均符合規(guī)范,所以最終的語(yǔ)義表征是可執(zhí)行的;(2)可解釋性強(qiáng),因?yàn)榻馕龅倪^(guò)程有確定性的語(yǔ)義表征子式或中間狀態(tài),所以每一步均可追溯.但不同的技術(shù)路線(xiàn)也展現(xiàn)出不同的特點(diǎn).例如,基于模板填充的方法利用模板嚴(yán)格限定了最終表征的結(jié)構(gòu),模板的覆蓋率決定了可回答問(wèn)句類(lèi)型的上限,使用固定模板庫(kù)的方法泛化性較差,但增量更新時(shí)只需更新模板庫(kù),較其他方法更新組合規(guī)則、調(diào)整處理步驟會(huì)更容易;基于線(xiàn)圖的方法通過(guò)詞匯映射和組合規(guī)則約束生成子式,相比完全依賴(lài)文法規(guī)則的方法和使用固定模板庫(kù)的方法,能靈活地應(yīng)對(duì)語(yǔ)義組合復(fù)雜的問(wèn)句;基于轉(zhuǎn)移的方法在枚舉階段可調(diào)整處理步驟以覆蓋更多類(lèi)型的問(wèn)句,可干預(yù)性強(qiáng).
本節(jié)主要介紹基于編碼解碼的語(yǔ)義解析方法.相比枚舉排序類(lèi)方法依賴(lài)特定文法或自定義處理步驟,編碼解碼的方法采用基于編碼器-解碼器架構(gòu)的模型直接學(xué)習(xí)自然語(yǔ)言到語(yǔ)義表征的映射,其中編碼器將自然語(yǔ)言問(wèn)句轉(zhuǎn)變?yōu)榈途S稠密的向量表示,解碼器根據(jù)編碼器輸出的問(wèn)句向量輸出符號(hào)化的語(yǔ)義表征.如表4所示,本文按照與知識(shí)庫(kù)交互的方式將現(xiàn)有方法分為兩類(lèi),分別是單次交互[43,88~103]與迭代交互[57,104~106].前者在測(cè)試階段解碼時(shí)不與知識(shí)庫(kù)進(jìn)行交互,只將最后的完整語(yǔ)義表征在知識(shí)庫(kù)中執(zhí)行,這種方式需要在訓(xùn)練階段以完整的語(yǔ)義表征為標(biāo)注數(shù)據(jù);后者在解碼階段與知識(shí)庫(kù)進(jìn)行迭代交互,執(zhí)行子式獲取中間結(jié)果,并指導(dǎo)后續(xù)子式生成,這種方式適用于訓(xùn)練階段只有最終答案作為標(biāo)注的弱監(jiān)督(weak supervision)場(chǎng)景.
表4 基于編碼解碼的語(yǔ)義解析方法分類(lèi)
早期的工作以神經(jīng)機(jī)器翻譯的方式,將語(yǔ)義表征視為輸入問(wèn)句在符號(hào)語(yǔ)義空間的譯文,只在輸出完整語(yǔ)義表征后與知識(shí)庫(kù)進(jìn)行交互,如Jia等人[88]采用了基于注意力機(jī)制(attention mechanism)的編碼器-解碼器模型,其中編碼器與解碼器均采用長(zhǎng)短時(shí)記憶網(wǎng)絡(luò),并且在解碼階段利用了基于注意力的復(fù)制機(jī)制(copy mechanism)將輸入問(wèn)句中的實(shí)體名等長(zhǎng)尾字符串輸出.后續(xù)工作主要針對(duì)解碼器架構(gòu)、輸出形式、解析流程這三方面進(jìn)行了調(diào)整.
5.1.1 解碼器架構(gòu)
部分工作考慮到以長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)為代表的傳統(tǒng)解碼器通常以序列化文本為輸出,難以捕捉語(yǔ)義表征的結(jié)構(gòu)信息,因此對(duì)解碼器進(jìn)行了適應(yīng)性調(diào)整.例如,Dong等人[89]利用分層樹(shù)解碼器(hierarchical tree decoder),如圖11所示,以寬度優(yōu)先的方式,按層依次解碼嵌套子樹(shù),其中非終止符<n>作為嵌套樹(shù)結(jié)構(gòu)中的語(yǔ)義表征子式的占位符.解碼過(guò)程中,解碼器按層依次解碼,輸出</s>時(shí)當(dāng)前層的子樹(shù)解碼完畢,并將當(dāng)前層輸出的<n>替換為非終止符,即根據(jù)當(dāng)時(shí)的解碼器的隱狀態(tài)向量解碼嵌套子樹(shù),由此完成自頂向下,從左向右的語(yǔ)義解析過(guò)程.
圖11 基于分層樹(shù)解碼器的模型解析問(wèn)句[89]
Cheng等人[90,91]采用解碼嵌套子樹(shù)的方式生成目標(biāo)語(yǔ)義表征FunQL,其解碼器為棧-長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(stack-LSTM),并且設(shè)置了緩沖區(qū)-棧(buffer-stack),其中緩沖區(qū)存放輸入的問(wèn)句詞語(yǔ),棧里存放生成的語(yǔ)義表征字段.圖12展示了問(wèn)句“Who is Barack Obama’s eldest daughter?”的樹(shù)形式的FunQL語(yǔ)義表征,樹(shù)上的節(jié)點(diǎn)分為非終止符和終止符.其中,非終止符包括聚合函數(shù),如排序(argmax);終止符包括實(shí)體占位符、關(guān)系占位符.在解碼時(shí),解碼器以深度優(yōu)先的方式迭代輸出語(yǔ)義表征字段,候選字段包括FunQL中的聚合函數(shù)、實(shí)體占位符、關(guān)系占位符、代表子樹(shù)完結(jié)的Reduce函數(shù).具體地,若解碼器輸出聚合函數(shù),則直接填入對(duì)應(yīng)的函數(shù)名作為非終止節(jié)點(diǎn);若輸出關(guān)系或?qū)嶓w的占位符,則需要進(jìn)一步預(yù)測(cè)具體對(duì)應(yīng)的知識(shí)庫(kù)關(guān)系或?qū)嶓w;若輸出Reduce函數(shù),則將堆中的狀態(tài)向量不斷彈出,直到得到一個(gè)非終止節(jié)點(diǎn)的狀態(tài)向量,再計(jì)算當(dāng)前完成的子樹(shù)的向量表示用于當(dāng)前時(shí)刻解碼器的狀態(tài)更新.考慮到語(yǔ)義表征中存在多種不同成分,李等人[92]將解碼器分為4個(gè)可遞歸調(diào)用的模塊,分別對(duì)應(yīng)查詢(xún)語(yǔ)言中的不同成分.
圖12 問(wèn)句“Who is Barack Obama's eldest daughter?”的語(yǔ)義表征[90]
5.1.2 輸出形式
為了在解碼階段引入針對(duì)語(yǔ)義表征的結(jié)構(gòu)約束,保證生成的語(yǔ)義表征符合規(guī)范,部分工作不直接輸出語(yǔ)義表征,而是輸出與特定語(yǔ)義表征等價(jià)的派生序列,或者輸出生成特定語(yǔ)義表征所需要的動(dòng)作序列.此時(shí)可通過(guò)先驗(yàn)規(guī)則對(duì)解碼階段的候選字段或候選動(dòng)作進(jìn)行檢查篩選,從而過(guò)濾掉不符合規(guī)范的候選項(xiàng).
Xiao等人[93]指出結(jié)構(gòu)化語(yǔ)義表征可以等價(jià)轉(zhuǎn)變?yōu)榕缮鷺?shù)(derivation tree),再通過(guò)前序遍歷可得到其派生序列(derivation sequence),因此以派生序列作為解碼器的目標(biāo)輸出,并在解碼階段引入結(jié)構(gòu)約束,硬性剔除不符合相關(guān)限制的候選項(xiàng).考慮到先驗(yàn)規(guī)則提供的結(jié)構(gòu)約束可能存在紕漏,Xiao等人[94]將先驗(yàn)規(guī)則提供的約束從直接保留或剔除變成先驗(yàn)概率打分,避免先驗(yàn)不夠準(zhǔn)確從而將部分正確的候選項(xiàng)直接剔除的情況,此時(shí),即使先驗(yàn)概率打分較低,但如果解碼器給出的分?jǐn)?shù)足夠高,解碼器也能輸出特定候選項(xiàng).高等人[95]將查詢(xún)圖切分為不同的語(yǔ)義塊,將查詢(xún)圖生成過(guò)程形式化為語(yǔ)義塊派生序列,解碼器迭代輸出語(yǔ)義塊,從而生成完整的查詢(xún)圖.
為了讓解碼器的輸出形式更加緊湊,部分工作采用預(yù)定義的動(dòng)作集合代替派生序列作為目標(biāo)輸出.例如,Chen等人[96]定義了生成查詢(xún)圖的動(dòng)作集合作為解碼器的輸出內(nèi)容,具體包括添加變量節(jié)點(diǎn)、添加實(shí)體節(jié)點(diǎn)、添加類(lèi)別節(jié)點(diǎn)、添加連邊、添加函數(shù)操作,解碼階段下一個(gè)動(dòng)作的選擇與當(dāng)前部分查詢(xún)圖強(qiáng)關(guān)聯(lián),不合規(guī)范的候選動(dòng)作可以通過(guò)先驗(yàn)約束過(guò)濾.Yin等人[97]將λ演算表示為抽象語(yǔ)法樹(shù)(abstract syntax tree),并通過(guò)抽象語(yǔ)法描述語(yǔ)言文法(abstract syntax description language grammar)[98]定義了生成抽象語(yǔ)法樹(shù)的動(dòng)作集合,從而得到問(wèn)句對(duì)應(yīng)的抽象語(yǔ)法樹(shù),其葉節(jié)點(diǎn)構(gòu)成了最終語(yǔ)義表征,即λ演算,而候選動(dòng)作的范圍受到抽象語(yǔ)法描述語(yǔ)言文法的限制.Cao等人[43]以程序語(yǔ)言KoPL為目標(biāo)語(yǔ)義表征,該程序語(yǔ)言中的27種基本函數(shù)對(duì)應(yīng)不同的動(dòng)作,從而對(duì)多種知識(shí)元素進(jìn)行操作并支持不同的查詢(xún)意圖.
5.1.3 解析流程
考慮到復(fù)雜問(wèn)句對(duì)應(yīng)的語(yǔ)義表征的語(yǔ)義成分豐富且結(jié)構(gòu)復(fù)雜,將復(fù)雜問(wèn)句直接解碼為語(yǔ)義表征的難度大.為了降低直接解析的難度,部分工作調(diào)整了解析流程.提出多階段的語(yǔ)義解析,將原有的端到端的解析流程拆分為多個(gè)子任務(wù).
一類(lèi)工作包含原始問(wèn)句映射到中間形態(tài),中間形態(tài)映射到最終語(yǔ)義表征這兩個(gè)子任務(wù),即先解碼出問(wèn)句相關(guān)的中間形態(tài)(如無(wú)根基的語(yǔ)義表征、語(yǔ)義表征骨架等),再生成最終的語(yǔ)義表征.例如,Cheng等人[99]先用解碼器生成無(wú)根基的語(yǔ)義表征,再通過(guò)詞匯映射將其轉(zhuǎn)變?yōu)橛懈恼Z(yǔ)義表征.后續(xù)工作的重點(diǎn)在于如何選擇合適的中間形態(tài).例如Dong等人[100]以目標(biāo)語(yǔ)義表征的粗粒度骨架作為中間形態(tài),先通過(guò)一組基于長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)的編碼器-解碼器生成目標(biāo)語(yǔ)義表征的粗粒度骨架,再通過(guò)一組編碼器-解碼器,根據(jù)輸入問(wèn)句和粗粒度骨架,生成目標(biāo)語(yǔ)義表征.這是由于粗粒度的骨架忽視了一些具體細(xì)節(jié),如變量和實(shí)體名等,從而將高階語(yǔ)義信息和低階語(yǔ)義信息區(qū)分開(kāi),讓解碼器們能在不同的粒度去建模語(yǔ)義表征.相比無(wú)根基的語(yǔ)義表征和語(yǔ)義表征骨架這類(lèi)結(jié)構(gòu)化的中間形態(tài),Cao等人[101]利用半結(jié)構(gòu)化的標(biāo)準(zhǔn)化問(wèn)句(canonical question)作為中間形態(tài),第一階段通過(guò)編碼器-解碼器模型將自然語(yǔ)言問(wèn)句復(fù)述為標(biāo)準(zhǔn)化問(wèn)句,作為淺層語(yǔ)義解析,第二階段通過(guò)另一個(gè)編碼器-解碼器模型將標(biāo)準(zhǔn)化問(wèn)句映射為結(jié)構(gòu)化的語(yǔ)義表征.
另一類(lèi)工作包含原始問(wèn)句分解為子問(wèn)句、子問(wèn)句解析、子問(wèn)句解析結(jié)果組合為最終表征這三個(gè)子任務(wù).例如,Zhang等人[102]設(shè)計(jì)了三階段的語(yǔ)義解析:第一階段將輸入的復(fù)雜問(wèn)句解碼為多個(gè)簡(jiǎn)單子問(wèn)句;第二階段根據(jù)原始問(wèn)句與子問(wèn)句的編碼,解碼出問(wèn)句中所涉及的知識(shí)庫(kù)關(guān)系;第三階段基于原始問(wèn)句、子問(wèn)句、所有關(guān)系的編碼,解碼出最終的語(yǔ)義表征.Guo等人[103]設(shè)計(jì)了問(wèn)句切分器,迭代地從問(wèn)句中切出子片段,交由解析器將該片段映射為一個(gè)部分語(yǔ)義表征;最后,所有的中間解析結(jié)果被組合為最終的語(yǔ)義表征,從而降低模型解析復(fù)雜問(wèn)句的難度.
為了更好地利用知識(shí)庫(kù)中的信息輔助解碼,部分工作在解析過(guò)程中與知識(shí)庫(kù)迭代交互.這類(lèi)工作在解碼階段主要輸出生成特定語(yǔ)義表征所需要的動(dòng)作序列,并通過(guò)先驗(yàn)規(guī)則獲取解碼器當(dāng)前符合規(guī)范的候選字段,但是和單次交互的工作相比,這部分工作能在與知識(shí)庫(kù)迭代交互的過(guò)程中執(zhí)行語(yǔ)義表征子式獲取中間結(jié)果,從而指導(dǎo)后續(xù)子式生成,并進(jìn)一步縮減搜索空間.這類(lèi)工作往往需要額外緩存區(qū)保存中間結(jié)果.例如Liang等人[104]提出神經(jīng)符號(hào)機(jī)(Neural Symbolic Machine,NSM),在編碼器-解碼器模型的基礎(chǔ)上,增加了鍵值記憶模塊(key-variable memory)來(lái)保存實(shí)體鏈接結(jié)果以及輸出的語(yǔ)義解析子式在知識(shí)庫(kù)中執(zhí)行的結(jié)果,作為后續(xù)子式的論元使用,同時(shí)在解碼階段引入語(yǔ)義表征的字段合法性檢查,在每個(gè)時(shí)刻約束解碼器的詞典范圍,從而確保輸出的字段是符合規(guī)范且可執(zhí)行的語(yǔ)義表征.
考慮到當(dāng)前工作定義的函數(shù)操作有限,可覆蓋問(wèn)句類(lèi)型受限,后續(xù)工作[57,105,106]主要拓展了解碼器可選擇的函數(shù)操作,從而能夠覆蓋更多類(lèi)型的問(wèn)句,有效應(yīng)對(duì)問(wèn)句組合語(yǔ)義的復(fù)雜性.其中,Ansari等人[105]定義了3種基本類(lèi)型和5個(gè)函數(shù)操作用于生成程序語(yǔ)言式的語(yǔ)義表征:基本類(lèi)型包括知識(shí)庫(kù)事實(shí)(即實(shí)體、關(guān)系、類(lèi)別)、基本數(shù)據(jù)類(lèi)型(即整數(shù)值、布爾值、補(bǔ)全符)、組合數(shù)據(jù)類(lèi)型(即集合,例如實(shí)體集合);5個(gè)函數(shù)操作分別作用于不同類(lèi)型的論元上,得到集合、布爾值或整數(shù)值.Saha等人[57]在此基礎(chǔ)上豐富了函數(shù)操作類(lèi)型與基本類(lèi)型,提出20個(gè)函數(shù)操作符,3大類(lèi)、9小類(lèi)基本類(lèi)型.在解析過(guò)程中,模型以解碼器的隱藏狀態(tài)作為當(dāng)前程序的狀態(tài),并根據(jù)當(dāng)前程序狀態(tài)迭代地通過(guò)操作選擇器、論元變量選擇器、輸出變量生成器構(gòu)造程序字段,執(zhí)行生成的程序子式,將中間結(jié)果寫(xiě)入到內(nèi)存中,最終生成完整的語(yǔ)義表征.
為了更好地利用知識(shí)庫(kù)的拓?fù)浣Y(jié)構(gòu)信息,Qiu等人[106]以查詢(xún)圖為語(yǔ)義表征,將查詢(xún)圖中的三元組按照關(guān)系連邊的類(lèi)型分為5類(lèi),分別是知識(shí)庫(kù)基本事實(shí)(basic)、并集事實(shí)(union)、數(shù)值比較(filter)、數(shù)值排序(ordinal)、聚合(aggregation),并在解析階段采用層次化解碼,頂層解碼器基于編碼后的問(wèn)句和當(dāng)前查詢(xún)圖決定待生成三元組的類(lèi)別,底層解碼器根據(jù)選定的類(lèi)別,迭代解碼出相應(yīng)的三元組,即選擇當(dāng)前查詢(xún)中的已有節(jié)點(diǎn),選擇一條連邊,添加一個(gè)新的節(jié)點(diǎn).
綜上所述,編碼解碼的方法利用模型直接建模語(yǔ)義表征的生成過(guò)程,這類(lèi)方法的優(yōu)點(diǎn)在于不依賴(lài)復(fù)雜的文法規(guī)則,候選語(yǔ)義表征的獲取相對(duì)靈活.但語(yǔ)義解析需要保證生成的語(yǔ)義表征符合規(guī)范,因此這類(lèi)方法往往需要在解碼過(guò)程中加入多種不同約束或者先驗(yàn)信息,如:引入非終止符改造標(biāo)注的語(yǔ)義表征,形成嵌套樹(shù)結(jié)構(gòu),輔助解碼器深入理解語(yǔ)義表征的結(jié)構(gòu)信息;引入字段檢查,為每一步解碼時(shí)提供前后一致且符合規(guī)范的候選字段.
同時(shí),與知識(shí)庫(kù)的交互也影響語(yǔ)義解析的結(jié)果.單次交互的方法在測(cè)試階段只在生成最終語(yǔ)義表征后與知識(shí)庫(kù)交互一次,得到最終答案.雖然知識(shí)庫(kù)查詢(xún)開(kāi)銷(xiāo)小,但是這類(lèi)方法在每一步解碼時(shí),需以知識(shí)庫(kù)的全部實(shí)體或關(guān)系作為候選詞表,在大規(guī)模知識(shí)庫(kù)下面臨搜索空間過(guò)大的問(wèn)題,并且由于解碼出的實(shí)體和關(guān)系,實(shí)體和實(shí)體之間可能不相連,導(dǎo)致最終語(yǔ)義表征的執(zhí)行結(jié)果可能為空.而迭代交互的方法雖然知識(shí)庫(kù)查詢(xún)開(kāi)銷(xiāo)大,但是能從知識(shí)庫(kù)中獲取子式的中間結(jié)果,指導(dǎo)后續(xù)子式生成,降低了搜索空間.從適用場(chǎng)景角度分析,單次交互的方法相對(duì)更適用于小規(guī)模知識(shí)庫(kù)問(wèn)答,并且需要以完整的語(yǔ)義表征作為標(biāo)注,雖然標(biāo)注成本較高,但模型在訓(xùn)練與測(cè)試階段均比迭代交互的方法更高效;而迭代交互的方法相對(duì)更適用于大規(guī)模知識(shí)庫(kù)問(wèn)答,并且可以只以最終答案作為弱監(jiān)督訓(xùn)練.
語(yǔ)義解析模型的訓(xùn)練往往依賴(lài)大量的標(biāo)注數(shù)據(jù),其中一部分工作需要完整的問(wèn)句-語(yǔ)義表征對(duì)作為監(jiān)督信號(hào),另一部分工作允許只有問(wèn)句的最終答案作為弱監(jiān)督信號(hào).但無(wú)論是何種監(jiān)督方式,所需的數(shù)據(jù)標(biāo)注都需要標(biāo)注人員熟悉知識(shí)庫(kù)的本體和實(shí)例,大量數(shù)據(jù)必然帶來(lái)高昂的標(biāo)注成本,如何在標(biāo)注樣本匱乏的低資源場(chǎng)景下利用現(xiàn)有數(shù)據(jù),有效訓(xùn)練語(yǔ)義解析模型.也是近期受到關(guān)注的一個(gè)話(huà)題.本文在這一節(jié)分別從數(shù)據(jù)驅(qū)動(dòng)和人機(jī)協(xié)同兩個(gè)方面介紹近期工作的嘗試.
當(dāng)前數(shù)據(jù)驅(qū)動(dòng)的方法主要分為3種:一種是通過(guò)問(wèn)句擴(kuò)充得到新的訓(xùn)練樣例,即根據(jù)當(dāng)前知識(shí)庫(kù)人工構(gòu)造查詢(xún),并通過(guò)歸納好的文法、模板或者半監(jiān)督(semisupervised)方式訓(xùn)練好的問(wèn)句生成模型生成自然語(yǔ)言問(wèn)句,為語(yǔ)義解析模型提供訓(xùn)練數(shù)據(jù),或者利用無(wú)標(biāo)注的問(wèn)句提供給解析模型,利用人為設(shè)計(jì)的監(jiān)督信號(hào)更新解析模型參數(shù);第二種是通過(guò)重采樣技術(shù)調(diào)整數(shù)據(jù)集分布,為出現(xiàn)次數(shù)較少的數(shù)據(jù)采樣相似樣本,彌補(bǔ)樣本分布差異,從而緩解訓(xùn)練集中樣本分布不均衡的現(xiàn)象;第三種是利用領(lǐng)域遷移技術(shù),將其他領(lǐng)域的知識(shí)遷移至當(dāng)前領(lǐng)域,從而完成低資源場(chǎng)景下語(yǔ)義解析模型的訓(xùn)練.
6.1.1 問(wèn)句擴(kuò)充
Jia等人[88]從訓(xùn)練集中歸納出同步上下文無(wú)關(guān)文法(synchronous context-free grammar),利用歸納出的文法生成新的訓(xùn)練語(yǔ)料用于訓(xùn)練解析模型.但這種歸納認(rèn)為問(wèn)句中的實(shí)體表述或短語(yǔ)表述,同問(wèn)句的其他表述在語(yǔ)義上條件獨(dú)立,因此生成問(wèn)句會(huì)出現(xiàn)搭配不一致等問(wèn)題.為了獲得更流暢通順的問(wèn)句,Wang等人[107]借助非專(zhuān)家人群的眾包協(xié)助,從模板問(wèn)句復(fù)述出流暢自然的問(wèn)句提供給解析模型.
隨著深度學(xué)習(xí)在文本生成領(lǐng)域的廣泛應(yīng)用,后續(xù)工作[108~111]利用神經(jīng)網(wǎng)絡(luò)訓(xùn)練問(wèn)句生成模型,并將問(wèn)句生成與問(wèn)句解析組合,從而能根據(jù)兩個(gè)任務(wù)各自的反饋為另一個(gè)任務(wù)提供監(jiān)督信號(hào).例如,Ko?isky等人[108]設(shè)計(jì)了兩個(gè)基于長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)的編碼器-解碼器疊加,第一個(gè)的目標(biāo)是根據(jù)輸入的語(yǔ)義表征解碼出自然語(yǔ)言問(wèn)句,第二個(gè)的目標(biāo)是根據(jù)自然語(yǔ)言問(wèn)句解碼出語(yǔ)義表征,整個(gè)模型構(gòu)成自編碼(autoencoders)框架,并且將有標(biāo)注的問(wèn)句-語(yǔ)義表征對(duì)和人工構(gòu)造的語(yǔ)義表征同時(shí)喂給當(dāng)前框架,針對(duì)有標(biāo)注數(shù)據(jù),第二個(gè)編碼器的輸入是真實(shí)問(wèn)句,對(duì)應(yīng)解碼器的目標(biāo)輸出是標(biāo)注的語(yǔ)義表征;針對(duì)人工構(gòu)造的語(yǔ)義表征,第二個(gè)編碼器的輸入是第一個(gè)解碼器的輸出.為了增強(qiáng)問(wèn)句生成與問(wèn)句解析這兩個(gè)任務(wù)之間的關(guān)聯(lián)性,部分工作[101,109~111]引入對(duì)偶學(xué)習(xí)框架,將任務(wù)的對(duì)偶性建模為損失函數(shù)中的正則項(xiàng)或者對(duì)偶任務(wù)的獎(jiǎng)勵(lì)信號(hào).
不同于從人工構(gòu)造的語(yǔ)義表征生成問(wèn)句給解析模型訓(xùn)練,Yin等人[97]直接利用無(wú)標(biāo)注的問(wèn)句提供給解析模型,并從兩個(gè)角度評(píng)價(jià)解析結(jié)果,分別是訓(xùn)練好的問(wèn)句生成模型能否從解析結(jié)果重構(gòu)出原始問(wèn)句,以及解析結(jié)果是否服從于語(yǔ)義表征的先驗(yàn)分布,該先驗(yàn)分布由基于長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)的語(yǔ)言模型建模.
6.1.2 問(wèn)句重采樣
大數(shù)據(jù)集中的特定類(lèi)型的樣本也會(huì)面臨低資源困境,即數(shù)據(jù)集中不同類(lèi)型的問(wèn)句存在分布差異,部分類(lèi)型的樣本在訓(xùn)練集中出現(xiàn)次數(shù)很少.
針對(duì)這一問(wèn)題,部分工作[112~114]提出問(wèn)句重采樣的方法,從數(shù)據(jù)集中找出與長(zhǎng)尾樣本或域外樣本相似的數(shù)據(jù)訓(xùn)練語(yǔ)義解析模型,而非直接在原始數(shù)據(jù)集上隨機(jī)采樣進(jìn)行訓(xùn)練,這是考慮到不同問(wèn)句的特性差異與分布偏差導(dǎo)致很難用一個(gè)語(yǔ)義解析模型去適應(yīng)不同類(lèi)型的問(wèn)句.例如,Lu等人[112]維護(hù)了一個(gè)記憶緩存,用于保存具有代表性的有標(biāo)注數(shù)據(jù),在遇到之前訓(xùn)練沒(méi)見(jiàn)過(guò)的特定類(lèi)型樣本時(shí),語(yǔ)義解析器先從記憶緩存中找到相似的問(wèn)句進(jìn)行適應(yīng)性訓(xùn)練,直到解析模型可以擬合該域外樣本.為了在樣本量較少的問(wèn)句類(lèi)型上也能取得穩(wěn)定效果,Hua等人[113,114]利用元學(xué)習(xí)(meta learning)為輸入問(wèn)句在數(shù)據(jù)集中尋找相似問(wèn)句,針對(duì)性地改變數(shù)據(jù)集分布,調(diào)整模型參數(shù).
6.1.3 領(lǐng)域遷移
考慮到特定領(lǐng)域的問(wèn)答訓(xùn)練數(shù)據(jù)難以獲取,部分工作提出采用領(lǐng)域遷移技術(shù),將其他領(lǐng)域的知識(shí)遷移至當(dāng)前領(lǐng)域,從而完成低資源場(chǎng)景下語(yǔ)義解析模型的訓(xùn)練.這類(lèi)工作主要考慮到不同領(lǐng)域的問(wèn)句僅在知識(shí)庫(kù)相關(guān)的詞匯(即實(shí)體、關(guān)系)上有區(qū)別,在問(wèn)句主體結(jié)構(gòu)上有共通之處,因此部分研究的關(guān)注點(diǎn)主要在如何遷移問(wèn)句主體結(jié)構(gòu)的知識(shí).然而,雖然問(wèn)句主體結(jié)構(gòu)的知識(shí)可以遷移,但詞匯映射依舊是獲得最終語(yǔ)義表征的關(guān)鍵步驟,因此部分工作關(guān)注如何在低資源場(chǎng)景下完成知識(shí)庫(kù)相關(guān)詞匯的映射.
在遷移問(wèn)句主體結(jié)構(gòu)知識(shí)上,Herzig等人[115]提出將問(wèn)句中與特定知識(shí)庫(kù)相關(guān)的詞匯替換為占位符,通過(guò)語(yǔ)義解析模型將替換后的問(wèn)句解析為語(yǔ)義表征的抽象骨架,而語(yǔ)義解析模型可通過(guò)其他領(lǐng)域的知識(shí)庫(kù)問(wèn)答數(shù)據(jù)集進(jìn)行訓(xùn)練,完成問(wèn)句主體結(jié)構(gòu)與語(yǔ)義表征抽象骨架之間映射關(guān)系的知識(shí)遷移.
在知識(shí)庫(kù)相關(guān)詞匯映射上,Herzig等人[115]將問(wèn)句關(guān)聯(lián)的知識(shí)庫(kù)候選實(shí)體及候選關(guān)系填入到抽象骨架中對(duì)應(yīng)的槽,再利用啟發(fā)式設(shè)計(jì)的打分函數(shù)進(jìn)行篩選.為了更有效地完成詞匯映射表的擴(kuò)充,Chen等人[116]提出基于圖的半監(jiān)督學(xué)習(xí)框架的詞匯映射學(xué)習(xí)方法,首先利用大量文本語(yǔ)料和詞匯映射資源來(lái)學(xué)習(xí)詞語(yǔ)之間的相似度,并構(gòu)建用于圖傳播的圖,接著使用圖傳播算法從少量標(biāo)注的詞匯中學(xué)習(xí)新的詞匯.
人機(jī)協(xié)同的方法[117~119]針對(duì)解析模型在解析過(guò)程中的疑惑,由標(biāo)注人員提供適當(dāng)?shù)姆答佇盘?hào),輔助問(wèn)句解析或更新模型參數(shù),從而緩解低資源場(chǎng)景下缺乏有效標(biāo)注的問(wèn)題.這類(lèi)工作主要關(guān)注兩點(diǎn):第一點(diǎn)是樣本選擇,即如何找到最值得提交給標(biāo)注人員的樣本,從而既能減少尋求協(xié)助的次數(shù),又能有效提升模型性能;第二點(diǎn)是指導(dǎo)方式,即選擇合適的指導(dǎo)方式,從而降低標(biāo)注人員的指導(dǎo)成本.
在樣本選擇上,Iyer等人[117]和Abujabal等人[118]將在線(xiàn)上應(yīng)用遇到的失敗案例提交;Ni等人[119]設(shè)計(jì)了打分函數(shù),綜合考慮了信息量、代表性、多樣性這三個(gè)指標(biāo)對(duì)數(shù)據(jù)集中的樣本進(jìn)行篩選.
在指導(dǎo)方式上,Iyer等人[117]將線(xiàn)上應(yīng)用階段失敗的案例收集后交給有經(jīng)驗(yàn)的標(biāo)注人員,直接提供完整的語(yǔ)義表征標(biāo)注;Abujabal等人[118]先利用之前基于模板的方法[34]在小規(guī)模訓(xùn)練語(yǔ)料上訓(xùn)練得到一個(gè)問(wèn)答模型,并維護(hù)一個(gè)問(wèn)句-查詢(xún)模板庫(kù),當(dāng)有新的問(wèn)句輸入時(shí),先對(duì)比該問(wèn)句與庫(kù)中問(wèn)句的依存解析樹(shù),若未能匹配,則以一個(gè)相似度度量函數(shù)從庫(kù)中檢索得到少量相似問(wèn)句,并將對(duì)應(yīng)的查詢(xún)模板均實(shí)例化后查詢(xún)知識(shí)庫(kù)獲得答案,將相似的問(wèn)句與答案均返回給用戶(hù),并將用戶(hù)滿(mǎn)意的查詢(xún)作為標(biāo)注數(shù)據(jù)喂給模型進(jìn)行新樣例的學(xué)習(xí),更新問(wèn)句-查詢(xún)模板庫(kù);Ni等人[119]采用多輪迭代的方式,每一次迭代時(shí),先訓(xùn)練語(yǔ)義解析模型至收斂;然后將打分函數(shù)挑選出的樣本提交給標(biāo)注人員,獲得對(duì)應(yīng)語(yǔ)義表征的骨架,從而降低直接標(biāo)注具體語(yǔ)義表征的成本.
低資源場(chǎng)景下的語(yǔ)義解析方法主要從數(shù)據(jù)驅(qū)動(dòng)和人機(jī)協(xié)同這兩個(gè)方向進(jìn)行探索.在數(shù)據(jù)驅(qū)動(dòng)方向上,現(xiàn)有工作分別從問(wèn)句擴(kuò)充、問(wèn)句重采樣以及領(lǐng)域遷移這三個(gè)角度出發(fā).在問(wèn)句擴(kuò)充的角度下,現(xiàn)有方法利用歸納出的文法或訓(xùn)練出的問(wèn)句生成模型,為解析模型提供更豐富且均衡的訓(xùn)練數(shù)據(jù);部分工作亦通過(guò)眾包的方式對(duì)人工構(gòu)造的模板問(wèn)句進(jìn)行復(fù)述,從而獲取自然語(yǔ)言問(wèn)句,與當(dāng)前數(shù)據(jù)集構(gòu)造方式類(lèi)似;在問(wèn)句重采樣的角度下,現(xiàn)有方法通過(guò)元學(xué)習(xí)和重采樣技術(shù)為當(dāng)前樣例調(diào)整訓(xùn)練集分布,從而緩解數(shù)據(jù)集中樣本分布不均衡,特定類(lèi)型樣本面臨低資源困境的情況;在領(lǐng)域遷移的角度下,現(xiàn)有方法既要考慮到如何遷移不同領(lǐng)域間的共性知識(shí),又要考慮如何低成本獲取不能遷移的領(lǐng)域特定知識(shí).而人機(jī)協(xié)同的方法將最能提升模型性能的樣例提供給標(biāo)注人員,根據(jù)反饋更新模型參數(shù)或模板庫(kù).
這兩個(gè)方向各有優(yōu)勢(shì),相比人機(jī)協(xié)同的方法,數(shù)據(jù)驅(qū)動(dòng)的方法成本更低,例如通過(guò)在問(wèn)句生成數(shù)據(jù)集上微調(diào)預(yù)訓(xùn)練語(yǔ)言模型,能迅速為解析模型提供大量訓(xùn)練樣本,但提供的樣本的質(zhì)量不如人機(jī)協(xié)同的方法,效果提升可能沒(méi)有人機(jī)協(xié)同的方法顯著.因此,在模型初始表現(xiàn)較低時(shí),可通過(guò)數(shù)據(jù)驅(qū)動(dòng)的方法進(jìn)行加強(qiáng);在模型表現(xiàn)相對(duì)較高,更需要高質(zhì)量數(shù)據(jù)或反饋時(shí),可通過(guò)人機(jī)協(xié)同的方法進(jìn)行加強(qiáng).
通過(guò)上述比較分析可以看出,面向知識(shí)庫(kù)問(wèn)答的語(yǔ)義解析已經(jīng)取得一定進(jìn)展,但仍然存在沒(méi)有克服的問(wèn)題和值得深入研究的方向.
由于現(xiàn)實(shí)世界的知識(shí)模態(tài)多樣、結(jié)構(gòu)各異且更新迅速,單一知識(shí)庫(kù)難以覆蓋用戶(hù)的信息需求,部分工作[19,22,23]借助開(kāi)放文本輔助知識(shí)庫(kù)問(wèn)答模型的決策,但依舊未能有效利用大量結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化知識(shí)以及多模態(tài)信息,如常識(shí)知識(shí)庫(kù)、社區(qū)問(wèn)答庫(kù)、圖片、視頻等.將多模態(tài)異構(gòu)的知識(shí)有效整合,并且以統(tǒng)一的語(yǔ)義表征進(jìn)行知識(shí)表示,可以有效支撐在不同模態(tài)和結(jié)構(gòu)的知識(shí)上進(jìn)行協(xié)同查詢(xún)推理.
在實(shí)際場(chǎng)景中,用戶(hù)往往圍繞一個(gè)主題進(jìn)行多次提問(wèn),在多輪問(wèn)答場(chǎng)景中,單個(gè)問(wèn)句常出現(xiàn)語(yǔ)義缺失,如實(shí)體指代不清、謂詞缺失等,導(dǎo)致單輪語(yǔ)義解析模型無(wú)法準(zhǔn)確理解問(wèn)句的語(yǔ)義.現(xiàn)有工作[120,121]主要利用對(duì)話(huà)歷史中已生成的語(yǔ)義表征的信息對(duì)后續(xù)問(wèn)句的表征進(jìn)行補(bǔ)全,因此如何根據(jù)對(duì)話(huà)狀態(tài)構(gòu)建前后語(yǔ)義表征字段之間的共指關(guān)聯(lián)成為研究重點(diǎn).而在關(guān)聯(lián)置信度低的情況下,需要探索如何根據(jù)缺失的語(yǔ)義信息生成相應(yīng)問(wèn)句提供給用戶(hù),通過(guò)用戶(hù)反饋來(lái)明確查詢(xún)意圖.
近期的語(yǔ)義解析工作通常采用深度學(xué)習(xí)模型,但深度學(xué)習(xí)模型往往因?yàn)轸敯粜圆蛔愣辉嵅?近年來(lái),在文本閱讀理解中,模型的魯棒性開(kāi)始得到關(guān)注,主要對(duì)答案來(lái)源的文本加入噪音,從而增強(qiáng)問(wèn)答模型的抗攻擊能力[122,123].而在知識(shí)庫(kù)問(wèn)答領(lǐng)域,除了考慮知識(shí)庫(kù)本身的噪音信息外,還需要考慮問(wèn)句中的噪音對(duì)語(yǔ)義解析的影響,主要包括一詞多義、拼寫(xiě)錯(cuò)誤、介詞短語(yǔ)引起的歧義、句式倒裝等.增強(qiáng)語(yǔ)義解析模型對(duì)問(wèn)句和知識(shí)庫(kù)中的噪音的抗干擾能力是實(shí)現(xiàn)知識(shí)庫(kù)問(wèn)答系統(tǒng)落地的關(guān)鍵.
當(dāng)前的語(yǔ)義解析方法往往是在訓(xùn)練數(shù)據(jù)較為充分的情況下進(jìn)行訓(xùn)練,區(qū)別主要在標(biāo)注數(shù)據(jù)是完整的語(yǔ)義表征還是只有最終的答案.但知識(shí)庫(kù)問(wèn)答系統(tǒng)落地時(shí)經(jīng)常是面向特定領(lǐng)域的,缺乏標(biāo)注數(shù)據(jù).現(xiàn)有方法主要利用問(wèn)句生成和重采樣進(jìn)行數(shù)據(jù)增強(qiáng)和分布調(diào)整、或者利用領(lǐng)域遷移或人機(jī)協(xié)同引入額外知識(shí)和反饋信號(hào),尚缺乏對(duì)預(yù)訓(xùn)練-微調(diào)這一范式的探索,包括利用知識(shí)庫(kù)本身信息、通用語(yǔ)言知識(shí)、跨領(lǐng)域語(yǔ)義解析模型,進(jìn)行融入知識(shí)的語(yǔ)言模型預(yù)訓(xùn)練、低資源下目標(biāo)領(lǐng)域的語(yǔ)義解析模型的預(yù)訓(xùn)練等.
面向知識(shí)庫(kù)問(wèn)答的語(yǔ)義解析技術(shù)將自然語(yǔ)言問(wèn)句映射為計(jì)算機(jī)可讀的結(jié)構(gòu)化語(yǔ)義表征,是實(shí)現(xiàn)人機(jī)交互的重要手段.這一技術(shù)當(dāng)前主要面臨3個(gè)挑戰(zhàn),分別是如何選擇合適的語(yǔ)義表征形式以表達(dá)問(wèn)句的語(yǔ)義,如何解析問(wèn)句的復(fù)雜語(yǔ)義并輸出相應(yīng)的語(yǔ)義表征,以及如何應(yīng)對(duì)特定領(lǐng)域中數(shù)據(jù)標(biāo)注成本高昂、高質(zhì)量數(shù)據(jù)匱乏的問(wèn)題.本文分析了知識(shí)庫(kù)問(wèn)答中常用的語(yǔ)義表征的特點(diǎn)與不足,然后梳理現(xiàn)有方法并總結(jié)分析其如何應(yīng)對(duì)問(wèn)句的復(fù)雜語(yǔ)義,接著介紹了當(dāng)前方法在標(biāo)注數(shù)據(jù)匱乏的低資源場(chǎng)景下的嘗試,最后展望并討論了面向知識(shí)庫(kù)問(wèn)答的語(yǔ)義解析的未來(lái)發(fā)展方向.