Azure HDInsight Spark クラスターによるキャンペーンの最適化


ソリューションのアイデア Solution Idea

さらなる情報、実装の詳細、価格ガイダンス、コード例を追加してこの記事を拡張することをお望みの場合は、GitHub のフィードバックでご連絡ください。If you'd like to see us expand this article with more information, implementation details, pricing guidance, or code examples, let us know with GitHub Feedback!

このソリューションでは、Azure HDInsight Spark クラスターでの Microsoft R Server を使用して機械学習モデルを構築およびデプロイし、キャンペーンの対象となる潜在顧客の購入率を最大化するための推奨アクションを示します。This solution demonstrates how to build and deploy a machine learning model with Microsoft R Server on Azure HDInsight Spark clusters to recommend actions to maximize the purchase rate of leads targeted by a campaign. このソリューションにより、Microsoft R Server で Spark 上のビッグ データを効率的に処理できます。This solution enables efficient handling of big data on Spark with Microsoft R Server.


アーキテクチャ図 このアーキテクチャの SVG をダウンロードしてください。Architecture diagram Download an SVG of this architecture.


このソリューションでは、Microsoft R Server で HDInisght Spark クラスターを作成します。This solution will create an HDInisght Spark cluster with Microsoft R Server. このクラスターには、2 つのヘッド ノード、2 つのワーカー ノード、1 つのエッジ ノードが含まれ、合計 32 個のコアがあります。This cluster will contain two head nodes, two worker nodes, and one edge node with a total of 32 cores. この HDInsight Spark クラスターの概算コストは、1 時間あたり 8.29 ドルです。The approximate cost for this HDInsight Spark cluster is $8.29/hour. 課金は、クラスターが作成されると開始され、クラスターが削除されると停止されます。Billing starts once a cluster is created and stops when the cluster is deleted. 課金は分単位なので、クラスターを使わなくなったら必ず削除してください。Billing is pro-rated per minute, so you should always delete your cluster when it is no longer in use. 完了したら、[デプロイ] ページを使用してソリューション全体を削除します。Use the Deployments page to delete the entire solution once you are done.


新規または既存の製品を対象とするマーケティング キャンペーンをビジネスで開始する場合、多くの場合、ビジネス ルールのセットを使用してキャンペーンの対象となる潜在顧客を選択します。When a business launches a marketing campaign to interest customers in new or existing product(s), they often use a set of business rules to select leads for their campaign to target. 機械学習を使用して、これらの潜在顧客からの応答率を高めることができます。Machine learning can be used to help increase the response rate from these leads. このソリューションでは、モデルを使用して、キャンペーンの対象となる潜在顧客の購入率を最大化することが期待されるアクションを予測する方法を示します。This solution demonstrates how to use a model to predict actions that are expected to maximize the purchase rate of leads targeted by the campaign. これらの予測は、対象となる潜在顧客の連絡方法 (電子メール、SMS、コールド コールなど) と連絡タイミング (曜日と時刻) について、更新されたキャンペーンで使用される推奨事項の基礎として機能します。These predictions serve as the basis for recommendations to be used by a renewed campaign on how to contact (for example, e-mail, SMS, or cold call) and when to contact (day of week and time of day) the targeted leads. ここに示されているソリューションでは、保険業界のシミュレートされたデータを使用して、キャンペーンに対する潜在顧客の反応をモデル化します。The solution presented here uses simulated data from the insurance industry to model responses of the leads to the campaign. モデル予測子には、潜在顧客の人口統計の詳細、キャンペーンの実績の履歴、および製品固有の詳細が含まれます。The model predictors include demographic details of the leads, historical campaign performance, and product-specific details. このモデルでは、データベース内の各潜在顧客が各曜日のさまざまな時間帯にチャネルから購入を行う確率が予測されます。The model predicts the probability that each lead in the database makes a purchase from a channel, on each day of the week at various times of day. ユーザーをターゲットとするときに使用するチャネル、曜日、時刻に関する推奨事項は、モデルが購入の確率が最も高くなると予測するチャネルとタイミングの組み合わせに基づきます。Recommendations on which channel, day of week and time of day to use when targeting users are based then on the channel and timing combination that the model predicts will have the highest probability a purchase being made.

ビジネスの観点Business Perspective

このソリューションでは、過去のキャンペーン データを活用した機械学習を用いて顧客の反応を予測し、潜在顧客とのつながり方と方法を推奨します。This solution employs machine learning leveraging historical campaign data to predict customer responses and recommend when and how to connect with your leads. 推奨事項には、潜在顧客に連絡するための最適なチャネル (この例では、電子メール、SMS、またはコールドコール)、最適な曜日、および連絡先する最適な時間帯が含まれています。The recommendations include the best channel to contact a lead (in our example, email, SMS, or cold call), the best day of the week and the best time of day in which to make the contact.

