Jubatusの紹介@第6回さくさくテキストマイニング

7,439 views

Published on

Jubatusの紹介@第6回さくさくテキストマイニング

  1. 1. Jubatusの紹介2011/12/17 @さくさくテキストマイニング 株式会社Preferred Infrastructure 海野  裕也 (@unnonouno)
  2. 2. ⾃自⼰己紹介l  海野  裕也 (@unnonouno) l  unno/no/uno l  プリファードインフラストラクチャー (PFI) l  研究開発部 l  検索索エンジンSedueの会社l  専⾨門 l  ⾃自然⾔言語処理理 l  テキストマイニング 2
  3. 3. 今⽇日の内容 l  Jubatusの宣伝をしに来ました  :-) l  それ以上のはなしは有りません l  読み⽅方は「ゆばたす」です 3
  4. 4. Big Data !l  データはこれからも増加し続ける l  多いことより増えていくということが重要 l  データ量量の変化に対応できるスケーラブルなシステムが求めら れるl  データの種類は多様化 l  定形データのみならず、⾮非定形データも増加 l  テキスト、⾏行行動履履歴、⾳音声、映像、信号l  ⽣生成される分野も多様化 l  PC、モバイル、センサー、⾞車車、⼯工場、EC、病院 4
  5. 5. データを活⽤用するSTEP 1. ⼤大量量のデータを捨てずに蓄積できるようになってきたSTEP 2. データを分析することで、現状の把握、理理解ができるSTEP 3. 状況を理理解し、現状の改善、予測ができるl 世の中的には、蓄積から把握、理理解に向かった段階 この本が実際 この⼈人は30代 本の購買情報 に売れている 男性なので、 を全て記録で のは意外にも この本を買う きるように 30代のおっさ のではない なった! ん達だ! か? 蓄積 理理解 予測 より深い解析へ 5
  6. 6. Jubatusl  NTT  PF研とPreferred  Infrastructureによる共同開発 10/27よりOSSで公開  http://jubat.us/ リアルタイム   ストリーム 分散並列列 深い解析 6
  7. 7. 開発の経緯(PFI側から⾒見見た)l  もともと機械学習が得意だった l  @hillbig (フェロー) l  特にオンライン学習に関しては5年年前くらい(研究 室に⼀一緒にいた時)からずっと調べてたl  もともとHadoopが得意だった l  @kzk_mover (元CTO) l  ⽇日本Hadoopユーザー会l  Hadoopではできない⼤大規模データ解析をやろ う! 7
  8. 8. Hadoopとは?バッチ処理理の分散フレームワークl  中⾝身はGoogleのMap/Reduceの実装l  コモディティマシンを並べて並列列化l  Mahout/Hive/ZookeeperなどのHadoopファミ リーを構成 8
  9. 9. Hadoopの特徴l  速い! l  ⼤大量量のデータを⼀一気に処理理l  分散する! l  ⾜足りなかったら継ぎ⾜足そうl  ロバスト! l  サーバーは壊れるものl  遅い l  結果が帰ってくるまでの時間は遅い 9
  10. 10. 機械学習とは?l  ⼤大量量のデータから規則や傾向を解析、分析や予 測に活⽤用するl  データがある分野、どこでも活⽤用 l  ⾃自然⾔言語処理理、パターン認識識、画像、⾳音声、etc.l  研究ベースのOSSが多い l  libsvm/liblinear/Mallet/crf++/Rl  すでに実⽤用化が進んでいる l  Gmailの重要ボタン(分類問題)、推薦システム(近傍探索索)、 バグの有無も予想できるらしいよ 10
  11. 11. オンライン学習は学習⼿手法の⽅方式の⼀一つl  バッチ学習 l  データを全体を⾒見見て重みを調整する l  参考書を全部解いてから答え合わせ 学習器l  オンライン学習 l  1つずつデータを⾒見見て重みの更更新を繰り返す l  ⼀一問ずつ解いて答え合わせ 学習器 11
  12. 12. 機械学習・オンライン学習の特徴l  速い! l  データを受け取ったらすぐ学習l  速い! l  5年年前:学習10時間、今:学習10分l  便便利利! l  ルール書くの疲れたl  分散させる技術がない 12
  13. 13. 分散かつオンラインの機械学習l  処理理が速い! l  処理理の完了了を待つ時間が少ない l  5分前のTV番組の影響を反映した広告推薦ができる l  5分前の交通量量から渋滞をさけた経路路を提案できるl  ⼤大規模! l  処理理が間に合わなくなったらスケールアウト l  ⽇日本全国からデータが集まる状態でも動かしたいl  機械学習の深い分析! l  単純なカウント以上の精度度を 13
  14. 14. こんなことができる?:リアルタイムレコメンド⾖豆腐が健康にイイ 小売 ヨー 影響の予測 変化の検知 ユーザーの購買行動 広告配信 14
  15. 15. テキストマイニングとの関係l  Jubatus⾃自体は基盤よりの技術 l  分散フレームワーク l  機械学習 l  Hadoop + Mahoutくらいのレイヤーl  具体的な解析⾃自体はその上に構築l  ⼤大規模リアルタイムにテキスト分析する⽤用途に 使えるかも 15
  16. 16. 技術の視点で⾒見見るとテキストマイニングは複合技術アプリ 理論 ⾃自然⾔言語 統計 処理理 機械学習テキスト マイニング ⽂文字列列処理理マイニング Jubatus はこの辺 分散 検索索 ストリーム 乱択 処理理 アルゴリズム 16
  17. 17. 機械学習のような⾼高度度な分析は必要なのか?l  数を数える以上の処理理はいらないんじゃ ない?l  すでに使われている l  レコメンド(近傍探索索) l  スパム分類(分類)l  応⽤用範囲は広い l  ⾔言語、画像、⾳音声、センサー、etc. 17
  18. 18. 研究業界に⾒見見る機械学習と⾃自然⾔言語を振り返る 90年代 規則を人手でたくさん書く   正規表現、文法、コスト、重み 2000年前後 自然言語処理に機械学習登場   SVM, ME, CRF 00年代 機械学習を使わないほうがマイナー   Chasen、MeCabの成功   OSSにも深く浸透 研究者だけに使わせるのはもったいない 18
  19. 19. 機械学習ライブラリの敷居はまだ⾼高いl  libsvmフォーマット l  +1 1:1 3:1 8:1 l  何よこれ?  ←普通の⼈人の反応l  ハイパーパラメータ l  「Cはいくつにしましたか?」 l  Cってなんだよ・・・  ←普通の⼈人の反応l  研究者向き、エンジニアが広く使えない 19
  20. 20. RDBやHadoopから学ぶべきことl  わからない l  リレーショナル理理論論 l  クエリオプティマイザ l  トランザクション処理理 l  分散計算モデルl  わかる l  SQL l  Map/Reduce l  「あとは裏裏でよろしくやってくれるんでしょ?」 20
  21. 21. Jubatus裏裏の⽬目標 全ての⼈人に機械学習を!l  わからない l  オンライン凸最適化 l  事後確率率率最⼤大化 l  MCMC、変分ベイズ l  特徴抽出、カーネルトリックl  わかる l  ⾃自動分類、推薦 l  「あとはよろしくやってくれるんでしょ?」 21
  22. 22. ⽣生データを突っ込めば動くようにしたいl  Jubatusの⼊入⼒力力はキー・バリュー l  最初は任意のJSONだった l  twitter APIの⽣生出⼒力力を⼊入⼒力力できるようにしたかったl  あとは勝⼿手に適当に処理理してくれる l  ⾔言語判定して l  各キーが何を表すのか⾃自動で推定して l  勝⼿手に適切切な特徴抽出を選ばせる l  (予定、まだできない) 22
  23. 23. 雰囲気だけl  典型的な特徴抽出は⽤用意しておく l  MeCabで分割して単語を特徴に l  ⽂文字Nグラムを特徴に l  正規表現で部分⽂文字列列の切切り出しl  弄弄るのは設定だけ l  お客さん先でコンパイルし直しとか⾟辛い・・・ l  パッチを当ててもらうのはリスクが⾼高い 23
  24. 24. 使い⽅方のイメージ(分類)key value年年齢 28ID unnonouno 男性!コメント Jubatus動い たープロ PFIで働いてフィール ます 裏裏にある規則 PFI à 男性? Jubatus à 男性? 24
  25. 25. インストールは⾯面倒くさいよ!l  Macなら l  port install jubatus l  でインストールできるようにしてくれた⽅方がいらっ しゃいましたl  Linuxなら l  ./waf configure & ./waf l  sudo ./waf install l  だいたいどこかでコンパイルエラー 25
  26. 26. 今後どうなる?l  分類以外の機能追加 l  統計情報 l  回帰 l  レコメンドl  複数のプログラミング⾔言語から使える l  今は、C++, Python, Ruby, PHP(外部の⽅方が作って くれた)l  さらに、可視化?管理理画⾯面? 26
  27. 27. まとめl  Jubatusとは何か? l  分散基盤 l  オンライン学習l  すべての⼈人に機械学習を l  典型的な例例は設定だけで l  SQLより簡単に使えるといいね!l  使いやすさはこれからです 27

×