「意思決定の自動化」と「リアルタイム・オファリング」 第4回　意思決定と確率 

:::note
この本書は2017年4月1日にTeradata Japanのブログに掲載された内容を、再掲載したものです。
掲載内容の正確性・完全性・信頼性・最新性を保証するものではございません。
また、修正が必要な箇所や、ご要望についてはコメントをよろしくお願いします。
:::


著者 山本 泰史 （やまもと やすし）


# 「意思決定の自動化」と「リアルタイム・オファリング」

## 第4回： 意思決定と確率

意思決定を自動化していくとき、有している選択肢の中から自動的に選択がなされなければなりません。そしてその判断に用いられるのは情報です。今回は、この意思決定を決定付けるための情報について取りあげます。

### オンオフ: 0 か 1 か
最初に、非常にシンプルな形式を考えます。ある条件の発生有無によって、顧客に対するオファーを実施するべきか否かを決定付けるケースです。「あるブランドのヨーグルトを 3回購入したら、POS端末から同一ブランドのヨーグルト割引クーポンを発行する」のようなケースがこれに該当します。3回の特定ブランドヨーグルト購入顧客は 1 とフラグが立ち、それ以外は 0、つまりフラグが立っていないため何のオファーもなされません。当然ながら何故 3回なのかは分析されなければならず、また案内オファーがヨーグルトで良いのか、割引額（もしくはパーセント）はどの程度までなのかも分析に基づいて（=顧客訴求力と収益性のバランスに基づいて）、決定されなければなりません。

このような形式を若干複雑にすると、以下図7 のようなテーブル形式でのオファー選択となります。ここでは何らかのオファーをすることは決まっており、オファー内容をどうするかをテーブル参照により決定しています。重要度の高い顧客に対してはキャッシュバック額を大きく、反対に重要度の低い顧客に対してはキャッシュバック額を小さくしています。また、新規顧客や過去情報の存在しない顧客（新規顧客、未会員等）に対してはデフォルトのキャッシュバック額を提示する形式にしています。このように、テーブルが持つ条件のいずれに合致するかによってオファー内容を分岐させる方法も、複数の条件の中でどの条件にフラグ1 が立つ（そのとき、他の条件にはフラグが立たない）のをオファー内容から決定しており、これも単純な判断条件の応用です。

<img width="700" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2768546/be88bfaf-b058-c335-fd75-ebbf66ee3bae.png">


### 確率: 0 と 1 の間
より複雑なロジックを構築して、それぞれの顧客が持つニーズ／欲求に傅こうとするとき、強力な判断基準を提供してくれるのが「確率」指標です。確率値は 0 から 1 の間で表現され、0 に近ければ、ある事象の発生する確率が低いことを意味し、1 に近ければある事象の発生する確率が高いことを意味します。また、1 から確率値を引いた値は、ある事象が発生しない確率を意味し、モノゴトの不確実性を表してくれます。つまりモノゴトの起こり易さを示す指標であり、信頼度や割合とも呼ばれます。単純に確率=0.1 であれば、10回の試行に対して 1回発生するであろうことを意味し、0.2 であれば 10回の試行に対して 2回発生するであろうことが期待できます。従って、確率値=0.1 と確率値=0.2 を比較すれば、どちらの事象の発生する確率が高いかを把握することが可能であり、どれだけ確率が高いかを理解することが可能です。また、ある一定の確率値（例: 0.5以上 or 未満）を基準として、意思決定（特定オファーを案内する or しない）を決定させることも可能です。但し、この場合分岐条件となる確率値をどのように決定するかは、分析等に基づいて人間が判断しなければなりません。

確率指標の便利な点として、過去の試行結果に対する「ある事象」の発生割合という指標特性から、「ある条件下で、特定事象が発生する」であろうことを予測する指標でもあるという点が挙げられます。例えば、特定顧客行動（キャンペーンに反応するか、しないか）の過去と将来に変化が無いと仮定し、またキャンペーンの内容やそれに対する顧客の知覚に全く変化が無いと仮定した場合、その行動事象の発生割合（10回キャンペーンを案内した結果、9回反応があった）は、そのまま次のキャンペーンにおける期待値（90％の確率で反応頂けるハズ）として理解することが可能です。もちろん現実世界で顧客行動（とそれを生成する顧客心理）に変化が全く無いということは稀であり、また同じ内容のキャンペーンを何度も案内するケースも現実的ではないのですが、近似の条件、近似のキャンペーンという前提において参考にできるものであり、確率が低い顧客よりは期待できると考えられます。

また、確率指標が便利であるもう1つの理由として、その汎用性が挙げられます。確率値は、「事象の発生」という抽象的な概念に対する単位であり、値は常に 0 から 1 の間に帰結します。したがって、レベルやベクトルの異なる事象を比較する際にも役立てることが可能です。例えば、キャンペーンの特典として「ノベルティをプレゼントする」際の反応確率と、「割引を適用する」際の反応確率を同じ土俵に乗せて比べることが可能です。このような汎用性はオファー内容の選択肢から比較を行い、意思決定をしていく際の利便性をもたらしてくれます。また、これは選択肢が 2つでなくとも適用可能です。数百に及ぶ選択肢、つまりオファー候補の中から、最も反応確率が高い選択肢を導くことも可能としてくれます。例えば「商品番号001～999番の中からどの商品を案内する場合の反応確率が最も高いか？」といった命題に対する一意の解を与えてくれます。


