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