■ 衛(wèi)星君 李海霞
1.陜西能源職業(yè)技術(shù)學院機電與信息工程學院 咸陽 712000
2.陜西能源職業(yè)技術(shù)學院經(jīng)濟管理學院 咸陽 712000
互聯(lián)網(wǎng)推動社會經(jīng)濟快速發(fā)展的過程中,產(chǎn)生海量商品數(shù)據(jù)的同時,其背后的信息系統(tǒng)為“信息過載”問題作出了巨大貢獻。以電子商務(wù)平臺中使用的推薦系統(tǒng)[1]最為普遍。它能使客戶從海量商品信息中,找到相關(guān)或喜好的商品,為買家提供合適商品,為賣家提高銷售業(yè)績,促進商品經(jīng)濟的發(fā)展。電子商務(wù)平臺在陜西省農(nóng)業(yè)農(nóng)村信息化背景下,所具有的特點和優(yōu)勢使其在農(nóng)業(yè)及農(nóng)村中的發(fā)展勢不可擋。同時,商品服務(wù)和消費者重復(fù)購買意愿之間的信任關(guān)系極為重要,使得對推薦商品的準確性和可靠性有了更高的要求。然而,推薦系統(tǒng)的開放性及算法特點,系統(tǒng)易受到惡意攻擊[2-3]。攻擊者在推薦系統(tǒng)中偽造虛假用戶的購買信息,促銷或者打壓某類商品而獲利,稱為托攻擊(shilling attack)[4-5]。為解決商品推薦的可靠性和安全性,促進農(nóng)村消費者對商品服務(wù)和品質(zhì)的信任,申請陜西省教育廳專項科研計劃項目——陜西農(nóng)村電子商務(wù)發(fā)展模式研究,本文作為項目成果的一部分,為項目實施提供必要技術(shù)支撐。
常見的基本托攻擊有隨機、均值和流行攻擊等[6-7]。目前的托攻擊檢測方法主要是針對基本托攻擊。例如:方楷強等[8]利用托攻擊防御算法框架,通過降低檢測托用戶的信任度,從而減少托攻擊用戶的影響,對托攻擊進行檢測。于洪濤等[9]提出了7 個不依賴于項目具體評分值大小的托攻擊檢測特征,對基本托攻擊檢測效果明顯。呂成戍等[10]用非對稱半監(jiān)督集成支持向量機(Sup‐port Vector Machine,SVM)的攻擊檢測方法,解決系統(tǒng)小樣本問題和數(shù)據(jù)不均衡分布問題,取得較好的檢測效果。Alostad 等[11]提出SVM 高斯混合模型對托攻擊進行檢查,檢查準確率較高。Wei 等[12]通過構(gòu)建時間序列來確定可疑評分時段,并檢測可疑評分段,進而發(fā)現(xiàn)攻擊。Yang 等[13]充分利用標記用戶,包括用戶與用戶、項與用戶相互關(guān)系,通過貝葉斯模型對托攻擊進行檢測,在低攻擊強度下取得了較好的檢測效果。而在實際中,基本攻擊模型構(gòu)成的托攻擊往往易于檢測。為了躲避攻擊檢測,提高攻擊效果,攻擊者會使用評分偏移和噪音注入兩種混淆策略[14]與基本托攻擊混合使用,構(gòu)造更復(fù)雜的混淆托攻擊,降低攻擊概貌和用戶概貌之間的區(qū)別,使得偽造的攻擊用戶更加接近真實用戶而逃避托攻擊檢測。伍之昂[6]等分析基本攻擊模型和混淆策略,給出了構(gòu)建混淆托攻擊的思路。Hurley 等[15]提出混淆AoP(平均流行,Average over Popular)攻擊,在均值攻擊中加入流行項,攻擊效果明顯。衛(wèi)星君等[16]提出混淆BoP(混淆流行,Obfuscation over Popular)攻擊,對流行交叉項評分偏移,表明該攻擊相比流行攻擊,對推薦系統(tǒng)的影響更大。因此,混淆托攻擊難檢測,危害大。
表1 混淆托攻擊一般形式
目前,大部分的托攻擊檢測方法未能充分利用標記用戶,且對使用混淆策略的托攻擊檢測“力所不及”。因此,本文從混淆策略特點入手,充分利用標記用戶,改進K-Means算法,提出標記用戶共同關(guān)注;對標記用戶的特征指標進行二次提取,進而壓縮特征指標向量,給出混淆托攻擊半監(jiān)督檢測方法,在無需確定攻擊目標的情況下,對托攻擊進行有效檢測。
為了識別混淆托攻擊,分析基本托攻擊的組成及評分方式,混淆策略的具體使用方法,給出混淆托攻擊的一般形式;收集系統(tǒng)數(shù)據(jù)庫中的標記用戶,為計算特征向量提供樣本數(shù)據(jù)。
基本托攻擊模型由選擇項、填充項、未評分項及目標項組成。選擇項是為了成為更多正常用戶的近鄰;填充項使其更像正常用戶;目標項是推舉或者打壓的商品。目標項設(shè)定系統(tǒng)評分最大值稱為推攻擊,設(shè)定系統(tǒng)評分最小值為核攻擊[17]。攻擊者會盡可能了解數(shù)據(jù)庫評分分布情況、數(shù)據(jù)庫的數(shù)值或密度分布,選擇熱門商品,實現(xiàn)自動化填充項和選擇項。但這樣構(gòu)成的攻擊概貌具有相似性,且易檢測。因此,為了設(shè)計更加有效的攻擊,攻擊者利用混淆策略對填充項和選擇項的評分進行修改,使得攻擊概貌更加接近真實用戶評分而躲避檢測,實現(xiàn)攻擊目的。
混淆策略具體如下:
(1)評分偏移策略修改選擇項評分
攻擊者最常用且有效的方式為選擇熱門商品插入攻擊概貌中,不但能夠成為更多用戶的近鄰,而且獲取熱門商品所需知識成本較低,但插入過多的熱門商品易被檢測。使用偏移函數(shù),修改熱門商品評分,降低攻擊概貌“關(guān)注度”,使得更加接近普通用戶概貌評分。評分表示成:
式中:smax為系統(tǒng)評分最大值;Fshift(i)為第i 個熱門商品的評分偏移函數(shù),依賴于熱門項在數(shù)據(jù)庫中的評分分布。
(2)噪音注入策略修改填充項評分
攻擊者很容易根據(jù)經(jīng)驗確定數(shù)據(jù)庫中的評分分布,構(gòu)造評分函數(shù)[18],實現(xiàn)自動化填充評分。同時加入常數(shù)因子α,降低攻擊概貌自動化評分的“機械性”,使得更加接近普通概貌評分。評分表示成:
式中:α∈(0,1];θ 為評分函數(shù)Fselc 參數(shù),依賴于數(shù)據(jù)庫中評分分布。
依據(jù)基本托攻擊模型的構(gòu)成及混淆策略,混淆托攻擊的一般形式如表1所示。其中bssq為使用公式1 修改第q 項選擇項評分,bsfp為使用公式2 修改第p 項填充項評分。
定義1標記用戶數(shù)據(jù)集。系統(tǒng)中用戶對商品評分真實可信,不存在虛假且評分項較多。因為評分項越多更有資格成為最近鄰。用一個三元組表示:
UT=(DT,IT,ST)
式中:DT表示標記用戶身份;IT為評分項;ST為IT的評分。
定義2特征指標向量。特征指標用來區(qū)分攻擊概貌和普通概貌之間的差異。不同攻擊類型選取的特征指標不同。表示成:
R=[r1,r2,。。。,rm]
式中:rm表示不同攻擊類型確定的特征指標。
攻擊概貌評分的“關(guān)注度”和“機械性”,使得與普通概貌評分之間存在差異。如項目的評分高低,用戶評分向量長度變化,用戶對于流行項的關(guān)注程度等。特征指標可以量化托攻擊者與正常用戶在評分方式上的差異。文獻[4,19-20]為識別基本托攻擊,提出了不同的特征指標。RDMA 反映了輸入用戶與系統(tǒng)中其他用戶的評分差別;WDA、WDMA是對RDMA的改變;LengthVar表示用戶評分向量的長度變化;MUS反映出用戶概貌同聚類中心相似度。WDA、WDMA、RDMA、LengthVar、MUS等特征指標從不同方面反映出普通概貌和攻擊概貌的差異性。
由1.1 可知,攻擊者選擇用戶共同關(guān)注的熱門流行商品,插入攻擊概貌。同時使用評分偏移策略修改熱門商品的評分,降低攻擊概貌的“關(guān)注度”,進而躲避攻擊檢測。不同商品的受眾群體不同,共同關(guān)注的熱門流行商品不同。因此,采用K-Means 算法[21],對標記用戶數(shù)據(jù)集UT進行聚類分析,把評分近似的用戶劃分到一個簇集中,進而得到不同簇集的共同評分項。
推薦系統(tǒng)中,相似用戶用Pearson 相關(guān)系數(shù)描述。相關(guān)系數(shù)越大,兩個評分用戶相關(guān)性就越強,評分越近似。相關(guān)系數(shù)表示成:
式中:sir用戶i對項r的評分;sjr用戶j對項r的評分;i用戶i的平均評分;j用戶j的平均評分。
K-Means算法的聚類效果受初始聚類中心個數(shù)和聚類中心位置的影響。為了確定聚類中心個數(shù),計算標記用戶的Pearson 相關(guān)系數(shù),得相似矩陣simn×n。該矩陣對稱,且負數(shù)表明兩個用戶評分差異大,所以只考慮標記用戶相關(guān)系數(shù)simij>0的上三角數(shù)據(jù)。simn×n表示如下:
2.1.1 確定聚類中心個數(shù)K
(1)使用公式4計算標記用戶的simn×n,把simn×n上三角數(shù)據(jù)投影到X 軸坐標。為保證sim 值劃分的精度,投影值保留4位有效數(shù)字。
(2)依次計算投影在X 軸的相鄰sim 差的絕對值。若|simf-simb|≥б,則為一個劃分,并記錄這一劃分sim 的個數(shù)tk。б 取值依賴于sim 的精度和相鄰sim 差值大小。б取值隨著sim的移動而增大,但在段內(nèi)|simf-simb|<б。
(3)計算K個劃分平均用戶個數(shù),即tagv=標記用戶個數(shù)/K。tk<<tagv,即對于個別劃分僅有少數(shù)標記用戶,則該劃分可以不用考慮,K減1。
(4)K為聚類中心個數(shù)。
2.1.2 選擇K個初始聚類中心
標記用戶中,選擇評分項最多的utk個用戶為聚類中心。因為評分項越多,更能成為其他用戶的近鄰。utk表示標記用戶中評分最多的第k個用戶。
2.1.3 標記用戶聚類分析
(1)計算標記用戶同K 個初始聚類中心的相關(guān)系數(shù)sim(ut, ck),把用戶劃分到相關(guān)系數(shù)最大簇集中,ck為初始聚類中心。
(2)計算K 個簇集中用戶對項的評分均值,作為新的聚類中心ck’。
(3)如果sim(ck,ck’)<θ,則ck=ck’,重 復(fù)step1 和step2,否則聚類結(jié)束。θ的取值通過實驗確定。
(4)輸出K個聚類中心,K個簇集的標記用戶ukt。uk‐ti∈ukt,ukti表示第k個簇集中第i個標記用戶。
不同的簇集中,共同關(guān)注項可能不同,但每個關(guān)注項都是近鄰用戶可能選擇的物品。推薦系統(tǒng)中,近鄰個數(shù)越多,共同關(guān)注項的評分次數(shù)越多。推薦系統(tǒng)通過用戶近鄰來計算預(yù)測值,近鄰個數(shù)太多,計算效率低;近鄰個數(shù)太少,很多商品無法預(yù)測。因此,需要對數(shù)據(jù)集進行分析,找到合適的近鄰個數(shù)。
在同一個簇集中,統(tǒng)計不同用戶的評分次數(shù),被評分次數(shù)大于等于用戶近鄰個數(shù)的商品集合為簇集k中的共同關(guān)注項。表示為:
式中:nkIi為第i個物品在簇集k 中被評分次數(shù);nnu為推薦系統(tǒng)中預(yù)測評分時,用戶的近鄰個數(shù)。
由1.1 可知,攻擊者會盡可能了解數(shù)據(jù)庫的評分分布。如熱門物品評分均值,進而使用噪音注入策略自動化生成攻擊概貌,避免評分的“機械性”,躲避攻擊檢測。因此,采用類內(nèi)散布矩陣的單類模式特征提取方法[22],二次提取標記用戶特征指標的特征向量。在保留類間鑒別信息的同時,突出可分性,為區(qū)分混淆托攻擊提供先驗知識,把攻擊用戶和普通用戶富集于兩端,實現(xiàn)攻擊概貌和普通概貌的分類。
圖1 混淆托攻擊檢測算法流程
類內(nèi)散布矩陣的單類模式特征提取的目的是壓縮維度,保留類別間的鑒別信息,突出類間可分性。具體計算方法如下:
(1)依據(jù)定義2,計算標記用戶特征指標矩陣,行為特征指標,列為標記用戶,表示為:
(2)特征指標值的均值向量表示為:
(3)特征指標協(xié)方差矩陣表示為:
式中:r 為n 個特征值的n 維向量;Acr為n×n 的實對稱矩陣。
(4)計算特征指標協(xié)方差矩陣Acr的特征向量。假設(shè)Acr的n個特征值λk對應(yīng)n個特征向量,歸一化n個特征向量后的正交矩陣為Ccr,表示為:
式中:wk為歸一化的特征向量;k=1,2,…,n。
使用Ccr對標記用戶特征指標樣本進行變換,計算變換后的類內(nèi)距離:
式中:R*=CcrR;Ccr為正交矩陣,CcrTCcr=E。
從上式可以看到,變換的標記用戶特征指標向量R*,類內(nèi)距離保持不變。對Acr的n個特征值λk升序排序,選取前m 個特征值對應(yīng)的特征向量作為的行,組成壓縮變換矩陣Ctr(m×n),則特征指標向量壓縮表示為:
式中:R為特征指標向量,R*為被壓縮后的特征指標向量。
混淆托攻擊半監(jiān)督檢測算法(SeD-CSAD)的流程如圖1所示。
具體實現(xiàn)步驟如下:
(1)依據(jù)定義1,收集標記用戶。
(2)依據(jù)上文2.1,對標記用戶進行聚類,輸出K個聚類中心ck,K個簇集的標記用戶utk。
(3)使用公式5,統(tǒng)計K 個簇集中用戶的商品評分次數(shù)nkcom。
(4)輸入用戶進入推薦系統(tǒng),判斷當前進入系統(tǒng)的用戶個數(shù),直到輸入用戶個數(shù)大于等于閾值ψ,轉(zhuǎn)入下一步。
(5)過濾輸入用戶共同關(guān)注項。
(6)使用公式11,對輸入用戶特征指標進行壓縮。
(7)對輸入用戶特征指標壓縮值進行排序,并計算壓縮值的均值差,差值為負且絕對值大于閾值η,為普通概貌,否則為攻擊概貌。
輸入用戶,進入推薦系統(tǒng)后,它們的最鄰近不同。因此,輸入用戶過濾的共同關(guān)注項也不同,這就要求把每一個進入推薦系統(tǒng)的用戶劃分到不同的簇集中,再過濾同關(guān)注項。輸入用戶共同關(guān)注項過濾流程如圖2所示。
圖2 輸入用戶共同關(guān)注項過濾流程
過濾輸入用戶共同關(guān)注項,利用標記用戶特征指標的特征向量,壓縮輸入用戶特征指標,進而識別攻擊概貌和普通概貌。特征指標向量壓縮流程如圖3所示。
實驗數(shù)據(jù)為MovieLens100K 數(shù)據(jù)集[23]。該數(shù)據(jù)集包含了943 位用戶,每位用戶至少對20 部電影進行了打分,并對1682 部電影進行了1 到5 的評分。實驗參數(shù)設(shè)定:推薦系統(tǒng)的攻擊強度太低不能影響推薦評分,太高易被檢測。因此,實驗中輸入用戶為ψ≥3%[11];用戶的近鄰個數(shù)nnu=30[16];特征指標向量壓縮維度m=1;概貌識別閾值η=0.02;確定聚類中心個數(shù)K=8。構(gòu)建混淆托攻擊概貌中α=0.8。
5.2.1 信息增益比較
信息增益表明特征指標對樣本的區(qū)分能力,區(qū)分能力越強,說明特征越重要。因此,過濾共同關(guān)注項,計算K 個簇集平均信息增益,進而為不同混淆托攻擊選取特征指標。表2和表3分別為混淆隨機攻擊和混淆均值攻擊進行50 次實驗,當填充率為3%、5%、10%和20%的K個簇集平均信息增益大小。
從表2和表3可以看出,不同特征指標在同一填充率下,K個簇集平均信息增益大小不同,表明特征指標對輸入用戶的區(qū)分能力不同。MUS 為富集攻擊到一端提供了有效的分類信息。RDMA和WDA能有效反映用戶概貌評分差異。LengthVar表明用戶評分概貌長度變化。
圖3 特征指標向量壓縮流程
表2 混淆隨機攻擊K個簇集平均信息增益
表3 混淆均值攻擊K個簇集平均信息增益
6.2.2 SeD-CSAD算法檢測效果比較
混淆托攻擊算法的檢測效果用準確率(P)和召回率(R)表示,計算方法為:
式中:TP 正例檢測為正例;FP 反例檢測為正例;FN 正例檢測為反例。
圖4 混淆隨機攻擊準確率比較
低填充率下,檢測效果可以用斜率絕對值,即檢測敏感性表示:
式中:ΔP 表示準確率的變化量,ΔF 表示填充率的變化量。
比較混淆托攻擊半監(jiān)督檢測算法(SeD-CSAD)、主成分分析算法(PCA-SAD)和貝葉斯算法(Bayes-SAD)對混淆托攻擊檢測效果。圖4-5 給出了實驗檢測算法SeDCSAD、PCA-SAD 和Bayes-SAD 在攻擊強度3%下,填充率為3%、5%、10%、20%混淆隨機攻擊和混淆均值攻擊的檢測準確率。
表4 混淆隨機攻擊和混淆均值攻擊的準確率和召回率
從圖4-5 可以看出,混淆隨機攻擊和混淆均值攻擊,在較低的填充率下(≤5%),SeD-CSAD 算法檢測敏感性更高,即在較低的填充率下,該算法更易檢測出混淆托攻擊,且SeD-CSAD 算法隨著填充率的提高準確率不斷提高。
表4為SeD-CSAD 算法對混淆隨機攻擊和混淆均值攻擊的準確率和召回率。隨著填充率的增大,召回率和準確逐漸提高,表明該檢測算法的有效性。
(1)分析基本托攻擊模型及混淆策略,給出混淆托攻擊模型的一般形式,為研究混淆托攻擊提供了攻擊模型基礎(chǔ)。
(2)改進K-Means 算法,對標記用戶聚類,進而得到最近鄰用戶的共同關(guān)注項。過濾輸入用戶共同關(guān)注項,計算標記用戶特征指標的特征向量,為區(qū)分攻擊概貌提供先驗知識;為消除混淆策略對托攻擊檢測的影響提供計算方法。
圖5 混淆均值攻擊準確率比較
(3)比較半監(jiān)督算法(SeD-CSAD)、主成分分析算法(PCA-SAD)和貝葉斯算法(Bayes-SAD),在較低的填充率下,SeD-CSAD算法有著較高的檢測準確率。
本文充分利用標記用戶,降低混淆策略對托攻擊檢測的影響,進而對混淆托攻擊進行檢測。下一步的重點工作是研究混淆托攻擊的特征指標,進一步提高混淆托攻擊檢測效率和準確率。