Анализ динамики населения — почтовые индексы США

Документация для разработчиков

Описание продукта

Population Dynamics Insights (PDI) — это набор данных встраивания, который преобразует данные о поведении человека и нашем взаимодействии с окружающей средой в краткие, готовые к анализу встраивания (или «цифровые отпечатки») в конкретных местах.

Эти векторные представления отражают закономерности в агрегированных данных, таких как поисковые тренды, тенденции активности и условия окружающей среды (карты, качество воздуха, погода), предоставляя подробную, специфичную для конкретного места картину того, как население взаимодействует со своим окружением. Агрегированные по пространству и времени, эти векторные представления обеспечивают конфиденциальность, одновременно позволяя проводить детальный пространственный анализ и прогнозирование для приложений, начиная от общественного здравоохранения и заканчивая социально-экономическим моделированием.

Обзор продукта

Эмбеддинги динамики популяции генерируются с использованием специально разработанной модели машинного обучения, обученной на обширном наборе признаков и преобразованной в сжатое векторное представление. Эти эмбеддинги обучаются и генерируются на основе:

  • Сводные данные о поисковых запросах : региональные интересы и проблемы, отраженные в поисковых данных.
  • Сводные картографические данные (включая данные о загруженности) : информация об удобствах, услугах и предприятиях в регионах, а также тенденции посещаемости.
  • Сводные данные о погоде и качестве воздуха : показатели, связанные с климатом, включая температуру и качество воздуха.

Эти характеристики агрегируются на уровне почтовых индексов для создания локализованных, контекстно-зависимых встраиваний, обеспечивающих конфиденциальность. PDI — это постоянно обновляемый набор данных временных рядов, новые фрагменты данных обрабатываются и разделяются ежемесячно. Данные обновляются и добавляются в таблицу данных к последнему дню следующего календарного месяца (например, данные за февраль публикуются не позднее 31 марта).

Предварительные требования

Для доступа к эмбеддингам динамики популяции вам необходимо получить разрешение. Если у вас нет доступа, обратитесь к своему представителю отдела продаж или инженеру по работе с клиентами.

  • Включите API Analytics Hub в консоли Cloud.
  • Включите API BigQuery в Cloud Console.
  • Обладаю практическими знаниями продукта BigQuery.
  • Убедитесь, что ваша учетная запись имеет роль «Владелец подписки Analytics Hub» ( roles/analyticshub.subscriptionOwner ), чтобы выполнять задачи, связанные с подписчиками.
  • Убедитесь, что ваша учетная запись имеет роль пользователя BigQuery ( roles/bigquery.user ), чтобы создавать наборы данных.

Если вы новичок в работе с эмбеддингами или машинным обучением в BigQuery, мы настоятельно рекомендуем пройти следующие обучающие материалы, прежде чем приступать к анализу:

  • Краткий курс по машинному обучению: Эмбеддинги : базовый, динамичный обзор того, как модели машинного обучения используют эмбеддинги для преобразования многомерных данных в пространство меньшей размерности с сохранением семантических связей.
  • Начало работы с векторным поиском и встраиванием данных : практическое занятие в рамках программы Google Cloud Skills Boost, посвященное векторному встраиванию данных, семантическому сходству и тому, как использовать встраивание данных в рамках всей экосистемы Google Cloud.
  • Учебные пособия по машинному обучению в BigQuery (BQML) : Поскольку набор данных PDI размещен в BigQuery, это позволяет обучать и запускать модели машинного обучения непосредственно на эмбеддингах с использованием стандартного SQL, без необходимости экспорта данных.

Используйте встраивания

Разберитесь в данных.

Прежде чем приступить к анализу, уделите немного времени ознакомлению со структурой схемы.

Организация набора данных

Эмбеддинги организованы в отдельные таблицы BigQuery для каждой страны или тестового региона.

Анатомия вектора встраивания

