?

基于雙域注意力和元學習的移動應用行為識別

2021-12-06 06:48張文君陳丹偉
西南大學學報(自然科學版) 2021年12期
關鍵詞:注意力卷積流量

張文君, 陳丹偉

南京郵電大學 計算機學院、軟件學院、網絡空間安全學院,南京 210000

隨著移動設備智能化程度的提高,手機承載了諸多以前只能通過電腦實現的功能和任務.與此同時,5G已經漸漸進入我們的日常生活,2015-2020年中國手機即時通信用戶規模逐年增長.事實上,網絡性能的大幅提升不僅為即時通信類別的應用帶來了較大改變,同時也使得移動設備能夠為生活、工作、娛樂等各方面的應用需求提供支持.由此可見,5G對移動端應用市場的蓬勃發展起到了極大的促進作用.

用戶在使用每個移動端的應用時會產生各種各樣的網絡流量,通過分析這些流量可以獲取很多信息.比如,第一,可以對用戶的行為作出分析,或者對某個地區某個年齡的用戶行為作出分析,從而刻畫出用戶形象以便更好地推薦;第二,可以實現從攻擊者的視角盡早發現一些有惡性行為的應用并進行防范,從而避免出現隱私泄露等安全問題;第三,可以滿足某些場景或企業的個性化需求,提高網絡服務質量.

傳統的移動應用流量識別主要有3種方式,基于端口號識別、基于DPI深度包檢測識別和基于機器學習的方式.其中,基于端口號和DPI深度包檢測的流量識別方法是依靠研究人員制訂的規則來進行匹配和識別的,此外,基于統計和基于行為的方法都屬于傳統的機器學習方法,故仍需要手工進行特征選擇后,模型才能依據既定特征對待識別樣本進行識別.然而,隨著近幾年深度學習在各領域的大放異彩,研究學者開始嘗試用深度學習解決傳統流量識別方法中的問題.圖1展示了不同流量識別方法的具體流程,深色塊表示機器完成的部分.可以看出,使用深度學習方式可以省略人工進行特征設計的步驟,這已在圖像分類、自然語言處理等多個領域得到了驗證.鑒于此,在流量識別領域我們同樣能夠借助深度學習來提高流量識別的能力.同時,考慮到在實際應用場景中移動應用迭代頻繁的情況,本文采用了元學習多任務訓練的方式,解決了識別模型冷啟動的問題,實現了小樣本場景下的移動應用行為識別.

圖1 不同流量識別方式的流程

1 國內外相關研究工作

網絡流量分析[1-3]一直是網絡安全領域一個重要的研究方向.如今人們對手機的依賴程度越來越高,手機承載著我們越來越多的隱私信息,例如,照片、定位信息、文件甚至是各類金融信息,因此我們嘗試通過對移動應用使用中產生的網絡流量進行分析,識別用戶的行為[4],來達到分析用戶的行為模式或者是用于場景化管理[5-6]的目的.網絡流量分析一般分為流量采集、流量處理、特征分析、結果評估4個步驟.

近年來越來越多研究人員開始利用網絡流量來識別移動應用中用戶的行為,Coull等人[6]在研究iMessage用戶產生的流量時,盡管iMessage對流量進行了加密處理,但通過分析用戶與蘋果服務器交互時產生的網絡數據包的大小等側面信息,仍可以獲取用戶的相關操作特征,例如可以識別出消息的長度、語言的種類等,同時,對發消息的行為,包括輸入狀態和閱讀狀態等5種行為進行了區分,正確率在90%以上.Lee等人[7]研究了韓國的一款通信移動應用,在對用戶發消息、發圖片、添加好友等11種行為產生的網絡流量差異進行分析時,通過提取這些加密數據流的數據報文也能夠對用戶的行為進行識別.Li等人[8]提出在進行移動應用行為識別時,選取數據報文的時間序列和長度序列作為特征進行分析,也可以不受加密的影響.

上述文獻使用的都是傳統的分步策略,目前深度學習已經漸漸開始取代手工設計特征[9]的操作過程.Nan等人[10]提出將原始的網絡數據流量直接作為輸入,使用一種基于棧式自編碼器SAE的識別方法,開創了端到端方法識別流量的先河.王偉[11]同樣是將原始的網絡數據流量直接作為輸入,結合卷積神經網絡來輸出模型的分類結果,將網絡流量的識別很好地與深度學習方式結合到了一起,并且取得了很好的實驗效果.因此,采用深度學習的方式,對網絡流量的原始數據進行學習在流量識別領域是可行且效果可觀的.

