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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

32,969

Published on

Hadoop Conference Japan 2011での講演資料

Hadoop Conference Japan 2011での講演資料

Published in: Technology, Education
0 Comments
63 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
32,969
On Slideshare
0
From Embeds
0
Number of Embeds
21
Actions
Shares
0
Downloads
385
Comments
0
Likes
63
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×