Chapter 3 of 4
How much one person can move a query — and why that sets the noise floor
আগের অধ্যায়ে আমরা ডিফারেনশিয়াল প্রাইভেসির সংজ্ঞা শিখেছিলাম — কীভাবে একটা অ্যালগরিদমের আউটপুটে নয়েজ যোগ করলে কোনো একজন মানুষের ডেটা আলাদাভাবে চেনা যায় না। আর এটাও শিখেছিলাম যে নয়েজ ঠিকমতো মাপতে হয় — কম হলে প্রাইভেসি নষ্ট, বেশি হলে আউটপুট অকেজো।
কিন্তু একটা প্রশ্নের উত্তর দেইনি: ঠিক কতটুকু নয়েজ যথেষ্ট? এই উত্তরটা নির্ভর করে একটাই জিনিসের উপর — সেনসিটিভিটি। যেকোনো প্রাইভেট মেকানিজম বানানোর আগে এটা হিসাব করতেই হবে।
এই অধ্যায়ে সেনসিটিভিটি মানে কী, কেন দরকার, কীভাবে হিসাব করতে হয়, আর ভুল হলে কী হয় — সবটা বুঝব।
ধরো তুমি একটা মেডিকেল ডেটাবেজ থেকে ব্যবহারকারীদের গড় বয়স প্রকাশ করতে চাচ্ছ। বেশিরভাগ মানুষ ৩০-৪০ বছরের। এমন সময় একজন নতুন রোগী যোগ হলো যার বয়স ১৩০ (ধরে নাও)। সেই একজনের কারণে গড়টা অনেকটা বদলে যেতে পারে। এই সর্বোচ্চ পরিবর্তনটাকেই বলা হয় গ্লোবাল সেনসিটিভিটি।
গ্লোবাল সেনসিটিভিটি বলে: সব সম্ভাব্য ডেটাসেট আর সব সম্ভাব্য এক-রেকর্ড পরিবর্তনের মধ্যে, কোয়েরির আউটপুট সবচেয়ে বেশি কতটুকু বদলাতে পারে?
গাণিতিকভাবে, ফাংশন -এর জন্য:
পড়ার উপায়: সব সম্ভাব্য neighboring dataset pair নাও — যারা ঠিক একটা রেকর্ডে আলাদা। কতটুকু বদলায় সেটা হিসাব করো। সব pair-এর মধ্যে সবচেয়ে বড় মানটাই ।
মূল কথা হলো এটা গ্লোবাল: আমরা জিজ্ঞেস করছি না "সাধারণত কতটুকু বদলায়?" বা "এই নির্দিষ্ট ডেটাসেটে কতটুকু বদলায়?" — জিজ্ঞেস করছি কোনো ডেটাসেটে যা-ই হোক, সবচেয়ে খারাপ ক্ষেত্রে কতটুকু বদলাতে পারে।
ধরো তুমি গড় পরিবর্তনের উপর নির্ভর করে নয়েজ ঠিক করলে — সবচেয়ে খারাপ কেস না। বেশিরভাগ ডেটাসেটে ঠিকঠাক চলবে। কিন্তু একটা নির্দিষ্ট ডেটাসেটে, একজনের রেকর্ড হয়তো বিশাল পরিবর্তন আনে, আর তোমার নয়েজ যথেষ্ট না। সেই আউটপুট দেখে শত্রু কিছু সত্যি তথ্য বের করে ফেলে। DP ভেঙে পড়ে।
ডিফারেনশিয়াল প্রাইভেসির গ্যারান্টি সব neighboring dataset-এর জন্য ধরে রাখতে হবে, শুধু বেশিরভাগের জন্য না। তাই সেনসিটিভিটিকে অবশ্যই worst-case ধরতে হবে।
গ্লোবাল সেনসিটিভিটি হলো ফাংশনের বৈশিষ্ট্য — নির্দিষ্ট ডেটাসেটের না। হিসাব করতে ডেটা লাগে না, শুধু কোয়েরির গণিত বুঝলেই হয়। তাই এটা আগেই একবার বের করে রাখা যায়।
কাউন্টিং কোয়েরি। — রেকর্ডের সংখ্যা। একটা রেকর্ড যোগ বা বাদ দিলে কাউন্ট ঠিক ১ বদলায়। গ্লোবাল সেনসিটিভিটি: ।
সাম কোয়েরি। যেখানে প্রতিটা । একজন ঢুকলে বা বেরোলে সাম সর্বোচ্চ বদলায়। গ্লোবাল সেনসিটিভিটি: ।
গড় কোয়েরি। । যদি ফিক্সড না থাকে — add/remove মডেলে বদলায় — তাহলে গড়ের সেনসিটিভিটি । যদি ১ পর্যন্ত নামতে পারে, সেনসিটিভিটি ।
অনেকে ভাবে গড় করলে সেনসিটিভিটি কমে যায়। কমে — কিন্তু শুধু যদি -কে ফিক্সড ধরো। Add/remove মডেলে বদলাতে পারে, তখন সেনসিটিভিটি অনেক বাড়তে পারে। সবসময় ফিক্সড না ভেরিয়েবল সেটা স্পষ্ট করো।
গ্লোবাল সেনসিটিভিটি নিরাপদ, কিন্তু অনেক সময় অতিরিক্ত সতর্ক। ধরো পরীক্ষার নম্বরের একটা ডেটাবেজ — নম্বর ০ থেকে ১০০। গ্লোবাল সেনসিটিভিটি ১০০। কিন্তু তোমার আসল ডেটায় ১০,০০০ শিক্ষার্থী আর সবার নম্বর ৬০ থেকে ৯৫-এর মধ্যে। নতুন একটা রেকর্ড যোগ হলে সর্বোচ্চ পরিবর্তন ৯৫ — ১০০ না। তুমি ১০০-এর জন্য নয়েজ মেশাচ্ছ, অথচ সেটা কখনো ঘটবেই না।
লোকাল সেনসিটিভিটি এটাই মাপে: নির্দিষ্ট ডেটাসেট -এর জন্য, একটা রেকর্ড বদলালে সর্বোচ্চ কতটুকু বদলায়?
পড়ার উপায়: তোমার আসল ডেটাসেট ফিক্স করো। থেকে ঠিক একটা রেকর্ড বদলে যত পাওয়া যায়, তাদের মধ্যে -এর সর্বোচ্চ পরিবর্তনই লোকাল সেনসিটিভিটি।
গ্লোবাল সেনসিটিভিটি হলো সব সম্ভাব্য -এর লোকাল সেনসিটিভিটির সর্বোচ্চ: ।
ধরা আছে একটা সমস্যা। যদি তুমি লোকাল সেনসিটিভিটি দিয়ে নয়েজ ক্যালিব্রেট করো, তাহলে নয়েজের স্কেল নিজেই ডেটাসেট সম্পর্কে তথ্য ফাঁস করে।
একটু ভাবো। শত্রু জানে তুমি লোকাল সেনসিটিভিটি ব্যবহার করছ। সে নয়েজের পরিমাণ দেখে আন্দাজ করতে পারে ডেটাসেটটা কেমন ধরনের। বেশি নয়েজ মানে ডেটাসেটে এমন রেকর্ড আছে যেগুলো -এ বড় পরিবর্তন আনে — এটাই ফাঁস।
লোকাল সেনসিটিভিটি সরাসরি নয়েজ মেকানিজমে ঢুকিয়ে দিলে ডিফারেনশিয়াল প্রাইভেসি ভাঙে। নয়েজের মাত্রা নিজেই ডেটাসেটের তথ্য প্রকাশ করে দেয়।
স্মুথ সেনসিটিভিটি আর প্রপোজ-টেস্ট-রিলিজ নামের টেকনিক আছে যেগুলো লোকাল সেনসিটিভিটির কাছাকাছি মান নিরাপদে ব্যবহার করতে দেয় — সেগুলো লোকাল সেনসিটিভিটির হিসাবটাকে নিজেই প্রাইভেট বানিয়ে নেয়। এখানে বিস্তারিত যাচ্ছি না, কিন্তু কেন সরাসরি ব্যবহার হয় না সেটা বোঝাটা জরুরি।
| বৈশিষ্ট্য | গ্লোবাল সেনসিটিভিটি | লোকাল সেনসিটিভিটি |
|---|---|---|
| নির্ভর করে | শুধু কোয়েরি ফাংশনের উপর | কোয়েরি ফাংশন + নির্দিষ্ট ডেটাসেটের উপর |
| মান | সব সম্ভাব্য ডেটাসেটের worst case | D-র neighbor-দের worst case |
| সম্পর্ক | উপরের সীমা | গ্লোবাল সেনসিটিভিটির চেয়ে কম বা সমান |
| সরাসরি ব্যবহার করা যায়? | হ্যাঁ — Laplace/Gaussian-এ দাও | না — D সম্পর্কে তথ্য ফাঁস হয় |
| সাধারণ ব্যবহার | বেশিরভাগ প্রাকটিক্যাল DP মেকানিজম | অ্যাডভান্সড টেকনিক (smooth sensitivity, PTR) |
এতক্ষণ সেনসিটিভিটিকে একটা সংখ্যা হিসেবে দেখেছি। কিন্তু কোয়েরির আউটপুট যদি একটা ভেক্টর হয় — একসাথে অনেকগুলো সংখ্যা — তাহলে পরিবর্তনের "মাপ" কীভাবে নেব সেটা বলতে হবে। L1 আর L2 সেনসিটিভিটি ঠিক এটাই করে।
-এর L1 সেনসিটিভিটি:
যেখানে — সব কোঅর্ডিনেটের পরম মানের যোগফল।
L1 সেনসিটিভিটি সব মাত্রা জুড়ে মোট পরম পরিবর্তন মাপে। এটা Laplace নয়েজ-এর সাথে জুটি বাঁধে — প্রতিটা আউটপুট কোঅর্ডিনেটে আলাদাভাবে Laplace নয়েজ যোগ হয় স্কেল । Laplace মেকানিজম -DP দেয় (pure differential privacy)।
-এর L2 সেনসিটিভিটি:
যেখানে — ইউক্লিডিয়ান নর্ম।
L2 সেনসিটিভিটি পরিবর্তনের সরলরৈখিক দূরত্ব মাপে। এটা Gaussian নয়েজ-এর সাথে জুটি বাঁধে — থেকে নয়েজ নেওয়া হয়। Gaussian মেকানিজম -DP দেয় (approximate differential privacy)।
স্কেলার আউটপুটের জন্য (): । দুটো একই।
ভেক্টর আউটপুটের জন্য (): সবসময় । তাই L2 সেনসিটিভিটি সবসময় L1-এর চেয়ে কম বা সমান। উচ্চ-মাত্রার আউটপুটের জন্য Gaussian নয়েজ (L2-ভিত্তিক) প্রায়ই কম নয়েজ লাগায় — এ কারণেই নিউরাল নেটওয়ার্ক গ্রেডিয়েন্টের জন্য Gaussian মেকানিজম বেশি পছন্দের।
| বৈশিষ্ট্য | L1 সেনসিটিভিটি | L2 সেনসিটিভিটি |
|---|---|---|
| নর্ম | Manhattan (পরম মানের যোগফল) | Euclidean (বর্গমূলের যোগফল) |
| নয়েজ মেকানিজম | Laplace মেকানিজম | Gaussian মেকানিজম |
| DP ধরন | Pure DP (epsilon-DP) | Approximate DP (epsilon, delta)-DP |
| সম্পর্ক | সবসময় L2-এর চেয়ে বড় বা সমান | সবসময় L1-এর চেয়ে ছোট বা সমান |
| কখন ব্যবহার | সাধারণ স্কেলার কোয়েরি, কম মাত্রা | উচ্চ-মাত্রার আউটপুট, নিউরাল নেট গ্রেডিয়েন্ট |
| DP-SGD-এ? | বিরলভাবে | হ্যাঁ — গ্রেডিয়েন্ট ক্লিপিং L2 নর্ম ব্যবহার করে |
তাত্ত্বিক কথা অনেক হলো — এখন দেখি আসলে কীভাবে হিসাব করতে হয়।
দুটো প্রধান পদ্ধতি: অ্যানালিটিক্যাল ডেরাইভেশন (কোয়েরির গণিত থেকে বিশ্লেষণ করা) আর ক্লিপিং (ইনপুট সীমাবদ্ধ করে সেনসিটিভিটি নিশ্চিত করা)।
সহজ কোয়েরির জন্য এই প্রশ্নটা করো: "একটা রেকর্ড যোগ বা বাদ দিলে আউটপুট সর্বোচ্চ কতটুকু বদলায়?"
ধাপ ১: লিখে ফেলো neighboring datasets-এর জন্য।
ধাপ ২: রেকর্ডের মান কী হতে পারে সেটা ধরে এই পার্থক্যের পরম মান (বা নর্ম) bound করো।
ধাপ ৩: দেখাও যে bound টা tight — এমন একটা ডেটাসেট আছে যেটা সত্যিই এই সর্বোচ্চ মানে পৌঁছায়।
উদাহরণ: সাম কোয়েরি। যেখানে ।
সর্বোচ্চ পরম মান । তাই ।
উদাহরণ: হিস্টোগ্রাম কোয়েরি। যেখানে হলো bucket -এর রেকর্ড সংখ্যা। একটা রেকর্ড যোগ বা বাদ দিলে ঠিক একটা bucket-এর কাউন্ট ১ বদলায়।
হিস্টোগ্রামের L1 এবং L2 উভয় সেনসিটিভিটিই ১ — bucket কতগুলো সেটা যাই হোক। এ কারণেই হিস্টোগ্রাম সহজে প্রাইভেট করা যায়।
নিউরাল নেটওয়ার্কের গ্রেডিয়েন্টের মতো জটিল ফাংশনের জন্য অ্যানালিটিক্যাল হিসাব অবাস্তব। তখন ক্লিপিং করি — আউটপুট একটা নির্দিষ্ট সীমার মধ্যে আটকে দিই, ফলে সেনসিটিভিটি জানা থাকে।
প্রতিটা রেকর্ডের গ্রেডিয়েন্ট L2 নর্ম -এ ক্লিপ করলে, একটা রেকর্ড যোগ বা বাদ দিলে আউটপুট সর্বোচ্চ বদলায়। L2 সেনসিটিভিটি হয় ঠিক — আমরা নিজেরাই বেছেছি।
DP-SGD-এ এটাই হয়:
ক্লিপিং সেনসিটিভিটি নিশ্চিত করে, কিন্তু সাথে গ্রেডিয়েন্ট bias আনে। যেসব গ্রেডিয়েন্টের নর্ম max_norm-এর বেশি, সেগুলো ছোট হয়ে যায় — মানে সত্যিকারের গড় গ্রেডিয়েন্ট পাচ্ছ না। max_norm একটা হাইপারপ্যারামিটার: খুব ছোট হলে bias বেশি, খুব বড় হলে বেশি নয়েজ লাগে।
গ্রেডিয়েন্ট ক্লিপিং বিনামূল্যে নয়। max_norm-এর বেশি নর্মের যেকোনো গ্রেডিয়েন্ট ছোট হয়ে যায় — এটা সত্যিকারের গড় গ্রেডিয়েন্ট থেকে সরিয়ে দেয়। এই bias হলো bounded সেনসিটিভিটির মূল্য। max_norm বাছাই করা একটা হাইপারপ্যারামিটার ট্রেডঅফ।
একসাথে একাধিক কোয়েরি চালালে সেনসিটিভিটি যোগ হয়:
প্যারালেল কম্পোজিশন শক্তিশালী। ডেটা অঞ্চল অনুযায়ী ভাগ করলে, একজনের রেকর্ড শুধু একটা অঞ্চলে থাকে, তাই শুধু একটা কোয়েরি প্রভাবিত হয়।
ধাপ ১: কোয়েরি ফাংশন চিহ্নিত করো
কী হিসাব করছ? যোগফল, গড়, হিস্টোগ্রাম, গ্রেডিয়েন্ট, সর্বোচ্চ? পরিষ্কারভাবে লিখে ফেলো।
ধাপ ২: Neighboring dataset সংজ্ঞা ঠিক করো
Bounded (substitute) না unbounded (add/remove) DP ব্যবহার করছ? উত্তর সেনসিটিভিটির হিসাব বদলে দেয়।
ধাপ ৩: f(D) বিয়োগ f(D') প্রতীকীভাবে লিখো
বদলে যাওয়া একটা রেকর্ডের ফাংশন হিসেবে পার্থক্য প্রকাশ করো। সর্বোচ্চ পরিমাণ কত হতে পারে?
ধাপ ৪: L1 না L2 নর্ম বেছে নাও
Laplace নয়েজ ব্যবহার করবে (L1 সেনসিটিভিটি) না Gaussian নয়েজ (L2 সেনসিটিভিটি)?
ধাপ ৫: সেনসিটিভিটি রিপোর্ট করো
একটা closed-form ধ্রুবক হিসেবে সেনসিটিভিটি বলো। ক্লিপিং ব্যবহার করলে max_norm-ই সেনসিটিভিটি। নিশ্চিত করো এটা tight।
মেকানিক্স বোঝা হয়েছে। এখন পিছিয়ে দেখি কেন সেনসিটিভিটি কেন্দ্রীয় ধারণা।
প্রতিটা DP নয়েজ মেকানিজম সেনসিটিভিটির সাথে তুলনামূলকভাবে নয়েজ সেট করে। Laplace নয়েজের স্কেল । Gaussian নয়েজের স্ট্যান্ডার্ড ডেভিয়েশন -এর সাথে সম্পর্কিত। সেনসিটিভিটি হলো সর্বনিম্ন নয়েজের পরিমাণ — এর চেয়ে কম নয়েজে DP সম্ভব না।
এর মানে সেনসিটিভিটি সরাসরি প্রাইভেসি–ইউটিলিটি ট্রেডঅফ নিয়ন্ত্রণ করে। বেশি সেনসিটিভিটি মানে বেশি নয়েজ মানে কম উপযোগী আউটপুট। একই ভ্যালুর দুটো কোয়েরি সেনসিটিভিটির পার্থক্যে সম্পূর্ণ আলাদা ব্যবহারিক ফল দিতে পারে।
কিছু পরিসংখ্যান প্রাইভেট করা কার্যত অসম্ভব কারণ তাদের গ্লোবাল সেনসিটিভিটি অনেক বেশি।
যেমন সর্বোচ্চ (max) কোয়েরি। রেকর্ড -এ থাকলে গ্লোবাল সেনসিটিভিটি । নয়েজের স্কেল — যেকোনো যুক্তিসংগত -এ ফলাফল নষ্ট হয়ে যায়।
অন্যদিকে সাম কোয়েরি। সেনসিটিভিটি , কিন্তু সাম নিজেই -এর সাথে বাড়ে — তাই আপেক্ষিক নয়েজ কমে। Max সেটা করে না।
এ কারণেই সম, কাউন্ট, হিস্টোগ্রাম প্রাইভেট করা ব্যবহারিক, কিন্তু সর্বোচ্চ, সর্বনিম্ন, মিডিয়ান অনেক কঠিন।
সেনসিটিভিটি ছোট ধরলে নয়েজ কম — DP গ্যারান্টি শেষ, চুপচাপ। মেকানিজম চলে, আউটপুট দেখতে noisy, কিন্তু গণিত বলছে প্রাইভেসি নেই।
সেনসিটিভিটি কম ধরলে কোনো এরর মেসেজ আসে না। মেকানিজম চলে, আউটপুট দেখায়, বিশ্লেষণ বলে epsilon-DP — কিন্তু সেটা ভুল। DP ইম্প্লিমেন্টেশনের সবচেয়ে বিপজ্জনক ব্যর্থতাগুলোর একটা এটা। সন্দেহ হলে সর্বদা বেশি (রক্ষণশীল) অনুমান করো।
সেনসিটিভিটি বোঝাটা সিস্টেম ডিজাইনের শুরু থেকে প্রভাব ফেলে:
Add/remove মডেলে বদলাতে পারলে, গড় কোয়েরির সেনসিটিভিটি — ফিক্সড -এর জন্য নয়। যদি ১ পর্যন্ত নামতে পারে, সেনসিটিভিটি । সবসময় ফিক্সড না ভেরিয়েবল সেটা পরীক্ষা করো।
L1 সেনসিটিভিটি দিয়ে Gaussian নয়েজ, বা L2 সেনসিটিভিটি দিয়ে Laplace নয়েজ ব্যবহার করলে প্রাইভেসি অ্যাকাউন্টিং ভুল হয়। L1 → Laplace, L2 → Gaussian। এটা কঠিন নিয়ম।
লোকাল সেনসিটিভিটি সরাসরি নয়েজ মেকানিজমে ঢুকিয়ে দিলে নয়েজের মাত্রা দিয়ে ডেটাসেট সম্পর্কে তথ্য ফাঁস হয়। সবসময় গ্লোবাল সেনসিটিভিটি ব্যবহার করো, অথবা অ্যাডভান্সড টেকনিক (smooth sensitivity, propose-test-release) ব্যবহার করো।
সেনসিটিভিটি হলো DP-র আনুষ্ঠানিক সংজ্ঞা আর বাস্তব নয়েজের মধ্যে সেতু। এখন জানা হলো কোয়েরি সর্বোচ্চ কতটুকু বদলাতে পারে — মানে নয়েজের ন্যূনতম সীমা কত। পরের ধাপে দেখব কোন নয়েজ বিতরণ ব্যবহার করতে হবে আর প্রমাণ করব সেটা কীভাবে DP গ্যারান্টি দেয়।
দুটো মেকানিজম রাজত্ব করে: Laplace মেকানিজম pure DP-র জন্য (L1 সেনসিটিভিটি ব্যবহার করে), আর Gaussian মেকানিজম approximate DP-র জন্য (L2 সেনসিটিভিটি ব্যবহার করে)। দুটোই সরাসরি এই অধ্যায়ের সেনসিটিভিটি বিশ্লেষণ থেকে আসে। তারপর composition theorems দিয়ে একাধিক অপারেশনে budget কীভাবে জমা হয় সেটা দেখব — প্রাইভেট সিস্টেম তৈরির পূর্ণ toolkit তৈরি হবে।