Jubatusにおける大規模分散オンライン機械学習

29,028 views

Published on

0 Comments
38 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
29,028
On SlideShare
0
From Embeds
0
Number of Embeds
14,641
Actions
Shares
0
Downloads
236
Comments
0
Likes
38
Embeds 0
No embeds

No notes for slide

Jubatusにおける大規模分散オンライン機械学習

  1. 1. Jubatusにおける⼤大規模分散 オンライン機械学習 2011/12/08 @⼤大規模データ処理理勉強会 株式会社Preferred Infrastructure 海野  裕也 (@unnonouno)
  2. 2. ⾃自⼰己紹介l  海野  裕也 (@unnonouno) l  Preferred Infrastructure (PFI) 研究開発部⾨門リサーチャー l  社員20⼈人くらい l  検索索・レコメンドエンジンSedueの開発などl  専⾨門 l  ⾃自然⾔言語処理理 l  テキストマイニングl  Jubatusプロジェクト内での役割 l  主に特徴抽出エンジン、機械学習エンジンの研究開発 2
  3. 3. Big Data !l  データはこれからも増加し続ける 多いことより増えていくということが重要 l    データ量量の変化に対応できるスケーラブルなシステムが求めら れるl  データの種類は多様化 l  定形データのみならず、⾮非定形データも増加 l  テキスト、⾏行行動履履歴、⾳音声、映像、信号l  ⽣生成される分野も多様化 l  PC、モバイル、センサー、⾞車車、⼯工場、EC、病院 3
  4. 4. データを活⽤用するSTEP 1. ⼤大量量のデータを捨てずに蓄積できるようになってきたSTEP 2. データを分析することで、現状の把握、理理解ができるSTEP 3. 状況を理理解し、現状の改善、予測ができるl 世の中的には、蓄積から把握、理理解に向かった段階 この本が実際 この⼈人は30代 本の購買情報 に売れている 男性なので、 を全て記録で のは意外にも この本を買う きるように 30代のおっさ のではない なった! ん達だ! か? 蓄積 理理解 予測 より深い解析へ 4
  5. 5. 現状の背景l  既存システムは次の3つの⽬目標を同時に達成することが困難 l  1)リアルタイム性の確保 l  2)データを⽔水平分散処理理 l  3)⾼高度度な解析l  分散並列列処理理 (MapReduceなど) l  スケールアウト構成による性能向上、耐障害性 l  基本的にバッチ処理理、解析結果はすぐ返ってこない l  計算モデルの⾃自由度度が⾼高い分オーバーヘッドも⼤大きいl  オンライン / ストリーム処理理 (CEPなど) l  到着したデータをその場で処理理して解析し、結果を出⼒力力する l  多くは単純な処理理しか⾏行行えない 5
  6. 6. Jubatusl  NTT  PF研とPreferred  Infrastructureによる共同開発 10/27よりOSSで公開  http://jubat.us/ リアルタイム   ストリーム 分散並列列 深い解析 6
  7. 7. 本⽇日の内容機械学習の観点から⼤大規模データを⾒見見つめてみるl  機械学習とは何かl  線形分類器とは何かl  ⼤大規模データに対する機械学習 7
  8. 8. 機械学習とは?l  データから有⽤用な規則、ルール、知識識表現、判断基準な どを抽出l  データがあるところ、どこでも使えるl  様々な分野の問題に利利⽤用可能 適用分野 レコメンデー ションクラス 分類、識識別 市場予測 評判分析 タリング 情報抽出 ⽂文字認識識 ロボット 画像解析 検索索ランキン 遺伝⼦子分析 ⾦金金融 医療療診断 グ 8
  9. 9. タスク固有の問題と⼿手法の分離離 特徴抽出 機械学習 分野に依存しない 様々な⼿手法・理理論論を 特徴を捉えた抽象化されたデータ 適⽤用可能 ⽂文書 (0,        1,        0,  2.5,  -‐‑‒1,  …) 分類/回帰:SVM,  LogReg,   (1,  0.5,  0.1,      -‐‑‒2,    3,  …) PA,  CW,  ALOW,  Naïve  Bayes (0,        1,        0,  1.5,    2,  …) CNB,  DT,  RF,  ANN,  …   特徴ベクトル クラスタリング:K-‐‑‒means,  画像 Spectral  Clustering,  MMC,   LSI,  LDA,  GM,  … ⾏行行動履履歴 グラフィカルモデル 構造分析:HMM,  MRF,  CRF,  … センサ情報 9
  10. 10. 現状で実装されているモジュール l  現在実装されているのは、⽂文書データからの特徴ベクト ルへの変換と、それに対する分類器 分野に依存しない 様々な⼿手法・理理論論を 特徴を捉えた抽象化されたデータ 適⽤用可能 ⽂文書 (0,        1,        0,  2.5,  -‐‑‒1,  …) 分類/回帰:SVM,  LogReg,   (1,  0.5,  0.1,      -‐‑‒2,    3,  …) PA,  CW,  ALOW,  Naïve  Bayes (0,        1,        0,  1.5,    2,  …) CNB,  DT,  RF,  ANN,  …   特徴ベクトル クラスタリング:K-‐‑‒means,  画像 Spectral  Clustering,  MMC,   LSI,  LDA,  GM,  … ⾏行行動履履歴 グラフィカルモデル 構造分析:HMM,  MRF,  CRF,  … センサ情報 10
  11. 11. 現在Jubatusで実装されているのは多クラス分類l  ⼊入⼒力力xに対し、出⼒力力yを予測するタスク ⼊入⼒力力x 出⼒力力yメール分類 メール スパム or 普通 or 重要等Twitterのユーザー分析 Tweet ユーザーの性別、職業、年年齢など電気使⽤用料料需要の予測 パケット 各サーバーの予測使⽤用量量(連続値)広告のコンバージョン予測 アクセス履履 クリック、コンバージョンするか 歴、広告監視カメラ解析 監視カメラ 部屋の状態(明かりがついている? 画像 ⼈人がいるか?など) 11
  12. 12. ⾮非定形データから特徴ベクトルへの変換l  ⼊入⼒力力された⽣生データの特徴をキーとバリューで表すl  変換の⽅方法はデータの種類によって様々l  Jubatusは、この変換もサポート 特徴ベクトル 世の中ではビッグデー ビッグデータ 2 分類結果 タというキーワードが注⽬目されていますが, 世の中 1⼀一⼝口にビッグデータと キーワード 1 IT関連いっても⽴立立場や観点に 定義 1よって定義は様々です. スカート 1 長髪 1 身長 152 ⼥女女性 服が黒 1 12 他の要素は0とする
  13. 13. 多クラス分類の中の、線形分類器が実装されているl  ⼊入⼒力力は特徴ベクトルl  各特徴量量にクラスごとの重みがあるl  重みの総和(内積)が各クラスの得点とする入力:「野球の後のカレーライスはおいしい」 重み スコア最⼤大 1:スポーツ 2:グルメ 3:政治 特徴ベクトル カレー -1 2 -1 カレー 1 仕分け -1 -1 2 ライス 1 ライス -1 1 1 野球 1 野球 2 -1 -1 13
  14. 14. 線形分類器と呼ばれる所以体重 男 l  重みの⾜足しあわせは、特 徴ベクトルと重みベクト 女 ルの内積を計算している ということ l  特徴ベクトル空間上での 分離離平⾯面を探しているこ とになる 身長 14
  15. 15. 線形分類器の機械学習l  機械学習で重みを⾃自動調整するl  調整の基準や、計算⽅方法で様々な種類が存在する l  単純ベイズ l  パーセプトロン l  最⼤大エントロピー法 l  サポートベクトルマシンl  Jubatusではオンライン学習アルゴリズムが実装されて いる 15
  16. 16. オンライン学習は学習⼿手法の⽅方式の⼀一つl  バッチ学習 l  データを全体を⾒見見て重みを調整する l  参考書を全部解いてから答え合わせ 学習器l  オンライン学習 l  1つずつデータを⾒見見て重みの更更新を繰り返す l  ⼀一問ずつ解いて答え合わせ 学習器 16
  17. 17. オンライン学習の重み更更新のイメージl  分類に間違えたら正しく分類できるように微調整l  微調整の⽅方法の違いで学習⼿手法の良良し悪しが決まる 特徴ベクトル 重み 正しいクラス 間違えたクラス 正しいクラス 間違えたクラス 正解クラスの重みが小さい 17 正しく分類できるように調整
  18. 18. オンライン学習の特徴l  オンライン学習は更更新が早いl  同じ学習時間に対して、経験的に精度度も⾼高い l  普通に考えれば、全部⾒見見たほうががよいのにl  Jubatusでは最新の⼿手法を含む、様々な⼿手法が実装され ている l  Perceptron (1958) l  Passive Aggressive (PA) (2003) 近年年急激に Confidence Weighted Learning (CW) (2008) 性能が向上 l  l  AROW (2009) l  Normal HERD (NHERD) (2010) 18
  19. 19. オンライン学習を分散化させるのは⾃自明ではない! バッチ学習のイメージ オンライン学習のイメージ 更更新量量計算 更更新量量計算 ここが重いの モデル更更新 で⾃自明に並列列 更更新量量計算 モデル更更新 化しやすい モデル更更新 更更新量量計算 更更新量量計算 モデル更更新 更更新量量計算時間 モデル更更新 モデル更更新l  オンライン学習の特徴は頻繁な更更新l  単純な分散では頻繁な同期処理理が必要になってしまい、 性能の劣劣化が避けられない 19
  20. 20. Jubatusの分散⼿手法:緩やかなモデル情報の共有l  各サーバーのモデル情報を緩やかに共有する l  データ⾃自体は共有しないため軽いl  全サーバー間で同時刻に同じモデルが存在する ことは保証しない l  サーバー毎に解析が(実⽤用上問題が無い程度度に)異異 なることを許容 l  時間が経つにつれ、モデル間の情報は共有されてい く
  21. 21. Jubatusにおける分散機械学習のイメージ 学習器l  みんな個別に⾃自学⾃自習l  たまに勉強会で情報交換l  ⼀一⼈人で勉強するより効率率率がいいはず! 21
  22. 22. 3種類の処理理に分解l  UPDATE l  データを受け取ってモデルを更更新(学習)するl  ANALYZE l  データを受け取って解析結果を返すl  MIX l  内部モデルを混ぜ合わせるl  cf. MAP / REDUCE 22
  23. 23. 3つの操作:UPDATE 学習器l  内部状態を更更新する(学習する)l  クライアントが結果を待つ必要は特にない 23
  24. 24. 3つの操作:ANALYZE 分析器l  分析結果を返すが内部状態を変更更しないl  クライアントが結果を受け取る 24
  25. 25. 3つの操作:MIX 学習器l  学習器同⼠士が内部モデルの情報を混ぜ合わせるl  混ぜる⽅方法は学習⼿手法によって異異なる 25
  26. 26. 3つの処理理の例例:統計処理理の場合l  平均値を計算する⽅方法を考えようl  内部状態は今までの合計(sum)とデータの個数(count)l  UPDATE l  sum += x l  count += 1l  ANALYZE l  return (sum / count)l  MIX l  sum = sum1 + sum2 l  count = count1 + count2 26
  27. 27. 「緩いモデル共有」の特徴l  分散オンライン機械学習に特化する l  独⽴立立に学習するのでスループットが⾼高い l  もともと100%の精度度が難しいのを逆⼿手に取り、サー バー間で結果が異異なることを許容するl  任意の並⾏行行計算を実現できるわけではない l  逐次処理理した時と厳密に⼀一致しない l  MIXするまで他のノード計算結果は反映されない 27
  28. 28. これからの予定l  まだ分散オンライン機械学習の理理論論が不不⾜足 l  分類学習に適⽤用できることが知られていた [Mann2009, McDonald2008] l  今はレコメンド(近傍探索索)問題の研究開発をして いる l  問題によってはオンライン学習させるのも難しいl  他の問題はまだまだ l  クラスタリング、マイニング、etc. l  チャレンジングな課題は多い 28
  29. 29. まとめl  Jubatusの紹介 l  3つのキーワード:リアルタイム、分散、深い解析 l  http://jubat.usl  Jubatusの分類学習の仕組み l  線形分類器 l  オンライン機械学習 l  分散オンライン学習モデル:UPDATE/ANALYZE/ MIX 29

×