googleの迷惑メールフィルタに使われていることから、一躍有名になったベイズ統計ですが、その仕組みを完全に理解している人は少ないのではないでしょうか。
ここではそのベイズ の式がどのようにメールフィルタに利用されているのか解説します。
通常のメールである確率は何%で、迷惑メールである確率は何%か

ベイズを用いて僕たちがたどり着きたい答えは、届いたメールが何%の確率で迷惑メールなのかです。迷惑メールを迷惑メールボックスに入れてしまうというゴールがあるのですが、何%以上の迷惑メールの確率のあるメールをその対象にするかどうかは一つ先の話となります。
世の中の全てメールの一体何通が通常のメールで、何通が迷惑メールなのかは最初わからないとします。
そのため手元に届くあらゆるメールが通常メールである確率を50%、迷惑メールである確率を50%としましょう。
ここからベイズのメールフィルター応用を始めます。
迷惑メールを検知するためのキーワードを選定する
迷惑メールに入っている言葉として何があるでしょうか。
例えば「当選」とかでしょうか?1万人に1人の抽選に当選しました!という迷惑メールは見かけます。
それではこの「当選」というキーワードが入っているかどうかを基準に、何%の確率でそのメールが迷惑メールなのかを見極めることにします。
そしてその答えを導き出すために必要なのは迷惑メールの何%に「当選」という言葉が含まれているのかと通常メールの何%に「当選」という言葉が含まれているかなのです。
当選と書かれているメールは何%が!?
迷惑メールの中の何%に「当選」と書かれているのか
メールを利用してくれているユーザのデータから、迷惑メールの割り当てられたメールのデータを集計したとします。(以下は架空のデータの話です。)
調べてみると迷惑メールに割り振られたメールのうち、40%のメールに「当選」と言葉が見つかりました。

これが迷惑メールを判別するための重要な情報となります。
しかしもう一つ大切な情報があります。
通常メールの中に何%当選と書かれているのかです。
通常メールの中の何%に「当選」と書かれているのか
通常メールの中にも「当選」という文字はあります。本当に何か当選したかもしれません。
このデータもユーザのメールから取得し調べてみたところ、20%の確率で「当選と書かれていました。

面積で見るベイズの定理
まずは書き込んでみる
最初の図をもう一度見てみましょう。

世の中の通常メールと迷惑メールの割合は50%と50%で「仮定」しました。
(まずのこの仮定が正しいのか気になる人がほとんどだと思いますが、いったん我慢してください)
そしてこの50%と50%の世界に、先ほどの「当選」という文字が入っているかどうか書き込むと以下のようになります。

全てのメールは以下の4つのメールに別れます。
- 「当選」と書かれている通常メール
- 「当選」と書かれている迷惑メール
- 「当選」と書かれていない通常メール
- 「当選」とかかれていない迷惑メール
「当選」と書かれていてる面積だけを見ると
- 「当選」と書かれている通常メールは全てのメールの中の10%
- 「当選」と書かれている迷惑メールは全てのメールの中の20%
ということがわかりました。
図にすると以下のようになります。

つまり「当選」と書かれているメールは2/3の確率で迷惑メールであることがわかりました。
ベイズは情報を増やすほど正確性を増していく
迷惑メールかな?怪しいな?と思うメールは他にどんな特徴があるでしょうか。
どこか違法サイトに飛ばすために「URLが貼ってある」かもしれません。他には「無料」とか「プレゼント」などお得に見える単語あるかもしれません。
これらの単語全てに対してベイズを連続で当てはめていくことができます。
どうするかというと、「当選」という言葉が含まれていたかどうか調べたそこからスタートすればいいのです。
受け取ったメールの中に「当選」というキーワードが含まれていたとしましょう。すると先ほどの図から、迷惑メールである確率は33.33…%です。

これをこの記事の一番最初の図に直すと以下のようになります。

つまり一番最初50%と50%で仮定するしかなかった状態から、「当選」という言葉が含まれていたという情報だけをもとに通常メール33.33…%と迷惑メール66.66…%になったのです。
これはもちろん「当選」という言葉が含まれていなかったら、逆の分布となります。
おわりに
迷惑メールフィルターの構造を少しでもおわかりいただけたでしょうか。
ベイズ は少ない情報からでも結論を導き出し、情報を重ねることで精度を増していく性質を持っています。
また背後に確率分布を用いることでより精密で奥深い世界を見せてくれます。
今回はこちらの書籍を参考にしました。
ご興味がある方はぜひ手にとってみて下さい。