### 大数の法則
確率を利用した意思決定ロジックにもリスクは存在します。過去に同一条件下での試行を 3回実施し、ある事象が 2回発生したとしましょう。確率値は 0.6666...となりますが、これは信用に耐えうるものでしょうか。ケースにもよりますが、ちょっと信頼に足らないと思われる場合もあるかもしれません。しかしながら、3億回実施し、それに対する事象発生が 2億回前後であるならば、確率値0.6666...は信用できそうです。このように、試行回数を増大させることによって、事象発生回数の割合、つまり確率値は安定していきます。このような法則を大数の法則と呼びます。大数の法則を説明する際に、一般に用いられるのはサイコロを振って 1 の目が出る確率です。サイコロの目は 6つあり、それぞれの目が出る確率は 1/6=0.1666...ですが、実際にサイコロを振ると、1 から 6 のいずれかが出ます。しかし、何万回も振っていけば、1 の目が出る割合は 0.1666...に収束していくはずです。逆の考え方をするならば、ある一定量のデータが備わっていなければ算出された確率値には不安要素が内包されているとも言えます。


### データが無ければ、作り出す

このようなリスクを回避するためには、充分な試行量、つまり過去データを確保し、それに基づいて確率算出を行なうことが必要です。また、確率が起こった条件を適切に理解するためには、データのバリエーションも重要な要素になります。データの種類を充分に用意することによって発生事象をもたらした条件を正確に限定し、それを説明してくれる要素を多く取り込み、その確率を信用に足るものとしてくれます。そしてデータが存在していない場合には、「データを作る」という手段を採用することも可能です。前述の「ノベルティをプレゼントする」のと「割引を適用する」というオファー候補が存在し、それぞれの顧客にいずれを案内すべきかという命題を検討します：

１．以下 2つのキャンペーンを企画します（テストキャンペーン）。
　　A. 「ある商品／サービスをご購入／ご利用いただけたら、ノベルティをプレゼントします」
　　B. 「ある商品／サービスをご購入／ご利用いただけたら、割引を適用します」
２．A と B それぞれのキャンペーンにて、対象顧客を準備します。対象顧客はランダムサンプリングによって無作為に抽出し、案内を行ないます。A の対象顧客と B の対象顧客は重複しません。
３．A と B へ案内した結果、反応があった場合には 1、反応が無かった場合には 0 としてフラグを設定します。A と B は別々に管理します。
４．設定したフラグ情報を結果変数として、ロジスティック回帰分析を実施します。 説明変数には反応結果を説明してくれそうな候補を投入します。A と B 両方に関して実施します。
５．A、B それぞれのモデルが構築されます （モデル評価作業等が必要になりますが、ここでは割愛）。
６．構築されたモデルを、反応予測したい顧客群に対して適用し、A、B それぞれに関するスコアを得ます。
７．顧客毎にスコアを比較して高スコアのオファーを選択、案内を実施します（本番キャンペーン）。以下は例：（ロジスティック回帰分析に関しての手法詳細は<INS>こちら</INS>をご覧下さい）



<img width="700" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2768546/a8b7fab5-7413-3110-dc86-12f07f885e1e.png">


図8 は、ある 3名の顧客に関するスコアを抜き出した例です。ここでのスコアは記述してきた確率値であり、スコアが高ければ反応する確率が高いことを意味します。別の表現をすれば、反応した顧客と同一のデータ傾向を有している顧客ほど高いスコアが付与され、異なる傾向を有している顧客ほど低スコアに帰着します。#111 の顧客に関しては A の方が高いため、ノベルティをプレゼントしたほうが喜ばれることが想定され、#112 に関しては割引案内をした方が喜ばれると想定できます。#113 は微妙です。どちらかを選ぶのであれば A なのでしょうが、他の顧客に関するスコアと、案内予算枠の中で案内を実施するべきか決定すべきです。いずれにしても、テストキャンペーンを経ることによって、反応顧客に特有の傾向を案内内容毎に理解することが可能となります。データが無い場合、どのような案内をすべきかを理解できません。しかしながら、このような試行錯誤を繰り返すことによって、キャンペーンの「効き所」を顧客毎に理解できるようになります。またこのようなデータを大量に蓄積することができれば結果（ここではモデルやそれによって導き出される確率スコア）が安定し、実施するキャンペーンの対象顧客選定、案内オファーの策定により自信を深めることが可能となります。

次回は、このような確率算出の手法について概観していきます。


#### Teradata Vantageへのお問合せ
[Teradata Vantage へのお問合せ](https://www.teradata.jp/About-Us/Contact)