Privacy - k-anonymity Πιλαλίδου Αλίκη
Γιατί είναι σημαντική η ιδιωτικότητα των βάσεων δεδομένων? Διάφοροι οργανισμοί (νοσοκομεία, δημόσιοι οργανισμοί, ) δημοσιεύουν πίνακες που μπορεί να περιέχουν προσωπικές πληροφορίες. Υπάρχει πιθανότητα αν συνδυαστούν οι πίνακες αυτοί μπορεί να διαρρεύσουν οι πληροφορίες αυτές.
K-ANONYMITY(1) Ορισμοί: Quasi-Identifier: Πεδία τα οποία αν συνδυαστούν με κάποιες εξωτερικές πληροφορίες μπορούν να προσδιορίσουν μοναδικά μια εγγραφή ενός πίνακα (zip code, birth date, sex, ). Sensitive Attributes: Είναι πεδία των οποίων την πληροφορία θέλουμε να αποκρύψουμε (disease, salary, ) Identifiers: Είναι πεδία που αποκαλύπτουν την ταυτότητα ενός ατόμου (name, SNN,..). Ιδιότητα k-anonymity Ένας πίνακας Τ είναι κ-anonymous όταν κάθε εγγραφή του πίνακα είναι ίδια ως προς τα Quasi-Identifier πεδία του με κ- 1 άλλες εγγραφές.
K-ANONYMITY(2)
K-ANONYMITY(3) Οι δυο λειτουργίες που χρησιμοποιούνται για να πετύχουμε την anonymity είναι: Generalization: Γενικεύουμε τα πεδία μας σε μια πιο γενική μορφή Suppression: Διώχνουμε εγγραφές που μας χαλάνε το anonymity Στόχος: Είναι να πετύχουμε k-anonymity ελαχιστοποιώντας εγγραφές που χάνουμε και το generalization που εφαρμόζουμε στα πεδία.
Παράμετροι του προβλήματος Υπάρχουν 3 παράμετροι του προβλήματος Suppression: πόσες εγγραφές αφαιρούνται από τα δεδομένα στη διαδικασία της ανωνυμοποίησης Generalization: πόση πληροφορία χάνεται γενικεύοντας τα δεδομένα σε κάποιο επίπεδο γενίκευσης Anonymity: ποιο είναι το ελάχιστο ανεκτό μέγεθος k για κάθε group (παρόμοια: ποιο είναι το ελάχιστο ανεκτό μέγεθος l για τη διαφοροποίηση των ευαίσθητων τιμών σε ένα group) οι οποίες είναι ανταγωνιστικές στο πόσο χρήσιμη πληροφορία έχω
Προβλήματα Πώς επηρρεάζει η γενίκευση το suppression? Ας υποθέσουμε ότι έχουμε πλήρη επίγνωση των στατιστικών χαρακτηριστικών του data set.πιθανές διερευνήσεις: Βρες μου ένα σχήμα ανωνυμοποίησης (γενίκευση + διαγραφή) τ.ώ. (α) suppression <= MaxSupp && (β) γενίκευση <= [h1,, hn] (hi ύψος σε μια ιεραρχία) && (γ) k >= Kmin Μπορούμε να βρούμε μια online εκδοχή του αλγορίθμου που να εκμεταλλεύεται τα στατιστικά στοιχεία? (έτσι ώστε αν δεν υπάρχει απάντηση, εύκολα να μπορούμε να παζαρέψουμε / προσεγγίσουμε μια κοντινή της)
Data set που χρησιμοποιήσαμε Adult από το UC Irvine Machine learning repository με 30.162 εγγραφές Quasiidentifiers Sensitive attribute Attribute Distinct Value Age 72 Gender 2 Race 2 Marital Status 7 Education 16 Native country 41 Work Class 7 Occupation 14 Hours per week 94 Salary 2
Ιεραρχίες γενίκευσης Aall={*} Mall={*} Age3={17-36-, 37-56, } Age Age2={17-26-, 27-36, } M1={Married, Other} Marital status Age1={17-22-, 23-27, } Age0={17,18,,90} Μ0={Married-af-spouse, Married-civ- spouse, Married-spouse-absent, divorced, Never-married, Seperated,Widowed} Eall={*} Wall={*} Oall={*} Education E1={Low Education, Medium, High} Work Class W1={Private, Other } O1={blue color, white color, Other } Occupation E0={Pre School, 1 st -4 th, 5 th - 6 th, 7 th -8 th, 9 th,10 th, 12 th, Hsgrad, Prof school, Assocvoc,Assoc-acd, Some college, Barchelors, Master, Doctorate} W0={Federal-gov, Local-gov, State-gov, Private, Self-emp-inc, Self-emp-not-inc, Without-pay} O0={Adm-cleric, armed-forces, Craft-repair, Exec-manag, Farming- Fishing, Handlers-cleaner, Machineop-inscr, other-services, priv-houseserv,prof-speciall, protect-serv, seles,tech-support, trans-moving}
Πειράματα(1) Για 3 πεδίαage, Marital status και Occupation φτιάξαμε όλους τους συνδυασμούς από levels των πεδίων αυτών ( από Α0Μ0Ο0 μέχρι AallMallOall) # of groups Age0-Marit0-Occup0 1000 800 600 400 200 0 1 2 3 4 5 6 7 8 9 10 tuples # of groups 200 150 100 50 0 Age1-Marit0-Occup0 1 2 3 4 5 6 7 8 9 10 tuples # of groups 4 3 2 1 0 Age1-Marit1-Occup1 1 2 3 5 6 7 8 9 10 12 tuples Από τα ιστογράμματα μπορούμε να εξάγουμε πληροφορίες για το πλήθος των εγγραφών που χάνουμε κατά την διαδικασία της ανωνυμοποιήσης. πχ για να πετύχουμε 3-anonymity στο επίπεδο Α0Μ0Ο0 πρέπει να διώξουμε εγγραφές που έχουν 1 ή 2 εγγραφές (1580=1*834+2*373).1580 (1*834+2*373).
Πειράματα (2) Προσθέτοντας άλλο ένα πεδίο το Education έχουμε τα παρακάτω αποτελέσματα. # of groups 6000 5000 4000 3000 2000 1000 0 A0M0O0E0 1 2 3 4 5 6 7 8 9 10 tuples # of groups 1000 800 600 400 200 0 A0M1O0E1 1 2 3 4 5 6 7 8 9 10 tuples # of groups 16 14 12 10 8 6 4 2 0 A1M1O1E1 1 2 3 4 5 6 7 8 9 10 tuples Για να πετύχουμε 3-anonymity στο επίπεδο Α0Μ0Ο0Ε0 έχουμε 8214 suppressed εγγραφές. Προσθέτοντας ακόμα ένα πεδίο το work class για το επίπεδο A0M0O0E0W0 έχουμε 13045 suppressed εγγραφές.133
Στρώμα γενίκευσης Generalization lattice για 4 πεδία (Age, Marital status, Occupation, Education) Τα νούμερα δείχνουν τον αριθμό των suppressed tuples σε κάθε περίπτωση γενίκευσης για k = 3 8214 0000 3582 3850 5756 3015 0001 0010 0100 1000 1226 0011 2063 1712 996 1119 1611 0110 0101 1001 1010 1100 305 297 213 384 0111 1101 1011 1110 37 1111
Συμπεράσματα Όταν αυξάνουμε το πλήθος των πεδίων, το πλήθος των εγγραφών που χάνουμε (suppressed) αυξάνεται. Σε χαμηλά επίπεδα των πεδίων έχουμε μεγάλο πλήθος suppressed εγγράφων. Πχ για 4 attribute από level {Α0, Μ0, Ο0, Ε0} στα οποία είχαμε 8214 απώλειες, ανεβαίνοντας ένα level στο attribute Occupation, η απώλειες πέφτουν στις 3850. Αναβαίνοντας για όλα τα attribute ένα level, οι απώλειες είναι μόλις 37. Όταν ανεβαίνουμε επίπεδο στο attribute Age έχουμε την μικρότερη απώλεια (suppressed tuples). Ακολουθεί το attribute education, στη συνέχεια το attribute occupation και τέλος έρχεται το attribute marital status με την μεγαλύτερη απώλεια. Συμπεραίνουμε ότι το Age όταν είναι σε χαμηλό επίπεδο είναι αυτό που δημιουργεί το μεγαλύτερο πλήθος εγγραφών που πρέπει να διώξουμε για να πετύχουμε το επιθυμητό k- anonymity.
Ευχαριστώ