มาทำความรู้จัก Differential Privacy ให้มากยิ่งขึ้นกัน

Thee Chanyaswad
KBTG Life
Published in
3 min readMar 9, 2021

หลายคนที่ติดตามวงการกฎหมายและวงการเทคโนโลยีและ Data คงจะเคยได้ยินเกี่ยวกับ Thailand’s Personal Data Protection Act หรือ PDPA กันมาบ้าง ซึ่งถ้าจะสรุปใจความสั้นๆ คือร่างข้อกฎหมายเพื่อปกป้องข้อมูลส่วนบุคคลนั่นเอง ผลกระทบที่ตามมาของการออกร่างกฎหมายนี้คือการที่องค์กรและบริษัทต่างๆ จำเป็นที่จะต้องระมัดระวังในการจัดการและใช้งานข้อมูลส่วนบุคคลมากขึ้น จากความจำเป็นตรงนี้ จึงทำให้กลุ่มเทคโนโลยีที่เรียกว่า Privacy-Enhancing Technologies (PETs) มีความสำคัญมากขึ้น โดยเฉพาะต่อกลุ่มธุรกิจขนาดใหญ่ โดยหนึ่งเทคโนโลยีในกลุ่ม PETs ที่จะมีบทบาทมากขึ้นคือ Differential Privacy ซึ่งเราได้เคยเกริ่นพื้นฐานให้ทุกคนกันไปแล้วในอีกบทความหนึ่ง ในบทความนี้เราจะมาลงลึกทางเทคนิคเกี่ยวกับเทคโนโลยีนี้กัน

Differential Privacy ได้ถูกคิดค้นขึ้นมาโดยนักวิจัยจาก Microsoft Research ชื่อว่า Cynthia Dwork ราวๆ ปี 2006 (ปัจจุบันเป็น Professor อยู่ที่ Harvard University) โดยเทคโนโลยี Differential Privacy นี้มีสองส่วนประกอบหลักๆ คือ

  1. นิยามของ Data Privacy ที่สามารถปริมาณได้
  2. Mechanism ที่จะ Protect Differential Privacy ตามนิยามในข้อแรก

ในบทความนี้เราจะมาดูแต่ละส่วนประกอบนี้กัน

นิยามของความเป็นส่วนตัวตาม Differential Privacy

เริ่มแรกเรามาดู Setting กันก่อน ใน Differential Privacy เราจะพิจารณาว่า Database ก้อนหนึ่งมีข้อมูล Sensitive ของลูกค้าหลายๆ คนอยู่ ซึ่งเราต้องการที่จะคำนวณอะไรบางอย่างจากข้อมูลของลูกค้านี้ (Computation) และรายงานผลลัพธ์ที่ได้ให้ Public ทั่วไปเห็นตามภาพข้างล่าง โดยใน Setting ดังกล่าวเราจะเรียกตัว Computation นี้ว่า Query Function และผลลัพธ์ที่ได้ว่า Query Output

Setting of Differential Privacy (Interactive Query)

จาก Setting เบื้องต้น เราจะเห็นว่าการคำนวณหรือวิเคราะห์ในมุมของ Differential Privacy จะเป็นแบบ Interactive คือมี Controller เป็นตัวกลางที่รับ Query Function เข้ามาและตอบ Query Output กลับไป ทีนี้ในเป้าหมายของการป้องกันความเป็นส่วนตัวของข้อมูลคือการพยายามทำให้ตัว Query Output นี้ไม่สามารถบ่งบอกตัวตนของใครคนใดคนหนึ่งใน Database นี้ได้ โดยหลักการสำคัญคือการเติม Randomness เข้าไปในตัว Query Output หรือพูดง่ายๆ คือการเติม Noise เข้าไปนั่นเอง

