卜意磊,龐文迪,吳甜甜,杜奕坤,李 珊*
(1.江蘇省工商行政管理局信息中心,江蘇 南京 210019;2.北京化工大學(xué) 信息學(xué)院,北京 100029;3.南京航空航天大學(xué) 經(jīng)濟(jì)與管理學(xué)院,江蘇 南京 211100)
“十四五”時期是全面建成小康社會的關(guān)鍵時期,是全面落實國家治理體系與治理能力現(xiàn)代化的推進(jìn)期。對政府來說,加強(qiáng)和改善市場監(jiān)督管理體制是維護(hù)市場公平競爭、充分激發(fā)市場活力和創(chuàng)造力的重要保障,是政府職能轉(zhuǎn)變的重要方向。在此背景下,市場監(jiān)督管理局需要順應(yīng)時代變革的需求,創(chuàng)新市場監(jiān)管工作,從服務(wù)方法和形式上尋求突破。過去,食品監(jiān)管領(lǐng)域常使用表格的形式來管理、存儲和展示監(jiān)管數(shù)據(jù)。但進(jìn)入網(wǎng)絡(luò)與大數(shù)據(jù)時代后,隨著監(jiān)管范圍逐漸擴(kuò)大、監(jiān)管數(shù)據(jù)大幅增加,表格顯現(xiàn)出難以處理大量信息、難以及時發(fā)現(xiàn)新的知識等問題。尤其是電子商務(wù)與網(wǎng)絡(luò)交易平臺的主流化帶來的跨地域交易等情況,給食品監(jiān)管帶來很大的困難。為解決這一問題,需要加強(qiáng)食品安全的信息化監(jiān)管,推動監(jiān)管形式的變革[1]。
與傳統(tǒng)的表格存儲不同,知識圖譜可以實現(xiàn)知識的規(guī)范存儲,將數(shù)據(jù)保存為三元組(Triple),并以圖的形式展現(xiàn)出來。構(gòu)建食品監(jiān)管領(lǐng)域的知識圖譜,可以直觀地展示監(jiān)管機(jī)構(gòu)、食品企業(yè)等實體的屬性信息及關(guān)系;通過知識圖譜智能搜索的應(yīng)用,可以幫助監(jiān)管者便捷地檢索和管理相關(guān)對象;運用知識圖譜的知識推理等方法,可以輔助管理者發(fā)現(xiàn)監(jiān)管中的潛在信息。該文以食品監(jiān)管領(lǐng)域為研究對象,首先利用爬蟲獲取食品監(jiān)管相關(guān)的規(guī)章制度、政策公文等文件,然后基于BiLSTM-CRF 模型進(jìn)行實體識別,接著通過歸類和構(gòu)建“文本-實體”矩陣的方式進(jìn)行關(guān)系抽取,最后對食品監(jiān)管實例進(jìn)行去重和消歧,并使用Neo4j進(jìn)行圖譜存儲和展示。提出食品監(jiān)管知識圖譜的實現(xiàn)流程,彌補(bǔ)了食品監(jiān)管領(lǐng)域知識圖譜研究的空白,為后續(xù)的語義搜索、智能問答、精準(zhǔn)監(jiān)管提供支撐,全面提升食品監(jiān)管體系和監(jiān)管能力現(xiàn)代化水平。
知識抽取包括命名實體識別及實體關(guān)系抽取。
命名實體識別(Named Entity Recognition,NER)的主要技術(shù)方法有三種,即基于規(guī)則和詞典的方法、基于統(tǒng)計的方法,以及混合方法[2]。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)模型也逐漸在構(gòu)建知識圖譜、進(jìn)行知識抽取的任務(wù)中得以廣泛應(yīng)用。Huang等[3]提出了使用雙向長短時記憶網(wǎng)絡(luò)(BiLSTM)進(jìn)行抽取的同時,增加CRF層來優(yōu)化結(jié)果的新模型,即BiLSTM-CRF。該模型較傳統(tǒng)方法有了很大提升,也在其他研究中應(yīng)用廣泛。葉蕾等人把BiLSTM-CRF模型應(yīng)用到中文電子病歷的命名實體識別中,實現(xiàn)了長距離的依賴關(guān)系的獲取[4]。羅熹等人將此模型應(yīng)用到中文臨床實體識別,并結(jié)合了“多頭自注意力機(jī)制”,捕捉字符的潛在依賴權(quán)重、語義關(guān)聯(lián)等特征[5]。
關(guān)系抽取在早期主要包括基于規(guī)則、字典、本體的方法;引入特征后出現(xiàn)了機(jī)器學(xué)習(xí)方法,包括監(jiān)督、半監(jiān)督、無監(jiān)督等方式;為實現(xiàn)特征的自動提取,關(guān)系抽取開始使用深度學(xué)習(xí)方法。Hashimoto K等首先提出用遞歸神經(jīng)網(wǎng)絡(luò)RNN進(jìn)行實體關(guān)系抽取,該方法在語法樹上運行,允許對目標(biāo)重要短語顯式加權(quán),取得較好的結(jié)果[6]。Zeng等人提出了用更簡單的卷積神經(jīng)網(wǎng)絡(luò)CNN,無需復(fù)雜預(yù)處理即可實現(xiàn)實體關(guān)系抽取[7]。Katiyar等提出神經(jīng)網(wǎng)絡(luò)聯(lián)合模型BiLSTM+Attention,同時抽取實體、關(guān)系以及關(guān)系類型[8]。孫劭芃等提出一種基于BERT-Bi LSTM-Attention的食品安全領(lǐng)域?qū)嶓w關(guān)系抽取模型,在測試集上實體關(guān)系抽取獲得了顯著成果[9]。
對知識圖譜的研究,發(fā)源于20世紀(jì)的“引文網(wǎng)絡(luò)”,目前知識圖譜已運用至多個領(lǐng)域。陳強(qiáng)和代仕婭提出了一種將會計案防領(lǐng)域行業(yè)知識與大數(shù)據(jù)、知識圖譜等技術(shù)相結(jié)合的智能化平臺建設(shè)方案,能更高效準(zhǔn)確地識別出可疑風(fēng)險賬戶[10]。楊波等人研究知識圖譜在風(fēng)險管理領(lǐng)域的應(yīng)用,介紹了風(fēng)險管理領(lǐng)域知識推理(RMDKR)的方法,主要包括傳統(tǒng)的演繹推理方法、基于邏輯規(guī)則與案例的方法,以及基于人工智能的知識推理[11]。知識圖譜應(yīng)用到食品監(jiān)管領(lǐng)域方面的研究目前較少。張阿蘭等利用CiteSpace工具進(jìn)行關(guān)鍵詞聚類,分析了2003~2018年中國知網(wǎng)上研究食品監(jiān)管的論文,發(fā)現(xiàn)研究集中在“食品安全監(jiān)管”“食品安全”“社會共治”等方面[12]。秦麗等利用知識圖譜(KG)技術(shù)提取了標(biāo)準(zhǔn)文件的內(nèi)容與標(biāo)準(zhǔn)文件之間的引用關(guān)系,構(gòu)建食品安全標(biāo)準(zhǔn)知識圖譜,使食品安全標(biāo)準(zhǔn)與相關(guān)的食品生產(chǎn)過程可以建立聯(lián)系[13]。
食品監(jiān)管知識圖譜構(gòu)建過程主要包括兩個步驟:實體識別、關(guān)系抽取。實體抽取部分通過構(gòu)建實體識別模型BiLSTM-CRF,訓(xùn)練模型并對抽取出的“主概念實體”進(jìn)行聚類與歸類;關(guān)系抽取部分先根據(jù)實體歸類結(jié)果,確定同實體標(biāo)簽的實體間的分類關(guān)系,再構(gòu)建“文本-實體”矩陣,分析包含某實體對的句子,確定不同實體之間的其他關(guān)系。構(gòu)建流程如圖1所示。
圖1 食品監(jiān)管知識圖譜構(gòu)建流程
首先,對采集的文本數(shù)據(jù)進(jìn)行預(yù)處理,包括分詞和詞性標(biāo)注,并確定實體標(biāo)簽;然后,基于word2vec向量化輸入文本;接著,基于BiLSTM-CRF模型識別實體標(biāo)簽;最后,使用K-means聚類算法將相同實體歸為一類。實體識別流程如圖2所示。
圖2 實體識別流程
采集的數(shù)據(jù)包括原國家食品質(zhì)量監(jiān)督檢驗中心發(fā)布的與食品監(jiān)管相關(guān)的規(guī)章制度等文件、國家市場監(jiān)督管理總局官網(wǎng)(http://zwfw.samr.gov.cn)發(fā)布的食品監(jiān)管政策公文等文件及百度百科相關(guān)詞條等。共獲取文本數(shù)據(jù)45篇。
處理的數(shù)據(jù)為中文文本,需要先使用jieba進(jìn)行分詞和詞性標(biāo)注,然后對分詞結(jié)果進(jìn)行詞頻統(tǒng)計,并結(jié)合對食品監(jiān)管行業(yè)知識的考量,確定用于標(biāo)注和識別的實體標(biāo)簽,如表1所示。標(biāo)注后的訓(xùn)練數(shù)據(jù)共292 917行,按模型需求將其以句子為單位分行。
表1 主概念圖譜實體標(biāo)簽
采用“自頂朝下”與“自底朝上”相結(jié)合的方式進(jìn)行實體識別,先確定實體標(biāo)簽,再用模型識別更多實體,并通過實體的聚類、對齊等工作進(jìn)行優(yōu)化。模型主要由輸入層、網(wǎng)絡(luò)層和輸出層三部分組成。
輸入層采用Keras的序列預(yù)處理。首先,根據(jù)訓(xùn)練數(shù)據(jù)詞匯表vocab將輸入文本轉(zhuǎn)為字典word2idx。然后,對文本轉(zhuǎn)化的字典進(jìn)行操作,獲取字向量并通過pad_sequences函數(shù)進(jìn)行序列填充和對齊。經(jīng)過處理后,得到最終的輸入向量,并傳遞給網(wǎng)絡(luò)層。網(wǎng)絡(luò)層的主要任務(wù)是對輸入序列進(jìn)行特征提取,也就是編碼操作。該文采用雙向的LSTM網(wǎng)絡(luò)[2,14],經(jīng)過前向、后向傳遞,同時考慮上下文信息,處理模型輸入的特征向量,得到預(yù)測特征向量。
輸出層是把網(wǎng)絡(luò)層編碼的輸出進(jìn)行最終處理,獲得預(yù)測標(biāo)簽。雖然BiLSTM已經(jīng)可以預(yù)測標(biāo)簽,但結(jié)果不夠精確,只適合大規(guī)模但低精度的任務(wù)。而添加CRF層[15]可以考慮相鄰的輸入樣本,學(xué)習(xí)句子的約束條件,計算聯(lián)合概率,從而優(yōu)化整個序列的預(yù)測結(jié)果。
以準(zhǔn)確率作為模型的性能指標(biāo),如下公式所示。
其中,n表示樣本總數(shù),TP表示正確判斷為正向的樣本數(shù),TN表示正確判斷為負(fù)向的樣本數(shù)。
將訓(xùn)練集與測試集傳入模型進(jìn)行訓(xùn)練,最終的訓(xùn)練集的CRF準(zhǔn)確率(crf_accuracy)為0.979 3,測試集CRF準(zhǔn)確率(val_crf_accuracy)為0.957 9。訓(xùn)練過程10個epoch的CRF準(zhǔn)確率變化曲線如圖3所示。
圖3 模型訓(xùn)練過程準(zhǔn)確率曲線
句子“在中央一級,負(fù)責(zé)食品安全監(jiān)管的機(jī)構(gòu)包括食品藥品監(jiān)督管理局、衛(wèi)生部、質(zhì)檢總局、國家工商總局、商務(wù)部等”的識別結(jié)果如圖4所示,其中“食品藥品監(jiān)督管理局”“衛(wèi)生部”“國家工商局”屬于ORG。
圖4 模型實體識別:單句識別
對模型識別出的實體進(jìn)行人工選擇,刪去明顯的錯誤實體,最終保留的實體數(shù)量為333個。去重后的實體中還存在一些同義實體,如“食品藥品監(jiān)管局”與“食品藥品監(jiān)督管理局”等,同時除同義詞以外,對于實體中少量的實例數(shù)據(jù),如“國家市場監(jiān)管總局”“江蘇省市場監(jiān)督管理局”等,也可作為“同類詞”用大類“市場監(jiān)管機(jī)構(gòu)”來指代。因此,通過K-Means算法進(jìn)行實體聚類,K值設(shè)定為實體數(shù)量整除5再加1,最后輸出各標(biāo)簽內(nèi)部的聚類結(jié)果。以“OTH”標(biāo)簽為例,該標(biāo)簽共26個實體,K值為6,最后共分為6個簇,如圖5所示,可以看到“OTH_0”中以泛指性食品生產(chǎn)者為主,“OTH_2”以食品服務(wù)提供者為主。使用聚類后的實體構(gòu)建“大類表”,最終得到“食品添加劑”“食品企業(yè)”等68個大類。
圖5 K-Means實體聚類結(jié)果:以O(shè)TH為例
由于食品監(jiān)督文本格式較為規(guī)范,使用監(jiān)督學(xué)習(xí)效果不佳,因此,提出基于“文本-實體”矩陣的食品監(jiān)管主概念關(guān)系抽取方法。首先,利用上文實體聚類獲得的“大類表”;然后,構(gòu)建以大類實體為列名、句子為行名的“文本-實體”矩陣;最后,將該對實體的關(guān)系歸類為最接近的關(guān)系標(biāo)簽,實現(xiàn)關(guān)系抽取。
分類關(guān)系即“上下位關(guān)系”,如“人民政府”的下位詞是“中央人民政府”“地方人民政府”等。在“大類表”中,大類實體(class)與實體(name)自然呈現(xiàn)為分類關(guān)系,可以分別視為頭實體與尾實體。該文共存儲了192條“包含”關(guān)系。關(guān)系獲取的部分結(jié)果如圖6所示,“食品添加劑”包含“保鮮劑”“營養(yǎng)強(qiáng)化劑”等;“檢驗機(jī)構(gòu)”包含“進(jìn)出口檢驗機(jī)構(gòu)”“復(fù)檢機(jī)構(gòu)”等;“企業(yè)檢查”包含“專項檢查”“現(xiàn)場檢查”“日常檢查”等。
圖6 “包含”關(guān)系獲取結(jié)果(分類關(guān)系)
該文的關(guān)系抽取僅考慮“大類表”68個大類間的關(guān)系。設(shè)大類A包含實體a,大類B包含實體b,則下位實體a與b的關(guān)系歸為A與B的關(guān)系。以大類ID作為列名,待抽取文本作為行名,構(gòu)建“文本-實體”矩陣,若某行文本包含某大類實體,則值為1,否則為0。
基于“文本-實體”矩陣,提出兩種關(guān)系獲取的方法:①對于重要實體,使用上文構(gòu)建的“文本-實體”矩陣篩選出包含該實體的所有句子,以及同句的其他實體,獲取該實體的所有關(guān)系;②對于其他實體,可以進(jìn)一步壓縮“文本-實體”矩陣,僅保留句子與該句所含實體序列,重點關(guān)注不同標(biāo)簽的實體,批量獲取不同實體對之間的關(guān)系。
(1)指定實體的關(guān)系抽取。
對“文本-實體”矩陣,進(jìn)行歸類和人工判斷,歸納實體間的關(guān)系,并保存為三元組。以“工商部門”大類OR3為例,可以看到與之相關(guān)的實體有“檢驗機(jī)構(gòu)”O(jiān)R6、“食品藥品監(jiān)管機(jī)構(gòu)”O(jiān)R12、“食品企業(yè)”O(jiān)T1、“個體工商戶”O(jiān)T2,如圖7所示。
觀察包含圖7 OR3的7行文本數(shù)據(jù),發(fā)現(xiàn)OR3與OR6、OR12僅僅是被同時提到,而(OR3, OT1)(OR3, OT2)兩個實體對關(guān)系較為密切,分別為OR3“檢查”O(jiān)T1與OT2、OR3“排查”O(jiān)T1與OT2;OR3“備案”O(jiān)T1,如表2所示。
表2 關(guān)系三元組示例(尚未去掉id列)
(2)關(guān)系批量抽取。
在提取大量關(guān)系時,逐個篩選判斷工作量較大,需要進(jìn)一步壓縮“文本-實體”矩陣,提取每個句子包含的實體序列。經(jīng)統(tǒng)計,一行包含實體數(shù)最多為11個,因此,構(gòu)建一個十二列的“文本-實體”壓縮矩陣,將原本分散的實體壓縮到前幾列。該步驟雖丟失了實體的位置信息,不適合篩選單個實體的關(guān)系,但大大降低了關(guān)系批量提取的難度。
壓縮后的“文本-實體”矩陣如圖8所示,通過矩陣可以觀察實體的分布狀況,從而找到普遍關(guān)聯(lián)的實體對及其關(guān)系,例如可以觀察到“A1”與“C1”“C2”“C3”均有關(guān)系,即“食品添加劑需標(biāo)注名稱、地址、生產(chǎn)日期”,可以獲取三個“包含”關(guān)系。
圖8 “文本-實體”壓縮矩陣示例
使用上述方法大致獲取關(guān)系的同時,可以結(jié)合食品監(jiān)管行業(yè)知識,歸納普遍關(guān)系,確定關(guān)系標(biāo)簽,使關(guān)系標(biāo)準(zhǔn)化。例如,表2的“排查”關(guān)系可以歸為“檢查”。確定標(biāo)簽的大致過程如下:分析OTH與FOD、 ADT的關(guān)系,可以確定“生產(chǎn)”“采購”關(guān)系;篩選ORG與OTH實體,確定“檢查”“許可”“認(rèn)證”關(guān)系,以及OTH對ORG的“申訴”“備案”等其他工作統(tǒng)一用“監(jiān)管”指代;篩選ORG與FOD、ADT實體,通過“檢驗機(jī)構(gòu)”檢驗“特殊食品”等描述,確定“檢驗”關(guān)系;ORG與OPE實體根據(jù)邏輯確定為“職責(zé)”關(guān)系; CON作為監(jiān)管內(nèi)容,同時從屬于監(jiān)管工作與監(jiān)管對象,考慮到關(guān)系可以通過標(biāo)簽區(qū)分,可以借用上文表達(dá)分類關(guān)系的“包含”關(guān)系。另外,機(jī)構(gòu)還存在下級機(jī)構(gòu),若用“包含”易與分類關(guān)系混淆,所以確定“下轄”關(guān)系等。經(jīng)過上述操作,確定了11個較為常見的關(guān)系標(biāo)簽,如表3所示。
表3 主概念圖譜關(guān)系標(biāo)簽
將實體及實體-關(guān)系表格導(dǎo)入至Neo4j中,生成食品監(jiān)管主概念圖譜,如圖9所示(僅展示部分)。圓圈表示實體,箭頭表示實體之間的關(guān)系。
圖9 食品監(jiān)管主概念圖譜展示
研究了食品監(jiān)管領(lǐng)域知識圖譜的構(gòu)建方法,通過探討和實現(xiàn)實體及實體關(guān)系抽取算法,構(gòu)建食品監(jiān)管領(lǐng)域知識圖譜??偨Y(jié)主要工作如下:(1)實現(xiàn)了BiLSTM-CRF實體識別模型的構(gòu)建,利用BiLSTM-CRF模型對食品監(jiān)管的政策公告等進(jìn)行了主概念實體識別。包括從數(shù)據(jù)預(yù)處理開始的模型的訓(xùn)練與修改、實體的聚類歸類與對齊等工作,模型的準(zhǔn)確率為0.957 9。(2)提出用構(gòu)建“文本-實體”矩陣的方法實現(xiàn)關(guān)系抽取,在實體歸類形成的68個大類的基礎(chǔ)上,以大類實體為行,句子為列,判斷每個句子是否包含某實體,形成一個0-1矩陣。據(jù)此可找出實體對及相關(guān)句子,歸類到特定的關(guān)系。