王小藝, 王姿懿, 趙峙堯,*, 張 新, 陳 謙, 李 飛
(1.北京工商大學(xué) 人工智能學(xué)院, 北京 100048;2.北京工商大學(xué) 國家環(huán)境保護(hù)食品鏈污染防治重點實驗室, 北京 100048;3.北京服裝學(xué)院, 北京 100029)
隨著我國經(jīng)濟(jì)社會的快速發(fā)展,人民生活水平不斷提高,老百姓對食品安全的關(guān)注程度日漸提高[1]。在食品安全風(fēng)險管理中,食品安全風(fēng)險評估是以數(shù)據(jù)為基礎(chǔ),在食源處分析與解決食品安全問題強有力的手段。2009年我國頒布實施的《中華人民共和國食品安全法》規(guī)定:“國家建立食品安全風(fēng)險監(jiān)測制度,由國務(wù)院衛(wèi)生行政部門會同國務(wù)院食品安全監(jiān)督管理等部門,制定、實施國家食品安全風(fēng)險監(jiān)測計劃,成立由醫(yī)學(xué)、農(nóng)業(yè)、食品、營養(yǎng)、生物、環(huán)境等方面的專家組成的食品安全風(fēng)險評估專家委員會進(jìn)行食品安全風(fēng)險評估?!盵2]該規(guī)定突出強調(diào)了開展食品安全風(fēng)險評估與預(yù)測具有極強的現(xiàn)實意義。
當(dāng)前,風(fēng)險評價方法主要包括主觀賦權(quán)評價法、客觀賦權(quán)評價法,以及綜合主客觀賦權(quán)評價法三大類。主觀賦權(quán)評價法中層次分析法(analytic hierarchy process,AHP)和德爾菲(Delphi)法是目前比較成熟的風(fēng)險評估方法。AHP通過構(gòu)建目標(biāo)層、準(zhǔn)則層、方案層的三層結(jié)構(gòu)來處理復(fù)雜的多目標(biāo)決策問題[3],但仍存在結(jié)構(gòu)復(fù)雜,易受權(quán)威人士影響等不足[4];Delphi法是一種依賴于眾多專家意見的反饋匿名函詢法[5],通過不斷整合、歸納、統(tǒng)計,匿名反饋最終得到一致的意見,但收集匯總專家意見的過程相對復(fù)雜,花費時間較長[6]。客觀賦權(quán)評價法中多層前饋(back propagation,BP)、隨機(jī)森林(random forest,RF)、支持向量機(jī)(support vector machine,SVM)等算法應(yīng)用較為廣泛。BP算法[7]是一種速度較快的梯度下降算法,具有較強的非線性映射能力,但容易陷入局部最小值等問題;RF算法[8]是Bagging的一個擴(kuò)展變體,計算復(fù)雜度不高,但容易出現(xiàn)過擬合問題;SVM算法[9]具有較強的泛化能力,但不適用于大數(shù)據(jù)集。綜合主客觀賦權(quán)評價法是通過主觀賦權(quán)評價法構(gòu)建指標(biāo)體系,依據(jù)客觀賦權(quán)評價法構(gòu)建風(fēng)險預(yù)測模型,進(jìn)而實現(xiàn)精準(zhǔn)高效的風(fēng)險評估。
現(xiàn)有的風(fēng)險評價方法在實際應(yīng)用中仍具有一定的局限性[10],存在主觀分析人工成本較高且評估進(jìn)程較長,客觀分析評估指標(biāo)精度較低或過擬合性能較弱等問題,使得風(fēng)險預(yù)測結(jié)果的準(zhǔn)確率偏低且時間成本較高,從而造成缺失精準(zhǔn)定位風(fēng)險值的能力。因此,針對食品行業(yè)特性,本研究引入危害物最大殘留限量(MRL)與危害物每日容許攝入量(ADI)對AHP進(jìn)行定量改進(jìn),并與預(yù)測準(zhǔn)確性高且不易過擬合的極端梯度提升樹(extreme gradient boosting,XGBoost)算法相結(jié)合構(gòu)建預(yù)測模型,應(yīng)用于食品安全風(fēng)險評估。通過除港澳臺外全國31個省的大米檢測數(shù)據(jù)為基礎(chǔ)進(jìn)行案例分析,利用改進(jìn)后的AHP模型提取多維復(fù)雜數(shù)據(jù)中的綜合特征值作為預(yù)測模型風(fēng)險值,并將精度高、穩(wěn)定性強的XGBoost算法作為訓(xùn)練模型應(yīng)用于風(fēng)險值預(yù)測,同時將相同數(shù)據(jù)應(yīng)用于經(jīng)典預(yù)測算法中進(jìn)行對比,以驗證XGBoost算法的有效性。
以2018年大米危害物檢測數(shù)據(jù)為基礎(chǔ)進(jìn)行實例分析。通過搜集與整合國家食品安全抽檢檢驗信息系統(tǒng)中的數(shù)據(jù),得到除港澳臺以外全國31個省市的大米危害物檢測數(shù)據(jù)。此數(shù)據(jù)主要由抽檢省份、抽檢時間、抽檢項目、檢驗結(jié)果等類別組成,其中危害物檢測項目包含總汞、無機(jī)砷、鉛、鉻、鎘、黃曲霉毒素B等危害物,部分?jǐn)?shù)據(jù)如表1。
表1 2018年大米危害物檢測原始數(shù)據(jù)Tab.1 Raw data of rice hazard detection in 2018
針對1.1節(jié)采集的危害物檢測數(shù)據(jù),為了從高維復(fù)雜的數(shù)據(jù)中提取有效信息,實現(xiàn)數(shù)據(jù)價值隱性到顯性的蛻變[11],本研究依次采用數(shù)據(jù)篩選、數(shù)據(jù)規(guī)約以及數(shù)據(jù)變換的手段對原始數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗,具體流程如圖1。
圖1 數(shù)據(jù)清洗流程Fig.1 Data cleaning process
1.2.1風(fēng)險因子篩選
風(fēng)險因子是指大米在生產(chǎn)、加工、包裝、貯存、運輸、銷售直至食用等過程中產(chǎn)生的或由環(huán)境污染帶入的、非有意加入的化學(xué)性危害物質(zhì)[12-13],其篩選流程如下。1)按照檢測結(jié)果屬性的不同進(jìn)行分類。將每種危害物的檢測結(jié)果分為描述型結(jié)果、數(shù)值型結(jié)果、以及空值三類,其中描述型結(jié)果主要包括未檢出或小于某一具體數(shù)值(如<0.01 μg/kg),數(shù)值型結(jié)果為具體檢出量(如0.11 μg/kg)。2)描述型結(jié)果轉(zhuǎn)換為數(shù)值型結(jié)果。由于數(shù)值型結(jié)果相比于描述型結(jié)果更能直觀反映危害物含量的多少,針對小于某一具體數(shù)值的描述型結(jié)果刪除多余符號。例如:黃曲霉毒素B檢測含量為“<0.001 μg/kg”,而國家標(biāo)準(zhǔn)黃曲霉毒素B限定值為10 μg/kg,檢測結(jié)果未超過國家標(biāo)準(zhǔn)限定值,則刪除“<”符號,并將檢測含量值記錄為“0.001 μg/kg”;赭曲霉毒素A未檢出,則將檢測含量值記錄為“0 μg/kg”。3)統(tǒng)計各危害物數(shù)值型結(jié)果的個數(shù)以及各危害物超過國家限定指標(biāo)值的個數(shù)。按照危害物超過國家限定指標(biāo)值的個數(shù)與危害物數(shù)值型結(jié)果的個數(shù)的比值從大到小依次排列,選取比值較大的危害物作為風(fēng)險因子。依據(jù)篩選流程構(gòu)建大米危害物風(fēng)險指標(biāo)體系,如表2。
表2 大米危害物風(fēng)險指標(biāo)體系Tab.2 Risk index system of rice hazard
1.2.2數(shù)據(jù)規(guī)約
數(shù)據(jù)規(guī)約主要包含數(shù)據(jù)集成和數(shù)據(jù)類型統(tǒng)一兩個步驟。其中數(shù)據(jù)集成是指具有不同屬性或不同格式的數(shù)據(jù)按照邏輯集成;而數(shù)據(jù)類型統(tǒng)一是指數(shù)值型數(shù)據(jù)全部統(tǒng)一為浮點數(shù)型,便于數(shù)據(jù)的統(tǒng)一管理。
1.2.3數(shù)據(jù)變換
數(shù)據(jù)變換同樣分為噪聲過濾與數(shù)據(jù)歸一化兩個步驟。其中噪聲過濾是指剔除數(shù)據(jù)中無法解釋的數(shù)據(jù)變動,即刪除數(shù)據(jù)缺失值以及去除數(shù)據(jù)異常值。由于原始數(shù)據(jù)的檢驗結(jié)果與結(jié)果單位處于分離并行的狀態(tài),因此本研究的異常值為單位記錄錯誤導(dǎo)致的統(tǒng)計誤差,即在檢測數(shù)據(jù)中數(shù)值超過全部原始數(shù)據(jù)均值500倍以上的數(shù)據(jù)。
同時為保證風(fēng)險因子的輸入質(zhì)量,將數(shù)據(jù)進(jìn)行歸一化處理,即將數(shù)據(jù)按照合適的隸屬度曲線標(biāo)準(zhǔn)化映射到特定的數(shù)據(jù)空間,本研究采用的是梯形隸屬度函數(shù),見式(1)。
(1)
式(1)中,xmin為無風(fēng)險的最大值,其中無風(fēng)險是指該風(fēng)險因子檢測值大幅低于國家限定指標(biāo)值,則選取危害物國家限定指標(biāo)值的百分之一作為無風(fēng)險最大值;xmax為國家限定指標(biāo)值。將處理后的數(shù)據(jù)代入隸屬度函數(shù),計算得到綜合特征值并標(biāo)記為預(yù)測模型風(fēng)險值。
通過對多維復(fù)雜的大米危害物檢測數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗操作,得到了大米危害物的各風(fēng)險因子指標(biāo),以這些風(fēng)險因子指標(biāo)值為基礎(chǔ),構(gòu)建了一種集成改進(jìn)AHP與XGBoost算法的危害物風(fēng)險預(yù)測模型。其中,由于AHP受主觀因素影響較大的,因此針對食品安全領(lǐng)域特性,結(jié)合ADI和MRL對其進(jìn)行定量改進(jìn),同時應(yīng)用擬合程度高、速度快的XGBoost算法進(jìn)行特征學(xué)習(xí),提取危害物的綜合特征值,具體流程如圖2。
圖2 風(fēng)險預(yù)測模型框架Fig.2 Framework of risk forecast model
AHP是一種綜合定量與定性分析的系統(tǒng)分析方法,能夠科學(xué)系統(tǒng)地進(jìn)行多目標(biāo)的決策分析[14]。其基本思路是按照指標(biāo)體系的層次結(jié)構(gòu),采用由專家打分的1~9標(biāo)度法計算指標(biāo)權(quán)重,從而將復(fù)雜高維數(shù)據(jù)轉(zhuǎn)換成若干低維綜合因素[15]。但由于專家打分受主觀因素影響較大且需要較高的人工成本[16],為了解決這一問題,考慮到按照優(yōu)良農(nóng)業(yè)措施生產(chǎn)的食品在消費時實際的殘留范圍,以及允許的殘留水平,通過引入世界衛(wèi)生組織設(shè)定的食品上的殘留濃度最大殘留限量,采用由各危害物ADI與MRL結(jié)合形成的相對權(quán)重指標(biāo)代替專家打分建立判斷矩陣,以得到各指標(biāo)權(quán)重值,使各指標(biāo)權(quán)重值相較于傳統(tǒng)AHP更具客觀性。
首先,設(shè)存在k個風(fēng)險因子,則評價風(fēng)險因子的指標(biāo)權(quán)重可表示為矩陣Nk×2[式(2)]:
(2)
設(shè)評價風(fēng)險因子的指標(biāo)值為矩陣M2×k[式(3)]:
(3)
式(3)中,m1i[i∈(1,2,…,k)]表示第i個風(fēng)險因子的ADI;m2i[i∈(1,2,…,k)]表示第i個風(fēng)險因子的MRL。
將評價風(fēng)險因子的指標(biāo)權(quán)重矩陣與評價風(fēng)險因子指標(biāo)值矩陣相結(jié)合,組成判斷矩陣Ak×k[式(4)],同時,融合專家干預(yù)建議對判斷矩陣Ak×k進(jìn)行準(zhǔn)確性驗證和結(jié)果校正。
(4)
表3 判斷矩陣中的元素標(biāo)度Tab.3 Element scale of judgment matrix
根據(jù)判斷矩陣計算最大特征根λmax以及特征向量W=[w1,w2,…,wk]T[式(5)~式(7)]:
AW=λmaxW;
(5)
(6)
(7)
經(jīng)歸一化后的特征向量W記為風(fēng)險因子權(quán)重值,其可以反映各風(fēng)險因子危害程度的大小[17],利用1.2節(jié)方法對冗余數(shù)據(jù)清洗分類,形成包含q條數(shù)據(jù)、k個維度的風(fēng)險因子矩陣X[式(8)]:
(8)
將矩陣X與各風(fēng)險因子指標(biāo)權(quán)重加權(quán),得到低維綜合風(fēng)險值Y[式(9)]:
(9)
因此,采用改進(jìn)的AHP模型對食品檢測數(shù)據(jù)進(jìn)行降維,得到低維綜合風(fēng)險值,再利用食品安全風(fēng)險評估領(lǐng)域特有的定量指標(biāo),即MRL與ADI,作為評判標(biāo)準(zhǔn),以提高風(fēng)險值的準(zhǔn)確性及客觀性,進(jìn)而得到大米危害物風(fēng)險預(yù)測模型的期望輸出。
XGBoost算法[10]是一種支持并行計算的梯度提升樹算法,是在梯度提升迭代決策樹(gradient boosting decision tree,GBDT)的基礎(chǔ)上對代價函數(shù)進(jìn)行二階泰勒展開得到的。XGBoost算法在提升了運行速度以及預(yù)測準(zhǔn)確率的同時,也有效抑制了過擬合現(xiàn)象[18]。XGBoost算法訓(xùn)練流程如圖3。
圖3 XGBoost 算法訓(xùn)練流程Fig.3 Training process of XGBoost algorithm
其數(shù)學(xué)模型可表示為式(10)、式(11):
(10)
F=f(xi)=wq(x)。
(11)
式(10)和式(11)中,i∈(1,2,…,n)為樣本數(shù)量,i為低維綜合風(fēng)險值,xi為各風(fēng)險因子指標(biāo)值,t為子模型總數(shù),wq(x)為XGBoost上全體葉子節(jié)點的權(quán)重向量,fk為在第k棵回歸樹上每個葉子結(jié)點的權(quán)重,F(xiàn)為對應(yīng)所有回歸樹的集合。
定義損失函數(shù)l(yi,i)=(yi-i)2,即低維綜合風(fēng)險值與低維綜合風(fēng)險值預(yù)測值之間的誤差維度;損失函數(shù)l(yi,i)的最優(yōu)解F*(x)=arg minE(x,y)[L(y,F(x))],用于輔助選取合適的葉子節(jié)點數(shù),可防止葉子節(jié)點個數(shù)的無限增長,有效的節(jié)約模型運行時間;正則化項Ω(ft)[式(12)],可防止XGBoost算法中葉子結(jié)點個數(shù)無限增長,加快模型運行速度。
(12)
式(12)中,γ和λ是調(diào)整參數(shù),用于防止模型出現(xiàn)過擬合現(xiàn)象;T為葉子節(jié)點個數(shù)。正則化項與節(jié)點數(shù)呈正相關(guān),因此引入正則化項可在保證低維綜合風(fēng)險預(yù)測值與風(fēng)險值的誤差穩(wěn)定時快速得出葉子節(jié)點飽和值,從而提高模型的運行速度[19]。
引入由損失函數(shù)與正則化項組成的目標(biāo)函數(shù)Obj(t)[式(13)]:
(13)
為了使目標(biāo)函數(shù)梯度下降的更快更準(zhǔn),對目標(biāo)函數(shù)Obj(t)進(jìn)行泰勒展開得到如下目標(biāo)函數(shù)Obj(t)[式(14)~式(17)]:
(14)
gi=?l(yi,(t-1));
(15)
(16)
(17)
鑒于此,問題的主要矛盾轉(zhuǎn)化為求解以下2個二次函數(shù)[式(18)、式(19)]的最小值問題。
(18)
(19)
為避免多次枚舉造成運算量過大,采用貪心算法尋求最優(yōu)樹結(jié)構(gòu),對已知葉子節(jié)點加入新的分割[20],依次獲得分割后的增益,計算見式(20)。
(20)
式(20)中,Gain表示信息增益是樹形結(jié)構(gòu)是否分支的主要參考因素,即當(dāng)新分割產(chǎn)生的信息增量達(dá)到樹的深度限值或Gain<0,樹停止分割,從而在防止過擬合的前提下達(dá)到速度快擬合佳的仿真效果。
本研究的實驗環(huán)境是i5- 6200U CPU、8G RAM的Win10操作系統(tǒng),代碼基于Jupyter Notebook平臺通過Python3實現(xiàn)?;诖谁h(huán)境配置,將1.2節(jié)選取的各風(fēng)險因子指標(biāo)值作為風(fēng)險預(yù)測模型輸入數(shù)據(jù),低維綜合風(fēng)險值作為風(fēng)險預(yù)測模型輸出數(shù)據(jù),按照3∶1的訓(xùn)練測試比對數(shù)據(jù)集進(jìn)行劃分,并將XGBoost算法的模型預(yù)測結(jié)果與經(jīng)研究證實預(yù)測效果較突出的主流模型預(yù)測結(jié)果進(jìn)行對比分析,即最鄰近分類(k-nearest neighbor,KNN)算法、SVM算法、BP算法、長短期記憶人工神經(jīng)網(wǎng)絡(luò)(long short-term memory,LSTM)算法。由于各算法配置的參數(shù)各異,故針對每個算法分別選取幾個參數(shù)采用scikit-learn提供的隨機(jī)搜索(RandomizedSearchCV)來進(jìn)行參數(shù)配置。各模型參數(shù)配置結(jié)果如表4。
表4 不同算法的模型參數(shù)配置Tab.4 Model parameters configuration of different algorithms
在表4中,KNN算法的最佳參數(shù)配置由近鄰數(shù)(neighbors)、預(yù)測權(quán)函數(shù)(weights)以及指定計算最近鄰的算法(algorithm)組成。SVM算法的最佳參數(shù)配置由懲罰系數(shù)(C)、核函數(shù)(kernel、gamma、degree)以及距離誤差(epsilon)組成;其中g(shù)amma與degree為SVM算法選擇多項式核函數(shù)(poly)作為核函數(shù)后,該函數(shù)自帶的參數(shù),隱含地決定了數(shù)據(jù)映射到新的特征空間后的分布。BP算法的最佳參數(shù)配置由迭代次數(shù)(nb_epoch)、訓(xùn)練1次所選取的樣本數(shù)(batch_size)、優(yōu)化器(optimizer)以及激勵函數(shù)(activation)組成。LSTM算法的最佳參數(shù)配置與BP算法相似,最佳參數(shù)配置同樣由迭代次數(shù)(epochs)、訓(xùn)練1次所選取的樣本數(shù)(batch_size)、優(yōu)化器(optimizer)以及激勵函數(shù)(activation)組成。XGBoost算法的最佳參數(shù)配置由迭代次數(shù)(n_estimators)、樣本的采樣率(subsample)、隨機(jī)數(shù)種子(random_state)、學(xué)習(xí)率(learning_rate)以及每棵二叉樹的最大深度(max_depth)組成。
基于3.1中的仿真配置,利用不同風(fēng)險預(yù)測模型,在各算法的訓(xùn)練次數(shù)均為200次的條件下,可得出各類風(fēng)險因子風(fēng)險值與不同模型預(yù)測值的對比,見圖4。其中X軸代表樣本編號;Y軸表示各類危害物的污染程度,即低維綜合風(fēng)險值。低維綜合風(fēng)險值大于1(y>1)即污染程度大于1,代表該危害物明顯超標(biāo);且當(dāng)y∈(0,1)時,矩陣Y中數(shù)值的大小與該類危害物污染程度呈正相關(guān)。
圖4 各類風(fēng)險因子風(fēng)險值與不同模型預(yù)測值對比Fig.4 Comparison between risk values of various risk factors and predicted values of different models
由圖4的15個模型對比曲線可知,當(dāng)y∈(0.2,0.8)時,即各類危害物的污染程度處于合理區(qū)間時,各種模型的預(yù)測值與真實值的重合度較高;而當(dāng)y∈(0,0.2)∪(0.8,+∞)時,即各類危害物的污染程度偏低或偏高時,部分模型(KNN、SVM、BP)平均擬合效果較差,在污染程度較高(較低)時易出現(xiàn)污染程度被高估(低估)的情況。
為更清晰地對比各模型實驗結(jié)果,本研究采用相關(guān)系數(shù)R2、平均絕對誤差MAE、平均平方誤差MSE這3個指標(biāo)對模型進(jìn)行評估,各指標(biāo)計算見式(21)~式(23)。
(21)
(22)
(23)
由表5可知,XGBoost算法的相關(guān)系數(shù)R2區(qū)間跨度小于一個百分點,在各類危害物預(yù)測實驗中表現(xiàn)尤為穩(wěn)定,且相比于其他模型,XGBoost算法的R2普遍偏高,均高達(dá)99%以上。同樣,XGBoost算法的MAE和MSE,無論是區(qū)間跨度還是取值大小均低于其他模型,說明該模型在各類危害物預(yù)測實驗中均具有良好的學(xué)習(xí)能力。綜合對比5種算法,XGBoost算法相比于其他算法在預(yù)測方面具有更高的準(zhǔn)確性以及更強的穩(wěn)定性,因此可以更加直觀準(zhǔn)確地預(yù)測及分析食品安全危害物風(fēng)險值。
本研究針對高維復(fù)雜且非線性的食品安全檢測數(shù)據(jù)帶來的數(shù)據(jù)利用率低及人工成本高等問題,綜合考慮食品行業(yè)特有的相關(guān)危害物限定標(biāo)準(zhǔn),對降維模型AHP進(jìn)行定量改進(jìn),并與運行精度高的XGBoost算法相結(jié)合,提出了一種集成改進(jìn)AHP與XGBoost算法的食品安全風(fēng)險預(yù)測模型。基于此,本研究在全國除港澳臺以外各省大米危害物檢測數(shù)據(jù)的基礎(chǔ)上,首先采用數(shù)據(jù)規(guī)約、數(shù)據(jù)變換及數(shù)據(jù)歸一化方法將原始數(shù)據(jù)處理為結(jié)構(gòu)化數(shù)據(jù),隨后采用定量改進(jìn)的AHP模型提取低維綜合風(fēng)險值,最后采用XGBoost算法自適應(yīng)地挖掘風(fēng)險因子與低維風(fēng)險值之間的關(guān)系。通過對比模型的仿真結(jié)果,集成改進(jìn)AHP與XGBoost算法的風(fēng)險預(yù)測模型在準(zhǔn)確性和穩(wěn)定性方面優(yōu)于其他傳統(tǒng)風(fēng)險預(yù)測模型。因此,集成改進(jìn)AHP與XGBoost算法模型的建立可以快速準(zhǔn)確地識別出各類危害物的風(fēng)險值,從而希望為監(jiān)管部門評估決策提供科學(xué)有效的依據(jù);但該模型在一些方面還值得改進(jìn),如在數(shù)據(jù)應(yīng)用方面,由于各類食品危害物檢測項目的不同,若采用動態(tài)權(quán)重賦權(quán)法進(jìn)行權(quán)重配比將更符合實際需求;在模型應(yīng)用方面,若應(yīng)用于全供應(yīng)鏈各環(huán)節(jié)實時監(jiān)測風(fēng)險值變化將有助于減少食源處風(fēng)險威脅。
表5 不同算法的模型評估指標(biāo)對比Tab.5 Comparison of model evaluation indexes of different algorithms