張賢坤 李子璇 孫 月
(天津科技大學(xué)人工智能學(xué)院 天津 300457)
當(dāng)今世界處在一個(gè)信息爆炸的時(shí)代,在無(wú)數(shù)信息中高效準(zhǔn)確地檢索出自己需要的內(nèi)容成為了人們的普遍需求。例如:當(dāng)人們遇到一個(gè)新的問題時(shí)會(huì)憑借自己的經(jīng)驗(yàn)進(jìn)行推理得到解決辦法,而案例推理(CBR)就是讓機(jī)器模擬人類這種思維的推理方法。案例推理被成功地應(yīng)用在許多領(lǐng)域,例如:民航突發(fā)事件領(lǐng)域[1]、公共危機(jī)事件領(lǐng)域[2]、心理咨詢領(lǐng)域[3]和地鐵運(yùn)營(yíng)領(lǐng)域[4]等,但案例推理應(yīng)用在食品安全領(lǐng)域的研究較少。近年來(lái)越來(lái)越多食品安全事件的曝光引發(fā)了社會(huì)大眾對(duì)于食品安全問題的重視,然而目前利用典型的食品安全案例來(lái)指導(dǎo)解決新的食品安全問題的研究處于起步階段。案例推理方法是將推理與機(jī)器學(xué)習(xí)結(jié)合起來(lái),根據(jù)過(guò)去的經(jīng)驗(yàn)或案例來(lái)解決新問題[5],故而將案例推理應(yīng)用在食品安全領(lǐng)域會(huì)有很好的前景。
案例檢索是案例推理過(guò)程中的重要一環(huán),已有的案例檢索方法有很多,如基于文本特征提取和語(yǔ)義相似度計(jì)算的方法[1-2]、基于本體的方法[3,6]和基于聚類建立索引的方法[7-8]等,但是傳統(tǒng)的檢索方法不能反映案例之間的內(nèi)在聯(lián)系。而僅基于知識(shí)圖譜結(jié)構(gòu)化信息的檢索[9],忽略了非結(jié)構(gòu)化的語(yǔ)義,也會(huì)導(dǎo)致檢索結(jié)果不夠準(zhǔn)確和全面。
為解決上述問題,本文搜集了大量的食品安全相關(guān)案例并進(jìn)行了分析,提出了基于知識(shí)圖譜和屬性特征向量化的食品安全案例檢索方法,也是一個(gè)新的食品安全案例檢索模型。運(yùn)用知識(shí)圖譜技術(shù)構(gòu)建了食品安全案例庫(kù),利用三元組的形式來(lái)表示食品安全案例,進(jìn)而更直觀地展現(xiàn)案例特征及其之間的關(guān)系,根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)計(jì)算關(guān)系相似度。從案例庫(kù)中獲取食品安全案例具有代表性的屬性特征,使用BERT語(yǔ)言表示模型將其向量化,利用歐氏距離相似度度量方法計(jì)算屬性相似度;最后對(duì)關(guān)系和屬性相似度加權(quán)求和,得到案例總相似度。所提方法可以高效、準(zhǔn)確地處理食品安全案例檢索任務(wù)。
本文主要研究的內(nèi)容是食品安全案例的檢索,傳統(tǒng)的案例表示方法直接用文字描述缺乏特征的凸顯,故根據(jù)案例特點(diǎn)采用知識(shí)圖譜表示具有直觀的效果。雖然知識(shí)圖譜技術(shù)走在人工智能研究領(lǐng)域的最前沿,應(yīng)用范圍也越來(lái)越廣泛,但在食品安全相關(guān)領(lǐng)域缺乏成熟的食品安全案例知識(shí)圖譜。因此,本文針對(duì)食品安全案例的特點(diǎn)進(jìn)行知識(shí)圖譜的構(gòu)建。
利用食品安全案例知識(shí)圖譜進(jìn)行案例檢索時(shí),不僅要考慮知識(shí)圖譜的關(guān)系結(jié)構(gòu),還應(yīng)更多關(guān)注案例的語(yǔ)義信息。而一般的知識(shí)圖譜表示學(xué)習(xí)方法多偏重于結(jié)構(gòu)的利用,如經(jīng)典的TransE模型[10]利用三元組的結(jié)構(gòu)信息進(jìn)行表示學(xué)習(xí),將知識(shí)圖譜中的關(guān)系看作實(shí)體間的某種平移向量,采用最大間隔法增強(qiáng)知識(shí)表示區(qū)分能力,處理簡(jiǎn)單的大規(guī)模知識(shí)圖譜有一定效果,但處理復(fù)雜關(guān)系效果不好,缺少對(duì)實(shí)體語(yǔ)義信息的理解,存在局限性。因此,選擇用語(yǔ)言表示模型來(lái)將文字語(yǔ)義信息向量化,能夠有效表示實(shí)體屬性特征的文字含義,通過(guò)對(duì)特征向量的計(jì)算,可以準(zhǔn)確計(jì)算出特征之間的差別大小,且計(jì)算效率較高,在食品安全案例檢索的應(yīng)用效果較為明顯。
運(yùn)用知識(shí)圖譜技術(shù)描述案例,構(gòu)建食品安全知識(shí)圖譜案例庫(kù),可以將多源的、異構(gòu)的數(shù)據(jù)連接在一起,直觀體現(xiàn)了節(jié)點(diǎn)之間復(fù)雜的聯(lián)系。構(gòu)建食品安全案例知識(shí)圖譜就是描述案例的屬性以及案例之間的關(guān)系,利用三元組的形式來(lái)表示食品安全案例,三元組的基本形式主要包括(實(shí)體-屬性-屬性值)和(實(shí)體1-關(guān)系-實(shí)體2)。
食品安全案例本身可以當(dāng)作實(shí)體,一些重要特征就可以作為案例的屬性,本文中設(shè)置每個(gè)案例的屬性包括案例編號(hào)、案例名稱、發(fā)生時(shí)間、食品名、毒物名、案例來(lái)源和鏈接,案例實(shí)體總體表示為Case=(id,name,date,foodname,poison,source,link)。食品安全案例以(實(shí)體-屬性-屬性值)三元組的形式表示,以某個(gè)食品安全案例為例:(案例-id-10001),(案例-name-商販?zhǔn)褂没ぴ贤翱境鲇卸镜毓?,(案例-date-2007/1/1),(案例-foodname-烤地瓜),(案例-poison-化工桶),(案例-source-大連晚報(bào)),(案例-link-http://www.39kf.com/focus/spaq/01.shtml)。
食品安全事件大致可以分為6種類型:食品添加劑、非食用物質(zhì)、禁用農(nóng)藥獸藥、微生物、摻假摻雜和品質(zhì)指標(biāo)。出現(xiàn)食品安全問題的環(huán)節(jié)大致可以分為7類:種植養(yǎng)殖、加工、包裝、儲(chǔ)藏、運(yùn)輸、銷售和消費(fèi)[11]。致病程度可以分為:急性、亞急性、慢性和其他。而發(fā)生食品安全事件的地點(diǎn)分為34個(gè)省級(jí)行政區(qū)和多地區(qū),共35類。上述內(nèi)容以(實(shí)體1-關(guān)系-實(shí)體2)三元組形式表示為4種關(guān)系:案例與食品安全事件類型(Cases-CATEGORY_IS-Category);案例與發(fā)生地區(qū)(Cases-HAPPENED_IN-Place);案例與問題環(huán)節(jié)(Cases-PROBLEM_IS-Problem);案例與致病程度(Cases-DEGREE_IS-Degree)。還以上文提到的案例舉例,關(guān)系表示為:(案例-CATEGORY_IS-非食用物質(zhì)),(案例-PROBLEM_IS-加工),(案例-DEGREE_IS-亞急性),(案例-HAPPENED_IN-遼寧)。
本文共篩選出300個(gè)較為有價(jià)值的食品安全案例進(jìn)行知識(shí)圖譜表示,所有案例特征以三元組的形式存儲(chǔ)在Neo4j圖數(shù)據(jù)庫(kù)當(dāng)中,構(gòu)成食品安全案例知識(shí)圖譜,圖1為示例圖。圖中最小的節(jié)點(diǎn)表示案例實(shí)體,其他節(jié)點(diǎn)展示了部分案例類型實(shí)體、問題環(huán)節(jié)實(shí)體、致病程度實(shí)體以及地點(diǎn)實(shí)體,而有向邊標(biāo)注了關(guān)系類型,屬性信息未展示。
圖1 食品安全案例知識(shí)圖譜示例圖
語(yǔ)言表示模型是通過(guò)文本語(yǔ)料庫(kù)訓(xùn)練的“語(yǔ)言理解”模型,目的是應(yīng)用于下游的智能問答、情感分析和文本聚類等自然語(yǔ)言處理(NLP)任務(wù)。預(yù)訓(xùn)練的優(yōu)勢(shì)是在特定任務(wù)中使用時(shí),不需要用大量的語(yǔ)料來(lái)訓(xùn)練,只需要簡(jiǎn)單的修改,用特定任務(wù)的數(shù)據(jù)進(jìn)行一個(gè)增量訓(xùn)練,并微調(diào)權(quán)重,就可以得到有效的向量表示,提高了工作效率。
NLP領(lǐng)域的建模方法分為基于規(guī)則的[12]和基于統(tǒng)計(jì)的[13],后者解決了前者建模過(guò)程中出現(xiàn)的維數(shù)災(zāi)難、詞相似性等問題的同時(shí)提高了性能?;诮y(tǒng)計(jì)語(yǔ)言模型的研究,如:Google在2013年提出word2vec神經(jīng)語(yǔ)言模型[14],基于深度學(xué)習(xí)的想法將文字詞語(yǔ)通過(guò)訓(xùn)練模型轉(zhuǎn)化為N維固定的向量空間,向量之間的相似度可以表示詞語(yǔ)的相似度,但固定的向量表示并不能準(zhǔn)確表達(dá)所有情況下的語(yǔ)義。ELMo模型[15]使用Bi-LSTM[16]語(yǔ)言模型,根據(jù)不同的訓(xùn)練集語(yǔ)境,動(dòng)態(tài)生成不同的詞向量表示,解決了一詞多義問題。GPT模型[17]利用Transformer[18]網(wǎng)絡(luò)代替LSTM作為語(yǔ)言模型可以更好地捕獲長(zhǎng)距離語(yǔ)言結(jié)構(gòu),GPT也是基于微調(diào)的語(yǔ)言模型,以半監(jiān)督的方式來(lái)處理語(yǔ)言理解的任務(wù),解決ELMo每個(gè)單獨(dú)任務(wù)的參數(shù)量過(guò)多的問題,但GPT模型僅關(guān)注詞語(yǔ)左邊的內(nèi)容,表達(dá)不夠準(zhǔn)確。
BERT模型[19]融合了以上模型的優(yōu)勢(shì),運(yùn)用海量語(yǔ)料數(shù)據(jù)訓(xùn)練而成,是一個(gè)泛化能力很強(qiáng)的預(yù)訓(xùn)練模型。BERT模型結(jié)構(gòu)如圖2所示,是一種多層雙向Transformer編碼器,以一串單詞作為輸入,這些單詞不斷地向編碼器棧上層流動(dòng),每一層都要經(jīng)過(guò)自注意力層和前饋網(wǎng)絡(luò),然后再將其交給下一個(gè)編碼器,通過(guò)在所有層中對(duì)左右上下文進(jìn)行聯(lián)合調(diào)節(jié),從未標(biāo)記的文本中預(yù)訓(xùn)練深層雙向表示,輸出的向量即可更準(zhǔn)確地表達(dá)詞的語(yǔ)義信息。
圖2 BERT模型結(jié)構(gòu)
BERT模型采用Transformer而不是Bi-LSTM的主要原因是其有更深的層數(shù),具有更好并行性,能更徹底地捕捉語(yǔ)句中的雙向關(guān)系;并且應(yīng)用于特定的任務(wù)時(shí),無(wú)須對(duì)體系結(jié)構(gòu)進(jìn)行大量修改,只需對(duì)預(yù)訓(xùn)練好的BERT模型進(jìn)行微調(diào)即可得到很好的效果。綜上所示,針對(duì)本文食品安全案例的屬性特征以及內(nèi)容,選擇BERT語(yǔ)言表示模型進(jìn)行向量化表示,能夠更加準(zhǔn)確地體現(xiàn)案例的語(yǔ)義信息。
案例檢索就是查詢案例庫(kù)中與目標(biāo)案例最相關(guān)的案例,相似度度量方法可以準(zhǔn)確表示案例之間的相關(guān)性。用知識(shí)圖譜構(gòu)建的食品安全案例庫(kù),其本質(zhì)是一張語(yǔ)義網(wǎng)絡(luò),節(jié)點(diǎn)是實(shí)體、概念,邊則由關(guān)系構(gòu)成。其中節(jié)點(diǎn)的屬性特征含有語(yǔ)義信息,運(yùn)用語(yǔ)言表示模型做向量化處理,再對(duì)向量進(jìn)行相似度計(jì)算。而對(duì)于邊,需要根據(jù)食品安全案例的關(guān)系特點(diǎn)選擇合適的相似度計(jì)算方法。
本文方法綜合考慮基于知識(shí)圖譜關(guān)系結(jié)構(gòu)的案例關(guān)系相似度和基于案例屬性特征的屬性相似度,分別給予不同的比重,最后得到綜合加權(quán)的案例相似度。對(duì)于兩個(gè)案例P和Q,用sim(P,Q)表示它們之間的案例總相似度。sim(P,Q)∈(0,1),相似度值越趨近于1則兩個(gè)案例越相似,越趨近于0則兩個(gè)案例越不相同。
sim(P,Q)=αsimatt(P,Q)+(1-α)simrel(P,Q)
(1)
式中:simatt(P,Q)表示案例屬性相似度;α表示案例屬性相似度所占的比重;simrel(P,Q)表示案例關(guān)系相似度;(1-α)表示案例關(guān)系相似度所占的比重。
1.3.1案例關(guān)系相似度計(jì)算
案例關(guān)系相似度計(jì)算是基于食品安全案例知識(shí)圖譜的關(guān)系結(jié)構(gòu)進(jìn)行的相似度計(jì)算。例如,某一案例的關(guān)系圖如圖3所示,此案例的關(guān)系有4種:CATEGORY_IS、HAPPENED_IN、PROBLEM_IS和DEGREE_IS。與此案例相連接的關(guān)系實(shí)體有5個(gè):“品質(zhì)指標(biāo)”“微生物”“北京”“加工”和“其他”,其中品質(zhì)指標(biāo)和微生物都是此案例的CATEGORY_IS關(guān)系實(shí)體,由此可以說(shuō)明案例同種關(guān)系的實(shí)體節(jié)點(diǎn)不唯一。由于發(fā)生地點(diǎn)不是計(jì)算關(guān)系相似度的必要因素,這里不進(jìn)行地點(diǎn)的關(guān)系相似度計(jì)算。
圖3 案例關(guān)系圖示例
Jaccard相似系數(shù)[20]適用于有限個(gè)數(shù)樣本集之間的相似性比較。Jaccard系數(shù)值越大,樣本相似度越高。在食品安全案例知識(shí)圖譜中,關(guān)系的種類有限,關(guān)系實(shí)體的數(shù)量有限,并且對(duì)于案例實(shí)體與關(guān)系實(shí)體不一一對(duì)應(yīng)的情況,適合采用Jaccard相似系數(shù)來(lái)計(jì)算食品安全案例關(guān)系之間的相似度,用simrel(P,Q)表示,計(jì)算式表示為:
(2)
式中:simrel(P,Q)∈[0,1],表示案例P和Q的關(guān)系相似度;N(P)表示與案例節(jié)點(diǎn)P有關(guān)系的實(shí)體節(jié)點(diǎn);N(Q)表示與案例節(jié)點(diǎn)Q的關(guān)系節(jié)點(diǎn)。
舉個(gè)實(shí)例,圖4為兩個(gè)相關(guān)案例的關(guān)系圖,可以看出這兩個(gè)案例有4個(gè)共同的關(guān)系實(shí)體,分別為“其他”“品質(zhì)指標(biāo)”“加工”“微生物”,計(jì)算關(guān)系相似度的過(guò)程及結(jié)果如下:
圖4 兩個(gè)相關(guān)案例關(guān)系圖示例
1.3.2案例屬性相似度計(jì)算
采用知識(shí)圖譜描述食品安全案例直觀表現(xiàn)出來(lái)的是實(shí)體之間的關(guān)系結(jié)構(gòu),而案例實(shí)體的屬性值包含更豐富的語(yǔ)義特征,如某案例屬性值示例如圖5所示。因此在案例檢索的任務(wù)中不僅要考慮實(shí)體之間的關(guān)系結(jié)構(gòu),還要考慮對(duì)屬性特征的語(yǔ)義信息進(jìn)行處理計(jì)算。
圖5 某案例屬性值示例
本文從案例中選取有價(jià)值的案例屬性特征,包括案例名稱、食品名、毒物名,可以表示為C=(name,foodname,poison),采用BERT語(yǔ)言表示模型進(jìn)行文本屬性向量化處理,處理結(jié)果用于后續(xù)計(jì)算案例的屬性相似度。
在進(jìn)行文本屬性向量化處理后,對(duì)于兩個(gè)案例P和Q,定義VP=(P1,P2,…,Pn),VQ=(Q1,Q2,…,Qn)表示兩個(gè)案例實(shí)體的屬性特征向量,分別對(duì)每組屬性特征向量采用歐氏距離[21]計(jì)算屬性距離,并根據(jù)屬性的重要程度分配權(quán)重,計(jì)算式表示為:
(3)
式中:wi表示分配給第i組屬性特征向量的權(quán)重,本算法有三組屬性特征,故n=3。Distatt(P,Q)∈[0,+∞),表示加權(quán)綜合的案例屬性特征向量距離,當(dāng)Distatt(P,Q)=0時(shí),表示兩個(gè)案例屬性完全相同。將距離轉(zhuǎn)換為歐氏距離相似度,計(jì)算式表示為:
(4)
式中:simatt(P,Q)∈(0,1],表示兩個(gè)案例的屬性相似度,simatt(P,Q)值越大表示案例間屬性相似度越高。
本文提出的基于知識(shí)圖譜和屬性特征向量化的食品安全案例檢索方法,詳細(xì)步驟描述如下:
輸入:目標(biāo)案例TargetCase的案例名稱nameTar,食品名foodnameTar,毒物名poisonTar,目標(biāo)案例的關(guān)系集合N(Tar);案例庫(kù)中第k個(gè)案例Casek的案例名稱namek,食品名foodnamek,毒物名poisonk,案例庫(kù)中第k個(gè)案例的關(guān)系集合N(Ck)。
輸出:與目標(biāo)案例最相似的前n個(gè)案例。
(1) 使用BERT語(yǔ)言表示模型分別對(duì)nameTar、foodnameTar、poisonTar和namek、foodnamek、poisonk向量化,分別得到TargetCase和Casek的屬性特征向量VTar1、VTar2、VTar3和VCk1、VCk2、VCk3。
(2) 使用式(3)計(jì)算加權(quán)綜合的案例屬性特征向量歐氏距離Distatt(Tar,Ck)。
(3) 使用式(4)將Distatt(Tar,Ck)轉(zhuǎn)換為相似度,得到案例屬性相似度simatt(Tar,Ck)。
(4) 使用式(2)計(jì)算目標(biāo)案例的關(guān)系集合N(Tar)和案例庫(kù)中第k個(gè)案例的關(guān)系集合N(Ck)的Jaccard相似度simrel(Tar,Ck)。
(5) 使用式(1)計(jì)算目標(biāo)案例與案例庫(kù)中第k個(gè)案例的綜合相似度sim(Tar,Ck),α取值0.9。
(6) 重復(fù)步驟(1)至步驟(5),直到目標(biāo)案例與案例庫(kù)中所有案例都進(jìn)行了案例相似度計(jì)算。
(7) 將案例庫(kù)中所有案例,按照sim(Tar,Ck)的值降序排列。
(8) 取前n個(gè)案例,即得到案例檢索結(jié)果。
提出的基于知識(shí)圖譜和屬性特征向量化的食品安全案例檢索方法是針對(duì)食品安全領(lǐng)域的案例檢索方法,實(shí)驗(yàn)過(guò)程分為三個(gè)部分,最終驗(yàn)證該方法的有效性和檢索結(jié)果的準(zhǔn)確性。
實(shí)驗(yàn)的硬件環(huán)境為:Intel(R) Core(TM) i7- 4790 CPU @ 3.60 GHz,內(nèi)存4 GB;操作系統(tǒng)為Windows 7;集成開發(fā)環(huán)境(IDE)為PyCharm2019,編程語(yǔ)言為Python。
實(shí)驗(yàn)數(shù)據(jù)的樣本集共300條食品安全案例,來(lái)源是食品安全類網(wǎng)站以及曝光食品安全新聞事件等網(wǎng)站,爬取結(jié)構(gòu)化和半結(jié)構(gòu)化的食品安全案例,再經(jīng)過(guò)部分人工標(biāo)注整理,并存儲(chǔ)在Neo4j圖數(shù)據(jù)庫(kù)中,得到食品安全知識(shí)圖譜案例庫(kù)。
食品安全案例的眾多屬性特征中案例名稱、食品名和毒物名具有代表性。案例的名稱一般較長(zhǎng),在15~25字之間,大多數(shù)案例名稱是食品安全事件的新聞標(biāo)題,為了吸引人的關(guān)注會(huì)突出食品安全事件的特點(diǎn),部分案例名稱中也會(huì)出現(xiàn)食品名或毒物名,具有一定的代表性。案例的食品名和毒物名是最為關(guān)鍵的案例屬性特征,一般通過(guò)這兩類屬性特征能夠大致確定案例類型和問題環(huán)節(jié)等,非常具有代表性。三種屬性綜合計(jì)算能夠更加準(zhǔn)確地表示案例的語(yǔ)義信息,因此選擇案例名稱、食品名和毒物名作為案例的屬性特征進(jìn)行計(jì)算。
在計(jì)算案例屬性相似度的過(guò)程中,使用bert-as-service[22]對(duì)目標(biāo)案例和案例庫(kù)中案例的案例名稱、食品名和毒物名這三種屬性特征分別進(jìn)行了向量化處理,bert-as-service使用BERT模型作為句子編碼器,并通過(guò)ZeroMQ將其托管為服務(wù),從而以快速可靠的方式將屬性特征映射為特定長(zhǎng)度的表示形式。再分別計(jì)算每組屬性特征向量的歐氏距離,由于三種屬性對(duì)于案例本身的重要程度不同,因此分配不同的權(quán)重計(jì)算案例屬性相似度。
隨機(jī)選取目標(biāo)案例和對(duì)比案例,分別調(diào)整屬性權(quán)重分配情況進(jìn)行多組反復(fù)實(shí)驗(yàn),每組實(shí)驗(yàn)以屬性相似度計(jì)算結(jié)果為標(biāo)準(zhǔn)判斷權(quán)重分配的合理性。舉例說(shuō)明,實(shí)驗(yàn)選取某“三聚氰胺”事件作為目標(biāo)案例,在案例庫(kù)中隨機(jī)抽取了10個(gè)對(duì)比案例(案例1-案例10),案例10為目標(biāo)案例本身,案例內(nèi)容如表1所示。
表1 “三聚氰胺”目標(biāo)案例與對(duì)比案例內(nèi)容
續(xù)表1
分別改變?nèi)M屬性的權(quán)重,且保證三個(gè)屬性特征的權(quán)重總和為1,進(jìn)行對(duì)比實(shí)驗(yàn)得到不同的屬性相似度計(jì)算結(jié)果。依次計(jì)算目標(biāo)案例與案例1-案例10的屬性相似度,結(jié)果如圖6所示。圖6中“權(quán)重均分”分配給案例名稱、食品名和毒物名三組屬性的權(quán)重均為1/3;“加權(quán)1”的權(quán)重分配為0.45、0.45、0.1;“加權(quán)2”的權(quán)重分配為0.45、0.1、0.45;“加權(quán)3”的權(quán)重分配為0.1、0.45、0.45。可以看出四種權(quán)重的分配下,與目標(biāo)案例最相似的是案例10、案例6和案例8。由于目標(biāo)案例與案例10是同一案例,相似度值均為1,驗(yàn)證了該方法的有效性。圖中在前三種權(quán)重分配下,案例8的相似度值略高于案例6說(shuō)明案例8與目標(biāo)案例更相似;而最后一種權(quán)重分配下,案例6與目標(biāo)案例更相似。根據(jù)表1的案例內(nèi)容可以看出目標(biāo)案例與案例6、案例8均為“三聚氰胺”類事件,而案例6與目標(biāo)案例的食品名均為乳制品,因此案例6應(yīng)當(dāng)較案例8與目標(biāo)案例更相似。
圖6 不同權(quán)重的屬性相似度
實(shí)驗(yàn)結(jié)果說(shuō)明最后一種權(quán)重分配更合理,即應(yīng)該減少案例名稱的權(quán)重,增加食品名和毒物名的權(quán)重。分析原因是實(shí)驗(yàn)中比較了食品名和毒物名的重要程度,這二者在不同的角度均反映了食品安全事件的特點(diǎn),因此設(shè)置食品名和毒物名屬性特征權(quán)重相等。案例名稱雖具有一定代表性,但有時(shí)為了吸引讀者眼球會(huì)使用一些修辭手法,具有主觀性。食品名和毒物名均相對(duì)更加客觀,因此食品名稱和毒物名稱均應(yīng)該分配較高權(quán)重。經(jīng)過(guò)多組實(shí)驗(yàn),案例名稱、食品名和毒物名的權(quán)重分別為0.1、0.45、0.45時(shí)結(jié)果最準(zhǔn)確。
實(shí)驗(yàn)隨機(jī)選取1個(gè)目標(biāo)案例和10個(gè)案例庫(kù)中的對(duì)比案例(案例1-案例10),設(shè)置案例10為目標(biāo)案例本身,依次計(jì)算目標(biāo)案例與案例1-案例10的綜合案例相似度。改變本文方法中計(jì)算案例屬性特征向量的方法,即在將案例的屬性特征使用BERT模型向量化后,使用歐氏距離相似度與余弦相似度分別計(jì)算案例的屬性相似度,比較兩種方法的效果。改變?chǔ)恋娜≈担肑accard相似度計(jì)算的關(guān)系相似度分別與兩種屬性相似度加權(quán)求和,得到綜合的案例相似度,并對(duì)比檢索效果。
第一組對(duì)比實(shí)驗(yàn)與2.3節(jié)的實(shí)驗(yàn)數(shù)據(jù)相同,案例內(nèi)容如表1所示,改變?chǔ)恋娜≈?,用歐氏距離相似度和余弦相似度計(jì)算出的綜合案例相似度結(jié)果如表2和表3所示。
表2 “三聚氰胺”案例使用歐氏距離相似度的結(jié)果
表3 “三聚氰胺”案例使用余弦相似度的結(jié)果
將表2和表3的相似度結(jié)果用折線圖表示,如圖7所示。當(dāng)α取值為1時(shí),由圖7(a)和(b)的折線對(duì)比可以看出,采用歐氏距離計(jì)算的結(jié)果更有區(qū)分度,能明顯得出與目標(biāo)案例最相似的案例為案例10、案例6和案例8,而使用余弦相似度計(jì)算的結(jié)果區(qū)分度很小。分析原因是余弦相似度注重兩案例間的方向偏差,更適用于區(qū)分不同領(lǐng)域的案例;而歐氏距離更注重二者的差異程度,因此歐氏距離相似度計(jì)算方法更適用于本文食品安全領(lǐng)域的案例檢索。
(a) 歐氏距離相似度結(jié)果
(b) 余弦相似度結(jié)果圖7 “三聚氰胺”案例結(jié)果對(duì)比
隨著α值減小,(1-α)值增大,由圖7可以看出結(jié)果的區(qū)分度也隨之增大,但檢索效果并不是越來(lái)越準(zhǔn)確,例如:目標(biāo)案例與案例7、案例8的比較,由表1的案例內(nèi)容明顯看出案例8與目標(biāo)案例更相似,均為“三聚氰胺”事件,而案例7為“亞硝酸鹽”事件,但是圖7(a)中隨著α值的減小,案例7和案例8的相似度值越來(lái)越接近,原因是這兩個(gè)案例對(duì)應(yīng)的關(guān)系節(jié)點(diǎn)相同導(dǎo)致目標(biāo)案例與案例7、案例8的關(guān)系相似度相同,因此關(guān)系相似度的權(quán)重越高,越無(wú)法區(qū)分二者哪個(gè)與目標(biāo)案例更相似。而在圖7(b)中無(wú)論α值如何變化,目標(biāo)案例與案例7、案例8的相似度都很接近,檢索效果不理想。
當(dāng)α取值為0時(shí),根據(jù)圖7的結(jié)果得到目標(biāo)案例與案例6、案例8的相似度值均為1,目標(biāo)案例與案例1、案例7、案例8的案例相似度均為0.5,查看表1的內(nèi)容顯然是不正確的,分析原因是當(dāng)α取值為0時(shí),案例相似度僅由關(guān)系相似度決定,缺少了屬性特征對(duì)案例相似度的影響。
為了避免“三聚氰胺”結(jié)果的特殊性,進(jìn)行了多次驗(yàn)證。第二組對(duì)比實(shí)驗(yàn)選取某“工業(yè)鹽”事件作為目標(biāo)案例,在案例庫(kù)中隨機(jī)抽取了10個(gè)對(duì)比案例(案例1-案例10),案例10為目標(biāo)案例本身,案例內(nèi)容如表4所示,依次計(jì)算目標(biāo)案例與案例1~10的案例相似度。
表4 “工業(yè)鹽”目標(biāo)案例與對(duì)比案例內(nèi)容
改變?chǔ)恋娜≈?,用歐氏距離相似度和余弦相似度計(jì)算出的綜合案例相似度結(jié)果如圖8所示。根據(jù)表4的案例內(nèi)容可知與“工業(yè)鹽”目標(biāo)案例最相似的是案例10和案例7,次相似的是案例5和案例8。從圖8的結(jié)果可以看出當(dāng)α取值為1時(shí),采用歐氏距離相似度的結(jié)果比余弦相似度結(jié)果更有區(qū)分度。隨著α值的減小,關(guān)系相似度的比重增加,兩種計(jì)算方法的結(jié)果區(qū)分度都明顯增大,目標(biāo)案例與案例1的案例相似度也逐漸提高,由表4內(nèi)容看出案例1不是“工業(yè)鹽”相關(guān)案例,故案例1相似度值不應(yīng)該高于案例5和案例8的相似度值,圖8(a)滿足要求。而無(wú)論α取值如何變化,圖8(b)中的案例1與案例5、案例8的區(qū)分度始終不明顯,不符合實(shí)際情況。
(a) 歐氏距離相似度結(jié)果
(b) 余弦相似度結(jié)果圖8 “工業(yè)鹽”案例結(jié)果對(duì)比
第三組對(duì)比實(shí)驗(yàn)選取某“二氧化硫”事件作為目標(biāo)案例,在案例庫(kù)中隨機(jī)抽取了10個(gè)對(duì)比案例(案例1-案例10),案例10為目標(biāo)案例本身,案例內(nèi)容如表5所示,依次計(jì)算目標(biāo)案例與案例1-案例10的案例相似度。
表5 “二氧化硫”目標(biāo)案例與對(duì)比案例內(nèi)容
續(xù)表5
改變?chǔ)恋娜≈?,用歐氏距離相似度和余弦相似度計(jì)算出的綜合案例相似度結(jié)果如圖9所示。根據(jù)表5案例內(nèi)容可以看出與目標(biāo)案例最相似的是案例10和案例8,而當(dāng)α取值為1時(shí),圖9(a)的結(jié)果比圖9(b)的結(jié)果更準(zhǔn)確,但隨著α值的減小,關(guān)系相似度的比重增加,案例5的相似度值逐漸增大,甚至高于案例8的相似度值,不符合實(shí)際情況。
(a) 歐氏距離相似度
(b) 余弦相似度圖9 “二氧化硫”案例結(jié)果對(duì)比
因此,經(jīng)過(guò)多組實(shí)驗(yàn)驗(yàn)證,對(duì)于本文食品安全案例的檢索方法,采用歐氏距離相似度方法更適于計(jì)算案例屬性相似度;并且當(dāng)α的值取0.9,(1-α)的值取0.1時(shí),即案例屬性相似度的權(quán)重為0.9,關(guān)系相似度的權(quán)重為0.1時(shí),能夠得到最準(zhǔn)確的案例檢索結(jié)果。
本文提出的基于知識(shí)圖譜和屬性特征向量化的食品安全案例檢索方法采用BERT語(yǔ)言表示模型將食品安全案例的屬性特征向量化,并用歐氏距離相似度方法計(jì)算出加權(quán)綜合的案例屬性相似度,同時(shí)使用Jaccard相似度方法計(jì)算出案例關(guān)系相似度,再將屬性相似度和關(guān)系相似度加權(quán)求和得到案例相似度,根據(jù)案例相似度值進(jìn)行降序排列,得到案例檢索的結(jié)果。
使用本文提出的方法進(jìn)行案例檢索,隨機(jī)取5個(gè)不同的目標(biāo)案例,分別與案例庫(kù)中300個(gè)案例進(jìn)行案例檢索。由于案例樣本數(shù)有限,這里取排名前5的案例作為檢索的結(jié)果,實(shí)驗(yàn)結(jié)果如表6至表10所示。其中表6目標(biāo)案例為“湖北‘三聚氰胺玉米奶’事件追蹤,玉米奶,三聚氰胺,非食用物質(zhì),湖南,加工,其他”;表7目標(biāo)案例為“路邊賣的蜜餞涼果七成不合格,路邊蜜餞涼果,二氧化硫,食品添加劑,山東,儲(chǔ)藏,慢性”;表8目標(biāo)案例為“兩男子生產(chǎn)假食用鹽坪山銷售被檢察院起訴,食鹽,工業(yè)鹽,非食用物質(zhì),摻假摻雜,廣東,加工,其他”;表9目標(biāo)案例為“國(guó)內(nèi)養(yǎng)殖業(yè)抗生素濫用觸目驚心檢測(cè)卻僅針對(duì)出口,養(yǎng)殖業(yè),抗生素,禁用農(nóng)藥、獸藥,多地區(qū),種植養(yǎng)殖,其他”;表10目標(biāo)案例為“北京市場(chǎng)檢查發(fā)現(xiàn)有毒海絲螺中毒者已治愈,海絲螺,麻痹性貝類毒素,非食用物質(zhì),北京,銷售,亞急性”。
表6 “三聚氰胺”事件案例檢索結(jié)果
表7 “二氧化硫”事件案例檢索結(jié)果
表8 “工業(yè)鹽”事件案例檢索結(jié)果
表9 “抗生素”事件案例檢索結(jié)果
表10 “中毒”事件案例檢索結(jié)果
由表6至表10的案例檢索結(jié)果可以看出,與目標(biāo)案例越相似的案例排名越靠前,驗(yàn)證了所提方法的有效性和準(zhǔn)確性。同時(shí)對(duì)照結(jié)果查看了案例庫(kù)中所有案例,驗(yàn)證了結(jié)果的全面性。
本文根據(jù)食品安全案例的特點(diǎn),采用三元組形式表示案例的屬性特征和關(guān)系結(jié)構(gòu),從而構(gòu)建了食品安全知識(shí)圖譜案例庫(kù),并設(shè)計(jì)了案例檢索方法,驗(yàn)證了檢索的有效性、準(zhǔn)確性和全面性。然而,在此工作的基礎(chǔ)上,還需要獲得更多案例樣本來(lái)擴(kuò)充案例庫(kù),構(gòu)建完善的知識(shí)圖譜,并且考慮加入“發(fā)生地點(diǎn)”等更多的食品安全案例特征,進(jìn)一步提高案例檢索的準(zhǔn)確率和效率。同時(shí),在知識(shí)圖譜的擴(kuò)展和應(yīng)用方面本文方法還具有一定的局限性,如何對(duì)食品安全案例進(jìn)行更加詳細(xì)合理的知識(shí)表示與知識(shí)的計(jì)算、推理還需要進(jìn)一步研究。