コンテンツ ベースのレコメンデーション システムを構築する

Azure Databricks
Azure Machine Learning

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

このアーティクルはソリューションのアイデアです。 このコンテンツにさらに多くの情報 (想定されるユース ケース、代替サービス、実装に関する考慮事項、価格ガイダンスなど) の掲載をご希望の方は、GitHub のフィードバックでお知らせください。

レコメンデーションは、多くの企業において収益を増やすための主要な手段であり、小売、ニュース、メディアなどのさまざまな業種で使用されています。 顧客のアクティビティに関する大量のデータを利用し、機械学習を使って関連性の高いレコメンデーションを提供できます。

アーキテクチャ

Architectural diagram that shows training, evaluation, and development of a machine learning model for content-based personalization that uses Azure Databricks.

このアーキテクチャの PowerPoint ファイルをダウンロードします。

データフロー

  1. Azure Data Lake Storage には、ユーザーとコンシューマーの行動に関する大量のデータが格納されます。

  2. 読み取り。 Azure Databricks では、Azure Data Lake Storage に接続して読み取ります。 Databricks へのインジェストにより、前処理とトレーニングを行ってモデルを登録できます。

  3. 前処理。 データの前処理では、データをクレンジング、変換、準備して、レコメンデーション システムのモデルに入力します。

  4. トレーニング。 トレーニングには、特徴エンジニアリングモデル トレーニングの 2 つの手順があります。 モデルのトレーニング時に、Azure Databricks では前処理されたデータセットを使用して、最適なレコメンデーション モデルの動作をトレーニングして説明します。

  5. 後処理。 後処理には、パフォーマンスの良いモデルに基づいたモデルの評価と選択が含まれます。

  6. デプロイします。 Azure Databricks では、モデルを維持します。 バッチ マネージド エンドポイントで、フロントエンド ディスプレイに公開するためのモデルがデプロイされます。 モデルがデプロイされると、新しいエンドポイントを介して新しいデータにアクセスできます。 バッチとほぼリアルタイムのレコメンデーションがサポートされています。

  7. 書き込み。 Web アプリケーションなどのユーザー インターフェイスでは、保存されたモデルの結果を使用できます。 結果は、Azure Synapse に書き込まれ、キャプチャされます。 モデルはバッチ推論として実行され、それぞれのデータストアに結果が格納されます。

Components

このアーキテクチャでは、次のコンポーネントを利用します。

  • Azure Data Lake Storage は、ビッグ データ分析専用のストレージ機能のセットで、ファイル システムのセマンティクス、ファイル レベルのセキュリティ、およびスケーリングを提供します。

  • Azure Databricks は、モデルのトレーニングと評価のためのマネージド Apache Spark クラスターです。

  • Azure Synapse Analytics は、高速で柔軟性のある、信頼性の高いクラウド データ ウェアハウスです。これにより、超並列処理アーキテクチャを使用して、弾力的かつ個別にスケーリング、計算、格納を行うことができます。

シナリオの詳細

この記事で説明するアプローチでは、コンテンツ ベースのレコメンデーション システムの構築に重点を置いています。 レコメンデーション システムの構築に関するベスト プラクティスの詳細については、GitHub の Recommenders のドキュメントと例を参照してください。

このシナリオ例では、機械学習を使って顧客に対するコンテンツ ベースのパーソナル化を自動化する方法を示します。 このソリューションでは、Azure Databricks を使用して、ユーザーが項目に関心を持つ確率を予測するモデルをトレーニングします。 バッチ マネージド エンドポイントでは、そのモデルを予測サービスとしてデプロイします。 この予測を使い、ユーザーが関心を持つ可能性が最も高いコンテンツに基づいて項目を順位付けすることにより、パーソナル化されたレコメンデーションを作成できます。

考えられるユース ケース

このソリューションは、小売業界に最適です。 これは、次のユース ケースに関連があります。

  • Web サイトおよびモバイル アプリ向けのコンテンツ レコメンデーション
  • eコマース サイト向けの製品レコメンデーション
  • Web サイトに表示される広告レコメンデーション

レコメンデーション システムの種類

レコメンデーション システムには、主に次の 3 つの種類があります。

  • 協調フィルタリング。 協調フィルタリングでは、顧客の行動において類似したパターンが識別され、他の似た顧客が関心を示した項目が推奨されます。 協調フィルタリングの利点は、データを生成しやすいことです。ユーザーは、項目や製品の一覧を操作しながらデータを作成します。 さらに、顧客は、過去の操作からキュレーションされたもの以外の新しい項目や製品を発見できます。 ただし、協調フィルタリングの欠点は "コールド スタート" の問題です。ユーザーと新しいオファリングの間のやり取りが不足しているため、新しく追加された項目は、顧客の操作に完全に依存するアルゴリズムでは推奨されません。

  • コンテンツ ベース。 コンテンツ ベースのレコメンデーションでは、アイテムに関する情報を使って顧客の好みが学習され、顧客が前に関心を示したアイテムと同じプロパティを持つアイテムが推奨されます。 コンテンツ ベースのレコメンデーション システムはコールド スタートの問題に妨げられることがないので、新しい項目の導入に適応できます。 ただし、おすすめ候補は、顧客が操作した元の項目の特徴に限定されます。

  • ハイブリッドメソッド。 レコメンデーション システムを構築するもう 1 つのアプローチは、コンテンツ ベースと協調フィルタリングを組み合わせたものです。 このシステムでは、ユーザー評価と項目に関する情報に基づいて項目を推奨します。 ハイブリッド アプローチには、協調フィルタリングとコンテンツ ベースのレコメンデーションの両方の利点があります。

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパル作成者:

  • Scott Graham |プリンシパル データ サイエンティスト

その他の共同作成者:

  • Andrew Ajaluwa | プログラム マネージャー
  • Gary Moore | プログラマー/ライター

パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。

次の手順