グラウンド トゥルース データを準備する
人口動態埋め込みを使用するには、グラウンド トゥルース データをサポートされている地理的境界に集計する必要があります。行政境界の種類は世界中で異なるため、ユニバーサルな数学的グリッド システム(S2 セルなど)または地域の行政区域(特定の国のデータセットに応じて、郡や地区など)を使用してデータをアライメントできます。
方法 1: 既存のモデルに埋め込みを組み込む
- 既存のモデルベースのグラウンド トゥルースを準備する: 埋め込みを地理空間共変量として使用して、既存のモデルを強化します。
- エラー訂正モデルをトレーニングする: 埋め込みを、元のモデル出力、期待値またはグラウンド トゥルース、埋め込みを入力として受け取るモデルに統合して、新しいエラー訂正モデルを学習することで、既存のモデルを改善します。
方法 2: 特定のユースケースに合わせて調整する
- 予測モデルを選択する: GBDT、MLP、線形など、任意のモデルを予測に使用できます。
- 埋め込みを予測に使用する: 人口動態埋め込みを入力特徴量として、他のコンテキスト データとともに使用して、予測精度を向上させます。
クエリの例
your-project.your_dataset.embeddings_table は、実際のプロジェクト、データセット、ターゲット テーブル名に置き換えます。
SQL: 埋め込みを取得する
このクエリは、プロビジョニングされたデータセット内の S2 セルの埋め込みベクトルと管理メタデータを取得します。
SELECT geo_id, administrative_area_level_1_name AS state, administrative_area_level_2_name AS county, features -- The 330-dim vector FROM `your-project.your_dataset.embeddings_table` LIMIT 10;
SQL: 類似するロケーションを検索する
このクエリは、外部データを必要とせずに、行動が類似しているロケーションを特定します。
ML.DISTANCE 関数を使用してコサイン類似度を計算し、ターゲット S2 セルの上位一致を返します。このアプローチは、既存の成功したロケーションのプロファイルに基づいて新しい店舗を開設する場所を決定するなど、拡大計画のシナリオをサポートします。
WITH TargetLocation AS ( SELECT features AS target_vector FROM `your-project.your_dataset.embeddings_table` -- Replace with your target S2 hex token (e.g., '80ead45') WHERE geo_id = 'YOUR_TARGET_S2_TOKEN' ) SELECT t.geo_id, t.administrative_area_level_1_name AS state, t.administrative_area_level_2_name AS county, -- Calculate Similarity (1.0 is identical, 0.0 is dissimilar) (1 - ML.DISTANCE(t.features, p.target_vector, 'COSINE')) AS similarity_score FROM `your-project.your_dataset.embeddings_table` t, TargetLocation p WHERE t.geo_id != `YOUR_TARGET_S2_TOKEN` -- Exclude the target itself ORDER BY similarity_score DESC LIMIT 20;
SQL: 顧客データを結合する
この例では、行動埋め込みを使用して独自の内部データ(店舗のパフォーマンス テーブルなど)を強化する方法を示します。内部データに一致する S2 セルトークン(16 進文字列)が含まれていることを確認してください。
SELECT store.store_id, store.s2_token, store.total_revenue, embeddings.features AS pdfm_vector FROM `your-project.internal_data.store_performance` AS store JOIN `your-project.your_dataset.embeddings_table` AS embeddings ON -- Join based on the S2 hex token string store.s2_token = embeddings.geo_id
Python: 機械学習用のデータを読み込む
埋め込みは BigQuery 配列として保存されます。ML ライブラリで使用するには、列を NumPy 行列に変換する必要があります。
from google.cloud import bigquery import numpy as np import pandas as pd client = bigquery.Client() query = """ SELECT geo_id, features -- Returns as a list of floats FROM `your-project.your_dataset.embeddings_table` LIMIT 1000 """ # 1. Load data into DataFrame df = client.query(query).to_dataframe() # 2. Convert the 'features' column (Series of Lists) into a Matrix (2D Array) X_matrix = np.stack(df['features'].values) print(f"Data Loaded. Matrix Shape: {X_matrix.shape}") # Output: Data Loaded. Matrix Shape: (1000, 330)