2 基于雙域注意力和元學習的移動應用行為識別方法

基于雙域注意力機制和元學習的移動應用行為識別分類模型如圖2所示,在對流量數據進行可視化操作后,利用深度可分離卷積、雙域注意力和元學習訓練策略[12]等模塊來完成在小樣本情況下的移動應用行為識別任務.其中,用深度可分離卷積取代常規卷積操作,是為了在確保識別準確率的同時降低模型參數量,實現更好的泛化性;使用雙域注意力模塊,可以從通道域和空間域2個方面提高輸入特征圖中有用信息的權重,抑制無用信息,提高識別的準確率;使用元學習的訓練方式,將雙域注意力模型作為行為識別的基礎模型,經過大量多任務訓練后,能夠解決識別模型的冷啟動問題,實現在小樣本情況時的移動應用行為特征識別.

圖2 本文的移動應用行為識別模型

2.1 采用深度可分離卷積提取特征

在對訓練圖片進行預處理后,特征提取部分本文使用深度可分離卷積來代替常規的卷積操作.采用深度可分離卷積(Depthwise Separable Convolution)的目的是通過減少模型的參數來提高計算的效率.

深度可分離卷積主要由逐通道卷積和逐點卷積2個部分組成.逐通道卷積(Depthwise Convolution)是作用于通道層面,如圖3a所示展示的是逐通道卷積的模型,一個卷積核對應一個通道.逐點卷積(Pointwise Convolution)與常規的卷積類似,如圖3b所示展示的是逐點卷積的模型,其實就是將上一步得到的特征圖在深度上進行加權組合,那么相比于標準的卷積操作[13],深度可分離卷積需要計算的參數數量要少很多,計算公式如下所示

圖3 深度可分離卷積示意圖

(1)

其中,H為圖片的高度,W為圖片的寬度,C為通道數,N為通道數的個數.

本文在特征提取部分使用深度可分離卷積并非強行用精度換時間,在深度卷積的部分沒有讓通道之間的數據互相影響,逐點卷積又讓通道間信息產生交互,用更低通道的特征圖來存儲特征信息.在實際的實驗中,谷歌團隊的MobileNet相比于VGG16和GoogleNet在保持精度的情況下,大大減少了模型的計算參數,提高了效率.綜上所述,本文使用深度可分離卷積來進行行為特征識別工作.

2.2 雙域注意力

應用行為轉化的灰度圖其實也包含較多無關信息,例如在生成圖片時用于補足長度的黑色部分,或者是流量信息的固定格式等.為了降低無關信息的干擾影響,并且模型能在分類中的效果和效率都有所提升.本文在卷積操作后引入了雙域注意力模塊,這樣能在學習的過程中更加關注對于分類有幫助的信息.本文使用的雙域注意力模塊如圖4所示.

圖4 雙域注意力模塊

對于空間注意力來說,由于將每個通道中的特征都做同等處理,忽略了通道間的信息交互;而通道注意力則是將一個通道內的信息直接進行全局處理,容易忽略空間內的信息交互.因此,將兩者結合作用于本文的行為識別任務中.

1) 通道注意力的計算

常規雙域注意力中通道注意力的計算,首先是對輸入特征圖進行基于全局平均池化的預處理,然后進行通道注意力的提?。?,從頻域的角度進行分析后發現,全局平均池化只是頻域中特征分解的特例,因此直接做全局平均池化會損失很多重要信息.本文的通道注意力是基于DCT頻域分析進行的,其計算公式為

h∈{0,1,…,H-1},w∈{0,1,…,W-1}

(2)

Freqi=2DDCT(Xi)i∈{0,1,…,n-1}

(3)

其中,Xi表示第i個通道的特征圖,n表示總通道數, 2D表示計算的是二維頻域,DCT表示將Xi作為輸入,則n個通道的注意力預處理結果進行拼接后可以表示為

Freq=cat([Freq0,Freq1,…,Freqn-1])

(4)

其中,cat函數表示將多個元素收尾拼接起來,則通道注意力的計算公式為

Mapc(F)=σ(W0(Freq))

(5)

