研究メモ

メーリングリストを組み合わせることで仮想ユーザを合成する実験方式にあった懸案を除去した。元々のアイデアはハムはメーリングリストから送られてくるメッセージ集合、スパムはハニーポットで収集したものとしている。この場合、ハムにはメーリングリストに固有なヘッダ情報が必ず含まれ、スパムには含まれない。Bayes方式のスパムフィルタがこの点を察知した場合、われわれの実験はわれわれの仮説に有利な結果をもたらしてしまい、正当な評価とはいえない。

そこで、ハムのメッセージ集合から、メーリングリストに固有な情報を含むヘッダを除去して実験することとした。以下のヘッダ以外は無視することとした。

  • From: From に moderator が指定するようなメーリングリストは実験データに用いていない。約30,000通のハムについて From の出現頻度分布を精査したが、From に出現するのは、発言をしている個人であることが確認できた。From は利用することとした。
  • Mime-Version: スパム検出に役立つとは思えないが、実害はないので残してあるが、個々のメーリングリストごとにこのフィールドは変化しないので、無視した方がいいかもしれない
  • Content-Type: 個々のメーリングリストごとにContent-Typeは変化しないような気もするので、このフィールドも無視した方がいいかもしれない
  • Content-Transfer-Encoding: われわれの形態素解析器は中国語、ロシア語、韓国語に対応していないため、この情報がない場合には、システムが機能しない。スパムの一定の割合がこれらの言語で書かれており、Bayes方式のスパムフィルタはこれらのEncodingとスパムの関連性を容易に発見することが予想されるが、スパムのうち??割*1は英語、日本語であることから、この小さなチョンボは許していただきたい。
  • Content-Length: スパム検出に役立つとは思えないが、実害はないので残した
  • Status: スパム検出に役立つとは思えないが、実害はないので残した

以下が無視したヘッダの代表である(佐藤くんまち)。

  • Delivered-To: メーリングリストのサーバ名やその周辺の転送サーバの情報が含まれるため、効果的なハムのサイン
  • Subject: [Free-ML: 10001] のように特徴的な場合が多く効果的なハムのサイン*2
  • X-Spam-***: 中継サーバが付与するスパム性に関するヘッダ情報。われわれのスパムフィルタとは独立なフィルタの影響を排除する目的で無視することとした。
  • Reply-to: メーリングリストのメッセージでは Reply-to がメーリングリストのアドレスになっていることが多く、これが極めてハムのサインとして極めて有効である。

*1:佐藤くん待ち

*2:実は実装上の都合から、Subject に対しては形態素解析をしていない。つまり、記事番号が異なる Subject 同士は異なると認識してしまうので、われわれのスパムフィルタにとっては Subject の内容はスパムの検出に有効ではない。この理由から、このヘッダを残しておいてもよかった。そうした事情を知らない人に対して誤解を招くため、敢てこのヘッダを無視することとした。この措置によるスパム検出率の低下はないものと予想される。