袁剛 郭爽 唐琦 許入文 王金國 韓春曉* 溫圣軍* 張文通
(1.國家市場監(jiān)督管理總局信息中心 北京 100820;2.北京理工大學計算機學院)
食品安全風險管理是當前提升我國食品安全管理能力的重要內(nèi)容,《食品安全法》在總則中確定了一個重要原則,就是食品安全工作實行以預防為主、風險管理、全程控制、社會共治,建立科學、嚴格的監(jiān)管制度。 實際上就是強調(diào)對食品安全風險進行全面管理的重要性。 當前,風險管理主要來源于對數(shù)據(jù)的分析判斷,但食品安全鏈條長、范圍廣、涉及的因素多,每天產(chǎn)生大量與食品安全相關的風險數(shù)據(jù), 但對于龐大的數(shù)據(jù)體量和無規(guī)則的數(shù)據(jù)關系,利用技術進行分析挖掘不夠,導致食品安全風險預警研判成為業(yè)界共同研究的課題。
知識圖譜技術蘊含豐富的先驗知識,具有重要的學術價值和廣泛的應用前景。 知識圖譜分析推理作為知識圖譜領域的核心技術,能夠極大地擴展現(xiàn)有知識的邊界, 有力地輔助人類進行智能決策。 因此,利用知識圖譜技術和食品安全監(jiān)管的海量數(shù)據(jù),構(gòu)建食品安全風險知識圖譜, 建立食品各維度數(shù)據(jù)之間的關聯(lián)關系, 為食品安全風險分析和預測提供技術手段。當前,構(gòu)建食品安全風險知識圖譜需要面對一系列問題:(1) 信息數(shù)據(jù)量大, 難以人工處理;(2)信息來源多樣,難以挖掘數(shù)據(jù)間關聯(lián);(3)信息維度多樣,難以統(tǒng)籌整合。 針對以上3 個問題,本文使用BiLSTM-CRF 神經(jīng)網(wǎng)絡構(gòu)建食品安全風險知識圖譜。
知識圖譜以“實體—關系—實體” 形式描述語義,進而使用包含語義的網(wǎng)絡結(jié)構(gòu)來組織知識,表示現(xiàn)實世界事物與事物之間各種各樣的聯(lián)系。 作為一種更適合于描述客觀世界實體與關系的信息載體,知識圖譜的研究掀起一股研究熱潮[1]。
早期主要是基于對啟發(fā)式規(guī)則的應用,通過人工定義構(gòu)建模式,進行文本匹配,從而實現(xiàn)信息抽取知識圖譜構(gòu)建。1991 年,RAU[2]結(jié)合人工編寫規(guī)則與啟發(fā)性算法,首次實現(xiàn)從文本中提取公司實體的原型系統(tǒng)。這些基于規(guī)則的實體識別系統(tǒng)的優(yōu)點在于可以在特定領域有良好的性能表現(xiàn),但同時也有著巨大缺點,即需要花費大量人工成本設計信息抽取規(guī)則。 這些規(guī)則通常是依托于場景的,因此在復用性上表現(xiàn)也比較差。
為解決這一問題, 研究者將自動構(gòu)建與統(tǒng)計機器學習方法相結(jié)合,分為幾個子任務:實體抽取、關系抽取、屬性抽取。將拆解出的子任務轉(zhuǎn)化為機器學習領域研究的序列標注和分類問題, 進而使用學習模型來解決,比如CRF 模型[3]、HMM 模型[4]、MEMM模型[5]、SVM 模型[6]、LSTM 模型[7]等。 其中,生成式模型如HMM 對數(shù)據(jù)量的需求往往較大, 而判別式模型如MEMM、CRF 對數(shù)據(jù)量的要求就要少許多。 SUTTON 等[8]分析了CRF、HMM 與MEMM 之間異同,與HMM 和MEMM 相比,CRF 模型更復雜, 計算復雜度更高,但是其特征設計更靈活。 LIU 等[9]利用KNN算法和CRF 模型,實現(xiàn)了基于Twitter 文本數(shù)據(jù)的實體識別任務。 LIN 等[10]使用MaxEnt 模型,結(jié)合字典輔助,在GENIA 數(shù)據(jù)集上取得了精確率(precision)與召回率(recall)均超過70%的優(yōu)秀結(jié)果。
隨后, 具有極強的非線性擬合能力的深度學習出現(xiàn)了, 該技術也被應用于知識圖譜抽取任務中。COLLOBERT 等較早地使用了結(jié)構(gòu)形如NN/CNNCRF 的模型,來完成實體抽取圖譜構(gòu)建任務,并提出了基于窗口和基于句子的2 種模式。
而后學術界又提出一系列結(jié)構(gòu)形如RNN-CRF框架, 其中這類模型中RNN 層主要代表LSTM 模型。 LAMPLE 等提出BiLSTM-CRF 框架,并分別在詞和字的級別上給出應用。 REI 等基于RNN-CRF模型改進了詞編碼與字編碼的拼接步驟, 并引入注意力機制, 實現(xiàn)了詞編碼和字編碼中所包含信息的動態(tài)學習。 BHARADWAJ 等將字編碼結(jié)果和音韻進行拼接處理,并在字編碼上引入注意力機制。MA 等人提出了混合模型BiLSTM-CNNsCRF。 ZHANG 等提出Lattice LSTM 模型,引入字典機制,對輸入的字符序列和所有與詞典匹配的潛在詞匯進行編碼,實現(xiàn)了零分詞錯誤。 AKBIK 等訓練語言模型內(nèi)部隱狀態(tài),產(chǎn)生一種新的編碼模型。PETERS 等提出一種簡單、通用的半監(jiān)督方法TagLM。YANG 等提出一種基于RNN 的轉(zhuǎn)移學習方法,并開發(fā)了用于3 種遷移學習架構(gòu):T-A,T-B,T-C。 3 個結(jié)構(gòu)目前得到廣泛應用,成為跨域、跨任務的一種baseline 模型。
在實體抽取的任務中, 某個詞語是否能被識別為一個人名、組織或者其他實體信息,很大程度上取決于上下文信息。例如:“鐘南山院士”、“本科畢業(yè)于北京協(xié)和醫(yī)學院醫(yī)療系”等文本中,“院士”并不是命名實體,但是對于識別“鐘南山”為人名實體有幫助;“本科畢業(yè)于”、“醫(yī)療系” 也不是需要識別的命名實體,但是有助于識別出機構(gòu)名“北京協(xié)和醫(yī)學院”。
深度學習中長短期記憶網(wǎng)絡(LSTM)正是利用這一上下文信息,通過在模型中引入遺忘門機制,使得模型可以存儲記憶序列化數(shù)據(jù), 并將其量化表現(xiàn)為參數(shù)能力。 因此LSTM 非常適合處理依賴上下文信息的實體抽取任務。 LSTM 網(wǎng)絡可以在一定程度上使用上下文之間的一些關聯(lián)信息, 增強對字詞的語義理解。 但是傳統(tǒng)的單向LSTM 只能捕獲序列的歷史信息,沒用充分利用上下文信息。
不充分考慮上下文信息, 可能在進行命名實體識別的任務中出現(xiàn)錯誤,例如“武漢市長江大橋位于中國湖北省武漢市”,如果不對下文信息“位于中國湖北省武漢市”加以利用,而只觀察到“武漢市長江大橋”,則可能只看到“武漢市長”信息,并將“江大橋”標注為人名,這種情況是需要避免的。
BiLSTM,即雙向長短期神經(jīng)網(wǎng)絡,通過特有門閥單元控制信息傳遞有選擇地保留上下文信息,實現(xiàn)對上下文信息利用和對有效文本的記憶功能。
對于BiLSTM 網(wǎng)絡,舉例網(wǎng)絡的輸入若為“鐘南山院士”,主要捕獲反向信息,“院士”為職稱,記憶單元因此可能學習到前面的詞大概率為人名或姓氏,因此預測“鐘南山”為人名。
BiLSTM 層在知識圖譜構(gòu)建模型框架中起著很重要作用, 由于具備能接受預訓練得到的文本向量、可基于前后時序進行建模捕捉文本中上下文信息、同時捕獲文本數(shù)據(jù)歷史信息和反向信息這幾個特點和優(yōu)勢,BiLSTM 模型具有優(yōu)于其他模型的實體識別效果。
對于中文知識抽取任務, 經(jīng)過BiLSTM 的輸出,文本中歷史信息和反向信息被捕捉和記憶,模型計算得到各個字的輸出表示。 BiLSTM 輸出的各個字之間沒有互相影響, 這不利于得到一個完整的中文實體。這樣的標注顯然是不合理的,也無法獲得任何有效信息,用以構(gòu)建知識圖譜。 其原因在于,BiLSTM 模型將會輸出各個標簽對應得分張量矩陣,隨后會簡單地選擇每個字對應張量中得分最高標簽類別, 作為當前字的標簽預測結(jié)果, 而得分最高的標簽相互組合并不一定構(gòu)成完整實體,這種現(xiàn)象在中文數(shù)據(jù)中尤為明顯。
而上述問題可通過引入CRF 層來解決。CRF 模型是一種用于解決序列標注問題的深度學習模型,該模型結(jié)合了HMM 模型與MaxEnt 模型優(yōu)點,具有表達長距離依賴性和交疊性特征能力, 解決了最大熵馬爾可夫模型存在的標記偏置問題, 通過將所有特征進行全局歸一化,來求得全局最優(yōu)解。
CRF 模型側(cè)重考慮句子層面上,每個字標注的tag 之間互相影響。作為BiLSTM 模型和CRF 模型的結(jié)合體,BiLSTM-CRF 模型先通過BiLSTM 層獲取歷史信息和反向信息, 輸出每個字對于各標簽的權值矩陣, 再通過CRF 層學習標簽間依賴性調(diào)整輸出,最終得到預測結(jié)果。
經(jīng)過CRF 層對最終輸出的約束, 相較于BiLSTM 網(wǎng)絡,BiLSTM-CRF 網(wǎng)絡的預測結(jié)果不合理現(xiàn)象出現(xiàn)概率大大降低。
本文將以BiLSTM-CRF 神經(jīng)網(wǎng)絡訓練模型,完成食品安全風險知識圖譜的自動構(gòu)建。 將從數(shù)據(jù)預處理、基于BiLSTM-CRF 的知識圖譜構(gòu)建、效果及分析三小節(jié)對構(gòu)建過程進行介紹。
1.3.1 數(shù)據(jù)預處理
目前基于食品安全監(jiān)管知識抽取數(shù)據(jù)集包括監(jiān)督檢查數(shù)據(jù)集、行政許可數(shù)據(jù)集、信用監(jiān)管數(shù)據(jù)集、行政處罰數(shù)據(jù)集、抽檢監(jiān)測數(shù)據(jù)集、投訴舉報數(shù)據(jù)集、登記注冊數(shù)據(jù)集、違法失信數(shù)據(jù)集等,如表1 所示。
表1 知識抽取數(shù)據(jù)集Table 1 Dataset for knowledge extraction
因此,經(jīng)過分析權衡,本文選取以上數(shù)據(jù)集作為訓練數(shù)據(jù)。 提取2023 年1—5 月數(shù)據(jù),形成訓練集,2023 年6 月份數(shù)據(jù)作為測試集。 訓練集與測試集數(shù)據(jù)量大致是5∶1,以此構(gòu)建模型訓練使用的數(shù)據(jù)集。
1.3.2 基于BiLSTM-CRF 的知識抽取
深度學習中長短期記憶網(wǎng)絡(LSTM)利用上下文信息,通過在模型中引入遺忘門機制,使得模型可以存儲記憶序列化數(shù)據(jù), 并將其量化表現(xiàn)為參數(shù)能力。 LSTM 記憶單元結(jié)構(gòu)如圖1 所示[32]。
圖1 LSTM 記憶單元Fig.1 A LSTM memory cell
LSTM 記憶單元中細胞狀態(tài)的保存和更新由輸入門、遺忘門、輸出門決定。 輸入門將新信息保存到記憶單元,遺忘門控制歷史記憶信息保留哪些,輸出門控制更新后的細胞狀態(tài)輸出哪些。 記憶單元依照下面一組公式執(zhí)行:
其中σ 是sigmoid 函數(shù),i 是輸入門,f 是遺忘門,c 是記憶單元,o 是輸出門,h 是隱藏向量,Wxo代表輸入門(x)到輸出門(o)的權重矩陣,其他權重矩陣表示同理。
LSTM 網(wǎng)絡如圖2 所示, 其中淺藍色部分表示一個上述LSTM 記憶單元。
圖2 LSTM 網(wǎng)絡Fig.2 A LSTM network
BiLSTM,即雙向長短期神經(jīng)網(wǎng)絡,通過LSTM 特有的記憶單元控制信息傳遞, 有選擇地保留來自前向和反向上下文信息, 進而實現(xiàn)對上下文信息利用和對有效文本記憶功能。 BiLSTM 網(wǎng)絡如圖3 所示。
圖3 BiLSTM 網(wǎng)絡Fig.3 A BiLSTM network
CRF 模型具有表達長距離依賴性和交疊性特征的能力,通過將輸入的所有特征進行全局歸一化,進而求得全局最優(yōu)解。
作為BiLSTM 模型和CRF 模型的結(jié)合體,BiLSTM-CRF 模型先通過BiLSTM 層獲取歷史信息和反向信息,輸出每個字對于各標簽權值矩陣,再通過CRF 層學習標簽間依賴性調(diào)整輸出,最終得到預測結(jié)果。 圖4 以“生產(chǎn)環(huán)境衛(wèi)生不合格導致食品安全風險”為例,展示了BiLSTM-CRF 網(wǎng)絡結(jié)構(gòu)及運行結(jié)果。
圖4 BiLSTM-CRF 網(wǎng)絡結(jié)構(gòu)及實例Fig.4 A BiLSTM-CRF network and instance
在對BiLSTM-CRF 神經(jīng)網(wǎng)絡訓練中,本文采用當前適用性最強,性能最優(yōu)的自適應矩估計(Adam)優(yōu)化器;loss 函數(shù)使用最小負對數(shù)似然(NLL)。
本實驗使用精確率 (Precision)、 召回率(Recall)、準確率(Accuracy)、F1 值(F1-score)4 項作為評估指標。 Precision 衡量模型僅返回所有檢索到的實例中相關實例的能力。 Recall 衡量模型檢索所有相關實例的能力。 Accuracy 評估模型在整個數(shù)據(jù)集中做出正確預測的百分比。 F1-score 是Precision 和Recall 的調(diào)和平均值, 它同時考慮了測試精度和召回率。 這4 個指標一起可以對食品安全風險知識圖譜構(gòu)建模型進行綜合評價。 公式如下所示。
模型訓練主程序核心代碼如圖5 中偽代碼所示。
圖5 模型訓練主程序核心偽代碼Fig.5 Pseudocode of model training program
深度學習模型BiLSTM-CRF 構(gòu)造函數(shù)的核心代碼如圖6 代碼塊所示。
圖6 BiLSTM-CRF 模型構(gòu)造函數(shù)偽代碼Fig.6 Pseudocode of BiLSTM-CRF model constructor
1.3.3 食品安全風險知識圖譜構(gòu)建效果
最初訓練的版本模型效果欠佳,F(xiàn)1-score 并不理想,經(jīng)分析本文認為可能來源于參數(shù)選擇不合理,本文采用預訓練-微調(diào)方式和手工標注部分平臺數(shù)據(jù),使模型學到一些針對食品安全風險數(shù)據(jù)的特點,模型效果更適合食品安全風險結(jié)果。 后續(xù)實驗嘗試了多組參數(shù)進行對比分析,最終F1-score 可以達到較高水平。
本文在不同類型數(shù)據(jù)中, 隨機抽取一定數(shù)量數(shù)據(jù)項,人工判斷精確率、召回率、F1-score 的性能指標,用以測試不同模型在數(shù)據(jù)中的表現(xiàn),知識抽取性能如表2 所示。
表2 隨機抽取數(shù)據(jù)測試模型的性能Table 2 Performance for randomly extracted data
在不同分類(如:監(jiān)督檢查、信用監(jiān)管、投訴舉報等分類)下,系統(tǒng)對人才數(shù)據(jù)進行知識抽取時表現(xiàn)出的效果也不盡相同。 教育經(jīng)歷分類下知識抽取性能如表3 所示;工作經(jīng)歷分類下知識抽取性能如表4 所示;社會網(wǎng)絡分類下知識抽取性能如表5 所示。
表3 監(jiān)督檢查方面的性能Table 3 Performance for supervision and inspection data
表4 信用監(jiān)管方面的性能Table 4 Performance for credit supervision data
表5 投訴舉報方面的性能Table 5 Performance for complaints and reports data
根據(jù)表3~5 分析可得,在不同的數(shù)據(jù)信息分類下,知識抽取算法表現(xiàn)差異較大,該結(jié)果需要根據(jù)數(shù)據(jù)特點進行分析是否合理。
監(jiān)督檢查分類下數(shù)據(jù)信息, 一方面存在很多生僻和不規(guī)范數(shù)據(jù),另一方面,通常這類數(shù)據(jù)不以完成的一句話錄入,模型無法利用到上下文信息,因此在此項中表現(xiàn)較差。
與之相反的投訴舉報分類下信息, 通常有較完整的上下文信息如“XX 人于XX 時間食用了XX 食品,感覺惡心,出現(xiàn)嘔吐”,本文訓練出的模型對這類數(shù)據(jù)分類下信息的知識抽取效果很好。
基于所抽取原始數(shù)據(jù)的組織結(jié)構(gòu), 本文將食品安全風險設置為知識圖譜的節(jié)點, 以因素間關聯(lián)關系作為知識圖譜的邊。 通過食品安全風險信息中抽取出實體,對各因素進行關聯(lián),再通過信息所在信息項判斷關聯(lián)關系。 因素A 在食源性風險信息中出現(xiàn)因素X,因素B 在輿情信息中出現(xiàn)因素X,則因素A與因素B 之間建立關聯(lián)關系。 如圖7 所示。
圖7 食品安全風險圖譜構(gòu)建效果展示Fig.7 Demonstration for constructing a food safety risk knowledge graph
為更始圖結(jié)構(gòu)清晰, 限制所展示節(jié)點和邊的總量,不同顏色節(jié)點代表食品安全風險因素,不同顏色的邊代表不同關聯(lián)關系。
本文提出一種基于深度學習的知識抽取算法,自動構(gòu)建食品安全風險知識圖譜。 在大數(shù)據(jù)時代提供了食品安全風險知識圖譜自動抽取方案, 對于海量食品安全相關信息, 建立食品安全風險因素之間關聯(lián)關系, 為食品安全風險監(jiān)測預警提供了一種有效的技術方法。