摘 要:針對電信詐騙號碼數量居高不下,已有模型命中較晚且處置較慢,不能及早識別并遏制詐騙案件發(fā)生的現狀,本文提出基于Flink流技術的詐騙號碼識別研究。首先,構建詐騙號碼識別模型。該模型從通話、交往圈等方面選取指標。其次,采用XGBoost算法選取重要特征。再次,用決策樹算法多輪建設選優(yōu)。最后,從最優(yōu)決策樹中選取優(yōu)質節(jié)點形成規(guī)則,建立識別模型,利用快速處理實時數據Flink流技術開發(fā)部署,實現秒級識詐推送處置。該研究部署落地后,成效顯著,集團全國通報指標百萬占比從低到高排序,由2024年7月全國排名22名升至第6名,大大減少電信詐騙案件的產生。
關鍵詞:電信詐騙;Flink流技術;XGBoost算法;決策樹
中圖分類號:TP 39 文獻標志碼:A
電信詐騙呈高發(fā)趨勢,詐騙手法也不斷翻新,嚴重影響了人民群眾的正常生活,帶來了巨大的財產損失。為了遏制電信詐騙案件的發(fā)生,省公司圍繞多場景、多維度,基于準實時數倉建立一系列反詐預測模型。
目前,省公司已有60多個模型上線運行支撐反詐工作。按用戶行為來看,主要分為通話、終端、短信、土炮、窩點、境外模型等;其中,通話模型是主要模型,其他模型是根據特定詐騙場景分析挖掘建設的。按模型時效性來看,主要分為日、小時、實時模型,實時模型是目前主要的模型,輸出規(guī)模最多,運行最快;小時模型和日模型是對實時模型的補充。
但是,近期發(fā)現不少公安通報涉案號碼在案發(fā)當天能被已有模型命中,但模型命中較晚,且命中時間與處置時間間隔較長,導致涉案成功,因此在提高精準性的同時,亟需加快整個流程處理速度,及早遏制詐騙案件的發(fā)生。
綜上所述,本文提出基于Flink流技術[1-2]的詐騙號碼識別研究。該研究采用XGBoost[3-4]、決策樹[5-6]等算法構建詐騙號碼識別模型,同時,采用先進的快速處理數據的Flink流技術在Kafka平臺開發(fā)部署,實現秒級識詐推送,縮短整個流程。
1 詐騙號碼識別模型構建
為了提升模型的精準性,本文在原有數據基礎上增加了信令數據,豐富了數據來源,同時采用先進的XGBoost算法進行特征工程,選取累計95%以上的重要特征,用直觀易解釋的決策樹算法多輪訓練評估,最后從最優(yōu)決策樹中選取優(yōu)質節(jié)點形成規(guī)則,構建詐騙號碼識別模型。
詳細的構建過程主要包括數據獲取、特征工程、算法建模、提取規(guī)則4個步驟。
1.1 數據獲取
1.1.1 基礎數據準備
本文的目標是從全量用戶中識別疑似詐騙號碼,但是全量用戶2000多萬,詐騙號碼從2024年至今僅幾百個,樣本明顯不均衡。為了縮小樣本不均衡度,更好地識別詐騙號碼,首先對公安通報的涉案號碼進行探索分析。如圖1所示,2024年以來,公安通報的涉案號碼中無通話用戶占比為26.9%,主叫15次以下用戶占比為10.6%,主叫15次以上號碼占比為62.5%。由此可見,大部分涉案號碼主要通過高頻通話來進行詐騙,因此選取當日主叫15次以上的用戶為目標用戶。
基于以上選取的目標用戶,從用戶通信信息、交往圈等方面選取并衍生形成36個指標,在大數據平臺通過數據加工計算形成基礎信息數據。
1.1.2 正負樣本數據
在分類模型的建設中,樣本數據必須是帶有分類標記的數據,分類標簽的準確性是評估分類模型性能的基礎,它也反映了數據質量的高低。
本文的目標是識別疑似詐騙號碼,將2024年公安通報的高頻通話號碼均作為正樣本,負樣本為2024年高頻通話的在網的非詐騙號碼。
由于公安通報的號碼每天僅有幾個(正樣本),而當日主叫次數大于或等于15次的用戶約20萬左右(負樣本),正樣本濃度仍然太低,樣本明顯不均衡;為了提高正樣本濃度,本文將公安通報的每天主叫次數大于或等于15次的數據均作為正樣本,來達到擴充正樣本的目的。
1.2 特征工程
在機器學習模型建設中,特征工程是一個極其重要且復雜的步驟,它直接關系模型的性能。特征工程從原始數據中提取、選擇和構造最能反映問題本質的特征集,使模型更專注于真正有用的特征,減少噪聲和冗余,以優(yōu)化機器學習模型的預測性能。
本文主要采用XGBoost算法進行特征工程。XGBoost的核心思想是通過迭代地添加預測樹來優(yōu)化損失函數,每棵樹都在嘗試糾正前一棵樹的錯誤。具體來說,XGBoost在每一步迭代中都會學習一個新的樹模型,以最小化目標函數。這種迭代提升的方法使XGBoost能夠有效地處理復雜的預測問題。同時,它還提供了直觀的特征重要性評估方法,有助于用戶進行特征選擇和模型解釋。
最終,XGBoost算法從選取的36個特征中提取14個重要性較高的特征(特征重要性累計占比95%以上),包括對端歸屬省市分布數、近7日交往圈重復數、入網時長、國內長途通話時長占比、平均主叫通話時長、主叫通話時長、近7d交往圈重復數占比等。
1.3 算法建模
考慮詐騙號碼識別模型對時效性的要求較高,本文使用易部署、易解釋的決策樹算法進行模型建設。
決策樹算法是一種經典的機器學習算法,在眾多領域得到了廣泛應用,例如文本分類、語音識別、模式識別和專家系統(tǒng)等。它直觀易理解,并且對數據的預處理要求較低,對噪聲數據有較好的魯棒性。它是通過構建樹形結構來對數據進行分類或回歸預測。在分類問題中,決策樹表示基于特征對實例進行分類的過程,可以看作是if-then規(guī)則的集合,也可以視為特征空間與類空間上的條件概率分布。最常見的算法有ID3、C4.5和CART。本文采用CART算法進行模型建設。
由于涉詐號碼畢竟較少,正負樣本量相差較大,樣本不均衡,這種不均衡可能導致機器學習模型在訓練過程中過度關注負樣本,而忽略正樣本,從而影響模型的泛化能力和準確性。因此,本文采用欠采樣方法進行隨機抽樣,通過減少負樣本的數量來減少樣本的不均衡。
在模型建設過程,往往需要將數據集劃分為訓練集、測試集和驗證集。三者要遵循獨立性和代表性。訓練集是用于訓練機器學習模型的數據集,模型通過學習訓練集中的數據來找到最佳參數,以便能夠準確地對新數據進行預測或分類。測試集是用于評估訓練好的模型性能的數據集。它有助于避免過擬合,即模型在訓練集上表現良好,但在新數據上表現不佳的情況。通過比較模型在訓練集和測試集上的性能,可以判斷模型是否過擬合。驗證集是在模型訓練過程中用于調整模型參數和初步評估模型性能的數據集。驗證集有助于避免模型在訓練過程中陷入局部最優(yōu)解,提高模型的泛化能力。本文訓練集、測試集和驗證集占比分別為70%、20%和10%。
同時,本文采用不同濃度的正負樣本進行多輪訓練、測試和驗證,通過分類評價指標(查準率、召回率、F值)綜合評價,選取最優(yōu)的決策樹作為最后的決策樹。其中,各分類評價指標定義如公式(1)、公式(2)所示。
(1)
式中:TP為真實值代表詐騙號碼,預測值代表詐騙號碼;FP為真實值代表非詐騙號碼,預測值代表詐騙號碼;FN為真實值代表詐騙號碼,預測值代表非詐騙號碼;TN為真實值代表非詐騙號碼,預測值代表非詐騙號碼。
(2)
式中:P為查準率;R為召回率。
定義一下混淆矩陣,見表1。
其中,查準率是指預測正確的詐騙號碼占預測的詐騙號碼的比,它反映了模型對詐騙號碼的識別精度,查準率越高,模型對負樣本區(qū)分能力越強。召回率是指預測正確的詐騙號碼占所有真實詐騙號碼的比,它反映了模型對詐騙號碼的覆蓋程度,召回率越高,模型對正樣本的區(qū)分能力越強。F值是查準率和召回率的調和平均,它能夠同時兼顧查準率和查全率。F值越大,說明模型的性能越好。
在模型評估中,考慮該模型對精準性的要求較高,因此選取查準率為81.40%、召回率為49.88%、F值為61.86%的決策樹作為最優(yōu)決策樹。該模型查準率較高,能滿足反詐需求。
1.4 規(guī)則提取
詐騙號碼識別模型的目標就是根據用戶最新的通信等信息快速挖掘疑似詐騙號碼,及早對其進行處置,以免造成更多的財產損失,可見其對時效性的要求極高。為了更好地保障模型輸出的時效性,本文選擇提取以上樹形圖中優(yōu)質節(jié)點(輸出規(guī)模多、查準率高的葉子節(jié)點)進行解析整理并驗證。因為通過決策樹算法訓練模型后生成的樹形圖較大,所以通過提煉只截取其中3個優(yōu)質節(jié)點作為模型推理時所需的規(guī)則。
優(yōu)質節(jié)點1:該節(jié)點中共輸出號碼110個,其中詐騙號碼103個,查準率為93.6%,滿足反詐需求。
優(yōu)質節(jié)點2:該節(jié)點中共輸出號碼438個,其中詐騙號碼418個,查準率為95.4%,滿足反詐需求。
優(yōu)質節(jié)點3:該節(jié)點中共輸出號碼107個,其中詐騙號碼92個,查準率為86.0%,滿足反詐需求。
通過整理形成最優(yōu)決策樹中優(yōu)質節(jié)點,見表2。
綜上所述,首先,本文在原有數據基礎上增加信令數據,并在大數據平臺加工處理用戶通信交往圈等數據。其次,采用流行的機器學習算法XGBoost進行特征工程選取重要特征。再次,將數據集分為訓練集、測試集和驗證集,采用不同濃度的樣本進行多輪訓練,用直觀易解釋的決策樹算法模型建模評估,選取最優(yōu)決策樹。最后,從最優(yōu)決策樹中提取優(yōu)質節(jié)點形成規(guī)則,構建詐騙號碼識別模型。
2 Flink流技術處理
目前,模型預測號碼處置整個流程比較煩瑣,耗時較長。首先,在大數據平臺(Hadoop[7])利用SQL加工預處理數據。其次,利用預訓練的機器學習算法(例如XGBoost、 LightGBM、決策樹等)預測。再次,將模型結果同步到Gbase平臺。從次,Gbase定時加工處理進行推送。最后,根據預設置的處置方案進行處置。
即便是最快的實時模型,整個流程也需要40min左右,并且每15min才能運行1個批次,無法實時預測。
Flink流技術作為一種高性能的分布式計算引擎和框架,在實時數據處理和流處理領域被廣泛應用。它專注于處理無界和有界數據流,提供了高吞吐量、低延遲和容錯性等特點。它統(tǒng)一了批處理和流處理,為這2種數據處理方式提供了統(tǒng)一的編程模型,在保證效率的同時,還保證了數據一致性、準確性和完整性,具體如下。
采用Flink架構:每條數據必須都被計算在內,且做到精準讀取一次的語義。為了解決亂序數據帶來的影響,采用Flink水印機制完成事件時間的過濾及排序,在保證實時性的前提下,及時計算用戶的不同話單記錄的模型參數,發(fā)現滿足既有條件就下發(fā)用戶信息。
保證數據一致性及程序運行穩(wěn)定性:采用狀態(tài)一致性算法及checkpoint機制,在滿足低延遲及高吞吐率的同時,有更高的狀態(tài)一致性語義。
保證實時性與準確性:采用redis來緩存基于事件時間的用戶當天通話記錄信息,實時計算各維度的統(tǒng)計模型計算分析指標,兼顧實時性和準確性。
保證數據完整性:采用kafkaoffset偏移量自動記錄機制,保證數據不丟失、不重復。
為了及早遏制電信詐騙案件的發(fā)生,縮短整個流程時長,本文提出采用Flink流技術在Kafka平臺開發(fā)部署進行數據預處理和模型預測。該技術的應用縮短了數據處理和模型預測時間,同時可實時進行預處理和預測,不需要等15min再進行下批次計算;另外,在輸出后直接同步Oracle加工處理推送處置(Oracle推送到處置不到1min),也大大縮短推送和處置時間間隔;模型運行時間及處置時間二者都大大縮短,有效降低涉詐號碼詐騙成功率,達到極速遏制電詐案件發(fā)生的效果,減少了人民群眾經濟損失,提高了公眾信任度。
3 效果驗證
反詐模型效果驗證在防范詐騙行為、保護用戶財產安全和維護社會穩(wěn)定等方面具有至關重要的作用。從時效性來看,疑似詐騙號碼識別平均提速53min,并且95%以上公安部通報的涉詐號碼可在號碼亂呼開始的2h內被模型命中并關停;從集團排名來看,集團全國通報指標百萬占比由2024年7月的4.39降至當前1.35,全國排名(從低到高排序)從2024年7月的22名升至第6名,提升了16名,大大減少了電信詐騙案件的產生,保護了人民財產安全。
4 結語
為了解決不少公安通報涉案號碼在案發(fā)當天能被已有模型命中,但是模型命中較晚,且命中時間與號碼處置時間間隔較長的問題,本文兼顧精準性和時效性的目標,提出基于Flink流技術的詐騙號碼識別研究。首先,增加數據來源(信令數據)并進行特征工程,構建詐騙號碼識別模型。其次,采用Flink流技術在Kafka平臺部署,將涉詐號碼識別時間平均提速53min,且95%以上涉詐號碼可在號碼亂呼開始的2h內被模型命中并關停。同時,集團全國通報指標百萬占比從低到高排序,由2024年7月全國排名22名升至第6名,大大減少了電信詐騙案件的產生。
參考文獻
[1]張利兵.Flink原理、實戰(zhàn)與性能優(yōu)化[M].北京:機械工業(yè)出版社,2019.
[2]黑馬程序員.Flink基礎入門[M].北京:清華大學出版社,2024.
[3]何龍.深入理解XGBoost:高效機器學習算法與進階[M].北京:機械工業(yè)出版社,2019.
[4]COREY W,張生軍.梯度提升算法實戰(zhàn)——基于XGBoost和scikit-learn[M].北京:清華大學出版社,2024.
[5]李航.統(tǒng)計學習方法[M].北京:清華大學出版社,2019.
[6]GARETH J,DANIELA W,TREVOR H,et al.An Introduction to Statistical Learning[M].New York:Springer:2013.
[7]余明輝,張良均.Hadoop大數據開發(fā)基礎[M].北京:人民郵電出版社,2018.