डेवलपर दस्तावेज़ीकरण
प्रॉडक्ट विवरण
पॉप्युलेशन डाइनैमिक्स इनसाइट (पीडीआई) एक एम्बेडिंग डेटासेट है. इसमें, लोगों के व्यवहार और पर्यावरण के साथ हमारे इंटरैक्शन से जुड़े डेटा को, खास जगहों के लिए सटीक और विश्लेषण के लिए तैयार एम्बेडिंग (या "डिजिटल फ़िंगरप्रिंट") में बदला जाता है.
इन एम्बेडिंग में, इकट्ठा किए गए डेटा में मौजूद पैटर्न कैप्चर किए जाते हैं. जैसे, खोज के रुझान, व्यस्तता के रुझान, और पर्यावरण की स्थितियां (मैप, एयर क्वालिटी, मौसम). इससे, किसी जगह के बारे में अहम जानकारी मिलती है. साथ ही, यह भी पता चलता है कि वहां रहने वाले लोग अपने आस-पास की चीज़ों से कैसे जुड़ते हैं. जगह और समय के हिसाब से इकट्ठा किए गए इन एम्बेडिंग से, लोगों की निजता सुरक्षित रहती है. साथ ही, सार्वजनिक स्वास्थ्य से लेकर सामाजिक-आर्थिक मॉडलिंग तक के ऐप्लिकेशन के लिए, जगह के हिसाब से सटीक विश्लेषण और अनुमान लगाया जा सकता है.
प्रॉडक्ट की खास जानकारी
पॉप्युलेशन डाइनैमिक्स एम्बेडिंग, खास तौर पर बनाए गए मशीन लर्निंग मॉडल का इस्तेमाल करके जनरेट की जाती हैं. इस मॉडल को, कई तरह की सुविधाओं के आधार पर ट्रेन किया जाता है. इसके बाद, इसे कंप्रेस किए गए वेक्टर के तौर पर दिखाया जाता है. इन एम्बेडिंग को इन डेटा के आधार पर ट्रेन और जनरेट किया जाता है:
- इकट्ठा किए गए खोज के रुझान: खोज के डेटा में दिखने वाली, इलाके के हिसाब से लोगों की दिलचस्पी और चिंताएं.
- इकट्ठा किया गया Maps का डेटा (इसमें व्यस्तता का डेटा भी शामिल है): इलाकों में मौजूद सुविधाएं, सेवाएं, और कारोबार. साथ ही, स्थानीय लोगों के आने-जाने के रुझान.
- इकट्ठा किया गया मौसम और एयर क्वालिटी का डेटा: मौसम से जुड़ी मेट्रिक, जिनमें तापमान और एयर क्वालिटी शामिल है.
इन सुविधाओं को पिन कोड के लेवल पर इकट्ठा किया जाता है, ताकि स्थानीय और कॉन्टेक्स्ट के हिसाब से एम्बेडिंग जनरेट की जा सकें. साथ ही, लोगों की निजता भी सुरक्षित रखी जा सके. पीडीआई, टाइम-सीरीज़ डेटासेट है. इसमें हर महीने, डेटा के नए स्लाइस प्रोसेस और बांटे जाते हैं. डेटा को हर महीने रीफ़्रेश किया जाता है और अगले कैलेंडर महीने की आखिरी तारीख तक, इसे डेटा टेबल में जोड़ा जाता है. उदाहरण के लिए, फ़रवरी का डेटा 31 मार्च तक पब्लिश किया जाता है.
ज़रूरी शर्तें
पॉप्युलेशन डाइनैमिक्स एम्बेडिंग ऐक्सेस करने के लिए, आपको अनुमति दी जानी चाहिए. अगर आपके पास अनुमति नहीं है, तो सेल्स या कस्टमर इंजीनियरिंग के अपने प्रतिनिधि से संपर्क करें.
- Cloud Console में, Analytics Hub API चालू करें.
- Cloud Console में, BigQuery API चालू करें.
- BigQuery प्रॉडक्ट के बारे में जानकारी होनी चाहिए.
- पक्का करें कि आपके खाते में, Analytics Hub की सदस्यता के मालिक (
roles/analyticshub.subscriptionOwner) की भूमिका हो, ताकि सदस्य से जुड़े टास्क पूरे किए जा सकें. - पक्का करें कि आपके खाते में, BigQuery के उपयोगकर्ता (
roles/bigquery.user) की भूमिका हो, ताकि डेटासेट बनाए जा सकें.
सुझाई गई ट्रेनिंग
अगर आपको एम्बेडिंग या BigQuery Machine Learning के साथ काम करने का अनुभव नहीं है, तो हमारा सुझाव है कि विश्लेषण शुरू करने से पहले, ट्रेनिंग के ये संसाधन पूरे करें:
- मशीन लर्निंग क्रैश कोर्स: एम्बेडिंग: इसमें, मशीन लर्निंग मॉडल, एम्बेडिंग का इस्तेमाल करके, ज़्यादा डाइमेंशन वाले डेटा को कम डाइमेंशन वाले स्पेस में कैसे बदलते हैं, इस बारे में बुनियादी और तेज़ी से जानकारी दी गई है. साथ ही, इसमें सिमेंटिक रिलेशनशिप को सुरक्षित रखने के बारे में भी बताया गया है.
- वेक्टर सर्च और एम्बेडिंग का इस्तेमाल शुरू करना: यह Google Cloud Skills Boost की एक लैब है. इसमें वेक्टर एम्बेडिंग, सिमेंटिक सिमिलैरिटी, और Google Cloud के बड़े इकोसिस्टम में एम्बेडिंग का इस्तेमाल करने के तरीके के बारे में बताया गया है.
- BigQuery Machine Learning (BQML) के ट्यूटोरियल: पीडीआई डेटासेट, BigQuery में होस्ट किया जाता है. इसलिए, आपको डेटा एक्सपोर्ट करने की ज़रूरत नहीं होती. साथ ही, स्टैंडर्ड एसक्यूएल का इस्तेमाल करके, एम्बेडिंग पर सीधे मशीन लर्निंग मॉडल को ट्रेन और एक्ज़ीक्यूट किया जा सकता है.
एम्बेडिंग का इस्तेमाल करना
डेटा को समझना
विश्लेषण शुरू करने से पहले, स्कीमा स्ट्रक्चर की समीक्षा करें.
डेटासेट का संगठन
हर देश या टेस्ट रीजन के लिए, एम्बेडिंग को अलग-अलग BigQuery टेबल में व्यवस्थित किया जाता है.
एम्बेडिंग वेक्टर की गहराई से जांच करना
features कॉलम, 330 डाइमेंशन वाला वेक्टर है. इसे BigQuery में REPEATED FLOAT अरे के तौर पर सेव किया जाता है. अरे का हर सेक्शन, पॉप्युलेशन डाइनैमिक्स मॉडल से निकाले गए किसी खास डेटा सिग्नल से जुड़ा होता है.
इस स्ट्रक्चर को समझने से, फ़ीचर एब्लेशन किया जा सकता है. उदाहरण के लिए, यह पता लगाया जा सकता है कि मौसम की तुलना में, खोज के व्यवहार से बिक्री का कितना अनुमान लगाया जा सकता है.
| वेक्टर इंडेक्स | डेटा स्रोत | ब्यौरा |
|---|---|---|
| 0 – 127 | इकट्ठा किए गए खोज के रुझान | इसमें, इलाके के हिसाब से लोगों की दिलचस्पी और चिंताएं कैप्चर की जाती हैं. उदाहरण के लिए, "जिम," "फ़्लू के लक्षण," "लग्ज़री सामान" के लिए की गई खोजें. |
| 128 – 255 | Maps और व्यस्तता | इसमें, बनी हुई जगहें (पीओआई, जैसे कि अस्पताल, पार्क, स्कूल) और लोगों के आने-जाने के रुझान कैप्चर किए जाते हैं, ताकि दिलचस्पी की जगहें दिखाई जा सकें. |
| 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: यह 330 डाइमेंशन वाला मुख्य एम्बेडिंग वेक्टर है. इसे नेटिव तौर परARRAY<FLOAT64>के तौर पर सेव किया जाता है. Python का इस्तेमाल करके, इसे Pandas में लोड करने के लिए, इसे फ़्लैट करना या NumPy मैट्रिक्स में बदलना ज़रूरी है.snapshot_date: यहDATEहै, जिसेYYYY-MM-DDके तौर पर फ़ॉर्मैट किया गया है. इसे महीने के पहले दिन के हिसाब से स्टैंडर्ड किया गया है. यह महीने के उस खास टाइम-स्लाइस को दिखाता है जिससे इनपुट फ़ीचर को इकट्ठा करके, एम्बेडिंग डेटा जनरेट किया गया था. उदाहरण के लिए, अप्रैल 2026 के डेटा को2026-04-01के तौर पर फ़ॉर्मैट किया जाएगा.
ग्राउंड ट्रुथ डेटा तैयार करना
पॉप्युलेशन डाइनैमिक्स एम्बेडिंग का इस्तेमाल करने के लिए, आपके ग्राउंड ट्रुथ डेटा को, काम करने वाली भौगोलिक बाउंड्री (पिन कोड) के हिसाब से इकट्ठा किया जाना चाहिए.
पहला विकल्प: किसी मौजूदा मॉडल में एम्बेडिंग शामिल करना
- मौजूदा मॉडल के आधार पर ग्राउंड ट्रुथ तैयार करना: किसी मौजूदा मॉडल को बेहतर बनाने के लिए, एम्बेडिंग को जियोस्पेशल कोवैरिएट के तौर पर इस्तेमाल करें.
- गड़बड़ी ठीक करने वाला मॉडल ट्रेन करना: किसी मौजूदा मॉडल को बेहतर बनाने के लिए, एम्बेडिंग को ऐसे मॉडल में इंटिग्रेट करें जो ओरिजनल मॉडल का आउटपुट, अनुमानित वैल्यू या ग्राउंड ट्रुथ, और एम्बेडिंग लेता है. इससे, गड़बड़ी ठीक करने का नया मॉडल तैयार किया जा सकता है.
दूसरा विकल्प: खास इस्तेमाल के उदाहरणों के लिए ट्यून करना
- अनुमान लगाने वाले मॉडल का टाइप चुनना: अनुमान लगाने के लिए, GBDT, MLP या लीनियर जैसे किसी भी मॉडल का इस्तेमाल किया जा सकता है.
- अनुमान लगाने के लिए एम्बेडिंग का इस्तेमाल करना: अनुमान की सटीक जानकारी पाने के लिए, पॉप्युलेशन डाइनैमिक्स एम्बेडिंग को इनपुट फ़ीचर के तौर पर इस्तेमाल करें. इसके साथ-साथ, कॉन्टेक्चुअल डेटा का भी इस्तेमाल करें.
क्विकस्टार्ट कोड स्निपेट
इन स्निपेट का इस्तेमाल करके, अपने ऐक्सेस की पुष्टि करें और डेटा फ़ॉर्मैट को समझें.
1. एसक्यूएल: किसी खास महीने के लिए एम्बेडिंग फ़ेच करना
पीडीआई, टाइम-सीरीज़ डेटासेट है. इसलिए, आम तौर पर आपको 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. एसक्यूएल: एडमिनिस्ट्रेटिव एरिया के हिसाब से फ़िल्टर करना (अरे को अननेस्ट करना)
पिन कोड, कई एडमिनिस्ट्रेटिव बाउंड्री में हो सकते हैं. इसलिए, administrative_area_* फ़ील्ड को अरे के तौर पर सेव किया जाता है. किसी खास राज्य (उदाहरण के लिए, 'कैलिफ़ोर्निया') में मौजूद सभी पिन कोड के लिए फ़िल्टर करने के लिए, आपको BigQuery के UNNEST() फ़ंक्शन का इस्तेमाल करना होगा.
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. एसक्यूएल: मिलती-जुलती जगहें ढूंढना
इस क्वेरी से, व्यवहार के हिसाब से मिलती-जुलती जगहों की पहचान की जा सकती है. इसके लिए, बाहरी डेटा की ज़रूरत नहीं होती. यह कोसाइन सिमिलैरिटी की गणना करने के लिए, 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. एसक्यूएल: खरीदार के डेटा को जोड़ना
इस उदाहरण में बताया गया है कि पिन कोड के आधार पर जोड़कर, अपने इंटरनल डेटा (उदाहरण के लिए, स्टोर की परफ़ॉर्मेंस वाली टेबल) को, व्यवहार से जुड़ी एम्बेडिंग के साथ कैसे बेहतर बनाया जा सकता है.
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)
अक्सर पूछे जाने वाले सवाल
क्या मैं रॉ इनपुट डेटा (उदाहरण के लिए, खोज की खास क्वेरी या मोबिलिटी ट्रेस) ऐक्सेस कर सकता/सकती हूं?
नहीं. पॉप्युलेशन डाइनैमिक्स एम्बेडिंग, इकट्ठा किए गए और निजता को सुरक्षित रखने वाले सिग्नल से जनरेट की जाती हैं. उपयोगकर्ता की निजता को सुरक्षित रखने के लिए, हम उपयोगकर्ता के खास ट्रेस, खोज के इतिहास या गतिविधि के रॉ पैटर्न नहीं देते. एम्बेडिंग, इन व्यवहारों को दिखाने वाला लेटेंट प्रतिनिधित्व देती हैं. इन्हें रॉ Analytics के बजाय, मॉडलिंग और अनुमान के लिए ऑप्टिमाइज़ किया जाता है.
एम्बेडिंग जनरेट करने के लिए, खोज के शब्दों का चुनाव कैसे किया जाता है?
हम खोज की रॉ क्वेरी के बजाय, नॉलेज ग्राफ़ (केजी) की इकाइयों का इस्तेमाल करते हैं. उदाहरण के लिए, "taylor swift boyfriend" और "kc tight end" जैसी क्वेरी, एक ही केजी इकाई ("Travis Kelce") पर मैप होंगी. यह तरीका, भाषा पर निर्भर नहीं करता. साथ ही, यह सिमेंटिक कैटगरी को कैप्चर करता है और निजता को बेहतर बनाता है.
क्या वेक्टर डाइमेंशन को समझा जा सकता है? उदाहरण के लिए, क्या डाइमेंशन 5 "कॉफ़ी" है?
नहीं, वेक्टर, लेटेंट प्रतिनिधित्व होते हैं. मशीन लर्निंग मॉडल, फ़ीचर को सीखता है. इसलिए, फ़ाइनल वेक्टर इंडेक्स से किसी सोर्स इनपुट तक, कोई आसान सिमेंटिक मैपिंग या वन-टू-वन ट्रांसलेशन नहीं होता. हमें पता है कि इंडेक्स के कौनसे ब्लॉक, किस डेटासेट से लिए गए हैं. उदाहरण के लिए, इंडेक्स 0–127, खोज के रुझानों को दिखाते हैं. हालांकि, इंडेक्स 5 जैसे किसी खास इंडेक्स को, किसी एक कीवर्ड पर मैप नहीं किया जाता. इसके बजाय, यह मॉडल से सीखे गए किसी जटिल और ऐब्स्ट्रैक्ट फ़ीचर को दिखाता है.
क्या डेटासेट में पॉलीगॉन बाउंड्री (शेपफ़ाइल) शामिल हैं?
नहीं. डेटासेट में पिन कोड (geo_name) और उनसे जुड़े प्लेस
आईडी
(geo_id) शामिल हैं. हालांकि, इसमें रॉ पॉलीगॉन ज्योमेट्री (जैसे, WKT) शामिल नहीं हैं.
आपके इस्तेमाल के उदाहरण के हिसाब से, हम आपको ये तरीके अपनाने का सुझाव देते हैं:
- Google Maps पर विज़ुअलाइज़ेशन के लिए: डेटा-ड्रिवन स्टाइलिंग का इस्तेमाल करके, मैप पर सीधे बाउंड्री को स्टाइल और रेंडर करने के लिए, geo_id में दिए गए प्लेस आईडी का इस्तेमाल किया जा सकता है. ये बाउंड्री, विज़ुअल डिसप्ले के लिए सही हैं. हालांकि, इन्हें रॉ ज्योमेट्री फ़ाइल के तौर पर एक्सपोर्ट नहीं किया जा सकता.
- स्पेशल जॉइन और विश्लेषण के लिए: अगर आपको रॉ स्पेशल पॉलीगॉन की ज़रूरत है, तो हमारा सुझाव है कि इस डेटासेट को सार्वजनिक बाउंड्री डेटासेट (जैसे, BigQuery के सार्वजनिक डेटासेट में उपलब्ध) के साथ, geo_name पिन कोड का इस्तेमाल करके जोड़ें.
एम्बेडिंग डेटासेट की टाइम विंडो क्या है?
पीडीआई एम्बेडिंग को हर महीने अपडेट किया जाता है. साथ ही, हर नए महीने का डेटा, डेटासेट में जोड़ा जाता है. डेटा को snapshot_date कॉलम (इसे YYYY-MM-DD के तौर पर फ़ॉर्मैट किया जाता है) का इस्तेमाल करके दिखाया जाता है. इससे, एक स्टेबल बेसलाइन मिलती है. यह बेसलाइन, किसी जगह के व्यवहार और फ़िज़िकल फ़िंगरप्रिंट को उस महीने के लिए दिखाती है.