?

基于企業知識圖譜構建的實體關聯查詢系統

2021-09-18 06:21余敦輝
計算機應用 2021年9期
關鍵詞:關聯度圖譜閾值

余敦輝,萬 鵬,王 社

(1.湖北大學計算機與信息工程學院,武漢 430062;2.湖北省教育信息化工程技術研究中心(湖北大學),武漢 430062;3.武漢城市職業學院計算機與電子信息工程學院,武漢 430061)

(*通信作者電子郵箱369921179@qq.com)

0 引言

伴隨互聯網的迅猛發展,為滿足用戶信息獲取的需求,查詢和搜索系統的應用日趨普及。但是,目前查詢系統大多建立在關系型數據庫的基礎之上,通過用戶輸入的檢索詞返回查詢到的網頁、圖片、音視頻等數據資源。而使用關系型數據庫存儲數據所存在的問題:一是在查詢層面,圖這種數據結構具有強大的語義表達能力,而傳統的關系數據庫在處理“圖”型數據上卻存在著諸多困難,針對表結構數據去做圖結構層面的基于關系、屬性的關聯計算,導致在時間和空間的開銷均比較大;二是存儲層面,關系型數據庫存儲的數據量越大,對查詢速度的影響就越明顯,而且關系型數據庫難以適應有實時性的數據關系;三是在數據展示層面,圖數據庫返回結果是圖結構的知識,不需要額外的數據處理開銷,就可以直接在頁面上做圖形渲染,實現知識圖譜的可視化展示。

因此,考慮到近年來發展迅猛的圖數據庫在存儲關系數據上的優勢,本文從應用角度出發,以實際開發項目——企業信用認證服務平臺為項目背景,分析并設計了基于知識圖譜的外貿企業查詢系統,并在此基礎上提出一種實體關聯的查詢方法。

本文的主要工作如下:

1)針對現有的關系型數據庫數據,設計一種自動化構建方法,根據圖數據存儲規范,生成節點關系映射圖,完成表數據到圖數據的轉換,并實現數據實時更新;

2)提出了一種基于實體關聯的查詢方法,該方法同時考慮實體之間的屬性和關系兩類語義信息,并采用分層過濾模型提高查詢效率,在查詢速度和過濾性能上均有明顯提升。

1 相關工作

在知識圖譜的構建方面,目前國外許多機構都構建了千萬級甚至上億級的大規模知識圖譜,如DBpedia、Freebase、GraphDB、Wikidata、WordNet、Yago 等;與此同時,國內也出現越來越多成熟的知識圖譜產品,從早期上海交通大學構建的zhishi.me 知識庫,到百度的知識圖譜開放平臺、搜狗的知立方、OpenKG中文知識圖譜、Ownthink通用知識圖譜等,越來越多的國內平臺也已經投入到知識圖譜的研究中,為開展知識圖譜的各方面研究提供了數據支持。關于知識圖譜構建的研究[1-2],已經有比較成熟的理論基礎,而目前針對關系型數據庫的表數據構建知識圖譜也有比較成熟的方法,包括本文使用的Neo4j 也有自己的構建工具,但是還無法完全解決數據同步更新的問題。一般來說目前絕大多數商業平臺主要還是以關系數據庫存儲為主,用戶進行操作后,需要將數據更新到圖數據庫中,更新時需要考慮實體鏈接、實體消歧等問題,以及在更新時存在增、刪、改等多種情況,因此結合實際項目的關系型數據庫數據來構建知識圖譜仍然具有很大的研究價值。

在知識圖譜查詢和搜索方面,目前主要研究搜索意圖的理解以及實體搜索兩大方面的內容,通過實體搜索可以發現更多相關實體或展示實體間的屬性和關系。近年來,國內關于知識圖譜相關的研究日益增多,李陽等[3]研究了知識圖譜實體相似度計算的通用方法,為知識圖譜查詢和計算提供了參考依據;王鑫等[4]研究了目前知識圖譜可視化查詢領域主流的方法和技術,為知識圖譜的可視化提供了理論支持;張玲玉等[5]和趙展浩等[6]分別從節點相關系數、圖的拓撲結構兩個方面來實現對圖譜的查詢,雖然在查詢性能上實現了優化,但是查詢時間較長,實時性較差;楊榮等[7]和蘇永浩等[8]設計并實現了知識圖譜查詢系統,但是并沒有發揮圖數據庫的強大的計算能力來進一步改進查詢性能。目前知識圖譜的查詢[9-12]手段主要是以節點相似度[13-18]作為衡量標準,查詢時會將相似度最高的實體作為返回結果,因此加強查詢的語義關聯性是研究重點。

