ビッグデータの処理

ビッグデータと言っても、その性質から、大きくわけて3種類に分けられる。

  1. 数値化されており、統計的分析が可能なもの
  2. 数値化されているが、統計的分析が困難なもの
  3. そもそも数値化に困難が伴うもの

1.は比較的簡単なデータだ。代表的な分析手法には回帰分析があげられる。例えば、ある商品の売上(y)と顧客の年齢(x)の関係を表す式とその式に使われる係数を求める、といった分析方法だ。中学校か高校でも習う最小2乗法というのは、これの最も簡単な手法である。

ところが、このような統計分析が可能なデータは、あまりビッグデータと呼ばない傾向がある。それは、既存の方法による分析が可能であるため、データ分析者(Data Scientist)の興味をそそらないことにも原因があるようだ。データ分析者は、難解なデータであればあるほど気持ちをそそられる人種であり。そうは言っても中小企業がやりたい分析には、実際には単純な統計的分析で出来ることが非常に多い。そのため(たとえ興味の持てない単純なデータであっても)、我々のような零細システムインテグレータとしては、統計的分析を決しておろそかにしてはならない。

2.において、統計的分析が難しい原因はいくつかある。ひとつは数値化されているが、その数値がまだ洗練されたものではなく、さらに別の数値に変換してやっと意味が見えてくるような場合だ。この場合は1.に含むと言えないことはない。データ分析者の腕が発揮されるケースだ。

もうひとつの大きな原因。それは、そもそものデータが「スパース(sparse)」な場合だ。スパースは日本語では疎(数学では「そ」と読む、普通には「まばら」)と言う。例えば、商品の購入履歴(A)からある顧客(B)の購買傾向を分析しようとする。このとき商品数が非常に多くなると、Aを列、Bを行とした行列(Excelのようなスプレッドシートを考えてもよい)のほとんどの要素(購買数)がゼロになってしまう。

上記の例は2次元だからまだましな方で、分析を多次元にすればするほど(例えば、来店時の気温とか雨量など依存項目を増やすほど)スパース性が増してゆく。こうなると、統計的分析は難しい。

しかも、データがゼロ(あるいはNULL)でない場合に、それが全て意味があるとは限らない。ゼロ以外の単調な値、さらには乱雑で意味のない雑音の場合でさえある。青や赤など単色で構成された画像、電波が入らないテレビ画像がそれである。

このような場合に、そこから意味のあるデータを取り出す分析手法を、一般に「データマイニング」という。マイニングとは鉱石を求めて山を掘り進めること。すなわち、ほとんどが役に立たない岩の中から、貴重な意味のあるデータを探し当てるやり方である。

データマイニングといっても、これも様々な手法がある。一番簡単なのは、顧客をグループ化して(例えば年齢層ごとに分けるとか)最終的に統計的な取り扱いができるように持っていくような方法。もう少し複雑になると、商品の性質を表す因子(典型的には価格)を見つけ出し、この因子に対する回帰分析を行う方法もある。いずれにしても、統計的分析の延長と言えなくはない。

しかし、それが可能なものはまだ単純な方だ。3.に含まれるケースも含めて、ビッグデータには人間が分析方法を見い出し難い(そもそもどのように定義してよいかさえ分からない)ものが多い。あまりにもデータが多岐に渡るため、人間では処理し切れないのだ。

Googleの例を見よう。彼らは、ある目標を設定した。すなわち、

YouTubeの動画から「猫」とは何であるかを見出すこと。

この課題の解決には人工知能(AI)が必要となる。