レコメンデーションとパーソナライゼーション

ユーザーパーソナライゼーションとレコメンドシステムは、ユーザー体験向上とビジネス成長に不可欠だ。

以下、BigQuery MLとGoogleアナリティクスの豊富なデータを活用し、パーソナライゼーションとレコメンドモデルを構築する。BigQueryのGoogleアナリティクスサンプルデータセットを用いて、システムを構築するプロセスを解説する。

詳細なコードは、GitHubリポジトリで公開している。

Contents

  1. データの準備
  2. マトリックス分解モデルの構築
  3. レコメンドの生成
  4. モデルの評価
  5. パーソナライゼーションの実装
  6. まとめ

データの準備

効果的なレコメンデーションシステムを構築するには、データの準備が必要。以下のクエリを使用して、関連する特徴量を抽出する。

SQL
-- Step 1: Preparing the Data
CREATE OR REPLACE TABLE `predictive-behavior-analytics.Section9.user_item_interactions` AS
SELECT
  fullVisitorId,
  CONCAT(product.productSKU, '_', product.v2ProductName) AS item_id,
  SUM(product.productQuantity) AS interaction_count,
  SUM(product.productPrice * product.productQuantity) / 1000000 AS total_revenue
FROM
  `bigquery-public-data.google_analytics_sample.ga_sessions_*`,
  UNNEST(hits) AS hits,
  UNNEST(hits.product) AS product
WHERE
  _TABLE_SUFFIX BETWEEN '20170701' AND '20170731'
  AND hits.eCommerceAction.action_type = '6'  -- Completed purchase
GROUP BY
  fullVisitorId, item_id
HAVING
  interaction_count > 0;

このクエリは、完了した購入に焦点を当てたユーザーとアイテムの相互作用テーブルを作成する。

マトリックス分解モデルの構築

データの準備ができたら、BigQuery MLを使用してアイテムレコメンデーション用の行列因子分解モデルを作成しよう。

SQL
-- Step 2: Building the Matrix Factorization Model
CREATE OR REPLACE MODEL `predictive-behavior-analytics.Section9.item_recommendation_model`
OPTIONS(
  model_type='MATRIX_FACTORIZATION',
  user_col='fullVisitorId',
  item_col='item_id',
  rating_col='interaction_count',
  feedback_type='implicit'
) AS
SELECT
  fullVisitorId,
  item_id,
  interaction_count
FROM
  `predictive-behavior-analytics.Section9.user_item_interactions`;

このモデルは、ユーザーとアイテムのインタラクションに基づいて、ユーザーとアイテムの潜在因子を学習する。

レコメンドの生成

モデルのトレーニングが完了したら、ユーザーにパーソナライズされたレコメンデーションを生成する。

SQL
-- Step 3: Generating Recommendations
WITH user_item_pairs AS (
  SELECT DISTINCT
    ui1.fullVisitorId,
    ui2.item_id
  FROM
    `predictive-behavior-analytics.Section9.user_item_interactions` ui1
  CROSS JOIN
    (SELECT DISTINCT item_id FROM `predictive-behavior-analytics.Section9.user_item_interactions`) ui2
),
predictions AS (
  SELECT *
  FROM ML.PREDICT(MODEL `predictive-behavior-analytics.Section9.item_recommendation_model`,
    (SELECT * FROM user_item_pairs))
)
SELECT
  fullVisitorId AS user_id,
  ARRAY_AGG(STRUCT(item_id, predicted_interaction_count_confidence)
            ORDER BY predicted_interaction_count_confidence DESC
            LIMIT 5) AS top_5_recommendations
FROM predictions
GROUP BY fullVisitorId
LIMIT 10;

このクエリは、各ユーザーに対してトップ10のレコメンデーションアイテムを生成する。

モデルの評価

マトリックス分解レコメンドモデルの性能を評価するため、いくつかの重要な指標を使う。これらの指標は、モデルがユーザーとアイテムのインタラクションを予測し、関連するレコメンドを生成する際の有効性をさまざまな側面から示している。

