Προσεγγιστικοί αλγόριθµοι για οµαδοποίηση στοιχείων από συγκρίσεις Γιάννης Γιώτης Universitat Politècnica de Catalunya http://www.cs.upc.edu/~igiotis/soda06.pdf
Σε αυτή την οµιλία Παρουσίαση του προβλήµατος Γνωστά αποτελέσµατα Νέοι αλγόριθµοι Τι µπορούµε να κρατήσουµε Πολυπλοκότητα της οµαδοποίησης Πότε το πρόβληµα είναι δύσκολο και γιατί Τυχαία δειγµατοληψία Αποτελεσµατικότητα Μία τυπική απόδειξη Ένας πιο πολύπλοκος αλγόριθµος Τι κάνουµε όταν η απλή λύση δε φαίνεται να δουλεύει 2
Οµαδοποίηση στοιχείων σε σµήνη Συγκριτικές εκτιµήσεις Ποσοτικές 0.9 0.2 k-means, k-sum Ποιοτικές όµοια ανόµοια Correlation Clustering 4
Οµαδοποίηση µε ποιοτικές εκτιµήσεις Θεσσαλονίκη + Πάτρα Ηράκλειο + + - - - + - - Αθήνα όμοια ανόμοια 5
Οµαδοποίηση µε ποιοτικές εκτιµήσεις - Μοντέλο Είσοδος Γράφος n κορυφών Χαρακτηρισµός των ακµών Ζητούµενο Μία «καλή» οµαδοποίηση + ακµές θα πρέπει να συνδέουν κορυφές στο ίδιο σµήνος - ακµές θα πρέπει να συνδέουν κορυφές σε διαφορετικά σµήνη + - όμοια ανόμοια Αξιολόγηση της οµαδοποίησης συµφωνίες = #(+εσωτερικές ακµές) + #(-εξωτερικές ακµές) διαφωνίες = #(-εσωτερικές ακµές) + #(+εξωτερικές ακµές) 6
Οµαδοποίηση σε διάφορες ποικιλίες MaxAgree Μεγιστοποίηση Συµφωνιών MinDisAgree Ελαχιστοποίηση Διαφωνιών MaxAgree[k] Μεγιστοποίηση Συµφωνιών χρησιµοποιώντας (µέχρι) k σµήνη MinDisAgree[k] Ελαχιστοποίηση Διαφωνιών χρησιµοποιώντας (µέχρι) k σµήνη Σε πλήρεις γράφους Σηµαντικά διαφορετική πολυπλοκότητα από τους γενικούς γράφους 7
Προσεγγιστικοί αλγόριθµοι Όλες οι ενδιαφέρουσες παραλλαγές του προβλήµατος είναι NP-hard Αφού δεν µπορούµε να βρούµε τη βέλτιστη λύση ας βρούµε µία προσεγγιστική Αν η βέλτιστη λύση είναι αξίας OPT ζητάµε µια λύση αξίας >εopt για προβλήµατα µεγιστοποίησης <εopt για προβλήµατα ελαχιστοποίησης ε: σταθερός προσεγγιστικός παράγοντας 8
Γνωστά αποτελέσµατα δυσκολότερο Γενικοί γράφοι Πλήρεις γράφοι MaxAgree δυσκολότερο MinDisAgree MaxAgree[k] MinDisAgree[k] APX-hard 0.766-προσέγγιση APX-hard logn-προσέγγιση APX-hard, 0.766-προσέγγιση O( logn)-προσέγγιση για k=2. Αδύνατη η προσέγγιση για k>2 PTAS APX-hard 2.5-προσέγγιση PTAS PTAS PTAS: Polynomial Time Approximation Scheme. Προσέγγιση για οποιοδήποτε ε. Ότι καλύτερο προσεγγιστικά. APX-hard: Αδύνατη η προσέγγιση πέρα κάποιου σταθερού παράγοντα εκτός αν P=NP. Δεν υπάρχει PTAS. 9
Σε αυτή την οµιλία Παρουσίαση του προβλήµατος Γνωστά αποτελέσµατα Νέοι αλγόριθµοι MaxAgree[k] MinDisagree[2] MinDisagree[k] 10
MaxAgree[k] PTAS Συνοπτικά PTAS: Θέλουµε να βρούµε µια λύση αξίας τουλάχιστον 1-ε της βέλτιστης λύσης Η βέλτιστη λύση είναι Θ(n 2 ) Αν ο γράφος έχει πολλές + ακµές, χρησιµοποιούµε µόνο µια οµάδα Αν ο γράφος έχει πολλές ακµές, τοποθετώντας τις κορυφές τυχαία στις οµάδες, η µέση τιµή είναι Θ(n 2 ) Θα οµαδοποιήσουµε τον γράφο σε στάδια (V 1,V 2,,V m ),m = O(1/ ε) Θα φράξουµε το σφάλµα σε κάθε στάδιο σε O(ε 2 n 2 ). Έχουµε συνολικά O(1/ε) στάδια. Το συνολικό σφάλµα είναι O(εn 2 ) 11
MaxAgree[k] PTAS Το βασικό εργαλείο Τυχαία Δειγµατοληψία Χρησιµοποιούµε ένα µικρό τυχαίο δείγµα για να εκτιµήσουµε τα σµήνη Θα διατρέξουµε όλες τις πιθανές οµαδοποιήσεις του τυχαίου δείγµατος Στην ανάλυση θα εστιάσουµε στην οµαδοποίηση που ταυτίζεται µε τη βέλτιστη λύση. Μόνο καλύτερη λύση µπορούµε να βρούµε 12
MaxAgree[k] PTAS Αλγόριθµος 1. Χωρίζουµε το γράφο σε 2. Διαλέγουµε m τυχαία δείγµατα σταθερού µεγέθους 3. For i=1 m do a. Για κάθε οµαδοποίηση του i. Βάζουµε τις κορυφές του στο σµήνος που µεγιστοποιεί τις συµφωνίες (σε σχέση µε το S i ) ii. Διατηρούµε την καλύτερη οµαδοποίηση που έχουµε βρει 4. Ενώνουµε τα σµήνη και εξάγουµε το αποτέλεσµα W V (V 1,V 2,,V m ),m =! " 4 / ε# $ S 1,S 2,,S m S i i W i Χρόνος εκτέλεσης: nk log( k / εδ ) O 3 ε 13
MaxAgree[k] PTAS Ανάλυση Θεωρήστε την οµαδοποίηση του τυχαίου δείγµατος µας που ταυτίζεται µε τη βέλτιστη λύση Οι περισσότερες απ τις κορυφές θα οµαδοποιηθούν σωστά (µε O(ε 2 n 2 ) σφάλµα) Το δείγµα µας, θα δώσει µια αντιπροσωπευτική εικόνα των σµηνών (περιθώριο λάθους O(εn) ανά κορυφή) O(ε 2 n 2 ) S Πολύ λίγες κορυφές O(ε 2 n) δεν θα «δουν» αντιπροσωπευτική οµαδοποίηση O(ε 2 n 2 ) Μπορούµε να αγνοήσουµε τα λάθη µέσα στο V 1 V 1 :O(εn) O(ε 2 n 2 ) 14
MinDisagree[2] Θα µπορούσαµε να τρέξουµε το MaxAgree[2]. Δουλεύει εκτός αν υπάρχουν πολύ λίγες διαφωνίες Ας εστιάσουµε στην περίπτωση που η βέλτιστη λύση έχει µόνο γn 2 διαφωνίες,για κάποιο µικρό γ Ο στόχος µας είναι µια λύση µε (1+O(γ))OPT =OPT+O(γ 2 n 2 ) διαφωνίες 15
MinDisagree[2] Οι καλές, οι κακές Ας δούµε τις κορυφές κατά τη βέλτιστη οµαδοποίηση Κάποιες έχουν πολλές συµφωνίες, ας τις ονοµάσουµε καλές κορυφές Κι ας ονοµάσουµε τις υπόλοιπες κακές. Επειδή η βέλτιστη λύση έχει πολλές συµφωνίες, υπάρχουν πολλές καλές κορυφές, τουλάχιστον (1-O(γ))n Διαλέγουµε ένα τυχαίο δείγµα S Και εστιάζουµε στην οµαδοποίηση του S που ταυτίζεται µε τη βέλτιστη λύση Οι καλές κορυφές θα έχουν µια ξεκάθαρη επιλογή βάσει του τυχαίου δείγµατος και άρα θα οµαδοποιηθούν σωστά. καλές κακές 16
MinDisagree[2] και οι όχι και τόσο άσχηµες Για τις υπόλοιπες O(γn) κακές κορυφές Μπορούµε να τις οµαδοποιήσουµε αφού έχουµε οµαδοποιήσει τις καλές κορυφές. Αφού οι καλές κορυφές έχουν οµαδοποιηθεί σωστά, δεν θα εισάγουµε πολλές καινούριες διαφωνίες, το πολύ O(γn) ανά κορυφή. 17
MinDisagree[2] Αλγόριθµος Διαλέγουµε ένα τυχαίο δείγµα S a. Για κάθε οµαδοποίηση του S i. Τοποθετούµε τις κορυφές στο «καλύτερο» σµήνος (βάσει τουs) O(γn) ανά κορυφή= O(γ 2 n 2 ) κακές O(γn) ii. Διατρέχουµε όλες τις κορυφές (παράλληλα) και τις τοποθετούµε στο «καλύτερο» σµήνος (βάσει ολόκληρου του γράφου) O(γ 2 n 2 ) b. Εξάγουµε την καλύτερη οµαδοποίηση 18
MinDisagree[k] Όχι και τόσο απλό Ο προηγούµενος αλγόριθµος δεν δουλεύει Θεωρήστε µια κορυφή µε πολλές διαφωνίες προς ένα σµήνος Για k=2 έχουµε µια προφανή τοποθέτηση Για k>2, δεν είναι πια προφανής Δεν µπορούµε πια να βασιστούµε στις καλές κορυφές 19
MinDisagree[k] Διαίσθηση Οι καλές κορυφές που θα τοποθετηθούν λανθασµένα, θα καταλήξουν σε µικρά σµήνη Οι κορυφές σε µεγάλα σµήνη, θα τοποθετηθούν (περίπου) σωστά Η οµαδοποίηση των µικρών σµηνών µπορεί να γίνει ανεξάρτητα Μπορούµε να χρησιµοποιήσουµε αναδροµικό αλγόριθµο! 20
MinDisagree[k] PTAS Ανάλυση Βασισµένοι στο τυχαίο δείγµα, οµαδοποιούµε τις κορυφές σε σµήνη C 1,,C k καλές κακές καλές κακές Θυµηθείτε τις κακές κορυφές που έχουν λίγες συµφωνίες (πολλές διαφωνίες) κατά τη βέλτιστη λύση OPT Για τα µεγάλα σµήνη C i - κακές= OPT i κακές Χάνουµε λίγες διαφωνίες από τις κακές κορυφές Τα µικρά σµήνη οµαδοποιούνται αναδροµικά Κάνουµε πρόοδο καθώς υπάρχει πάντα τουλάχιστον ένα µεγάλο σµήνος 21
MinDisagree[k] PTAS : C i κακές OPT i - κακές Ας υποθέσουµε ότι µια κορυφή v υπάρχει στο C i - (OPT 1 U bad) αλλά έπρεπε να είναι στο OPT 2 Αφού η v είναι καλή, έχει πολλές συµφωνίες αν τοποθετηθεί στο OPT 2 Το τυχαίο δείγµα µας ήταν αντιπροσωπευτικό και την τοποθετήσαµε στο σµήνος 1, άρα η v έχει πολλές συµφωνίες αν τοποθετηθεί στο OPT 1 Οι ακµές της v προς τα OPT 1,OPT 2 συµφωνούν σε µόνο µία από τις τοποθετήσεις 2xΠολλές συµφωνίες συµφ(1) + συµφ(2) 2n - OPT 1 - OPT 2 Άρα OPT 1 και OPT 2 πρέπει να είναι µικρά C 1 OPT 3?? OPT k OPT 1 OPT 1 OPT 2 OPT 2 OPT 2 Επαναλαµβάνουµε το επιχείρηµα για όλες τις κορυφές C 1. Όλα τα σµήνη OPT i πρέπει να είναι µικρά Στο τέλος, έχουµε ακόµα κορυφές στο C 1. Άτοπο 22
MinDisagree[k] PTAS Αλγόριθµος Διαλέγουµε ένα τυχαίο δείγµα S 1. Για κάθε οµαδοποίηση του S i. Τοποθετούµε τις κορυφές στο «καλύτερο» σµήνος (βασισµένοι στο S) ii. iii. iv. Υπολογίζουµε τα µεγάλα C i και µικρά D j (<n/2k)σµήνη Εκτελούµε αναδροµικά στο σύνολο των µικρών σµηνών Διατηρούµε την καλύτερη οµαδοποίηση 2. Εκτελούµε τον αλγόριθµο MaxAgree[k] 3. Εξάγουµε την καλύτερη οµαδοποίηση k ck O 2 Χρόνος εκτέλεσης k ε n 2 log n k 5 23
Ανακεφαλαίωση Οι διάφορες παραλλαγές του προβλήµατος διαφέρουν σηµαντικά στην πολυπλοκότητα τους Σε πλήρεις γράφους είναι πιο εύκολο Η ελαχιστοποίηση διαφωνιών είναι πιο δύσκολη από την µεγιστοποίηση συµφωνιών Το πρόβληµα προκύπτει όταν οι διαφωνίες είναι λίγες PTAS για MaxAgree[k] PTAS για MinDisagree[k] Απρόσµενο! Θυµηθείτε ότι το MinDisagree είναι APX-hard Η τυχαία δειγµατοληψία είναι ένα ισχυρό εργαλείο Παράγει απλούς και γρήγορους αλγορίθµους Ο αλγόριθµός µας έχει γενικευτεί και για άλλα προβλήµατα (consensus clustering) 24