物欲購入目録日誌 写真館
スポンサーサイト
--.--.-- (--:--) スポンサー広告
Twitterでつぶやく
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
twitter botに搭載予定の「twitter スパム アカウント 推定機能」できた。
2011.09.16 (20:10) 余談trackback(0)comment(0)
Twitterでつぶやく
1290602228423.jpg


結構前から開発していた途中でほったらかしにしていたtwitter アカウントスパムの推定機能が完成しますた!

ちょっと頑張って作ったのでどんなことができる機能なのか簡単に説明。

twitter アカウントスパムとは下記の記述されていますが、、


http://tweeter.jp/2009/09/09/twitter-1491.html


アフリエイトへのリンクへのリプライを発信したり、、あとアダルト系のアカウントで宣伝などを不特定多数の人に対してフォローしたりする厄介なアカウントですね。

実際にそのアカウントが怪しいか怪しくないかは概要などタイムラインを参照したりしたらわかるのですが、、オイラの目標以下ようなことを実現することです。

twitter botにスパムアカウント推定機能を持たせて、フォローしてもらったときに、その相手のプロパティを見て、相互フォローするかしないかを判断する。


という自動で判断する機能を持たせたかったので、機械学習の枠組みでスパムアカウントかどうかを推定する機能を作りました。

処理の流れとしては以下のような感じ。

スパムアカウント推定のやり方


(1) twitter アカウントから情報を取得する。(素性抽出処理)

twitterのアカウントからフォロワー数などの素性情報を取得します。素性抽出は正/負事例ともに実施します。
推定に用いる素性は以下は大まかには以下のようなものを取得。

・概要情報(description)

・本文情報(tweets)

・F/F比
フォロワー数をフォロー数で割った数値(ff_ratio)

・総ツィート数(statuses_count)

・ツィート時間(tweet_time_ratio)

・本文にリンクがどれほど含まれているか?(url_ratio)

・ツィート時間分散(variance)

などなど、、まだ他にもたくさん素性を抽出しておりますが、このような素性を抽出します。

※抽出はtwitter APIの利用制限があるのでゆっくり抽出します。

(2) モデル作成

・各種素性の正規化

・キーワードベクトル作成(tf-idf値)

・SVM用モデルフォーマットへの変更処理を実施

(3) モデル学習

作成したSVMモデルデータで学習を実施。

推定器はサポートベクターマシンを利用。ライブラリはTinySVMを利用

(3) 検証

ここまでできると、推定可能になりますが、、作成したモデルデータの検証を実施します。

検証方法は5分割交差検定で作成したモデルを評価した結果が以下

・総事例数:296

平均精度:96.39 [%]

という結果で結構うまく推定できている。ことがわかります!!!

次に用いた素性の中で精度に寄与している素性を調べてみます。
各素性を1個ずつ抜いて精度を図ります。その結果が以下


twitter_spam.jpg


この図から明らかなように素性値"listed_count"を抜いたときに約5[%]も精度が低下してしまいました。

これは機械学習的にこの素性の精度への寄与が大きいことがわかります!

このlisted_countは、他のユーザーさんがリストに登録している個数で、この素性はそのままですが、、他のユーザーがそのアカウントを評価して、有益なアカウントだと認定し、リストに登録するということから当たり前といえば当たり前ですがフォローするよりも、ポジティブフィードバックが効いた素性をしてみることができることがわかります。

結果、、アカウントがスパムアカウントどうかを判断する基準としてはまず、フォローしている人数ではなく、リスト登録されている個数をまず注意を払ったほうがいいことがこの実験でわかりますた!!

とりあえず、この機能をオイラのtwitter bot(@tachi_pic_bot)に載っける作業をしたいと思います!!!

相当オーバースペックですけどね、、toro_mune.gif


prevhome next












トラックバックURL
→http://tachiphoto.blog61.fc2.com/tb.php/1462-1b8d7e93
home
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。