Documentazione per gli sviluppatori
Descrizione prodotto
Population Dynamics Insights (PDI) è un insieme di dati di incorporamento che distillano dati sul comportamento umano e sulla nostra interazione con l'ambiente in incorporamenti concisi e pronti per l'analisi (o "impronte digitali") in località specifiche.
Questi incorporamenti acquisiscono pattern in dati aggregati come tendenze di ricerca, tendenze di affollamento e condizioni ambientali (mappe, qualità dell'aria, meteo), fornendo un'istantanea ricca e specifica per località di come le popolazioni interagiscono con l'ambiente circostante. Aggregati nello spazio e nel tempo, questi incorporamenti garantiscono la privacy e consentono un'analisi e una previsione spaziale dettagliata per applicazioni che vanno dalla salute pubblica alla modellazione socioeconomica.
Panoramica del prodotto
Gli incorporamenti della dinamica della popolazione vengono generati utilizzando un modello di machine learning creato appositamente, addestrato su un ricco insieme di funzionalità e convertito in una rappresentazione vettoriale condensata. Questi incorporamenti vengono addestrati e generati a partire da:
- Tendenze di ricerca aggregate: interessi e preoccupazioni regionali riflessi nei dati di ricerca.
- Dati aggregati di Maps (incluso l'affollamento): servizi, attività e negozi nelle regioni, nonché tendenze locali di visite.
- Meteo e qualità dell'aria aggregati: metriche correlate al clima, tra cui temperatura e qualità dell'aria.
Queste funzionalità vengono aggregate a livello di codice postale per generare incorporamenti localizzati e sensibili al contesto che preservano la privacy. PDI è un set di dati di serie temporali in continua evoluzione, con nuove sezioni di dati elaborate e partizionate mensilmente. I dati vengono aggiornati e aggiunti alla tabella dei dati entro l'ultimo giorno del mese di calendario successivo (ad esempio, i dati di febbraio vengono pubblicati entro il 31 marzo).
Prerequisiti
Per accedere agli incorporamenti di Dinamiche della popolazione, devi disporre dell'accesso. Se non hai accesso, contatta il tuo rappresentante di vendita o di ingegneria dei clienti.
- Abilita l'API Analytics Hub in Cloud Console.
- Abilita l'API BigQuery in Cloud Console.
- Avere una conoscenza pratica del prodotto BigQuery.
- Assicurati che il tuo account disponga del ruolo Proprietario dell'abbonamento Analytics Hub
(
roles/analyticshub.subscriptionOwner) per eseguire le attività degli abbonati. - Assicurati che il tuo account disponga del ruolo Utente BigQuery (
roles/bigquery.user) per creare set di dati.
Addestramento consigliato
Se non hai mai lavorato con gli incorporamenti o BigQuery Machine Learning, ti consigliamo vivamente di completare i seguenti materiali di formazione prima di iniziare l'analisi:
- Machine Learning Crash Course: Embeddings: una panoramica di base e rapida di come i modelli di machine learning utilizzano gli incorporamenti per tradurre dati ad alta dimensionalità in uno spazio a dimensionalità inferiore, preservando al contempo le relazioni semantiche.
- Getting Started with Vector Search and Embeddings: un lab pratico di Google Cloud Skills Boost che introduce gli incorporamenti vettoriali, la somiglianza semantica e come utilizzare gli incorporamenti all'interno dell'ecosistema Google Cloud più ampio.
- Tutorial su BigQuery Machine Learning (BQML): Poiché il set di dati PDI è ospitato in BigQuery, ti consente di addestrare ed eseguire modelli di machine learning direttamente sugli incorporamenti utilizzando SQL standard, senza dover esportare i dati.
Utilizzare gli incorporamenti
Comprendere i dati
Prima di iniziare l'analisi, rivedi la struttura dello schema.
Organizzazione del set di dati
Gli incorporamenti sono organizzati in tabelle BigQuery separate per ogni paese o regione di test.
Anatomia del vettore di incorporamento
La colonna features è un vettore a 330 dimensioni (memorizzato come array REPEATED FLOAT
in BigQuery). Ogni sezione dell'array corrisponde a un segnale di dati specifico estratto dal modello Dinamiche della popolazione.
La comprensione di questa struttura consente l'ablazione delle funzionalità (ad esempio, determinare in che misura il comportamento di ricerca prevede le vendite rispetto al meteo).
| Indici vettoriali | Origine dati | Descrizione |
|---|---|---|
| 0-127 | Tendenze di ricerca aggregate | Acquisizione di interessi e preoccupazioni a livello regionale (ad esempio, ricerche di "palestra", "sintomi influenzali", "beni di lusso"). |
| 128 - 255 | Mappe e affollamento | Acquisisce l'ambiente costruito (punti di interesse come ospedali, parchi, scuole) e le visite umane per mostrare i luoghi di interesse. |
| 256 - 329 | Meteo e qualità dell'aria | Acquisisce il contesto ambientale (temperatura, precipitazioni, qualità dell'aria). |
Colonne chiave e metadati
La tabella degli incorporamenti contiene metadati spaziali e temporali che consentono l'analisi geospaziale, il filtraggio e l'interoperabilità con altri servizi.
Poiché un singolo codice postale può occasionalmente attraversare i confini amministrativi (come i confini della contea), i campi dell'area amministrativa vengono forniti come array.
geo_id: l'ID luogo univoco associato a questo codice postale.geo_name: La stringa del codice postale per la regione (ad esempio,'90210').administrative_area_level_1_names: un elenco (ARRAY<STRING>) di nomi leggibili per i confini di primo livello (ad esempio,['California']).administrative_area_level_1_ids: un elenco (ARRAY<STRING>) di ID luogo univoci per i confini amministrativi di primo livello intersecati da questo codice postale (ad esempio, stato o provincia).administrative_area_level_2_names: un elenco (ARRAY<STRING>) di nomi leggibili per l'uomo per i confini secondari (ad esempio,['Los Angeles County']).administrative_area_level_2_ids: un elenco (ARRAY<STRING>) di ID luogo univoci per i confini amministrativi secondari intersecati da questo codice postale (ad esempio, contea o distretto).features: il vettore di embedding principale a 330 dimensioni, archiviato in modo nativo comeARRAY<FLOAT64>. Il caricamento in Pandas utilizzando Python richiede l'appiattimento o la conversione in una matrice NumPy.snapshot_date: unDATEformattato comeYYYY-MM-DD, standardizzato in modo da utilizzare solo il primo giorno del mese. Rappresenta la specifica porzione di tempo mensile da cui sono state aggregate le funzionalità degli input per generare i dati degli incorporamenti. Ad esempio, i dati di aprile 2026 verranno formattati come2026-04-01.
Prepara i dati di riferimento
Per utilizzare gli incorporamenti di Dinamiche della popolazione, i dati empirici devono essere aggregati a un confine geografico supportato (codici postali).
Opzione 1: incorpora gli embedding in un modello esistente
- Prepara dati empirici e reali basati su modelli esistenti: utilizza gli incorporamenti come covariate geospaziali per migliorare un modello esistente.
- Addestra un modello di correzione degli errori: migliora un modello esistente integrando gli incorporamenti in un modello che prende l'output del modello originale, il valore previsto o i dati empirici e reali e gli incorporamenti per apprendere un nuovo modello di correzione degli errori.
Opzione 2: ottimizza per casi d'uso specifici
- Scegli un tipo di modello di previsione: per le previsioni è possibile utilizzare qualsiasi modello, ad esempio GBDT, MLP o lineare.
- Utilizza gli incorporamenti per la previsione: utilizza gli incorporamenti di dinamiche della popolazione come funzionalità di input, insieme ad altri dati contestuali, per migliorare l'accuratezza della previsione.
Snippet di codice per l'avvio rapido
Utilizza questi snippet per verificare l'accesso e comprendere il formato dei dati.
1. SQL: recupero degli embedding per un mese specifico
Poiché PDI è un insieme di dati di serie temporali, in genere devi filtrare in base a
snapshot_date per non restituire codici postali duplicati in più
mesi. Il giorno deve essere sempre impostato su -01.
SELECT
snapshot_date,
geo_name AS postal_code,
geo_id AS place_id,
features -- The 330-dim vector
FROM
`your-project.population_dynamics___us___domestic.v1_postal_code.embeddings_table`
WHERE
snapshot_date = '2025-10-01' -- You must use the first of the month ('-01')
LIMIT 10;
2. SQL: filtrare in base all'area amministrativa (separazione degli array)
Poiché i codici postali possono estendersi su più confini amministrativi, i campi
administrative_area_* vengono memorizzati come array. Per filtrare tutti i codici postali
all'interno di uno stato specifico (ad esempio, "California"), devi utilizzare
la funzione UNNEST() di BigQuery.
SELECT
snapshot_date,
geo_name AS postal_code,
admin1_name
FROM
your-project.population_dynamics___us___domestic.v1_postal_code.embeddings_table,
UNNEST(administrative_area_level_1_names) AS admin1_name
WHERE
-- On or after October 2025
snapshot_date >= '2025-10-01' -- You must use the first of the month ('-01')
AND admin1_name = 'California'
LIMIT 10;
3. SQL: Finding Similar Locations
Questa query identifica località con un comportamento simile senza richiedere dati esterni. Utilizza la funzione ML.DISTANCE per calcolare la similarità del coseno,
restituendo le corrispondenze migliori per un codice postale di destinazione.
WITH TargetLocation AS (
SELECT features AS target_vector
FROM `your-project.population_dynamics___us___domestic.v1_postal_code.embeddings_table`
WHERE snapshot_date = '2025-10-01' -- You must use the first of the month ('-01')
AND geo_name = '90210' -- Replace with your target postal code
LIMIT 1
)
SELECT
t.geo_name AS postal_code,
-- 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.population_dynamics___us___domestic.v1_postal_code.embeddings_table` t,
TargetLocation p
WHERE
t.snapshot_date = '2025-10-01' -- You must use the first of the month ('-01')
AND t.geo_name != '90210' -- Exclude the target itself
ORDER BY
similarity_score DESC
LIMIT 20;
4. SQL: Joining Customer Data
Questo esempio mostra come arricchire i tuoi dati interni (ad esempio una tabella sul rendimento del negozio) con incorporamenti comportamentali unendo il codice postale.
SELECT
store.store_id,
store.postal_code,
store.total_revenue,
embeddings.features AS pdi_vector
FROM
`your-project.internal_data.store_performance` AS store
JOIN
`your-project.population_dynamics___us___domestic.v1_postal_code.embeddings_table` AS embeddings
ON
store.postal_code = embeddings.geo_name
WHERE
embeddings.snapshot_date = '2025-10-01' -- You must use the first of the month ('-01')
5. Python: caricamento dei dati per il machine learning
Gli incorporamenti vengono archiviati come array BigQuery. Per utilizzarli nelle librerie ML, devi convertire la colonna in una matrice NumPy.
from google.cloud import bigquery
import numpy as np
import pandas as pd
client = bigquery.Client()
query = """
SELECT
geo_name,
features -- Returns as a list of floats
FROM
`your-project.population_dynamics___us___domestic.v1_postal_code.embeddings_table`
WHERE
snapshot_date = '2025-10-01' -- You must use the first of the month ('-01')
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)
Domande frequenti
Posso accedere ai dati di input non elaborati (ad esempio, query di ricerca specifiche o tracce di mobilità)?
No. Gli incorporamenti delle dinamiche della popolazione vengono generati da indicatori aggregati che rispettano la privacy. Per garantire la privacy degli utenti, non forniamo tracce specifiche degli utenti, cronologie delle ricerche individuali o modelli di movimento grezzi. Gli incorporamenti forniscono una rappresentazione latente di questi comportamenti, ottimizzata per la modellazione e la previsione, anziché per l'analisi non elaborata.
Come vengono selezionati i termini di ricerca utilizzati per generare gli embedding?
Utilizziamo le entità Knowledge Graph (KG) anziché le query di ricerca non elaborate. Ad esempio, le query "fidanzato di taylor swift" e "tight end dei kc" verranno mappate alla stessa entità KG sottostante ("Travis Kelce"). Questo approccio è indipendente dalla lingua, acquisisce categorie semantiche più ampie e migliora significativamente la privacy.
Le dimensioni del vettore sono interpretabili (ad esempio, la dimensione 5 è "Caffè")?
No, i vettori sono rappresentazioni latenti. Poiché le funzionalità vengono apprese dal modello di machine learning, non esiste una semplice mappatura semantica o una traduzione uno a uno da un indice vettoriale finale a un input di origine specifico. Sebbene sappiamo quali blocchi di indici derivano da quali set di dati (ad esempio, gli indici 0-127 rappresentano le tendenze di ricerca), un indice specifico come l'indice 5 non corrisponde a una singola parola chiave. Rappresenta invece una caratteristica complessa e astratta appresa dal modello.
Il set di dati include i confini dei poligoni (Shapefile)?
No. Il set di dati fornisce i codici postali (geo_name) e i relativi ID luogo
(geo_id), ma non include geometrie poligonali non elaborate (come WKT).
A seconda del caso d'uso, ti consigliamo i seguenti approcci:
- Per la visualizzazione su Google Maps: puoi utilizzare gli ID luogo forniti in geo_id per applicare stili e rendering ai confini direttamente su una mappa utilizzando stili basati sui dati. Sebbene questi confini siano ideali per la visualizzazione, non possono essere esportati come file di geometria non elaborata.
- Per unioni e analisi spaziali: se hai bisogno di poligoni spaziali non elaborati, ti consigliamo di unire questo set di dati con set di dati sui confini pubblici (ad esempio quelli disponibili nei set di dati pubblici BigQuery) utilizzando il codice postale geo_name.
Qual è la finestra temporale del set di dati degli incorporamenti?
Gli incorporamenti PDI vengono aggiornati mensilmente con l'aggiunta di un nuovo mese al
set di dati. I dati sono rappresentati utilizzando la colonna snapshot_date (formattata come
YYYY-MM-DD), fornendo una base di riferimento stabile che riflette l'impronta comportamentale e
fisica di una località per il mese in questione.