O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

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

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 33 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a MapReduceによる大規模データを利用した機械学習 (20)

Anúncio

Mais de Preferred Networks (20)

Mais recentes (20)

Anúncio

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

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

×