張杰俊,李 爽
(1. 中國電信上海分公司,上海 200040;2. 北京郵電大學,北京 100876)
隨著我國社會信息化程度的快速提升,近些年來,與個人信息詐騙相關的報導也越來越多。不法分子通過編造虛假信息,依托電話系統跨地域對受害人進行電話詐騙[1]已成為一種高發態勢。在這類電話詐騙中,不法分子往往通過事先編排的詐騙套路,通過電話系統遠程誘使受害人一步步的透露出個人信息,從而使得其詐騙行為更具有目標性和欺騙性,不僅給受害人帶來財產的重大損失,更造成了精神上的嚴重傷害。
因此,如何能夠從正常的話單中快速識別出電信欺詐[2-7],并進行有針對性的防范成為電信運營商需要面對的一個新的領域。
另一方面,如果能夠結合當前快速發展的人工智能技術,將有助于提升電話詐騙識別率。針對這一需求,本文設計并實現了一個基于卷積神經網絡(Convolutional Neural Networks,CNN)[8-9]的電話詐騙識別系統,首先清洗并處理用戶話單數據,將其構建成用戶特征圖片,然后使用基于CNN的人工智能技術構造出相應的分類器,對詐騙電話的通話數據特征進行挖掘,進而識別出詐騙人員的用戶行為。
基于 CNN的電話詐騙識別系統的功能框架設計如圖1所示[10],其核心功能模塊包括話單數據清洗功能模塊、用戶特征圖構建功能模塊、詐騙識別模型訓練與詐騙行為識別功能模塊。
(1)話單數據清洗功能模塊為電話詐騙識別系統提供數據準備,負責清洗輸入的原始話單數據和用戶信息數據,生成用于構造原始特征圖的用戶信息數據和用戶話單數據。其中,原始話單數據是電信用戶產生的話單記錄信息;用戶信息則包括電信用戶是否實名制、電信用戶的類別(個人或者政企)、使用的電信套餐類別、使用的電信套餐名稱以及是否停機等信息[11]。
(2)用戶特征圖構建功能模塊負責生成原始特征圖,并產生對應于一個時段(例如每5分鐘)的用戶特征圖數據,為系統提供相應的訓練數據。
(3)電話詐騙識別模型訓練與詐騙行為識別功能模塊則負責完成識別模型的訓練以及電話詐騙行為識別結果的優劣評估,它是電話詐騙識別系統的功能核心。
基于 CNN的電話詐騙識別系統在主體架構上包含電話詐騙識別模型訓練流程和詐騙行為識別流程。
與此對應,基于CNN的電話詐騙識別系統的總體結構包含兩層:低層為詐騙電話分析識別層,高層為電話詐騙識別模型訓練與調優層,如圖2所示。其中。
(1)詐騙電話分析識別層主要根據原始話單數據和用戶數據產生基于時間粒度的分片規劃,然后根據電信用戶特征圖數據以及訓練好的電話詐騙識別模型,分析并識別電信用戶的行為類別。
在電話詐騙分析識別層中,數據清洗模塊負責對輸入系統的電信用戶信息和用戶話單數據進行處理和清洗,產生滿足系統后繼處理需要的標準化用戶話單數據,作為下一步電信用戶特征圖構造模塊的數據基礎。電信用戶特征圖構造模塊負責從標準化用戶話單數據中提取并聚合用戶通話特征,生成以時間段為縱軸、以特征為橫軸的用戶通話特征圖。根據輸入數據來源的不同,如果是訓練數據,其特征圖將進一步通過層間接口輸入到上一層的電話詐騙識別模型構造模塊;如果是待測試數據,其特征圖與調優完畢的電話詐騙識別模型一起輸入到電話詐騙行為識別模塊進行識別,并最終得到待測試數據中包含的電話詐騙數據的識別結果。
(2)電話詐騙識別模型訓練與調優層主要負責產生并訓練電話詐騙識別模型,評估電話詐騙識別結果,以及對電話詐騙識別模型進行調優,并在瀏覽器界面中通過可視化模塊展示電話詐騙識別的訓練過程。

圖2 電話詐騙識別系統總體架構Fig.2 Overall architecture of telephone fraud identification classifier
在電話詐騙識別模型訓練與調優層中,電話詐騙識別模型構造模塊通過學習下層用戶特征圖構造子模塊輸入的混合了電話詐騙數據的訓練數據集,可生成相應的電話詐騙識別模型。電話詐騙識別模型對于包含電話詐騙數據的識別效果由電話詐騙識別評估子模塊進行評估,該功能模塊通過對電話詐騙識別結果中查全率和查準率的統計,評估相應模型的輸出效果。
根據電話詐騙識別評估子模塊輸出的評估結果,對電話詐騙識別模型的調優功能則由后續的電話詐騙識別模型調優模塊完成。其調優功能主要通過增加識別電話詐騙關聯特征、改變生成電話詐騙識別模型所需要的迭代次數以及配置相應的模型參數等措施來實現。
本層中,電話詐騙識別模型可視化模塊與瀏覽器終端配合,可實現基于神經網絡的電話詐騙識別模型建立與訓練過程的可視化,并采用圖形化方式展示在模型訓練與評估期間的電話詐騙識別模型構造結果、電話詐騙識別評估情況以及電話詐騙識別模型調優過程。
在設計電話詐騙識別系統時,本文對比和分析了多種機器學習算法,最終選用CNN中較為經典和常用的 Lenet結構作為參考基礎。下面簡略介紹基于 LeNet-5的電話詐騙識別模型與電話詐騙行為識別的主要設計。
參考 LeNet-5的設定,本文設計的電話詐騙識別模型的分層結構如圖3所示,共計包含了6個層次。