其中,Mapc(F)表示待生成的通道注意力,σ表示Sigmoid激活函數,用來將注意力權重縮放為[0,1],W0表示通道注意力中神經網絡全連接層的參數,W0是需要進行學習的.

2) 空間注意力的計算

空間注意力將通道注意力模塊的輸出作為輸入.首先,將輸入的特征圖進行全局最大池化和全局平均池化處理,然后,將得到的結果進行拼接,經過一個卷積操作后降維到一個通道寬度的特征圖,經過Sigmoid函數激活后生成空間注意力特征圖,再與輸入的特征圖相乘,得到最后生成的特征圖.計算公式如下所示

Maps(F)=σ(F7*7([AvgPool(F);MaxPool(F)]))

(6)

2.3 元學習

本文使用元學習[14-16]作為模型的學習器,即將含雙域注意力的識別模型作為基礎模型,再使用元學習的方式同時進行多個訓練任務,然后通過獲取不同任務合成的梯度方向來更新學習器.

一般的深度學習是將訓練數據分為不同的批次,而對于元學習而言,是將訓練數據分為不同的任務[17-19],用于訓練的任務稱為訓練任務T={T1,T2,T3,…},而在每一個任務里又分了支持集和請求集,支持集對應了傳統深度學習中的訓練數據集,請求集則對應了傳統深度學習中的測試數據集,在每一輪訓練中,對于當前task,使用支持集來訓練該模型,再用請求集去驗證計算誤差來更新學習器的參數.用于測試的任務我們稱為測試任務,那么對于這一部分的任務而言,也是分了2個數據集,即支持集和請求集,一個用于在F上訓練找到一個適合這個分類任務的f,另一個用于在實際的分類器上進行分類,檢驗產生的f的分類效果,從而評價F的學習能力[20].對于分類任務我們使用的損失函數是交叉熵損失函數,則

(7)

其中,N指的是類別的數量,y用0或者1來表示與該類是否相同,P表示在識別模型中預測這個樣本屬于某個類別的概率.

在具體實現一輪訓練任務的時候,首輪任務需要我們將學習器的參數初始化,并且需要提前設定好一個批次的任務數量,然后將這一批次的任務投入到識別網絡中進行訓練,用請求集的數據去計算在當前參數θ下的損失,第二個任務采用同樣的初始參數,重復上述的步驟再進行一次損失的計算,直到這一批次的任務訓練結束,將計算的損失和作為我們學習器的損失,則

(8)

3 實驗結果與分析

本文提出了一種基于雙域注意力和元學習的移動應用行為識別方式,實現了在小樣本情況下對移動應用行為的識別,使用了深度可分離卷積進行特征提取,并用雙注意力機制對有用信息進行增益,另外還采用元學習的訓練方式解決冷啟動問題.本文在實驗中采用了自己采集的數據集,也采用了網絡公開的數據集進行對比實驗.經過驗證,本文提出的方法能夠在小樣本情況下進行移動應用行為的識別,并且在識別準確率上超過了其他小樣本識別方法.

3.1 實驗數據集

本實驗的數據集是微信使用時所產生的網絡數據流量.流量的采集主要是通過自動化測試工具Appium來實現的,該工具能通過編寫腳本自動執行相關操作.使用Appium的原因是它的功能很強大且可以跨平臺使用,這使得我們后期在采集安卓和ios的流量時可忽略系統的差異性.

在數據集構造方面主要分為4個步驟:

步驟一:流量采集.流量采集使用的是基于Appium的自動化平臺,通過自行編寫的腳本在手機上執行既定的應用行為.之后使用Wireshark進行抓包,獲取pacp格式的文件.pacp是一種常用的存儲網絡數據流的存儲格式,大部分的抓包軟件都可以獲取這一類的數據.對于元學習任務,本文采集的數據為微信的應用數據,共抓取了6種行為的流量,采集的用戶行為種類如表1所示.在實際使用中,每次使用4種行為作支持集,2種行為作請求集,且假設測試用的樣本為小樣本.

表1 數據集包含的行為種類

步驟二:流量篩選.在進行流量采集的時候,盡管在自動執行的測試機上只運行了我們需要的移動應用,但是Wireshark在進行流量捕獲的時候,會將所有流經網卡的網絡數據流都保存下來,因此,得到的初始數據存在很多與實驗無關的網絡流量,此外,超時重傳的數據包,在傳輸過程中丟失或者損壞的數據包,在連接初始用于3次握手沒有攜帶數據的確認數據包,在數據傳輸階段接收方發送的ACK數據包,以及用于斷開連接的數據包,這些與實驗無關的數據包都要進行過濾.

