データマイニング+web勉強会に行ってきました

遅くなりましたが データマイニング+web勉強会に行ってきました。
http://atnd.org/events/4319

最初補欠でもうだめぽと思ったら、twitter でまだ席が空いているという書き込みがあったので、
会場のスービエまで飛んでいった。
氷海の上、海を支配する7英雄とバトルが開始される----(嘘)

「ソーシャルウェブとレコメンデーション

http://www.slideshare.net/hamadakoichi/ss-4113135

メモったことをまとめながらつらつら書いていく。

レコメンド手法

レコメンド手法は大きく2つ+その他がある。

コンテンツベース(類似度で)
協調フィルタリング(ユーザの行動から予測)で行う。

その他のテクとしては、
ルールベース(XXXといったらYYYみたいなリストからお勧め)
ベイジアンベース(ある状況の後にはこうなるだろうという予測)などの手法がある。

amazonのレコメンデーションが一番有名でアイテム・アイテムのレコメンドを行う。

コンテンツベースのメリット

すくないデータでも動作する

コンテンツベースのデメリット

コンテンツの質自体は評価できない。
(同じ単語がたくさん出ていることがわかってもそれがいいのかどうかはわからない。)

強調フィルタリングのメリット

言語に依存しない、コンテンツの質がわかる。
リンクや購入などの投票があるから言語に依存しない。

強調フィルタリングのデメリット

データが少ないと予測能力が低い。
新規ユーザなどの相互作用があまりない場合は低い。

ユーザーとアイテムのどちらのデータをベースにするべきか?

経験則でアイテムベースのアルゴリズムのほうが早いらしい?
明らかに使わないものを消していけるから、次元落としがしやすいためらしい。

ユーザーは買わなかったという値もレコメンドのパラメータになるか?

可能性はある。どっかが実装している?
web botのデータを無視しないと大変な事になるような気がする。

全部のログを解析するのか?

期間で絞る。

コンテンツベースと協調フィルタリングのどちらを使うべきか。

組み合わせて使う。
協調フィルタリングは、新規サイトなどのユーザがあまりいないサイトではデータが少ないのであまり機能しない。
また、商品の入れ替わりが激しいサイトなども問題になってくる。

コンテンツベースは導入しやすいが、データの質が問題になってくる。

だから、まずルールベースを入れて、これといったらあれだをと手でやっていくのがいいらしい。
それでユーザの履歴ログからどれくらいの精度が検討する。
うまくいったルールはそのままにしておき、ダメなものは入れ替える。

そのうちデータがたまってくれば、少しづつ協調フィルタリングなどのレコメンドエンジンに移動していくみたい。
なるほど。。。

また、レコメンドエンジンを入れたあとにログをクラスタ解析にかけると、いろいろ面白いことがわかったりするらしい。

レコメンデーション活用編 -開発者より-

http://www.slideshare.net/karubi/tokyowebminingkarubinamuru

amazon EC2 + Hadoop / mahout を利用した商品画像認識を利用したレコメンドシステム。
mahout(マホウト)とは、hadoop上で動作する機械学習エンジン。
mahoutとは象使いの意味。Hadoopのアイコンは象さん。

参考:
http://www.infoq.com/jp/news/2009/04/mahout

EC2のおかげで、スケーラビリティなシステムを構築出来ているらしい。
ユーザー数が数倍に突然増えてもなんとかなっている。(すごい)

ただし、クラウドというのは、いつでも作れるしいつでも消えるものなんです。(名言)

なぜ mahout を利用したのか?

機械学習アルゴリズムがわかっていても、実装にコツがあり、独自実装は避けたかったかららしい


Hadoop!入門とクラウドでの活用

http://www.slideshare.net/yanaoki/hadoop-4113186
hadoop(MapReduce)は気になっていたけど、まだ使ったことがないしぜひ勉強していきたいと思った。

amazon クラウドamazon EMR という hadoop 環境のある。
少し価格が高い。
http://aws.amazon.com/elasticmapreduce/

map reduce の説明

              |--map--|
              |       |--reduce--
map reduce ---|--map--|
 master       |       |--reduce--
              |--map--|