2 系統整體構建流程

本文所實現的企業知識圖譜的實體關聯查詢系統框架如圖1所示,按構建流程順序主要分為以下3個方面:

圖1 系統框架Fig.1 System framework

1)企業知識圖譜的構建:本文主要研究的知識圖譜構建方法是根據圖數據庫的存儲格式標準,定義節點屬性和關系,并建立節點關系映射圖,通過自動化腳本完成傳統關系型數據庫的表數據轉化為圖數據庫的圖數據任務。

2)基于實體關聯的查詢方法:構建好圖數據庫后,基于關聯分析的查詢會查詢數據庫中與目標實體在結構或屬性上相似的圖集合。在本文所實現的企業查詢系統中,將節點相似度作為衡量企業關聯度的一個標準,在此基礎上,為了解決查詢語義程度不高的問題,該方法不僅考慮了節點本身屬性,還考慮了不同節點之間的關聯關系,以此來發掘出與目標企業關聯度最高的多家企業實體。本文實現的關聯查詢方法使用一種改進的相似度相關系數來進行計算,該方法將查詢圖中的特征提取出來,構建特征向量或特征集合,如果特征集合的維度相同,則考慮使用Jaccard、Overlap 等相關系數的計算;如果特征集合的維度不同,則考慮使用Cosine、Pearson等相關系數的計算。通過相關系數公式計算兩個實體之間的相似性之后,再通過動態閾值完成對查詢集合的過濾,就可以得到與目標節點相關聯的查詢結果集。

3)知識圖譜前端可視化展示:本文使用節點鏈接的方法實現圖譜的可視化表達,它將本體表示為互連節點,用點或圓等形狀表示節點,節點間的邊用連線表示,當前端獲取到服務器發送的數據后,會按照圖的數據格式標準,將數據以圖的形式展示出來。同時在Web 端使用數據驅動文檔(Data-Driven Documents,D3)為知識圖譜數據構建力導向圖物理模型,當用戶拖動或者數據變化時,瀏覽器自動進行渲染,實現動態調整數據的排布。

3 系統架構設計與實現

3.1 外貿企業知識圖譜的構建

要使用知識圖譜作企業關聯分析,首先需要構建知識圖譜,本文以平臺中查詢所涉及到的表作為數據源,將傳統關系型數據庫中的表轉化為圖數據庫的圖結構數據。通過Python的pandas 庫來對數據作預處理,使處理過后的數據滿足圖數據庫存儲的格式規范;再通過Python 的py2neo 庫和pymysql庫分別與圖數據庫neo4j 和關系型數據庫mysql 進行連接,建立數據庫通信管道,將數據從關系型數據庫導入到圖數據庫中,最終構建出外貿企業的知識圖譜。

其中企業知識圖譜構建步驟如圖2 所示,具體的構建步驟如下:

圖2 外貿企業知識圖譜構建步驟Fig.2 Steps for constructing knowledge graph of foreign trade enterprise

1)數據預處理:首先將企業信用認證平臺中存儲在關系數據庫中的相關表TB_ENTERPRISEINFO_FUSE(企業信息融合表)和TB_COMPANY_REGISTER(公司注冊信息表)去除掉數據類型為BLOB、CLOB 等非必要字段、敏感字段以及空數據較多的數據行,將數據以逗號分隔值(Comma-Separated Values,CSV)格式導出,最終導出約11萬家外貿企業數據。

2)定義實體和關系,分析表字段之間的關系,根據表字段定義構建的知識圖譜的實體和關系如下:

a)實 體:企業(enterprise)、地區(region)、出口國家(country)、企業類型(enterprise_type)。

b)關系:位于(locate)、出口(export)、類型(type)。

3)數據導入:通過Python 讀取到CSV 格式數據后,根據上述的實體和關系對生成實體關系映射圖,將數據格式化為py2neo 庫中的Node、Relation 類數據,分別作為實體和關系類數據存儲到圖數據庫中,并在本地日志中記錄構建信息。

