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




         ⽐比⼾戸  将平
    株式会社Preferred Infrastructure
       @ComSys2012
Jubatus
l  NTT  SIC*とPreferred  Infrastructureによる共同開発
l  2011年年10⽉月よりOSSで公開  http://jubat.us/




      分散並列列          リアルタイム               深い解析
  *  NTT研究所  サイバーコミュニケーション研究所
    ソフトウェアイノベーションセンタ
                            2
⽬目次

l    会社紹介


l    機械学習の概要


l    Jubatus開発の背景


l    応⽤用例例とデモ


l    Jubatusの仕組み


l    Jubatusの未来


                     3
Preferred Infrastructure (PFI)
  最先端の技術を最短路路で実⽤用化
l  東⼤大発ソフトウェア開発ベンチャー
l  創業:2006年年3⽉月
l  主な製品
    l  Sedue: 検索索&レコメンドエンジン

    l  Bazil: 使いやすい機械学習ツール
                                    代表取締役   取締役副社⻑⾧長
    l  Jubatus: ⼤大規模オンライン分散機械学習     ⻄西川徹    岡野原⼤大輔



      情報検索索(IR)                    分散システム



       ⾃自然⾔言語処理理                    機械学習
                        4
⽬目次

l    会社紹介


l    機械学習の概要


l    Jubatus開発の背景


l    応⽤用例例とデモ


l    Jubatusの仕組み


l    Jubatusの未来


                     5
クラス分類と回帰

l    ⼊入⼒力力xに対し、出⼒力力yを推定する
       l  正解データ{(x, y)}を利利⽤用しxからyの関数を学習


タスク                ⼊入⼒力力x         出⼒力力y

メール分類              メール            スパム or 普通 or 重要等

Twitterのユーザー分析     Tweet          ユーザーの性別、職業、年年齢など

電気使⽤用料料需要の予測       パケット           各サーバーの予測使⽤用量量(連続値)

広告のコンバージョン予測 アクセス履履 クリック、コンバージョンするか
             歴、広告
監視カメラ解析            監視カメラ 部屋の状態(明かりがついている?
                   画像    ⼈人がいるか?など)

                            6
レコメンド

l    レコメンデーションを実現する技術
      l  近傍探索索ベース:特徵ベクトルが似ている⼈人を探す

      l  協調フィルタリングベース:2部グラフ上で近い⼈人を探す




                       7
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	
                              不不適切切動作
機械学習の応⽤用




 クレジットカード不不正利利⽤用検知        ネットワーク攻撃/侵⼊入検出



                              IBM Watson
      IBM Watson                   +
                               Wellpoint




 Jeopardy!でクイズ王に勝利利   9       医療療診断⽀支援
⽬目次

l    会社紹介


l    機械学習の概要


l    Jubatus開発の背景


l    応⽤用例例とデモ


l    Jubatusの仕組み


l    Jubatusの未来


                     10
もう1つの潮流流:ビッグデータ!
⼈人間系
       l    テキスト系  
              l  新聞/Web/ブログ/Twitter

       l    イベント系列列
              l  カード利利⽤用/治療療履履歴

       l    メディア系  
              l  ⾳音声/画像/動画

       l    ネットワーク系
              l  パケット流流量量/種類/内容

       l    M2Mセンサー系  
              l  ヒト/⾞車車/⼯工場監視

機械系

                                 11
ビッグデータ分析プロセス
                       蓄積             分析
                            NoSQL
Volume     テキスト



           バイオ
Variety
                             Hadoop

           メディア
                                    Complex
Velocity
                                    Event
                  12                Processing
           M2M
データ分析から深い解析へ

       分析                       深い
                                解析
 集計          ⾒見見える化        予測      カテゴリ分類




 検索索     ルール処理理            レコメンド     異異常検知

