高鳳寧, 高祥濤, 曹 帥, 朱向榮, 司存友, 胡 偉
(1.南京大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)系, 江蘇 南京 210023; 2.江蘇省水文水資源勘測(cè)局, 江蘇 南京 210029)
隨著科學(xué)技術(shù)的發(fā)展,大數(shù)據(jù)在各個(gè)領(lǐng)域都引起人們的高度重視并得到了廣泛應(yīng)用,為人們獲得更為深刻、全面的洞察能力提供了前所未有的空間與潛力。伴隨大數(shù)據(jù)時(shí)代的到來,大數(shù)據(jù)成為推動(dòng)數(shù)字經(jīng)濟(jì)發(fā)展的關(guān)鍵生產(chǎn)要素,成為建設(shè)數(shù)字中國的關(guān)鍵創(chuàng)新動(dòng)力,同時(shí)也成為重塑國家競爭優(yōu)勢(shì)的重大發(fā)展機(jī)遇。2017年我國水利部正式印發(fā)《關(guān)于推進(jìn)水利大數(shù)據(jù)發(fā)展的指導(dǎo)意見》,該意見是水利部深入貫徹黨中央提出的國家大數(shù)據(jù)戰(zhàn)略、國務(wù)院《促進(jìn)大數(shù)據(jù)發(fā)展行動(dòng)綱要》等系列決策部署的重要舉措,旨在水利行業(yè)推進(jìn)數(shù)據(jù)資源共享開放,促進(jìn)水利大數(shù)據(jù)發(fā)展與創(chuàng)新應(yīng)用。
現(xiàn)有的水利信息化工作仍存在標(biāo)準(zhǔn)化和規(guī)范化相對(duì)滯后、普及程度較低、發(fā)展水平較低等問題[1]。知識(shí)圖譜是一種新型的知識(shí)表示方法和數(shù)據(jù)管理模式。國務(wù)院《新一代人工智能發(fā)展規(guī)劃》中明確將知識(shí)圖譜列為新一代人工智能關(guān)鍵共性技術(shù)。知識(shí)圖譜將領(lǐng)域中的異構(gòu)知識(shí)結(jié)構(gòu)化,構(gòu)建起知識(shí)間的關(guān)聯(lián),結(jié)合大數(shù)據(jù)與深度學(xué)習(xí),已成為推動(dòng)互聯(lián)網(wǎng)和人工智能發(fā)展的核心驅(qū)動(dòng)力之一,對(duì)于水利信息的組織管理和智能應(yīng)用也具有重要價(jià)值。
為了更好地發(fā)揮知識(shí)圖譜在信息組織與管理方面的作用[2],加強(qiáng)對(duì)水利資源的整合與利用,本文采用關(guān)系數(shù)據(jù)庫轉(zhuǎn)RDF(Databases to RDF,D2R)技術(shù)構(gòu)建了面向水利領(lǐng)域的知識(shí)圖譜,并設(shè)計(jì)實(shí)現(xiàn)了基于字符串相似度結(jié)合詞嵌入(word embedding)的余弦相似度的屬性相似度計(jì)算算法,實(shí)現(xiàn)了水利知識(shí)圖譜的融合,并在此基礎(chǔ)上搭建了基于水利知識(shí)圖譜的網(wǎng)頁端智能搜索應(yīng)用。
伴隨著知識(shí)圖譜的不斷演變與發(fā)展,面向特定領(lǐng)域的知識(shí)圖譜在現(xiàn)階段獲得了廣泛應(yīng)用。針對(duì)結(jié)構(gòu)化的關(guān)系型數(shù)據(jù)庫,采用關(guān)系數(shù)據(jù)庫轉(zhuǎn)RDF(Databases to RDF,D2R)技術(shù)構(gòu)建了面向水利領(lǐng)域的知識(shí)圖譜,并進(jìn)行可視化展示。
知識(shí)圖譜是知識(shí)工程在大數(shù)據(jù)環(huán)境中的成功應(yīng)用,知識(shí)工程作為人工智能領(lǐng)域的一個(gè)重要分支,經(jīng)歷了很長時(shí)間的演變和發(fā)展歷史。
萬維網(wǎng)之父Tim Berners-Lee于1998年提出語義網(wǎng)(Semantic Web)的概念,于2001年正式發(fā)表相關(guān)論文[3],由此揭開了世界范圍內(nèi)語義網(wǎng)研究的序幕。從2006年開始,大規(guī)模結(jié)構(gòu)知識(shí)資源的出現(xiàn)和網(wǎng)絡(luò)規(guī)模信息提取方法的進(jìn)步,使得大規(guī)模知識(shí)獲取實(shí)現(xiàn)了自動(dòng)化,并且在網(wǎng)絡(luò)規(guī)模下運(yùn)行。大規(guī)模的知識(shí)圖譜不斷涌現(xiàn),并逐漸在大型行業(yè)和領(lǐng)域中正得到廣泛的運(yùn)用。例如2012年由谷歌推出的知識(shí)圖譜、Facebook圖譜搜索,以及微軟Satori等,已成為驅(qū)動(dòng)語義搜索、機(jī)器問答、智能推薦的強(qiáng)大動(dòng)力引擎。
現(xiàn)階段知識(shí)圖譜的發(fā)展和應(yīng)用,除了通用的大規(guī)模知識(shí)圖譜,例如DBpedia[4]、YAGO[5]和Wikidata[6]等,各行業(yè)領(lǐng)域如商業(yè)、金融、生命科學(xué)等也在建立領(lǐng)域相關(guān)的知識(shí)圖譜,并且廣泛應(yīng)用,在智能客服、商業(yè)智能等真實(shí)場(chǎng)景體現(xiàn)出巨大的應(yīng)用價(jià)值,而更多知識(shí)圖譜的創(chuàng)新應(yīng)用仍有待開發(fā)。
知識(shí)圖譜,可以理解為一張由知識(shí)點(diǎn)相互連接而成的語義網(wǎng)絡(luò),具有很強(qiáng)的描述能力,可以用來更好的查詢復(fù)雜關(guān)聯(lián)信息,從語義層面理解用戶意圖,改進(jìn)搜索質(zhì)量。知識(shí)圖譜以三元組
本文構(gòu)建的水利知識(shí)圖譜,數(shù)據(jù)來源于江蘇省水利云平臺(tái),目前采用關(guān)系型數(shù)據(jù)庫存儲(chǔ)管理。如表1所示,字段代表不同屬性,后面六列為屬性的描述,包括一級(jí)分類、二級(jí)分類、三級(jí)分類、單位、數(shù)據(jù)庫(實(shí)例名)和表中文名(表英文名)。不難看出,數(shù)據(jù)的結(jié)構(gòu)化程度很高,是典型的關(guān)系型數(shù)據(jù)庫。
表1 來源數(shù)據(jù)樣例
要將關(guān)系型數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)為RDF模型[7],相關(guān)工作考慮將關(guān)系數(shù)據(jù)庫模式與本體進(jìn)行映射[8],本文采用更輕量級(jí)的D2R(Database-to-RDF)技術(shù)[9],將關(guān)系型數(shù)據(jù)庫發(fā)布為知識(shí)圖譜。D2R主要包括D2R 服務(wù)器,D2R查詢引擎以及D2R查詢映射語言。D2R的主要框架如圖1所示。
圖1 D2R主要框架
D2R查詢映射的主要功能是定義將關(guān)系型數(shù)據(jù)轉(zhuǎn)換成RDF模型的映射規(guī)則。首先利用D2R提供的查詢映射語言,根據(jù)表格型的水利數(shù)據(jù)生成預(yù)定義的映射文件。然后針對(duì)數(shù)據(jù)特點(diǎn),對(duì)映射文件進(jìn)行修改,將數(shù)據(jù)映射到本體上去。主要有以下2種映射規(guī)則:數(shù)據(jù)庫的層級(jí)信息描述作為本體中不同的類;數(shù)據(jù)庫中的字段作為屬性。
得到本體之后,可以對(duì)本體中的數(shù)據(jù)進(jìn)行查詢。D2R 服務(wù)器提供了對(duì)RDF數(shù)據(jù)進(jìn)行查詢?cè)L問的接口,以供上層的 RDF瀏覽器、SPARQL查詢[10]客戶端以及傳統(tǒng)的HTML瀏覽器等調(diào)用。
通過構(gòu)建SPARQL查詢語句,D2R查詢引擎將RDF數(shù)據(jù)的查詢語言SPARQL轉(zhuǎn)換為關(guān)系型數(shù)據(jù)庫數(shù)據(jù)的查詢語言SQL,并將SQL查詢結(jié)果轉(zhuǎn)換為RDF三元組或者SPARQL查詢結(jié)果,以此實(shí)現(xiàn)整個(gè)查詢的流程。
本文將建成的水利知識(shí)圖譜進(jìn)行了處理,組織成了圖的表示形式,并可視化展示。首先對(duì)關(guān)系數(shù)據(jù)中的字段名和描述進(jìn)行了預(yù)處理,刪除了不相關(guān)的序列號(hào)以及日期,同時(shí)對(duì)雙引號(hào)、空格、制表符等字符進(jìn)行了處理。然后將關(guān)系數(shù)據(jù)中的各個(gè)屬性字段與其對(duì)應(yīng)的屬性值,以(key, value)鍵值對(duì)的形式存儲(chǔ),再轉(zhuǎn)化成有向圖的表示形式。有向圖含有17 329個(gè)節(jié)點(diǎn)與34 713條邊,包含了水利數(shù)據(jù)中的關(guān)聯(lián)路徑信息。為了便于直觀展示,圖2中僅展示了前5級(jí)關(guān)聯(lián)路徑所構(gòu)成的有向圖。
知識(shí)圖譜中通常有多種不同來源的數(shù)據(jù),每種來源的數(shù)據(jù)的管理組織方式也各不相同,這形成了知識(shí)的多源異構(gòu)性。因此,知識(shí)圖譜的構(gòu)建,通常伴隨知識(shí)融合[11]。知識(shí)融合,就是將來自多個(gè)來源的關(guān)于同一個(gè)實(shí)體或概念的描述信息融合起來。知識(shí)融合一般包括實(shí)體層面(數(shù)據(jù)層面)和本體層面(概念層面)的融合。不同的知識(shí)圖譜,收集知識(shí)的側(cè)重點(diǎn)不同,對(duì)于同一個(gè)實(shí)體,有的知識(shí)圖譜可能側(cè)重于其本身某個(gè)方面的描述,有的知識(shí)圖譜可能側(cè)重于描述實(shí)體與其他實(shí)體的關(guān)系。實(shí)體層面的融合,主要是將不同知識(shí)圖譜中的實(shí)體進(jìn)行對(duì)齊,找出等價(jià)實(shí)體。本體層面的融合,主要是找出等價(jià)或?yàn)榘P(guān)系的概念或者屬性。知識(shí)融合過程主要采用相似度計(jì)算、聚類、表示學(xué)習(xí)等技術(shù)實(shí)現(xiàn)。
針對(duì)所用數(shù)據(jù)結(jié)構(gòu)化程度高、規(guī)范化程度高的特點(diǎn),本文設(shè)計(jì)了一種查找水利知識(shí)圖譜本體層面的相似屬性的算法,針對(duì)知識(shí)圖譜本體層面中的每一個(gè)屬性,分別求該屬性和其他屬性的中文字段的字符串相似度score1和英文字段的字符串相似度score2,并賦予相應(yīng)的權(quán)重α和β,用以計(jì)算最終的相似度得分。屬性中英文字段的字符串相似度,使用Python標(biāo)準(zhǔn)庫difflib提供的SequenceMatcher進(jìn)行計(jì)算。
為了結(jié)合屬性本身的語義信息,考慮利用word2vec[12]詞嵌入(word embedding)模型。為了將文本表示的數(shù)據(jù)轉(zhuǎn)化為計(jì)算機(jī)可理解和計(jì)算的形式,一般采用one-hot編碼的方法將文本轉(zhuǎn)為詞嵌入。但是one-hot編碼一般較為稀疏,占用較大的存儲(chǔ)空間,而且詞與詞之間的向量是正交關(guān)系,沒有任何語義關(guān)聯(lián)。為了克服這一缺點(diǎn),充分結(jié)合屬性之間的語義信息,word2vec使用一層神經(jīng)網(wǎng)絡(luò)將one-hot編碼映射到分布式形式的詞嵌入。
Word2vec有2種訓(xùn)練詞向量的方式:CBOW和Skip-Gram。CBOW模型是通過上下文的內(nèi)容預(yù)測(cè)中間的目標(biāo)詞,而Skip-Gram則相反,通過目標(biāo)詞預(yù)測(cè)其上下文的詞,兩者互為鏡像。通過最大化詞出現(xiàn)的概率,訓(xùn)練模型可得到各個(gè)層之間的權(quán)重矩陣, 詞嵌入就是從這個(gè)權(quán)重矩陣?yán)锩娴脕淼?。本文?shí)驗(yàn)中用到的是CBOW模型,其模型結(jié)構(gòu)如圖3所示。
圖3 CBOW模型
CBOW模型的輸入層是由one-hot編碼的輸入上下文{x1,…,xC}組成,其中窗口大小為C,詞匯表大小為V,隱藏層是N維的向量,最后輸出層是也被one-hot編碼的輸出單詞y。被one-hot編碼的輸入向量通過一個(gè)V×N維的權(quán)重矩陣W連接到隱藏層,隱藏層通過一個(gè)N×V維的權(quán)重矩陣W′連接到輸出層。
假設(shè)知道輸入與輸出權(quán)重矩陣的大小,第一步就是計(jì)算隱藏層h的輸出,該輸出就是輸入向量的加權(quán)平均:
(1)
第二步就是計(jì)算在輸出層每個(gè)結(jié)點(diǎn)的輸入:
(2)
最后計(jì)算輸出層的輸出yj:
(3)
權(quán)重矩陣W與W′可以通過反向傳播算法以及隨機(jī)梯度下降來學(xué)習(xí)。首先給這些權(quán)重賦一個(gè)值進(jìn)行初始化,然后按序訓(xùn)練樣本,逐個(gè)觀察輸出與真實(shí)值之間的誤差,并計(jì)算這些誤差的梯度,在梯度方向糾正權(quán)重矩陣。
得到屬性字段的詞嵌入向量表示以后,用余弦相似度計(jì)算向量間的距離,代表兩個(gè)屬性之間的語義相似程度,并賦予權(quán)重1-α-β,結(jié)合上文的中文字段的字符串相似度score1和英文字段的字符串相似度score2,得到最終的相似度得分,公式如下所示。
score=α·score1+β·score2+
(1-α-β)·score3
(4)
式中,score1代表屬性中文字段的相似度,score2代表屬性英文字段的相似度,score3代表詞嵌入的距離。
算法1 查找屬性p的top-k個(gè)相似屬性 輸入:水利知識(shí)圖譜 ?,屬性p,權(quán)重α,β,參數(shù)k,閾值threshold 輸出:屬性p的top-k個(gè)相似度大于閾值threshold的相似屬性1 對(duì) ?中的每一個(gè)其他的屬性p':2 計(jì)算屬性中文字段的相似度score1;3 計(jì)算屬性英文字段的相似度score2;4 計(jì)算屬性的詞嵌入之間的余弦相似度score3;5 屬性之間的相似度score=α·score1+β·score2+1-α-β ·score3;6 score_list.append(score);7 result=score_list.sort(k,threshold);/*找出top-k個(gè)相似度大于閾值的相似屬性*/8 returnresult;
算法1給出了計(jì)算屬性相似度的算法。低維向量之間的距離,采用余弦相似度進(jìn)行計(jì)算。幾何中夾角余弦可用來衡量兩個(gè)向量方向的差異,機(jī)器學(xué)習(xí)中借用這一概念來衡量樣本向量之間的相似程度。假定A和B是兩個(gè)n維向量,A為A(A1,A2,…,An),B為B(B1,B2,…,Bn),則A與B的余弦相似度為
(5)
余弦值的范圍在[-1,1]之間,值越趨近于1,代表兩個(gè)向量的方向越接近,語義相似度也就越高;越趨近于-1,它們的方向越相反,語義相似度也就越低;接近于0,表示2個(gè)向量近乎于正交。
設(shè)置不同權(quán)重α和β時(shí),本文充分結(jié)合數(shù)據(jù)本身特定,觀察到數(shù)據(jù)中的屬性字段,其中文字段的相似度在較大程度上會(huì)決定屬性的相似程度,英文字段的決定作用次之,語義層面的作用再次,因此,將α初始化為一個(gè)較大的權(quán)重,使得不同權(quán)重之間滿足:
α>β>1-α-β
(6)
然后通過實(shí)驗(yàn),對(duì)上述權(quán)重進(jìn)行微調(diào),得到合適的權(quán)重取值。最終設(shè)置α=0.6,β=0.3,該權(quán)重能在數(shù)據(jù)集上取得較好的實(shí)驗(yàn)效果。
基于知識(shí)融合的水利知識(shí)圖譜,在網(wǎng)頁端設(shè)計(jì)實(shí)現(xiàn)智能搜索應(yīng)用,更好地利用屬性之間的關(guān)聯(lián)關(guān)系,達(dá)到搜索人員的搜索意圖。通過用戶打分實(shí)驗(yàn),驗(yàn)證了智能搜索應(yīng)用具有良好的可用性。
為降低水利專業(yè)從業(yè)人員的檢索難度,加深用戶對(duì)特定水利本體的了解程度,充分利用屬性之間的關(guān)聯(lián)關(guān)系,本文設(shè)計(jì)并實(shí)現(xiàn)了基于水利知識(shí)圖譜的智能搜索應(yīng)用[13],以網(wǎng)頁的形式訪問。智能搜索應(yīng)用的網(wǎng)頁采用Java語言開發(fā),采用的是Spring Boot框架。圖4展示了智能搜索應(yīng)用的結(jié)構(gòu)框架。
圖4 智能搜索應(yīng)用結(jié)構(gòu)框架
用戶可登錄網(wǎng)頁,打開智能搜索引擎,在搜索框輸入意向詞條,根據(jù)智能詞條提示選擇知識(shí)圖譜中真實(shí)存在的相應(yīng)屬性,查詢其相似屬性。查詢結(jié)果以列表形式返回,根據(jù)屬性相似度從高到低排列,供用戶參考。另外,本文還將相似屬性的詞向量在低維空間中進(jìn)行了展示,可以更直接地反映相似屬性之間的語義相似情況,給用戶提供更直觀的感受。
例如,用戶可以在搜索框輸入詞條“降水量”,智能詞條提示就會(huì)顯示知識(shí)圖譜中與該屬性相對(duì)應(yīng)的真實(shí)存在的屬性詞條,用戶可以選擇對(duì)應(yīng)的詞條。假設(shè)選擇詞條“降水量(P)”,然后點(diǎn)擊查詢按鈕,即可查詢?cè)搶傩缘南嗨茖傩浴|c(diǎn)擊圖示按鈕,還可以查看詞嵌入的詞向量在三維空間中的具體分布情況。
圖5展示了三維空間中詞嵌入的分布情況??梢钥闯觯c屬性詞條的語義更接近的其他屬性,在方向上會(huì)與代表屬性詞條的詞向量更接近,同時(shí)計(jì)算出的余弦相似度也會(huì)更近。
圖5 三維空間中的詞嵌入
為了對(duì)開發(fā)的智能搜索應(yīng)用軟件的可用性進(jìn)行評(píng)估,本文設(shè)計(jì)了用戶打分實(shí)驗(yàn),以便深入了解開發(fā)的智能搜索應(yīng)用軟件對(duì)具有不同專業(yè)背景的用戶而言其可用性的情況。
系統(tǒng)可用性量表(System Usability Scale, SUS)[14]是一種用于可用性檢測(cè)的建議問卷調(diào)查量表,能很好地評(píng)估產(chǎn)品在特定使用環(huán)境下為特定用戶用于特定用途時(shí)的有效性、效率和用戶主觀滿意度。本文實(shí)驗(yàn)中邀請(qǐng)了具有不同專業(yè)背景的30名志愿者參與測(cè)評(píng),其中有5名水利領(lǐng)域的從業(yè)人員,10名知識(shí)圖譜相關(guān)背景的學(xué)生(包括4名本科生和6名研究生)和15名不具備知識(shí)圖譜相關(guān)背景的其他專業(yè)的學(xué)生,以保證用戶的背景多樣性和實(shí)驗(yàn)結(jié)果的公平性。
打分實(shí)驗(yàn)采用30位志愿者的平均分作為最終的實(shí)驗(yàn)得分,SUS平均分為87.88,中位數(shù)為88,方差為8.28,這表明本文開發(fā)的智能搜索應(yīng)用軟件具有較好的可用性。
本文通過構(gòu)建水利知識(shí)圖譜,設(shè)計(jì)相似屬性查找算法,充分結(jié)合數(shù)據(jù)特點(diǎn)以及數(shù)據(jù)潛在的語義信息,實(shí)現(xiàn)了本體層面的知識(shí)融合。基于融合后的水利知識(shí)圖譜,本文開發(fā)了網(wǎng)頁端的智能搜索應(yīng)用,可以搜索相似屬性,降低了水利領(lǐng)域從業(yè)人員的檢索難度,并進(jìn)行了三維空間上詞嵌入的可視化展示,更加直觀地增強(qiáng)對(duì)水利領(lǐng)域相關(guān)本體的理解。
未來計(jì)劃嘗試對(duì)水利知識(shí)圖譜中的實(shí)體進(jìn)行匹配,進(jìn)一步提升水利知識(shí)圖譜的融合程度,更好地挖掘相關(guān)水利知識(shí)的潛在語義信息,對(duì)水利領(lǐng)域的數(shù)據(jù)存儲(chǔ)管理具有良好的應(yīng)用價(jià)值。