圖3 基于CNN的電話詐騙識別模型分層結構示意圖Fig.3 Hierarchical structure of telephone fraud identification model based on CNN
基于神經網絡模型的特性,對電話詐騙識別模型的調優工作是基于模型的迭代調優過程實現的。本文采用的主要調優手段包括卷積核大小和神經元個數的調整(比如本文對于卷積核大小有4*4,5*5,6*6,7*7四種方案,神經元個數有163,248、326,496和64,128,192三種方案),以及對于待評測用戶特征圖的特征數調整(即特征圖中特征數的減少或增加、正負樣本比例的調整),其他的調優方式還包括增大輸入的數據量、增大模型的迭代次數等。后續還可以直接深入CNN結構的內部修改電話詐騙識別模型。
本文中,電話詐騙行為識別功能對用戶類別的識別是基于CNN分類器實現的,其核心流程如圖4所示。通過將待測試的數據文件輸入已訓練完畢的電話詐騙識別模型,如果同一數據文件中的用戶屬于同一類別,則CNN分類器直接輸出識別結果;如果同一數據文件中的用戶屬于不同的類別,則CNN分類器根據識別的結果取眾數,并基于所獲得的眾數結果對當前用戶的行為類別進行判斷。

圖4 電話詐騙行為識別流程圖Fig.4 Flow chart of telephone fraud identification
圖5是本文設計完成的使用CNN技術的電話詐騙識別原型系統測試環境架構。

圖5 測試環境組成示意圖Fig.5 Composition diagram of test environme nt
該測試環境依托于中國電信的大數據環境。由于中國電信集團對于企業大數據的保密原因,電話詐騙識別原型系統測試環境首先必須以 Root權限登錄到大數據平臺的堡壘機,然后再通過堡壘機提供的數據訪問接口才能夠進入企業大數據環境中拉取本測試所需的話單數據。
本文所實現的電話詐騙識別原型系統測試用例涵蓋了原始話單數據清洗、用戶特征圖構建和電話詐騙識別模型訓練與評估等三個方面。根據神經網絡測試的方法,在測試階段中構建了總共包含250000張用戶特征圖的數據訓練集。
在初始測試中,本文所開發的基于CNN的電話詐騙識別模型的卷積核大小初步設定為 3*3,其中包含的神經元個數相應為 64,128,192,迭代次數設定為1000次,并且將訓練數據與測試數據的比例設為4∶1。該部分測試用例總數為50005個,其中詐騙電話(正樣本)的測試用例總數為1508個,普通電話的測試用例總數是48497個。該測試得到的電話詐騙識別結果如圖6所示。

圖6 50005條測試數據測試結果截圖Fig.6 Screenshots of 50,005 data test results
在888個詐騙電話的測試用例中,被正確預測的測試用例數量為597個(記為TP),錯誤預測的測試用例數量為291個(記為FP);在49117個普通電話測試用例中,被正確預測的測試用例為48206(記為TN)個,被錯誤預測的測試用例為911(記為FN)個。根據查準率和查全率的計算公式(查準率=TP / TP + FP,查全率=TP / TP + FN),得到原型系統相關測試結果是查準率=0.672,查全率=0.396。上述測試結果的直觀展示如表1所示。

表1 測試評估結果匯總Tab.1 Summary of test evaluation results
經過多次調整測試參數,在將測試所用的前置條件設定為:訓練數據與測試數據的比例=3∶1,電話詐騙識別模型的卷積核大小=6*6,迭代次數設定為1000次,得到的電話欺騙識別原型系統在查準率和查全率方面的綜合表現最好,分別是查準率=0.735,查全率=0.518,最終測試結果的準確率=0.790。
本文描述了一個基于 CNN的電話詐騙識別系統的設計與實現方案,該電話詐騙識別系統能夠基于CNN技術對電話詐騙識別模型進行訓練,并基于訓練完畢的電話詐騙識別模型分析輸入的用戶話單數據,最終實現對于普通用戶和電話詐騙用戶的有效識別。在該系統中,用戶話單數據清洗模塊實現了該系統對用戶話單數據的處理能力;用戶特征圖構建模塊實現了該系統將已有用戶話單數據整合成為用戶特征圖的處理能力;電話詐騙識別訓練與評估模塊實現了該系統提供電話詐騙識別模型訓練、預測與評估的處理能力。同時電話詐騙識別系統采用分層開發模式,使得各層模塊之間的功能相對獨立,減少了各層模塊之間的耦合度,提高了整個電話詐騙識別系統的可維護性。