SQL    DWH       BI          機械学習
                             (Machine
CQL    CEP     M/R    13     Learning)
ビッグデータへの機械学習応⽤用事例例:
     ⽶米国の巨⼤大Web企業から他業種へ広がりつつある
     l  Google
          l  検索索アルゴリズム(PageRank)

          l  広告最適化

          l  SEO対策
                                                                                             バイオ
     l  Facebook
          l  広告最適化

          l  知り合い候補レコメンド

     l  Amazon                                                     ヘルスケア
          l  おすすめ商品
                                                                                            メディア
     l  Twitter
           l    トレンドワード検出
           l    知り合い候補レコメンド
                                                                 M2M
                                                         14
A.  Barua,  D.  Mani,  R.  Mukherjee,  “Measuring  the  Business  Impacts  of  Effective  Data”,  
The  University  of  Texas  at  Austin  2010
代表的なビッグデータ処理理基盤: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,  サービスでは未登場
これからのビッグデータ解析技術:3つのキー要素

1.   機械学習などの深い解析技術
    l  決まりきったレポーティングやルール処理理では不不⼗十分
    l  因果関係分析や状況に応じた予測・判断が重要
2.  ⼤大規模データへの対応
    l  DBに保存して貯めることが難しいデータ量量
    l  DBから再度度読み込んで処理理することが難しいデータ量量
3.  リアルタイム/オンライン処理理
    l  迅速な分析と対応が必要なアプリケーションの出現
    l  データ取得時点でストリーム処理理することが必要


                          リアルタイム
      深い解析     ⼤大規模化
                          /オンライン
                  16
なぜJubatusが必要なのか

l  既存の分散並列列処理理  (MapReduce/Hadoopなど)
    l  スケールアウト構成による性能向上、耐障害性

    l  基本的にバッチ処理理、解析結果はすぐ返ってこない

    l  計算モデルの⾃自由度度が⾼高い分オーバーヘッドも⼤大きい

l  既存のオンライン  /  ストリーム処理理  (CEPなど)
    l  到着したデータをその場で処理理して解析し、結果を出⼒力力する

    l  多くは単純な処理理しか⾏行行えない


             ◯           1. ⼤大規模化

             ✕ 2. リアルタイム/オンライン

             ✕           3. 深い解析
                    17
Jubatusの先進性と差別化要因:
⼤大規模/分散並列列かつオンライン/リアルタイム
 • Structured  Perceptron オンライン
                                      2011年年現在
 [Collins,  EMNLP  2002]    (リアルタイム)
 • Passive  Aggressive  /            存在しなかった
 MIRA  2004〜~
                                       この分野に
 • online-‐‑‒learning  library
   [岡野原,  2008]                       フォーカス!

⼩小規模                                       ⼤大規模
 単体                                       分散並列列
 WEKA
     1993-‐‑‒
 SVM  light                                    Mahout
             1998-‐‑‒                              2006-‐‑‒
                        バッチ
                         18
Jubatusの優位性:分散オンラインかつ深い解析

 l    従来のデータ解析システムと⽐比較したJubatusのアドバンテージ

                 Jubatus Hadoop          CEP RDBMS
          ⼤大規模     ○        ◎            対象外
                                                 ○
         データ蓄積   外部DB連携 HDFS/HBase             中規模まで

          バッチ
                    ○
                                  ○
                                          ✕     ◎
         機械学習                   Mahout          Rなど
         ストリーム
          処理理
                    ○             ✕      ◎       ✕

          分散                      ○
         機械学習      ◎            Mahout
                                          ✕      ✕
重要度度:
 ⾼高い     オンライン
         機械学習      ◎              ✕       ✕      ✕
                         19
これまでのビッグデータ処理理基盤の普及

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
⽬目次

l    会社紹介


l    機械学習の概要


l    Jubatus開発の背景


l    応⽤用例例とデモ


l    Jubatusの仕組み


l    Jubatusの未来


                     21
Jubatus Twitterデモ

