データを分析することで、例えば次の2種類の情報を得ることができます。
- レコメンド情報
- モニタリング情報
レコメンド情報とは、どのようなアクションなどをすべきか、という情報です。
モニタリング情報とは、アクションした結果どうなったのかという情報です。
通常「見える化」といった場合、モニタリング情報を指すことが多いです。
しかし、モニタリング情報だけ渡されても、アクションに繋がりにくい、という問題があります。
とは言え、「レコメンド情報が必要です」と言われても、どうやればいいか悩まれている方もいると思います。
今回は、「何をすべきかを見える化する『レコメンド』のためのデータ分析」というお話しをします。
Contents
モニタリング情報だけ渡されても、アクションに繋がりにくい
問題なのは、アクションの結果(例:売上、受注など)に関するデータだけを集めてしまい、そのデータを集計しモニタリング情報として現場に提供するケースです。
例えば、「売上が悪化した」とか、「生産の歩留まり(良品の割合)が悪化した」という結果だけ見せられても、具体的に何をするのがいいのかは、ベテランか相当センスの良い方でないと見えこないことでしょう。
つまり、多くの人にとって、モニタリング情報だけ渡されても、アクションに繋がりにくいということです。
必要なのは「何をすべきかの見える化」
そのため、アクションの結果である「モニタリング情報」を現場に提供するとともに、何をすべきかという「レコメンド情報」も併せて現場に提供したほうがいいでしょう。
要は、モニタリング情報は「結果の見える化」であり、レコメンド情報は「何をすべきかの見える化」といえるかもしれません。
この2種類の情報(レコメンド情報とモニタリング情報)を「見える化」するためには、この2種類の情報(レコメンド情報とモニタリング情報)を生み出す必要があります。
それが、データ分析です。
2つのレコメンドのためのデータ分析
レコメンドのためのデータ分析といっても色々あります。よくあるのは次の2つです。
- 【都度データ分析】重要な意思決定をサポートする情報を、データサイエンティストやデータ分析担当者などがデータを分析する
- 【数理モデル構築】レコメンド・システムを構築し機械的に情報を提供するために、データ分析を実施しレコメンドのため数理モデルを構築する
前者は、都度データ分析をするため、データサイエンティストやデータ分析担当者などのデータを分析する側の、データに現れない情報を取り込み洞察する力量が大きく問われます。
後者は、レコメンドのための数理モデルを構築するため、将来を予測する数理モデルを構築するときと同様に、汎用性や解釈性など気を付けるべきポイントを踏まえ構築する必要があります。
また、使ってみなければ善し悪しの判断がつかないため、通常は複数のレコメンドのための数理モデルを構築し実際に試し取捨選択したり、実運用しながら数理モデルを都度改良し続けたりするなどが必要になります。
古典的な3つのレコメンドのやり方
以下は、古典的な3つのレコメンドのやり方です。
- シミュレーションによる試行錯誤によるレコメンド
- 数理最適化モデルを活用したレコメンド
- レコメンドモデルを活用したレコメンド
シミュレーションによる試行錯誤によるレコメンド
「シミュレーションによる試行錯誤によるレコメンド」とは、構築した予測モデルを使い、シミュレーションを実施することで、最適なアクションを探ろうというアプローチです。
「X(説明変数)を変化させたときにY(説明変数)がどうなるのか?」をシミュレーションしながら、実施すべき施策を検討します。
予測モデルを構築するとき、回帰分析を実施し構築するケースが多いです。
「シミュレーションによる試行錯誤によるレコメンド」は、一番やりやすく分かりやすいやり方です。
数理最適化モデルを活用したレコメンド
「数理最適化モデル」とは、数理計画法というアルゴリズムを使って、最適解を数理的に求めるアプローチです。
「シミュレーションによる試行錯誤」のような試行錯誤をせずに求めるのが特徴です。
例えば……
- マーケティングの広告・販促であればmROI(Marketing Return On Investment)を最大化する広告・販促費の最適配分(説明変数X、Xはコスト配分)を求めるであるとか
- 小売店の棚割り系であれば利益最大化する最適棚割りを求めるであるとか
- 開発・生産系であれば一定基準以上の品質特性(通常Yは1変量ではなく多変量)を実現するための最適な設計条件(説明変数X)を求めるであるとか
- 調達・発注系であれば利益最大化する最適発注量を求めるであるとか
……目的変数Yを最大化もしくは最小化するための説明変数Xを算出します。
数理計画法(線形計画法・非線形計画法・混合整数計画法など)のモデリング技術(事象の数式化)はそれなりのスキルが必要なため、ツールがあればできるというものではありませんが、非常に強力な手段の1つです。
この数理計画法に馴染みの薄い人も多いかと思いますので、もう少し説明します。
数理計画法は、数理計画法で解くための問題を「いかに定式化するのか」(モデリング)、それを「いかに解くのか」という大きな2つの問題にぶち当たります。
意外と厄介なのが「いかに定式化するのか」(モデリング)で、対象となる現象を定式化することが不慣れな方が多い印象があります。若干、定式化のテクニックが必要になります。
「いかに解くのか」もそれなりに厄介です。数理計画法の中でも非線形計画法や混合整数計画法の範疇になると、厳密解(専門用語でいうと大域的最適解)を求めようとすると膨大な計算時間が必要となり実務活用できないケースもあります。
そのため、妥協解(専門用語でいうと局所的最適解の中で実務上受け入れ可能な解)を求めるシステムにすることが多いです。
多くの場合、解をだすためのコンピュータの計算速度と、求めた妥協解の厳密解からの乖離度合いで評価したりします。
例えば、厳密解を求めるのに10日前後必要だが、厳密解からの乖離が10%以内の妥協解なら計算時間1分以内に出せる、などです。
レコメンドモデルを活用したレコメンド
以下は、よくある3つのレコメンドモデルです。
- 協調型
- 内容型
- 知識型
協調型
レコメンドモデルで最も有名なのが、協調型です。
協調型で有名なのが協調フィルタリングです。
協調フィルタリングの場合、ユーザ(例:顧客)とアイテム(例:商材)の関係性(例:購買)、つまり目的変数Y(例:購買の有無)だけを活用しているため、データが入手しやすいです。
さらに、簡単な協調フィルタリングであれば、EXCELだけでも実現可能です。
レコメンドモデルには、協調フィルタリング以外にも色々あります。代表的なものは、「内容(Content)ベース型」や「知識(Knowledge)ベース型」などです。
内容ベース型
内容ベース型では、顧客の特徴と商材の特徴を用いてレコメンドします。ざっくり言うと、「顧客の好みに合致した特徴を持った商材をレコメンドする」という感じです。
協調フィルタリングが、顧客と商材の関係性(例:購買)、つまり目的変数Y(例:購買の有無)だけを活用していることから考えると、必要なデータが増えます。要は、説明変数Xや調整変数Zなどが必要になります。
知識ベース型
知識ベース型には、大きく「制約(Constraint)ベース型」と「ケース(Case)ベース型」があります。
制約ベース型は、利用者が提示した要求を制約条件としてレコメンド可能な解を探索し提示します。
ケースベース型は、利用者が提示した要求との類似度をベースにレコメンド可能な解を探索し提示します。
この2つを混合させてレコメンドモデルを構築することも多いです。
例えば、制約ベース型レコメンドモデルでレコメンド候補を絞り込み、絞り込んだレコメンド候補に対しケースベース型で類似度評価し最終的なレコメンドを実施する、などです。
詳しくは、機会があれは、別の機会にお話しします。
今回のまとめ
今回は、「何をすべきかを見える化する『レコメンド』のためのデータ分析」というお話しをしました。
データを分析することで、例えば次の2種類の情報を得ることができます。
- レコメンド情報
- モニタリング情報
レコメンド情報とは、どのようなアクションなどをすべきか、という情報です。
モニタリング情報とは、アクションした結果どうなったのかという情報です。
通常「見える化」といった場合、モニタリング情報を指すことが多いです。
しかし、モニタリング情報だけ渡されても、アクションに繋がりにくい、という問題があります。
レコメンドのためのデータ分析といっても色々あります。
よくあるのは次の2つです。
- 【都度データ分析】重要な意思決定をサポートする情報を、データサイエンティストやデータ分析担当者などがデータを分析する
- 【数理モデル構築】レコメンド・システムを構築し機械的に情報を提供するために、データ分析を実施しレコメンドのため数理モデルを構築する
以下は、古典的な3つのレコメンドのやり方です。
- シミュレーションによる試行錯誤によるレコメンド
- 数理最適化モデルを活用したレコメンド
- レコメンドモデルを活用したレコメンド
以下は、よくある3つのレコメンドモデルです。
- 協調型
- 内容型
- 知識型
「レコメンド情報が必要です」と言われても、どうやればいいか悩まれている方は、参考にして頂ければと思います。