王石磊(上海利柏特工程技術(shù)有限公司,上海 201101)
化工產(chǎn)業(yè)涉及到的產(chǎn)品眾多,具有一定銷售規(guī)模的化工品至少上千種,而且化工品上下游關(guān)系極為復(fù)雜,同一種化工品往往有多種合成方式,下游化工品的制備往往需要多種上游化工品,甚至還會(huì)有不同化工品的應(yīng)用場(chǎng)景具有相互替代的關(guān)系。常規(guī)方法對(duì)化工產(chǎn)業(yè)鏈表示和分析存在著很多弊端,可視化能力不強(qiáng),使用、檢索不便,缺乏科學(xué)的分析算法。知識(shí)圖譜技術(shù)通過構(gòu)建知識(shí)節(jié)點(diǎn)及節(jié)點(diǎn)聯(lián)系,利用其強(qiáng)大的可視化能力和科學(xué)的圖算法,能可視化技術(shù)描述化工產(chǎn)業(yè)鏈,挖掘、構(gòu)建、繪制和顯示知識(shí)及它們之間的相互聯(lián)系,并利用相關(guān)圖算法幫助理解和分析主要化工產(chǎn)業(yè)鏈各環(huán)節(jié)的主要發(fā)展邏輯[1]。
知識(shí)圖譜是由谷歌公司在 2012 年提出來概念,從學(xué)術(shù)的角度,“知識(shí)圖譜本質(zhì)上是語義網(wǎng)絡(luò)(semantic network)的知識(shí)庫”,可以對(duì)現(xiàn)實(shí)世界的事物及其相互關(guān)系進(jìn)行形式化地描述。從實(shí)際應(yīng)用的角度可以簡(jiǎn)單地把知識(shí)圖譜理解成多關(guān)系圖(multi-relational graph),泛指各種大規(guī)模的知識(shí)庫。圖(graph)是由節(jié)點(diǎn)(vertex)和邊(edge)來構(gòu)成,實(shí)體(節(jié)點(diǎn))指的是現(xiàn)實(shí)世界中的事物比如人、地名、化學(xué)品、公司等,關(guān)系(邊)則用來表達(dá)不同實(shí)體之間的某種聯(lián)系,比如人“居住在”北京、張三和李四是“朋友”、邏輯回歸是深度學(xué)習(xí)的“先導(dǎo)知識(shí)”等。“知識(shí)圖譜”結(jié)構(gòu)示意圖如圖1所示。
圖1 “知識(shí)圖譜”結(jié)構(gòu)示意圖
知識(shí)圖譜由于其數(shù)據(jù)包含實(shí)體、屬性、關(guān)系等,常見的關(guān)系型數(shù)據(jù)庫諸如SQL Server之類不能很好的體現(xiàn)數(shù)據(jù)的這些特點(diǎn),因此知識(shí)圖譜數(shù)據(jù)的存儲(chǔ)一般采用圖數(shù)據(jù)庫(graph databases)。圖數(shù)據(jù)庫包含節(jié)點(diǎn)和關(guān)系,節(jié)點(diǎn)和關(guān)系均具有屬性,其中,關(guān)系可命名,具有方向性,必須有起點(diǎn)和終點(diǎn)。
Neo4j是其中常用的圖數(shù)據(jù)庫管理系統(tǒng),基于圖結(jié)構(gòu)完成數(shù)據(jù)的建模,將結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)在圖中,展示數(shù)據(jù)及其之間的邏輯關(guān)系,以相同的數(shù)據(jù)遍歷節(jié)點(diǎn)與邊,算法非??旖莺透咝?,能處理數(shù)十億節(jié)點(diǎn)、屬性和關(guān)系。本研究采用Neo4j 4.2社區(qū)版。
Cypher是面向Neo4j的特定查詢語言,保留了許多SQL語言風(fēng)格,符合常規(guī)表達(dá)習(xí)慣,用戶不必關(guān)心如何對(duì)圖數(shù)據(jù)庫進(jìn)行遍歷,不用編寫復(fù)雜的代碼即可實(shí)現(xiàn)對(duì)圖數(shù)據(jù)庫的操作。
化工產(chǎn)業(yè)鏈?zhǔn)窍嚓P(guān)化工產(chǎn)品生產(chǎn)企業(yè)根據(jù)化學(xué)品合成或生產(chǎn)屬性組成的一個(gè)產(chǎn)業(yè)鏈條,通過上游原原材料、中間化學(xué)品和下游行業(yè)完成化工產(chǎn)業(yè)鏈的組織。
絕大部分的化學(xué)品主要是來源于石油、天然氣(包括石油氣、頁巖氣等)、煤炭以及各種無機(jī)礦物(包括原鹽)。石油、天然氣和煤炭因?yàn)橹饕荚雍蜌湓?,可以通過蒸餾、裂解、氣化等方式得到大量有機(jī)化工品。無機(jī)礦物則主要有石英砂、磷礦石、硫鐵礦、鈦鐵礦、鉀礦、螢石礦、原鹽等,通常用來得到各種無機(jī)化工品(部分有機(jī)化工品同樣需要無機(jī)礦物作為原材料)。
節(jié)點(diǎn)屬性定義:唯一標(biāo)識(shí)符(rawmaterial Id);名稱(ramaterial Name)。
中間化學(xué)品通常被認(rèn)為是基礎(chǔ)化工品,是介于上游原材料與下游行業(yè)中間的化工品,中間環(huán)節(jié)與下游環(huán)節(jié)之間并沒有明確的劃分,不少處于中間環(huán)節(jié)的化工品同樣被當(dāng)作最終制品對(duì)外銷售,這主要取決于最終應(yīng)用場(chǎng)景。
節(jié)點(diǎn)屬性定義:唯一標(biāo)識(shí)符(chemical Id);名稱(chemical Name)。
直接與終端應(yīng)用相關(guān)聯(lián)的節(jié)點(diǎn)劃分到下游行業(yè)組,化工品應(yīng)用領(lǐng)域廣泛,基本上已經(jīng)滲透到工業(yè)生產(chǎn)和日常生活的各個(gè)方面,涉及到的行業(yè)也林林總總。如衣(紡織服裝)、食(農(nóng)業(yè)、食物)、住(建筑裝飾)、行(交通運(yùn)輸)以及科技(TMT、新能源、航空航天)等領(lǐng)域[2]。
節(jié)點(diǎn)屬性定義:唯一標(biāo)識(shí)符(indutryId);名稱(indutryName)。
化工產(chǎn)業(yè)鏈上的各種化學(xué)品之間的關(guān)系有很多,為簡(jiǎn)化應(yīng)用,在本研究中,我們僅提取出對(duì)分析最有用的關(guān)系:“生產(chǎn)”,同時(shí)大多數(shù)化工產(chǎn)品的反應(yīng)/合成都是單向的,在不同的條件下可逆。在本研究中,為簡(jiǎn)化分析,我們忽略關(guān)系的雙向性。化學(xué)品節(jié)點(diǎn)與下游行業(yè)之間的關(guān)系用單向的“應(yīng)用”表示;化學(xué)品節(jié)點(diǎn)與上游原材料之間的關(guān)系用單向的“制備”表示。
本次研究暫不加入關(guān)系屬性。
新建圖數(shù)據(jù)庫,清空數(shù)據(jù),確保在一個(gè)空白的環(huán)境進(jìn)行操作:
這里,MATCH是匹配操作,而小括號(hào)()代表一個(gè)節(jié)點(diǎn)node (可理解為括號(hào)類似一個(gè)圓形),括號(hào)里面的n為標(biāo)識(shí)符。
創(chuàng)建化學(xué)品節(jié)點(diǎn):
其中CREATE是創(chuàng)建操作,Chemical是標(biāo)簽,代表節(jié)點(diǎn)的類型。花括號(hào){}代表節(jié)點(diǎn)的屬性,屬性類似Python的字典。為提高節(jié)點(diǎn)錄入效率,將收集整理的各節(jié)點(diǎn)編制成csv文件,利用如下Cypher語句批量導(dǎo)入中間化學(xué)品節(jié)點(diǎn),最終完成所有節(jié)點(diǎn)的建立[3]:
根據(jù)化工產(chǎn)業(yè)鏈上下游的關(guān)系建立節(jié)點(diǎn)間關(guān)系,如下為建立乙烯產(chǎn)業(yè)鏈的示例:
MERGE (a) - [:制備] -> (b) - [:生產(chǎn)] -> (c) - [:生產(chǎn)] ->(d)- [:應(yīng)用] -> (e)
用同樣的方法將所有關(guān)系添加完成,在Neo4J的界面上可以看到創(chuàng)建成功的節(jié)點(diǎn)及其關(guān)系,分別用不同顏色表示,如圖2所示。
圖2 化工產(chǎn)業(yè)鏈知識(shí)圖譜(局部)
初步化工產(chǎn)業(yè)鏈圖數(shù)據(jù)庫建立后,其應(yīng)用包括節(jié)點(diǎn)之間的路徑查詢,節(jié)點(diǎn)關(guān)系輻射分析等等,本次研究以查找兩個(gè)節(jié)點(diǎn)間的關(guān)系路徑來做一個(gè)示范,如下Cyper語句表示了“原油”這個(gè)上游原材料與“化纖”行業(yè)之間關(guān)系數(shù)量在5以內(nèi)的所有路徑,經(jīng)過運(yùn)算后顯示如圖3所示。
圖3 化工產(chǎn)業(yè)鏈知識(shí)圖譜路徑分析
文章設(shè)計(jì)了一種化工產(chǎn)業(yè)鏈的知識(shí)圖譜,并利用圖數(shù)據(jù)庫Neo4j實(shí)現(xiàn)了基礎(chǔ)的化工產(chǎn)業(yè)鏈知識(shí)圖譜的建立和維護(hù)管理,對(duì)于圖算法中路徑分析做了嘗試。
下一步將進(jìn)一步完善該化工產(chǎn)業(yè)鏈知識(shí)圖譜,引入生產(chǎn)企業(yè)節(jié)點(diǎn)及其屬性,包括(產(chǎn)能,地理位置等),擴(kuò)充知識(shí)圖譜的范圍和功能,并利用路徑搜索算法、中心性算法及社群發(fā)現(xiàn)算法進(jìn)行基礎(chǔ)分析。最終進(jìn)行深度分析,用于行業(yè)投資決策,化工產(chǎn)業(yè)規(guī)劃等。