l  会社名に紐紐付くキーワードを⾃自動的に学習し関連ツイートを分類
l  発⾔言者の属性(性別・年年代)や特徴的な固有名詞なども抽出




                    22
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
Jubatusの展開:NEDO IT融合基盤技術に採⽤用
  l    ⾼高速化と多様なデータ対応を⽬目指して来年年度度まで開発
  l    都市交通・農商⼯工・ヘルスケア分野の実証プロジェクトと連携

        NEDO: IT融合新産業を⽀支えるデータ処理理基盤に関する先導研究
        「リアルタイム⼤大規模データ解析処理理基盤の研究開発」
データ量	
                                  求
                                     要
                                 ム性の
                             イ
                          ルタ
                         リア                                公共映像監視	
                    ビ アな      成
                +シ      械 が⽣生                       都市交通
                   然 か機                  ネットワーク	
                +⾃自    た
                 み  出し
              が⽣生 タ
           ⼈人間 デー
               グ
            ビッ             ヘルスケア        農商⼯工

                 テキスト	
                                                     開発計画	

                                 24
⽬目次

l    会社紹介


l    機械学習の概要


l    Jubatus開発の背景


l    応⽤用例例とデモ


l    Jubatusの仕組み


l    Jubatusの未来


                     25
Jubatusが現在サポートする機械学習アルゴリズム

l    分類(+マルチクラス対応)
      l  Perceptron / PA / CW / AROW / NHERD

l    回帰
      l  PA-based regression

l    近傍探索索
      l  LSH / MinHash / Euclid LSH

l    レコメンデーション
      l  近傍探索索ベース

l    外れ値検知* (2013年年1⽉月リリースのv0.4.0)
      l  近傍探索索ベースのLOFアルゴリズム

l    グラフ解析
      l  最短路路/ 中⼼心性(PageRank)


                                  26
分散リアルタイム機械学習は⾃自明でない
分散処理理とオンライン               オンラインでモデル更更新=頻繁な同期操作
学習のナイーブに組み合わせ

サーバー1    L            L            L             L


             Update




                          Update




                                        Update




                                                     Update
サーバー2    L            L            L             L



サーバー3    L            L            L             L
                                                              time



         頻繁な
                                           同期操作
        モデル更更新
    オンライン機械学習             相反
                           27	
                                       分散アルゴリズム
    に必須                                に必須
分散オンライン機械学習を実現するコア技術:
緩やかなモデル情報の共有
l  Jubatusは各サーバーのモデル情報を「緩やか」に共有する
l  データ⾃自体は共有せず、モデルのみ共有する
     l  既存システムと違う割り切切り

l  全サーバー間で同時刻に同じモデルが存在することは保証しない
     l  サーバー毎に解析が(実⽤用上問題が無い程度度に)異異なることを許容

     l  時間が経つにつれ、モデル間の情報は共有されていく


                               統合    統合    統合
 モデル     モデル       モデル
                              モデル   モデル   モデル




         UPDATE         MIX          ANALYZE
      データを分散して学習     モデルのみ共有        分散して処理理

                         28
多クラス分類におけるモデル


                    w1



                    w2



                    wn


 多クラス分類では個々のサーバーが持つウェイトが
 学習結果のモデルにあたる

               29
近傍探索索におけるモデル

              1   011010010
              2   110001100



              3   110010111
              4   000100101



              5   110101011
              6   000010110



近傍探索索では転置インデックス・LSH・Min Hashを⽤用いてデータ点を
ビット列列化したものが学習モデルである。
                     30
UPDATE

それぞれのサーバーは初期モデルからスタート

訓練データは1  or  2台のサーバーに送られる

ローカルな訓練データを元に、各々のモデルがリアルタイムに学習される

訓練データそのものは共有されない


                            Local
                                    Initial
                            model
                                    model
                              1

                            Local
                            model   Initial
                                    model
                              2


                    31
MIX

それぞれのサーバーはモデルの差分のみを送る

モデルの差分はマージ後各サーバーに配布される

モデルの差分のみがサーバー間でやり取りされる




