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