Столбец features представляет собой 330-мерный вектор (хранящийся в BigQuery как REPEATED FLOAT ). Каждая секция массива соответствует определенному сигналу данных, извлеченному моделью динамики популяции.

Понимание этой структуры позволяет исключить влияние отдельных факторов (например, определить, насколько поведение в поиске влияет на продажи по сравнению с погодой).

Векторные индексы Источник данных Описание
0 – 127 Сводные поисковые тренды Отражает региональные интересы и проблемы (например, поисковые запросы типа «спортзал», «симптомы гриппа», «предметы роскоши»).
128 – 255 Карты и загруженность Отображает городскую среду (объекты интереса, такие как больницы, парки, школы) и потоки посетителей, чтобы показать места, представляющие интерес.
256 – 329 Погода и качество воздуха Учитывает экологический контекст (температура, осадки, качество воздуха).

Ключевые столбцы и метаданные

Таблица встраивания содержит пространственные и временные метаданные, позволяющие проводить геопространственный анализ, фильтрацию и обеспечивать взаимодействие с другими сервисами.

Поскольку один и тот же почтовый индекс может иногда выходить за пределы административных границ (например, границ графств), поля, описывающие административные районы, предоставляются в виде массивов.

  • geo_id : Уникальный идентификатор места, связанный с этим почтовым индексом.
  • geo_name : Строка почтового индекса региона (например, '90210' ).
  • administrative_area_level_1_names : Список ( ARRAY<STRING> ) удобочитаемых названий границ верхнего уровня (например, ['California'] ).
  • administrative_area_level_1_ids : Список ( ARRAY<STRING> ) уникальных идентификаторов мест (Place ID) для административных границ верхнего уровня, которые пересекает данный почтовый индекс (например, штат или провинция).
  • administrative_area_level_2_names : Список ( ARRAY<STRING> ) удобочитаемых названий второстепенных границ (например, ['Los Angeles County'] ).
  • administrative_area_level_2_ids : Список ( ARRAY<STRING> ) уникальных идентификаторов мест для вторичных административных границ, с которыми пересекается данный почтовый индекс (например, графство или район).
  • features : Основной 330-мерный вектор встраивания, хранящийся в исходном виде как ARRAY<FLOAT64> . Для загрузки его в Pandas с помощью Python требуется преобразование в матрицу NumPy.
  • snapshot_date : DATE в формате YYYY-MM-DD , стандартизированная таким образом, чтобы использовался только первый день месяца. Представляет собой конкретный месячный временной интервал, из которого были агрегированы входные признаки для генерации данных эмбеддингов. Например, данные за апрель 2026 года будут отформатированы как 2026-04-01 .

Подготовка данных для проверки достоверности данных

Для использования эмбеддингов динамики населения ваши эталонные данные должны быть агрегированы по поддерживаемой географической границе (почтовым индексам).

Вариант 1: Включение эмбеддингов в существующую модель.

  1. Подготовка эталонных данных на основе существующей модели : используйте эмбеддинги в качестве геопространственных ковариат для улучшения существующей модели.
  2. Обучение модели коррекции ошибок : улучшение существующей модели путем интеграции эмбеддингов в модель, которая принимает исходные выходные данные модели, ожидаемое значение или истинные значения и эмбеддинги для обучения новой модели коррекции ошибок.

Вариант 2: Настройка под конкретные сценарии использования.

  1. Выберите тип модели прогнозирования : для прогнозирования можно использовать любую модель, например, GBDT, MLP или линейную.
  2. Использование эмбеддингов для прогнозирования : Используйте эмбеддинги динамики популяций в качестве входных признаков, наряду с другими контекстными данными, для повышения точности прогнозирования.

Краткие фрагменты кода для быстрого старта

Используйте эти фрагменты кода, чтобы подтвердить свой доступ и понять формат данных.

1. SQL: Получение эмбеддингов за конкретный месяц