HDInsight Spark クラスターの Microsoft R Server は、R Server と Apache Spark の能力の組み合わせを活用して、ビッグ データに対応するスケーラブルな分散型機械学習機能を提供します。Microsoft R Server on HDInsight Spark clusters provides distributed and scalable machine learning capabilities for big data, leveraging the combined power of R Server and Apache Spark. このソリューションでは、マーケティング キャンペーンの最適化のために機械学習モデルを開発する方法 (データ処理、機能エンジニアリング、トレーニング、評価など)、Azure HDInsight Spark クラスター上の Microsoft R Server を用いて、モデルを Web サービスとして (エッジ ノード上に) デプロイし、Web サービスをリモートで使用する方法を示します。This solution demonstrates how to develop machine learning models for marketing campaign optimization (including data processing, feature engineering, training and evaluating models), deploy the models as a web service (on the edge node) and consume the web service remotely with Microsoft R Server on Azure HDInsight Spark clusters. 最終的な予測と推奨事項の表は、各潜在顧客に連絡する方法とタイミングに関する推奨事項を含む Hive テーブルに保存されます。The final predictions and recommendation table are saved to a Hive table containing recommendations for how and when to contact each lead. このデータは Power BI で視覚化されます。This data is then visualized in Power BI.

また Power BI では、キャンペーンの推奨事項 (ここではシミュレートされたデータ) の効果の視覚的な概要も表示されます。Power BI also presents visual summaries of the effectiveness of the campaign recommendations (shown here with simulated data). 右側の [今すぐ試す] ボタンをクリックすると、このダッシュボードを試すことができます。You can try out this dashboard by clicking the Try it Now button to the right.

このダッシュボードの [推奨事項] タブには、予測される推奨事項が表示されます。The Recommendations tab of this dashboard shows the predicted recommendations. 上部には、新しいデプロイの個々の潜在顧客の表があります。At the top is a table of individual leads for our new deployment. これには、潜在顧客 ID、キャンペーン、および製品のフィールドが含まれ、ビジネス ルールが適用される潜在顧客が表示されます。This includes fields for the lead ID, campaign, and product, populated with leads on which our business rules are to be applied. 次に、潜在顧客のモデル予測が続き、各潜在顧客に連絡する最適なチャネルと時間が提供されます。加えて、これらの推奨事項を使用して、潜在顧客が製品を購入する確率予測が提供されます。This is followed by the model predictions for the leads, giving the optimal channel and time to contact each one, along with the estimated probabilities that the leads will buy our product using these recommendations. これらの確率を使用して、連絡対象の潜在顧客の数を購入する可能性が最も高いサブセットに制限することで、キャンペーンの効率を高めることができます。These probabilities can be used to increase the efficiency of the campaign by limiting the number of leads contacted to the subset most likely to buy.

また、[推奨事項] タブには、潜在顧客に関する推奨事項と人口統計情報のさまざまな概要が記載されています。Also on the Recommendations tab are various summaries of recommendations and demographic information on the leads. ダッシュボードの [キャンペーンの概要] タブには、予測された推奨事項の作成に使用された履歴データの概要が表示されます。The Campaign Summary tab of the dashboard shows summaries of the historical data used to create the predicted recommendations. このタブには曜日、時刻、およびチャネルの値も表示されますが、これらの値は実際の過去の観測値であり、[推奨設定] タブに表示されるモデルによる推奨事項と混同しないようにしてください。While this tab also shows values of Day of Week, Time of Day, and Channel, these values are actual past observations, not to be confused with the recommendations from the model, shown on the Recommendations tab.

データ サイエンティストの観点Data Scientist Perspective

このソリューションでは、マーケティング キャンペーンの最適化のために機械学習モデルを開発およびデプロイする方法について、エンド ツー エンドのプロセスを示します。This solution demonstrates the end-to-end process of how to develop and deploy machine learning models for marketing campaign optimization. サンプル データ、モデル構築の各ステップのための R コード (データ処理、機能エンジニアリング、トレーニング、評価などとサンプルデータ) を含み、Azure HDInsight Spark クラスター上の Microsoft R Server を用いて、モデルを Web サービスとして (エッジ ノード上に) デプロイし、Web サービスをリモートで使用します。It contains sample data, R code for each step of building the model (including data processing, feature engineering, training and evaluating models along with sample data), deploying the model as a web service (on the edge node) and consuming the web service remotely with Microsoft R Server on Azure HDInsight Spark clusters.

このソリューションをテストするデータ サイエンティストは、Azure HDInsight Spark クラスターのエッジ ノードで実行されるブラウザー ベースのオープンソース エディションの RStudio Server から提供された R コードを操作できます。Data scientists who are testing this solution can work with the provided R code from the browser-based Open Source Edition of RStudio Server that runs on the Edge Node of the Azure HDInsight Spark cluster. コンピューティング コンテキストを設定することにより、ユーザーは計算を実行する場所 (エッジ ノードでローカル実行するか、Spark クラスター内のノード間で分散実行するか) を決定できます。By setting the compute context the user can decide where the computation will be performed: locally on the edge node, or distributed across the nodes in the Spark cluster. すべての R コードは、パブリック GitHub リポジトリにもあります。All the R code can also be found in public GitHub repository. お楽しみください!Have fun!