羅玲,李碩凱,何清,楊騁騏,王宇洋恒,陳天宇
(1.中國(guó)科學(xué)院計(jì)算技術(shù)研究所 智能信息處理重點(diǎn)實(shí)驗(yàn)室,北京 100190;2.中國(guó)科學(xué)院大學(xué),北京 100049)
網(wǎng)絡(luò)是當(dāng)今世界人們獲取信息的一個(gè)重要途徑。隨著信息化時(shí)代的到來(lái),網(wǎng)絡(luò)信息變得更龐大且雜亂無(wú)章,傳統(tǒng)的搜索引擎已經(jīng)難以滿足人們的需要。得益于人工智能技術(shù)的飛速發(fā)展,智能問(wèn)答系統(tǒng)應(yīng)運(yùn)而生[1]。智能問(wèn)答系統(tǒng)旨在幫助人們?cè)诤A啃畔⒅锌焖俣鴾?zhǔn)確地找到自己需要的信息。智能問(wèn)答系統(tǒng)響應(yīng)用戶提問(wèn)的效果要明顯好于當(dāng)今流行的基于布爾檢索技術(shù)的搜索引擎,提供的回答也更加快捷準(zhǔn)確。智能問(wèn)答是指通過(guò)人工智能、知識(shí)圖譜等技術(shù)建立的以一問(wèn)一答形式精確定位網(wǎng)站用戶所需要的知識(shí),通過(guò)與網(wǎng)站用戶進(jìn)行交互,為網(wǎng)站用戶提供個(gè)性化的信息服務(wù)的問(wèn)答系統(tǒng)[2]。
自第一屆冬季奧林匹克運(yùn)動(dòng)會(huì)于1924 年在法國(guó)的夏慕尼舉行以來(lái),冬奧會(huì)至今已有近一百年的歷史。2022 北京冬奧會(huì)即將來(lái)臨,人們也都很想了解這一百年來(lái)冬奧會(huì)的舉辦和獲獎(jiǎng)情況。但是由于參加冬奧會(huì)的運(yùn)動(dòng)員數(shù)量大、比賽項(xiàng)目多導(dǎo)致人們獲取準(zhǔn)確答案變得不容易。為了解決這個(gè)問(wèn)題,幫助人們快速高效地獲取需要的冬奧會(huì)的有關(guān)信息,本文提出了冬奧問(wèn)答系統(tǒng)。該系統(tǒng)首先收錄了從第一屆冬奧會(huì)至今所有冬奧會(huì)的舉辦信息和獲獎(jiǎng)信息,然后對(duì)比了3 種問(wèn)答方法,并對(duì)其優(yōu)劣進(jìn)行了比較。本文的貢獻(xiàn)主要分為如下3 個(gè)部分:
1) 利用爬蟲(chóng)爬取了有關(guān)冬奧會(huì)問(wèn)答的事實(shí)性句子,包含運(yùn)動(dòng)員的姓名、性別、年齡、身高、體重、國(guó)家、參與奧運(yùn)會(huì)的年份、參加奧運(yùn)會(huì)的項(xiàng)目、獲獎(jiǎng)情況等信息。并自己定義模板,將事實(shí)性信息轉(zhuǎn)化為問(wèn)答對(duì),整合后提出了冬奧問(wèn)答數(shù)據(jù)集,包含了冬奧會(huì)的事實(shí)性問(wèn)題。
2)將智能問(wèn)答系統(tǒng)應(yīng)用在冬奧項(xiàng)目數(shù)據(jù)上,分別基于知識(shí)圖譜、基于自注意力機(jī)制的雙向編碼表示(bidirectional encoder representation from transformers,BERT)模型和詞頻?逆文本頻率指數(shù)(term frequency-inverse document frequency,TFIDF)模型建立了冬奧問(wèn)答系統(tǒng),根據(jù)用戶提供的自然語(yǔ)言形式的問(wèn)題可以給出準(zhǔn)確的回答。
3)本文使用3 種模型建立冬奧問(wèn)答系統(tǒng),并比較了3 種模型的正確率和優(yōu)缺點(diǎn),實(shí)驗(yàn)結(jié)果達(dá)到了預(yù)期目標(biāo)。
智能對(duì)話系統(tǒng)是人工智能領(lǐng)域的核心技術(shù),是人機(jī)交互的重要研究方向,對(duì)話系統(tǒng)的基礎(chǔ)是問(wèn)答系統(tǒng)。問(wèn)答系統(tǒng)是信息檢索系統(tǒng)的高級(jí)形式之一,采用自然語(yǔ)言處理技術(shù),可以實(shí)現(xiàn)對(duì)用戶疑問(wèn)的理解,進(jìn)而完成答案的生成[3]。問(wèn)答系統(tǒng)首先接受自然語(yǔ)言的問(wèn)句輸入進(jìn)行問(wèn)句分析,這一階段的主要任務(wù)是完成對(duì)問(wèn)句語(yǔ)義的理解,將自然語(yǔ)言轉(zhuǎn)為邏輯語(yǔ)言,在問(wèn)句分析后進(jìn)行信息檢索和直接答案輸出。問(wèn)答系統(tǒng)主要分為信息檢索式問(wèn)答系統(tǒng)和生成式的問(wèn)答系統(tǒng)[4],前者通過(guò)判斷輸入問(wèn)句在知識(shí)庫(kù)中匹配對(duì)應(yīng)答案,后者則基于模型訓(xùn)練生成答句。Yao 等[5]實(shí)現(xiàn)了一種實(shí)際工程應(yīng)用中的基于深度學(xué)習(xí)模型的任務(wù)導(dǎo)向型對(duì)話系統(tǒng)的通用框架。Feng 等[6]實(shí)現(xiàn)了一個(gè)不依賴語(yǔ)言的基于卷積神經(jīng)網(wǎng)絡(luò)的口語(yǔ)問(wèn)答系統(tǒng),基于問(wèn)題和訓(xùn)練集中距離的度量,返回度量值最高的問(wèn)答對(duì)。Zhang 等[7]實(shí)現(xiàn)了一個(gè)基于知識(shí)庫(kù)的開(kāi)放領(lǐng)域問(wèn)答系統(tǒng),該系統(tǒng)采用自定義詞典分詞和條件隨機(jī)場(chǎng)模型CRF 相結(jié)合的方法識(shí)別問(wèn)句中的主體,采用模糊匹配方法將問(wèn)句中的主體和知識(shí)庫(kù)中的實(shí)體建立連接,系統(tǒng)平均F-Measure(F 值)達(dá)到0.695 6。Noraset 等[8]實(shí)現(xiàn)了一個(gè)基于泰語(yǔ)的問(wèn)答系統(tǒng)。H?ffner 等[9]調(diào)查分析了62 個(gè)不同的語(yǔ)義問(wèn)答(SQA)系統(tǒng)?;谒麄兊姆治?,本文選出3 種方法,在中文冬奧問(wèn)答數(shù)據(jù)集上進(jìn)行比較。
1977 年,知識(shí)工程概念在第五屆國(guó)際人工智能大會(huì)上被提出,隨即知識(shí)庫(kù)系統(tǒng)的研究開(kāi)始進(jìn)入人們的視野[10]。Google 公司于2012 年11 月提出了知識(shí)圖譜概念,并表示在其搜索結(jié)果中加入知識(shí)圖譜功能。知識(shí)圖譜概念一經(jīng)提出,就逐漸成為熱門(mén),進(jìn)入蓬勃發(fā)展階段。知識(shí)圖譜模型基于符號(hào)化通過(guò)三元組表達(dá)具體知識(shí),并且以有向圖的形式進(jìn)行存儲(chǔ)鏈接,在問(wèn)答系統(tǒng)、搜索、推薦等領(lǐng)域有著廣泛的應(yīng)用。Liu 等[11]從知識(shí)圖譜的定義和技術(shù)架構(gòu)出發(fā),對(duì)構(gòu)建知識(shí)圖譜涉及的關(guān)鍵技術(shù)進(jìn)行了自底向上的全面解析。Xu 等[12]探索了一種基于知識(shí)圖譜的多輪問(wèn)答系統(tǒng)可實(shí)現(xiàn)方案。Chen 等[13]應(yīng)用知識(shí)圖譜通過(guò)結(jié)合其領(lǐng)域詞表、規(guī)范等內(nèi)容實(shí)現(xiàn)了一個(gè)可用于查詢數(shù)據(jù)、進(jìn)行知識(shí)問(wèn)答的智能系統(tǒng)。Piotr[14]提出了一個(gè)開(kāi)放域因子式問(wèn)答系統(tǒng),引入并實(shí)現(xiàn)了深度實(shí)體識(shí)別。它允許基于先前組裝的實(shí)體庫(kù),全面搜索與給定詞網(wǎng)WordNet 語(yǔ)法集匹配的所有形式的實(shí)體引用。Yih 等[15]提出了一個(gè)三階段的搜素方法,提高了知識(shí)圖譜搜素問(wèn)題的準(zhǔn)確度。Jia 等[16]引用知識(shí)圖譜模型和用戶長(zhǎng)短期偏好提出了一種個(gè)性化景點(diǎn)推薦方法,能夠預(yù)測(cè)并返回用戶可能感興趣的推薦列表。
TF-IDF 是一種針對(duì)關(guān)鍵詞的統(tǒng)計(jì)分析方法,旨在通過(guò)判斷某一詞匯在測(cè)試語(yǔ)句和語(yǔ)料庫(kù)中的出現(xiàn)次數(shù)來(lái)判斷詞的重要程度。
TF-IDF 是一種常用于信息檢索的加權(quán)技術(shù),有著廣泛的應(yīng)用:在對(duì)話領(lǐng)域,Lu 等[17]基于向量空間的TF-IDF 相似度模型,實(shí)現(xiàn)了面向服務(wù)機(jī)器人的口語(yǔ)對(duì)話系統(tǒng);在知識(shí)圖譜領(lǐng)域,Zhang 等[18]基于TF-IDF 模型通過(guò)關(guān)鍵詞特征分析和共現(xiàn)矩陣分析,從而更好地構(gòu)建全面從嚴(yán)治黨知識(shí)圖譜,加強(qiáng)對(duì)習(xí)近平新時(shí)代中國(guó)特色社會(huì)主義思想的學(xué)習(xí)與理解;在SQL 注入檢測(cè)領(lǐng)域,Su 等[19]基于TF-IDF 和N-Gram 提出了一種SQL 注入檢測(cè)方法,在保證召回率的基礎(chǔ)上,可接受率有所提高;在輿情挖掘領(lǐng)域,Liu 等[20]提出了基于TF-IDF權(quán)重分析法的網(wǎng)絡(luò)輿情信息挖掘技術(shù),提高了網(wǎng)絡(luò)輿情信息挖掘效果,增強(qiáng)輿情引導(dǎo)的準(zhǔn)確性;在垃圾短信分類(lèi)領(lǐng)域,Wu 等[21]提出了一種結(jié)合TF-IDF 的基于自注意力機(jī)制的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)模型來(lái)進(jìn)行垃圾短信識(shí)別,這種模型相比于傳統(tǒng)分類(lèi)模型的短信文本識(shí)別可接受率提高了2.1%~4.6%,運(yùn)行時(shí)間減少了0.6~10.2 s;在文本相似度度量領(lǐng)域,Li 等等[22]提出了一種運(yùn)用TF-IDF方法提取文本關(guān)鍵詞的文本相似性度度量方法,準(zhǔn)確率高,且時(shí)間效率比其他方法更高。
BERT 是一種預(yù)訓(xùn)練語(yǔ)言表示的方法,在大量文本語(yǔ)料上訓(xùn)練了一個(gè)通用的“語(yǔ)言理解”模型,然后用這個(gè)模型去執(zhí)行具體的自然語(yǔ)言處理任務(wù)。BERT 可以通過(guò)加深網(wǎng)絡(luò)的方式增強(qiáng)對(duì)文本信息的挖掘能力。另外,BERT 基于無(wú)監(jiān)督的語(yǔ)料數(shù)據(jù)進(jìn)行學(xué)習(xí)的,可以減少數(shù)據(jù)搜集和人工標(biāo)注的成本。
BERT 在專利匹配、中文語(yǔ)義匹配、金融文本情感分析、中文地址分詞、問(wèn)答等領(lǐng)域有著廣泛的應(yīng)用:在專利匹配領(lǐng)域,Cao 等[23]提出了一種基于BERT+注意力機(jī)制和基于密度聚類(lèi)(DBSCAN)的長(zhǎng)三角專利匹配算法,有助于分析和研究長(zhǎng)三角地區(qū)的專利情況;在中文語(yǔ)義匹配領(lǐng)域,Wu 等[24]提出一種基于BERT 模型的用于問(wèn)答系統(tǒng)的中文語(yǔ)義匹配算法,實(shí)現(xiàn)了高效準(zhǔn)確的語(yǔ)義匹配,顯著提高文本搜索、問(wèn)答匹配的效率;在金融文本情感分析領(lǐng)域,Zhu 等[25]提出基于金融領(lǐng)域的全詞覆蓋與特征增強(qiáng)的BERT 預(yù)處理模型,顯著提高了金融文本情感分析的可接受率和召回率;在中文地址分詞領(lǐng)域,Sun 等[26]提出了一種基于BERT的中文地址分詞方法,將非行政級(jí)別的地址標(biāo)簽進(jìn)行重新設(shè)計(jì),將中文地址分詞任務(wù)轉(zhuǎn)換為命名實(shí)體識(shí)別任務(wù),提取出正確的地址級(jí)別;在問(wèn)答領(lǐng)域,Peng 等[27]提出了基于BERT 的三階段式問(wèn)答模型,該模型相較于同類(lèi)基準(zhǔn)模型,抽取出的答案片段更加準(zhǔn)確。
不難看出,BERT 在自然語(yǔ)言處理領(lǐng)域有著十分廣泛的應(yīng)用,在各種任務(wù)上都有著不錯(cuò)的表現(xiàn)。
BERT 模型由Google 公司在2018 年發(fā)布。BERT的網(wǎng)絡(luò)架構(gòu)使用的是《Attention is all you need》中提出的多層自注意力機(jī)制Transformer 結(jié)構(gòu),其最大的特點(diǎn)是拋棄了傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò),通過(guò)注意力機(jī)制將任意位置的兩個(gè)單詞的距離轉(zhuǎn)換成1,有效地解決了自然語(yǔ)言處理中棘手的長(zhǎng)期依賴問(wèn)題。多層自注意力機(jī)制Transformer 的網(wǎng)絡(luò)架構(gòu)如圖1[28]所示,它是一個(gè)序列到序列的結(jié)構(gòu),由若干個(gè)編碼器和解碼器堆疊形成。
圖1 BERT 模型的網(wǎng)絡(luò)架構(gòu)Fig.1 Encoder-diverter-decoder with auxiliary information
模型的主要?jiǎng)?chuàng)新點(diǎn)在pre-train 方法上,使用了Masked LM 和Next sentence prediction 兩種方法分別捕捉詞語(yǔ)和句子級(jí)別的representation。圖2~4 給出了其模型結(jié)構(gòu)與另外兩種著名的模型:生成式預(yù)訓(xùn)練(Generative pre-training,GPT) 和從語(yǔ)言模型中學(xué)得詞嵌入(Embeddings from language models,ELMO)對(duì)比效果。其中Trm 表示Transformer,LSTM 表示長(zhǎng)短期記憶網(wǎng)絡(luò),Ei 表示輸入,Ti 表示輸出。對(duì)比OpenAI GPT,BERT 是雙向的多層自注意力機(jī)制連接;就像單向循環(huán)神經(jīng)網(wǎng)絡(luò)和雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的區(qū)別,直覺(jué)上來(lái)講效果會(huì)好一些。對(duì)比ELMo,雖然都是雙向,但是目標(biāo)函數(shù)是不同的。
圖2 BERT 模型結(jié)構(gòu)Fig.2 The architecture of BERT
本文的模型整體使用“檢索式對(duì)話系統(tǒng)”的思路,以關(guān)鍵詞和句子的相似度為指標(biāo)將測(cè)試集的問(wèn)句與訓(xùn)練集的問(wèn)句進(jìn)行匹配,并取和測(cè)試集問(wèn)句“最相似”的問(wèn)句的答案作為最終答案輸出。模型設(shè)計(jì)要點(diǎn)如下:
1)生成句向量
生成句向量由很多種方式,如使用sklearn 詞袋模型和word2vec 模型等,本文選擇了BERT 的簡(jiǎn)單模型,調(diào)用BERT_serving.client 庫(kù)中的BERTClient函數(shù)對(duì)每個(gè)句子進(jìn)行特征提取,維度為768。
圖3 GPT 模型結(jié)構(gòu)Fig.3 The architecture of GPT
圖4 ELMo 模型結(jié)構(gòu)Fig.4 The architecture of ELMo
2)匹配特殊關(guān)鍵詞的數(shù)量
由于BERT 模型直接將輸入的句子進(jìn)行特征提取生成句向量,采用的語(yǔ)料庫(kù)不完全是冬奧問(wèn)答領(lǐng)域的,因此在冬奧會(huì)的專業(yè)領(lǐng)域特征提取的結(jié)果可能不夠準(zhǔn)確。為了彌補(bǔ)這一缺陷,實(shí)驗(yàn)在匹配含有測(cè)試問(wèn)句中關(guān)鍵詞的訓(xùn)練問(wèn)題庫(kù)中的問(wèn)題時(shí)加入了優(yōu)先特殊關(guān)鍵詞(人名、地名和時(shí)間)。
為了減少運(yùn)算量并減少問(wèn)題句式的不同對(duì)結(jié)果造成的影響,實(shí)驗(yàn)時(shí)手動(dòng)挑選了若干個(gè)特殊關(guān)鍵詞存在文件里,這些特殊關(guān)鍵詞包括人名、地名和時(shí)間。在匹配的最開(kāi)始,對(duì)于問(wèn)句中的每一個(gè)關(guān)鍵詞,查詢包含它的訓(xùn)練集句子,比對(duì)它和問(wèn)句之間相同的特殊關(guān)鍵詞,并維護(hù)一個(gè)變量來(lái)表示當(dāng)前和問(wèn)句的最大特殊關(guān)鍵詞匹配數(shù),同時(shí)將對(duì)應(yīng)的訓(xùn)練集問(wèn)句存儲(chǔ)在列表L 中。如果存在多個(gè)和問(wèn)句的特殊關(guān)鍵詞匹配數(shù)一樣的句子,那么就會(huì)進(jìn)入下一步的精細(xì)選擇:首先根據(jù)提問(wèn)句子中的每一個(gè)關(guān)鍵詞item,查詢訓(xùn)練集中包含這個(gè)關(guān)鍵詞item 的句子的ID,再獲取這個(gè)句子的關(guān)鍵字?jǐn)?shù)組,然后將這個(gè)item 的關(guān)鍵詞匹配數(shù)置為0。如果這個(gè)item 在對(duì)應(yīng)的訓(xùn)練問(wèn)句的關(guān)鍵字?jǐn)?shù)組里,就繼續(xù)判斷該item 是否是特殊關(guān)鍵詞,如果是就將它的關(guān)鍵詞匹配數(shù)加1。統(tǒng)計(jì)完之后判斷當(dāng)前的關(guān)鍵詞匹配數(shù)是否大于先前維護(hù)的最大關(guān)鍵詞匹配數(shù),如果的確更大那么就將最大匹配數(shù)更新并且清空存儲(chǔ)列表L,將當(dāng)前句子的ID 存儲(chǔ)到其中。這樣得到的存儲(chǔ)列表L 就是初次選擇的和問(wèn)句“最像”的句子的集合。
3)取句向量相似度最大的句子作為結(jié)果
在初步選擇了特殊關(guān)鍵詞匹配度最高的一些句子之后,需要在這些句子中選出和問(wèn)句“更像”的句子來(lái)提供最終的答案。所以需要將問(wèn)句都轉(zhuǎn)化為特征向量,然后對(duì)特征向量采取一些運(yùn)算并比較后得到最終的結(jié)果,具體步驟為:對(duì)于存儲(chǔ)列表L 中每一個(gè)句子的ID,得到這個(gè)ID 對(duì)應(yīng)的句子的特征向量,與提問(wèn)句的特征向量一起輸入得分函數(shù)計(jì)算兩個(gè)句子的相似度得分,之后循環(huán)統(tǒng)計(jì)最大的得分和對(duì)應(yīng)的訓(xùn)練集句子的ID,然后返回這個(gè)句子的ID。在這里本文設(shè)計(jì)了一個(gè)“門(mén)檻”來(lái)過(guò)濾掉無(wú)關(guān)的句子:如果最大的相似度計(jì)算出來(lái)都低于70%,那么就認(rèn)為這個(gè)句子不存在答案,返回“暫時(shí)沒(méi)有合適的答案”。
需要說(shuō)明的是本文利用余弦函數(shù)計(jì)算句向量之間的相似度。對(duì)于向量來(lái)說(shuō),最大的相似度就是兩個(gè)向量是平行向量,所以整體來(lái)說(shuō),兩個(gè)向量的夾角越小,它就越相似。所以直接使用兩個(gè)向量的積除以它們的模長(zhǎng)的積來(lái)計(jì)算它們夾角的余弦值,并以這個(gè)余弦值作為兩個(gè)句向量之間的相似度。得分函數(shù)值也取這個(gè)余弦值。
gensim 庫(kù)用于從原始的非結(jié)構(gòu)化的文本中,無(wú)監(jiān)督地學(xué)習(xí)到文本隱層的向量表達(dá)。gensim 庫(kù)有語(yǔ)料、向量和模型三大概念。語(yǔ)料是gensim 庫(kù)輸入一組語(yǔ)句的集合,即為問(wèn)答對(duì)序列。由于漢語(yǔ)自身語(yǔ)言特點(diǎn),中文句子是由連續(xù)的詞和詞組組成,中間沒(méi)有空格,為了使機(jī)器理解,需要對(duì)中文句子進(jìn)行切分處理,因此在收集語(yǔ)料之后,把中文詞語(yǔ)切分成詞組,本文使用jieba 庫(kù)實(shí)現(xiàn)此功能。如果要對(duì)語(yǔ)句的隱含結(jié)構(gòu)進(jìn)行推斷,就需要使用適當(dāng)?shù)臄?shù)學(xué)模型:本文在使用的方法是doc2bow,也就是將語(yǔ)句轉(zhuǎn)化為詞袋。在詞袋向量中,每個(gè)句子被表示成一個(gè)向量,代表字典中每個(gè)詞出現(xiàn)的次數(shù)。例如,給定一個(gè)包含[‘2020’,‘冬奧會(huì)’,‘舉辦地’,‘金牌’]的字典,語(yǔ)句[‘2020’,‘冬奧會(huì)’,‘2020’] 字可以表示成向量[(0,2),(1,1)],表示‘2020’(編號(hào)0)出現(xiàn)了2 次、‘冬奧會(huì)’(編號(hào)1)出現(xiàn)了1 次。在向量化語(yǔ)料后,可以使用各種模型進(jìn)行訓(xùn)練,使用模型實(shí)質(zhì)上在兩個(gè)向量空間中進(jìn)行轉(zhuǎn)換。
TF-IDF 模型中需要計(jì)算詞頻(TF)和逆向文檔頻率(IDF),計(jì)算方式分別為
在得到TF 與IDF 之后將兩個(gè)值相乘就得到了一個(gè)詞的TF-IDF 值。某個(gè)詞對(duì)測(cè)試語(yǔ)句的重要性越高,TF-IDF 值就越大。TF-IDF 模型能有效避免常用詞對(duì)關(guān)鍵詞的影響,提高了關(guān)鍵詞與測(cè)試語(yǔ)句之間的相關(guān)性。
文章使用余弦相似度進(jìn)行TF-IDF 值的比較。對(duì)于訓(xùn)練集中的每一個(gè)問(wèn)題,可以得到一個(gè)TF-IDF 向量,表示為
通過(guò)計(jì)算兩個(gè)向量的夾角余弦值來(lái)評(píng)估他們的相似度。余弦值的范圍為[?1,1],值越趨近于1,代表兩個(gè)向量的方向越接近,也就是相似度越高。之后利用相似度值來(lái)檢索最適合的答案。
知識(shí)圖譜(Knowledge graph,KG)是一種有向圖。圖中的點(diǎn)代表實(shí)體,邊代表關(guān)系。一個(gè)邊(通常為謂詞)連接兩個(gè)實(shí)體,分別為頭部實(shí)體和尾部實(shí)體。這樣一個(gè)頭部實(shí)體、一個(gè)關(guān)系、一個(gè)尾部實(shí)體構(gòu)成了一個(gè)三元組,也被稱為事實(shí)。知識(shí)圖譜通常由數(shù)千萬(wàn)乃至數(shù)十億個(gè)事實(shí)構(gòu)成。為了在如此龐大的數(shù)據(jù)中快速且準(zhǔn)確地獲取目標(biāo)信息,提出了知識(shí)圖譜問(wèn)答。它的目標(biāo)是把自然語(yǔ)言轉(zhuǎn)換為結(jié)構(gòu)化查詢,且返回知識(shí)圖譜中的實(shí)體或謂詞為答案。
本文的基于知識(shí)圖譜嵌入的問(wèn)答系統(tǒng)主要面向于簡(jiǎn)單問(wèn)題。對(duì)于簡(jiǎn)單問(wèn)題的定義是:如果一個(gè)自然語(yǔ)言問(wèn)題只涉及知識(shí)圖譜中的一個(gè)頭部實(shí)體和一個(gè)謂詞,并以它們的尾部實(shí)體作為答案,那么這個(gè)問(wèn)題稱為簡(jiǎn)單問(wèn)題。對(duì)于一個(gè)簡(jiǎn)單問(wèn)題,首先需要預(yù)測(cè)他的頭部實(shí)體和謂詞,即關(guān)系,再在知識(shí)圖譜中找到對(duì)應(yīng)的尾部實(shí)體,將之做為答案返回。
知識(shí)圖譜的嵌入:用(h,l,t) 代表一個(gè)三元組,用eh 代表預(yù)測(cè)頭實(shí)體表示,類(lèi)似的,用et 代表尾實(shí)體表示。用Pl 代表一個(gè)預(yù)測(cè)謂詞表示。生成知識(shí)圖譜的時(shí)候,用(h,l,t)構(gòu)成高維知識(shí)圖譜,為了便于查詢,需要把這個(gè)高維知識(shí)圖譜轉(zhuǎn)換為形如(eh,Pl,et)的低維向量。這樣就把高維的知識(shí)圖譜嵌入到低維空間,而不會(huì)損失信息。
預(yù)測(cè)關(guān)系首先把句子進(jìn)行分詞,得到標(biāo)志(token)串,用LSTM 捕捉詞與詞之間的關(guān)系,并轉(zhuǎn)化為向量表達(dá)。對(duì)每個(gè)向量加權(quán)后,形成帶權(quán)向量。最后把一個(gè)標(biāo)志串的向量相加,形成預(yù)測(cè)關(guān)系表達(dá)。
預(yù)測(cè)實(shí)體對(duì)于預(yù)測(cè)實(shí)體,需要提前標(biāo)出哪個(gè)位置的詞是實(shí)體。然后類(lèi)似于預(yù)測(cè)關(guān)系,先生成標(biāo)志串,輸入LSTM,形成向量表達(dá),輸入全連接層,最終輸出每個(gè)標(biāo)志的向量。再根據(jù)提前的標(biāo)注區(qū)分是否為實(shí)體。
嵌入空間的聯(lián)合搜索對(duì)于每一個(gè)問(wèn)題,現(xiàn)已經(jīng)預(yù)測(cè)了它的謂詞表示和頭部實(shí)體表示。如果一個(gè)預(yù)測(cè)頭部實(shí)體表示在知識(shí)圖譜的三元組中,稱之為候選頭部實(shí)體;這個(gè)三元組稱之為候選事實(shí)。度量這個(gè)候選事實(shí)的謂詞與謂詞表示的距離,就可以搜素到尾部實(shí)體,并將尾部實(shí)體作為答案返回。
為了得到問(wèn)答數(shù)據(jù)集,我們上網(wǎng)爬取了1924 年以來(lái)的冬奧會(huì)賽事記錄48 563 條,數(shù)據(jù)中包含運(yùn)動(dòng)員的姓名、性別、年齡、身高、體重、國(guó)家、參與奧運(yùn)會(huì)的年份、參加奧運(yùn)會(huì)的項(xiàng)目、獲獎(jiǎng)情況等信息,然后通過(guò)腳本生成了對(duì)應(yīng)的“提問(wèn)?回答對(duì)”,具體包括:
1)針對(duì)每一條冬奧會(huì)記錄,生成關(guān)于人物、獲獎(jiǎng)時(shí)間、地點(diǎn)、獲獎(jiǎng)項(xiàng)目、獲獎(jiǎng)屆別、所屬參賽隊(duì)、獎(jiǎng)牌情況的單項(xiàng)問(wèn)答句。冬奧會(huì)紀(jì)錄共48 563條,生成單項(xiàng)信息問(wèn)答句共265 757 對(duì)。
2) 關(guān)于運(yùn)動(dòng)員個(gè)人情況的所有單項(xiàng)信息問(wèn)句,如誰(shuí)是男是女?身高多少?體重多少?是哪個(gè)國(guó)家的?獲獎(jiǎng)牌那年多大年齡?參加過(guò)哪屆運(yùn)動(dòng)會(huì)?獲得過(guò)什么獎(jiǎng)牌?這些問(wèn)題還更換了不同的問(wèn)法,比如詢問(wèn)運(yùn)動(dòng)員的國(guó)籍有“運(yùn)動(dòng)員是哪個(gè)國(guó)家的?”和“運(yùn)動(dòng)員來(lái)自哪里?”兩種不同的問(wèn)法。
3)生成2 000 對(duì)復(fù)合統(tǒng)計(jì)問(wèn)答句,如問(wèn)某國(guó)家獲得金牌總數(shù)、銀牌總數(shù)、銅牌總數(shù)是多少?問(wèn)某人獲得金牌總數(shù)、銀牌總數(shù)、銅牌總數(shù)是多少?問(wèn)某一地區(qū)獲得金牌總數(shù)、銀牌總數(shù)、銅牌總數(shù)是多少?問(wèn)冬奧會(huì)舉行過(guò)多少屆?總共產(chǎn)生多少金牌、多少銀牌、多少銅牌?哪個(gè)國(guó)家獲得獎(jiǎng)牌數(shù)最多,哪個(gè)國(guó)家獲得金牌數(shù)最多?哪位運(yùn)動(dòng)員個(gè)人獎(jiǎng)牌數(shù)最多?哪位運(yùn)動(dòng)員個(gè)人金牌數(shù)最多?問(wèn)某個(gè)國(guó)家在某一個(gè)項(xiàng)目上獲獎(jiǎng)成績(jī)是不斷上升還是不斷下降,還是有升有降?
得到的問(wèn)答對(duì)按照9∶1 的比例劃分訓(xùn)練集和測(cè)試集。
考慮到BERT 模型和TDIDF 模型實(shí)現(xiàn)的時(shí)候是在所有可能的句子中尋找“最像”的句子并且輸出其對(duì)應(yīng)的答句,所以生成的答句應(yīng)全包含在訓(xùn)練集中,不會(huì)產(chǎn)生語(yǔ)義相同但表達(dá)方式不同的答句。因此,只需要將答句輸出與正確答句直接進(jìn)行對(duì)比,如果相同則可接受。為了進(jìn)行評(píng)估,在模型實(shí)現(xiàn)后添加對(duì)答句的判斷,輸出可接受率。在此理論基礎(chǔ)上,本文實(shí)現(xiàn)了測(cè)試BERT 模型和TF-IDF 模型實(shí)驗(yàn)結(jié)果的腳本。
對(duì)于知識(shí)圖譜模型,基于標(biāo)注好的問(wèn)答對(duì)來(lái)構(gòu)建知識(shí)圖譜,用其中一部分作為test 和valid 集用于訓(xùn)練。最后用所有問(wèn)答對(duì)來(lái)檢測(cè)知識(shí)圖譜模型的正確率。
實(shí)驗(yàn)的最后結(jié)果統(tǒng)計(jì)如表1 所示,這里分別列出每一類(lèi)問(wèn)答對(duì)的可接受率。
表1 3 種模型對(duì)于3 類(lèi)問(wèn)題的回答可接受率Table 1 Accuracy of three models for three types of questions %
上述實(shí)驗(yàn)結(jié)果表明BERT 模型的整體效果略優(yōu)于知識(shí)圖譜和TD-IDF 模型,BERT 模型對(duì)于3 類(lèi)問(wèn)題的回答可接受率都超過(guò)了96%,知識(shí)圖譜和TD-IDF 模型對(duì)于復(fù)合統(tǒng)計(jì)問(wèn)答對(duì)的回答效果不如BERT 模型。
BERT 模型包含兩個(gè)預(yù)訓(xùn)練任務(wù):遮蓋部分詞的語(yǔ)言模型(masked language modeling)和下一個(gè)句子預(yù)測(cè)(next sentence prediction)。Masked language modeling 預(yù)訓(xùn)練過(guò)程可以看作是完形填空過(guò)程,這個(gè)過(guò)程使得模型在預(yù)測(cè)一個(gè)詞匯時(shí),模型并不知道輸入對(duì)應(yīng)位置的詞匯是不是正確的詞匯,所以模型會(huì)更多地根據(jù)上下文的信息來(lái)預(yù)測(cè)詞匯,并且具有一定的糾錯(cuò)能力;Next sentence prediction 與訓(xùn)練過(guò)程可以看作段落重排過(guò)程,這使得模型能夠更準(zhǔn)確地刻畫(huà)語(yǔ)句的語(yǔ)義信息。BERT 模型的這兩個(gè)預(yù)訓(xùn)練過(guò)程使得模型對(duì)于問(wèn)答對(duì)特征向量的提取能夠做得很優(yōu)秀,提取出的向量都盡可能全面準(zhǔn)確地刻畫(huà)了輸入文本的整體信息。例如,對(duì)于問(wèn)句“Christine Jacoba Aaftink的身高是多少?”和問(wèn)句“Christine Jacoba Aaftink有多高?”,這兩個(gè)問(wèn)句雖然提問(wèn)方式不同,但是使用BERT 模型提取出的特征向量差別很小,也就是說(shuō)BERT 模型對(duì)于提問(wèn)方式的轉(zhuǎn)換能夠處理得不錯(cuò)。再比如對(duì)于問(wèn)句“Christine Jacoba Aaftink參加過(guò)哪一年的冬奧會(huì)?”,BERT 模型會(huì)根據(jù)問(wèn)題中的關(guān)鍵詞:“Christine Jacoba Aaftink”“參加”“年”“冬奧會(huì)”快速提取出正確的3 個(gè)答案:1988冬奧會(huì),1992 冬奧會(huì)和1994 冬奧會(huì)。由于關(guān)鍵詞和特征向量的提取具有代表性,因此對(duì)于3 類(lèi)問(wèn)答對(duì)BERT 模型的實(shí)現(xiàn)可接受率都整體較高。但是BERT 模型在訓(xùn)練中的mask 標(biāo)記也可能會(huì)影響模型表現(xiàn),因?yàn)檫@個(gè)標(biāo)記在實(shí)際預(yù)測(cè)中不會(huì)出現(xiàn),所以對(duì)于個(gè)別問(wèn)題BERT 模型回答的答案可能會(huì)有較大的失誤,甚至出現(xiàn)問(wèn)答不符的現(xiàn)象。另外,BERT 模型結(jié)構(gòu)復(fù)雜,復(fù)現(xiàn)開(kāi)銷(xiāo)較大。
TF-IDF 模型是建立在區(qū)別文檔有意義的詞語(yǔ)出現(xiàn)頻率一定高的假設(shè)上的,但顯然此理論并不是完全正確的,IDF 的簡(jiǎn)單結(jié)構(gòu)并不一定能有效地反映單詞的重要程度以及特征詞的分布情況。因此TF-IDF 模型的精度比較受限,在實(shí)驗(yàn)中基于TF-IDF 的問(wèn)答系統(tǒng)可接受率在很大程度上受限于輸入數(shù)據(jù)的影響。在輸入數(shù)據(jù)集有相似問(wèn)答句時(shí),隨機(jī)算法生成的測(cè)試集與訓(xùn)練集可能有很大部分是重疊的,此時(shí)進(jìn)行測(cè)試時(shí)TF-IDF 模型往往能檢索到訓(xùn)練集中類(lèi)似的問(wèn)句并進(jìn)行正確輸出,可接受率最高可以達(dá)到99.8%。而在沒(méi)有重復(fù)問(wèn)答句的數(shù)據(jù)集中進(jìn)行測(cè)試,訓(xùn)練集與測(cè)試集往往沒(méi)有共性,此時(shí)可接受率較低,是不可接受的。以實(shí)際數(shù)據(jù)集為例:在生成關(guān)于冬奧會(huì)記錄的問(wèn)答對(duì)時(shí),對(duì)于同一語(yǔ)義的問(wèn)題生成了許多替換類(lèi)似表達(dá)法的問(wèn)句,比如對(duì)于“Christine Jacoba Aaftink 的身高是多少厘米?”這個(gè)問(wèn)句進(jìn)行表達(dá)法上的替換,生成了“Christine Jacoba Aaftink的身高是多少?”“Christine Jacoba Aaftink 有多高?”等許多同義問(wèn)句;而這些同義問(wèn)句都對(duì)應(yīng)著同樣的答案,使用這種問(wèn)答對(duì)數(shù)據(jù)進(jìn)行測(cè)試就會(huì)得到較好的效果。反之,在對(duì)于“Christine Jacoba Aaftink 參加過(guò)哪一年的冬奧會(huì)?”這個(gè)問(wèn)題上我們并沒(méi)有進(jìn)行替換表達(dá)法的完善,在這種每個(gè)問(wèn)句語(yǔ)義都獨(dú)立的數(shù)據(jù)集上進(jìn)行測(cè)試,效果就較差。當(dāng)用于訓(xùn)練的數(shù)據(jù)趨于完備時(shí),生成的模型才是可接受的。
相比于上面兩種模型而言,三元組知識(shí)圖譜更加貼近實(shí)際語(yǔ)言的理解,回答方式有更多的調(diào)整空間。比如對(duì)于問(wèn)句“Christine Jacoba Aaftink參加過(guò)哪一年的冬奧會(huì)?”,在知識(shí)圖譜模型中,搜索時(shí)會(huì)分3 次搜索到3 個(gè)實(shí)體:1988 冬奧會(huì),1992 冬奧會(huì),1994 冬奧會(huì)。我們可以在輸出答案的時(shí)候處理為:若識(shí)別到關(guān)系是 Athlete/參加/Game,則返回的答案形如:“Christine Jacoba Aaftink 參加過(guò):”+“1988 冬奧會(huì)”+“1992 冬奧會(huì)”+“1994 冬奧會(huì)”這樣的結(jié)果,更加貼近于理解而不是機(jī)械返回已有答案。另外,三元組知識(shí)圖譜模型對(duì)于同一答案的不同提問(wèn)方式能夠很方便地復(fù)用,例如問(wèn)句“Christine Jacoba Aaftink 的身高是多少?”和“Christine Jacoba Aaftink 有多高?”,這兩個(gè)例子在詢問(wèn)身高。在三元組知識(shí)圖譜模型中,僅需把這兩種問(wèn)法對(duì)應(yīng)一個(gè)relation,就可以復(fù)用同一個(gè)三元組,節(jié)省空間,且能降低不同提問(wèn)方式帶來(lái)的噪聲。但是目前來(lái)看,三元組知識(shí)圖譜仍然不能擺脫人工標(biāo)注數(shù)據(jù)。每個(gè)問(wèn)答對(duì)的實(shí)體,關(guān)系需要人工標(biāo)注。在預(yù)訓(xùn)練時(shí),想復(fù)用同一關(guān)系,需要人工把多個(gè)關(guān)系合并為一個(gè)ID。與之相比,TF-IDF 模型只需要問(wèn)答對(duì)而不需要標(biāo)注,BERT 模型更是想把每一篇文章,作為天生的訓(xùn)練語(yǔ)料,徹底擺脫人工標(biāo)注。而且,三元組知識(shí)圖譜面對(duì)多實(shí)體,多關(guān)系的問(wèn)答對(duì)和推理類(lèi)的問(wèn)答對(duì)回答能力弱。如提問(wèn)形如“xxx 的身高和體重”這樣的問(wèn)題,往往只能搜索到身高或體重。提問(wèn)形如“xxx 在某一屆冬奧會(huì)上是否獲得獎(jiǎng)牌”。盡管知識(shí)圖譜中保存了運(yùn)動(dòng)員獲得獎(jiǎng)品的信息,但很難通過(guò)這些信息推理出答案。
本研究旨在形成冬奧會(huì)信息問(wèn)答系統(tǒng)。我們?cè)诰W(wǎng)上爬取、收集冬奧會(huì)相關(guān)信息,并處理成冬奧問(wèn)答數(shù)據(jù)集。之后基于知識(shí)圖譜、TF-IDF 和BERT 模型分別訓(xùn)練得到3 種問(wèn)答系統(tǒng)。本文在設(shè)計(jì)對(duì)話系統(tǒng)的基礎(chǔ)上,針對(duì)系統(tǒng)回答的可接受度進(jìn)行實(shí)驗(yàn),將自1924 年以來(lái)的冬奧會(huì)數(shù)據(jù)轉(zhuǎn)化為問(wèn)答對(duì)形式,在模型上進(jìn)行訓(xùn)練,驗(yàn)證了這些回答的可接受率,對(duì)比了3 種方法的特點(diǎn)以及適用場(chǎng)景??傮w來(lái)講,BERT 模型的整體效果略優(yōu)于知識(shí)圖譜和TDIDF 模型,BERT 模型對(duì)于3 類(lèi)問(wèn)題的回答可接受率都超過(guò)了96%,知識(shí)圖譜和TD-IDF 模型對(duì)于復(fù)合統(tǒng)計(jì)問(wèn)答對(duì)的回答效果不如BERT 模型。