4)數據同步:以上為通用構建過程,之后程序會根據本地的圖數據庫構建日志信息,判斷是否是第一次構建,是則會進行定時監聽,通過表的時間戳字段和日志的時間比較檢查是否有新的數據,完成數據同步。

最終構建的知識圖譜存儲的節點與關系信息如圖3所示。

圖3 外貿企業圖數據庫查詢界面Fig.3 Foreign trade enterprise graph database query interface

3.2 外貿企業關聯查詢方法

企業關聯查詢從實體本身和實體之間的關聯關系兩個維度去考慮,計算出目標企業實體和待查詢的企業實體之間的實體關聯度和關系關聯度,通過求和公式得到總的關聯度得分,最終根據關聯度得分的高低,篩選出得分最高的K(K>0)家企業作為查詢的結果集,并返回給用戶。

該企業關聯分析總體分4個階段:

1)路徑過濾階段。通過限制節點的公共關系個數將關聯程度較低的節點先過濾出來,用來初步確定與目標企業有一定關聯度的候選集,減少計算量,提高查詢性能。

2)關系發掘階段。根據實體之間的關聯關系計算基于關系的關聯度,同時設定關系閾值T1,將候選集中滿足關系關聯度>T1的查詢實體篩選出來,作為查詢候選集。

3)實體發掘階段。將查詢候選集作為輸入,根據實體的本體標簽計算基于實體的關聯度,同時設定實體閾值T2,對候選集作進一步篩選和過濾。

4)總關聯度排序階段。根據關系關聯度和實體關聯度來對查詢候選集中的實體進行總關聯度計算,按總關聯度得分高低進行排序,將排序后的結果作為查詢結果集。

最終該企業關聯分析計算方法流程如圖4所示。

圖4 關聯分析計算流程Fig.4 Association analysis calculation flow

3.2.1 路徑過濾階段

當圖數據庫存儲到百萬甚至千萬的數據量時,對每一個查詢節點都進行關聯分析會產生巨大的計算消耗,這就會使方法的時間復雜度大大提高,從而導致對企業的關聯分析計算不再適用于對實時性要求比較高的外貿企業查詢系統。所以在企業關聯分析前先通過路徑過濾方法快速過濾,用來初步篩選出一個待查詢集合。

路徑過濾階段通過圖的路徑搜索方法快速找到和查詢節點之間的關系路徑,并計算路徑的個數,則可以得到路徑個數即為兩個不同節點之間總的公共關系個數,并且以公共關系個數作為過濾條件,過濾出查詢候選集。該過濾條件是下一階段關系發掘階段的充要條件,原因有兩點:一是如果無公共關系,則可以近似認為兩實體的關聯度為0;二是如果兩個節點之間的公共關系個數很少,則可以認為兩實體之間的關聯度較低,不在查詢集合范圍之內。如果關聯節點之間滿足至少有N(N>0)條公共關系的節點,則N越大過濾效果越好,以此來保證搜索到的節點能滿足過濾條件。

由上可定義路徑過濾階段的過濾方法如圖5 所示,記目標節點的自身關系個數為self以及與查詢節點的公共路徑個數為U,考慮到不同節點的self和U都不相同,則取U>self/2作為過濾條件。如圖5所示,假設查詢的目標企業節點有3個鄰居節點,則自身關系個數為3,與目標關聯的企業節點的公共路徑個數為2 滿足過濾條件,而非關聯節點的公共路徑個數為1 即不滿足過濾條件。這樣通過路徑搜索過濾就大大減少了待計算的查詢實體,提高方法效率和查詢的實時性。

圖5 路徑過濾階段的過濾方法Fig.5 Filtering method for path filtering stage

3.2.2 實體關系發掘階段

根據企業的外貿出口、所在地區以及企業類型三種關聯關系作為關系發掘的條件。首先設定過濾閾值,若待查詢企業計算出的關系關聯度大于該閾值,則將該企業作為備選結果集中的一個。針對不同種類的關聯關系,所采取的計算方法也不同,在計算關聯度時需要考慮三種關系的權重值。

