ベイジアンフィルターによるユーザー投稿フィルタリングエンジンishigroid

17
ベベベベベベベベベベベベベ ベベベベベベベベベベベベベベベベベ Ishig roid K ベベベベベベ ベベベベベ ベベベベ

Upload: klab

Post on 12-Jun-2015

2.301 views

Category:

Technology


1 download

DESCRIPTION

サイバーエージェント様との勉強会の発表資料です。

TRANSCRIPT

Page 1: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

ベイジアンフィルターによるユーザー投稿フィルタリングエンジン Ishigroid

Kラボラトリー、研究開発部高田敦史

Page 2: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

投稿フィルタリングの必要

EMA 認定がなければフィルタリング 「事業者は、ユーザー(会員・非会員)による投稿等サイト内

で公開される情報について、常時、目視・システム抽出確認等を実施し、規約違反投稿等について必要な対応(削除、注意・警告、経過確認等)を行わなければならない。また、ユーザー(会員・非会員)による問合せ・通報についての対応も常時、実施しなければならない。」コミュニティ運用管理体制認定基準

Page 3: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

投稿監視 「 ユーザー(会員・非会員)による投稿等サイト内で

公開される情報について、常時、目視・システム抽出確認等を実施し、規約違反投稿等について必要な対応(削除、注意・警告、経過確認等)を行わなければならない」

コスト大!

Page 4: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

ベイジアンフィルター簡単にいうと、単語の使用頻度で推定するメールフィルター

主に spamメールフィルターとして使われます

機械学習の分野では「ナイーブベイズ (単純ベイズ分類器 )」

EMAに抵触しそうな書き込みを自動抽出できないか?

Page 5: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

bsfilter

Ruby によるベイジアンフィルターの実装 Paul Graham 方式、 Gary Robinson 方式、 Gary

Robinson-Fisher 方式をサポート 日本語のトークン抽出も、 bigram / mecab など

種々の方法を選択できる http://bsfilter.org/

コマンドラインから実行

Page 6: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

Ruby Classifier

Ruby による単純ベイズ分類器の実装 http://rubyforge.org/projects/classifier

Page 7: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

Ishigroid

自作ライブラリを実装 ベイジアンフィルターの仕組み自体はそれほど大き

なものではなく、数十~数百行のコード 日本語形態素解析には MeCab を使用

http://mecab.sourceforge.net/

Page 8: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

ベイズの定理

Aという条件下で Bの確率 ものすごく単純に言うと、 P(A)の影響を受けないように、 P(A)で割ります

Page 9: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

例 “hoge” を含む文書が NG である確率

NG ポストが hoge を含む確率

任意のポストが hoge を含む確率

NG ポストが hoge を含む確率 = NG ポスト中の hoge の数 / NG ポストの単語数合計

任意のポストが hoge を含む確率 = ポスト中の hoge の数 / ポストの単語数合計

Page 10: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

結合確率

単語出現の独立を仮定 スパムである確率 1/2 を仮定

Page 11: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

出現頻度を考慮

s: ポストが NGであるという期待に与える強さ n: 単語Wの出現頻度 n が大きくなればなるほど s の影響は小さくなる

Page 12: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

フィッシャー方式

単語出現の確率分布を仮定

Page 13: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

結果 success: 4413 / 5134

85.956369302688% negative(ok): 2446 / 2970

82.3569023569024% positive(ng): 1967 / 2164

90.8964879852126%

Page 14: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

インターフェース http インターフェース (REST) を実装 Webrick

Page 15: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

デモ

Page 16: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

応用単純ベイズ分類器による文書の分類は、簡単で計算量も少ないのに高性能

コピペでもできるいろんな文書の分類に応用

自動カテゴリ分類? ログ解析? etc.

Page 17: ベイジアンフィルターによるユーザー投稿フィルタリングエンジンIshigroid

資料 スパムへの対策 ---A Plan for Spam

http://practical-scheme.net/trans/spam-j.html ベイジアンフィルタの改善 --- Better Bayesian Filtering

http://practical-scheme.net/trans/better-j.html ベイジアンフィルタ - Security Akademeia

http://akademeia.info/index.php?%A5%D9%A5%A4%A5%B8%A5%A2%A5%F3%A5%D5%A5%A3%A5%EB%A5%BF

Bayesian spam filtering http://en.wikipedia.org/wiki/Bayesian_spam_filtering

Spam Detection http://radio.weblogs.com/0101454/stories/2002/09/16/spamDetection.html

Segaran, 『集合知プログラミング』オライリー ,2008