งบประมาณความเป็นส่วนตัว

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

Rebeca Gonzalez

Instructor

นิยามของ differential privacy

  • Cynthia Dwork นำเสนอ differential privacy พร้อมนิยามทางคณิตศาสตร์

ไดอะแกรมแสดงว่าผลลัพธ์ของกลไก differential privacy แทบไม่เปลี่ยนแปลง ไม่ว่าข้อมูลของบุคคลนั้นจะอยู่ในชุดข้อมูลต้นฉบับหรือไม่

  • Epsilon และความแม่นยำเป็นปริมาณที่สำคัญที่สุด
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

$\epsilon$ พารามิเตอร์ความเป็นส่วนตัว

  • ตัวชี้วัดการสูญเสียความเป็นส่วนตัว
  • ยิ่งค่าน้อย ยิ่งปกป้องความเป็นส่วนตัวได้ดีกว่า
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

งบประมาณความเป็นส่วนตัว

ภาพวาดของผู้ดูแลข้อมูลอยู่ทางซ้าย

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

งบประมาณความเป็นส่วนตัว

ภาพวาดของผู้ดูแลข้อมูลอยู่ทางซ้าย และบุคคลภายนอก มีลูกศรชี้ไปยังผู้ดูแลข้อมูลพร้อมค่า epsilon เท่ากับ 1 บนลูกศร แทนการส่งคิวรีไปยังฐานข้อมูล

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

งบประมาณความเป็นส่วนตัว

ภาพวาดของผู้ดูแลข้อมูลอยู่ทางซ้าย และบุคคลภายนอก มีลูกศรอีกอันชี้ไปยังผู้ดูแลข้อมูลพร้อมค่า epsilon เท่ากับ 1 บนลูกศร แทนการส่งคิวรีอีกครั้งไปยังฐานข้อมูล การส่งคิวรีแบบ private ด้วย $\epsilon$ = 1 สองครั้ง เทียบเท่ากับการส่งคิวรีด้วย privacy $\epsilon$ = 2

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

งบประมาณความเป็นส่วนตัว

ภาพวาดของบุคคลภายนอกกำลังคำนวณจากข้อมูลที่ขอไว้ก่อนหน้า บุคคลภายนอกสามารถเฉลี่ยคำตอบหลายๆ ครั้งเพื่อกรองสัญญาณรบกวนออกได้

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

งบประมาณความเป็นส่วนตัว

  • ขีดจำกัดการสูญเสียความเป็นส่วนตัวที่บุคคลหรือกลุ่มสะสมได้
  • ติดตามคิวรีที่ส่งไปยังข้อมูล

ไดอะแกรมแสดงทีมที่ดึงข้อมูลจากฐานข้อมูลซึ่งเพิ่ม noise ก่อนตอบคิวรี

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

ค่าใดถือว่าเป็นส่วนตัวเพียงพอ?

  • ความเหมาะสมขึ้นอยู่กับทั้งคิวรีและข้อมูล
  • ค่า epsilon มีช่วงที่เป็นไปได้หลากหลาย
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

ค่าใดถือว่าเป็นส่วนตัวเพียงพอ?

Epsilon $\epsilon$

  • ค่าระหว่าง 0 ถึง 1 ถือว่าดีมาก
  • ค่าที่สูงกว่า 10 ถือว่าไม่ดี
  • ค่าระหว่าง 1 ถึง 10 ถือว่า "ดีกว่าไม่มี"

จำไว้ว่า epsilon มีสเกลแบบเอกซ์โพเนนเชียล

  • ระบบที่มี $\epsilon$ = 1 มีความเป็นส่วนตัวมากกว่า $\epsilon$ = 10 ถึง 8,000 เท่า
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

ค่าใดถือว่าเป็นส่วนตัวเพียงพอ?

ภาพแสดงกราฟแท่งการใช้งาน emoji พร้อมโลโก้ของ Apple

1 ภาพหน้าจอแสดง emoji ยอดนิยมของผู้ใช้ภาษาอังกฤษในสหรัฐอเมริกา จากข้อมูลที่ Apple รวบรวม
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

งบประมาณความเป็นส่วนตัว: วิธีติดตาม

from diffprivlib import BudgetAccountant

acc = BudgetAccountant(epsilon=5) acc
BudgetAccountant(epsilon=5)
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

งบประมาณความเป็นส่วนตัว: วิธีติดตาม

# Compute a private mean of the salaries using epsilon of 0.5
# Use the Budget Accountant acc and set bounds to be from 0 to 230000
dp_mean = tools.mean(salaries, epsilon=0.5, accountant=acc, bounds=(0, 230000))

# Print the resulting private mean print("Private mean: ", dp_mean)
Private mean: 82524.72611901595
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

งบประมาณความเป็นส่วนตัว: วิธีติดตาม

# Total privacy spent 
print("Total spent: ", acc.total())

# Privacy budget remaining print("Remaining budget: ", acc.remaining())
# Total number of queries done so far print("Number of queries recorded: ", len(acc))
Total spent: (epsilon=0.5, delta=0.0)

Remaining budget: (epsilon=4.5, delta=1.0)
Number of queries recorded: 1
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

งบประมาณความเป็นส่วนตัว: วิธีติดตาม

# Privacy budget remaining for 2 queries
print("Remaining budget for 2 queries: ", acc.remaining(2))
Remaining budget for 2 queries: (epsilon=2.25, delta=1.0)
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

มาฝึกกันเถอะ!

ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python

Preparing Video For Download...