雷夢寧,丁愛玲,王新美,韓佳倩,曹 苗
(長安大學 信息工程學院,陜西 西安 710061)
互聯(lián)網(wǎng)時代的迅速發(fā)展,使“信息過載”現(xiàn)象愈發(fā)嚴重,尋找一種可以辨別有效信息的手段至關(guān)重要。隨著用戶對信息篩選的需求,搜索引擎應(yīng)運而生,其通過在特定位置輸入一些簡單的關(guān)鍵詞尋找與該關(guān)鍵詞相關(guān)的信息。但其提供的海量信息仍需用戶消耗大量時間精力去篩選。
推薦系統(tǒng)(recommender systems)[1-4]的出現(xiàn)有效緩解了信息過多帶來的影響,其能夠在海量的搜索結(jié)果中,依據(jù)用戶的瀏覽記錄、行為習慣、興趣愛好等記錄進行分析,為用戶推薦最符合搜索預期的信息,從而縮短用戶尋找有效信息的時間,為客戶信息檢索帶來了極大的便利。其中,協(xié)同過濾(collaborative filtering,CF)作為推薦系統(tǒng)中最為有效的手段之一,廣泛應(yīng)用于生活中的各種領(lǐng)域,如Facebook、YouTube等。
推薦系統(tǒng)依靠其龐大的用戶群體來為客戶推薦較為準確的信息,一些商家利用該系統(tǒng)的開放性,通過注入大量攻擊概貌[5]影響系統(tǒng)推薦結(jié)果,以此來提高或降低商品的系統(tǒng)推薦頻率,從而謀取暴利。這種行為被稱為托攻擊(shilling attacks)[6-7]。其不正當?shù)纳虡I(yè)競爭行為造成系統(tǒng)推薦信息虛假或精確度不高等影響,偏離客戶搜索預期。因此對托攻擊進行防范檢測具有重大的意義。
現(xiàn)有的托攻擊檢測方法對基本托攻擊模型檢測效果明顯,文獻[8-9]提出了一種基于特征分析的托攻擊檢測算法,可以針對不同類型的托攻擊選取有效的檢測指標,通過托攻擊檢測指標識別出攻擊用戶。但該方法不適合用在復雜的攻擊模型下。文獻[10]對推薦系統(tǒng)中現(xiàn)有的托攻擊檢測技術(shù)和魯棒性能進行了分析,發(fā)現(xiàn)現(xiàn)有的檢測算法大多是基于評分值差異提取的特征,容易造成誤判率過高的問題。
受此啟發(fā),文中針對用戶選擇評分項目方式的不同,提出了一種基于混合特征值的托攻擊檢測算法。該算法考慮到項目流行度和新穎度的特性,選擇了五項特征檢測指標構(gòu)建特征模型對托攻擊進行檢測。最后,通過在MovieLens數(shù)據(jù)集上的實驗,驗證該特征模型可以有效檢測出攻擊用戶。
攻擊概貌由攻擊者的所有評分構(gòu)成,包括四個部分[7]:填充項目集、選擇填充項目集、未評分項目填充集、目標項目集。填充項目是攻擊者選取其他評分項目進行填充,填充項往往是隨機的,可以掩護目標項目躲避檢測。選擇填充項目是特定的,由攻擊者精心挑選,進行有效攻擊。即攻擊用戶除對目標項目進行評分外,還對其他項目進行評分,使得攻擊用戶與正常用戶更加接近,增加檢測難度。攻擊概貌的結(jié)構(gòu)如表1所示。
表1 攻擊概貌的結(jié)構(gòu)
文獻[11]提出了隨機攻擊和均值攻擊,其為兩種基本的標準攻擊模型,文獻[12-13]提出了流行攻擊、分段攻擊和love/hate攻擊。Gunes等[14]在流行攻擊基礎(chǔ)上,討論了逆流行攻擊等混淆攻擊。不同攻擊模型對推薦系統(tǒng)評分集所需的先驗知識不同。表2列出了4種常見攻擊模型的生成策略,其中IS代表選擇填充項目集,IF代表填充項目集,IT代表目標項目集。
表2 四種攻擊模型
表中,rmax表示在評分時給予最高分,rmin表示給予最低分,rrandom表示隨機評分,raverage表示均值評分。由表2可以觀察到,不同攻擊模式的主要區(qū)別在于對裝填項目的評分方式不同。
根據(jù)攻擊用戶信息的生成策略可知,攻擊用戶與真實用戶不同之處主要體現(xiàn)在3個方面:①目標項目的評分;②填充項目的評分;③由于所有的攻擊用戶信息采用同樣的生成策略,致使攻擊用戶信息之間具有高度的相似性。文中利用以上數(shù)據(jù)差異生成統(tǒng)計特征,提出基于混合特征的攻擊檢測算法,以此區(qū)分正常用戶與攻擊用戶。
特征指標用于捕捉攻擊用戶與正常用戶在評分方式上的差異。文獻[15-16]中定義的9個統(tǒng)計量從不同角度反映了攻擊用戶概貌有別于真實用戶概貌的特征。
文獻[8]針對流行攻擊對統(tǒng)計量進行了研究,給出了有效檢測指標排行,文中選擇其前三項作為檢測指標,如下所示:
(1)K近鄰用戶相似度(DegSim)。
在進行托攻擊時,大量注入系統(tǒng)的攻擊概貌往往具有相同的攻擊模型,具有數(shù)量大,相似度高的特點,故攻擊用戶的此項特征值比真實用戶高。DegSim的計算公式如下:
(1)
(2)均值方差(MeanVar)。
對用戶評分項目進行均值方差運算,體現(xiàn)用戶模型評分項目與所有評分項目平均值之間的二階矩關(guān)系,第u個用戶的MeanVar的計算公式如下:
(2)
(3)加權(quán)評分一致度(WDA)。
此特征值通過計算相應(yīng)項目評分數(shù)目的逆向權(quán)重,以此衡量用戶對項目的評分背離該項目評分均值的程度。第u個用戶的加權(quán)評分一致度的計算公式如下:
(3)
其中,Nu表示用戶u評價過的項目個數(shù),NRi表示項目i被評價過的次數(shù),ri表示項目i的評分均值,ru,i表示用戶u對項目i的評分。
目前很多檢測器通過計算出各個特征指標值,形成用戶評分矩陣構(gòu)建特征模型,以此作為屬性對分類器進行訓練,最終能夠?qū)⒄鎸嵱脩艉凸粲脩暨M行分類。文中結(jié)合以上三個特征指標得到特征模型,繪制三維圖,如圖1所示,圖中“+”代表攻擊用戶,即圓圈中的數(shù)據(jù),“o”代表正常用戶。由圖可知該特征模型可以較好地區(qū)分真實用戶和攻擊用戶,但部分攻擊用戶與正常用戶數(shù)據(jù)重疊,存在一定誤判率。
該特征模型在實際應(yīng)用中準確率和召回率不夠高,為進一步提高檢測準確率,文中加入對項目流行度和新穎度的考量??紤]到項目流行度、項目新穎度以及攻擊用戶裝填項目服從不同的概率分布,其所得到的用戶平均流行度以及新穎度數(shù)值與正常用戶的平均流行度以及新穎度數(shù)值始終具有差異,因此文中提出了兩個新的特征檢測指標,分別是檢測項目與流行項目之間的卡方估計值(Chi-square of popular item,CHIP)和與新穎項目之間的卡方估計值(Chi-square of novel item,CHIN),通過這兩個指標統(tǒng)計檢測項目與所選的流行項目或新穎項目之間的相關(guān)程度。其中流行項目的選擇依據(jù)項目流行度(item popularity,IPop),新穎項目的選擇依據(jù)項目新穎度(item novelty,INov),其計算公式分別如下所示:
(4)
其中,Di表示所給數(shù)據(jù)庫中所有真實用戶的合集,rui表示用戶u對任意一個項目i的評分。若rui=?,則φ(rui)=0,若rui≠?,則φ(rui)=1。
(5)
其中,|Dg|表示現(xiàn)在集合中的所有用戶數(shù)目,Novu,i表示該用戶對其任意一個項目的新穎程度,Nu表示用戶u的項目評分數(shù),也就是相似度。
流行項目以及新穎項目的卡方估計值通用公式如下:
CHI=|I|×
(6)
其中,I表示數(shù)據(jù)集中所有的項目,A表示既屬于有評分項目又屬于流行項目/新穎項目的個數(shù),B表示屬于有評分的項目但是不屬于流行項目/新穎項目的個數(shù),C表示雖然不屬于有評分項目卻屬于流行項目/新穎項目的個數(shù),D表示既不屬于有評分項目的也不屬于流行項目/新穎項目的個數(shù)。通過計算用戶評分項目與新穎項目/流行項目之間的關(guān)聯(lián)程度,得到特征矩陣。
聚類作為統(tǒng)計數(shù)據(jù)分析中的一項重要技術(shù),目前在各個領(lǐng)域得到廣泛應(yīng)用,如數(shù)據(jù)挖掘、機器學習等。它通過靜態(tài)分類的方法,將更為相似的對象分到相同的組別,即該組別中的對象擁有較多相似的屬性。
K-means聚類算法源于信號處理中的一種向量量化方法,其主要目的是將所給的樣本數(shù)據(jù)聚類。其算法流程為:
(1)隨機創(chuàng)建K個對象作為起始聚類中心;
(2)計算每個對象與K個聚類中心點之間的歐氏距離,將每個對象分到距聚類中心距離最短的類別中;
(3)重新對每一類中的對象進行計算,找到新的聚類中心點,重復(2)過程;
(4)直到聚類中心點的位置不再改變,樣本聚類完成。
文中使用K-means聚類算法對攻擊用戶與真實用戶集合進行初步分類。
文中構(gòu)建了一種新的特征模型,該特征模型由兩部分組成:①由特征指標Degsim、MeanVar、WDA組成特征模型的第一層;②由特征指標CHIP和CHIN組成特征模型的第二層。在該特征模型的基礎(chǔ)上提出了一種基于混合特征值的托攻擊檢測算法,將其命名為T-Kmeans算法。該算法的具體步驟如下:
步驟一:向用戶評分矩陣注入攻擊概貌,得到混合數(shù)據(jù)集;對其提取特征Degsim、MeanVar、WDA、CHIP、CHIN,并按列排序,得到用戶特征向量矩陣V。
步驟二:提取特征向量矩陣V的前三列,即DegSim、MeanVar、WDA三個特征值,通過K-means聚類算法將用戶初步聚成兩類,稱為第一真實用戶集合和第一攻擊用戶集合。
步驟三:對特征矩陣V的后兩列進行閾值判斷操作;將大于閾值的標記為真實用戶,小于閾值的標記為攻擊用戶,稱其為第二真實用戶集合和第二攻擊用戶集合;其中閾值的選擇根據(jù)經(jīng)驗選擇[17]。
步驟四:將步驟二、步驟三中得到的第一攻擊用戶集合和第二攻擊用戶集合做交集,得到最終檢測結(jié)果,即攻擊用戶集合,剩余的用戶則為真實用戶集合。
算法流程如圖2所示。
圖2 T-Kmeans算法流程
文中實驗采用Movielens數(shù)據(jù)集,包括943個觀眾對1 682部電影的隨機評價,共計100 000條評分,采取5分制,即最高分記5分,最低分記1分,未評分的記為0。
實驗選取的攻擊模型為流行攻擊,攻擊目的為推攻擊。分別在攻擊規(guī)模為3%,5%,8%,10%,12%,填充規(guī)模為3%,5%,8%,10%的條件下進行實驗。
文中通過計算準確率(precision)和召回率(recall),與主成分分析(principal components analysis,PCA)檢測方法進行對比,以此評估T-Kmeans檢測算法的有效性與準確率。其計算公式如下:
(7)
(8)
其中,TP表示被正確識別的攻擊用戶的數(shù)目,F(xiàn)P表示被誤判的真實用戶的數(shù)目,F(xiàn)N表示未被識別出來的攻擊用戶的數(shù)目。
4.2.1 準確率對比
將文中提出的檢測方法的準確率與PCA檢測算法的準確率進行對比,得到的實驗結(jié)果如圖3(a)~(d)所示。
如圖3所示,在填充規(guī)模分別為3%、5%、8%、10%的情況下,隨著攻擊規(guī)模的增大,PCA檢測算法和 T-Kmeans檢測算法的準確率都在持續(xù)增加,但T-Kmeans檢測算法準確率一直比PCA檢測算法準確率高,且最高時候可達到98%,這說明在小規(guī)模攻擊情況下T-Kmeans檢測算法在準確率方面比PCA檢測算法效果好。
4.2.2 召回率對比
將文中檢測方法的召回率與PCA檢測算法的召回率進行對比,得到的實驗結(jié)果如圖4(a)~(d)所示。
圖3 T-Kmeans與PCA準確率對比
圖4 T-Kmeans與PCA召回率對比
如圖4所示,在填充規(guī)模分別為3%、5%、8%、10%的情況下,隨著攻擊規(guī)模的增大,T-Kmeans檢測算法的召回率變動較大,但其一直比PCA檢測算法的召回率高,且最高時候可達到97%,這說明T-Kmeans檢測算法在召回率方面比PCA檢測算法的檢測效果好。
文中提出了一種基于混合特征值的托攻擊檢測算法。該算法構(gòu)建了一種新的特征模型,在傳統(tǒng)Degsim、MeanVar、WDA這三個特征檢測指標基礎(chǔ)上,考慮到項目與流行項目、項目與新穎項目之間的關(guān)聯(lián)程度,引入CHIP,CHIN檢測指標,構(gòu)成特征模型。通過對Degsim、MeanVar、WDA形成的特征矩陣進行K-means聚類,以及對CHIP、CHIN形成的特征矩陣進行閾值判斷,并進行求交集操作,得到最終檢測出的攻擊用戶集合。實驗結(jié)果表明,該算法提高了檢測準確度,具有一定的優(yōu)越性。