これに データを格納する部分のKey Value Store の HDFS (ストレージ)がある

私の理解。
master は、データを mapノードに適当に渡す。

mapはデータを見て、それの担当者の reduce に渡す。
この時データに加工することもできる。

担当の reduce が集計して、 HDFS に書き出す。
すべてが終わったら、完了。

1巡ですべてが終わるとき限らない。
3巡ぐらいすることもあるらしい。
Unixのパイプみたいにどんどんつなげることができる。

サーバ構成は、マスター1台とそれ以外がすべてスレーブ。
マスターはスレーブに指示を出す。スレーブはその指示を実行する。
スレーブ間のやりとりはなし?(基本はなし?)
→だからmapやreduce は並列で動作するのかなと思う。
→ステートを持ってしまうと並列処理はとたんに難しくなるし、、、

http://mikilab.doshisha.ac.jp/dia/research/report/2009/1306/001/report20091306001.html

データをmap reduceに流し込むコツは?

まだみんながノウハウを貯めている状況。
これといった手法はない。
そのうち事例があつまって、いくのかなぁと。

Wikipediaによるテキストマイニング入門

http://www.slideshare.net/nokuno/datamining04-textmining

wikipediaデータマイニングして日本語IMEなどに利用できる辞書を作る話。
Linuxのツールでここまでできるのかと思った。。。

mecabは未知語弱くない?って聞いたら、具体的にどんな未知語データを使ったの?と聞かれて、えーと、エロ単語。。。。とかいったww。
エロエロです。

みんな大好きエロ。

とある仕事である文章がエロいかエロくないかを判別するシステムを作ったんですよ。エロ判定。
そしたら、mecabはエロ単語をぶった切ってくれるわけですよ。
「肉と棒」とかそんな感じに。。。
mecabは、なんてピュアなヤツなんだwww。

mecabが元にしている(?)新聞にはエロ単語でてこないからしかたないわけですが。
mecabはもっと官能小説とかを読むべきw

mecabのユーザ辞書にエロ単語辞書を突っ込む作業は虚しいデスよwww

コード

講師をされたnokunoさんのページに処理に使ったコードへのリンクが有りました。
http://d.hatena.ne.jp/nokuno/20100516/1274006341

Webの物理世界をつなぐ -WebとGainerの連携-

http://www.slideshare.net/ogashin/web-oga-shin

オフィス全体ではなく、個々の個人向けに快適の環境を提供しましょうという話。
オフィスって席によって妙に熱かったり寒かったりするよねぇ。。。
そのためには、個人用の席の温度などを観察して、それにより扇風機などを渡したりする。
それに gainer(ゲイナー) を利用できないかということ。

最適のOSってセンサー機能をサポートしてきているから、入力とかはソッチの方からのアプローチもあるのかなと思った。

ラップトップには Windows 7 センサー API で使えるセンサーがいっぱい付いている!
http://japan.internet.com/itenglish/20090904/1.html

FreeBSD での各種センサ取得
http://blog.unnamed.jp/archives/2007/02/freebsd.html

貧乏揺すりをカウントするデバイスカーネルにマージしたOpenBSD
http://slashdot.jp/opensource/article.pl?sid=10/03/01/0956254

これはこの人達の仕業w↓
http://groups.google.co.jp/group/kernelvm


出力は、、やっぱり課題だよね、、そこはgainerのすごい点だと思う。

昔、プライベートで音声認識 + 学習リモコンを利用した空調制御っていうのやっていたんです。
だけど、そのとき家にあったエアコンが学習リモコンでうまく学習させることが出来なかったんです。。。
そのエアコンは大家さんが取り付けたものだったので勝手に交換するわけにもいかず、、、

ソフトウェアはコンピュータの中で動く目に見えないものだから、
ハードウェアをうまく使って、
プログラムを現実世界にフィードバックさせる仕組みを作っていきたいと思っています。。。

そんなわけで、さっそく Gainer で遊ぶ会 で登録さわていだきました。
http://groups.google.co.jp/group/gainer_asobu

まずは、gainer 買わないと。。。