レコメンダーシステムで 幅広く深いモデルを構築する

この記事では、サンプル ノートブックを使用して、ワイドで詳細なモデルを使用したレコメンダー システムの構築について説明します。 幅広く詳細なレコメンダー システムの機械学習パイプラインを構築するには、次の図に示す段階が含まれます。

幅広く深いレコメンダーのワークフロー

このリファレンスソリューションは、青色で示されている段階をカバーしています。

  • モデルのトレーニングと評価

  • モデルのエクスポートとバージョン管理

  • バッチ モデルの推論

  • オンラインモデルサービング

対象外の ステップ の情報については、「 対象外のプロジェクトステージ」を参照してください。

ワイドアンドディープモデルとは何ですか?

レコメンダーシステムの効果的な選択肢であるワイド&ディープモデルは、線形モデルとディープラーニングモデルの機能を組み合わせたものです。 線形モデルは、顧客の選択に関連するヒストリカルデータを分析しますが、ディープラーニング機能は一般化して、関連する推奨事項の選択肢を拡張します。

詳細については、学術論文「レコメンダー システムのためのワイド & ディープラーニング」を参照してください。

Databricks ツールのハイライト

このノートブックでは、機械学習パイプラインの構築を簡略化する Databricks で提供されるいくつかのツールについて説明します。

  1. SparkDatasetConverter

  2. MLflow モデルレジストリ

ユーザー データセット を記述するノートブック

このノートブックで使用されるデータセットは、次の Delta テーブルで構成されています。

  • user_profile: user_id 値とその静的プロファイルが含まれます。

  • item_profile: item_id 値とその静的プロファイルが含まれます。

  • user_item_interaction: ユーザーがアイテムを操作するイベントが含まれます。 このテーブルは、モデルを構築および評価するためにランダムに分割され trainvalidationtestの 3 つの Delta テーブルです。

このデータ形式は、レコメンデーションの問題で一般的です。 いくつかの例は次のとおりです。

  • 広告レコメンダーの場合、アイテムは広告であり、ユーザーとアイテムのインタラクションはユーザーが広告をクリックしたレコードです。

  • オンラインショッピングのレコメンダーの場合、アイテムは製品であり、ユーザーとアイテムのインタラクションは、ユーザーがレビューまたは注文履歴を記録します。

このノートブックをデータセットに適合させる場合は、Delta テーブルにデータを保存し、テーブルの名前と場所を指定するだけで済みます。 データをロードするためのコードは、ほとんどの場合再利用できます。

詳細については、データセット生成ノートブックを参照してください。

データセット ノートブック を生成して保存する

ノートブックを新しいタブで開く

ノートブックの例: ワイド&ディープモデル

ワイドでディープなモデルは、ワイドな線形モデルとディープニューラルネットワークを組み合わせて、適切なレコメンデーションに必要な暗記と一般化を処理します。

このモデルは、レコメンダー問題または一般的な機械学習パイプラインに関する多くのディープラーニング モデルのほんの一例です。 ここでの焦点は、ワークフローの構築方法を示すことです。 独自のユースケースに合わせてさまざまなモデルをスワップし、より良い評価のためにモデルを調整できます メトリクス。

広く深いモデルを構築して、レコメンダーシステムノートブック で提供する

ノートブックを新しいタブで開く

カバー されていないプロジェクトの段階

ノートブックでレコメンダー システムの実装方法を示すことに集中できるように、次の段階については説明しません。 これらのステージは、ワークフロー図では灰色のブロックとして表示されます。

  1. データ収集と探索的データ分析。 「 Databricks で最初の ETL ワークロードを実行する」を参照してください

  2. 特徴エンジニアリング。 特徴エンジニアリングはレコメンダー システムの重要な部分であり、このトピックに関する多くの情報を利用できます。 このノートブックでは、ユーザーと項目の相互作用を含むキュレーションされたデータセットがあることを前提としています。 このノートブックで使用されるデータセットの詳細については、「 ユーザー データセットを記述するノートブック」を参照してください。 特徴エンジニアリングの詳細については、次のリソースを参照してください。

  3. モデルのチューニング。 モデルのチューニングには、モデルのパフォーマンスを向上させるために、特徴エンジニアリング、モデル構造、モデルのハイパーパラメーター、さらにはデータ収集ステージの更新など、既存のパイプラインのコードを修正することが含まれます。 Databricks でのモデル チューニングのツールの詳細については、「 ハイパーパラメーターの調整」を参照してください。