ビッグデータのキーワードに
振り回されないために

ビッグデータの時代に必要な技術は多くある。我々はそれぞれの技術が何をしてくれるのか、その限界は何かを正しく知らねばならない。さまざまな専門用語が飛び交っているが、技術のキーワードだけに振り回されてはならない。

 

Hadoop/MapReduce

 Hadoop(ハドューブ)やMapReduce(マップリデュース)は、多数のサーバーの上で巨大なデータを並列に処理するソフトウェア・フレームワークである。ビッグデータと関連してよく耳にする言葉である。その意味では、「ビッグデータ」とは、狭義では「Hadoop/MapReduce(または大きなクラスタ)で解く問題」と言えそうだ。しかし、このような技術で解ける問題は意外と少ない。理由は2つある。

1.非常に大きなデータがあった場合、ランダムサンプリングを行えば母集団の統計的性質をきわめて正確に推定することができる。したがって、もし手元の計算機で手に負えないような大きなデータが得られた場合には、まずはランダムサンプリングを行うべきである。

2.線形な計算量を必要とする分析アルゴリズムがあったとしよう。データ量が100~1012バイト程度のものは、単一の計算機で解けるだろう。一方、1016バイトを超えるものは、1000台のクラスタでHadoopを動かしたとしても解くのは難しいだろう。だから、Hadoopで解けるのは、データ量がたまたま1013~1015バイトくらいに落ちてくれる問題に限ることになる。

 ランダムサンプリングがうまくいかない問題とは、対象の特性値(パラメターp)の数がきわめて多いために、大量のデータを必要とするようなものである。このような問題は新NP問題と呼ばれる[1]。例えば遺伝子のマイクロアレイ解析や、大量の消費者の個別消費行動モデルを推定するような問題がこれにあたる。

機械学習

 ここ10年近くに渡って、大量のデータから法則を学習する統計的機械学習の技術が急速に進化している[2]。Googleは機械学習をクラウド上で実行するサービスを提供している[3]。また、日本のソフトウェア・ベンチャー企業であるPreferred Infrastructure社は分散機械学習を可能にするオープンソースのフレームワーク「ユバタス」を開発している[4]。機械学習のアルゴリズムは多種多様であり、与えられた問題に対してどの手法を適用すべきかについては、まだ多くの定式化されていない知識が必要である[5]

データ同化

 機械学習などデータに基づく分析、すなわち帰納的な推論だけでは、過去に何が起きたか、現在何が起きつつあるかについては教えてくれるが、将来何が起きるかについては教えてくれない。将来の予測を行うためには、モデルに基づくシミュレーション、すなわち演繹的な推論が必要である。シミュレーションは、得られた現実のデータに基づいて常に修正を加えていかなければならない。これが「データ同化」[6]という手法で、現在もっともホットなトピックの一つである。

新アーキテクチャ

 マッキンゼー・レポート[7]によれば、ビッグデータのほとんどは“Exhaust Data”すなわち、他の事業活動の副産物として得られるデータである。これらのデータは、量は膨大だがビットあたりの価値単価は低い。このため、すべてのデータをデータセンターへ送り格納・処理するのはコストが高い。我々はデータのほとんどがネットワークのエッジに格納される「エッジ・ヘビー・データ」の時代が来ると予測する[8]。データではなく処理が移動するアーキテクチャであり、分散データ・マイニングを可能にするプロトコルがプラットフォームの機能として提供されるようになるだろう。前述の「ユバタス」は、この流れのものと捉えることができる。

プログラミングモデル

 物理世界から得られるデータは本質的に欠損値や誤差を含んでいる。残念ながら現在主流のプログラミング言語では、このようなデータを自由に統計処理することは一筋縄ではいかない。MATLABの統計パッケージやRなどでは、一部欠損値などの処理が組み込まれている。今後は、欠損値や誤差も含め、データを確率分布として表現するプログラミングモデルが登場するだろう。

 


[参考文献]
[1]統計関連学会連合理事会および有志,
我が国の統計科学振興への提言」,
http://www.jfssa.jp/TokeiKagakuShinkou0702.pdf, 2007.
[2]Christopher Bishop, Pattern Recognition And Machine Learning, ISBN-13: 978-0387310732, 2006, 邦訳『パターン認識と機械学習 上/下 - ベイズ理論による統計的予測』ISBN-13: 978-4431100133, 978-4431100317, シュプリンガー・ジャパン株式会社, 2007.
[3] Google, Google Prediction API, http://www.google.com/intl/ja/enterprise/cloud/prediction/.
[4]Jubatus: Distributed Online Machine Learning Framework, http://jubat.us/.
[5]Pedro Domingos, “A Few Useful Things to Know About Machine Learning,” Communications of ACM, Vol.55, No.10, 2012.
[6] 樋口知之, 『データ同化入門』, 朝倉書店, ISBN-13: 978-4254127867 , 2011.
[7]McKinsey Global Institute, “Big data: The next frontier for innovation, competition, and productivity,”
http://www.mckinsey.com/insights/mgi/research/technology_and_innovation/big_data_the_next_frontier_for_innovation, 2011.
[8]丸山宏, 岡野原大輔, 「Edge-Heavy Data: CPS・ビッグデータ・クラウド・スマホがもたらす次世代アーキテクチャ」, GICTF年次総会特別講演, http://www.gictf.jp/doc/20120709GICTF.pdf, 2012.