由上可定義關系發掘的計算方法:將目標企業節點記為q,待查詢企業節點記為g,計算權重表示為wi,兩個節點所對應的關系集合記為Rq和Rg,其中集合中所對應的外貿出口、所在地區以及企業類型三個關聯關系分別為Rq1、Rq2、Rq3和Rg1、Rg2、Rg3。則兩節點的關聯相似度得分可表示為:

在傳統相似度的查詢過濾方法中,一般會定義閾值作為過濾條件,設關系發掘的閾值為T1,那么過濾的不等式就可以表示為sim(q,g) >T1,但是在本系統中考慮到不同節點之間的三種關系總和存在差異,閾值應該不是唯一的,所以定義企業查詢過濾的動態閾值Tdynamic隨節點關系總數n的變化而變化,可以得到公式:

最后,總的過濾不等式就可以表示為:

如果查詢的企業滿足以上過濾條件,就將該查詢企業作為查詢候選集中的一個。

3.2.3 實體屬性發掘階段

經過關系發掘后,再對以上備選結果集中的企業進行本體發掘,根據備選結果集中企業節點的標簽屬性,包括成立時間、注冊資本、注冊地址以及公司名稱一共4 個標簽屬性,其中標簽屬性的數據類型分為數值類型、日期類型、字符串類型,那么根據標簽數據類型分別作不同的關聯度計算,來綜合進行實體關聯度評價,設定實體關聯相似度的閾值為T2,若計算的關聯度小于T2,則將該企業從備選結果集中刪除。

由此可定義本體發掘的計算方法:將目標企業節點記為q,待查詢企業節點記為g,根據實體屬性數據類型,記目標企業節點q數值類型、日期類型、字符串類型的標簽分別為Lnum、Ldate、Lstring;待查詢企業節點g數值類型、日期類型、字符串類型的標簽分別為Lnum'、Ldate'、Lstring'。

則對數值型標簽屬性的關聯相似度得分計算公式可表示為:

對日期型標簽屬性,可以考慮先將日期轉化為時間戳的格式,即當前日期與指定日期所相差的毫秒數,此時日期型標簽屬性就轉化為數值類型值,再通過以上數值型標簽的關聯度計算公式計算得到日期型的關聯度得分Scoredate(q,g)。

對字符串類型標簽屬性,考慮使用萊文斯坦距離進行計算和度量,萊文斯坦是一種文本編輯距離的計算方法,它針對兩個不同文本之間的直接差異程度制定量化規則來進行量測,量測的方式是看至少需要多少次編輯操作才能將其中一個字符串變成另外一個字符串,允許的編輯操作一般包括單個字符的替換、插入和刪除操作。記兩個文本之間的萊文斯坦距離為Distance(Lstring,Lstring'),且該值不等于0,則所有備選結果集中的最小萊文斯坦距離可表示為Min({d:Distance})。最終字符串類型標簽的計算公式可表示為:

綜合上述三種類型的標簽關聯度公式,可以得到總的標簽關聯度公式為:

3.2.4 總關聯度排序階段

在最終的結果集中,結合本體發掘的關聯相似度和關系發掘的關聯相似度,對每個節點計算總得分后再進行排序,獲得最終排序后的結果集,并返回給用戶。

通過企業關聯查詢的整體流程可以發現,關系發掘階段決定了查詢候選集合的大小,在計算總關聯度得分時應占據更大的比重,而本體發掘則只影響查詢候選集的總關聯度得分,所以記關聯度比重分別為α、β(其中α+β=1,且α>β),則總關聯度得分公式可表示為:

3.3 查詢系統的前端可視化實現

知識圖譜的可視化是數據可視化技術中的一個分支,它能夠直觀地將實體之間的關系給展示出來。在系統查詢到關聯數據后,需要利用可視化技術將查詢到的數據顯示到瀏覽器上,目前Web 前端有很多主流的可視化圖形庫,本次前端可視化選用D3 實現,它是一個JavaScript 的函數庫,底層是通過可縮放矢量圖形(Scalable Vector Graphics,SVG)來完成繪圖任務,D3 將有關SVG 繪圖的操作封裝起來,使開發人員可以更好地注重于圖表的布局和邏輯。

知識圖譜是基于節點和鏈接關系的,目前有很多關于知識圖譜的可視化方法,其中力導向圖是節點鏈接可視表達中的一種,通過綁定節點、關系兩類數據來進行渲染,每一個節點數據都會隨機在瀏覽器上某坐標處生成一個圓形,在根據關系數據在兩節點間繪制線段來描述關系,繪制完成后通過模擬兩節點之間的牽引力,在斥力和引力的作用下,節點就從原本的隨機無序布局不斷位移,最后逐漸趨于平衡有序的布局。

根據力導向圖原理,通過D3庫將查詢到的數據進行可視化展示,最終在瀏覽器顯示的外貿企業知識圖譜片段如圖6所示。

圖6 外貿企業知識圖譜前端可視化片段Fig.6 Front-end visualized fragments of knowledge graph of foreign trade enterprises

3.4 系統查詢結果展示

本文實現的外貿企業查詢系統使用了JavaScript 的Node環境完成前后端開發工作,前端采用D3+Ajax 實現數據交互和圖譜的可視化展示工作,后端采用koa2 框架為前端提供數據接口服務,并完成外貿企業的關聯分析計算任務。

該查詢系統是在實際項目的基礎上,針對外貿企業查詢這一功能所實現的Nodejs前后端分離項目。系統整體構建流程如下:

1)確定系統開發技術,包括前后端框架技術選型、圖數據庫存儲、編程環境、開發工具和后臺服務器。

