魯國良,袁鐵山
(中國移動通信集團浙江有限公司紹興分公司,浙江 紹興 312000)
網(wǎng)絡詐騙愈來愈成為當前社會發(fā)展問題中亟待解決的問題。這種詐騙形式具有成本低、難追蹤、隱蔽性強等特點。新形勢下的網(wǎng)絡詐騙常常利用存活周期為3~5 d 的網(wǎng)站,通過反復更換域名來實施詐騙。此類網(wǎng)站在頁面上十分雷同,人眼很容易分辨。但是由于缺少詐騙網(wǎng)站相關的數(shù)據(jù)集,學術界和工業(yè)界對此類問題都研究得比較少[1]。本文利用某運營商開發(fā)的RPA 工具獲取的詐騙網(wǎng)站首頁的高清照片,開發(fā)卷積神經(jīng)網(wǎng)絡(CNN,Convolutional Neural Network )模型可以學習不同區(qū)域圖像的深度特征,并通過web 技術提交網(wǎng)址后獲取訪問用戶特征的專家知識并轉(zhuǎn)化為SVM 特征。模型結(jié)合上述兩種特征識別網(wǎng)站是否涉詐。最后通過Pandas 庫以Excel 形式輸出判別結(jié)果。
自2012 年由Hinton 提出的VGG16 模型在ImageNet 比賽上以絕對優(yōu)勢奪冠后,深度學習社區(qū)迎來了一波實踐工具的爆發(fā)式增長。Pytorc 易于學習,API 簡潔和易于理解,Pytorch 還支持分布式數(shù)據(jù)并行計算,此項功能可以大大縮短模型訓練時間。基于以上原因本文選擇基于Pytorch 進行研究[2]。
支持向量機(Support Vector Machine,SVM)可以通過核技巧將線性不可分的樣本映射到特征空間中去,以盡可能大的間隔來區(qū)分樣本。相較于原始數(shù)據(jù)空間中的樣本,特征空間中的數(shù)據(jù)更具有線性可分性,更便于分類器進行分類任務。同時,映射后的特征具有更好的稀疏性。
卷積神經(jīng)網(wǎng)絡按照功能主要可以分為兩個模塊——即圖像特征提取模塊和分類器模塊。本文用于提取圖像特征的網(wǎng)絡為ResNet[3]。它以獨特的殘差結(jié)構(gòu)而得名,見圖1,左側(cè)為淺層網(wǎng)絡殘差學習單元,右側(cè)為深層網(wǎng)絡殘差學習單元。殘差學習單元分為短路結(jié) 構(gòu)(shortcut connection) 和 殘 差 結(jié) 構(gòu)(residual mapping)。經(jīng)過這種結(jié)構(gòu)的設計,解決了深層網(wǎng)絡存在的性能下降問題,使得特征提取能力大幅提升。
圖1 ResNet 殘差結(jié)構(gòu)
RPA(Robotic Process Automation)即流程自動化機器人技術,代替機械式、高重復、低價值、大批量的日常操作的目的[4]。在本文的任務中由于需要通過網(wǎng)址獲取首頁圖像,通過引入RPA 工具,模擬人類瀏覽網(wǎng)頁的動作獲取圖像相對而言是一種省時省力的方法。
本文實現(xiàn)的系統(tǒng)總體分文三個步驟。第一步通過待檢測的網(wǎng)站網(wǎng)址獲取首頁圖像并利用OpenCV 獲得指定區(qū)域的圖像[5],同時通過大數(shù)據(jù)技術獲取對應的網(wǎng)站日流量數(shù)據(jù),再將這些數(shù)據(jù)轉(zhuǎn)化為SVM 特征。第二步輸入圖像及相應的SVM 特征,模型利用這些特征對網(wǎng)站是否為詐騙網(wǎng)站進行識別。第三步通過Pandas 庫將判別結(jié)果以Excel 的形式輸出??傮w流程,見圖2。
圖2 總體流程
深度學習模型成功的一大因素是高性能計算的進步,另一大因素就是海量的數(shù)據(jù)。因此,充足的數(shù)據(jù)準備是模型獲得良好的性能的必要前提。
本文利用已知的5 000 多個已涉詐網(wǎng)站作為正樣本,獲取到其對應的網(wǎng)站首頁圖像及日訪問人次、日訪問用戶縣市分布等流量數(shù)據(jù)(通過紹興移動大數(shù)據(jù)資產(chǎn)獲取),同時選取3 000 多個白名單中的網(wǎng)站作為負樣本。訓練集與測試集按照8:2 的比例進行切分。其中詐騙網(wǎng)站圖像被切割為五個區(qū)域,即左上角、右上角、左下角、右下角、中間。這樣可以使模型關注特定區(qū)域的特征而又不損失信息。每一個樣本以〈首頁五個區(qū)域圖像,SVM 特征,樣本標簽〉 的形式存在。
在將圖像數(shù)據(jù)輸入模型前,需要對其尺寸進行處理,以適應模型需要的尺寸。在本研究使用的ResNet模型中要求的輸入圖像尺寸為224×224×3,即輸入的圖像水平分辨率、垂直分辨率為224 個像素,輸入的通道數(shù)為R、G、B 這3 個通道。這一步可以通過Pytorch 框架自帶的torchvision 庫來實現(xiàn),借助transforms.Resize()函數(shù)可以在不改變圖像內(nèi)容的情況下,改變其分辨率。過程圖,見圖3。
圖3 圖像尺寸變換過程
專家知識通過某運營商大數(shù)據(jù)技術獲取。本文利用Hive 數(shù)據(jù)倉庫,通過編寫HQL 獲得原始數(shù)據(jù)。由于在Hive 平臺存儲的數(shù)據(jù)量很大,查詢較慢,所以高性能的HQL 以及高效地執(zhí)行是整個系統(tǒng)運行效率的關鍵。本文通過設置hive.exec.parallel=true 及設置hive.exec.parallel.thread.number=16 來提高HQL 執(zhí)行的并行能力,通過設置開啟jvm 重用來提升HQL 在短時任務場景下的速度。同時考慮到本文的輸入?yún)?shù)只有字符串形式的網(wǎng)址,數(shù)據(jù)量極小,在這種情況下,為查詢觸發(fā)執(zhí)行任務的時間消耗可能會比實際job 的執(zhí)行時間要多的多。本文通過設置hive.exec.mode.local.auto=true 來開啟本地模式,避免集群運算。詳細數(shù)據(jù)獲取流程,見圖4。
圖4 網(wǎng)址流量結(jié)果獲取流程
在SVM 模型中有表示特征重要性的參數(shù)coef_。該參數(shù)在二分類任務里為1×n 的向量。在經(jīng)過訓練之后,將訓練集和測試集總共8 000 多個樣本的專家知識部分的特征與特征重要性參數(shù)coef_進行點乘操作,從而將原始空間的數(shù)據(jù)映射到特征空間,以提高特征的可用性。經(jīng)過點乘操作后的數(shù)據(jù)尺寸形狀不變。變換過程,見圖5。
圖5 SVM 特征
由于圖像內(nèi)容較為簡單,同時需要做的分類任務也較為簡單,即為二分類任務。因此,在選取圖像特征抽取網(wǎng)絡時,本文選擇較為淺的resnet18 模型。resnet18 模型最后經(jīng)過全局下采樣層后,輸出的特征向量為512 維。選取resnet18 的輸入層到全局池化層為圖像特征抽取模塊,其中包含一個最大值池化層、一個全局平均池化層和20 個卷積層。由于輸入的圖像數(shù)據(jù)共有5 張,因此需要設計五條通路來分別提取器特征。最終將5 條通路的特征進行加和操作,與SVM 特征進行拼接操作,然后經(jīng)過一層全連接層將特征維度轉(zhuǎn)換為2 維,對應需要進行分類的“是”與“否”。最終接一層SoftMax 層平滑特征,取較大的值作為判別結(jié)果。模型結(jié)構(gòu),見圖6。
圖6 模型結(jié)構(gòu)圖
其中,exrta(*)表示圖像特征抽取函數(shù),concat(*)表示特征拼接函數(shù),L 表示損失函數(shù)。
在模型訓練時,需要設定訓練的輪數(shù)、每次訓練的樣本大、學習率以及優(yōu)化器。本研究中將樣本大小設定為64,學習輪數(shù)設定為128 輪,即在128 輪的訓練中,每次將64 個樣本輸入網(wǎng)絡進行訓練。初始學習率設定為0.001,優(yōu)化器選擇AdamOptimizer 進行參數(shù)的一階梯度優(yōu)化更新。Ada 算法是一種有效的隨機優(yōu)化方法,它只需要一階的梯度,并且只需要很小的內(nèi)存。該方法通過第一,第二梯度的估計,計算不同參數(shù)的自適應學習速率。
在圖像特征結(jié)合的時候,其實有比較多的選擇,例如可以將各組特征按照最大值、最小值、拼接、加和、點乘等方式。首先可以從理論上排除點乘的方式,這種方式由于0 值的存在,最終的特征會變得及其稀疏,無法用于模型學習,而其他四種方式則需要以具體實驗結(jié)果為依據(jù)進行判斷。圖7 中結(jié)合方式的模型測試機準確率結(jié)果,從結(jié)果可以看出,加和方式相較于其他三種方式,結(jié)果最優(yōu),達到了78%的準確率。這是由于加和的方式既照顧到了SVM 特征的表達,也照顧到了圖像特征之間的充分表達。直接拼接的方式由于拼接后圖像特征明顯多于SVM 特征,使得后者對于分類的貢獻被掩蓋了。而最值方式在極端情況下會有可能只利用到一個區(qū)域的特征。因此本文最終選擇使用加和的方式來結(jié)合各個區(qū)域之間的特征。
圖7 模型準確率
本文研究了基于深度學習的詐騙網(wǎng)站識別技術,提出可以基于網(wǎng)站首頁的圖像特征加介于專家知識的SVM 特征進行識別,模型最終達到了令人滿意的性能。通過對詐騙網(wǎng)站的識別研究,及時發(fā)現(xiàn)并阻斷對詐騙網(wǎng)站的訪問行為,降低電信網(wǎng)絡詐騙案發(fā)率。
但是本文也存在著以下不足:(1) 引入RPA 工具,制約系統(tǒng)并行處理能力;(2) 特征結(jié)合方式粗暴,即以直接拼接的方式處理不同特征,限制特征表達能力。
在后續(xù)的研究開發(fā)中,針對第一點不足,可以考慮引入云計算技術,云化RPA,充分利用云計算提供的SaaS 能力,解決硬件資源瓶頸,提高系統(tǒng)的并行處理能力;針對第二點不足,可以考慮借助多模態(tài)識別技術,實現(xiàn)特征的跨模態(tài)學習,提高特征表達能力。