陳瀅生,周憲章
(1. 重慶人文科技學(xué)院計(jì)算機(jī)工程學(xué)院,重慶 401524;2. 西南大學(xué)計(jì)算機(jī)與信息科學(xué)學(xué)院,重慶 400715;3. 重慶市教育科學(xué)研究院,重慶 400015)
隨著科技技術(shù)的發(fā)展與網(wǎng)絡(luò)的普及化,大數(shù)據(jù)技術(shù)逐漸成為熱門(mén)領(lǐng)域,被廣泛應(yīng)用于互聯(lián)網(wǎng)檢測(cè)[1]、電子商務(wù)、經(jīng)濟(jì)學(xué)等領(lǐng)域。為了創(chuàng)造安全高效的運(yùn)行環(huán)境,人們對(duì)大規(guī)模數(shù)據(jù)集中局部異常挖掘技術(shù)提出了更高的要求,不僅要求挖掘技術(shù)的效率高,還要求其具備較高的準(zhǔn)確性,其關(guān)鍵就是對(duì)異常挖掘技術(shù)作出升級(jí)和改進(jìn)[2]。通過(guò)上述分析可知大規(guī)模數(shù)據(jù)集中局部異常挖掘方法成為目前亟需解決的問(wèn)題和人們研究的熱點(diǎn)。
段曉萌[3]等人首先采集大規(guī)模數(shù)據(jù)集中的局部信息,然后采用機(jī)器學(xué)習(xí)算法提取局部信息的特征值,并推算出異常數(shù)據(jù)的判斷閾值,最后采用關(guān)聯(lián)規(guī)則算法將特征值與判斷閾值相融合,得到局部異常的數(shù)據(jù)范圍,完成大規(guī)模數(shù)據(jù)集中局部異常挖掘。該方法沒(méi)有剔除大規(guī)模數(shù)據(jù)集中的噪聲,導(dǎo)致方法的挖掘準(zhǔn)確率較低。王晗[4]等人提出了一種基于小波-支持向量機(jī)的工業(yè)取水異常數(shù)據(jù)挖掘方法,將工業(yè)取水?dāng)?shù)據(jù)作為研究樣本,采用小波變換和Fourier函數(shù)相結(jié)合的方式對(duì)異常數(shù)據(jù)進(jìn)行識(shí)別,然后通過(guò)粒子群算法優(yōu)化最小二乘支持向量機(jī)模型,通過(guò)優(yōu)化后的模型實(shí)現(xiàn)異常數(shù)據(jù)挖掘。該方法沒(méi)有提取大規(guī)模數(shù)據(jù)中的特征,導(dǎo)致方法的挖掘時(shí)間過(guò)長(zhǎng)。嚴(yán)莉[5]等人根據(jù)大規(guī)模數(shù)據(jù)的分布情況構(gòu)建出異構(gòu)信息網(wǎng)絡(luò)模型,然后在模型中引入矩陣分解算法,得到數(shù)據(jù)之間的相似性,最后采用注意力網(wǎng)絡(luò)算法處理數(shù)據(jù)之間的相似性,得到數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系,完成數(shù)據(jù)檢測(cè),挖掘出數(shù)據(jù)中的異常部分。該方法沒(méi)有剔除數(shù)據(jù)中的噪聲,導(dǎo)致方法的異常挖掘準(zhǔn)確率低、精度低。
為了解決上述方法中存在的問(wèn)題,提出基于堆棧模型的大規(guī)模數(shù)據(jù)集中局部異常挖掘方法。
首先采用離散小波變換剔除數(shù)據(jù)中的噪聲數(shù)據(jù)[6],具體步驟如下:
大規(guī)模數(shù)據(jù)集中存在大量的離散型數(shù)據(jù),首先通過(guò)引入的平方可積函數(shù)對(duì)大規(guī)模數(shù)據(jù)作傅里葉變換[7],得到具有線性組合的小波函數(shù),公式如下所示
(1)
式中,α表示小波函數(shù);w表示大規(guī)模數(shù)據(jù)中的任意數(shù)據(jù)點(diǎn);c表示傅里葉變換參數(shù),K表示平方可積函數(shù)。
離散小波變換降噪法利用收縮因子與移動(dòng)因子對(duì)小波函數(shù)實(shí)行收縮[8]和移動(dòng)處理,進(jìn)而得到關(guān)于大規(guī)模數(shù)據(jù)的連續(xù)小波基函數(shù),公式如下所示
(2)
式中,m、n分別表示收縮因子與移動(dòng)因子。
通過(guò)收縮因子與移動(dòng)因子的離散化計(jì)算,有效地降低了因小波變換引起的數(shù)據(jù)冗余度。然后將離散后的收縮因子與移動(dòng)因子重新代入到式(2)中,得到更新后的小波基函數(shù),公式如下所示
(3)
式中,m′、n′分別表示離散化計(jì)算后的收縮因子與移動(dòng)因子。
利用更新后的小波基函數(shù)重構(gòu)離散小波變換函數(shù)E(m′,n′),完成大規(guī)模數(shù)據(jù)的降噪處理,公式如下所示:
(4)
將降噪后的大規(guī)模數(shù)據(jù)輸入到堆棧模型中的自編碼器中,完成數(shù)據(jù)的特征提取[9],具體步驟如下:
1)自編碼器主要由編碼器(輸入層-隱藏層)與解碼器(隱藏層-輸出層)構(gòu)成,結(jié)構(gòu)如圖1所示。
圖1 自編碼器結(jié)構(gòu)
利用如下公式表示編碼器與解碼器的訓(xùn)練過(guò)程。
(5)
式中,b表示神經(jīng)元;p、q分別表示堆棧模型中的神經(jīng)元;V、V′分別表示訓(xùn)練前、后的數(shù)據(jù)中心值;a、a′分別表示輸入向量與輸出向量;z、z′分別表示編碼、編碼階段的偏置參數(shù);o表示向量的個(gè)數(shù)。
2)采用Sigmoid激活函數(shù)使大規(guī)模數(shù)據(jù)的輸入向量可以完整的映射[10]在[0,1]區(qū)間中,保證輸入向量之間的平行性。激活函數(shù)S公式如下所示
(6)
式中,d表示數(shù)據(jù)之間的映射距離。
3)編碼器將大規(guī)模數(shù)據(jù)集轉(zhuǎn)換成不同維度的輸入向量,再經(jīng)過(guò)解碼器重新組成輸出向量,計(jì)算出兩者之間的重構(gòu)誤差[11],公式如下所示
(7)
式中,e表示重構(gòu)誤差。
4)堆棧模型中包含若干個(gè)自編碼器,每個(gè)自編碼器隱藏層的輸出向量作為下一層的輸入向量,通過(guò)自編碼器之間的重復(fù)計(jì)算完成數(shù)據(jù)特征的漸進(jìn)提取,當(dāng)重構(gòu)誤差達(dá)到最小化時(shí),此時(shí)的輸出向量ao即為提取的大規(guī)模數(shù)據(jù)特征。公式如下所示
emin=p(s)[p(r)(…p(1)(ao))]
(8)
式中,s表示堆棧模型的最高層激活函數(shù);r表示中層編碼階段。
采用獨(dú)立成分分析算法,對(duì)提取的大規(guī)模數(shù)據(jù)特征作投影分析,進(jìn)而挖掘出數(shù)據(jù)中的異常值。
提取的大規(guī)模數(shù)據(jù)特征中,包含無(wú)限個(gè)數(shù)據(jù)變量,這些變量是由個(gè)體原信號(hào)與混合矩陣融合得到的。獨(dú)立成分分析算法通過(guò)對(duì)個(gè)體原信號(hào)與混合矩陣之間的線性變化使數(shù)據(jù)彼此分離[12],公式如下所示
(9)
式中,Y表示個(gè)體原信號(hào);t表示任意時(shí)刻;U表示分離矩陣;C表示混合矩陣;F表示數(shù)學(xué)期望;X表示觀測(cè)信號(hào);R表示轉(zhuǎn)置處理。
個(gè)體原信號(hào)與分離矩陣作為不確定參數(shù)條件,無(wú)法同時(shí)被確定,所以需要通過(guò)先驗(yàn)知識(shí)[13]優(yōu)化分離矩陣,保證矩陣中的分離信號(hào)之間保持最大的獨(dú)立性。在獨(dú)立成分分析過(guò)程中,異常數(shù)據(jù)可能出現(xiàn)在原信號(hào)或者待觀察信號(hào)中,個(gè)體原信號(hào)的模型可用如下公式表示
(10)
式中,G表示數(shù)據(jù)中的隨機(jī)異常值。
為了挖掘出大規(guī)模數(shù)據(jù)集中的異常數(shù)據(jù),引入具有投影分析性質(zhì)的影響函數(shù),其定義公式如下所示
(11)
式中,I表示影響函數(shù);v表示隨機(jī)矢量;β表示多項(xiàng)式;D表示可逆矩陣;χ表示影響函數(shù)的一般參數(shù);ho表示提取的大規(guī)模數(shù)據(jù)特征向量。
在影響函數(shù)中引入?yún)f(xié)方差矩陣,則由特征向量構(gòu)成的矩陣中包含協(xié)方差矩陣。為了保證消除特征向量矩陣中數(shù)據(jù)的不必要關(guān)聯(lián)性,采用主成分分析法得到精度較高的感知矩陣[14],公式如下所示
(12)
式中,W表示感知矩陣;A表示由特征向量構(gòu)成的矩陣。
引入拉格朗日乘子[15]約束感知矩陣,并選擇出合適的多項(xiàng)式函數(shù),公式如下所示
(13)
式中,l表示拉格朗日乘子;δ表示約束項(xiàng)。
根據(jù)式(13)得到的多項(xiàng)式,確定出大規(guī)模數(shù)據(jù)集中異常數(shù)據(jù)的判斷閾值,將大于閾值的數(shù)據(jù)視為異常數(shù)據(jù),完成大規(guī)模數(shù)據(jù)集中局部異常挖掘。判斷閾值ε公式如下所示
(14)
為了驗(yàn)證基于堆棧模型的大規(guī)模數(shù)據(jù)集中局部異常挖掘方法的整體有效性,對(duì)其做出如下測(cè)試。實(shí)驗(yàn)所用數(shù)據(jù)來(lái)自UCI KDD數(shù)據(jù)集,該數(shù)據(jù)集是數(shù)據(jù)挖掘和可視化的研究項(xiàng)目,專注于大型數(shù)據(jù)收集下載中的實(shí)體事件關(guān)系。在該數(shù)據(jù)集中抽取部分?jǐn)?shù)據(jù),相乘15個(gè)數(shù)據(jù)集。將挖掘時(shí)間、挖掘準(zhǔn)確率和召回率作為評(píng)價(jià)指標(biāo),采用基于堆棧模型的大規(guī)模數(shù)據(jù)集中局部異常挖掘方法、文獻(xiàn)[3]方法、文獻(xiàn)[4]方法和文獻(xiàn)[5]方法做出對(duì)比測(cè)試。
1)挖掘時(shí)間
采用所提方法、文獻(xiàn)[3]方法和文獻(xiàn)[4]方法檢測(cè)15組大規(guī)模數(shù)據(jù)集,對(duì)比不同方法消耗的局部異常數(shù)據(jù)挖掘時(shí)間。挖掘時(shí)間越長(zhǎng),說(shuō)明方法的效率越低,相反,挖掘時(shí)間越短,說(shuō)明方法的效率越高。不同方法的測(cè)試結(jié)果用表1表示。
表1 不同方法的數(shù)據(jù)異常挖掘時(shí)間
分析表1中的數(shù)據(jù)可知,針對(duì)大規(guī)模數(shù)據(jù)集中局部異常挖掘,所提方法的挖掘時(shí)間在18s附近波動(dòng),文獻(xiàn)[3]方法和文獻(xiàn)[4]方法的挖掘時(shí)間分別在38s和49s附近波動(dòng)。通過(guò)對(duì)比可以發(fā)現(xiàn),針對(duì)不同的數(shù)據(jù)集,所提方法的挖掘時(shí)間均低于文獻(xiàn)[3]方法和文獻(xiàn)[4]方法的挖掘時(shí)間,表明文獻(xiàn)[3]方法和文獻(xiàn)[4]方法的挖掘效率遠(yuǎn)低于所提方法的挖掘效率。
2)挖掘準(zhǔn)確率
設(shè)P表示數(shù)據(jù)異常挖掘準(zhǔn)確率,其計(jì)算公式如下
(15)
式中,TP表示挖掘結(jié)果正常、實(shí)際為正常的數(shù)據(jù)數(shù)量;FP表示實(shí)際為異常但挖掘結(jié)果顯示正常的數(shù)據(jù)數(shù)量。
利用所提方法、文獻(xiàn)[3]方法和文獻(xiàn)[5]方法檢測(cè)數(shù)據(jù)集中的異常數(shù)據(jù),將不同方法的異常數(shù)據(jù)挖掘準(zhǔn)確率結(jié)果繪制成圖,方便分析,結(jié)果如圖2所示。
圖2 不同方法的局部異常挖掘準(zhǔn)確率
由圖2可知,針對(duì)大規(guī)模數(shù)據(jù)集中局部異常挖掘,所提方法的異常挖掘準(zhǔn)確率均高于文獻(xiàn)[3]方法和文獻(xiàn)[5]方法的異常挖掘準(zhǔn)確率。并且隨著實(shí)驗(yàn)次數(shù)的增加,所提方法的異常挖掘準(zhǔn)確率沒(méi)有發(fā)生明顯波動(dòng),而文獻(xiàn)[3]方法和文獻(xiàn)[5]方法的異常挖掘準(zhǔn)確率上下波動(dòng)較大。說(shuō)明所提方法的異常挖掘準(zhǔn)確率穩(wěn)定性強(qiáng)于文獻(xiàn)[3]方法和文獻(xiàn)[5]方法異常挖掘準(zhǔn)確率的穩(wěn)定性。由于所提方法采用離散小波變換算法剔除了大規(guī)模數(shù)據(jù)集中的噪聲數(shù)據(jù),預(yù)處理后的數(shù)據(jù)集消除了冗余部分,在異常挖掘過(guò)程中降低了噪聲數(shù)據(jù)的影響,在一定程度上提高了異常挖掘的準(zhǔn)確率。
3)召回率
召回率是評(píng)價(jià)異常數(shù)據(jù)挖掘精度的重要指標(biāo),代表的是在大規(guī)模數(shù)據(jù)集中局部異常挖掘結(jié)果中,挖掘出的異常數(shù)據(jù)量占整體異常數(shù)據(jù)量的比例,召回率越高,表明方法的挖掘精度越高;召回率越低,表明方法的挖掘精度越低。其計(jì)算公式如下所示
(16)
式中,Q表示召回率;FN表示實(shí)際為正常但挖掘結(jié)果為異常的數(shù)據(jù)數(shù)量。
將所提方法、文獻(xiàn)[4]方法和文獻(xiàn)[5]方法的挖掘召回率測(cè)試結(jié)果繪制成圖,方便分析,結(jié)果如圖3所示。
圖3 不同方法的局部異常挖掘召回率
分析圖3可知,所提方法的挖掘召回率高于文獻(xiàn)[4]方法和文獻(xiàn)[5]方法的挖掘召回率,說(shuō)明針對(duì)大規(guī)模數(shù)據(jù)集中局部異常挖掘,所提方法的挖掘精度高于文獻(xiàn)[4]方法和文獻(xiàn)[5]方法的挖掘精度,其召回率最高值達(dá)到了97%,進(jìn)一步驗(yàn)證了該方法的挖掘精度。
目前大規(guī)模數(shù)據(jù)集中局部異常挖掘方法存在挖掘時(shí)間長(zhǎng)、挖掘準(zhǔn)確率低、挖掘精度低的問(wèn)題,因此提出基于堆棧模型的大規(guī)模數(shù)據(jù)集中局部異常挖掘方法。該方法的主要?jiǎng)?chuàng)新點(diǎn)如下:
1)利用離散小波變換算法剔除大規(guī)模數(shù)據(jù)中的噪聲,避免噪聲在異常挖掘過(guò)程中產(chǎn)生干擾,進(jìn)而解決了傳統(tǒng)方法中存在的問(wèn)題。
2)采用堆棧模型中的自編碼器提取數(shù)據(jù)的特征,最后采用獨(dú)立成分分析算法得到數(shù)據(jù)中的異常數(shù)據(jù),完成大規(guī)模數(shù)據(jù)集中局部異常挖掘,提高了挖掘準(zhǔn)確率和挖掘精度的同時(shí),在一定程度上也降低了方法的挖掘時(shí)間,為大規(guī)模數(shù)據(jù)的異常挖掘技術(shù)奠定了基礎(chǔ)。