步驟三:流量切分.依據Taylor等人[21]的論文觀點,流量切分時依照不同的突發(Brust)閾值對流量進行切分,并依據目的IP和端口號進行流分離.在實驗中,我們采用相同的閾值來切分連續的行為流量,在后續也對時間閾值的選擇進行了實驗.

步驟四:生成流量圖片.取每個數據報的前N個字節,N=1 024,對于每一個圖片而言,每個字節都對應了一個灰度,從而形成一張32*32尺寸大小的灰度圖片.

通過分析發現,不同的應用行為網絡流量的差異性較大,例如,發送文字的數據包大小比發送圖片的數據包小很多,而微信發紅包、轉賬等行為的數據包集中在300~1 300 B左右,需要進一步分析識別.

3.2 實驗任務抽樣

雖然元學習解決的是小樣本問題,但是在訓練時仍需要大量的訓練任務.在傳統的機器學習中,我們用一個訓練集去訓練模型,再用另一個測試集去評判模型的質量,而對于元學習而言,我們不再專注于一個特定的任務,而是通過從數據集中抽樣出一個任務集T={T1,T2,T3,…,Tn},每次選取一個任務進行學習,而每個任務中都包含了訓練樣本(支持集)和測試樣本(請求集),通過對任務的訓練,來實現讓模型學習到一定的先驗知識的目的,從而能夠在新的識別任務中有好的識別效果.