2)完成結構化數據到圖結構數據的轉化以及圖數據庫的構建過程。

3)前后端聯調,實現整體查詢展示功能一體化。

根據構建流程成功運行系統服務之后,用戶在頁面輸入查詢內容時,前端會通過Ajax 向后端請求數據,后端服務器會自動查詢關鍵詞對應的目標企業和與目標企業相關聯的其他企業信息作為結果返回,前端接收數據后將結果展示給用戶。

以查詢玉環某設備有限公司為例,最終后臺查詢結果及前端展示效果如圖7所示。

圖7 查詢結果展示Fig.7 Query result display

4 實驗與結果分析

4.1 系統環境

本文所實現的查詢系統運行的具體硬件環境為:Intel Core i5-8300 CPU@ 2.30 GHz,GeForce GTX 1050 GPU,20 GB RAM,操作系統為Windows 10;具體軟件環境為:開發語言為JavaScript,集成開發環境使用Visual Studio Code 的V1.49.2版本來編寫代碼,后端采用Node 的V12.18.2 版本實現關聯查詢功能,圖數據庫采用Neo4j的3.5.6版本來存儲圖數據。

4.2 實驗結果與分析

本文選用了企業信用認證平臺中約11 萬條外貿企業測試用數據作為實驗樣本,構建了基于Neo4j 的圖數據庫,在此基礎上根據節點自身的關系數來衡量節點的關聯強度,并將企業節點分為弱關聯節點(節點關系數小于10)、中等關聯節點(節點關系數在10~20)、強關聯節點(節點關系數大于20),根據節點分類情況,對每一類節點隨機抽取10 家企業實體做關聯查詢,計算不同參數下的平均過濾性能,并和目前常見的查詢方法比較過濾性能和查詢時間。

圖8 單獨測試了路徑過濾階段隨著查詢節點和候選節點的公共關系N的變化,所得到的過濾結果集大小,由圖8 的實驗數據可以說明,按照一定的公共關系數作為過濾條件,可以過濾掉大部分的無關節點,減少無關節點的計算消耗和時間消耗。

圖8 過濾階段公共關系數對過濾性能的影響Fig.8 Influence of the number of public relations in filtering stage on filtering performance

圖9 單獨測試了關聯查詢中關系發掘階段的過濾性能,在原有的動態閾值T的基礎上,每次變化間隔為0.05,記錄不同的閾值所得到的過濾結果集大小。從圖9 可看出,在動態閾值T附近的過濾性效趨于平穩,并且能夠較好的過濾查詢結果。

圖9 動態閾值的變化對過濾性能的影響Fig.9 Influence of dynamic threshold change on filtering performance

圖10 考慮了關系發掘階段在極端情況下的過濾性能,極端情況指的是查詢節點的公共關系數小于關系類型個數(本實驗有3 類關系:locate、type、region),展示了針對動態閾值和傳統過濾方法中使用靜態閾值過濾的效果比較,可以看到極端情況下使用動態閾值的過濾性能明顯要好于靜態閾值。

