وثائق لمطوري البرامج
وصف المنتج
مجموعة بيانات "إحصاءات حول التغيّرات السكانية" (PDI) هي مجموعة بيانات تضم مستندات مضمّنة تلخّص البيانات حول السلوك البشري وتفاعلنا مع البيئة في مستندات مضمّنة موجزة وجاهزة للتحليل (أو "بصمات رقمية") في مواقع جغرافية محدّدة.
تتضمّن هذه التضمينات أنماطًا في البيانات المجمّعة، مثل مؤشرات البحث ومؤشرات مدى الازدحام والظروف البيئية (الخرائط وجودة الهواء والطقس)، ما يقدّم لمحة غنية ومحدّدة الموقع الجغرافي عن كيفية تفاعل السكان مع محيطهم. تضمن هذه التضمينات، عند تجميعها حسب الموقع الجغرافي والوقت، الحفاظ على الخصوصية مع إتاحة تحليل مكاني دقيق وتوقّعات للتطبيقات، بدءًا من الصحة العامة وصولاً إلى النماذج الاجتماعية والاقتصادية.
نظرة عامة على المنتج
يتم إنشاء تضمينات ديناميكيات السكان باستخدام نموذج تعلّم آلي مصمّم خصيصًا لهذا الغرض، ويتم تدريبه على مجموعة غنية من الميزات وتحويله إلى تمثيل متجهي مكثّف. يتم تدريب هذه التضمينات وإنشاؤها من:
- مؤشرات البحث المجمّعة: الاهتمامات والمخاوف الإقليمية التي تظهر في بيانات البحث
- بيانات الخرائط المجمّعة (بما في ذلك مدى الازدحام): وسائل الراحة والخدمات والأنشطة التجارية في المناطق، بالإضافة إلى مؤشرات الزيارات المحلية.
- الطقس وجودة الهواء المجمّعة: مقاييس متعلّقة بالمناخ، بما في ذلك درجة الحرارة وجودة الهواء
يتم تجميع هذه الميزات على مستوى الرمز البريدي لإنشاء تضمينات محلية تراعي السياق وتحافظ على الخصوصية. مؤشر PDI هو مجموعة بيانات مستمرة وسلسلة زمنية، ويتم شهريًا معالجة شرائح بيانات جديدة وتقسيمها. يتم تعديل البيانات وإضافتها إلى جدول البيانات بحلول آخر يوم من شهر التقويم التالي (على سبيل المثال، يتم نشر بيانات شهر فبراير في موعد أقصاه 31 مارس).
المتطلبات الأساسية
للوصول إلى عمليات التضمين في "ديناميكية السكان"، يجب منحك إذن الوصول. إذا لم يكن لديك إذن الوصول، يُرجى التواصل مع ممثل المبيعات أو هندسة العملاء.
- فعِّل Analytics Hub API في Cloud Console.
- فعِّل BigQuery API في Cloud Console.
- أن يكون لديك معرفة عملية بمنتج BigQuery
- تأكَّد من أنّ حسابك لديه دور مالك اشتراك Analytics Hub
(
roles/analyticshub.subscriptionOwner) لتنفيذ مهام المشتركين. - تأكَّد من أنّ حسابك لديه دور "مستخدِم BigQuery" (
roles/bigquery.user) لإنشاء مجموعات بيانات.
التدريب المقترَح
إذا كنت جديدًا في استخدام التضمينات أو BigQuery Machine Learning، ننصحك بشدة بإكمال مواد التدريب التالية قبل البدء في التحليل:
- دورة مكثّفة عن تعلّم الآلة: التضمينات: نظرة عامة أساسية وسريعة حول كيفية استخدام نماذج تعلُّم الآلة للتضمينات من أجل تحويل البيانات العالية الأبعاد إلى مساحة منخفضة الأبعاد مع الحفاظ على العلاقات الدلالية.
- البدء باستخدام Vector Search وEmbeddings: مختبر عملي ضمن برنامج Google Cloud Skills Boost يعرّف على Vector Embeddings والتشابه الدلالي وكيفية استخدام عمليات التضمين ضمن منظومة Google Cloud المتكاملة.
- برامج تعليمية حول BigQuery Machine Learning (BQML): بما أنّ مجموعة بيانات PDI مستضافة في BigQuery، تتيح لك تدريب نماذج تعلُّم الآلة وتنفيذها مباشرةً على عمليات التضمين باستخدام لغة SQL العادية، بدون الحاجة إلى تصدير البيانات.
استخدام التضمينات
فهم البيانات
قبل البدء في التحليل، يُرجى تخصيص بعض الوقت لمراجعة بنية المخطط.
تنظيم مجموعة البيانات
يتم تنظيم التضمينات في جداول BigQuery منفصلة لكل بلد أو منطقة اختبار.
بنية متّجه التضمين
العمود features هو متّجه ذو 330 بُعدًا (يتم تخزينه كصفيف 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>) بمعرّفات Place IDs فريدة لحدود إدارية ذات مستوى أعلى يتقاطع معها هذا الرمز البريدي (مثل الولاية أو المقاطعة). administrative_area_level_2_names: قائمة (ARRAY<STRING>) بأسماء مقروءة من قِبل الإنسان للحدود الثانوية (على سبيل المثال،['Los Angeles County']).administrative_area_level_2_ids: قائمة (ARRAY<STRING>) بمعرّفات Place ID الفريدة للحدود الإدارية الثانوية التي يتقاطع معها هذا الرمز البريدي (على سبيل المثال، المقاطعة أو المنطقة).-
features: متّجه التضمين الأساسي ذو 330 بُعدًا، ويتم تخزينه بشكل أصلي كـARRAY<FLOAT64>. يتطلّب تحميل هذا الملف إلى Pandas باستخدام Python تسطيحه أو تحويله إلى مصفوفة NumPy. -
snapshot_date:DATEبتنسيقYYYY-MM-DD، ويتم توحيده لاستخدام اليوم الأول من الشهر فقط. تمثّل هذه السمة شريحة زمنية شهرية محدّدة تم تجميع ميزات الإدخالات منها لإنشاء بيانات التضمينات. على سبيل المثال، سيتم تنسيق البيانات من أبريل 2026 على النحو التالي:2026-04-01.
إعداد بيانات المعلومات الفعلية
لاستخدام عمليات التضمين في "ديناميكية السكان"، يجب تجميع بيانات الحقيقة الأساسية ضمن حدود جغرافية متوافقة (الرموز البريدية).
الخيار 1: دمج Embeddings في نموذج حالي
- إعداد بيانات واقعية مستندة إلى نموذج حالي: استخدِم عمليات التضمين كمتغيرات مشتركة جغرافية مكانية لتحسين نموذج حالي.
- تدريب نموذج تصحيح الأخطاء: يمكنك تحسين نموذج حالي من خلال دمج عمليات التضمين في نموذج يأخذ ناتج النموذج الأصلي والقيمة المتوقّعة أو الحقيقة الأساسية وعمليات التضمين لتعلُّم نموذج جديد لتصحيح الأخطاء.
الخيار 2: تحسين الأداء لحالات استخدام محدّدة
- اختيار نوع نموذج التوقّع: يمكن استخدام أي نموذج، مثل GBDT أو MLP أو نموذج خطي، للتوقّعات.
- استخدام التضمينات للتنبؤ: استخدِم تضمينات "ديناميكيات السكان" كميزات إدخال، إلى جانب بيانات سياقية أخرى، لتحسين دقة التنبؤ.
مقتطفات الرموز البرمجية الخاصة بـ Quickstart
استخدِم هذه المقتطفات لإثبات إمكانية الوصول إلى بياناتك وفهم تنسيق البيانات.
1. SQL: استرداد التضمينات لشهر معيّن
بما أنّ "مؤشر صحة السكان" هو مجموعة بيانات تسلسل زمني، عليك عادةً الفلترة حسب
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- بايثون: تحميل البيانات للتعلّم الآلي
يتم تخزين التضمينات كمصفوفات 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)
الأسئلة الشائعة
هل يمكنني الوصول إلى بيانات الإدخال الأولية (مثل طلبات البحث المحدّدة أو بيانات التنقّل)؟
لا، يتم إنشاء تضمينات "ديناميكيات السكان" من إشارات مجمّعة تحافظ على الخصوصية. لضمان خصوصية المستخدمين، لا نقدّم عمليات تتبُّع محدّدة للمستخدمين أو سجلّات بحث فردية أو أنماط تنقّل أولية. تقدّم التضمينات تمثيلاً كامنًا لهذه السلوكيات، تم تحسينه من أجل وضع النماذج والتوقّع، بدلاً من التحليلات الأولية.
كيف يتم اختيار عبارات البحث المستخدَمة لإنشاء التضمينات؟
نستخدم كيانات "الرسم البياني المعرفي" بدلاً من طلبات البحث الأولية. على سبيل المثال، سيتم ربط طلبَي البحث "صديق تايلور سويفت" و "لاعب خط الوسط في فريق كانساس سيتي" بكيان قاعدة المعرفة الأساسي نفسه ("ترافيس كيلسي"). هذا الأسلوب لا يعتمد على اللغة، ويشمل فئات دلالية أوسع، ويحسّن الخصوصية بشكل كبير.
هل يمكن تفسير أبعاد المتّجه (على سبيل المثال، هل السمة 5 هي "قهوة"؟)
لا، المتّجهات هي تمثيلات كامنة. بما أنّ النموذج المستند إلى تعلُّم الآلة يتعلّم الميزات، لا يمكن إجراء ربط دلالي بسيط أو ترجمة فردية من فهرس المتّجه النهائي إلى إدخال مصدر محدّد. على الرغم من أنّنا نعرف مجموعات الفهارس التي تستند إلى مجموعات البيانات (على سبيل المثال، تمثّل الفهارس من 0 إلى 127 مؤشرات "مؤشرات البحث")، لا يرتبط فهرس معيّن، مثل الفهرس 5، بكلمة رئيسية واحدة. بدلاً من ذلك، يمثّل هذا الرقم ميزة معقّدة وتجريدية تعلّمها النموذج.
هل تتضمّن مجموعة البيانات حدودًا مضلّعة (ملفات Shapefile)؟
لا، تقدّم مجموعة البيانات الرموز البريدية (geo_name) ومعرّفات الأماكن المرتبطة بها (geo_id)، ولكنّها لا تتضمّن أشكالًا هندسية مضلّعة أولية (مثل WKT).
استنادًا إلى حالة الاستخدام، ننصحك باتّباع الأساليب التالية:
- للعرض المرئي على "خرائط Google": يمكنك استخدام أرقام تعريف الأماكن المقدَّمة في geo_id لتصميم الحدود وعرضها مباشرةً على خريطة باستخدام تصميم مستند إلى البيانات. على الرغم من أنّ هذه الحدود مثالية للعرض المرئي، لا يمكن تصديرها كملفات هندسية أولية.
- بالنسبة إلى عمليات الربط والتحليل المكاني: إذا كنت بحاجة إلى مضلّعات مكانية أولية، ننصحك بربط مجموعة البيانات هذه بمجموعات بيانات الحدود العامة (مثل تلك المتوفّرة في مجموعات بيانات BigQuery العامة) باستخدام الرمز البريدي geo_name.
ما هي الفترة الزمنية لمجموعة بيانات التضمينات؟
يتم تعديل تضمينات مؤشر PDI شهريًا مع إضافة كل شهر جديد إلى مجموعة البيانات. يتم تمثيل البيانات باستخدام العمود snapshot_date (بالتنسيق YYYY-MM-DD)، ما يوفّر خط أساس ثابتًا يعكس البصمة السلوكية والمادية لموقع جغرافي معيّن في ذلك الشهر.