หลังจากได้ Setting มาแล้ว เรากลับมาที่เรื่องนิยามของ Data Privacy กันต่อ Differential Privacy นิยามปริมาณการรั่วไหลของความเป็นส่วนตัวของข้อมูล (Privacy Leakage) จากปริมาณสัมพัทธ์เมื่อเทียบกับเคสที่ปลอดภัยที่สุด (Perfect Privacy) คือการที่เราไม่เอา Data ไปใช้ในการคำนวณเลยนั่นเอง สมมุตินาย Bob เป็นหนึ่งคนที่มีข้อมูลอยู่ใน Database นี้ สถานการณ์ที่ปลอดภัยที่สุดสำหรับ Bob คือการที่ Bob ไม่ยอมให้นำข้อมูลของตนไปใช้เลย ซึ่งเราจะเรียกว่า Opt-out Scenario ของ Bob (หรือในบริบทของ PDPA ให้คิดว่าเป็นเคสที่ Bob ไม่ให้ Consent ก็ได้) และ Query Output ที่คำนวณได้โดยละข้อมูลของ Bob นี้ว่า Bob’s Opt-out Output ทั้งนี้ถ้าเราอยากรู้ว่าการที่ Bob ยอมให้นำข้อมูลของเขาไปใช้นั้นจะเกิดให้มี Privacy Leakage เท่าใด เราสามารถวัดได้จากความแตกต่างของ Query Output ที่ใช้ข้อมูลของ Bob กับ Bob’s Opt-out Output นั่นเอง ตัวอย่างดูได้จากภาพข้างล่างนี้

Differential privacy defines privacy loss by how much the actual output differs from the perfect-privacy scenario. Conceptual picture showing how differential privacy defines privacy leakage.

นี่คือในกรณีที่เราอยากรู้ว่า Query Output จะเกิด Privacy Leakage ของ Bob มากแค่ไหน แต่ใน Database ตั้งต้นของเรานั้นย่อมมีข้อมูลของคนอื่นนอกจาก Bob อีกมากมาย ดังนั้นการวัด Privacy Leakage ที่ดีควรพิจารณาความปลอดภัยของทุกคนใน Database ไปพร้อมกัน และยิ่งไปกว่านั้นควรพิจารณาความปลอดภัยของทุกคนที่มีความเป็นไปได้ว่าจะมีข้อมูลอยู่ใน Database ด้วย ถึงจะเรียกว่าเป็นการปกป้อง Privacy ได้อย่างแท้จริง (คิดอีกมุมคือการวัด Privacy Leakage ต้องคิดเผื่อลูกค้าที่อาจเข้ามาอยู่ใน Database ในอนาคตด้วย) Differential Privacy จึงนิยาม Privacy Leakage โดยพิจารณาทุกๆ Instances ของ Database ที่เป็นไปได้ในพร้อมกัน (NB: Database หนึ่งมีนาย ก. และนาย ข. กับอีกก้อนที่มีนาย ก. คนเดียวจะเรียกว่าเป็น 2 Instances of the Database หรือบางครั้งจะเรียกกันสั้นๆ ว่า 2 Databases) หรือพูดอีกอย่างคือ Mechanism หรือวิธีการใดๆ จะปกป้อง Differential Privacy จะต้องปกป้องทุกคนที่อาจจะมีข้อมูลอยู่ใน Database นี้ได้พร้อม ๆ กัน ซึ่งตรงนี้จัดว่าเป็นจุดแข็งหนึ่งของ Differential Privacy เมื่อเทียบกับ PETs อื่น ๆ

เนื่องจากหลักการป้องกัน Privacy ของ Differential Privacy นั้นขึ้นกับคอนเซ็ปต์ Opt-out พอสมควร ในแวดวง Differential Privacy จึงมีคำเฉพาะในการเรียกหลักการนี้ โดยเราจะเรียก Databases 2 ก้อนที่ต่างกันแค่ข้อมูลของคนคนเดียว (เช่น มี Bob กับไม่มี Bob อยู่) ว่า Neighboring Databases (หรือ Database ที่ติดกัน ถ้าเราอยากจะแปลไทย) และการวัดปริมาณการรั่วไหลของ Privacy ใน Differential Privacy นั้นจะวัดจากความแตกต่างระหว่าง Query Output ที่สูงที่สุด โดยพิจารณาจาก

  1. ทุกคู่ Neighboring Databases ที่เป็นไปได้ เช่น มี Bob กับไม่มี Bob, มี Alice กับไม่มี Alice, มี Charlie กับไม่มี Charlie, จนครบทุก Combination ที่เป็นไปได้ใน Universe ที่เราพิจารณา (เช่นประชาชนทุกคนในเมืองไทย)
  2. ทุกค่าของ Query Output ที่เป็นไปได้