評価指標

  1. 平均平均精度(MAP): 0.2503
  2. 平均二乗誤差(MSE): 0.0417
  3. 正規化割引累積利得(NDCG): 0.9750
  4. 平均ランク: 0.3338
平均平均精度 (MAP)
  • モデルは0.2503のMAPを達成し、推奨されたアイテムの約25%がユーザーの興味に合っていることを意味する。
  • 改善の余地はあるが、ユーザーの行動から間接的に好みを推測する方式では、これは決して悪くない結果と言える。もちろん、さらなる改善の余地はあるものの、現状でも十分に実用的な精度だと評価できる。
平均二乗誤差 (MSE)
  • 0.0417という低いMSEは、モデルの予測が実際のユーザー相互作用と密接に一致していることを示唆する。
  • これは、ユーザーとアイテムの相互作用の強さの予測精度が高いことを示す。
正規化割引累積利得 (NDCG)
  • 0.9750という高いNDCGは、モデルが関連性の高いアイテムをレコメンデーションリストの上位にランク付けしていることを示す。
  • この高スコアは、ユーザーがレコメンデーションの上位で最も関連性の高いアイテムを見つける可能性が高いことを意味する。
平均ランク
  • 0.3338の平均順位は、関連性の高いアイテムが通常レコメンデーションリストの上位3分の1以内に表示されることを示す。
  • これは、ユーザーが興味のあるアイテムを見つけるためにスクロールする必要がないことを示唆し、ユーザー体験を向上させる。

主な知見

  1. ランキングの効果:高いNDCGと低い平均ランクは、モデルが関連性の高いアイテムの優先順位付けに特に長けていることを示す。これはレコメンデーションシステムにおけるユーザー満足度に重要だ。
  2. 予測精度:低いMSEは、モデルがユーザーとアイテムの相互作用の強さを正確に予測していることを示し、ユーザーの嗜好を理解する上で価値がある。
  3. 関連性とランキング:MAPは全体的なレコメンデーションの関連性において中程度の性能を示唆するが、高いNDCGは最も関連性の高いアイテムが一貫してトップにランク付けされていることを示す。
  4. ユーザー体験:強力なランキング性能と低い平均順位の組み合わせは、ユーザーが関連性の高いアイテムをすぐに見つける可能性が高く、潜在的に高いエンゲージメントにつながることを示唆する。

結論

マトリックス分解レコメンドモデルは、特に関連性の高いアイテムのランク付けとユーザーとアイテムの相互作用の正確な予測において、堅牢な性能を示している。全体的な精度を改善する余地はあるが、関連性の高いレコメンデーションに優先順位を付ける能力が高いことから、このモデルはレコメンデーションシステムでユーザー体験とエンゲージメントを効果的に向上させると考えられる。

パーソナライゼーションの実装

アイテムのレコメンデーションにとどまらず、モデルを活用して幅広いパーソナライゼーションを実現できる。

  1. パーソナライズされたメールキャンペーン:各ユーザーに対して最適なレコメンデーションを使用し、ターゲットに合わせたメールコンテンツを作成する。
  2. ウェブサイトパーソナライゼーション: ユーザーの好みを基に、製品表示を動的に調整する。
  3. 特定ユーザー向けのプロモーション:ユーザーの興味を引くと予想される商品に割引を提供する。

まとめ

BigQuery MLとGoogle Analyticsのデータを活用することで、強力なパーソナライゼーションとレコメンデーションシステムを構築した。このアプローチにより、スケーラブルなデータ主導の意思決定が可能となり、ユーザー体験の向上とビジネス成長を促進する。

成功するパーソナライゼーションの鍵は、継続的な反復とテストにある。モデルを定期的に新しいデータで更新し、パフォーマンスを向上させるためにさまざまな機能を試すことが重要だ。

Follow by Email
LinkedIn
LinkedIn
Share