今回は、一般的に機械学習と呼ばれる手法の中で用いられるアルゴリズムについて説明させて頂きます。
アルゴリズムの重要性
機械学習は人工知能の一つであり、データに対して特殊なアルゴリズムを適用し、学習することにより何かしらの知見を得るためのものとなります。機械学習は、「教師あり学習」「教師なし学習」「強化学習」に分類されており、その中でもマーケティングの分野でよく使われるのは「教師あり学習」です。
一般的には、予め用意したデータに対して数学的な処理を実施し、モデル生成することにより、未知のユーザーデータ等に対して結果を予測するというようプロセスで実施されますがが、具体的な機械学習の開発プロセスは、こちらの記事にて紹介しています。
基本的に予め準備したデータと問題があり、答えが未知であるデータに対して結果を出力するという流れは、問題のカテゴリが異なる場合でも変わりませんが、アルゴリズムは問題毎に向き不向きがあるため、適切に選択した方がより良い結果を得られる可能性も高いです。機械学習で成果を得たい場合は、目的にマッチしたデータの収集/利用と適切なアルゴリズムの選択が重要だと考えています。
機械学習に適用されるアルゴリズム
機械学習で用いられるアルゴリズムは数多くあり、実際に利用しようと思った場合、どれを使ったら良いのか迷うこともあると思います。そのような場合によく利用されるのが、アルゴリズムチートシート「scikit-learn algorithm cheat-sheet」「Azure Machine Learning デザイナーの機械学習アルゴリズム チート シート」となります。
これらのシートを参考にして、一般的に機械学習でよく利用される各問題カテゴリに対するアルゴリズムを簡単にまとめます。
カテゴリ | 目的 | アルゴリズム |
分類 | 単純あるいは複数のクラス分け | ・ロジスティック回帰: Logistic Regression ・ニューラルネットワーク: Neural Network ・ランダムフォレスト: Random Forest ・ブースト決定木: Boosted Decision Tree ・サポートベクターマシン: Support Vector Machine ・K近傍法: K-Nearest Neighbors ・単純ベイズ: Naive Bayes |
回帰 | 未知の数値を推定 | ・ポアソン回帰: Poisson Regression ・線形回帰: Linear Regression ・ベイズ線形回帰: Bayesian Linear Regression ・ランダムフォレスト: Random Forest ・ニューラルネットワーク: Neural Network ・ブースト決定木: Boosted Decision Tree |
クラスタ分析 | 教師なしでのグループ分け | ・K平均法:K-Means ・混合ガウスモデル: Gaussian Mixture Model ・スペクトラルクラスタリング: Spectral Clustering |
異常検出 | 外れ値検知や異常予知 | ・1クラスSVM: One Class Support Vector Machine ・PCAに基づく異常検出:PCA-based anomaly detection |
デジタルマーケティングの分野で機械学習がよく利用される事例としては、成約予測があります。通常、コンバージョンするまでの間、顧客は広告やHPの閲覧、配信されたメールを見てWebリンクをクリックして製品ページを見るなどの行動をすることが多く、それらの接触情報を元にして、コンバージョン直近な顧客に対しては大胆にアプローチし、そうでない顧客に対してはステージを上げるような施策を行う必要があります。
しかしながら、ステージ毎に適切な施策を行なったとしても最終的にコンバージョンに至らない顧客も多くいます。そこで、過去に成約した/しなかった顧客の行動履歴を学習し、顧客毎にコンバージョン可能性をスコアリングして、ステージ毎の適切なアプローチを行うための指標として活用します。
一方で、サブスクリプションや定期購入などを行なっている事業者において、サービスを継続してもらうことは非常に重要なことですが、顧客のWeb閲覧履歴や事業者への接触情報などから消費者の解約予兆を察した時には、既に解約の意思は固まっており、サービスを継続してもらうのは難しいということが多くあります。そこで、過去に解約へ至った顧客の属性や行動履歴、利用状況などを学習して、顧客が今後サービスを解約する可能性があるかを予測するというような解約予測に機械学習を適用することもあります。
例えば、解約しそうな顧客が事前に予測できれば、解約の意思が固まる前に割引クーポンや特別招待、ポイント提供のようなキャンペーンを提示して、解約行動の前にサービス継続を促すこともできます。
前述のような課題に対して学習を行う場合、通常、2クラス分類の問題として扱い、質の良いデータが十分に揃っていれば、ロジスティック回帰、ランダムフォレストのような単純なアルゴリズムを適用した方が実施しやすいことが多いですが、天気予報のように多数の分類を学習する場合やデータが少ない場合には、サポートベクターマシンやベイズのように一見難しいと思うようなアルゴリズムも試した方が良い結果が得られる可能性が高い傾向にあります。
また売上予測や来店予測など、所謂、線形回帰や多項式回帰による回帰分析にて連続値を予測するような問題に関しても同様です。単調に上昇あるいは下降すると予想される数値を予測したい場合は、線形回帰のような単純なアルゴリズムでも良いですが、弁当や惣菜の販売個数のように売上の内訳個数を予測するような複雑な問題に対しては、複数のアルゴリズムを検討・比較して適用するアルゴリズムを決定した方が良いかと思います。
もちろん、いずれの場合でも質の高いデータを可能な限り多く集めることが、機械学習を行う上で最も重要です。
まとめ
デジタルマーケティングにて利用されるデータの特徴は、Webで収集するログのようなデータは比較的多く収集されますが、より個人を特定するような精度の高いデータは相対的に少なくなりがちです。基本的に同じ目的で機械学習を利用する場合は、より精度の高いデータ(解決したい問題の特徴を捉えやすいデータ)を軸に学習した方がアルゴリズムに左右されることなく結果が良くなることが多いため、ロジスティック回帰やランダムフォレストなど、比較的簡単なアルゴリズムを適用しても精度の高い結果が得られるかもしれません。
しかし、複雑な問題や精度が低いデータ(問題の特徴とはかけ離れたデータ)で機械学習を使いたい場合は、より多くのデータを集めること、より目的に適したアルゴリズムを選定することが重要になってくると思います。
機械学習のライブラリでは、目的に応じた様々なアルゴリズムが準備されており、適用する問題に応じて、利用者が適切なアルゴリズムを選択する必要があります。多くの選択肢がある中、どのアルゴリズムを選べば良いのかというのは、アルゴリズムの中身自体を理解する必要があるかと思いますので、今後、個々のアルゴリズムの特徴や内容に関しての説明も記事として掲載していければと思っております。