今回はAIの取り組みとして代表的な機械学習の取り組みを進めていく上で欠かせない、データの取扱いについて説明します。機械学習を行うには、大量のデータが必要だという話は聞いたことがあるかと思います。しかし、精度の高い分類や予測を行うにはデータ量の確保だけでなく、適切なデータ加工も同じく重要です。
適切なデータ加工のためにはまず、データの形式や意味、性質を理解する必要があります。開発フェーズの各プロセスを概観しつつ「データ収集」や「前処理」と呼ばれるプロセスの重要性について見ていきましょう。
「データ収集」はデータベースがなければ始まらない
通常の機械学習プロジェクトの場合、まずは手に入るデータで小さく実験をするところから始めます。これから機械学習を導入しようというフェーズの場合、データ収集やデータの前処理についても基本的に担当者が請け負うことになります。
そのため、必要なデータがスムーズに取得でき、素早いサイクルでデータの確認や分析、アルゴリズムの実験を行える環境が必要です。
具体的にはまず、サービスで生成されるデータから個人情報などを除いた、分析専用のデータベースを用意します。これらはDWH(データウェアハウス)やデータマートと呼ばれ、通常は数時間から1日といった頻度で自動更新します。
もしこれから、こういった分析用のデータベースを用意する場合は、どのようなデータを格納するのか、どの程度の頻度で更新するのかなど関係者で協議することになるでしょう。
活用するデータの設計
冒頭で述べたように、機械学習を活用した機能を作るためには学習させるデータが必要です。機械学習プロジェクトの検討フェーズにおいて、まずは目的(実現したいこと)を決め、その目的を達成するために必要な情報(機械学習を用いて予測したい情報)を設計します。そして、具体的にどのようなデータを用いて学習を行うか検討を始めます。
ここで、簡単に変数について説明をします。分類を示すラベルや、予測したい数値を示す変数のことを「目的変数」と呼びます。そして、その目的変数の予測に使われるその他の変数を「説明変数」と呼びます。
さて、どのようなデータを使用するか、または収集するかを考える際には、最初に何を目的変数にするかを考えます。例えば、前回の記事で例として取り上げた動画配信サービスでは下記のような思考プロセスが想定されます。
1.【目的の設定】広告収入の増加(→ クリック数を増加させたい)
2.【方針の策定】ユーザーが興味を持つ広告を個別に出し分ける
3.【目的変数の決定】性別に応じた広告表示を行うため、性別を推定したい
4.【説明変数の選択】閲覧動画のカテゴリ、視聴時間、広告種別、クリック回数など
このようにして、機械学習に使用するデータの見通しを立てます。見通しは立てたものの、常に必要なデータが社内にそろっているとは限りません。そのような場合は代用できそうなデータを探したり、手持ちのデータを加工したりして対応します。
どのような企業でも、日々発生する全てのデータを取得したり、保存したりすることはできません。そのため工夫を凝らして、入手できるデータの範疇(はんちゅう)でできるだけ妥当性が高く納得感のあるモデル作成を心がけることが大事です。
そして、必要に応じてオープンデータや、販売されているデータを活用することも検討します。