在訓練數據中,有m種不同類型的樣本,從中隨機選4(4

算法1從數據集中生成小樣本識別任務

數據集D={(x1,y1),(x2,y2),…,(xn,yn)},xi∈Rd,yi∈L

D〈t〉表示D中滿足yi=t的所有元素(xi,yi),t∈L

Query Set大小為B,每類樣本數量為K

輸出:小樣本識別任務T={Sa,Qu,K}

依賴:RandSample(P,R)表示從集合P中均勻且隨機抽取R個樣本

1La(la0,…,la3)=RandSample(L,4),Lb(lb0,lb1)=RandSample(L,2)

2 生成支持集(Support Set)

3 fori=1 to 4:

4Sa〈i〉=RandSample (D〈lai〉,K)

預算的決策層,作為國土資源的財政稅收預算管理的重要組織機構,過于看重預算滿意度,造成了預算草案帶有很大的主觀成分,沒有真實反映當前國土資源部門的財政稅收的目標。這種不科學的決策很不利于預算管理工作的順利開展,也阻礙了財政稅收預算管理工作發揮其實際的作用。

5Sa=Sa∪Sa〈I〉

6 end

7 生成請求集(Query Set)

8Qu〈0〉=RandSample (D〈lb0〉,B/2)

9Qu〈1〉=RandSample (D〈lb1〉,B/2)

10Qu=Qu〈1〉∪Qu〈2〉

11T={Sa,Qu,K}

3.3 評估指標

本文采用準確率(Accuracy)和召回率(Recall)作為評估模型的指標.準確率用來評價模型對于行為識別整體的效果,如表2所示,其中TP(True Positive)表示正例預測為正例的樣本數;FP(False Positive)表示反例預測為正例的樣本數;TN(True Negative)表示正例預測為反例的樣本數;FN(False Negative)表示反例預測為反例的樣本數.

表2 評估指標參數介紹

(9)

(10)

其中,ACC表示準確率,REC表示召回率.

3.4 模型收斂性

由于元學習的訓練方式同一般的深度學習方式略有差別,因此首先需要確定本文提出的識別模型的收斂性,如圖5所示展示了該行為識別模型在本文自行采集的數據集上的損失函數隨迭代次數的變化.

圖5 模型訓練收斂

由圖可知,在100次迭代之后模型趨于穩定,證明該識別模型是可以進行下一步實驗的,并且我們將100作為后續實驗的迭代次數.

3.5 時間閾值和樣本數量影響

為了獲得比較好的實驗效果,本文對元學習樣本參數的選取以及在流量的行為劃分時時間閾值的選取進行了測試.

由圖6可知,在進行流量的行為劃分時,由于采取了不同的閾值,行為的劃分直接影響了識別的準確率,同時,觀察得知在時間閾值為1.25 s時可以取得最好的識別效果.當小于1.25 s時存在將一個行為拆分開,而當大于1.25 s時存在將多個不同用戶行為合并的情況,因此后續選取1.25 s作為時間閾值進行實驗.

圖6 行為劃分參數實驗

另一個方面就是考慮在小樣本的情況下,每次訓練任務的樣本數量對實驗效果的影響,本文選取了K=5,10,15這3種情況進行實驗,都是小樣本的場景,但是樣本數量差別較大,實驗結果如表3所示.

表3 樣本數量對實驗結果的影響

實驗結果表明,在樣本數量為5或者10時效果都比較好,模型具有泛化能力,由此可見元學習的學習方式是學習如何提取特征和學習如何進行比較,而不是記住了訓練樣本的特征,從而能在新的識別任務中有較好的表現.

3.6 注意力機制分析

本文采用的注意力機制是基于通道和空間的雙域注意力機制,為了探究是否單獨的通道或空間注意力會帶來更好的效果,實驗時采用了5種不同的注意力模塊,如圖7所示.其中還引入了一個高效的通道注意力(ECA)模塊來進行對比實驗(如圖7e),該模塊是一個輕量級注意力模塊.

圖7 不同注意力模塊

將各類應用行為都按照每次任務10個樣本,仍以4種行為舉例,隨機抽取訓練任務和測試任務,最后得到的實驗結果如圖8所示.

圖8 不同注意力模塊實驗結果

實驗結果表明不同的注意力模塊確實會對實驗結果產生影響,單一種類的注意力機制可能會忽視某些特征,而對于本文的行為識別,空間注意力機制對識別的效果影響要更大一些,對于類似長度的網絡流量在形成灰度圖后,觀察圖形的紋理會更有利于進行識別,而順序的改變對實驗結果基本沒有影響,因此本文選取雙域注意力機制構建識別模型.

3.7 泛化性分析

本文基于雙域注意力機制和元學習的移動應用行為識別模式采用了元學習多任務的方式,因此模型在行為識別方面應具有一定的泛化性.為了驗證這一點,本文除了在自己所采集的數據集之外,還選用了網絡公開的Instagram行為數據集,該數據集包括了4種行為:發文字消息、發圖片、發布動態、點贊,與本文自行采集的微信行為有較大的相似性,因此在訓練時采用微信的數據對模型進行訓練,在測試的時候直接使用Instagram的行為數據集進行測試,實驗結果如圖9所示.結果表明,本文提出的模型能夠對Instagram的應用行為有較好的識別效果,表明了對于相似類型的移動應用,本文所提模型可以將學到的特征應用于新的小樣本行為識別任務中.

圖9 識別模型泛化性實驗

3.8 實驗結果

在小樣本領域實現對移動應用行為的識別是一個比較新的研究領域,本文選取了用于行為識別的CUMMA模型以及專門用于小樣本分類的MAML模型,進行對比實驗,實驗結果如圖10所示.

圖10 實驗結果對比

可以看出,本文提出的小樣本行為識別方法識別效果較好,對比實驗中其他的模型和現有的行為識別模型,都需要大量樣本進行訓練,并且只針對特定類型的行為進行識別,可知本文的識別模型更具有實用性.

4 結束語

移動智能設備和移動應用承載了諸多個人信息和日常工作娛樂功能,通過分析移動應用在使用時產生的網絡流量可以在網絡管理、隱私保護以及行為識別方面提供有價值的信息.本文針對小樣本場景下的移動應用行為識別方式進行了研究,提出了一種基于雙域注意力機制的行為識別方式,該方式提高了移動應用行為識別的準確性;文章還采用了元學習的訓練方式,解決了小樣本場景下,移動應用行為識別冷啟動的問題.當然,本文提出的應用行為識別方式還存在不足和需要改進的地方,使用深度可分離卷積雖然降低了計算量,但注意力機制會增加一部分計算量,因此還需要進一步深入研究計算資源消耗的問題,尋找更加高效的注意力實現方式.

猜你喜歡
注意力卷積流量
冰墩墩背后的流量密碼
讓注意力“飛”回來
基于3D-Winograd的快速卷積算法設計及FPGA實現
張曉明:流量決定勝負!三大流量高地裂變無限可能!
尋找書業新流量
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
一種基于卷積神經網絡的性別識別方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合