機器學習演算法是垃圾郵件過濾器背後的無名英雄,勤奮地在我們的收件匣中翻找,把垃圾擋在門外。它們的做法是分析郵件資料中的模式,學著分辨正常郵件與垃圾郵件。以下是簡化的運作說明:
1. 訓練模型:
- 資料蒐集: 垃圾郵件過濾器是在龐大的郵件資料集上訓練的,這些郵件會被仔細標註為「spam(垃圾郵件)」或「ham(正常郵件)」。資料來自使用者回報、垃圾郵件陷阱(spam traps)以及既有資料庫等各種來源。
- 特徵擷取: 演算法會分析郵件中有助於辨識垃圾郵件的特定特徵。這些特徵可能包括:
- 字詞頻率: 垃圾郵件通常會較頻繁出現某些字詞,例如「free」、「money」、「offer」或「urgent」。
- 文法與拼字: 垃圾郵件可能有糟糕的文法、拼字錯誤以及過度使用大寫。
- 連結分析: 出現可疑連結,尤其是縮短網址或含有異常字元的網域,是明顯的警訊。
- 寄件者資訊: 寄件者的電子郵件地址、網域與信譽都會被納入分析。
- 建立模型: 演算法從已標註的資料中學習,建立一個能根據郵件特徵預測新郵件是垃圾郵件或正常郵件的模型。
2. 偵測垃圾郵件:
- 郵件分析: 當你收到新郵件時,過濾器會用訓練好的模型分析郵件內容與特徵。
- 垃圾郵件分數: 演算法會依據郵件是垃圾郵件的機率計算出一個「垃圾郵件分數(spam score)」。
- 過濾: 分數高的郵件會被移到垃圾郵件匣,或直接被封鎖。
3. 持續學習:
垃圾郵件過濾器不是靜態的。隨著垃圾郵件寄送者不斷改變手法,過濾器也持續學習與調整。這種動態學習有助於過濾器領先一步,並隨時間提升準確度。
4. 常見的機器學習演算法:
- Naive Bayes(樸素貝氏): 這個演算法根據郵件中字詞出現的頻率,計算郵件為垃圾郵件的機率。
- Support Vector Machines(SVM,支援向量機): SVM 嘗試找出一條邊界,依據特徵把垃圾郵件與正常郵件分開。
- Neural Networks(神經網路): 這類演算法較為複雜,能學習資料中錯綜複雜的模式,對於偵測手法高明的垃圾郵件相當強大。
參考資料
- Spam Filtering Techniques: A Survey(垃圾郵件過濾技術:綜述)
- Email Spam Filtering: A Machine Learning Approach(電子郵件垃圾郵件過濾:機器學習方法)
- Spam Detection Using Machine Learning – Towards Data Science(使用機器學習偵測垃圾郵件-Towards Data Science)
延伸閱讀
- 垃圾郵件有哪些不同的類型?
- 垃圾郵件寄送者如何試圖繞過垃圾郵件過濾器?
- 使用機器學習演算法偵測垃圾郵件有哪些優缺點?
- 垃圾郵件過濾器如何處理那些帶有類似垃圾郵件特徵的「合法」郵件(例如促銷或行銷郵件)?
- 垃圾郵件過濾在倫理上有哪些值得考量的面向?
