© 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
オンライン機械学習 並列分散処理フレームワーク
日本電信電話株式会社
ソフトウェアイノベーションセンタ 堀川 桂太郎
2 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
読み方「ゆばたす」
俊敏な動物チータの学術名から命名
実は〃たてがみ系動物共通フレーズ
Preferred InfrastructureとNTTの共同開発 オープンソースソフトウェア公開中〆http://jubat.us/
Jubatus
3 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
“ゆばちゃれ”
参加,絶賛募集中!
学生向けデータ分析アイデアコンテスト
4 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
氏名〆 堀川 桂太郎(ほりかわ けいたろう)
所属〆 日本電信電話株式会社
ソフトウェアイノベーションセンタ
分散処理基盤技術プロジェクト
現在の業務〆 ビッグデータ〒モバイルクラウド
Jubatusのオープンソース化
Virtual Smartphone
研究開発分野: 々Software design and architecture,
々CSCW,CSCL,
々Distributed object computing,
々Meta programming and computational reflection,
々Single sign on for Web services,
々Big data and mobile computing
自己紹介
5 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
AGENDA
背景〆ビッグデータ
Jubatusが目指すこと
解くべき課題、設計思想
適用例、なぜJubatusか?
技術的な仕組みの話
今後のとりくみ
6 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
背景
Data
important
Big data
very important
ICTの進歩
データ収集,高速分析を容易化
データ主導型意思決定の席巻
7 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
ビッグデータ分析 (1/2)
(1)「ストック型←バッチ処理」
蓄積されたビッグデータに対する一括高速分析
⇒ 10数年分の臨床データをあらゆる角度から分析し〃新たな発見〃関係性を抽出
(2)「フロー型←リアルタイム処理」
連続的に発生するデータの流れに対する逐次高速分析
⇒ 不確実な多くの課題が偏在する外部環境において〃曖昧ながらも判断や意思決定を下すニーズと期待
8 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
ビッグデータ分析(2/2)
(1)「ストック型←バッチ処理」
⇒ 分析の精度,スループット重視
(2)「フロー型←リアルタイム処理」
⇒ 分析の鮮度,レスポンス重視
9 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
「ビッグデータをすばやく深く分析すること」
大量データ 毎秒16Mバイトのデータ流量 ⇒ 8000 Tweet/秒
速い応答 新鮮なデータを, 高速レスポンスで分析実行
深い分析
自然言語解析と 複数カテゴリへの自動分類
Jubatusが目指すこと(1/2)
10 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
ハードウェア
スケールアップではなくスケールアウト ⇒ 多数のコモディティサーバによる分散処理
サーバ追加による簡単な性能向上 (フロー型ビッグデータ ⇒24Hx7days安定運用は付加価値)
ソフトウェア
々機械学習〆 うまく段取りできれば、あとは自動実行。 々わかりやすい共通フレームワーク〆 ⇒ 一部のデータ科学者〃プログラマ〃専門家向けに限定せず〃ビッグデータの使いやすいオンライン機械学習フレームワーク
Jubatusが目指すこと(2/2)
「すべての人にスケーラブルな機械学習を」
11 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
「ビッグデータをすばやく深く分析すること」
関連技術との比較:ポジショニング
SVMlight
In-depth analysis
Scalability
Trade off
12 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT 解くべき技術課題
•「深い分析」と「スケーラビリティ」の両立
•「スケーラビリテイ」の2種類の課題:
(1) データサイズが増大
(2) 処理要求が増大
• (1)「データサイズ」 ⇒ 持たなくて済む or 分割して保持する
• (2)「処理要求」⇒ レスポンス〃スループット
• クイックレスポンス=「いつでも判断材料をもらえる状況」
13 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
Jubatusの設計思想 • 「深い分析」(機能)と「スケーラビリティ」(非機能)を分離
• 「深い解析」⇒ オンライン機械学習「エンジン,CPU」
• 「スケーラビリティ」⇒ 共通基盤「シャーシ,マザーボード」
データ
分析 結果
分類
データ
分析 結果
データ
分析 結果
回帰 推薦 +
従来の機械学習 高速シャーシ の開発
分類 回帰 推薦
フロー型 ビッグデータ
● 精度〆 正確な分析 ● データサイズ〆小規模 ● バッチ処理〆 レイテンシ大 ● 個別の開発
● 精度〆 誤差を許容 ● データサイズ〆ビッグデータ ● オンライン処理〆 レスポンスが速い ● フレームワークによる系統的開発が可能
高性能エンジン on 高速シャーシ
深い分析を オンライン実行
14 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
具体的な適用例
15 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
Use Case1: ソーシャルメディアの自動分類
【リアルタイム】 に 【深い分析】 “つぶやき”がどの企業に関連しているか自動分類
【Big Data Streaming】 Twitterつぶやき: 自然言語 世界〆 8000ツィート/秒
企業分類 (1600カテゴリ)
A社
B社
C社
D社
...
X社
自動分類
クライアント アプリケーション (Webブラウザ)
/dev/null
16 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
アプリ画面
17 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
• 複数のサーバの消費電力をリアルタイムに推定 • 従来〆全てのサーバに電力測定モジュールを入れる必要があった • Jubatus〆
• 一部のサーバの消費電力とネットワークパケットのパターンをJubatusで学習
• その他のサーバの消費電力は、パケットを監視/分析することにより、リアルタイムに推定可能
Use Case 2:消費電力推定
データセンタ/オフィス
空調制御に反映、PUEの向上
電力計 TAP
(パケットデータ)
電力計無し
推定
18 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
• オンラインサービス向けリアルタイム推薦 • ECサイト、検索サービス、オンデマンドTVなど • 従来のバッチ処理分析
• ユーザ行動(アクセス、購入など)を定期的に分析し、推薦モデルを更新 • その間のユーザ行動の変化を反映できない
• Jubatusによるリアルタイム推薦 • ユーザの行動変化が起こるたびに推薦モデルを更新 • 常にユーザ行動が反映された推薦を実現 • 突然の行動変化(TV紹介、イベント)などにも追従可能
Use Case 3: 推薦 (近傍探索)
Real-time recommendation with Jubatus
Buying histories
Customers
Recommendation accuracy
time
Sudden order increase after a
TV expose
Sudden order increase after the death of a
celebrity
Real behavior
Jubatus
Batch processing
19 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
• 災害・異常気象時の緊急避難ルートの分析 ⇒ 確実な緊急通信路の確保.
• 交通網々通信網の現状確認〃渋滞予測〃適切なルートをごく短時間で分析々通知し〃帰宅困難を解消
• 重要な拠点/安全エリアの抽出 + 拠点間の(渋滞が重ならない)最短路の分析
数分後
• 10億規模のノード, エッジからなるグラフ構造
• 明日の正解を待てない〃今〃判断材料が必要
• リアルタイムに構造が変化するグラフの最短経路〃
重要拠点の推移(様子)をすぐ知りたい
●その他事例〆 ソーシャルメディア (Facebook, twitter)から〃来日中の有名アーティストの出没情報をトレース〃 発信者やつぶやきの重要性の推移を分析し〃素早い意思決定々アクションに活用〄
リアルタイムBig Dataグラフ分析がフィットするシーンは?
• グラフ構造〆 特徴ベクトル間の関係⇒ より複雑々高次なデータ表現
• 大量の情報のつながり/関係の中から新たな規則性を発見する分析処理
• バッチ系Big Data グラフ分析では Page Rank が有名 (膨大なWebページの重要度を計算)
Use Case 4:グラフマイニング
20 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
なぜJubatus?
• ビッグデータ∧深い分析∧ リアルタイムを必要とするシーンとは
• 正解(厳密な分析結果)を明日まで待てない • 人間の判断(意思決定ルート)を介在したアクションでは遅い
• μ秒単位での自動判断〆 予め与えられた決定的ロジックでなく〃状況の変化を速やかに反映して自動判断(⇒ 機械学習)
• データ量で全体を見通し,分析精度,誤差の幅を容認: 誤差,危険率を伴う自動判断が適用可能な領域
• たとえ誤差が許容範囲を超えても〃次の瞬間には〃よい判断材料を期待できる安心感がバリュー
• ビッグデータの相乗効果:特定領域に閉じず,異なるドメインにまたがる新たな関係性の分析・発見へ
• 空間方向⇒ 時間軸方向の広がり
(クロスドメインデータが入手できれば)
21 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
Jubatusの仕組み
22 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
• オンライン機械学習アルゴリズム • 分類(PA,CW,AROW,NHERD, perceptron)
• 回帰(PA)
• 推薦々近傍探索(転置インデックス, Locality sensitive hash, min-hash)
• グラフマイニング (Centrality, Shortest-path)
• 統計( Sum〃stddev, Max〃min〃entropy, moment)
• 分散処理フレームワーク • 機械学習並列同期(UMA: Update-Mix-Analyze)
• スケーラビリティ
• 耐故障性(Consistent hashing)
• その他 • 特徴ベクトル変換
• 拡張容易なプログラム構造(UMA, IDL, 各種プラグイン)
ソフトウェア構成
23 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
• 分類、線形回帰
• 入力Xに対して出力Yを当てる/予測する
• Yが離散値:分類、Yが連続量:線形回帰
機械学習:分類・線形回帰
タスク例 入力X 出力Y
メール分類 メール スパム or 普通 or 重要など
Twitterの分類 個々のつぶやき〆Tweet
関連企業名、市町村、 商品、サービス、番組
広告のコンバージョン予測
アクセス履歴、広告 クリックするか
監視カメラ解析 監視カメラ画像 部屋の状態
電力使用量 パケット 各サーバの電力使用量
24 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
• 入力は特徴ベクトル (←生データを変換)
• 各特徴量にクラスごとの重みがある
• 重みの総和(内積)が各クラスの得点となる
機械学習のしくみ:分類
クラス1: スポーツ
クラス2: グルメ
クラス3: 政治
カレー -1 2 -1
仕分け -1 -1 2
ライス -1 1 1
野球 2 -1 -1
スコア(内積)
0 2 -1
特徴ベクトル
スコア最大
入力:「野球の後のカレーライスはおいしい。」
カレー 1
ライス 1
野球 1
々々々 0
重み
機械学習で重みを自動調整
25 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
• 入力は特徴ベクトルなど(アクセス・購入履歴など)
• Row間(ユーザ間)の近さ(類似度)を計算
機械学習のしくみ:推薦(近傍探索)
アイテム1 アイテム2 アイテム3 ... アイテムX
Aさん ○ ○ ○
Bさん ○ ○
Cさん ○ ○ ○
Dさん ○ ○ ○
入力:「Bさんがアイテム2を買った」
類似度小
類似度中
類似度大
出力:「BさんはDさんと購入パターンが一番似ています。お勧め商品はアイテム3です」
26 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
• 入力はノードとエッジ
• 中心点、最短経路を求める
• 中心点
• Webページの重要度(PageRank)、Twitterのユーザ影響度
• 下図の例〆E (他ノードからのリンクが多い、など)
• 最短経路
• ネットワーク最適ルーティング
• 下図の例〆KEの最短はKIE
機械学習のしくみ:グラフマイニング
A
B
C
E
D
H
I
F
K
J
G
27 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT 方式比較:バッチ処理
• ストック型ビッグデータ ⇒ ためて一気に計算
• 定期便方式 ⇒ 開始・終了が明確
• データの鮮度 ⇒ 今あつめたデータは次の便まで待ってから
データ 処理
データ 処理
データ 処理
データ 処理
KVS
Map
Reduce
データ入力
中間処理 結果 r0
中間処理 結果 r1
中間処理 結果 r2
中間処理 結果 rn
集約処理 結果 R
分析アプリ
時間 T
処理結果 の鮮度
バッチ処理の間隔
々有意な分析結果が得るためには〃reduce完了まで待つ〄
バッチ系処理
ビッグデータ ソース
々解析の鮮度〆 新たに蓄えたデータは次の便まで解析が待た
される〄
データ在庫量がビッグ
28 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
リアルタイム処理 フロー型ビッグデータ⇒ ためずに小まめに計算
24 x 7 安定動作 ⇒ 開始々終了がない
各サーバが自律的に分析〆 任意の時点で〃自身の分析を提示可能
分析の鮮度 ⇒ 今〃取り込んだデータを待たずにすぐ消化
Update
Mix
mixed
diff
diff
mixed
A N A L Y Z E
Update
Mix
mixed
diff
diff
mixed
A N A L Y Z E
Update
Mix
mixed
diff
diff
mixed
A N A L Y Z E
データ流量がビッグ データソース
時間 T
バッチ処理
理想的な分析鮮度
Jubatus (MIX方式)
解析精度の 要件下限
29 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
• update: 更新系クエリ,Big Dataの追加・変更,非同期 • mix: 分散サーバ間のゆるやかな分析結果の共有 • analyze: クライアントからの参照系クエリ,分析リクエスト • 解析ロジックに非依存な共通モデル ⇒ 使いやすいフレームワークへ
update-mix-analyze (UMA)
Update
Mix
mixed
diff
diff
mixed
A N A L Y Z E
Update
Mix
mixed
diff
diff
mixed
A N A L Y Z E
Update
Mix
mixed
diff
diff
mixed
A N A L Y Z E
データソース
mixed 領域
diff領域 ・Updateで自学自習
する学習モデルを保持
・Mixで勉強会.
学習モデルの共有
・Analyzeで全体見解
+個人見解を返す
答え合わせ
自学自習
30 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
• User process
• Jubatus client APIを用いてAP実装
• データ収集、プロキシ経由での学習々類推要求の送信
• Proxy process
• サーバへの要求転送
• サーバ数、サーバ稼働状況などをクライアントには意識させない
• Server process
• 学習々類推、およびサーバ間も学習モデル同期を実施
• サーバを追加することによって線形に性能向上
• Zookeeper
• 分散サーバ間のコーディネーション(サーバ死活監視、リーダ選択など)
Jubatus 分散処理アーキテクチャ
User processes Proxy processes
Server processes
ZooKeeper
API
API
API
MIX
(learning model
synchronization)
Data
31 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
クライアントAPI
クラス メソッド例
分類 学習要求 (X→Yを教える)
分類要求 (X→Yを解かせる)
回帰 学習要求 (X→Yを教える)
類推要求 (X→Yを解かせる)
推薦
行データ(userID/Items)の更新々削除(教える)
類似行の検索 (解かせる)
推進アイテムを抽出 (解かせる)
統計 データの更新
合計、偏差、最大々最小、エントロピー、モーメント計算
グラフ ノード生成々削除々更新々参照
エッジ生成々削除々更新々参照
中心性スコア計算
2ノード間最短経路計算
32 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
Data conversion
32
文書 (0, 1, 0, 2.5, -1, …) (1, 0.5, 0.1, -2, 3, …) (0, 1, 0, 1.5, 2, …)
特徴ベクトル
グラフィカルモデル
分類/回帰〆SVM, LogReg, PA, CW, ALOW, Naïve Bayes,
CNB, DT, RF, ANN, …
クラスタリング〆K-means, Spectral Clustering, MMC,
LSI, LDA, GM, …
構造分析〆HMM, MRF, CRF, …
画像
センサ情報
行動履歴
分野に依存しない 特徴を捉えた抽象化されたデータ
様々な手法々理論を 適用可能
特徴抽出 (整形・特徴ベクトル変換)
特徴分析
33 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
• 入力データの整形と特徴ベクトルへの変換を容易にする
• 整形(フィルタ)
• HTMLタグを取り除く
• 年齢を数え年に変換する、など
• 特徴ベクトル変換
• 区切り • スペース区切り/形態素解析/N-gramなど
• 重み付け • 重みなし/TFIDFなど
• 外部変換モジュールを組み込み可能 • 例〆画像向け特徴ベクトル変換、Pcap用特徴ベクトル変換など
Data conversion
34 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
Data conversion
•特徴ベクトル変換例
Bigramをn=2のngramとして定義する
Key=user/name は文字列データとして扱う
Key=message はbigramとして扱う
Key=message-detagged はスペース区切りで扱う
Key=user/age はそのままの数値として扱う
Key=user/income はlogをとる
Key=user/age_kazoe はそのままの数値として扱う
35 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
• Jubatus OSS サイト
• October 2011より公開
• Web site http://jubat.us
• Twitter @JubatusOfficial
• Github https://github.com/jubatus/jubatus
オープンソース
サポート解析 エンジン
説明 例
第1版 分類 与えられたデータをカテゴリに分類 スパムメール判定 Twitterのカテゴリ分け
第2版
推薦 与えられたデータと似ているデータを推薦
ECサイトの商品お勧め 検索サイトの連動広告
回帰 与えられたデータに対する出力の値を推定 消費電力値予測 株価予測
統計 データの頻度、標準偏差、最大値、最小値などの統計情報を集計
センサー監視 データ異常検知
第3版 グラフマイニング 与えられたグラフ構造から中心点や最短経路を抽出
ソーシャルコミュニティ分析 ネットワーク構造分析
36 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
性能例 推薦 (近傍探索)
【Big Data】&【深い分析】 3000万ユーザ数の場合でレスポンス0.1秒推薦処理可能(Mahoutの10倍高速)
購入要求、検索など
お勧め
アイテム1
アイテム2
アイテム3
... アイテムX
A さん
○ ○ ○
B さん
○
... ○ ○
Xさん ○ ○
【Big Data】& 【リアルタイム】 1サーバあたり10万回/秒の更新が可能
37 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT 性能検証 (分類)
スループット、スケーラビリティ
- スループット:1サーバ 約20万特徴/秒
- スケーラビリティ:サーバ台数に対しほぼ線形に向上
Twitterの例:
スループット:6,000ツィート/秒 (特徴量30程度)
全世界Twitter処理に必要な台数:PC2台 (ピーク時8,000 tweet/秒)
学習精度
- バッチ処理学習と比べ遜色ない学習精度を達成
- 学習時間に応じて精度は向上
サーバ並列度を上げることでより短時間で
高い精度を達成
サーバ台数 vs スループット 学習時間 vs 精度
マシン台数
バッチ処理学習精度
0
50
100
150
200
250
300
350
0 2 4 6 8 10
12
14
16
18 Number of servers
(万)
スル
ープ
ット
[特徴
/秒
]
学習精度「%」
1サーバで 20万単語/sec÷ 30単語/ツィート = 6700ツィート/秒 16サーバで
300万単語/sec÷ 30単語/ツィート = 10万ツィート/秒
10秒で約93%の正解率
38 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
まとめ
• ビッグデータを深くすばやく分析するJubatusの目標,設計思想
• Jubatusを活かす適用領域の紹介
• 技術的特徴: MIX機構
• これまでの到達点として,5つの機械学習エンジンを共通的に支える基盤(update-mix-analyze)として強化・検証
39 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT •Join us!
•http://jubat.us/ 仲間,募集中
40 © 2012 NTT Software Innovation Center
NTT CONFIDENTIAL
開示先: サイバー関西プロジェクト Copyright © 2012 NTT
参加,絶賛募集中!
学生向けデータ分析アイデアコンテスト