圖10 極端情況下不同動靜態閾值的過濾性能對比Fig.10 Comparison of filtering performance of different dynamic and static thresholds under extreme conditions

接下來,將本文系統的關聯查詢和僅單獨使用Jaccard、Overlap 兩種節點相似度計算方法進行對比,測試并比較了三種方法所得到的過濾結果數和查詢時間,結果如圖11~12 所示。橫軸同樣按查詢節點的關系數分為弱關聯節點、中等關聯節點、強關聯節點來比較,圖11指出使用4層過濾的關聯查詢在查詢效率上普遍優于其他方法,同時圖12 指出關聯查詢和Jaccard 查詢的過濾性能要明顯比使用Overlap 計算關聯程度更好,并且由于關聯查詢在本體發掘階段考慮了節點本身的屬性,會重新計算關聯程度,這樣就避免了在某些候選節點的關系關聯度達不到閾值的情況下,使用Jaccard 計算后查詢結果集過少甚至為0的情況。

圖11 不同關聯程度時三種方法查詢時間對比Fig.11 Comparison of query time of three methods in different degrees of relevance

圖12 不同關聯程度時三種方法查詢結果集個數對比Fig.12 Comparison of numbers of query result sets of three methods in different degrees of relevance

最后,為了驗證方法的有效性,將該關聯查詢方法分別運行在關系數據庫和圖數據庫上,同時選取基于鄰居向量的Ness[19]方法和基于標簽相似度的NeMa[20]兩種代表性的圖匹配查詢方法與實體關聯查詢方法做性能對比,實驗結果如圖13~14所示。Ness 方法采用迭代驗證,先進行標簽匹配,再計算查詢節點與目標節點的匹配開銷;NeMa方法結合了節點標簽和鄰居結構計算相似度,來匹配相似節點。由于本文圖譜的節點沒有二路鄰居,所以兩個基準方法均以一路的鄰居節點來進行實驗。實驗結果表明,關聯查詢方法并不適用在關系數據庫上,在過濾性能相同的情況下,查詢的時間開銷較大,不適合應用在實時性要求較高的查詢系統。在與兩種基準方法的對比下,雖然查詢關系數少節點的查詢效率高于兩種基準方法,但是由于極端情況下關系數多的查詢節點對標簽信息的計算增加,導致關聯查詢對強關聯節點的查詢時間要明顯優于兩種基準方法,最終查詢時間相較于兩種基準方法平均降低了28.5%;同時由于關聯查詢結合了屬性和關系信息,其過濾性能在三種類型的節點上均優于兩種基準方法,平均提高了29.6%。綜合以上兩點可以得出,采用四個階段的關聯查詢不僅有更快的查詢響應速度,而且查詢的過濾性能也更強。

圖13 不同關聯程度時方法查詢時間對比Fig.13 Comparison of query time of methods in different degrees of relevance

圖14 不同關聯程度時方法查詢結果集個數對比Fig.14 Comparison of numbers of query result sets of methods in different degrees of relevance

5 結語

本文在知識圖譜查詢問題的研究中,以實際項目——外貿企業信用認證服務平臺為背景,首先基于現有的關系型數據庫數據構建企業知識圖譜,然后提出了針對企業實體的關聯查詢方法,實現發掘與目標企業相關聯其他企業的功能,可以為企業提供更多有價值的信息,促進企業之間的貿易與合作。

通過實驗數據對比,驗證了本文提出的查詢方法在過濾性能和查詢效率上均優于傳統圖查詢方法。未來本文將進一步考慮加入更多的實體屬性和關系來完善企業信息,降低數據噪聲,并在原有查詢的基礎上加入更多的特征,提高查詢的準確性。

猜你喜歡
關聯度圖譜閾值
基于熵值法與灰色關聯度分析法的羽毛球技戰術綜合評價分析
基于熵權TOPSIS法和灰色關聯度分析的藤茶藥材等級研究
基于圖對比注意力網絡的知識圖譜補全
改進的軟硬閾值法及其在地震數據降噪中的研究
土石壩壩體失穩破壞降水閾值的確定方法
基于小波變換閾值去噪算法的改進
改進小波閾值對熱泵電機振動信號的去噪研究
中國制造業產業關聯度分析
中國制造業產業關聯度分析
圖表
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合