ナイーブ ベイズ分類器は、電子メール フィルタリングの一般的な統計的 手法です。通常、テキスト分類でよく使用される手法であるbag-of-words機能を使用して電子メール スパムを識別します。
ナイーブ ベイズ分類器は、トークン (通常は単語、場合によっては他のもの) の使用とスパム メールおよび非スパム メールを相関させ、ベイズの定理を使用してメールがスパムである確率を計算します。
ナイーブ ベイズ スパム フィルタリングは、個々のユーザーの電子メール ニーズに合わせて調整でき、ユーザーが一般的に許容できる低い誤検知率を実現できる、スパムに対処するための基本的な手法です。これは、1990 年代に始まった、スパム フィルタリングを行う最も古い方法の 1 つです。
歴史
ベイジアンアルゴリズムは、1996年頃から電子メールフィルタリングに使用されていました。ナイーブベイジアンフィルタが普及したのはもっと後のことでしたが、迷惑メールの増加という問題に対処するため、1998年に複数のプログラムがリリースされました。[1] ベイジアンスパムフィルタリングに関する最初の学術論文は、1998年にSahamiらによって発表されました。[2]
基本的な手法のバリエーションは、多くの研究成果や商用ソフトウェア製品に実装されています。[3]多くの最新のメールクライアントは、ベイジアンスパムフィルタリングを実装しています。ユーザーは、別の電子メールフィルタリングプログラムをインストールすることもできます。DSPAM、SpamAssassin、[4] SpamBayes、[5] Bogofilter、ASSPなどのサーバー側電子メールフィルターは、ベイジアンスパムフィルタリング手法を使用しており、その機能はメールサーバーソフトウェア自体に組み込まれている場合があります。ベイジアンフィルターとしてよく引用されるCRM114は、実稼働でベイズフィルターを使用することを意図していませんが、参照用に「ユニグラム」機能が含まれています。[6]
プロセス
特定の単語は、スパム メールと正規のメールの両方に出現する特定の確率を持っています。たとえば、ほとんどのメール ユーザーは、スパム メールで「バイアグラ」という単語に頻繁に遭遇しますが、他のメールではめったに見かけません。フィルターはこれらの確率を事前に把握していないため、確率を構築できるように最初にトレーニングする必要があります。フィルターをトレーニングするには、ユーザーは新しいメールがスパムかどうかを手動で指定する必要があります。フィルターは、各トレーニング メールのすべての単語について、データベース内のスパムまたは正規のメールに各単語が出現する確率を調整します。たとえば、ベイジアン スパム フィルターは、通常、「バイアグラ」と「借り換え」という単語のスパム確率が非常に高いことを学習しますが、友人や家族の名前など、正規のメールにのみ見られる単語のスパム確率は非常に低いことを学習します。
トレーニング後、単語確率 (尤度関数とも呼ばれる) を使用して、特定の単語セットを含むメールがいずれかのカテゴリに属する確率が計算されます。メール内の各単語、または最も興味深い単語のみがメールのスパム確率に寄与します。この寄与は事後確率と呼ばれ、ベイズの定理を使用して計算されます。次に、メールのスパム確率がメール内のすべての単語に対して計算され、合計が特定のしきい値 (たとえば 95%) を超えると、フィルターはメールをスパムとしてマークします。
他のスパム フィルタリング技術と同様に、スパムとしてマークされた電子メールは自動的に「迷惑メール」フォルダーに移動されるか、完全に削除されることもあります。一部のソフトウェアでは、ユーザーがソフトウェアの決定を確認できる期間を定義する 隔離メカニズムを実装しています。
通常、ソフトウェアの誤った判断 (誤検知または誤検知) が特定されると、初期トレーニングを改良できます。これにより、ソフトウェアはスパムの絶え間なく変化する性質に動的に適応できます。
一部のスパム フィルターは、ベイジアン スパム フィルタリングとその他のヒューリスティック(内容に関する定義済みルール、メッセージのエンベロープの確認など) の両方の結果を組み合わせて、フィルタリングの精度をさらに高めますが、適応性が犠牲になる場合もあります。
数学の基礎
ベイジアンメール フィルターはベイズの定理を利用します。ベイズの定理はスパムの文脈で何度も使用されます。
- 1 回目は、特定の単語がこのメッセージに出現することを知った上で、メッセージがスパムである確率を計算します。
- 2 回目は、メッセージ内のすべての単語 (または関連する単語のサブセット) を考慮して、メッセージがスパムである確率を計算します。
- まれな単語を扱うために、3 回目に行うこともあります。
特定の単語を含むメッセージがスパムである確率を計算する
疑わしいメッセージに「レプリカ」という単語が含まれていると仮定します。電子メールの受信に慣れているほとんどの人は、このメッセージがスパムである可能性が高いことを知っています。より正確には、有名ブランドの時計の偽造コピーを販売する提案です。ただし、スパム検出ソフトウェアはそのような事実を「知っている」わけではなく、確率を計算することしかできません。
ソフトウェアがそれを決定するために使用する式は、ベイズの定理から導き出されたものである。
どこ:
- メッセージに「レプリカ」という単語が含まれている場合、そのメッセージがスパムである確率です。
- 特定のメッセージがスパムである全体的な確率です。
- スパムメッセージに「レプリカ」という単語が出現する確率です。
- 特定のメッセージがスパムではない(「ハム」である)全体的な確率です。
- アマチュア無線のメッセージに「レプリカ」という単語が現れる確率です。
(完全なデモンストレーションについては、ベイズの定理#拡張形式を参照してください。)
単語のスパム性
統計[7]によれば、現時点ではメッセージがスパムである確率は少なくとも80%である。
この仮説を使用するフィルターは「偏りがない」と言われ、受信メールに関して偏見がないことを意味します。この仮定により、一般的な式を次のように簡略化できます。
これは機能的には、「スパム メッセージに「レプリカ」という単語が何パーセント出現するか」と尋ねることと同じです。
この量は「レプリカ」という単語の「スパム性」(または「スパム度」)と呼ばれ、計算することができます。この式で使用される数値は、学習フェーズでスパムとして識別されたメッセージ内の「レプリカ」を含むメッセージの頻度に近似されます。同様に、は学習フェーズでハムとして識別されたメッセージ内の「レプリカ」を含むメッセージの頻度に近似されます。これらの近似が意味を成すためには、学習されたメッセージのセットは十分に大きく、代表的である必要があります。また、学習されたメッセージのセットは、スパムとハムの再分割に関する 50% 仮説に準拠していることが望ましいです。つまり、スパムとハムのデータセットは同じサイズです。[8]
もちろん、「レプリカ」という単語の存在のみに基づいてメッセージがスパムかハムかを判断すると、エラーが発生しやすくなります。そのため、ベイジアン スパム ソフトウェアは、複数の単語を考慮し、それらのスパム性を組み合わせて、メッセージがスパムである全体的な確率を判断しようとします。
個々の確率を組み合わせる
ベイジアン スパム フィルタリング アルゴリズムのほとんどは、メッセージ内に存在する単語が独立したイベントである場合にのみ厳密に有効な (確率的観点から) 式に基づいています。この条件は一般に満たされません (たとえば、英語などの自然言語では、形容詞が見つかる確率は名詞がある確率によって影響を受けます) が、個々の単語間の統計的相関は通常は不明であるため、特に便利な理想化です。これに基づいて、ベイズの定理から次の式を導き出すことができます。
どこ:
- 疑わしいメッセージがスパムである確率です。
- メッセージがスパムである場合に、最初の単語 (たとえば「レプリカ」) が出現する確率です。
- メッセージがスパムである場合に、2 番目の単語 (たとえば「watches」) が出現する確率です。
- 等...
この式に基づくスパム フィルタリング ソフトウェアは、ナイーブ ベイズ分類器と呼ばれることもあります。これは、「ナイーブ」とは、機能間の強い独立性の仮定を指すためです。結果pは通常、指定されたしきい値と比較され、メッセージがスパムであるかどうかが判断されます。p がしきい値より低い場合、メッセージはおそらくハムであると見なされ、そうでない場合はおそらくスパムであると見なされます。
個々の確率を結合する式の別の表現
通常、浮動小数点アンダーフローのため、上記の式を使用してp を直接計算することはできません。代わりに、元の式を次のように書き直すことで、対数領域でp を計算できます。
両側でログを取る:
とします。したがって、
したがって、複合確率を計算するための別の式は次のようになります。
珍しい単語の扱い
学習フェーズで単語に遭遇したことがない場合、一般式とスパム性式の両方で、分子と分母の両方がゼロになります。ソフトウェアは、利用可能な情報がないそのような単語を破棄することを決定できます。
より一般的には、学習段階で数回しか遭遇しなかった単語は問題を引き起こします。なぜなら、それらが提供する情報を盲目的に信頼するのは間違いだからです。簡単な解決策は、そのような信頼できない単語も考慮に入れないようにすることです。
ベイズの定理を再度適用し、特定の単語 (「レプリカ」) を含む電子メールのスパムとハムの分類がベータ分布を持つランダム変数であると仮定すると、一部のプログラムは修正された確率を使用することを決定します。
どこ:
- 特定の単語が含まれていることを前提として、メッセージがスパムである確率を修正したものです。
- 受信スパムに関する背景情報に与える強度です。
- 受信メッセージがスパムである確率です。
- 学習フェーズ中にこの単語が出現した回数です。
- この単語のスパム性です。
(デモンストレーション:[9])
この修正された確率は、結合式でスパム性の代わりに使用されます。
この式は、 nがゼロの場合(およびスパム性が定義されていない場合)に拡張でき、この場合は と評価されます。
その他のヒューリスティック
英語の「the」、「a」、「some」、「is」などの「中立的な」単語、または他の言語での同等の単語は無視できます。これらはストップワードとも呼ばれます。より一般的には、一部のベイジアンフィルタリングフィルターは、スパム性が 0.5 に近い単語をすべて無視します。これらの単語は、適切な決定にほとんど貢献しないためです。考慮される単語は、スパム性が 0.0 に近い単語 (正当なメッセージの特徴的な兆候)、または 1.0 に近い単語 (スパムの特徴的な兆候) です。たとえば、検査したメッセージで絶対値 |0.5 − pI | が最も大きい 10 個の単語のみを保持するという方法があります。
ソフトウェア製品の中には、検査対象のメッセージ内に特定の単語が複数回出現するという事実を考慮に入れるものもあるが、[10]そうでないものもある。
一部のソフトウェア製品では、自然言語の単語を単独で使用するのではなく、パターン(単語のシーケンス)を使用します。 [11]たとえば、4つの単語の「コンテキストウィンドウ」を使用して、「Viagra」、「is」、「good」、「for」のスパム性を計算する代わりに、「Viagra is good for」のスパム性を計算します。この方法は、コンテキストに対する感度を高め、ベイジアンノイズをより適切に除去しますが、データベースが大きくなります。
混合手法
「単純な」アプローチを使用する以外にも、さまざまな単語の個々の確率を組み合わせる方法があります。これらの方法は、入力データの統計的特性に関する仮定が単純なアプローチと異なります。これらの異なる仮定により、個々の確率を組み合わせるための式は根本的に異なります。
たとえば、個々の確率が自由度2 Nのカイ二乗分布に従うと仮定すると、次の式を使用できます。
ここでC −1はカイ2乗関数の逆関数です。
個々の確率は、マルコフ判別の手法と組み合わせることもできます。
議論
利点
ユーザーが受信するスパムは、多くの場合、オンライン ユーザーのアクティビティに関連しています。たとえば、ユーザーがスパムだと考えるオンライン ニュースレターを購読している場合があります。このオンライン ニュースレターには、ニュースレターの名前や発信元の電子メール アドレスなど、すべてのニュースレターに共通する単語が含まれている可能性があります。ベイジアン スパム フィルターは、最終的にはユーザーの特定のパターンに基づいて、より高い確率を割り当てます。
ユーザーが受信する正当な電子メールは、異なる傾向があります。たとえば、企業環境では、会社名やクライアントまたは顧客の名前が頻繁に言及されます。フィルターは、これらの名前を含む電子メールに、より低いスパム確率を割り当てます。
単語の確率はユーザーごとに異なり、フィルターが電子メールを誤って分類するたびに修正トレーニングを行うことで、時間の経過とともに進化することができます。その結果、トレーニング後のベイジアン スパム フィルタリングの精度は、事前定義されたルールよりも優れていることがよくあります。
デメリット
実装によっては、ベイジアン スパム フィルタリングは、ベイジアンポイズニングの影響を受けやすい場合があります。ベイジアン ポイズニングとは、ベイジアン フィルタリングに依存するスパム フィルタの有効性を低下させるためにスパマーが使用する手法です。ベイジアン ポイズニングを実行するスパマーは、大量の正当なテキスト (正当なニュースまたは文学ソースから収集) を含むメールを送信します。スパマーの戦術には、通常はスパムに関連付けられない無害な単語をランダムに挿入することが含まれます。これにより、電子メールのスパム スコアが下がり、ベイジアン スパム フィルタをすり抜ける可能性が高くなります。ただし、(たとえば) Paul Graham の方式では、最も重要な確率のみが使用されるため、テキストをスパムに関連しない単語で埋めても、検出確率に大きな影響はありません。
スパムメールに通常大量に表示される単語も、スパマーによって変換される可能性があります。たとえば、スパムメッセージでは「バイアグラ」が「バイアグラ」または「V!アグラ」に置き換えられます。メッセージの受信者は変更された単語を読むことができますが、これらの単語はベイジアンフィルターにあまり遭遇せず、学習プロセスが妨げられます。一般的に、このスパム手法はあまりうまく機能しません。なぜなら、派生した単語は通常の単語と同じようにフィルターによって認識されるからです。[12]
ベイジアン スパム フィルターを破るために使われるもう 1 つのテクニックは、テキストを画像に置き換えることです。画像には直接含まれているか、リンクされています。メッセージのテキスト全体、またはその一部が、同じテキストが「描かれている」画像に置き換えられます。スパム フィルターは通常、この画像を分析できません。この画像には「バイアグラ」などの機密語が含まれているためです。ただし、多くのメール クライアントはセキュリティ上の理由からリンクされた画像の表示を無効にしているため、遠く離れた画像へのリンクを送信するスパマーは、ターゲットに到達する可能性が低くなります。また、画像のバイト サイズはテキストのサイズより大きいため、スパマーは画像を含むメッセージを直接送信するためにより多くの帯域幅を必要とします。一部のフィルターは、メッセージのコンテンツが主にグラフィックである場合に、そのメッセージをスパムと判断する傾向があります。Google が Gmail メール システムで使用しているソリューションは、中サイズから大サイズの画像すべてに対してOCR (光学式文字認識) を実行し、内部のテキストを分析することです。[13] [14]
ベイジアンフィルタリングの一般的な応用
ベイジアンフィルタリングはスパムメールの識別に広く使用されていますが、この技術はほぼあらゆる種類のデータを分類(または「クラスタリング」)できます。科学、医学、工学の分野で使用されています。一例として、AutoClassと呼ばれる汎用分類プログラムがあります。これは、本来は、他の方法では気づかないほど微妙なスペクトル特性に基づいて星を分類するために使用されていました。[15]
参照
- スパム対策技術
- ベイジアン中毒
- メールフィルタリング
- マルコフ判別
- ベイズフィルタをネイティブに実装したMozilla Thunderbirdメールクライアント[16] [17]
参考文献
- ^ブラントン、フィン(2013)。スパム :インターネットの影の歴史。MITプレス。p.136。ISBN 9780262018876. 2019年3月23日時点のオリジナルよりアーカイブ。2017年9月13日閲覧。
- ^ M. Sahami、S. Dumais、D. Heckerman、E. Horvitz (1998)。「迷惑メールをフィルタリングするためのベイジアンアプローチ」(PDF) 。AAAI'98 テキスト分類の学習に関するワークショップ。2007年 9 月 27 日のオリジナルからアーカイブ(PDF) 。2007年 8 月 15 日に取得。
- ^ 「Junk Mail Controls」。MozillaZine。2009年11月。2012年10月23日時点のオリジナルよりアーカイブ。2010年1月16日閲覧。
- ^ 「インストール」。Ubuntu マニュアル。2010-09-18。2010 年 9 月 29 日のオリジナルからアーカイブ。2010-09-18に取得。SpamAssassin
で使用される Gary Robinson の f(x) および結合アルゴリズム
- ^ 「背景資料」。SpamBayes プロジェクト。2010-09-18。2010 年 9 月 6 日のオリジナルからアーカイブ。2010-09-18に取得。鉛筆を削ってください。
これは数学的な背景です (現状のままです)。* きっかけとなった論文: Paul Graham の A Plan for Spam。* Gary Robinson は、Graham のオリジナルのアプローチにいくつかの改善を提案する興味深いエッセイを書いています。* Gary Robinson の Linux Journal の記事では、カイ 2 乗分布の使用について説明しました。
- ^ “アーカイブコピー”. 2016年10月7日時点のオリジナルよりアーカイブ。2016年7月9日閲覧。
{{cite web}}: CS1 maint: archived copy as title (link) - ^ Dylan Mors & Dermot Harnett (2009)。「スパムの現状、月次レポート - レポート #33」(PDF)。2009 年 10 月 7 日のオリジナル(PDF)からアーカイブ。2009年 12 月 30 日閲覧。
- ^ Process Software、ベイジアンフィルタリング入門、2012年2月6日アーカイブ、Wayback Machine
- ^ Gary Robinson (2003). 「スパム問題への統計的アプローチ」Linux Journal。 2010 年 10 月 22 日時点のオリジナルよりアーカイブ。2007 年 7 月 19 日閲覧。
- ^ Brian Burton (2003). 「SpamProbe - ベイジアンスパムフィルタリングの調整」。2012年3月1日時点のオリジナルよりアーカイブ。2009年1月19日閲覧。
- ^ Jonathan A. Zdziarski (2004). 「ベイズノイズ低減: パターン一貫性分析を利用したコンテキスト対称性ロジック」[永久リンク切れ ]
- ^ ポール・グラハム (2002)、スパム対策計画、2004-04-04ウェイバックマシンにアーカイブ
- ^ 「Gmail は Google の革新的な技術を使用して、受信トレイからスパムを排除します」。2015 年 9 月 13 日時点のオリジナルよりアーカイブ。2015年 9 月 5 日閲覧。
- ^ Zhu, Z.; Jia, Z; Xiao, H; Zhang, G; Liang, H.; Wang, P. (2014). Li, S; Jin, Q; Jiang, X; Park, J (編). 「修正最小リスクベイズ法とスパムへの応用」.電気工学講義ノート. 269.ドルドレヒト: Springer: 2155–2159. doi :10.1007/978-94-007-7618-0_261.
- ^ Androutsopoulos, Ion; Paliouras, Georgios; Karkaletsis, Vangelis; Sakkis, Georgios; Spyropoulos, Constantine D.; Stamatopoulos, Panagiotis (2000). Gallinari, P; Rajman, M; Zaragoza, H (eds.). 「スパムメールのフィルタリング学習: ナイーブベイジアンアプローチとメモリベースアプローチの比較」. 4th European Conference on Principles and Practice of Knowledge Discovery in Databases (PKDD-2000) . リヨン、フランス: ソフトウェアおよび知識工学研究所 情報科学および電気通信研究所 国立科学研究センター「Demokritos」: 1–13. arXiv : cs/0009009 . Bibcode :2000cs.......9009A.
- ^ Hristea, Florentina T. (2013).教師なし語義曖昧性解消のためのナイーブベイズモデルロンドン; ベルリン: Springer- Verlag Heidelberg Berlin. p. 70. ISBN 978-3-642-33692-8。
- ^ Zheng, J.; Tang, Yongchuan (2005). 「Naive Bayes のファジー集合への一般化とファジー Naive Bayes 分類器の設計」。Mira, Jose; Álvarez, Jose R (編)。人工知能と知識工学の応用: 生物にヒントを得たアプローチ。コンピュータサイエンスの講義ノート。第 3562 巻。ベルリン: Springer、ベルリン、ハイデルベルク。p . 281。doi :10.1007/ 11499305_29。ISBN 978-3-540-26319-7. ISSN 0302-9743.
