1. <div id="xqsz3"></div>

    人工智能是怎么“干掉”垃圾郵件的?

    閱讀 166  ·  發布日期 2021-01-22 14:52:37  ·  伊索科技

    你可能不知道,在互聯網每天發送的3000多億封電子郵件中,至少有一半是垃圾郵件。因此,電子郵件供應商承擔著一個艱巨的任務,那就是過濾垃圾郵件,并確保用戶收到重要的信息。

    然而,垃圾郵件檢測是混亂的。垃圾郵件和非垃圾郵件之間的界限是模糊的,并且標準會隨著時間的推移而變化。從自動化垃圾郵件檢測的各種努力來看,機器學習已經被證明是最有效,也是最受電子郵件供應商青睞的方法。

    盡管我們在日常生活中仍然會看到垃圾郵件,多虧了機器學習算法,每天已經有大量垃圾郵件已經從我們的收件箱中清除掉了。

    那么機器學習如何確定哪些郵件是垃圾郵件,哪些不是呢?以下是基于機器學習的垃圾郵件檢測工作原理的概述。

    所面臨的挑戰

    垃圾郵件有不同的風格。許多只是一些煩人的信息,旨在引起人們對某一事件的注意或傳播虛假信息。還有一些是網絡釣魚郵件,目的是引誘收件人點擊惡意鏈接或下載惡意軟件。

    它們有一個共同點,那就是與收件人的需求無關。垃圾郵件檢測算法必須找到一種方法來過濾垃圾郵件,同時避免屏蔽用戶希望在收件箱中看到的真實消息。而且它必須以一種能夠與不斷發展的趨勢相匹配的方式來做到這一點,例如由流行病、選舉新聞、對加密貨幣的突然興趣以及其他因素引起的恐慌。

    靜態規則可以提供幫助。例如,太多的密件抄送收件人、非常短的正文和所有大寫主題都是垃圾郵件的特征。同樣,一些發件人域和電子郵件地址也可能與垃圾郵件相關聯。但在大多數情況下,垃圾郵件檢測主要依賴于對消息內容的分析。

    Na?ve 貝葉斯機器學習模型

    機器學習算法使用統計模型來分類數據。在垃圾郵件檢測情況下,一個經過訓練的機器學習模型必須能夠確定在電子郵件中發現的單詞順序是更接近于垃圾郵件中發現的單詞順序,還是更接近于安全郵件中的單詞順序。

    不同的機器學習算法可以檢測到垃圾郵件,但其中一個吸引人的是“Na?ve 貝葉斯”算法。顧名思義,“Na?ve 貝葉斯”基于“貝葉斯定理”,該定理由英國數學家貝葉斯 發展,用來描述兩個條件概率之間的關系,比如 P(A|B) 和 P(B|A)。

    之所以稱之為“Na?ve ”,是因為它假設觀察的特征是獨立的。假設你想用“Na?ve貝葉斯”機器學習來預測是否會下雨。在這種情況下,你的特征可能是溫度和濕度,而你預測的事件是降雨。

    在垃圾郵件檢測的情況下,事情變得有點復雜。我們的目標變量是給定的電子郵件是“垃圾郵件”還是“非垃圾郵件”,而特征是郵件正文中的單詞或單詞組合。簡而言之,我們希望根據電子郵件的文本來計算出它是垃圾郵件的概率。

    這里的問題是我們的特征不一定是獨立的。例如,考慮術語“烤”、“奶酪”和“三明治”它們可以有不同的含義,這取決于它們是連續的還是在信息的不同部分。另一個例子是“不(not)”和“有趣(interesting)”這兩個詞在這種情況下,根據它們在消息中出現的位置,含義可能完全不同。但是,即使特征獨立性在文本數據中很復雜,如果配置得當,在自然語言處理任務中已證明“Na?ve 貝葉斯”分類器是有效的。

    數據收集

    垃圾郵件檢測是一個有監督的機器學習問題。這意味著必須為機器學習模型提供一組垃圾郵件和非垃圾郵件的示例,并讓它找到區分這兩個不同類別的相關模式。

    大多數電子郵件供應商都有自己的大量標記電子郵件數據集。例如,每次用戶在Gmail賬戶將一些郵件標記為垃圾郵件時,就是為谷歌的機器學習算法提供訓練數據。(注:谷歌的垃圾郵件檢測算法比本文中研究的方法要復雜得多,而且該公司有機制防止濫用其“報告垃圾郵件”功能。)

    有一些開源數據集,如加州大學歐文分校的垃圾數據集和安然垃圾數據集。但這些數據集是用于教育和測試目的,在創建生產級別的機器學習模型方面用處不大。

    因此,擁有自家的電子郵件服務器的公司可以很容易地創建專門的數據集,以調整其機器學習模型適應所屬工作領域的特定語言。例如,提供金融服務的公司的數據集與建筑公司的數據集就有很大的區別。

    訓練機器學習模型

    盡管近年來自然語言處理已經取得了不錯的進展,但人工智能算法仍然不能像人類一樣理解語言。

    因此,開發垃圾郵件檢測器機器學習模型的關鍵步驟之一是為統計處理準備數據。在訓練“Na?ve 貝葉斯”分類器之前,垃圾郵件和非垃圾郵件的語料庫必須經過某些步驟。

    考慮包含以下句子的數據集:

    • 史蒂夫想為聚會買烤奶酪三明治(Steve wants to buy grilled cheese sandwiches for the party)

    • 莎莉正在做烤雞肉當晚餐(Sally is grilling some chicken for dinner)

    • 我買了一些奶油干酪做蛋糕(I bought some cream cheese for the cake)

    文本數據在被輸入到機器學習算法之前必須被“標記化”,無論是在訓練模型時,還是之后對新數據進行預測時。實質上,標記化意味著將文本數據分解為更小的部分。如果按單個單詞分割上述數據集,就會得到以下詞匯表。請注意,這里只每個單詞只統計一次。

    Steve, want, to, buy, grill, cheese, sandwich, for, the party, Sally, is, grill, some, chicken, dinner, I, bought, cream, cake

    我們可以刪除出現在垃圾郵件和非垃圾郵件中的單詞,這些單詞對區分是否為垃圾郵件沒有幫助,包括the、for、is、to和some等術語。在上述數據集中,刪除這些沒意義的詞將使檢測詞匯量減少5個。

    我們也可以使用其他技術,如將單詞轉換成基本形式。例如,在我們的示例數據集中,buy和bought是共同的意思,grilled和grill也是一樣,這同樣有助于進一步簡化機器學習模型。

    在某些情況下,您應該考慮使用二元模型(兩個單詞標記)、三元模型(三個單詞標記)或更多單詞標記。例如,將上述數據集以二元模型形式標記就是“奶酪蛋糕(cheese cake)”,而使用三元模型將生成“烤奶酪三明治(grilled cheese sandwich)”。

    一旦你處理了數據,就會有一個定義機器學習模型特征的術語列表?,F在,您必須確定哪些單詞或單詞序列與垃圾郵件相關。

    當你在訓練數據集上訓練機器學習模型時,每個術語會根據它在垃圾郵件和非垃圾郵件中出現的次數分配一個權重。例如,如果“贏得大獎(win big money prize)”是特征之一,并且只出現在垃圾郵件中,那么它被檢測為垃圾郵件的可能性就會更大。如果“重要會議”只在非垃圾郵件中提到,那么將其被歸類為非垃圾郵件的可能性也就會增加。

    一旦處理了數據并為特征分配權重,機器學習模型就可以過濾垃圾郵件了。當收到一封新郵件時,標記文本,并按照貝葉斯公式運行。郵件主體中的每個術語都乘以其權重,權重的總和決定了該郵件是垃圾郵件的概率。(實際上,計算有點復雜,但為了簡單起見,本文將堅持使用權重之和。)

    先進的垃圾郵件檢測與機器學習

    聽起來簡單,“Na?ve 貝葉斯”機器學習算法已經被證明對許多文本分類任務是有效的,包括垃圾郵件檢測。

    但這并不意味著它是完美的。

    與其他機器學習算法一樣,Na?ve 貝葉斯不理解語言的上下文,而是依賴單詞之間的統計關系來判斷一段文本是否屬于某個類。

    這意味著,例如,如果發送者只是在郵件的末尾添加一些非垃圾郵件詞匯,或者用其他密切相關的詞匯替換垃圾郵件詞匯,那么就可以騙過Na?ve 貝葉斯圾郵件檢測器,從而忽略垃圾郵件。

    當然,Na?ve 貝葉斯并不是唯一可以檢測垃圾郵件的機器學習算法。其他流行的算法包括遞歸神經網絡(RNN)和transformers,它們在處理連續數據(如電子郵件和文本信息)方面非常有效。

    最后要注意的是,垃圾郵件檢測始終是一項正在進行的工作。隨著開發人員使用人工智能和其他技術來檢測和過濾電子郵件中的有害信息,垃圾郵件發送者同樣能找到了新方法破解系統,讓垃圾騙過過濾器。這就是為什么電子郵件供應商總是依賴用戶的幫助來改進和更新他們的垃圾郵件檢測程序。

    文章來源于網絡,如有侵權請聯系刪除。

    色色视频免费看,樱花草视频在线观看高清免费8,国产成人精品亚洲日本在线观看