MapReduceによる大規模データを利用した機械学習
Upcoming SlideShare
Loading in...5
×
 

MapReduceによる大規模データを利用した機械学習

on

  • 33,146 views

Hadoop Conference Japan 2011での講演資料

Hadoop Conference Japan 2011での講演資料

Statistics

Views

Total Views
33,146
Views on SlideShare
18,555
Embed Views
14,591

Actions

Likes
60
Downloads
379
Comments
0

26 Embeds 14,591

http://d.hatena.ne.jp 6484
http://research.preferred.jp 4136
https://d2k8l6v2fkfjas9nqhsgletiuinl84j3-a-sites-opensocial.googleusercontent.com 1511
http://diary.overlasting.net 959
http://d2k8l6v2fkfjas9nqhsgletiuinl84j3-a-sites-opensocial.googleusercontent.com 794
http://blog.restartr.com 368
http://seikoudoku2000.hatenablog.com 75
https://twitter.com 70
http://webcache.googleusercontent.com 60
http://shiumachi.hatenablog.com 39
http://s.deeeki.com 20
http://storage.zetta.flab.fujitsu.co.jp 14
http://www.lab.nbgi.jp 13
http://a0.twimg.com 9
http://kumano.zetta.flab.fujitsu.co.jp 7
http://twitter.com 6
http://www.mefeedia.com 5
http://paper.li 5
http://v.restartr.com 4
http://translate.googleusercontent.com 3
http://rssc.dokoda.jp 2
https://si0.twimg.com 2
http://news.google.com 2
http://wcdbyip.appspot.com 1
http://b.hatena.ne.jp 1
http://www.slideshare.net 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