Поскольку PDI представляет собой набор данных временных рядов, обычно следует фильтровать данные по snapshot_date , чтобы избежать возврата повторяющихся почтовых индексов за несколько месяцев. День всегда должен быть установлен на -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: Фильтрация по административной области (развертывание массивов)

Поскольку почтовые индексы могут охватывать несколько административных границ, поля administrative_area_* хранятся в виде массивов. Для фильтрации всех почтовых индексов в пределах определенного штата (например, «Калифорния») необходимо использовать функцию UNNEST() в 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: Поиск похожих местоположений

Этот запрос выявляет места со схожим поведением без использования внешних данных. Он использует функцию ML.DISTANCE для вычисления косинусного сходства, возвращая лучшие совпадения для целевого почтового индекса.

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: Объединение данных о клиентах

В этом примере показано, как обогатить собственные внутренние данные (например, таблицу производительности магазина) поведенческими встраиваниями путем объединения данных по почтовому индексу.

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: Загрузка данных для машинного обучения

Эмбеддинги хранятся в виде массивов BigQuery. Для их использования в библиотеках машинного обучения необходимо преобразовать столбец в матрицу 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)

Часто задаваемые вопросы (FAQ)

Могу ли я получить доступ к исходным данным (например, к конкретным поисковым запросам или трассировкам перемещений)?

Нет. Встраивания данных о динамике популяции генерируются на основе агрегированных сигналов, обеспечивающих конфиденциальность. Для обеспечения конфиденциальности пользователей мы не предоставляем конкретные данные о перемещениях пользователей, истории индивидуальных поисков или необработанные модели перемещений. Встраивания предоставляют скрытое представление этих моделей поведения, оптимизированное для моделирования и прогнозирования, а не для анализа исходных данных.

Как выбрать поисковые запросы, используемые для генерации векторных представлений?

Мы используем сущности графа знаний (KG) вместо прямых поисковых запросов. Например, запросы типа «бойфренд Тейлор Свифт» и «тайт-энд KC» будут соответствовать одной и той же базовой сущности KG («Трэвис Келси»). Такой подход не зависит от языка, охватывает более широкие семантические категории и значительно повышает конфиденциальность.

Можно ли интерпретировать векторные размерности (например, является ли размерность 5 «кофе»?)?

Нет, векторы представляют собой скрытые представления. Поскольку признаки изучаются моделью машинного обучения, не существует простого семантического сопоставления или однозначного преобразования от конечного векторного индекса к конкретному входному источнику. Хотя мы знаем, какие блоки индексов происходят из каких наборов данных (например, индексы 0–127 представляют собой поисковые тренды), конкретный индекс, такой как Индекс 5, не соответствует одному ключевому слову. Вместо этого он представляет собой сложный, абстрактный признак, изученный моделью.

Содержит ли набор данных границы полигонов (шейп-файлы)?

Нет. Набор данных содержит почтовые индексы ( geo_name ) и соответствующие им идентификаторы мест ( geo_id ), но не включает в себя исходные полигональные геометрии (например, в формате WKT).

В зависимости от ваших конкретных задач мы рекомендуем следующие подходы:

  • Для визуализации на Google Maps : вы можете использовать идентификаторы мест, предоставленные в geo_id, для оформления и отображения границ непосредственно на карте с помощью управления данными (Data-driven Styling). Хотя эти границы идеально подходят для визуального отображения, их нельзя экспортировать в виде необработанных геометрических файлов.
  • Для пространственного объединения и анализа : если вам нужны необработанные пространственные полигоны, мы рекомендуем объединить этот набор данных с общедоступными наборами данных о границах (например, доступными в общедоступных наборах данных BigQuery), используя почтовый индекс geo_name.

Каков временной интервал набора данных эмбеддингов?

Эмбеддинги PDI обновляются ежемесячно, при этом каждый новый месяц добавляется в набор данных. Данные представлены с использованием столбца snapshot_date (форматированного как YYYY-MM-DD ), что обеспечивает стабильную базовую линию, отражающую поведенческие и физические характеристики местоположения за данный месяц.