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