続いて、NoSQLタイプのデータベーステクノロジーと人工知能技術の結びつきについて押さえていきます。前の方の記事で見てきた統計や確率を用いたものとは異なる角度からの機械学習のあり方について見ていくことになります。
非構造化データ
前の記事で触れた4方式のNoSQLデータベースに共通しているのは、すべて「非構造化データを直接あつかう」という点です。「非構造化データ」とは何かといいますと、それはテキスト、音声、写真やイラストなどの画像、動画・映像、Webサイトのアクセスログなど、定まった形式で整理しきれない要素をたっぷりと含んだデータです。そのうちに「におい」や「味」といった非構造化データも、対象になってくるかもしれません。畳み込みニューラルネットワークは今のところ「目」ないしは「耳」ですが、そのうち「鼻」や「舌」にもなるでしょうから。
そういったデータが、リレーショナルデータベースのテーブル形式に収まりきらないことは容易にわかると思います。テーブルではない、もっと複雑で多次元のデータ・モデルなら何とかなるかもしれませんが、そういうモデルを考えるだけでも大変ですし、何よりも「構造化する」=「硬直化を招く」ことになってしまいますので、柔軟性を命とするNoSQLでは採用できません。したがって、NoSQLデータベースでは、シンプルなデータ・モデルの中に、非構造化データを丸ごと飲み込む形が基本になります。
非構造化データをどうあつかうか
非構造化データには、規則性があるものと規則性がないものとがあります。
規則性があるものは、XMLやJSONのファイル形式のテキストデータです。これらは書式と文法に一定のルールがあるため、規則性があり、そのため管理もデータ分析もしやすい部類に入ります。アクセスログの記録データも、サイトにより書式は異なるとしてもルールはあるので、データ分析は比較的容易です。SQLで扱えるテーブル形式のデータ・モデルにまで構造化できる場合も多いでしょう。
その他のテキストデータについては、定型的な書式で書かれたものには規則性が認められますが、特に定まった書式のないテキストは規則性がないものに分類されます。画像、映像、音声その他のデータは、基本的にすべて規則性がないものとして扱われます。当然、管理は難しくなり、データ分析の対象にもしにくくなります。にもかかわらず、現在もっとも急激に増加しているのはこの規則性がない非構造化データです。ネット上のコンテンツとして映像などが増えていますし、IoT化されたインフラや機器が入力源となるデータも増えています。
規則性がない非構造化データに規則性を見つける
「規則性がない非構造化データに規則性を見つける」というのは、矛盾したことをしようとしているように見えると思います。しかし、人間はこれをけっこうやっているものなんです。
たとえば、中学校2年生で英語の動詞の過去形を習いますよね。-edを付けるだけの規則動詞に加えて、go-wentなど「なんじゃこりゃ?」な変化をする不規則動詞があります。覚えるのに苦労されたのではないかと思いますが、よく見るとある程度の規則性があることに気付かれた方も多いのではないでしょうか。
lend-lent-lent
send-sent-sent
spend-spent-spent
これらは[-end]が[-ent]に変化するパターンで共通しています。また、
begin-began-begun
drink-drank-drunk
ring-rang-rung
sing-sang-sung
sink-sank-sunk
swim-swam-swum
は母音が i→a→uと変化している点で共通です。go-went-goneのようにどうしても同類が見つからないものもありますが、グループ分けをするといくらか覚えやすくなったでしょう。
「規則性がない非構造化データ」というのは、「特に決まったフォーマットがない」という意味であって、まったくのカオス・無秩序という意味ではないのです。もし本当にそうであったら、誰が見てもわからないものであり、ということは「データ」として何の価値もありません。実際にデータとして価値を持つものは、意味が通じる何かが書いてあったり、何であるかわかる何かが写っていたりするものです。
ということは、それが何であるかは確認可能なので、それを足がかりに分類したり分析したりすることができます。具体的には、テキストデータであればテキストマイニングを行い、頻出するキーワードや動詞、修飾語、語の意味はポジティブかネガティブかなどを統計的にチェックして概略を把握します。画像であれば畳み込みニューラルネットワーク(CNN)で識別させればいいでしょう。
「メタデータ」もいっしょくたに管理
上記のようにテキストマイニングやディープラーニングによりデータの特徴がつかめたら、分類・グループ分けができるようになるでしょう。ではその、「データの分類を記録したデータ」はどこにしまいましょうか。
なにも別のデータベースを用意する必要はありません。元のデータと一緒に、混ぜて置いてしまって大丈夫です。これがNoSQLの強み、柔軟性と拡張性なのです。つまり、データのありかやインデックスを表す「メタデータ」も、一般のデータと同じように格納されることになります。そのメタデータのありかさえわかっていれば、そこにアクセスすればほかの一般データのありかもわかり、活用できるのです。しかも、データのアロケーションとデータへのアクセスが同一の手続きでできるため、高速になります。
人工知能に必要なのはアルゴリズムとデータ
機械学習、データマイニングなどの作業で強力な人工知能を動作させるためには、すぐれたアルゴリズムに加えて、大量のデータが必要になります。大量の非構造化データをあつかうためには、昔からあるリレーショナルデータベースでは不十分であり、NoSQLのデータベースが有力になっていることをご紹介しました。
「AIの個別技術と関連理論」ということで説明してまいりましたが、これでアルゴリズムとデータという人工知能を構成する2大支柱について一通り紹介したことになります。ということで、ここでいったん締めくくりたいと思います。しかし、まだ紹介できていない部分もありますので、そうした部分の補足は続けていきます。引き続きお付き合いください。