Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム

10,626 views

Published on

2012/12/7にComSysで招待講演した際のプレゼン資料です。2013/1時点でのJubatusに関する全部入り資料になっています。

概要:Hadoopは非常に成功した大規模データの分散処理基盤である一方、データを貯めないリアルタイム処理や、統計的な手法で知見や予測モデルを得る機械学習技術のサポートは限定的である。Jubatusは、それらHadoopに足りない「分散・リアルタイム・機械学習」を実現するためのOSSフレームワークとして2011年にリリースされた。その技術的特徵は、オンライン学習アルゴリズムを分散化し、かつ分散環境でコストの高いデータ共有を排除してコンパクトな機械学習モデルのみを緩やかに共有するMix操作を中心とした計算アーキテクチャを採用していることにある。本講演ではその動作原理を中心にJubatusの裏側を紹介する。

Published in: Technology

Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム

  1. 1. Jubatus: 分散協調をキーとした⼤大規模リアルタイム機械学習プラットフォーム ⽐比⼾戸  将平 株式会社Preferred Infrastructure @ComSys2012
  2. 2. Jubatusl  NTT  SIC*とPreferred  Infrastructureによる共同開発l  2011年年10⽉月よりOSSで公開  http://jubat.us/ 分散並列列 リアルタイム 深い解析 *  NTT研究所  サイバーコミュニケーション研究所   ソフトウェアイノベーションセンタ 2
  3. 3. ⽬目次l  会社紹介l  機械学習の概要l  Jubatus開発の背景l  応⽤用例例とデモl  Jubatusの仕組みl  Jubatusの未来 3
  4. 4. Preferred Infrastructure (PFI)  最先端の技術を最短路路で実⽤用化l  東⼤大発ソフトウェア開発ベンチャーl  創業:2006年年3⽉月l  主な製品 l  Sedue: 検索索&レコメンドエンジン l  Bazil: 使いやすい機械学習ツール 代表取締役 取締役副社⻑⾧長 l  Jubatus: ⼤大規模オンライン分散機械学習 ⻄西川徹 岡野原⼤大輔 情報検索索(IR) 分散システム ⾃自然⾔言語処理理 機械学習 4
  5. 5. ⽬目次l  会社紹介l  機械学習の概要l  Jubatus開発の背景l  応⽤用例例とデモl  Jubatusの仕組みl  Jubatusの未来 5
  6. 6. クラス分類と回帰l  ⼊入⼒力力xに対し、出⼒力力yを推定する l  正解データ{(x, y)}を利利⽤用しxからyの関数を学習タスク ⼊入⼒力力x 出⼒力力yメール分類 メール スパム or 普通 or 重要等Twitterのユーザー分析 Tweet ユーザーの性別、職業、年年齢など電気使⽤用料料需要の予測 パケット 各サーバーの予測使⽤用量量(連続値)広告のコンバージョン予測 アクセス履履 クリック、コンバージョンするか 歴、広告監視カメラ解析 監視カメラ 部屋の状態(明かりがついている? 画像 ⼈人がいるか?など) 6
  7. 7. レコメンドl  レコメンデーションを実現する技術 l  近傍探索索ベース:特徵ベクトルが似ている⼈人を探す l  協調フィルタリングベース:2部グラフ上で近い⼈人を探す 7
  8. 8. Noise外れ値検出 ノイズ Error 5 エラー 4 Rare Deviation 3 レアイベント 変動 2 1 Outlier 外れ値 0-5 -3 -1 1 3 5 -1 -2 Intrusion -3 侵⼊入 -4 Defect 故障 Fraud -5 不不正 Novelty Fault 新規 8 不不適切切動作
  9. 9. 機械学習の応⽤用 クレジットカード不不正利利⽤用検知 ネットワーク攻撃/侵⼊入検出 IBM Watson IBM Watson + Wellpoint Jeopardy!でクイズ王に勝利利 9 医療療診断⽀支援
  10. 10. ⽬目次l  会社紹介l  機械学習の概要l  Jubatus開発の背景l  応⽤用例例とデモl  Jubatusの仕組みl  Jubatusの未来 10
  11. 11. もう1つの潮流流:ビッグデータ!⼈人間系 l  テキスト系   l  新聞/Web/ブログ/Twitter l  イベント系列列 l  カード利利⽤用/治療療履履歴 l  メディア系   l  ⾳音声/画像/動画 l  ネットワーク系 l  パケット流流量量/種類/内容 l  M2Mセンサー系   l  ヒト/⾞車車/⼯工場監視機械系 11
  12. 12. ビッグデータ分析プロセス 蓄積 分析 NoSQLVolume テキスト バイオVariety Hadoop メディア ComplexVelocity Event 12 Processing M2M
  13. 13. データ分析から深い解析へ 分析 深い 解析 集計 ⾒見見える化 予測 カテゴリ分類 検索索 ルール処理理 レコメンド 異異常検知SQL DWH BI 機械学習 (MachineCQL CEP M/R 13 Learning)
  14. 14. ビッグデータへの機械学習応⽤用事例例: ⽶米国の巨⼤大Web企業から他業種へ広がりつつある l  Google l  検索索アルゴリズム(PageRank) l  広告最適化 l  SEO対策 バイオ l  Facebook l  広告最適化 l  知り合い候補レコメンド l  Amazon ヘルスケア l  おすすめ商品 メディア l  Twitter l  トレンドワード検出 l  知り合い候補レコメンド M2M 14A.  Barua,  D.  Mani,  R.  Mukherjee,  “Measuring  the  Business  Impacts  of  Effective  Data”,  The  University  of  Texas  at  Austin  2010
  15. 15. 代表的なビッグデータ処理理基盤:Google中⼼心 GFS/MapReduce  (Hadoop)   分散ファイルシステム + MapReduceフ [Google  2004] レームワーク分散処理理 分散ロックサーバー,   Chubby  (Zookeeper)基盤 [Google  2006] 分散システムの調整役 Spanner データセンター間の⼀一貫性制御 [Google  2012] 数百万台のマシンを制御 BigTable  (HBase)   スケールアウト可能な列列志向のKVS [Google  2006]DB/データ Dynamo   ⾼高可⽤用性、スケールアウト可能な  KVSストア [Amazon  2007] MegaStore   トランザクション機能付きKVS [Google  2011] Hive SQL経由で利利⽤用可能なHadoop [Facebook  2009]OLAP/分析   Dremel  (Apache  Drill)   OLAP向け,  列列志向  +  スタースキーマツール [Google  2010] PowerDrill OLAP向け  列列志向  +  スタースキーマ  +   [Google  2012] 圧縮  +  オンメモリ …OSS,  サービスでは未登場
  16. 16. これからのビッグデータ解析技術:3つのキー要素1.  機械学習などの深い解析技術 l  決まりきったレポーティングやルール処理理では不不⼗十分 l  因果関係分析や状況に応じた予測・判断が重要2.  ⼤大規模データへの対応 l  DBに保存して貯めることが難しいデータ量量 l  DBから再度度読み込んで処理理することが難しいデータ量量3.  リアルタイム/オンライン処理理 l  迅速な分析と対応が必要なアプリケーションの出現 l  データ取得時点でストリーム処理理することが必要 リアルタイム 深い解析 ⼤大規模化 /オンライン 16
  17. 17. なぜJubatusが必要なのかl  既存の分散並列列処理理  (MapReduce/Hadoopなど) l  スケールアウト構成による性能向上、耐障害性 l  基本的にバッチ処理理、解析結果はすぐ返ってこない l  計算モデルの⾃自由度度が⾼高い分オーバーヘッドも⼤大きいl  既存のオンライン  /  ストリーム処理理  (CEPなど) l  到着したデータをその場で処理理して解析し、結果を出⼒力力する l  多くは単純な処理理しか⾏行行えない ◯ 1. ⼤大規模化 ✕ 2. リアルタイム/オンライン ✕ 3. 深い解析 17
  18. 18. Jubatusの先進性と差別化要因:⼤大規模/分散並列列かつオンライン/リアルタイム • Structured  Perceptron オンライン 2011年年現在 [Collins,  EMNLP  2002] (リアルタイム) • Passive  Aggressive  / 存在しなかった MIRA  2004〜~ この分野に • online-‐‑‒learning  library   [岡野原,  2008] フォーカス!⼩小規模 ⼤大規模 単体 分散並列列 WEKA     1993-‐‑‒ SVM  light Mahout            1998-‐‑‒          2006-‐‑‒ バッチ 18
  19. 19. Jubatusの優位性:分散オンラインかつ深い解析 l  従来のデータ解析システムと⽐比較したJubatusのアドバンテージ Jubatus Hadoop CEP RDBMS ⼤大規模 ○ ◎ 対象外 ○ データ蓄積 外部DB連携 HDFS/HBase 中規模まで バッチ ○ ○ ✕ ◎ 機械学習 Mahout Rなど ストリーム 処理理 ○ ✕ ◎ ✕ 分散 ○ 機械学習 ◎ Mahout ✕ ✕重要度度: ⾼高い オンライン 機械学習 ◎ ✕ ✕ ✕ 19
  20. 20. これまでのビッグデータ処理理基盤の普及l  OSSで存在するシステムはGoogleから⾒見見れば4〜~6年年遅れている l  実際に社内で利利⽤用されはじめてから論論⽂文が出るまで1〜~2年年 l  OSS化され安定するまで3〜~4年年、普及するのに2〜~3年年l  Jubatusは今のところ実⽤用的な類似処理理基盤が存在せず≪Hadoopの例例≫ GFS/MapReduceがGoogle社内 Hadoopの10000コアでの利利⽤用 で利利⽤用され始める 事例例  [Yahoo!] 2003 2004 2005 2006 2007 2008 2009 2010 2011 MapReduce論論⽂文が公開 他社での利利⽤用事例例加速 OSSであるHadoop  開発開始 Hadoopエコシステムができる 20
  21. 21. ⽬目次l  会社紹介l  機械学習の概要l  Jubatus開発の背景l  応⽤用例例とデモl  Jubatusの仕組みl  Jubatusの未来 21
  22. 22. Jubatus Twitterデモl  会社名に紐紐付くキーワードを⾃自動的に学習し関連ツイートを分類l  発⾔言者の属性(性別・年年代)や特徴的な固有名詞なども抽出 22
  23. 23. Jubatusのビジネス展開:Twitter解析サービス l  NTT DataがTwitter Japanと独占契約 l  Firehoseを通じた全ての⽇日本語Tweetの再販 l  Jubatusを使った解析機能付きAPIがリリース予定http://blog.jp.twitter.com/2012/09/twitter.html
 23 http://www.nttdata.com/jp/ja/news/release/2012/092700.html
  24. 24. Jubatusの展開:NEDO IT融合基盤技術に採⽤用 l  ⾼高速化と多様なデータ対応を⽬目指して来年年度度まで開発 l  都市交通・農商⼯工・ヘルスケア分野の実証プロジェクトと連携 NEDO: IT融合新産業を⽀支えるデータ処理理基盤に関する先導研究 「リアルタイム⼤大規模データ解析処理理基盤の研究開発」データ量 求 要 ム性の イ ルタ リア 公共映像監視 ビ アな 成 +シ 械 が⽣生 都市交通 然 か機 ネットワーク +⾃自 た み 出し が⽣生 タ ⼈人間 デー グ ビッ ヘルスケア 農商⼯工 テキスト 開発計画 24
  25. 25. ⽬目次l  会社紹介l  機械学習の概要l  Jubatus開発の背景l  応⽤用例例とデモl  Jubatusの仕組みl  Jubatusの未来 25
  26. 26. Jubatusが現在サポートする機械学習アルゴリズムl  分類(+マルチクラス対応) l  Perceptron / PA / CW / AROW / NHERDl  回帰 l  PA-based regressionl  近傍探索索 l  LSH / MinHash / Euclid LSHl  レコメンデーション l  近傍探索索ベースl  外れ値検知* (2013年年1⽉月リリースのv0.4.0) l  近傍探索索ベースのLOFアルゴリズムl  グラフ解析 l  最短路路/ 中⼼心性(PageRank) 26
  27. 27. 分散リアルタイム機械学習は⾃自明でない分散処理理とオンライン オンラインでモデル更更新=頻繁な同期操作学習のナイーブに組み合わせサーバー1 L L L L Update Update Update Updateサーバー2 L L L Lサーバー3 L L L L time 頻繁な 同期操作 モデル更更新 オンライン機械学習 相反 27 分散アルゴリズム に必須 に必須
  28. 28. 分散オンライン機械学習を実現するコア技術:緩やかなモデル情報の共有l  Jubatusは各サーバーのモデル情報を「緩やか」に共有するl  データ⾃自体は共有せず、モデルのみ共有する l  既存システムと違う割り切切りl  全サーバー間で同時刻に同じモデルが存在することは保証しない l  サーバー毎に解析が(実⽤用上問題が無い程度度に)異異なることを許容 l  時間が経つにつれ、モデル間の情報は共有されていく 統合 統合 統合 モデル モデル モデル モデル モデル モデル UPDATE MIX ANALYZE データを分散して学習 モデルのみ共有 分散して処理理 28
  29. 29. 多クラス分類におけるモデル w1 w2 wn 多クラス分類では個々のサーバーが持つウェイトが 学習結果のモデルにあたる 29
  30. 30. 近傍探索索におけるモデル 1 011010010 2 110001100 3 110010111 4 000100101 5 110101011 6 000010110近傍探索索では転置インデックス・LSH・Min Hashを⽤用いてデータ点をビット列列化したものが学習モデルである。 30
  31. 31. UPDATEそれぞれのサーバーは初期モデルからスタート訓練データは1  or  2台のサーバーに送られるローカルな訓練データを元に、各々のモデルがリアルタイムに学習される訓練データそのものは共有されない Local Initial model model 1 Local model Initial model 2 31
  32. 32. MIXそれぞれのサーバーはモデルの差分のみを送るモデルの差分はマージ後各サーバーに配布されるモデルの差分のみがサーバー間でやり取りされるLocal Model Model Initial Merged Initial Mixed model = model - diff + = diff diff model model 1 1 1 Merged + = diffLocal Model Model Initial Merged Initial Mixedmodel - model = diff diff diff + model = model 2 2 2 32
  33. 33. ANALYZEテストデータはランダムにサーバーに送られるサーバーは⾃自分が現在持つモデルをテストデータに適⽤用し予測を⾏行行うサーバー側では結果の集約は⾏行行わない Mixed model Mixed model 33
  34. 34. UPDATE-MIX-ANALYZEモデル(例例:平均計算)•  Update •  Sum += x •  Num += 1 Sum 0 Sum 0 Sum 0•  Mix Num 0 Num 0 Num 0 •  Sum ← Sum1 + Sum2 •  Num ← Num1 + Num2•  Analyze •  return Sum/Num 34
  35. 35. UPDATE-MIX-ANALYZEモデル(例例:平均計算)•  Update •  Sum += x •  Num += 1 Sum 5 Sum 0 Sum 0•  Mix Num 1 Num 0 Num 0 •  Sum ← Sum1 + Sum2 •  Num ← Num1 + Num2•  Analyze 5 •  return Sum/Num 35
  36. 36. UPDATE-MIX-ANALYZEモデル(例例:平均計算)•  Update •  Sum += x •  Num += 1 Sum 5 Sum 7 Sum 0•  Mix Num 1 Num 1 Num 0 •  Sum ← Sum1 + Sum2 •  Num ← Num1 + Num2•  Analyze 7 •  return Sum/Num 36
  37. 37. UPDATE-MIX-ANALYZEモデル(例例:平均計算)•  Update •  Sum += x •  Num += 1 Sum 10 Sum 50 Sum 30•  Mix Num 2 Num 4 Num 3 •  Sum ← Sum1 + Sum2 •  Num ← Num1 + Num2•  Analyze Average? 12.5 •  return Sum/Num 37
  38. 38. UPDATE-MIX-ANALYZEモデル(例例:平均計算) Mix•  Update •  Sum += x •  Num += 1 Sum 10 Sum 50 Sum 30•  Mix Num 2 Num 4 Num 3 •  Sum ← Sum1 + Sum2 •  Num ← Num1 + Num2•  Analyze •  return Sum/Num Sum:10+50+30=90 Num:2+4+3=9 38
  39. 39. UPDATE-MIX-ANALYZEモデル(例例:平均計算)•  Update •  Sum += x •  Num += 1 Sum 90 Sum 90 Sum 90•  Mix Num 9 Num 9 Num 9 •  Sum ← Sum1 + Sum2 •  Num ← Num1 + Num2•  Analyze •  return Sum/Num 39
  40. 40. UPDATE-MIX-ANALYZEモデル(例例:平均計算)•  Update •  Sum += x •  Num += 1 Sum 90 Sum 90 Sum 90•  Mix Num 9 Num 9 Num 9 •  Sum ← Sum1 + Sum2 •  Num ← Num1 + Num2•  Analyze Average? 10 •  return Sum/Num 40
  41. 41. JubatusのMIX付き分類モデル w1 w MIX w2 w wn w 1 w= ( w1 ++ w n ) 各サーバーが個別にオンライン学習し n MIX時に重みを平均化する 41
  42. 42. JubatusのMIX付き近傍探索索モデル 1 011010010 1 011010010 : 2 110001100 6 000010110 Mix 3 110010111 1 011010010 : 4 000100101 6 000010110 5 110101011 1 011010010 : 6 000010110 6 000010110•  転置インデックス・LSH・Min Hashを⽤用いてデータ点をビット列列化。 ビット列列のハミング距離離を⽤用いてコサイン距離離を近似計算する。 42
  43. 43. ⽬目次l  会社紹介l  機械学習の概要l  Jubatus開発の背景l  応⽤用例例とデモl  Jubatusの仕組みl  Jubatusの未来 43
  44. 44. ビッグデータの⾏行行き着く先: そのデータ、集められますか?貯められますか? 【次世台シーケンサー】 【監視カメラ】    ゲノムデータなど動画、静⽌止画などの 画像データ       【モバイル】 ⾳音声データ、位置情報、 【⽣生体情報モニター】 メールのテキスト情報など          ⼼心拍数、⾎血圧、体温など 丸山宏, 岡野原大輔 Edge-Heavy Data: CPS・ビッグデータ・クラウド・スマホがもたらす次世代アーキテクチャ GICTF総会 特別講演 2012, http://www.gictf.jp/doc/20120709GICTF.pdf 44
  45. 45. Edge-Heavy Data:データ価値の多くはエッジ(縁)に存在するl センサデータの増加により、データの総価値は増加するl その⼀一⽅方、データの価値の密度度⾃自体は下がりつつある l  現在のビッグデータの殆どは排気データ(exhaust  data) ※排気データ:他の事業活動の副産物として⽣生成されたデータl 多くのデータが収集されるが利利⽤用されないl 利利⽤用を⾒見見込んで投機的に収集しても割に合わないl 解析することは割に合わない場合が多い l  コスト:ネットワーク,  ストレージ,  個⼈人情報管理理l  類似コンセプト:  Fog  computing(Cisco),  Dispersed  Cloud  (EMC) 推測:多くのデータは収集された地点で管理理、処理理され       濃縮された重要な情報(モデル)のみがやりとりされる 45
  46. 46. Edge-Heavy Dataにおける機械学習l  データを解析するために中央に集められない l  データを伝送して蓄積するコストが⾼高過ぎる l  アプリケーションによっては解析までの時間が許容できないl  例例えばEdge-heavy dataで必要になるリアルタイム異異常検知 l  例例:⼯工場システムの故障予知検知、⾃自動⾞車車のヒヤリハット検知 l  データを削減することが原理理的にできないバッチ処理理:⼤大きなタイムラグ リアルタイム処理理:⼩小さな遅延 46
  47. 47. Edge-Heavy Dataに向けて(1): Jubatus on OpenBlocks (ARM) 47 http://obdnmagazine.blogspot.jp/2012/11/jubatusopenblocks-ax3_21.html
  48. 48. Edge-Heavy Dataに向けて(2): MIX動作の切切り替え l  リニアMIX l  階層MIX l  ランダムMIX l  ⾼高コスト l  中コスト l  低コスト l  ⾼高モデル⼀一貫性 l  中モデル⼀一貫性 l  低モデル⼀一貫性 l  収束の理理論論保証 l  Rack-aware l  Gossip Learning l  構成がシンプル 48 Ormándi et al, „Gossip Learning with Linear Models on Fully Distributed Data”, arXiv 2011.
  49. 49. Jubatusの未来:PFIはこれからも最先端の技術を最短で実⽤用化しますl  ビッグデータ分析はより深い知⾒見見を得られるビッグデータ解析へl  鍵となる機械学習技術のビッグデータとの繋がりは道半ばl  さらに将来を⾒見見据えると重要になる2つの技術 l  リアルタイム(Jubatus)&トレーサビリティ(Bazil) 49
  50. 50. We welcome your feedback & contribution!l  Jubatusはまだまだ発展途上のOSSです l  開発陣も少しずつ成⻑⾧長しながら取り組んでますl  OSSに参加・貢献頂ける⽅方を歓迎します l  Jubatus試⽤用&質問や感想をML投稿 l  Jubatus使ってみましたBlog l  jubatus-exampleレポジトリにpush l  Jubatusを使って論論⽂文 l  Jubatusを使ってWebサービス l  github上のIssue解決 l  pull request l  正式なContributorとして開発 l  Jubatusプラグイン開発 50

×