コラム

2021.06.07

プログラミング不要! 機械学習で退会予測(Treasure Data Predictive Scoring)

● 退会防止という課題


 会員の退会防止。これはCRM担当者にとって長年の課題の一つでしょう。
もしあなたがCRM担当者であれば、いかに退会の発生を防ぐかに苦心してきたことだと思います。
例えばこう考えたことは一度や二度ではないでしょう。

 退会間際の会員をせめて把握できたら、と。

 退会の可能性が高い会員を把握することができたら、例えばEメールで、DMで、あるいはコンテンツ表示の最適化で、退会の心変わりを促すことができるかもしれません。
けれど退会の可能性が高い会員なんて、いったいどうやって見つけたらいいのでしょうか。

 もしあなたが経験の多いCRM担当者であれば、幾つか手段を思い浮かべるかもしれませんね。
会員登録情報やサービス利用状況といった一つ一つの顧客データをもとに傾向を分析するための慣れ親しんだ手法があることでしょう。

 けれど、まだ経験の少ないCRM担当者には難しい話かもしれません。
同じような傾向分析をしようとしても、膨大な時間がかかるかもしれませんし、終始ミスの心配にさいなまれるかもしれません。

 本記事では、会員の退会予測をするにあたり、簡単且つ正確に分析する方法についてお伝えしていきます。

<目次>

  • 機械学習で対処する
  • Treasure Data Predictive Scoring
  • Predictive Scoringの使い方
  • 実際に退会予測を実施してみた
  • 終わりに

● 機械学習で対処する


 多くの業界で同じような話題は尽きませんが、近年、この領域でも機械学習が力を発揮し始めているという話は多くの人が聞いたことがあるのではないでしょうか。
機械学習によって顧客の傾向分析ができる、というのは駆け出しのCRM担当者にとってはうれしいニュースに違いないでしょう。

 機械学習には大きなメリットがあります。

  •  パターン化された処理であれば、より早く正確に完了させることができる
  •  機械が代わりに処理にあたることで、その分人間の担当者のリソースを確保できる

 などがそれにあたります。

 つまり、経験の少ないCRM担当者の頭を悩ましがちなデメリットである、時間、正確性、その二つを機械学習はしっかりとカバーしてくれるのです。

● Treasure Data Predictive Scoring


 Treasure DataのPredictive Scoring」 はまさにそんな機械学習を活用したサービスの一つです。

 Treasure DataはCDP(カスタマーデータプラットフォーム)として広く利用されているサービスではありますが、その機能の一つがこの Predictive Scoring です。

 Predictive Scoringは、機械学習のなかでも「教師有り」という領域の機械学習を支援してくれるもので、二値分類を行う事が出来ます。
噛み砕いて言うならば、指定したデータと似ているデータを機械が自動で探し出してくれます。

 具体的な例を挙げるなら、退会者のデータで学習したのち、既存会員から退会者の傾向に近いデータを見つけ出す、という使い方も可能なのです。

 ※Treasure Data Predictive Scoringについて詳細
  https://www.treasuredata.com/product/segmentation/(リンク先:Treasure Data Webページ)

● Predictive Scoringの使い方


 使い方は非常にシンプルで、下に表示されているのがPredictive Scoringのユーザーインターフェースになります。

 下準備として会員データをTreasure Dataに事前に取り込んで、マスターセグメントとして定義しておく必要がありますが、後はUI上で、

  1. 判別したい対象のデータを「①Scoring Target」としてセットする
  2. 教師となる集団のデータを「②Positive Sample」としてセットする
  3. 傾向の学習材料となるデータを「③Features」として選択する(自動サジェスト機能有り)

 わずかこれだけの手順で準備完了です。統計的な専門知識やSQLなどのプログラム言語も必要ありません。

 あとは結果を待つのみです。

 Predictive Scoringは②の教師データを8:2に分割し、8の方を用いて傾向を学習、残りの2は後述のAccuracy、AUCと呼ばれる各指標の算出に使われます。
データ量にもよりますが結果はすぐに出力され、結果表示は余計な情報が少なく判別しやすいものになっています。

 結果画面の左下のヒストグラムは予測スコアの分布を示しています。
横軸は0〜100の予測スコアに対応し、縦軸はスコアリングされたプロファイル(顧客)の数を示します。

 結果画面の上部では、判別対象データを、 

  • Likely:(教師データと傾向が)近い
  • Possiblly:やや近い
  • Marginally:やや遠い
  • Unlikely:遠い

 の四分類に分けてくれる形式で判別結果が直観的にわかるようになっています。

 結果画面の右下には判別結果の精度を表す、Accuracy、AUCを確認する事が出来ます。
Accuracy(正解率)は0~100%の範囲で表示され、どの程度信頼してよいか判断でき、AUCは「Area Under the Curve」という指標で0~1の範囲の値をとり、どちらも大きいほど上手く判別出来ているとらえる事ができます。

 また、結果からは「NewSegment」ボタン(画像にはないですがUI右上にあります)ですぐに学習結果由来のセグメントを定義できるようになっており、出力結果の各分類、例えばLikelyのデータだけを抽出する、といったことができます。

 これにより退会者と似た傾向にあるユーザーを見つけ出したら、すぐにセグメント化してCRMツールへ連携、退会防止の施策のターゲットとして指定できるわけですね。

