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