Azure Data Factory と Azure Machine Learning を活用する

このポストは、10 月 5 日に投稿された Getting started with Azure Data Factory and Azure Machine Learning の翻訳です。

 

今回の記事では、Azure Data Factory の新しい AzureMLBatchExecution アクティビティを使用して Azure Machine Learning と連携する方法の最新情報についてご紹介します。Azure Data Factory では、Pig や Hive などのビッグ データ パイプラインを作成して各種データ ソースのデータを処理し、Azure Machine Learning Web サービスを利用して顧客の行動を予測できます。たとえば、次の例を見てみましょう。

モバイル サービス運営会社で、今後数か月の間にサブスクリプションを解約しそうな顧客を見きわめたい場合、顧客離れを防ぐために、実践可能で効果的な方法を生のデータから導き出すことができます。ここからは、1 か月以内に解約する可能性が高いモバイル ユーザーを特定するエンドツーエンド ソリューションの例をご紹介しましょう。

Azure Data Factory では、Azure Blobs ストレージへのデータの取り込み、HDInsight クラスターやジョブ実行の管理、Machine Learning 処理の実行、Azure Blobs ストレージへの最終結果の発行など、すべての処理やリソースのオーケストレーションを簡単に行うことができます。HDInsight で実行する Hive クエリによって集計された通話情報 (顧客 1 人あたりの 1 か月の通話の通話分数) を顧客プロファイルにマージし、顧客離れの可能性を解析する Azure Machine Learning モデルへの入力に使用します (下図を参照)。

この図では、HDInsight クラスターで集計を行う Hive ジョブを AggregateMobileCustomerUsage パイプラインで実行しています。集計されたデータは Azure Machine Learning モデルを呼び出す PredictCustomerChurnPipeline の入力に使用されます。

このソリューションには重要な 2 つの要素があります。

  1. Azure Machine Learning : 顧客離れモデルのデプロイ
  2. Azure Data Factory : 発行された Azure Machine Learning Web サービスの利用

Azure Machine Learning – 顧客離れモデルのデプロイ

データ サイエンティストによる予測実験を見てみましょう。以下の図のような Web Service Input と Web Service Output があります。Web Service Input は、発行された Web サービスに入力するデータを指定して、顧客が解約する可能性の予測結果を生成します。Web Service Output は予測結果が書き込まれる Azure Blobs ストレージを指定します。Web Service Input と Web Service Output は Azure Machine Learning で予測実験を作成すると自動的に作成されます。詳細については、「Azure Machine Learning Web サービスをデプロイする」を参照してください。

予測実験を Web サービスとしてデプロイしたら、Web サービスのダッシュボードで API キーと Batch URI を確認します (以下の図を参照)。API キーと Batch URI は、次の工程で Azure Data Factory とリンクされたサービスを作成するのに使用します。

 

Azure Data Factory - 発行された Azure Machine Learning Web サービスの利用

Batch URI と API キーを入手したら、Azure Data Factory パイプラインで AzureMLBatchExecution アクティビティを使用して入力データを評価し、定期的に実行するようにスケジュールを設定できます。

Azure Machine Learning への接続に必要な情報を指定するには、リンクされたサービスの定義が必要になります。以下はリンクされたサービスの ADFMobileCustomerChurnML です。このリンクされたサービスでは、mlEndpoint プロパティで先に取得した Batch URI と、デプロイされた Azure Machine Learning Web サービスへのアクセスに必要な API キーも指定しています。

次に、リンクされたサービスを Azure Data Factory パイプラインで使用します。このパイプライン (以下を参照) では、AzureMLBatchExecution アクティビティでリンクされたサービスの ADFMobileCustomerChurnML を参照しています。このアクティビティは毎月、依存関係 ( “inputs”:[ { “name” :MergedCustomerProfileCallTrendsCSV”} ] ) が入力されると実行するよう設定されています。このため、ビッグ データ パイプライン上流のデータ処理の完了を条件に Web サービスを呼び出すことができます。

また、アクティビティ定義にはデプロイされた Web サービスの入力データの提供元として MergedCustomerProfileCallTrendsCSV データセットが指定されています。MergedCustomerProfileCallTrendsCSV データセットは Azure Blobs ストレージに保存されている処理を参照しています。発行された Azure Machine Learning Web サービスによるバッチ スコアリングが完了すると、PredictedChurnCustomersBlob データセットが指定するストレージにデータ (顧客の解約可能性を含む) が書き込まれます。

詳細については、Azure Machine Learning と連携した Azure Data Factory パイプラインの作成方法を参照してください。


メモ: AzureMLBatchScoring アクティビティを使用して Azure Machine Learning と連携している場合は、最新の AzureMLBatchExecution アクティビティ (Azure Windows PowerShell の最新リリースで入手可能) の使用をお勧めします。

AzureMLBatchExecution アクティビティ (2015 年 8 月にリリース) では、デプロイされた Azure Machine Learning Web サービスの入出力と Azure Data Factory データセット定義がわかりやすくなり、Web サービスが提供するパラメーターの値も明確に指定できます。


Azure Machine Learning や Data Factory と連携したソリューションの詳しい構築方法については、製品ドキュメントを参照してください。

Azure Data Factory や Azure Machine Learning を連携するソリューションを構築している方は、フォーラム (英語) でご意見、ご感想をお聞かせください。

次回の Azure Data Factory 関連ブログ記事もどうぞお楽しみに!