● 実際に退会予測を実施してみた


 ここまでPredictive Soringの特徴を整理してきたのですが、実際にテストデータを使って退会予測を実施してみましたのでその内容についても書いてみたいと思います。

<データソース>

  • オンラインで公開されているパブリックデータ(約7,000件)
  • 含まれているデータ:各会員の退会フラグ、性別、未既婚、サービスへの支払額、サポートサービス加入の有無など

 学習材料となるFeaturesを変えた幾つかのパターンで結果がどう出るのか見比べてみました。

■パターンA:Featuresとして「契約形態」「請求方式」「合計利用金額」「月額利用費」を選択
 ⇒ Accuracy:78.28%、AUC:0.84

■パターンB:Featuresとして「ネット回線」「オンラインセキュリティ」「デバイス保護」「バックアップ」を選択
 ⇒ Accuracy:75.65%、AUC:0.76

■パターンC:Featuresとして「未既婚」「扶養・被扶養」「高齢」を選択
 ⇒ Accuracy:73.45%、AUC:0.75

 データ数がそこまで多くないというのも要因としてあるかもしれませんが、Featuresとして選択した項目によっては、十分な予測結果が得られないケースもありました。
Likeyと判定できたユーザー数に差があったり、AccuracyやAUCの値に差が出ている事がわかります。
データ項目によってはやはり解約に強く結びついているデータと、そうでないデータがあるということになるのでしょう。

 この結果を踏まえれば、しっかりと学習結果を得たいと考えるなら、学習材料にできる項目は選べるだけ集計に組み込んでしまうことが一つのセオリーと言えそうです。
実際、下記の通り十八項目をFeaturesとして選択し、学習を実施したところ、今までのパターンの中において良好な結果を得ることができました。

■パターンD:上記A~Cで選択した項目+性別や利用サービスなど計十八項目
 ⇒ Accuracy:76.65%、AUC:0.84

 項目を増やしたときのデメリットとしては、どのFeaturesが解約に影響しやすいかが特定しづらいという懸念が持ち上がりますが、その心配もありません。
どのFeaturesがユーザが退会する事に対して強く影響したか、も付属のレポートから確認することができます。
これを参考に、解約防止施策のメッセージや方向性を練ることもできるでしょう。

※ただし、項目を増やした場合はデータ数も多く必要となる点や、処理時間も増加する点も項目増のデメリットの1つになります。

 次に、こちらのレポートの見方で気を付けなくてはいけない点を一つご紹介します。

 今回の例では、TotalCharges(合計支払金額)が多いほど解約にはマイナスの影響が出る(解約に至りにくい)という結果が示されています。
これは見方を変えれば、解約に至らなかった結果としてTotalChargesが高くなっているだけとも言えます。
TotalChargesは要因ではなくて結果かもしれません。
そうなると、解約するかしないかのトリガーになる要因を探す場合は、TotalChargesの陰に隠れている他の項目から探したほうがよいという事になります。

最後にパターンEとして、TotalCharges を除き、いくつかのサポートサービス加入の有無の項目を使って学習を実施してみます。

■パターンE:TotalCharges を除き、いくつか項目で学習
 ⇒ Accuracy:73.5%、AUC:0.78

 TotalChargesを除いて実施した場合、Accuracyなどは低下してしまうが、退会要因を探すという目的においてはこちらの結果を参照したほうがベターと言えると思います。

 今回の例ではオンラインセキュリティ加入有無(onlinesecurity#1)との関係性が強く出ているので、これを退会防止施策のメッセージの参考にする、という考え方になりますね。何でもかんでも放り込んで学習すればいい、とはいかないのは頭にとどめておく必要がありそうです。

 なお、こうした複数パターンでの学習の実施や、項目を選択し直しての再実施も、一回一回の設定がすぐにできるので運用の面でも苦になりませんでした。
どのパターンも出力まで1時間もかかっておらず、こうして何度もトライアンドエラーが試せるというのも利用者にとっては心強い点だと感じられました。

 また、一度こうした検証を経て自社データに対するベストプラクティスが決まってしまえば同じ設定で繰り返し実行しやすい、というのも大きな利点と言えるでしょう。

● 終わりに


 このように、Treasure DataのPredictive Scoring機能を使えばプログラミング不要で退会防止施策を実施できることがわかかりました。

 教師データの種類を変えれば他の施策にも応用が利くはずです。
例えばECサイトでの複数回購買ユーザーを教師データに、LTVの向上に役立ててみるのもきっと面白いと思います。

 私たちDataCurrent社はTreasure Dataのシルバー・パートナーとして、このようにTreasure Dataを使ったデータ利用施策の支援を提供しています。
上記のような取り組みを自社データでやってみたい、けれどスタートアップのタイミングでは一時的に運用のサポートをしてほしい、といったお声があれば、その支援も提供しております。是非一度ご相談ください。

本記事に関するお問い合わせは下記にて承ります。
株式会社DataCurrent
info@datacurrent.co.jp