陳真,乞文超,鮑泰宇,申利民
(1.燕山大學(xué)信息科學(xué)與工程學(xué)院,河北 秦皇島 066004;2.燕山大學(xué)河北省計算機虛擬技術(shù)與系統(tǒng)集成重點實驗室,河北 秦皇島 066004)
云時代,云應(yīng)用程序接口(API,application programming interface)作為服務(wù)交付、能力復(fù)制和數(shù)據(jù)輸出的最佳載體,已成為當今數(shù)字世界的基礎(chǔ)設(shè)施[1]。云API 正在成為人工智能技術(shù)“飛入尋常百姓家”的重要管道[2],和實現(xiàn)面向服務(wù)軟件開發(fā)與運行的核心要素。
然而,網(wǎng)絡(luò)中云API 的激增使用戶越來越難從眾多功能同質(zhì)化的云API 中選擇高質(zhì)量、個性化的云API 進行面向服務(wù)的軟件開發(fā)。為了應(yīng)對上述問題,研究者引入服務(wù)質(zhì)量(QoS,quality of service)來刻畫云API 的非功能側(cè)特性[3],以表征云API 在某一方面的質(zhì)量信息,如響應(yīng)時間、吞吐量和可靠性等。但是由于高昂的時間成本、巨大的資源開銷和服務(wù)質(zhì)量情境依賴的特點,用戶無法調(diào)用并測試全部候選云API 的性能來獲取相應(yīng)的服務(wù)質(zhì)量數(shù)據(jù),云API 提供商也很難提供符合用戶情境特征的服務(wù)質(zhì)量數(shù)據(jù),故服務(wù)質(zhì)量感知云API 推薦系統(tǒng)成為解決這一矛盾的自然選擇[4]。將具備良好性能的云API 推薦給適用的人群,一方面可幫助用戶從海量的云API 中發(fā)現(xiàn)高質(zhì)量、高價值的云API;另一方面可輔助云API 提供商了解所提供云API 的服務(wù)質(zhì)量,使其不斷優(yōu)化云API 并將高質(zhì)量云API 提供給用戶。
為了確保服務(wù)質(zhì)量感知云API 推薦系統(tǒng)的客觀性和準確性,廣泛采用的策略是使用調(diào)用過云API的其他用戶的服務(wù)質(zhì)量歷史記錄,將此歷史交互記錄作為云API 推薦系統(tǒng)的數(shù)據(jù)基礎(chǔ)[5]。值得注意的是,準確可信云API 推薦系統(tǒng)的一個重要前提是確保用戶提交的每個服務(wù)質(zhì)量的評估信息真實可靠。然而,由于云API 推薦系統(tǒng)自身的開放性,數(shù)據(jù)的真實性無法得到有效保證。例如,一些用戶可能在服務(wù)質(zhì)量評估時,為提高某些云API 的利用率而故意降低其他云API 的服務(wù)質(zhì)量評分。服務(wù)提供商可能利用一些虛假用戶故意提高自己的云API 的服務(wù)質(zhì)量,從而影響用戶反饋信息的可信度,使推薦模型產(chǎn)生錯誤,使推薦方向遵循攻擊者的意愿[6]。因此,如何有效利用服務(wù)質(zhì)量的差異來檢測虛假用戶,以抵御數(shù)據(jù)投毒攻擊成為服務(wù)質(zhì)量感知云API推薦系統(tǒng)應(yīng)用亟待解決的現(xiàn)實問題。
目前,鮮有服務(wù)質(zhì)量感知云API 推薦系統(tǒng)考慮虛假用戶數(shù)據(jù)投毒攻擊的影響。Zheng 等[7]提出服務(wù)質(zhì)量感知云API 推薦系統(tǒng)將受到用戶貢獻的服務(wù)質(zhì)量數(shù)據(jù)可信度的高度影響。Ye 等[8]在進行云API推薦時,僅將離群點作為虛假用戶的惡意行為,并引入改進的正則項來避免虛假用戶對推薦性能的影響。Manikrao 等[9]和Ran 等[10]提出通過第三方代理驗證所有可用云API 服務(wù)質(zhì)量的注冊表,以提高云API 推薦系統(tǒng)的可信度。
可見,已有方法主要基于離群異常點檢測[8,11]和代理驗證[9-10,12]等策略進行服務(wù)質(zhì)量數(shù)據(jù)安全防護,但沒有考慮到在利用服務(wù)質(zhì)量進行云API 推薦之前,服務(wù)質(zhì)量數(shù)據(jù)在收集、存儲和預(yù)處理過程中可能受到的來自惡意用戶的數(shù)據(jù)投毒攻擊?;诖?,本文提出從服務(wù)質(zhì)量感知云API 推薦系統(tǒng)數(shù)據(jù)端防御的視角出發(fā),建立基于多特征融合的數(shù)據(jù)投毒攻擊檢測模型進行虛假用戶檢測,繼而去除虛假用戶以提高云API 推薦系統(tǒng)的可靠性和可信性。
本文主要的貢獻如下。
1) 提出了面向服務(wù)質(zhì)量感知云API 推薦系統(tǒng)的數(shù)據(jù)投毒攻擊與檢測問題,給出了服務(wù)質(zhì)量感知云API 推薦系統(tǒng)數(shù)據(jù)投毒攻擊與檢測的形式化定義。
2) 提出了融合用戶鄰域(neighborhood)特征、QoS 深度特征和解釋(interpretation)特征的數(shù)據(jù)投毒攻擊檢測(NQI-Detector)方法,從多個維度捕獲虛假用戶和真實用戶的特征差異,提升數(shù)據(jù)投毒攻擊的檢測效果。
3) 在真實云API 服務(wù)質(zhì)量數(shù)據(jù)集上進行大量實驗,結(jié)果表明NQI-Detector 在面向服務(wù)質(zhì)量感知云API 推薦系統(tǒng)的投毒攻擊檢測中展示出更優(yōu)的檢測效果。消融實驗還解釋了所提取特征的有效性。
數(shù)據(jù)投毒攻擊[13]是指攻擊者通過向原始數(shù)據(jù)集中注入臟數(shù)據(jù)來達到污染數(shù)據(jù)分布的目的,使數(shù)據(jù)分布出現(xiàn)偏差或錯誤,造成云API 推薦系統(tǒng)向用戶推薦無質(zhì)量保障的云API,繼而導(dǎo)致構(gòu)建的服務(wù)化軟件質(zhì)量無法得到保障,給企業(yè)帶來商業(yè)風(fēng)險。
一般來說,攻擊者為了避免投毒數(shù)據(jù)被檢測出來,通常會在構(gòu)建的虛假用戶數(shù)據(jù)中加入真實數(shù)據(jù)或使虛假用戶數(shù)據(jù)分布與真實用戶相似。虛假用戶構(gòu)建完成后批量注入推薦模型中來影響模型的訓(xùn)練和推薦結(jié)果。
定義1云API 推薦系統(tǒng)數(shù)據(jù)投毒攻擊。服務(wù)質(zhì)量感知云API 推薦系統(tǒng)數(shù)據(jù)投毒攻擊表示為
為了避免被發(fā)現(xiàn),攻擊者通常會根據(jù)云API 推薦系統(tǒng)的知識使用特定的攻擊模型生成虛假用戶配置文件[14]。不同攻擊模型采用不同的方式來建立攻擊文件,以模擬真實用戶的服務(wù)質(zhì)量數(shù)據(jù)。通常,一個虛假用戶的攻擊數(shù)據(jù)由四部分構(gòu)成,即其中,AS是選擇填充項集合,通常與目標云API 有一定的關(guān)聯(lián),以最大化攻擊的有效性;AF是隨機填充項集合,隨機選取一組云API 用來偽裝攻擊者的攻擊行為;AΦ是空白項集合,即用戶未調(diào)用過的云API 集合;AT是目標項集合,一般包含一個或一組云API,根據(jù)投毒攻擊用戶的攻擊目的來給目標云API 分配服務(wù)質(zhì)量數(shù)據(jù)。
根據(jù)選擇填充項的不同以及隨機填充項的差異,數(shù)據(jù)投毒攻擊可分為以下3 種類型:隨機(Rnd,random)攻擊、潮流(Bdg,bandwagon)攻擊和均值(Avg,average tack)攻擊。上述3 種數(shù)據(jù)投毒攻擊需要消耗的攻擊成本有所區(qū)別,所帶來的攻擊效果也將有所不同,具體對比如表1 所示。
表1 數(shù)據(jù)投毒攻擊方式對比
為了表示攻擊者想要同時提高或降低多少云API 被推薦的概率,將AT的數(shù)量定義為攻擊強度ε。因此通過數(shù)據(jù)投毒攻擊模型f(·) 生成虛假用戶的過程可以表示為u′=fx(AS,AF,AΦ,AT,ε),其 中,x={Avg,Rnd,Bdg}。
此外,考慮到攻擊成本的限制,攻擊者只能將有限的虛假用戶注入數(shù)據(jù)集中,引入攻擊規(guī)模b來表示一次性注入虛假用戶的數(shù)量。因此,虛假用戶投毒數(shù)據(jù)可進一步表示為其中,ξ(·) 表示虛假用戶選取規(guī)則。
面向服務(wù)質(zhì)量感知云API 推薦系統(tǒng)的數(shù)據(jù)投毒攻擊檢測框架如圖1 所示。該檢測框架針對已被數(shù)據(jù)投毒攻擊的云API 推薦系統(tǒng),從多個角度提取用戶特征,包括鄰域特征、服務(wù)質(zhì)量深度特征和解釋特征,并融合提取的多個用戶特征建立模型完成數(shù)據(jù)投毒攻擊檢測。具體包括以下4 個步驟。
圖1 面向服務(wù)質(zhì)量感知云API 推薦系統(tǒng)的數(shù)據(jù)投毒攻擊檢測框架
Step1鄰域特征提取。通過用戶相似性函數(shù)來計算邊緣權(quán)重,據(jù)此構(gòu)建基于用戶相似性的連通網(wǎng)絡(luò)圖,并使用Node2vec 算法捕獲用戶鄰域特征。
Step2服務(wù)質(zhì)量深度特征提取。從服務(wù)質(zhì)量數(shù)據(jù)出發(fā),利用稀疏自編碼器(SAE,sparse autoencoder)模型挖掘用戶潛在服務(wù)質(zhì)量深度特征。
Step3解釋特征提取。引入用戶數(shù)據(jù)加權(quán)平均偏差設(shè)計用戶解釋特征。
Step4虛假用戶檢測。結(jié)合網(wǎng)格搜索算法優(yōu)化虛假用戶檢測器得到最后的分類結(jié)果。
以往的研究中,皮爾遜相關(guān)系數(shù)通常用于衡量用戶之間的相關(guān)性。然而,用戶-云API 的服務(wù)質(zhì)量的交互歷史數(shù)據(jù)十分稀疏,皮爾遜相關(guān)系數(shù)很容易受到數(shù)據(jù)稀疏性的影響,當共同交互項數(shù)量很少時,很難通過少量的共同交互數(shù)據(jù)來準確評估2 個用戶的相似性[15-16]。由表1 可知,相同的攻擊模型具有相似的選擇填充方式,基于此,本節(jié)從用戶與云API 交互行為的相似性中提出邊緣權(quán)重度量,該度量根據(jù)服務(wù)質(zhì)量的相關(guān)信息(如選擇項、填充比率差異和評級偏差)進行計算,綜合分析共同交互項的數(shù)量和交互數(shù)據(jù)偏差來衡量用戶相似性。進一步,搭建用戶連通網(wǎng)絡(luò)進行鄰域特征提取。
定義3用戶相似性。2 個用戶之間的相似性是指用戶的服務(wù)質(zhì)量數(shù)據(jù)的相似程度。具體地,用戶u和v之間的相似性為
其中,Ua表示與云APIa產(chǎn)生過交互的用戶u集合,λ表示用戶u和v所調(diào)用云API 的影響參數(shù)。用戶u和v的服務(wù)質(zhì)量偏差判定函數(shù)δ(ru,a,rv,a)為
其中,τ表示2 個用戶與同一個云API 交互產(chǎn)生的服務(wù)質(zhì)量偏差閾值,當偏差超過τ時,有理由認為2 個用戶的服務(wù)質(zhì)量體驗不同,用戶之間的相似性不強。當2 個用戶之間的相似性夠強時,即S(u,v)的值足夠大時,會在用戶連通網(wǎng)絡(luò)圖中的2 個頂點(或用戶)之間創(chuàng)建一條邊。由于虛假用戶和真實用戶之間具有不同的相似性模式,因此可以利用距離閾值拉近相似性更強的用戶。但是這一階段計算的用戶距離不足以充分表示虛假用戶和真實用戶之間的差異。為了發(fā)現(xiàn)更深層和更穩(wěn)定的關(guān)系,利用Node2vec 算法基于用戶連通網(wǎng)絡(luò)圖對用戶的鄰域特征進行進一步提取。
Node2vec 算法同時考慮了網(wǎng)絡(luò)結(jié)構(gòu)的同質(zhì)性和結(jié)構(gòu)相似性[17],在隨機游走模型的基礎(chǔ)上,通過參數(shù)p和參數(shù)q控制隨機游走過程中的鄰域采樣策略。當p> 1時,偏向廣度優(yōu)先搜索(BFS,breadth first search)策略;當q< 1時,偏向深度優(yōu)先搜索(DFS,depth first search)策略。Node2vec 隨機游走采樣策略如圖2 所示,在廣度優(yōu)先采樣策略下,節(jié)點u1的向量與其鄰居節(jié)點u2~u5相近,表現(xiàn)出較大的同質(zhì)性;在深度優(yōu)先采樣策略下,首先通過深度延伸,節(jié)點u1的向量和u7的向量相近,表現(xiàn)出結(jié)構(gòu)的相似性。
圖2 Node2vec 隨機游走采樣策略
用戶鄰居信息嵌入是將用戶實體和鄰居關(guān)系參數(shù)化為向量表示。在搭建好的用戶連通網(wǎng)絡(luò)圖中,優(yōu)化的目標是在給定目標節(jié)點的條件下,使目標節(jié)點和其鄰居節(jié)點同時出現(xiàn)的概率最大,確保當前節(jié)點下一步能轉(zhuǎn)移到鄰居節(jié)點。因此,目標函數(shù)為
其中,u表示任意節(jié)點(用戶),NS(u)表示采樣序列中節(jié)點u的鄰居節(jié)點。在一個節(jié)點游走序列中,任意節(jié)點出現(xiàn)的概率等于該節(jié)點之前的所有節(jié)點出現(xiàn)概率的乘積,具體形式為
假設(shè)一個節(jié)點作為源節(jié)點和作為近鄰節(jié)點時共享相同的特征向量空間。那么,式(6)中的條件概率式可進一步表示為
其中,E(·) 是節(jié)點特征向量映射函數(shù),V是連通網(wǎng)絡(luò)圖中節(jié)點集合。綜上,式(5)中的目標函數(shù)可更新為
自編碼器(AE,autoencoder)能夠從原始輸入中提取特征,其結(jié)構(gòu)通常包含輸入層、編碼層和解碼層。將服務(wù)質(zhì)量數(shù)據(jù)x作為AE 的輸入,并通過式(9)得到編碼作為隱式特征。
其中,fp表示編碼層的激活函數(shù),W(1)表示編碼層的權(quán)重矩陣,s表示編碼層偏置向量。
類似地,解碼層的向量可以通過式(10)來重構(gòu)輸入向量。
其中,fq表示解碼層的激活函數(shù),W(2)表示解碼層的權(quán)重矩陣,t表示解碼層的偏置向量。
AE 中的特征提取可以被描述為最小化輸入和輸出之間的誤差的過程,將AE 中的參數(shù)表示為Θ={W(1),W(2),s,t},AE 的目標函數(shù)為
其中,L(·) 是輸入空間的損失函數(shù)。在目標函數(shù)的推進下更新所有參數(shù),獲得最優(yōu)解。
在進行分類任務(wù)提取特征時,原始的自編碼器只是簡單地充當恒等函數(shù),不能準確反映訓(xùn)練服務(wù)質(zhì)量數(shù)據(jù)集的獨特統(tǒng)計特征。一般在重建訓(xùn)練數(shù)據(jù)的過程中,需要使隱藏層節(jié)點數(shù)小于輸入節(jié)點數(shù),但是也可以在增加隱藏層節(jié)點數(shù)的同時,對其加入一定的稀疏限制來達到同樣的效果,確保每次得到的特征編碼盡量稀疏。
為了限制隱藏層節(jié)點數(shù)和活躍度,使大部分隱藏層的節(jié)點被抑制,小部分被激活,達到稀疏化數(shù)據(jù)特征的目的。本文采用稀疏自編碼器提取用戶服務(wù)質(zhì)量深度特征,故原始基于AE 的編碼和解碼過程式(9)和式(10)更新為
本文引入KL(Kullback-Leibler)散度為模型添加稀疏性限制,使隱藏層大部分節(jié)點的活躍度很小。因此,式(11)的重構(gòu)誤差可以進一步表示為式(14),當目標函數(shù)J(SAE)(Θ)取最優(yōu)值時,挖掘得到隱式特征。
其中,β表示懲罰因子,選取Sigmoid 函數(shù)作為激活函數(shù),神經(jīng)元的輸出接近激活函數(shù)上限1 時,該神經(jīng)元狀態(tài)為激活;當神經(jīng)元的輸出接近激活函數(shù)的下限0 時,該神經(jīng)元狀態(tài)為抑制。那么當某個約束或規(guī)則使神經(jīng)網(wǎng)絡(luò)中大部分神經(jīng)元的狀態(tài)為抑制時,該約束為稀疏性限制,KL 散度作為交叉熵與信息熵的差值,其計算式為
服務(wù)質(zhì)量感知云API 推薦系統(tǒng)的數(shù)據(jù)投毒攻擊的特點在于,攻擊者在預(yù)測平臺上注入大量虛假用戶的服務(wù)質(zhì)量數(shù)據(jù),以獲取符合自身意圖的推薦結(jié)果。服務(wù)質(zhì)量感知云API 推薦系統(tǒng)的脆弱性與其過于依賴底層交互數(shù)據(jù)(如用戶提交的服務(wù)質(zhì)量)來訓(xùn)練模型以及無法有效區(qū)分真實用戶和虛假用戶有關(guān)。由于解釋特征能很好地標記帶給推薦系統(tǒng)性能變化的攻擊者,本文引入用戶數(shù)據(jù)加權(quán)平均偏差(WDMA,weighted deviation from mean agreement)uwdma作為用戶解釋特征,其具體形式為
其中,Nu表示所有與用戶u交互的云API 的數(shù)量,Na表示云APIa被調(diào)用的數(shù)量。用戶解釋特征uwdma能很好地衡量用戶對一組云API 的服務(wù)質(zhì)量相對于其他用戶的偏差,同時針對稀疏云API 的服務(wù)質(zhì)量偏差給予較高權(quán)重,平衡服務(wù)質(zhì)量稀疏性所帶來的問題,帶來很高的信息增益。
鄰域特征提取模塊、服務(wù)質(zhì)量深度特征提取模塊和解釋特征提取模塊從多角度得到了用戶的多元嵌入表示,將多特征進行融合作為最終虛假用戶檢測模塊的輸入,即
在虛假用戶檢測模塊中使用改進的網(wǎng)格搜索算法[18]對SVM 模型中的超參數(shù)進行優(yōu)化,通過窮舉搜索找到分類模型中的最優(yōu)參數(shù)。改進的網(wǎng)格搜索算法流程如圖3 所示。
圖3 改進的網(wǎng)格搜索算法流程
本文中使用的改進的網(wǎng)格搜索算法將懲罰參數(shù)c和不同核函數(shù)中的核參數(shù)a分別取M和N個預(yù)設(shè)超參數(shù)值域,以笛卡兒積的形式生成M×N個(c,a)的參數(shù)組合,利用不同的參數(shù)組合訓(xùn)練不同的SVM 分類器,從而在M×N個參數(shù)組合中得到準確率最高的分類器對應(yīng)的參數(shù)作為最優(yōu)參數(shù)。
檢測方法NQI-Detector 將數(shù)據(jù)投毒攻擊檢測分為用戶特征提取和虛假用戶檢測2 個步驟。
用戶特征提取步驟如算法1 所示。
算法1用戶特征提取
算法1中第1)~7)行是計算用戶相似度,并構(gòu)建基于相似性的用戶連通網(wǎng)絡(luò)圖G。第8)~14)行是用戶鄰域特征的表示學(xué)習(xí),通過優(yōu)化學(xué)習(xí)參數(shù)計算節(jié)點采樣序列,得到節(jié)點采樣序列的向量化表示。第15)~18)行得到了用戶-云API 服務(wù)質(zhì)量深度特征表示,通過反向傳播訓(xùn)練稀疏自編碼器更新參數(shù)。第19)~20)行按照式(16)得到用戶解釋特征。
在時間復(fù)雜度方面,算法1 在生成用戶連通網(wǎng)絡(luò)圖G時,第2)行遍歷|U|次,在第3)行計算目標用戶u遍歷所有鄰居節(jié)點v∈U計算相似性,故第1)~7)行的時間復(fù)雜度為O(|U|2)。在用戶鄰域特征提取中,問題規(guī)模為|U|,故第8)~14)行的時間復(fù)雜度為O(|U|)。第15)~20)行計算時間復(fù)雜度為O(1)。綜上,算法1 的時間復(fù)雜度為O(|U|2+|U|)。在空間復(fù)雜度方面,第1)~7)行需借助一個大小為|U|×|U|的輔助矩陣來存儲用戶連通網(wǎng)絡(luò)圖G,故其空間復(fù)雜度為O(|U|2)。在第8)~14)行提取用戶鄰域特征時,需要借助2 個變量walk、walks 以及用戶鄰域特征向量與問題規(guī)模即用戶集合U的大小無關(guān),故其空間復(fù)雜度為在第15)~20)行服務(wù)質(zhì)量深度特征和解釋特征提取中,僅需要借助3 個變量DN、SAE、uwdma以及用戶鄰域特征向量故其空間復(fù)雜度為綜上,算法1 的空間復(fù)雜度為
虛假用戶檢測步驟如算法2 所示。
算法2虛假用戶檢測
算法2 的第1)行將算法1 中提取的特征通過拼接操作進行特征融合,第2)~12)行從網(wǎng)格優(yōu)化搜索中找到最合適的參數(shù),第13)~14)行利用訓(xùn)練得到的參數(shù)完成虛假用戶檢測。
在時間復(fù)雜度方面,算法2 采用改進的網(wǎng)格優(yōu)化算法訓(xùn)練SVM,在第2)~5)行以嵌套方式通過2 個for 循環(huán)獲得SVM 最優(yōu)的懲罰參數(shù)c和核參數(shù)a。在第6)行訓(xùn)練SVM 執(zhí)行時,需要遍歷第1)行獲取的用戶特征向量eu,故算法2 的時間復(fù)雜度為O(M×N×|eu|),其中,M為懲罰參數(shù)c的預(yù)設(shè)值集合的大小,N為核參數(shù)a的預(yù)設(shè)值集合的大小。在空間復(fù)雜度方面,算法2 第1)行需借助一個大小為|eu|的輔助數(shù)組存儲用戶特征向量,故其空間復(fù)雜度為O(|eu|)。第2)~12)行進行SVM 模型訓(xùn)練時,僅需借助 svmscore、bestscore和best_parameters 等變量,與問題規(guī)模M×N無關(guān),故其空間復(fù)雜度為O(1)。綜上,算法2 的空間復(fù)雜度為O(|eu|)。
由于算法1 和算法2 以線性方式順序運行,故NQI-Detector 整體的時間復(fù)雜度為O(|U|2+|U|+M×N×|eu|),空間復(fù)雜度為其中由于M、N和|eu|在算法實際執(zhí)行時均為有限值,故NQI-Detector 的時空復(fù)雜度主要依賴于問題規(guī)模|U|,NQI-Detector 可應(yīng)用于大規(guī)模云API 推薦系統(tǒng)的數(shù)據(jù)投毒攻擊檢測。另外在數(shù)據(jù)給定后,以預(yù)處理方式執(zhí)行算法1 進行用戶特征提取,可進一步提升NQI-Detector 對投毒攻擊檢測的整體時空效率。
1) 實驗數(shù)據(jù)。本文實驗數(shù)據(jù)來自真實世界的云API 服務(wù)質(zhì)量數(shù)據(jù)集WS-DREAM[19]。WS-DREAM記錄了真實世界的多個云API 被分布在不同地理位置的339 個用戶調(diào)用所產(chǎn)生的服務(wù)質(zhì)量數(shù)據(jù)。實驗數(shù)據(jù)統(tǒng)計信息如表2 所示。
表2 實驗數(shù)據(jù)統(tǒng)計信息
在開放網(wǎng)絡(luò)環(huán)境下,網(wǎng)絡(luò)中可用云API 數(shù)量很多,但是單個用戶通常只調(diào)用過少量云API,因此用戶-云API 服務(wù)質(zhì)量矩陣是十分稀疏的。為了使實驗與真實的云API 應(yīng)用場景保持一致,在用戶-云API 服務(wù)質(zhì)量矩陣上采用A/B模式來稀疏化服務(wù)質(zhì)量數(shù)據(jù)集。
2) 參數(shù)設(shè)置。由于不同類別的服務(wù)質(zhì)量數(shù)據(jù)變化范圍不同,服務(wù)質(zhì)量偏差閾值τ的取值依賴于具體服務(wù)質(zhì)量類型。因此,在響應(yīng)時間數(shù)據(jù)集中設(shè)置偏差閾值τ=5,吞吐量數(shù)據(jù)集中設(shè)置偏差閾值τ固定為250。此外,SVM 模型懲罰參數(shù)c和核參數(shù)a在響應(yīng)時間數(shù)據(jù)集中設(shè)置為(5,0.5),在吞吐量數(shù)據(jù)集中設(shè)置為(20,0.5)。
3) 評價指標。為了評估虛假用戶檢測效果,采用廣泛使用的準確率(Precision)、召回率(Recall)和F1 值作為評價指標,分別定義如下
其中,TP 表示正確判斷出的正例數(shù)量,F(xiàn)P 表示被誤認為正例的數(shù)量,F(xiàn)N 表示被誤認為負例的數(shù)量。
4) 實驗環(huán)境。硬件環(huán)境:英特爾處理器(四核),內(nèi)存32 GB。軟件環(huán)境:編程語言Python3.0,編程環(huán)境VS Code。
考慮到目前還沒有專門的針對服務(wù)質(zhì)量感知云API 推薦系統(tǒng)的數(shù)據(jù)投毒攻擊檢測算法,為了證明所提方法檢測性能的準確性和優(yōu)越性,選擇4 種先進的數(shù)據(jù)投毒攻擊檢測算法,將其遷移到云API服務(wù)質(zhì)量感知推薦領(lǐng)域,進行對比分析。4 種對比數(shù)據(jù)投毒攻擊檢測算法如下。
1) PCA-VarSelect[20]。典型的無監(jiān)督投毒攻擊檢測算法,可自動構(gòu)建用戶特征,通過概率潛在語義分析(PLSA)找到具有相似偏好的用戶群體,結(jié)合PCA-VarSelect 從多元統(tǒng)計學(xué)角度重新描述評級矩陣。
2) Bayes-Detector[21]。一種有監(jiān)督虛假用戶檢測方法,利用矩陣分解為每個用戶構(gòu)建隱式特征,隨后使用貝葉斯模型生成潛在標簽信息來更新隱式特征以完成虛假用戶檢測。
3) DL-DRA[22]。一種有監(jiān)督方法,使用雙三次插值算法減少評級矩陣的稀疏性,并使用結(jié)構(gòu)化深度學(xué)習(xí)網(wǎng)絡(luò)進行檢測。
4) DSAE-EDM[23]。一種深度學(xué)習(xí)投毒攻擊集成檢測方法,直接采用深度自動編碼器自動提取用戶的潛在特征以達到攻擊檢測的效果。
為了驗證所提方法能否很好地解決面向服務(wù)質(zhì)量感知云API 推薦系統(tǒng)的數(shù)據(jù)投毒攻擊檢測問題,實驗分別在響應(yīng)時間數(shù)據(jù)集和吞吐量數(shù)據(jù)集上進行數(shù)據(jù)投毒攻擊檢測方法的比較分析。此外,考慮到當數(shù)據(jù)投毒攻擊規(guī)模較小時,通常很難區(qū)分虛假用戶和真實用戶。在實驗過程中,將攻擊強度設(shè)置為4%,攻擊規(guī)模分別設(shè)置為3%、5%、10%和25%,以F1 值為評價指標,實驗結(jié)果如圖4 所示,具體分析如下。
圖4 不同數(shù)據(jù)投毒攻擊檢測方法的對比結(jié)果
1) 在攻擊強度確定的前提下,當隨機攻擊的攻擊規(guī)模設(shè)置為3%時,PCA-VarSelect 的F1 值低于0.8,無法有效區(qū)分真實用戶和虛假用戶。這是由于傳統(tǒng)攻擊檢測算法PCA-VarSelect 的數(shù)據(jù)降維過程是線性的,在恢復(fù)數(shù)據(jù)時會有一定程度的失真。NQI-Detector 能夠非線性提取用戶特征,在低攻擊強度下達到很好的效果。當攻擊強度增大到25%時,DSAE-EDM 和DL-DRA 都可以有效檢測。
2) 潮流攻擊中,在低攻擊規(guī)模下的響應(yīng)時間數(shù)據(jù)集中,DSAE-EDM和DL-DRA的F1值都不到0.85,沒有很好地完成虛假用戶的潮流攻擊檢測。考慮到具有相似情境的用戶所具備的服務(wù)質(zhì)量也相似,只挖掘服務(wù)質(zhì)量數(shù)據(jù)特征是不夠的,NQI-Detector 與DSAE-EDM 相比,構(gòu)建了基于相似性的連通網(wǎng)絡(luò),增加了對用戶鄰域特征的挖掘,達到了強化用戶特征的目的,不但克服了傳統(tǒng)的人工檢測特征在面對不同類別的攻擊時所展現(xiàn)出來的普適性不強的問題,而且增加了虛假用戶識別的準確性。
3) 均值攻擊下吞吐量數(shù)據(jù)集的檢測任務(wù)的完成情況要明顯好于響應(yīng)時間數(shù)據(jù)集,其原因可能在于均值攻擊自身的攻擊特點,由于現(xiàn)實因素,吞吐量數(shù)據(jù)集的數(shù)據(jù)范圍遠大于響應(yīng)時間數(shù)據(jù)集,導(dǎo)致依靠求取均值完成虛假用戶填充項的均值攻擊會更大地偏離真實用戶的服務(wù)質(zhì)量,這有利于幾種虛假用戶檢測算法捕獲到更明顯的用戶特征,從而取得更優(yōu)的效果。
本節(jié)實驗通過對云API 服務(wù)質(zhì)量數(shù)據(jù)集注入不同攻擊強度的數(shù)據(jù)投毒攻擊來評價NQI-Detector 的性能,設(shè)置攻擊規(guī)模為5%。所提方法固定攻擊規(guī)模為5%的虛假用戶時,分別注入不同攻擊強度(4%、8%、12%和16%)的隨機攻擊、潮流攻擊以及均值攻擊的數(shù)據(jù)投毒攻擊檢測結(jié)果如圖5 所示。從圖 5 可以看出,隨著攻擊強度的增大,NQI-Detector 的召回率和準確率會逐漸提高,檢測效果逐步增強。這也與具有較高攻擊強度的數(shù)據(jù)投毒攻擊更容易檢測出攻擊行為的預(yù)期一致。
圖5 不同攻擊強度下的檢測結(jié)果
本節(jié)實驗通過對云API 服務(wù)質(zhì)量數(shù)據(jù)集注入不同攻擊規(guī)模的數(shù)據(jù)投毒攻擊來評價NQI-Detector 的性能,設(shè)置數(shù)據(jù)投毒攻擊強度為4%,NQI-Detector對不同攻擊規(guī)模的3 種攻擊在不同評價指標下檢測效果對比如圖6 所示。
圖6 不同攻擊規(guī)模下的檢測結(jié)果
一般情況下,注入5%規(guī)模的數(shù)據(jù)投毒攻擊已經(jīng)消耗了惡意用戶很高的知識成本,選擇攻擊規(guī)模分別為3%、5%、7%、10%。從圖6 可以看出,在較小和較大的攻擊規(guī)模下,NQI-Detector 依然保持良好的檢測能力,這也驗證了其在云API 服務(wù)質(zhì)量數(shù)據(jù)集上的檢測有效性。在圖6(c)和圖6(f)的F1 值檢測結(jié)果中,NQI-Detector 對潮流攻擊的檢測性能低于均值攻擊的性能指標。這是因為采用潮流攻擊生成虛假用戶時,攻擊者利用賦予流行云API 更優(yōu)的服務(wù)質(zhì)量來包裝自己,將自己偽裝成經(jīng)常使用流行云API 的真實用戶,使檢測方法不易檢測出來。此外,由于隨機攻擊在生成虛假用戶時,虛假用戶與云API交互產(chǎn)生的服務(wù)質(zhì)量值具有不確定性,繼而導(dǎo)致了隨機攻擊和潮流攻擊、均值攻擊之間的檢測結(jié)果關(guān)系是不固定的。
為了進一步研究所提取的3 個檢測特征的有效性,本節(jié)將設(shè)計6 個消融變體實驗,以分析這些特征對提高數(shù)據(jù)投毒攻擊檢測的準確率是否有正向影響。給出組件x∈{N,S,W,NS,NW,SW},其中,N、S和W分別表示NS、NW和SW 分別表示相應(yīng)特征組合,使用NQI-x表示實驗對照組沒有嵌入對應(yīng)組件。表3 和表4 展示了在響應(yīng)時間數(shù)據(jù)集和吞吐量數(shù)據(jù)集上的實驗結(jié)果,攻擊強度設(shè)置為4%,攻擊規(guī)模設(shè)置為10%。
表3 在響應(yīng)時間數(shù)據(jù)集上消融變體實驗對比結(jié)果
表4 在吞吐量數(shù)據(jù)集上消融變體實驗對比結(jié)果
如表3 和表4 所示,NQI-N相對于NQI-S和NQI-W表現(xiàn)較差,這表明用戶鄰域特征在檢測任務(wù)中起到了主要作用。此外NQI-NS 在面對各類投毒攻擊時性能最差,這表明解釋特征在單獨應(yīng)用于檢測時表現(xiàn)出了較差的性能。然而,將解釋特征和服務(wù)質(zhì)量深度特征相結(jié)合可以有效地檢測攻擊者,這種改進在響應(yīng)時間數(shù)據(jù)集上表現(xiàn)并不明顯,但是在吞吐量數(shù)據(jù)集上,這2 種特征的結(jié)合更加有效。
Bayes-Detector 作為先進的使用隱式特征進行數(shù)據(jù)投毒攻擊檢測的方法。5.2 節(jié)實驗結(jié)果表明所提NQI-Detector 比Bayes-Detector 方法更加有效。為了探究這一原因,采用可視化方法來分析所提取的用戶特征表示。本節(jié)實驗使用Maaten 等[24]提出的T-SNE(T-distributed stochastic neighbor embedding)對提取的特征可視化處理,T-SNE 將高維數(shù)據(jù)內(nèi)部的特征放大,使相似的數(shù)據(jù)在低維中距離更近,不相似的數(shù)據(jù)在低維中距離更遠。使用T-SNE 分析2 種方法所提取的服務(wù)質(zhì)量數(shù)據(jù)集上的用戶特征,響應(yīng)時間數(shù)據(jù)集和吞吐量服務(wù)質(zhì)量數(shù)據(jù)集上2 種數(shù)據(jù)投毒攻擊檢測方法所提取的用戶特征的視化結(jié)果如圖7 所示。
圖7 不同服務(wù)質(zhì)量數(shù)據(jù)集下的用戶特征可視化分析
從圖 7 可知,與 Bayes-Detector 相比,NQI-Detector 所提取的用戶特征中重疊的用戶數(shù)量更少,相似用戶的特征分布更緊密,虛假用戶與真實用戶之間的邊界更清晰。因此,NQI-Detector 在檢測云API 服務(wù)質(zhì)量數(shù)據(jù)集中的虛假用戶時更有效。
為了解決服務(wù)質(zhì)量感知云API 推薦系統(tǒng)中的數(shù)據(jù)投毒攻擊問題,本文提出了一種面向服務(wù)質(zhì)量感知云API 推薦系統(tǒng)的基于多特征融合的數(shù)據(jù)投毒攻擊檢測方法。首先,根據(jù)設(shè)計的相似性函數(shù)構(gòu)建了用戶連通網(wǎng)絡(luò)圖,利用Node2vec 算法通過圖上的隨機游走捕獲用戶鄰域特征;其次,從服務(wù)質(zhì)量數(shù)據(jù)視角,利用稀疏自編碼器挖掘用戶服務(wù)質(zhì)量深度特征表示,并構(gòu)建了用戶解釋特征。然后,采用特征嵌入技術(shù)連接用戶的鄰域特征、服務(wù)質(zhì)量深度特征與解釋特征,實現(xiàn)了用戶的多元嵌入表示。在此基礎(chǔ)上,結(jié)合網(wǎng)格搜索優(yōu)化虛假用戶檢測器,提升高維稀疏環(huán)境下虛假用戶的檢測效果。最后,從多個方面進行實驗,系統(tǒng)地分析了所提出的數(shù)據(jù)投毒攻擊檢測方法在服務(wù)質(zhì)量感知云API 推薦系統(tǒng)中的有效性。