MapReduceによる大規模データを利用した機械学習 MapReduceによる大規模データを利用した機械学習 Presentation Transcript

  • MapReduceによる大規模データを利用した機械学習
    株式会社Preferred Infrastructure
    岡野原 大輔
    hillbig@preferred.jp@hillbig
    2011 2/22(火) Hadoop Conference Japan 2011
  • 自己紹介
    株式会社 Preferred Infrastructureフェロー, 研究開発チームリーダー
    専門分野
    自然言語処理 (情報理工学博士)
    携わった分野は形態素解析、文書分類/クラスタリング、専門用語抽出、評判分類、情報抽出
    機械学習,統計処理・圧縮データ構造,データ圧縮
    主な業務内容
    有用な技術を新規開発・発掘しプロダクトに反映
    他社との共同研究開発
    Hadoopを利用したデータ解析の案件も数件
  • 発表概要
    MapReduceと機械学習
    機械学習でできること
    Apache Mahout
    大規模並列分散処理の最前線
    並列分散の機械学習
    今後注目の技術
    Dremel:対話的なアドホッククエリ
  • 発表概要
    MapReduceと機械学習
    機械学習でできること
    Apache Mahout
    大規模並列分散処理の最前線
    並列分散の機械学習
    今後注目の技術
    Dremel:対話的なアドホッククエリ
  • 機械学習
    データから有用な規則、ルール、知識表現、判断基準などを抽出する [wikipedia]
    様々な分野の問題に利用可能
    レコメンデーション / クラスタリング / 分類 / 市場予測 / 評判分析 / 情報抽出 / 文字認識 / ロボット・・
    データがあるところ、どこでも使える
  • 機械学習の普及の要因:タスクと手法の分離
    各タスク固有の問題を、抽象化し学習手法とタスクを分離することができた
    様々な手法・理論を適用可能
    分野に依存しない特徴を捉えた抽象化されたデータ
    文書
    分類/回帰:SVM, LogReg, PA, CW, ALOW, Naïve Bayes,CNB, DT, RF, ANN,…
    クラスタリング:K-means, Spectral Clustering, MMC, LSI, LDA, GM, …
    構造分析:HMM, MRF, CRF, …
    (0, 1, 0, 2.5, -1, …)
    (1, 0.5, 0.1, -2, 3, …)
    (0, 1, 0, 1.5, 2, …)
    信号
    特徴ベクトル
    画像
    グラフィカルモデル
    行動履歴
  • 機械学習とMapReduce (1/2)
    解析対象データの急激な増加
    解析アルゴリズムは最低でも線形の計算量が必要だがそれでも不十分.データ増加量が上回る
    世界で作成されたデータ量は2009年 0.8 ZB* (前年比62%増)2020年 35 ZB (予想) [Digital Universe 2010]ZB = 10億TB = 1兆 GB
    機械学習処理の分散並列化は今後必須
  • 機械学習とMapReduce(2/2)
    MapReduce上で機械学習を行う
    機械学習がMapReduce向けでなくても、分散並列システムを一から作り直すよりはるかに生産的
    多くの機械学習問題がデータ毎に求まる関数値の和を求める問題に帰着
    目的関数の期待値、勾配などモーメント計算など
    自明な並列性、MapReduceと相性が良い
    多くがMapReduceの枠組みで実現可能
    線形回帰,K-Means, ロジスティック回帰, SVMなど多くの手法が実装可能 [C.T.Chu, et al. NIPS 06]
  • Apache Mahout
    Hadoop上で動く機械学習ライブラリ
    Apacheライセンスでありビジネスに使用可能
    スケーラブルであることを最優先
    百台超でも動くように
    Apacheプロジェクトにおいて開発.盛んに新しい手法が取り込まれている
    新しいコードも多く、品質は様々
  • Mahoutがサポートする手法 (1/2)
    クラスタリング
    Canopy Clustering / (Fuzzy) K-平均法
    期待値最大化法
    平均シフトクラスタリング
    ディリクレ過程クラスタリング
    Latent Dirichlet Allocation
    パターンマイニング
    Parallel FP growth algorithm
    文字列データ処理
    連語抽出
  • Mahoutがサポートする手法 (2/2)
    分類
    ロジスティック回帰
    単純ベイズ法 / Complementary 単純ベイズ法
    サポートベクトルマシン
    パーセプトロン / Winnow
    ニューラルネットワーク
    ランダムフォレスト
    Restricted Boltzmann Machine
    行列演算
    特異値分解
    主成分分析・独立成分分析(次バージョン)
  • Mahoutの実行感想
    数台から百台強での実験結果からの感想
    パフォーマンスに大きな問題はなかった
    EC2上で構築
    各挙動についてドキュメントは不足しているところも多く、詳細の挙動についてはコードを参照する必要があった
    細かいパラメータ調整とか手法の変更は難しい
  • 本日の概要
    MapReduceと機械学習
    機械学習でできること
    Apache Mahout
    大規模並列分散処理の最前線
    並列分散の機械学習
    今後注目の技術
    Dremel:対話的なアドホッククエリ
  • 大規模分散並列+機械学習
    Google, MS, Yahoo!などを中心に大規模分散並列による機械学習が進む
    より強力なモデルを利用した機械学習
    高精度で理論的な保障のある手法
    オンライン学習など従来並列化が困難と思われた手法も並列化可能であることがわかってきた
    Mahoutではまだ未実装のものも多い
    Hadoop上で実装は可能
    グラフィカルモデルと分散最適化を紹介
  • グラフィカルモデル
    確率変数を頂点、変数間の依存関係を枝としたグラフ構造
    ベイジアンネットワーク、MRF, CRF, HMM
    MAP推定(確率が最大になる変数割り当て)
    言語処理、情報抽出、音声認識、画像解析、遺伝子解析、構造予測で利用
  • グラフィカルモデルの分散並列処理
    グラフィカルモデルの推論は一般に困難
    近年のモデルはより巨大で密なグラフ
    数百万変数(頂点)なども扱いたい
    様々な並列化アルゴリズムが提案されつつある
    相互排他的な更新を見つけ自動的に並列で行う
    頂点を相互排他的な集合で色分け、色毎に更新
    Residual SplashBelief Propagation [J. E. Gonzalez AISTATS 2009]
    GraphLab [Y. Low et. al. UAI 2010]
  • グラフィカルモデルの分散並列による結果[S. Singh LCCC 2010]
    共参照解析:二つの言及は同じ実体を指しているか?(言及のクラスタリング)
    例:「僕と君はこの二年で4回誘われた」とCTOの太田は西川に言った。
    50 ⇒ 250台で5x高速化
    NY Times20年分の記事中に含まれる延べ100万回の人名言及の共参照解析
    250台のマシンでも線形のスケーラビリティ
  • 数値最適化の並列分散化
    多くの機械学習は数値最適化問題に帰着
    目的関数F(θ)の最小値を達成するθを求める
    例:SVM F(θ) = ∑iLhinge(θ) + Cθ2
    MapReduceを使えば簡単?
    データを分割して求め、それらの結果の平均とるか
    勾配情報だけを分割して求めるか
    どれも同じ様に見えるが実は精度に大きな違いがあり、理論的に解析可能
    4つの方法を紹介する
    結論:最後のIterativeParameterMixtureを使え
  • 方法1Parameter Mixture
    データを分割しK個のshardに配る
    shard毎にパラメータθを最適化
    最後に各shardの結果の平均をとる
    θ’ = (∑iθi)/K
    実はうまくいかない
    性能も悪いし、失敗する例も作れる
    理論的保障もできない
  • 方法2Distributed Gradient
    勾配の計算部分を並列に行う
    得られた勾配情報を利用し、更新は一台で行う
    長所
    勾配の計算に時間がかかる場合に高速化可能
    短所
    毎回パラメータを全てのshard間でやりとりしないといけない.
    収束は遅い(バッチ学習と同じ)
  • 方法3 Asynchronous Update
    全ノードで共通のパラメータθを利用
    各ワーカーは、現在のθを取得し、各担当分のデータ上でθを更新
    欠点:θにlockをとらないため、古いθを元に更新を計算してしまう可能性.実はそれでも収束保障はできるが遅い
  • 方法4 Iterative Parameter Mixture[Mann et al 09][Mcdonald et. Al. 10]
    Parameter Mixtureを少しだけ改造
    データを分割しshardに配る
    shard毎に最適化
    全部のθの平均をとる
    4. θを再度各shardに配り1から繰り返す
    これは収束証明ができ、実際に高性能
    • パラメータの通信がepoch毎のみに発生
    • 一台で求めた場合と同じ結果を同じ更新回数で得られる(線形のスケーラビリティ)
    • Shard毎にデータがばらついていても良い
  • 実験1 [K. Hall LCCC 2010]
    • クリックデータでクリックするかどうかを予測
    • 訓練例数 3億7000万
    • 200個のグループに分割し 240台のworkerでMapReduce
    • Iterative Parameter Mixtureが70倍の高速化と高性能を達成
  • 実験2 [K. Hall LCCC 2010]
    • 先ほどと同じデータ(Single-nodeではもう不可能)
    • 訓練例数 16億
    • 900個のグループに分割し 600台のworkerでMapReduce
    • Iterative Parameter Mixtureが同じく高速で高性能
  • 本日の概要
    MapReduceと機械学習
    機械学習でできること
    Apache Mahout
    大規模並列分散処理の最前線
    並列分散の機械学習
    今後注目の技術
    Dremel:対話的なアドホッククエリ
  • Dremel[S. Melnik+ VLDB 2010]
    対話的な大規模データ解析基盤
    1兆のデータに対するアドホッククエリの結果が数秒で得られる
    MRと比べて低レイテンシ、簡単な統計処理のみ
    クエリ言語はSQL
    top-k, joinなど従来の操作を用意
    各データは繰り返し有の木構造(nested representation)
    Googleで2006年から利用
    クロールデータの分析、障害分析、スパム解析、Disk I/O、統計分析などに利用
    BigQueryの裏でも利用 [wikipedia]
  • 列指向のデータ格納
    列指向DBの考えを木構造に応用
    各属性の値は木中の同じ位置毎に連続した領域に確保される
    一部の属性しかクエリに関係無い場合大部分を読まずに済む
    図は[S. Melnik+ VLDB 2010]より
  • 圧縮レコードの復元
    クエリに関係するフィールドだけを復元するオートマトンをその場で構築
    各レコードには、繰り返し情報、定義深さ情報など復元に十分な情報が付属している
    必要なデータのみを復元するためのオートマトンが生成されそれに従い復元される
  • クエリー処理アーキテクチャー
    木構造
    検索におけるクエリーサーバーと同じ
    クエリは根から葉に向かって広がる
    結果は葉から根に向かって集約しながら伝わる
    部分結果の集約なのでボトルネックにはならない
  • Dremel実験結果
    各単語の出現回数を数える
    850億レコード, 87TB, 270フィールド, 3000ノード
    MapReduce行指向  約3000秒
    MapReduce列指向  約1000秒
    Dremel       約10秒強
    一部のノードで時間がかかる
    99%の結果は5秒以内、残りは数分かかる
    列指向+必要な列だけ復元+木構造クエリサーバーで大幅な高速化が可能
  • まとめ
    機械学習+大規模分散並列は実用的
    MapReduceと相性は基本的には良い
    最新の機械学習手法も次々と分散並列化されてる
    Mahoutを利用して機械学習を試せる
    基本的な手法はサポート
    より高度な手法やカスタマイズは自分でやる必要
    MapReduceの補助にDremel
    MapReduceが苦手とする一部の列データ参照、低レイテンシのアドホッククエリ処理が可能
    将来的に高速な推論、分類に利用可能
  • 参考資料
    [R. McDonald NAACL 2010] “Distributed Training Strategies for the Structured Perceptron”, R. McDonald, and et al. NAACL 2010
    [G. Mann NIPS 2009] “Efficient Large-Scale Distributed Training of Conditional Maximum Entropy Models”, G. Mann and et al. NIPS 2009
    [Y. Low UAI 2010] "GraphLab: A New Parallel Framework for Machine Learning.“, Y. Low and et al. UAI 2010
    [J. Gonzalez AISTATS 2009] “Residual Splash for Optimally Parallelizing Belief Propagation”, J., and et al. AISTATS 2009Gonzalez
    [K. Hall LCCC 2010] “MapReduce/Bigtable for Distributed Optimization”, K. Hall., and et al. LCCC 2010
  • 参考資料(続)
    [S. Singh LCCC 2010] “Distributed MAP Inference for Undirected Graphical Models”, S. Singh and et al. LCCC 2010
    [S. Melnik VLDB 2010] “Dremel: Interactive Analysis of Web-Scale Datasets”, VLDB 2010
    LCCC 2010: NIPS 2010 Workshop on Learning on Cores, Clusters and Cloudshttp://lccc.eecs.berkeley.edu/