תיעוד למפתחים
תיאור המוצר
תובנות לגבי דינמיקה של אוכלוסייה (PDI) הן מערך נתונים של הטמעות שממצה נתונים על התנהגות אנושית והאינטראקציה שלנו עם הסביבה להטמעות תמציתיות שמוכנות לניתוח (או "טביעות אצבע דיגיטליות") במיקומים ספציפיים.
ההטמעות האלה מתעדות דפוסים בנתונים מצטברים, כמו מגמות חיפוש, מגמות עומס ותנאים סביבתיים (מפות, איכות אוויר, מזג אוויר), ומספקות תמונה עשירה וספציפית למיקום של האופן שבו אוכלוסיות מתקשרות עם הסביבה שלהן. ההטמעות האלה מצטברות על פני מרחב וזמן, וכך הן מבטיחות פרטיות ומאפשרות ניתוח מרחבי מורכב וחיזוי עבור אפליקציות שונות, החל מאפליקציות בתחום בריאות הציבור ועד לאפליקציות בתחום המודלים הסוציו-אקונומיים.
סקירה כללית על המוצר
הטמעות של דינמיקה באוכלוסייה נוצרות באמצעות מודל למידת מכונה שנוצר במיוחד למטרה הזו, שאומן על מערך עשיר של מאפיינים והומר לייצוג וקטורי דחוס. ההטמעות האלה מאומנות ונוצרות על סמך:
- מגמות חיפוש מצטברות: תחומי עניין ובעיות אזוריים שמשתקפים בנתוני החיפוש.
- נתונים מצטברים של מפות Google (כולל עומס): מתקנים, שירותים ועסקים באזורים, לצד מגמות מקומיות של ביקורים.
- מזג אוויר ואיכות אוויר מצטברים: מדדים שקשורים לאקלים, כולל טמפרטורה ואיכות אוויר.
התכונות האלה מצטברות ברמת המיקוד כדי ליצור הטמעות מקומיות שמתחשבות בהקשר ושומרות על הפרטיות. ה-PDI הוא מערך נתונים מתמשך של סדרות זמן, עם פרוסות נתונים חדשות שעוברות עיבוד וחלוקה מדי חודש. הנתונים מתעדכנים ומתווספים לטבלת הנתונים עד היום האחרון של החודש הקלנדרי הבא (לדוגמה, נתונים של פברואר מתפרסמים עד 31 במרץ).
דרישות מוקדמות
כדי לגשת להטמעות של נתונים על דינמיקה של אוכלוסיות, צריך לקבל הרשאת גישה. אם אין לכם גישה, פנו לנציג המכירות או לנציג הנדסת הלקוחות שלכם.
- מפעילים את Analytics Hub API במסוף Cloud.
- מפעילים את BigQuery API ב-Cloud Console.
- ידע מעשי במוצר BigQuery.
- כדי לבצע משימות שקשורות למנויים, צריך לוודא שבחשבון שלכם מוגדר התפקיד 'בעלים של מינוי ל-Analytics Hub' (
roles/analyticshub.subscriptionOwner). - מוודאים שלחשבון שלכם יש את התפקיד 'משתמש ב-BigQuery' (
roles/bigquery.user) כדי ליצור מערכי נתונים.
הדרכה מומלצת
אם אתם חדשים בעבודה עם הטמעות או עם למידת מכונה ב-BigQuery, מומלץ מאוד לעיין בחומרי ההדרכה הבאים לפני שתתחילו בניתוח:
- קורס מזורז ללמידת מכונה: הטמעות (embeddings): סקירה בסיסית ומהירה של האופן שבו מודלים של למידת מכונה משתמשים בהטמעות כדי לתרגם נתונים רב-ממדיים למרחב נמוך-ממדי, תוך שמירה על קשרים סמנטיים.
- תחילת העבודה עם חיפוש וקטורים והטמעות: שיעור Lab מעשי ב-Google Cloud Skills Boost שמציג הטמעות וקטורים, דמיון סמנטי והסבר על השימוש בהטמעות במסגרת האקוסיסטם הרחב של Google Cloud.
- מדריכים בנושא למידת מכונה ב-BigQuery (BQML): מכיוון שמערך הנתונים של PDI מתארח ב-BigQuery, אפשר לאמן ולהפעיל מודלים של למידת מכונה ישירות על ההטמעות באמצעות SQL סטנדרטי, בלי לייצא את הנתונים.
שימוש בהטמעות
הסבר על הנתונים
לפני שמתחילים בניתוח, כדאי להקדיש רגע לבדיקת מבנה הסכימה.
ארגון מערך הנתונים
ההטמעות מאורגנות בטבלאות נפרדות ב-BigQuery לכל מדינה או אזור בדיקה.
המבנה של וקטור ההטמעה
העמודה features היא וקטור תלת-ממדי (מאוחסן כמערך REPEATED FLOAT ב-BigQuery). כל חלק במערך מתאים לאות נתונים ספציפי שחולץ על ידי המודל של דינמיקת האוכלוסייה.
הבנת המבנה הזה מאפשרת לבצע הסרה של תכונות (לדוגמה, אפשר לקבוע עד כמה התנהגות החיפוש חוזה מכירות בהשוואה למזג האוויר).
| אינדקסים וקטוריים | מקור נתונים | תיאור |
|---|---|---|
| 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>) של מזהים ייחודיים של מקומות עבור הגבולות האדמיניסטרטיביים ברמה העליונה שמיקוד זה מצטלב איתם (לדוגמה, מדינה או מחוז). -
administrative_area_level_2_names: רשימה (ARRAY<STRING>) של שמות קריאים של הגבולות המשניים (לדוגמה,['Los Angeles County']). -
administrative_area_level_2_ids: רשימה (ARRAY<STRING>) של מזהי מקום ייחודיים של הגבולות המנהליים המשניים שמיקוד זה חוצה (לדוגמה, מחוז או נפה). -
features: וקטור ההטמעה המרכזי בתלת-ממד, שמאוחסן באופן מקורי כ-ARRAY<FLOAT64>. כדי לטעון את הנתונים האלה ל-Pandas באמצעות Python, צריך לשטח אותם או להמיר אותם למטריצה של NumPy. -
snapshot_date:DATEבפורמטYYYY-MM-DD, בסטנדרט שבו משתמשים רק ביום הראשון של החודש. מייצג את חלון הזמן החודשי הספציפי שממנו נאספו תכונות הקלט כדי ליצור את נתוני ההטמעה. לדוגמה, נתונים מאפריל 2026 יעוצבו כך:2026-04-01.
הכנת נתוני אמת בסיסית
כדי להשתמש בהטמעות של נתונים דינמיים של אוכלוסייה, נתוני האמת הבסיסיים צריכים להיות מצטברים לגבול גיאוגרפי נתמך (מספרי מיקוד).
אפשרות 1: שילוב הטמעות במודל קיים
- הכנת נתוני אמת קרקע (ground truth) מבוססי-מודל קיימים: משתמשים בהטמעות כמשתני עזר גיאוגרפיים כדי לשפר מודל קיים.
- אימון מודל לתיקון שגיאות: שיפור מודל קיים על ידי שילוב ההטבעות במודל שמקבל את הפלט של המודל המקורי, את הערך הצפוי או את נתוני האמת, ואת ההטבעות כדי ללמוד מודל חדש לתיקון שגיאות.
אפשרות 2: התאמה לתרחישי שימוש ספציפיים
- בחירת סוג מודל חיזוי: אפשר להשתמש בכל מודל, כמו GBDT, MLP או ליניארי, כדי ליצור תחזיות.
- שימוש בהטמעות לחיזוי: אפשר להשתמש בהטמעות של דינמיקת אוכלוסייה כתכונות קלט, לצד נתונים הקשריים אחרים, כדי לשפר את דיוק החיזוי.
קטעי קוד למתחילים
אפשר להשתמש בקטעי הקוד האלה כדי לאמת את הגישה ולהבין את פורמט הנתונים.
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. כדי להשתמש בהם בספריות של ML, צריך להמיר את העמודה למטריצה של 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)
שאלות נפוצות
האם יש לי גישה לנתוני הקלט הגולמיים (לדוגמה, שאילתות חיפוש ספציפיות או נתוני ניידות)?
לא. ההטמעות של דינמיקת האוכלוסייה נוצרות מאותות מצטברים ששומרים על הפרטיות. כדי להבטיח את פרטיות המשתמשים, אנחנו לא מספקים נתונים ספציפיים על המשתמשים, היסטוריית חיפושים אישית או דפוסי תנועה לא מעובדים. ההטמעות מספקות ייצוג סמוי של ההתנהגויות האלה, שעבר אופטימיזציה לצורך יצירת מודלים ותחזיות, ולא לצורך ניתוח גולמי.
איך בוחרים את מונחי החיפוש שמשמשים ליצירת ההטמעות?
אנחנו משתמשים בישויות של Knowledge Graph (KG) ולא בשאילתות חיפוש גולמיות. לדוגמה, שאילתות כמו 'taylor swift boyfriend' ו-'kc tight end' ימופו לאותו ישות ב-KG ('Travis Kelce'). הגישה הזו לא תלויה בשפה, היא כוללת קטגוריות סמנטיות רחבות יותר ומשפרת באופן משמעותי את הפרטיות.
האם אפשר לפרש את ממדי הווקטור (לדוגמה, האם מימד 5 הוא 'קפה')?
לא, הווקטורים הם ייצוגים סמויים. מכיוון שהתכונות נלמדות על ידי מודל למידת המכונה, אין מיפוי סמנטי פשוט או תרגום אחד לאחד מאינדקס וקטור סופי לקלט מקור ספציפי. אנחנו יודעים אילו בלוקים של אינדקסים נגזרים מאילו מערכי נתונים (לדוגמה, אינדקסים 0 עד 127 מייצגים את Google Trends), אבל אינדקס ספציפי כמו אינדקס 5 לא ממופה למילת מפתח יחידה. במקום זאת, הוא מייצג תכונה מורכבת ומופשטת שנלמדה על ידי המודל.
האם מערך הנתונים כולל גבולות של מצולעים (קובצי Shapefile)?
לא. קבוצת הנתונים מספקת מיקודים (geo_name) ומזהי מקומות משויכים (Place
IDs) (geo_id), אבל היא לא כוללת גיאומטריות של מצולעים גולמיים (כמו WKT).
בהתאם לתרחיש השימוש, מומלץ להשתמש בגישות הבאות:
- לצורך ויזואליזציה במפות Google: אפשר להשתמש במזהי המקומות שמופיעים ב-geo_id כדי להגדיר סגנון ולעבד את הגבולות ישירות במפה באמצעות הגדרת סגנון מבוססת-נתונים. הגבולות האלה מתאימים להצגה ויזואלית, אבל אי אפשר לייצא אותם כקובצי גיאומטריה גולמיים.
- למיזוג וניתוח נתונים מרחביים: אם אתם צריכים נתונים גולמיים של מצולעים מרחביים, מומלץ למזג את מערך הנתונים הזה עם מערכי נתונים ציבוריים של גבולות (כמו אלה שזמינים במערכי נתונים ציבוריים של BigQuery) באמצעות המיקוד geo_name.
מהו חלון הזמן של מערך הנתונים של ההטמעות?
ההטמעות של PDI מתעדכנות מדי חודש, וכל חודש חדש מצורף למערך הנתונים. הנתונים מיוצגים באמצעות העמודה snapshot_date (בפורמט YYYY-MM-DD), ומספקים בסיס יציב שמשקף את טביעת האצבע ההתנהגותית והפיזית של מיקום בחודש מסוים.