אתם יכולים להשתמש בפרטיות דיפרנציאלית ב-BigQuery כדי להגן על מידע אישי בנתונים שלכם, ועדיין לבצע חישובים ולקבל תובנות. תקן הפרטיות הזה מגביל את המידע האישי שנחשף בפלט הנתונים, וכך עוזר לכם לשתף נתונים ולהסיק מסקנות לגבי קבוצות בלי לחשוף אנשים ספציפיים. פרטיות דיפרנציאלית שימושית במיוחד כשיש סיכון לשחזר פרטי זיהוי, או כשצריך לכמת את הפשרה בין סיכון הפרטיות לבין התועלת האנליטית.
לפרטים על התחביר, ראו סעיף פרטיות דיפרנציאלית. ברשימה הזו מפורטות הפונקציות לצבירת נתונים שאפשר להשתמש בהן עם התחביר הזה, תוך שמירה על פרטיות דיפרנציאלית.
תרחיש לדוגמה לשימוש בפרטיות דיפרנציאלית
כדי להבין טוב יותר את המושג "פרטיות דיפרנציאלית", נבחן דוגמה פשוטה.
בתרשים העמודות הזה מוצגת רמת העומס במסעדה קטנה בערב מסוים. הרבה אורחים מגיעים בשעה 19:00, והמסעדה ריקה לגמרי בשעה 01:00:
התרשים הזה נראה שימושי, אבל יש כאן קאץ'. כשאורח חדש מגיע, העובדה הזו מוצגת מיד בתרשים העמודות. בתרשים הבא אפשר לראות בבירור שיש אורח חדש, ושהוא הגיע בערך בשעה 1:00:
הצגת הפרט הזה היא לא אידיאלית מבחינת הפרטיות, כי נתונים סטטיסטיים אנונימיים לא אמורים לחשוף תרומות של משתמשים ספציפיים. אם נציב את שני התרשימים זה לצד זה, ההבדל יהיה עוד יותר ברור: בתרשים העמודות הכתום יש אורח אחד נוסף שהגיע בסביבות השעה 01:00:
שוב, זה לא טוב. כדי למנוע בעיות פרטיות מהסוג הזה, אתם יכולים להוסיף רעש אקראי לתרשימי העמודות באמצעות פרטיות דיפרנציאלית. בטבלת ההשוואה הבאה, התוצאות אנונימיות ולא חושפות יותר את התרומות של כל אחד.
איך פועלת פרטיות דיפרנציאלית בשאילתות
המטרה של פרטיות דיפרנציאלית היא לצמצם את הסיכון לחשיפת מידע: הסיכון שמישהו יוכל לגלות מידע על ישות במערך נתונים. פרטיות דיפרנציאלית מאזנת בין הצורך להגן על הפרטיות לבין הצורך בתועלת של ניתוח סטטיסטי. ככל שרמת הפרטיות עולה, התועלת של הניתוח הסטטיסטי יורדת, ולהפך.
בעזרת GoogleSQL ל-BigQuery, אתם יכולים לשנות את תוצאות השאילתה באמצעות צבירות עם פרטיות דיפרנציאלית. כשמריצים את השאילתה, היא מבצעת את הפעולות הבאות:
- מחשב צבירות לכל ישות בכל קבוצה, אם הקבוצות צוינו באמצעות פסוקית
GROUP BY. מגבילה את מספר הקבוצות שכל ישות יכולה לתרום להן, על סמך הפרמטרmax_groups_contributedשל פרטיות דיפרנציאלית. - מגביל את התרומה המצטברת של כל ישות כך שתהיה בטווח גבולות ההגבלה. אם לא מציינים את גבולות הקיצוץ, הם מחושבים באופן משתמע בשיטה של פרטיות דיפרנציאלית.
- מחשב את סכום התרומות המצטברות המוגבלות לכל ישות בכל קבוצה.
- מוסיפה רעש לערך המצטבר הסופי של כל קבוצה. ההיקף של הרעש האקראי הוא פונקציה של כל הגבולות המוגבלים ופרמטרי הפרטיות.
- מחשב ספירת ישויות רועשת לכל קבוצה ומסיר קבוצות עם מעט ישויות. ספירת ישויות רועשת עוזרת לבטל קבוצות לא דטרמיניסטיות.
התוצאה הסופית היא מערך נתונים שבו לכל קבוצה יש תוצאות מצטברות עם רעש, וקבוצות קטנות הוסרו.
כדי לקבל הקשר נוסף לגבי פרטיות דיפרנציאלית ותרחישי השימוש שלה, קראו את המאמרים הבאים:
- מבוא ידידותי ולא טכני לפרטיות דיפרנציאלית
- SQL פרטי באופן דיפרנציאלי עם תרומת משתמש מוגבלת
- פרטיות דיפרנציאלית בוויקיפדיה
יצירת שאילתה תקינה עם פרטיות דיפרנציאלית
כדי שהשאילתה עם הפרטיות הדיפרנציאלית תהיה תקינה, היא צריכה לעמוד בכללים הבאים:
- מוגדרת עמודה של יחידת פרטיות.
- הרשימה
SELECTמכילה סעיף של פרטיות דיפרנציאלית. - רק פונקציות צבירה עם פרטיות דיפרנציאלית נמצאות ברשימה
SELECTעם הסעיף של הפרטיות הדיפרנציאלית.
הגדרת עמודה של יחידת פרטיות
יחידת פרטיות היא הישות בקבוצת הנתונים שמוגנת באמצעות פרטיות דיפרנציאלית. ישות יכולה להיות אדם פרטי, חברה, מיקום או כל עמודה שתבחרו.
שאילתה עם פרטיות דיפרנציאלית חייבת לכלול עמודה אחת בלבד של יחידת פרטיות. עמודת יחידת פרטיות היא מזהה ייחודי של יחידת פרטיות, והיא יכולה להיות בכמה קבוצות. מכיוון שיש תמיכה במספר קבוצות, סוג הנתונים של העמודה של יחידת הפרטיות חייב להיות ניתן לקיבוץ.
אפשר להגדיר עמודה של יחידת פרטיות בסעיף OPTIONS של סעיף פרטיות דיפרנציאלית עם המזהה הייחודי privacy_unit_column.
בדוגמאות הבאות, עמודה של יחידת פרטיות נוספת לסעיף של פרטיות דיפרנציאלית. id מייצג עמודה שמקורה בטבלה שנקראת students.
SELECT WITH DIFFERENTIAL_PRIVACY
OPTIONS (epsilon=10, delta=.01, privacy_unit_column=id)
item,
COUNT(*, contribution_bounds_per_group=>(0, 100))
FROM students;
SELECT WITH DIFFERENTIAL_PRIVACY
OPTIONS (epsilon=10, delta=.01, privacy_unit_column=members.id)
item,
COUNT(*, contribution_bounds_per_group=>(0, 100))
FROM (SELECT * FROM students) AS members;
הסרת רעש משאילתה עם פרטיות דיפרנציאלית
במאמר העזרה בנושא תחביר של שאילתות, אפשר לעיין בקטע הסרת רעשים.
הוספת רעש לשאילתה עם פרטיות דיפרנציאלית
במאמר העזרה "תחביר של שאילתות", עיינו בקטע הוספת רעש.
הגבלת הקבוצות שבהן יכול להיות מזהה של יחידת פרטיות
במאמר העזר "תחביר של שאילתות", קראו את הקטע הגבלת הקבוצות שבהן יכול להיות מזהה של יחידת פרטיות.
מגבלות
בקטע הזה מתוארות המגבלות של פרטיות דיפרנציאלית.
ההשפעות של פרטיות דיפרנציאלית על הביצועים
שאילתות עם פרטיות דיפרנציאלית פועלות לאט יותר משאילתות רגילות, כי מתבצע צבירה לכל ישות ומוחלת המגבלה max_groups_contributed. הגבלת גבולות התרומה יכולה לעזור לשפר את הביצועים של שאילתות עם פרטיות דיפרנציאלית.
פרופילי הביצועים של השאילתות הבאות לא דומים:
SELECT
WITH DIFFERENTIAL_PRIVACY OPTIONS(epsilon=1, delta=1e-10, privacy_unit_column=id)
column_a, COUNT(column_b)
FROM table_a
GROUP BY column_a;
SELECT column_a, COUNT(column_b)
FROM table_a
GROUP BY column_a;
הסיבה להבדל בביצועים היא שמתבצעת רמה נוספת של קיבוץ ברמת פירוט גבוהה יותר לשאילתות עם פרטיות דיפרנציאלית, כי צריך לבצע גם צבירה לכל ישות.
פרופילי הביצועים של השאילתות הבאות אמורים להיות דומים, למרות שהשאילתה עם הפרטיות הדיפרנציאלית קצת יותר איטית:
SELECT
WITH DIFFERENTIAL_PRIVACY OPTIONS(epsilon=1, delta=1e-10, privacy_unit_column=id)
column_a, COUNT(column_b)
FROM table_a
GROUP BY column_a;
SELECT column_a, id, COUNT(column_b)
FROM table_a
GROUP BY column_a, id;
השאילתה עם פרטיות דיפרנציאלית פועלת לאט יותר כי יש לה מספר גבוה של ערכים נפרדים בעמודה של יחידת הפרטיות.
מגבלות תחימה משתמעות לקבוצות נתונים קטנות
הגבלה מרומזת פועלת בצורה הטובה ביותר כשהיא מחושבת באמצעות מערכי נתונים גדולים. הגבולות המשתמעים עלולים להיכשל בקבוצות נתונים שמכילות מספר קטן של יחידות פרטיות, ולא להחזיר תוצאות. בנוסף, הגבלה מרומזת על קבוצת נתונים עם מספר נמוך של יחידות פרטיות יכולה להגביל חלק גדול מהערכים שאינם חריגים, וכתוצאה מכך להוביל לדיווח חסר של נתונים נצברים ולתוצאות שמשתנות יותר בגלל ההגבלה מאשר בגלל הוספת הנתונים המיותרים. במערכי נתונים עם מספר נמוך של יחידות פרטיות או עם חלוקה דלילה, צריך להשתמש בהגבלה מפורשת ולא בהגבלה משתמעת.
נקודות חולשה בפרטיות
בכל אלגוריתם של פרטיות דיפרנציאלית, כולל האלגוריתם הזה, יש סיכון לדליפת נתונים פרטיים כשאנליסט פועל בחוסר תום לב, במיוחד כשמחשבים נתונים סטטיסטיים בסיסיים כמו סכומים, בגלל מגבלות אריתמטיות.
מגבלות על הבטחות בנוגע לפרטיות
ב-BigQuery, הפרטיות הדיפרנציאלית מיישמת את אלגוריתם הפרטיות הדיפרנציאלית, אבל לא מבטיחה את מאפייני הפרטיות של מערך הנתונים שנוצר.
שגיאות זמן ריצה
מנתח נתונים שפועל בחוסר תום לב ויש לו יכולת לכתוב שאילתות או לשלוט בנתוני הקלט, יכול לגרום לשגיאת זמן ריצה בנתונים פרטיים.
רעש בשיטת נקודה צפה
לפני שמשתמשים בפרטיות דיפרנציאלית, צריך להביא בחשבון נקודות חולשה שקשורות לעיגול, לעיגול חוזר ולמתקפות של שינוי סדר. נקודות החולשה האלה מדאיגות במיוחד כשגורם תוקף יכול לשלוט בחלק מהתוכן של קבוצת נתונים או בסדר התוכן בקבוצת נתונים.
הוספות של רעש בפרטיות דיפרנציאלית בסוגי נתונים של נקודה צפה (floating-point) כפופות לנקודות החולשה שמתוארות במאמר Widespread Underestimation of Sensitivity in Differentially Private Libraries and How to Fix It. הוספת רעש לסוגי נתונים של מספרים שלמים לא חשופה לנקודות החולשה שמתוארות במאמר.
סיכונים של מתקפת תזמון
מנתח נתונים שפועל בחוסר תום לב יכול להריץ שאילתה מורכבת מספיק כדי להסיק מסקנות לגבי נתוני הקלט על סמך משך ההרצה של השאילתה.
סיווג שגוי
כדי ליצור שאילתת פרטיות דיפרנציאלית, הנתונים צריכים להיות במבנה מוכר ומובן. אם תפעילו פרטיות דיפרנציאלית על המזהים הלא נכונים, כמו מזהה שמייצג מזהה עסקה במקום מזהה של אדם פרטי, אתם עלולים לחשוף מידע אישי רגיש.
אם אתם צריכים עזרה בהבנת הנתונים, כדאי להשתמש בשירותים ובכלים הבאים:
תמחור
השימוש בפרטיות דיפרנציאלית לא כרוך בעלות נוספת, אבל חל התמחור הרגיל של BigQuery לניתוח נתונים.