はじめに
この連載は、第1回に紹介したDBMSの3階層構造における「アーキテクチャと実装」についての技術の紹介から始まり、中間の階層である「データ・モデルとデータ型」についてお伝えしてきました。データ・モデルとデータ型に関しては、JSONをDBMSで扱う方法やグラフデータモデルとグラフDBMS、解釈や取り回しに癖がある空間データについて取り上げました。
今回は、データの活用方法の1つである機械学習/AIとデータベースの関わりに焦点を当てていきたいと思います。
なお、本連載で例として挙げるデータベースはオラクルが提供しているものが多いですが、オラクル製品を使っていない方にも参考にしていただけるように解説します。
対象読者
この連載では以下の読者を想定しています。
- データ資産を活用する、新しいアプリケーションの構想や設計を担われる方
- データ基盤の運用を担われている方や、今後検討される方
- 新たに開発するアプリケーションの、最適なデータベースをお探しの方
- 目的別データベースから、価値ある情報を素早く引き出す検討をされている方
機械学習の現在
様々なデータが大量に蓄積され、ビッグデータという言葉が流布する以前から、統計解析やデータマイニング、予測分析と呼ばれる機械学習的な機能を持つアプリケーションはデータを活用する手段として認知されていました。しかしながら、ビックデータという潮流を経て、ここ最近では、データの種類や量が大きく膨らみ、また別な側面ではデータの信頼度が少し低いデータを有効活用するために機械学習やAIといったデータ活用技術自体の重要性が高まっているように見えます。
もちろん深層学習等の手法そのものの進歩やナレッジの蓄積、データサイエンスに従事する人員の育成等もこれらの技術の躍進に重要な要素でありますが、本連載の性質上、データベースという観点でこの機械学習との関わりに主眼を置いてみると、近年、データベース内で機械学習処理を行う実装やそのプランを発表するものが増えてきています。
アプリケーションと呼んでも差し支えない層である機械学習がどうしてデータベース内に実装されることになっているのか、その実装はどうなっているのかをこれから述べていきたいと思います。
機械学習の5つのプロセス
データベースと機械学習の関係を整理するために、まず機械学習のプロセスについて簡単に触れておきます。機械学習とは何かというようなことは、既に多くの書籍やサイトで解説されているかと思いますので、そちらを参照頂くこととして、ここでは簡単のために「データから機械的にルールやパターンを抽出し、予測等を行う」ものとしておきます。
つまり、目的のためにデータを集め、学習に適した形に変換準備し、学習を行い、その学習結果を評価し、利用に足ると判断できれば、システム化等の適用に入るといった流れになります。機械学習によるデータの活用では多くの場合、以下のプロセスに沿って処理が行われています。
1. データ収集
対象とする課題と解決方法に適した元データを探し、収集する。
例
- 課題:追加契約率を上げる。
- 解決方法:追加契約の可能性を判定し見込みの高い顧客への売り込みを強化する。
- データ:顧客マスタ(顧客の各種属性データ)、契約状況データ、契約受注データ
2. データ準備(変換)
元のデータを解決方法において必要とされる特徴を機械学習アルゴリズムに応じた形に変換、準備をする。
例
追加契約をした顧客とそうでない顧客を仕分けるため、過去の受注履歴データから追加受注が発生したかどうかを確認し、顧客ごとに追加契約フラグ(0/1)を立てる。そのデータに顧客の属性を結合する。顧客の年齢を10代ごとに階層化し、年収も5段階程度で階層化、その他の数値型のデータに関してはminmax正規化で0-1の範囲の値として設定し、1か月以内の新規顧客は追加契約の可能性が少ないためデータから除外する。
3. 学習
データをアルゴリズムに適用し、学習させることでモデルを生成する(トレーニング/モデル構築/フィッティングとも)。
例
データセットの75%を取り出し、学習用として、追加契約の有無を目的変数として、サポートベクタマシンの非線形カーネルでパラメータは C=1,γ=1.5 で分類モデルを作成する。
4. 評価
学習結果が期待された効果を満たすものであるかを評価する。
例
モデル作成に使わなかった残りの25%のデータを取り出し、モデルを適用し、分類の正答率を確認する。いったん85%以上の正答率を目標として、よさそうであれば、4分割でクロスバリデーションを実施し再度チェックする。正答率が満たない場合、モデルのチューニングやデータの追加などを検討する。
5. 適用(業務システムへの適用)
評価結果が十分なものである場合、学習結果を業務に適用することで業務システムの一部に組み込んでいく。
例
作成された予測モデルを新規顧客に適用し得られた結果を、営業支援系のシステム、新規顧客の中で追加契約の可能性が高い顧客のリストを生成、担当営業には画面上に表示される仕組みを作る。
ここでプロセスとして記すと5段階でシンプルなものですが、実際には評価の段階で思うような結果が得られないことも少なくありません。その場合、1~4のプロセスを何度も繰り返すこととなります。
さらに、このようなプロセスの話ではデータの所在、処理する場所といった観点が見えにくくなっていることもありますので、以下のような図にしてみます。
このような形にすると、1~4を繰り返すということは、そのままデータ管理システムと分析システム間でのデータの移動が都度発生することがよくわかるかと思います。