Local           Model      Model
        Initial                             Merged Initial     Mixed
        model =	
model -	
                                              diff +	
       =	
                  diff      diff
                                                     model     model
  1                1         1    Merged
                             +	
 =	
 diff
Local             Model    Model
        Initial                             Merged Initial     Mixed
model -	
        model
                =	
 diff    diff
                                              diff +	
                                                    model    =	
                                                               model
  2                  2       2


                                   32
ANALYZE

テストデータはランダムにサーバーに送られる

サーバーは⾃自分が現在持つモデルをテストデータに適⽤用し予測を⾏行行う

サーバー側では結果の集約は⾏行行わない




                                  Mixed
                                  model


                                  Mixed
                                  model


                  33
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
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
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
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
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
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
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
JubatusのMIX付き分類モデル


                     w1            w

                          MIX
                     w2            w



                     wn            w

                                1
                           w=     ( w1 ++ w n )
 各サーバーが個別にオンライン学習し              n
 MIX時に重みを平均化する

               41
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
⽬目次

l    会社紹介


l    機械学習の概要


l    Jubatus開発の背景


l    応⽤用例例とデモ


l    Jubatusの仕組み


l    Jubatusの未来


                     43
ビッグデータの⾏行行き着く先:
  そのデータ、集められますか?貯められますか?
                                               【次世台シーケンサー】
  【監視カメラ】                                          ゲノムデータなど
動画、静⽌止画などの
    画像データ      




        【モバイル】
  ⾳音声データ、位置情報、                                【⽣生体情報モニター】
 メールのテキスト情報など                                     ⼼心拍数、⾎血圧、体温など




  丸山宏, 岡野原大輔 Edge-Heavy Data: CPS・ビッグデータ・クラウド・スマホがもたらす次世代アーキテクチャ
  GICTF総会 特別講演 2012, http://www.gictf.jp/doc/20120709GICTF.pdf
                                44
Edge-Heavy Data:
データ価値の多くはエッジ(縁)に存在する
l センサデータの増加により、データの総価値は増加する
l その⼀一⽅方、データの価値の密度度⾃自体は下がりつつある
      l    現在のビッグデータの殆どは排気データ(exhaust  data)
            ※排気データ:他の事業活動の副産物として⽣生成されたデータ
l 多くのデータが収集されるが利利⽤用されない
l 利利⽤用を⾒見見込んで投機的に収集しても割に合わない
l 解析することは割に合わない場合が多い
      l    コスト:ネットワーク,  ストレージ,  個⼈人情報管理理
l    類似コンセプト:  Fog  computing(Cisco),  Dispersed  Cloud  (EMC)


      推測:多くのデータは収集された地点で管理理、処理理され  
          濃縮された重要な情報(モデル)のみがやりとりされる
                                45
Edge-Heavy Dataにおける機械学習

l  データを解析するために中央に集められない
     l  データを伝送して蓄積するコストが⾼高過ぎる

     l  アプリケーションによっては解析までの時間が許容できない

l  例例えばEdge-heavy dataで必要になるリアルタイム異異常検知
     l  例例:⼯工場システムの故障予知検知、⾃自動⾞車車のヒヤリハット検知

     l  データを削減することが原理理的にできない




バッチ処理理:⼤大きなタイムラグ          リアルタイム処理理:⼩小さな遅延

                     46
Edge-Heavy Dataに向けて(1):
    Jubatus on OpenBlocks (ARM)




                                               47	
http://obdnmagazine.blogspot.jp/2012/11/jubatusopenblocks-ax3_21.html
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.
Jubatusの未来:
PFIはこれからも最先端の技術を最短で実⽤用化します
l  ビッグデータ分析はより深い知⾒見見を得られるビッグデータ解析へ
l  鍵となる機械学習技術のビッグデータとの繋がりは道半ば
l  さらに将来を⾒見見据えると重要になる2つの技術
    l  リアルタイム(Jubatus)&トレーサビリティ(Bazil)




                   49
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

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