(อ่านจากเงื่อนไขที่พิจารณานี้ เราน่าจะรู้แล้วว่า Differential Privacy เป็นการป้องกันความเป็นส่วนตัวที่ครอบคลุมมาก)โดยค่าความต่างสูงสุดนี้เราจะแทนด้วย Epsilon ดังนั้นใน Differential Privacy เราจะได้ยินคนพูดถึงค่า Epsilon อยู่เสมอ สำหรับใครที่อยากได้คำนิยามทางคณิตศาสตร์ของ Differential Privacy ที่ชัดๆ สามารถดูได้จากนิยามข้างล่างนี้เลย

A more formal definition of differential privacy.

Mechanism ที่ปกป้องความเป็นส่วนตัวตาม Differential Privacy

จากที่ได้แนะนำนิยามของ Differential Privacy ไปแล้ว เรามาดูกันบ้างว่าเราจะสามารถป้องกันความเป็นส่วนตัวตาม Differential Privacy ได้อย่างไร โดยในบทความนี้เราจะยกตัวอย่างวิธีการหนึ่งวิธีมาให้อ่านกัน

ใน Differential Privacy เราจะเรียกวิธีการว่า Mechanism เพื่อแยกแยะออกจาก Query Function ที่ใช้เพื่อคำนวณค่าต่างๆ จาก Database โดยหนึ่งใน Mechanism แรกๆ ที่มีการพิสูจน์ว่าปกป้องความเป็นส่วนตัวตาม Differential Privacy และยังคงเป็นหนึ่งใน Mechanism ที่ใช้กันอยู่คือ Laplace Mechanism

หลักการหลักของ Laplace Mechanism นี้ง่ายมาก คือการเพิ่ม Noise ที่สุ่มมาจาก Laplace Distribution ที่ Scale ตามค่า Sensitivity ของ Query Function นั่นเอง

Laplace mechanism adds noise drawn from Laplace distribution to the computation result.

ซึ่ง Sensitivity ของ Query Function ในที่นี้จะนิยามจากความแตกต่างสูงสุดของ Query Output ที่เกิดจาก Neighboring Databases เช่น หากเราพิจารณารายได้รวมของทุกคนในบริษัทแห่งหนึ่งที่มีพนักงาน 100 คนที่มีรายได้ตั้งแต่ 10,000 บาทจนถึง 100,000 บาท ค่า Sensitivity ของการคำนวณรายได้รวมจะเป็น 100,000 เนื่องจาก Neighboring Database ที่ทำให้ให้ค่ารายได้รวมที่คำนวณได้ต่างกันมากที่สุดคือ Neighboring Database คู่ที่อันหนึ่งมีคนมีรายได้ 100,000 และอีกอันหนึ่งที่ไม่มีคนนี้อยู่นั่นเอง

โดยใน Laplace Mechanism ถ้าเราอยากให้ Privacy Leakage ไม่เกิน Epsilon เราจำเป็นต้องเพิ่ม Noise ที่สุ่มมาจาก Laplace Distribution ที่มีค่า Mean=0 และ Scale=Sensitivity/Epsilon เพียงเท่านี้เราก็ได้ Mechanism ที่ปกป้องความเป็นส่วนตัวตาม Differential Privacy แล้ว

สำหรับใครที่อยากอ่านทฤษฎีชัดๆ ดูได้ตามภาพด้านล่างเลย

Laplace mechanism preserves differential privacy.

ใครสนใจเพิ่มเติมขอชวนให้ไปอ่านต่อได้ตาม Resources ด้านล่างนี้ได้

https://www.cis.upenn.edu/~aaroth/Papers/privacybook.pdf

https://www.apple.com/privacy/docs/Differential_Privacy_Overview.pdf

สำหรับชาวเทคคนไหนที่สนใจเรื่องราวดีๆแบบนี้ หรืออยากเรียนรู้เกี่ยวกับ Product ใหม่ๆ ของ KBTG สามารถติดตามรายละเอียดกันได้ที่เว็บไซต์ www.kbtg.tech

--

--