使用”機器學習”來製作詐騙判斷模組的觀念與想法

機器學習 之封面圖

MLContext模組是ML.NET的主要類別之一,它提供了許多用於”機器學習”任務的功能和工具。MLContext可以被視為一個用於組織機器學習工作流程的容器。

我這次是使用Field Aware Factorization Machine模型來進行預測模型的訓練,這個模型會對特徵進行交叉生成新的特徵,使其可以捕捉到特徵之間的交互作用,專門用來分析具有稀疏特徵且具有交叉特徵的數據。

 

專有名詞說明

處理稀疏特徵:詐騙簡訊檢測通常使用的是稀疏特徵,例如簡訊內容的詞彙、網址、號碼等。Field Aware Factorization Machine模型對於處理稀疏特徵具有良好的能力,能夠自動學習特徵之間的交互作用,有助於提高模型的準確性。

考慮特徵交互作用:Field Aware Factorization Machine模型能夠捕捉特徵之間的交互作用,這在詐騙簡訊檢測中很重要。例如,特定詞彙的出現可能與號碼或網址相關聯,Field Aware Factorization Machine可以學習到這種交互作用,幫助更準確地判斷簡訊是否為詐騙。

 

特殊處理

由於直接將詐騙簡訊拿去訓練會將整段文字拿去當作特徵值,不利於模組判斷交互關係,所以我們事先做了一些處理如下:

  1. 斷詞處理:將完整的句子斷成數個單詞,並統一用空白當成分割符號。
  2. 去除會影響判斷的單字:將網址替換成[網址],並將各種括號內的說明文字、表情符號、時間字串移除掉(跟詐騙判斷無關,避免影響判斷,替換掉是考慮進網址出現跟某些關鍵字的關聯性與詐騙有關)
  3. 提取出的網址留給google 詐騙網址api 判斷(在此模組去除變數但依舊保留,網址出現為詐騙的可能性)

 

再訓練

將詐騙簡訊與非詐騙簡訊整合成一份csv,並加上boolean標記,1代表詐騙,0代表非詐騙,機器會根據詐騙及非詐騙的內容訓練出判斷模型,理論上來說,詐騙跟非詐騙我們整理的資料越精確,預測模型會越準,目前的測資可能正常簡訊內也含有不少實際是詐騙的簡訊內容,導致訓練結果會有誤差,理論上來說,因為詐騙能騙到人的模式基本上是仿造其他正常內容的簡訊,所以我們切割以及前置處理的方法越能區別出兩者的差異點,機器學習後的成果會越準。

 

不確定性

因為所產生的判斷模組是使用機器訓練透過測資自行產生之結果,若有產生誤判只能加強訓練時非詐騙跟詐騙訊息的準確性。

目前測試過拿一般常收到的簡訊內容測試是不會被阻擋的,若擔心誤擋建議嘗試先將判斷成詐騙的簡訊歸類,再由人工審核是否有誤判,等運行一陣子後確定誤判率極低後再採用自動判斷,或是經由模組判斷後的結果再交給業務做複查可能會是較好的方式。

 

未來可優化程度

有考量過是否使用nlp先將句子做詞性分析再做訓練,但目前nlp的判斷較花資源&時間,且目前判斷出的準確度還可以接受,暫時不考慮做這部分的處理,若未來改善訓練資料後仍出現易於誤判之情形再考慮採用此方式來提升判斷精確度。


發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料