Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

30,822 views

Published on

  • Be the first to comment

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

×