曹皓偉 徐建良 竇方坤
摘? 要: 人類積累了大量的生物醫(yī)藥科研數(shù)據(jù),這些數(shù)據(jù)以不同的形式存放在不同的數(shù)據(jù)源中,而數(shù)據(jù)的組織形式?jīng)Q定了數(shù)據(jù)的使用價(jià)值。為了使數(shù)據(jù)發(fā)揮更大的價(jià)值,將多源異構(gòu)數(shù)據(jù)應(yīng)用于知識(shí)挖掘與發(fā)現(xiàn),深入研究和改進(jìn)了知識(shí)融合等知識(shí)圖譜的構(gòu)建技術(shù),使用Neo4j圖形數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存儲(chǔ),構(gòu)建了生物醫(yī)藥領(lǐng)域的大規(guī)模知識(shí)圖譜。知識(shí)圖譜的構(gòu)建可為后期的知識(shí)挖掘與知識(shí)圖譜的應(yīng)用作支撐。
關(guān)鍵詞: Neo4j; 圖數(shù)據(jù)庫(kù); 生物醫(yī)藥; 知識(shí)圖譜構(gòu)建; 數(shù)據(jù)融合
中圖分類號(hào):TP399? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-8228(2020)06-35-04
Abstract: Human beings have accumulated a large number of biomedical research data, which are stored in different forms in different sources. The organization of the data determines the use value of the data. In order to make the data play a greater value, the multi-source heterogeneous data is applied to knowledge mining and discovery. The construction technologies of knowledge graph such as knowledge fusion are deeply studied and improved in this paper, and Neo4j graph database is used for data storage to construct a large-scale knowledge graph in the field of biomedicine, which can support knowledge mining and other applications later.
Key words: Neo4j; knowledge graph; biomedicine; knowledge graph construction; data fusion
0 引言
2012年Google公司提出知識(shí)圖譜的概念,目的是加強(qiáng)智能搜索[1],概念提出后備受關(guān)注,自此各大公司與科研機(jī)構(gòu)先后推出面向各行業(yè)各領(lǐng)域的知識(shí)圖譜。目前知識(shí)圖譜已被廣泛應(yīng)用于電商、金融、醫(yī)學(xué)等領(lǐng)域,在智能搜索、反欺詐、智能決策和智能問(wèn)答等方面發(fā)揮著重要的作用[2]。
1 研究現(xiàn)狀
1.1 知識(shí)圖譜的定義
知識(shí)圖譜基于圖的數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ),是語(yǔ)義網(wǎng)絡(luò)的技術(shù)之一,知識(shí)圖譜由head、relationship、tail三元組構(gòu)成[3],可以表示為G={H,R,T},其中H={h1,h2,…h(huán)|n|}代表了知識(shí)圖譜中實(shí)體的集合,R代表了知識(shí)圖譜中所有關(guān)系的集合,T屬于H×R×H,代表了知識(shí)圖譜中的三元組集合,三元組集合的基本表示形式包括{實(shí)體A,關(guān)系,實(shí)體B},如化合物A對(duì)蛋白質(zhì)B具有活性、{實(shí)體,包含,屬性},如化合物具有相對(duì)分子質(zhì)量的屬性,{屬性、屬性的值、值},如相對(duì)分子質(zhì)量是124.5g/mol等。知識(shí)圖譜在本質(zhì)上表示了實(shí)體之間的語(yǔ)義關(guān)系,是對(duì)現(xiàn)實(shí)世界中事物和關(guān)聯(lián)的描述。
1.2 知識(shí)圖譜的分類
按照面向領(lǐng)域的不同,識(shí)圖譜可以分為開(kāi)放鏈接知識(shí)圖譜和垂直行業(yè)知識(shí)圖譜[3]。開(kāi)放鏈接知識(shí)圖譜不面向特定領(lǐng)域,具有一定的普適性。例如基于維基百科的Wikidata[4]等;垂直行業(yè)知識(shí)圖譜面向某個(gè)具體領(lǐng)域,具有一定的專業(yè)性,如GeoNames[5]等。
1.3 知識(shí)圖譜的構(gòu)建
知識(shí)圖譜的構(gòu)建方式分為自頂向下、自底向上和混合方式三種。自頂向下的構(gòu)建方式是在知識(shí)圖譜構(gòu)建的初期先構(gòu)建知識(shí)圖譜的本體或模式層,預(yù)先定義知識(shí)圖譜的組織結(jié)構(gòu)。自底向上的構(gòu)建方式在初期沒(méi)有預(yù)定義的組織結(jié)構(gòu)而是從數(shù)據(jù)源的模式層中不斷的提取更新概念和概念之間的組織結(jié)構(gòu),通過(guò)數(shù)據(jù)層來(lái)指導(dǎo)模式層的構(gòu)建。自頂向下與自底向上混合的構(gòu)建方式是在初期有預(yù)定義的本體或模式層,同時(shí)隨著數(shù)據(jù)源的加入,數(shù)據(jù)源的組織結(jié)構(gòu)可以對(duì)知識(shí)圖譜模式層進(jìn)行更新改進(jìn),從而使知識(shí)圖譜更加完善和可靠。
知識(shí)圖譜構(gòu)建的關(guān)鍵技術(shù)主要包括數(shù)據(jù)獲取、知識(shí)抽取、知識(shí)融合、知識(shí)計(jì)算和知識(shí)應(yīng)用,如圖1所示。
數(shù)據(jù)獲取:是前期對(duì)數(shù)據(jù)的準(zhǔn)備,即對(duì)知識(shí)圖譜所在的領(lǐng)域數(shù)據(jù)的獲取,這些數(shù)據(jù)包括結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)與非結(jié)構(gòu)化數(shù)據(jù)。
知識(shí)抽?。褐R(shí)抽取也叫信息抽取,是一種通過(guò)自動(dòng)化的方式從半結(jié)構(gòu)化或非結(jié)構(gòu)化的數(shù)據(jù)中抽取實(shí)體、關(guān)系、屬性信息的技術(shù)。在早期知識(shí)抽取主要通過(guò)啟發(fā)式算法與規(guī)則相結(jié)合的方式來(lái)實(shí)現(xiàn),現(xiàn)在常用的方法有借助本體與詞匯集,借助多層神經(jīng)網(wǎng)絡(luò)和自然語(yǔ)言處理等。
知識(shí)融合:知識(shí)融合主要是對(duì)概念實(shí)體進(jìn)行鏈接,來(lái)自不同數(shù)據(jù)源的概念可能在含義、指代粒度上有所不同,存在的問(wèn)題主要有:①命名相同概念可能指代不同的實(shí)體;②命名不同的概念可能指代相同的實(shí)體;③概念指代的粒度不同。為了解決以上問(wèn)題,常使用基于本體或神經(jīng)網(wǎng)絡(luò)的相似性打分函等方法進(jìn)行知識(shí)融合。
知識(shí)計(jì)算:知識(shí)計(jì)算主要包括知識(shí)推理、置信度檢查、子圖匹配、本體推理、知識(shí)挖掘等幾部分,是知識(shí)圖譜用于智能計(jì)算和推理的基礎(chǔ)。
知識(shí)應(yīng)用:主要指基于知識(shí)圖譜開(kāi)發(fā)應(yīng)用,例如基于知識(shí)圖譜實(shí)現(xiàn)問(wèn)答系統(tǒng)、專家系統(tǒng)、推薦系統(tǒng)等。
1.4 知識(shí)圖譜的存儲(chǔ)
目前知識(shí)圖譜有多種存儲(chǔ)方案,基于disk或mainmemory的原生數(shù)據(jù)庫(kù)、基于關(guān)系型數(shù)據(jù)庫(kù)、基于非關(guān)系型數(shù)據(jù)庫(kù)。因?yàn)榛趫D形的存儲(chǔ)結(jié)構(gòu)更有利于發(fā)現(xiàn)實(shí)體之間潛在的關(guān)系,所以本文使用非關(guān)系型數(shù)據(jù)庫(kù)中的圖形數(shù)據(jù)庫(kù)存儲(chǔ)知識(shí)圖譜。將知識(shí)圖譜存入圖數(shù)據(jù)庫(kù),是將知識(shí)圖譜的實(shí)體存為圖數(shù)據(jù)庫(kù)中的節(jié)點(diǎn),而實(shí)體間的關(guān)系存為連接各個(gè)節(jié)點(diǎn)的邊[6]。目前主流的圖數(shù)據(jù)庫(kù)有美國(guó)Neo technology機(jī)構(gòu)開(kāi)發(fā)的Neo4j數(shù)據(jù)庫(kù)、微軟公司開(kāi)發(fā)的GraphEngine數(shù)據(jù)庫(kù)、北京大學(xué)開(kāi)發(fā)的gstore數(shù)據(jù)庫(kù)[7]等等。其中目前最常用的圖數(shù)據(jù)庫(kù)是Neo4j,它是一個(gè)成熟的高性能圖引擎,同時(shí)支持分布式,Neo4j圖數(shù)據(jù)庫(kù)對(duì)Java平臺(tái)具有很好的兼容性,有利于后期的工程開(kāi)發(fā)。綜合以上優(yōu)勢(shì),本文使用Neo4j圖數(shù)據(jù)庫(kù)對(duì)知識(shí)圖譜進(jìn)行存儲(chǔ)。
2 生物醫(yī)藥知識(shí)圖譜的構(gòu)建
生物醫(yī)藥知識(shí)圖譜的構(gòu)建主要包括數(shù)據(jù)獲取、知識(shí)抽取、知識(shí)融合等幾個(gè)步驟。數(shù)據(jù)獲取即獲取相關(guān)領(lǐng)域的數(shù)據(jù)源,知識(shí)抽取是從數(shù)據(jù)源中識(shí)別并提取相關(guān)實(shí)體,知識(shí)融合是把來(lái)源不同的等價(jià)或相關(guān)實(shí)體進(jìn)行鏈接。
2.1 領(lǐng)域數(shù)據(jù)源
生物醫(yī)藥知識(shí)圖譜的構(gòu)建需要整合多個(gè)領(lǐng)域的數(shù)據(jù),隨著生物醫(yī)藥領(lǐng)域的發(fā)展,科學(xué)家積累了大量相關(guān)的科研數(shù)據(jù),這些數(shù)據(jù)以多種多樣的形式在互聯(lián)網(wǎng)上開(kāi)放共享,包括生物醫(yī)藥領(lǐng)域相關(guān)的文獻(xiàn)、化合物、蛋白質(zhì)、藥物等等。目前主流的生物醫(yī)藥文獻(xiàn)數(shù)據(jù)庫(kù)有包括英國(guó)的Europe PubMED Center(Europe PMC)[8]數(shù)據(jù)庫(kù)、美國(guó)的MEDLINE數(shù)據(jù)庫(kù)等;主流的化合物數(shù)據(jù)庫(kù)有ZINC15等。本文應(yīng)用的數(shù)據(jù)庫(kù)如表1所示。
2.2 數(shù)據(jù)獲取與知識(shí)抽取
生物醫(yī)藥知識(shí)圖譜涉及化合物、蛋白質(zhì)、文獻(xiàn)等多個(gè)領(lǐng)域的數(shù)據(jù),這些領(lǐng)域數(shù)據(jù)大多以XML、JSON等格式存儲(chǔ)并在互聯(lián)網(wǎng)上開(kāi)放共享,本文通過(guò)直接下載或者編寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)的方式來(lái)完成數(shù)據(jù)獲取,數(shù)據(jù)獲取后,通過(guò)實(shí)現(xiàn)對(duì)XML、JSON等多種格式的解析來(lái)實(shí)現(xiàn)對(duì)實(shí)體和關(guān)系的抽取。
2.3 知識(shí)融合
在知識(shí)融合階段需要對(duì)實(shí)體和實(shí)體的屬性進(jìn)行對(duì)齊。在實(shí)體對(duì)齊階段首先考慮通過(guò)實(shí)體的唯一標(biāo)識(shí)進(jìn)行實(shí)體對(duì)齊,例如化合物的InCHI屬性和CAS Number屬性,蛋白質(zhì)的UniprotID屬性等等,若實(shí)體不具有唯一標(biāo)識(shí)的信息則需要使用基于相似性的打分函數(shù)來(lái)實(shí)現(xiàn)。同理,屬性的對(duì)齊也是通過(guò)基于本體與詞匯集的相似度評(píng)分算法來(lái)實(shí)現(xiàn),例如化合物的“相對(duì)分子質(zhì)量”屬性,在PubCHEM數(shù)據(jù)源中為“Molecular Weight”,在Zinc15數(shù)據(jù)源中為“Mwt”,通過(guò)構(gòu)建的本體來(lái)標(biāo)識(shí)兩個(gè)相同的屬性概念從而實(shí)現(xiàn)實(shí)體屬性的對(duì)齊。
下面將以蛋白質(zhì)的相關(guān)數(shù)據(jù)為例介紹實(shí)體對(duì)齊方法并進(jìn)行實(shí)驗(yàn)評(píng)估。蛋白質(zhì)的命名具有多樣性,來(lái)自不同數(shù)據(jù)源的同一個(gè)蛋白質(zhì)可能具有不同的名稱,例如人類的UBP7蛋白,其常見(jiàn)的命名有“UBP7_HUMAN”、“USP7 HAUSP”等6種,如表2所示。因?yàn)閷?shí)體概念的同義詞現(xiàn)象,導(dǎo)致在實(shí)體對(duì)齊時(shí)基于規(guī)則的算法不能準(zhǔn)確的進(jìn)行匹配,所以需要使用相似性函數(shù)進(jìn)行相似度評(píng)估,常用的相似性函數(shù)有①基于文本的相似性函數(shù)如Jaccard相似性算法、余弦相似性算法、編輯距離相似性算法;②基于結(jié)構(gòu)的相似性函數(shù)如共同鄰居計(jì)數(shù)算法、Adar評(píng)分算法等。本文在綜合使用這兩種相似性算法的基礎(chǔ)上構(gòu)建了基于領(lǐng)域的本體與詞匯表來(lái)提升相似性函數(shù)的準(zhǔn)確性。
從不同蛋白質(zhì)數(shù)據(jù)源中抽取1000個(gè)蛋白質(zhì)概念的集合P={p1,p2,……,p1000}進(jìn)行實(shí)驗(yàn)設(shè)計(jì),將P平均分為兩組P1和P2,使用P1集合構(gòu)建蛋白質(zhì)本體和詞匯集,使用P2集合分別對(duì)三種相似性算法進(jìn)行評(píng)估。其中基于文本的相似性函數(shù)綜合使用了余弦相似性算法和編輯距離相似性算法,如公式⑴。
經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證可以看出基于本體的實(shí)體對(duì)齊算法在精度、召回率、f-score值三個(gè)評(píng)估指標(biāo)上都優(yōu)于基于文本相似性和基于結(jié)構(gòu)相似性算法,其中精度提升了16%,召回率提升了28%,f-score值提升了23%,綜上所述,使用本體和同義詞表有利于提升相似度算法的準(zhǔn)確性。
2.4 生物醫(yī)藥知識(shí)圖譜的存儲(chǔ)
知識(shí)融合后需存入Neo4J圖數(shù)據(jù)庫(kù),Neo4J圖數(shù)據(jù)庫(kù)底層使用圖數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ),大幅度提升了數(shù)據(jù)檢索的性能。在數(shù)據(jù)導(dǎo)入方面,Neo4J支持三種數(shù)據(jù)導(dǎo)入方式:①通過(guò)Cypher Create語(yǔ)句;②通過(guò)Cypher LOAD CSV方式;③通過(guò)Neo4J-Import工具。前兩種方式可以在任何情況下導(dǎo)入,但速度慢,第三種導(dǎo)入方式速度快但只能在初始化時(shí)進(jìn)行數(shù)據(jù)導(dǎo)入。本文使用第三種方式,將融合后的數(shù)據(jù)格式化為CSV格式后,通過(guò)腳本進(jìn)行數(shù)據(jù)導(dǎo)入。構(gòu)建后的知識(shí)圖譜如圖2所示。其中知識(shí)圖譜中包括76萬(wàn)條實(shí)體、230萬(wàn)條關(guān)聯(lián),如表4所示。
3 結(jié)束語(yǔ)
本文借助Neo4j圖數(shù)據(jù)庫(kù)構(gòu)建了大規(guī)模生物醫(yī)藥知識(shí)圖譜并借助領(lǐng)域本體與詞匯集改進(jìn)了知識(shí)融合算法,算法的準(zhǔn)確性提升約20%,為知識(shí)圖譜的自動(dòng)化構(gòu)建、知識(shí)圖譜的應(yīng)用做了準(zhǔn)備。
本課題仍然有很多不足與待實(shí)現(xiàn)部分,如算法的準(zhǔn)確性與知識(shí)圖譜構(gòu)建的自動(dòng)化程度有待進(jìn)一步提升,同時(shí)基于生物醫(yī)藥知識(shí)圖譜可以開(kāi)發(fā)知識(shí)問(wèn)答、決策與發(fā)現(xiàn)系統(tǒng),有待后期進(jìn)一步完善。
參考文獻(xiàn)(References):
[1] 歐艷鵬.知識(shí)圖譜技術(shù)研究綜述[J].電子世界,2018.13:54,56
[2] 阮彤,孫程琳,王昊奮,方之家,殷亦超.中醫(yī)藥知識(shí)圖譜構(gòu)建與應(yīng)用[J].醫(yī)學(xué)信息學(xué)雜志,2016.37(4):8-13
[3] 徐增林,盛泳潘,賀麗榮,王雅芳.知識(shí)圖譜技術(shù)綜述[J].電子科技大學(xué)學(xué)報(bào),2016.45(4):589-606
[4] WMF.Wikidata[EB/OL].[2015-11-11].https://www.wikidata.org/wiki/Wikidata:Main_Page.
[5] NiuX,SunXR,WangHF,et al.Zhishi.me-weaving Chineselinking open data.Proceedings of the 10th International Semantic Web Conference.Bonn,Germany,2011:205-220
[6] 黃恒琪,于娟,廖曉,席運(yùn)江.知識(shí)圖譜研究綜述[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2019.28(6):1-12
[7] Zou L,?zsuMT,ChenL,etal.gStore:A graph-based SPARQLquery engine.The VLDB Journal,2014.23(4):565-590
[8] Hodgman, Charlie T .Insant notes in bioinformatics=生物信息學(xué)/2nd ed[M].科學(xué)出版社,2010.