Csoportosítás
Mai témák Motiváció: ajánlások Dokumentumok csoportosítása Csoportosító/klaszterező algoritmusok
Dokumentumhalmaz csoportokra bontása Az induló dokumentumhalmazt egyes feldolgozási feladatoknál célszerű csoportokra bontani. Dokumentum csoportra bontásának felhasználása: dokumentum jellemzése a csoporttal eredmény halmazban való navigáció dokumentum halmaz áttekinthetőbbé tétele dokumentum és dokumentumhalmaz jellemzése dokumentumok redukált reprezentációja hatékonyabb dokumentumhalmaz feldolgozás keresések felgyorsítása (klaszterekben keres először)
Dokumentum klaszterezés Definíció: A klaszterezés célja a dokumentumok, szavak csoportosítása oly módon, hogy egy csoportba az egymáshoz hasonló dokumentumok vagy szavak kerüljenek. Jellemzők nincs előre definiált csoport felügyelet nélküli tanulás felbontást állít elő Eljárások manuális: pontos, költséges, emberközeli, statikus gépi: olcsóbb, dinamikus, pontatlan, zajos
Példa: Éttermek ajánlása Adott a Palo Alto-i éttermek teljes listája Néhánynál és jelzi az értékelést (thumb up & down) Az értékeléseket a Stanford hallgatói végezték Melyik éttermet ajánljuk valakinek?
Bemenet
Algoritmus: 0. verzió A legnépszerűbb éttermeket ajánlja A pozitív és negatív szavazatok számának különbsége Figyelmen kívül hagyja a felhasználó ízlését ÉS a hasonló ízlésű felhasználók értékeléseit Hogyan tudjuk felhasználni a „hasonló gondolkodású” emberek értékelését Kiinduló feltételezéseink Az értékelések/preferenciák nem véletlenszerűek Például, ha odavagyok az olasz konyháért, és szeretem az Il Fornaio-t, akkor valószínű, hogy a Cenzo-t is kedvelni fogom
A mátrix másképp
Az összes többi helyen nulla. Numerikusan Az összes többi helyen nulla.
Két ember közti hasonlóság A preferenciavektoraik hasonlósága Egy lehetőség a hasonlósági függvényre: belső szorzat Dave és Estie hasonlósága 3 De Dave és Cindy hasonlósága -2 Ez alapján Dave-nek a Straits Cafe lehet ajánlani Bobnak az Il Fornaio-t, stb.
1.1 verzió Cél: számomra ismeretlen étterem ajánlása Bemenet: az általam értékelt éttermek Alapötlet: a leghasonlóbb ízlésű felhasználó kikeresése, és az ő értékelése alapján egy új étterem ajánlása Megjegyzések: Nem veszi figyelembe a kulináris ízlést, stb. Mi van akkor, ha nincs olyan étterem, amit a leghasonlóbb felhasználó tapasztalatai alapján ajánlani lehetne Jó-e, ha csak egyetlen felhasználó véleményére támaszkodunk? www.everyonesacritic.net (filmek, A+…D-, F értékelés) www.netflix.com (filmek, 1-5 csillag)
1.K verzió Vegyük a k leghasonlóbb felhasználót Ajánljuk az általuk legnépszerűbbnek tartott helyet
Egy kicsit jobb megközelítés Csoportosítsuk a hasonló felhasználókat: eredmény = csoportok, szegmensek, klaszterek Ajánláskor: Keressük a „legközelebbi csoportot” Ajánljuk a csoport legnépszerűbb éttermét Jellemzői: hatékony adathiány (= nincs mit ajánlani) nem jelentkezik (többnyire) még minding nem veszi figyelembe, miért ajánluk éppen azt, amit (személyes ízlés, preferencia, …) Hogyan végezzük el a csoportosítást?
Hogyan csoportosítsunk? A jó klaszterezés két alapvető követelménye: a hasonló ízlésű embereket egy csoportba, a különböző ízlésűeket külön csoportba tegyük. Tényezők: Szükség van egy hasonlóság/különbözőség definícióra. Vektortérmodell? Normalizáció? Hány csoportot alkossunk? Előre rögzített számút? Teljesen adatvezérelt legyen? Ne legyen triviális a csoportosítás – kerüljük a túl kicsi és túl nagy csoportokat
Pillantsunk egy kicsit távolabbra! Felhasználók csoportosítása éttermi ajánlások céljából Tetszőleges más entitások (dokumentumok, web oldalak) Egyéb javaslattevő rendszerek Amazon.com Általános felügyelet nélküli gépi tanulás
Miért csoportosítunk dokumentumokat? Javítsuk a felidézést keresőalkalmazásokban Jobb keresési eredmények Javítsuk a vektortér alapú információ-visszakeresést (information retrieval – IR) Gyorsabb keresés Dokumentumgyűjtemények analízálása/nagiváció Jobb felhasználói felület
Autómatikus klaszterezési módszerekkel szembeni elvárások nagy méretű vektorterek kezelése klaszteren belül nagy legyen a hasonlóság klaszterek között kicsi legyen a hasonlóság a tanított minták pontos osztályozása ismeretlen minták jó osztályozása szemléletes, elfogadható legyen a döntés lényeges vonásokon alapján történjen a felbontás illeszkedjen a tapasztalatokra, az előzetes osztályainkhoz megszorítások figyelembe vételének támogatása
Felidézés javítása keresésnél Klaszter hipotézis – Hasonló szövegű dokumentumok kapcsolódnak egymáshoz Ergo, a keresés javítására: Csoportosítsuk a korpusz dokumentumait előre Amikor a keresőkifejezésre illeszkedik a D doksi, akkor adjuk vissza a csoportjába eső többi doksit is Azt reméljük, hogy ezzel: A car keresőkifejezésre kapunk automobile-t tartalmazó találatokat is A klaszterezés egy csoportba teszi az autókról és személygépkocsikról szóló dokumentumokat Ez miért lehet így?
Vektortér keresés gyorsítása Vektortér alapú keresésnél a keresővektorhoz legközelebbi dokumentumvektorokat keressük Ez azt jelenti, hogy a keresővektort minden dokumentummal össze kell hasonlítani – lassú (alkalmazásfüggő, persze) Ha előre csoportosítjuk a korpusz dokumentumait A kereséshez legközelebbi klaszterek közeli dokumentumait adja vissza Pontatlan, de nem alkalmazza az időigényes kimerítő keresést
Vektortér keresés gyorsítása (2) Csoportosítsuk a dokumentumokat k csoportba Vegyük a keresőkifejezéshez legközelebbi ci csoportot Rangsoroljuk a ci -be tartozó dokumentumokat
Csoportosítás UI-hez (1) Korpuszanalízis és navigáció Tegyük az adott korpusz dokumentumait csoportokba Rekurzíve, ez egy tematikus fát indukál (taxonómia) Segíti a felhasználót a korpusz böngészésénél, hogy a megfelelő információt megtalálja Kulcsfontosságú: értelmes címkék hozzárendelése a fa csomópontjaihoz Yahoo: manuális hierarchia Gyakran nem áll rendelkezésre új dokumentumgyűjteménynél
Csoportosítás UI-hez (2) Navigáció keresési eredmények közt Legyen adva a keresési eredmény (pl. Jaguar, v. NLP), csoportosítsuk a hasonló dokumentumokat Tekinthető szavak egyértelműsítéseként is (word sense disambiguation) Jaguar jelenthet: Autómárkát Állatot Amerikaifutball-csapat (Jacksonsville Jaguars) Videojáték …
Példa eredménycsoportokra Cluster 1: Jaguar Motor Cars’ home page Mike’s XJS resource page Vermont Jaguar owners’ club Cluster 2: Big cats My summer safari trip Pictures of jaguars, leopards and lions Cluster 3: Jacksonville Jaguars’ Home Page AFC East Football Teams
Reprezentáció csoportosításnál Hasonlósági mérték Dokumentum reprezentáció
Mitől lesznek a dokumentumok „hasonlóak”? Ideális: értelmi (szemantikus) hasonlóság Gyakorlatban: statisztikai hasonlóság Koszinusz hasonlóságot alkalmazunk Dokumentumok vektorként reprezentálva Számos algoritmusnál könnyebb, ha dokumentumok távolságát használjuk (mintsem hasonlóságát) De az algoritmusokban a koszinusz mértéket fogjuk használni Hipotézis: „Közeli” dokumentumok hasonló témáról szólnak
Hány csoport legyen? Ha a csoportok száma, k, adott Az n dokumentum felosztása (partícionálása) az előre megadott számú csoportba A csoportok számának meghatározása a probléma szerves része Adott a korpusz, partícionáljuk őket „megfelelő” számú csoportba Pl. keresési eredmények esetén – a k ideális értéke nem ismert előre – noha a felh.felület nyilván jelenhet korlátokat Algoritmusfüggő
Csoportosító algoritmusok Hierarchikus algoritmusok Lentről felfelé (bottom-up), egyesítő (agglomerative) Fentről lefelé (top-down), felosztó (divisive) Csoporthasonlóság fogalmára szükség van Particionáló, iteratív működésű algoritmusok Kiindulásként egy véletlenszerű partícionálással kezdenek Iteratívan finomítják a felosztást Más megkülönböztetés Szigorú és lágy csoportosítás, a csoportba tartozás jellegétől függően
Kulcsfogalom: reprezentáns elem Szükség van a csoport reprezentáns elemének (pontjának) a fogalmára Ez a pont a csoport tipikus eleme, vagy központi eleme, pl. Az a pont, amely köré a legkisebb sugarú kört kell írni, hogy az összes csoportbeli dokumentumot tartalmazza Legkisebb négyzetek távolsága, stb. Az átlagos dokumentuma a csoportnak Centroid vagy súlypont
Centroid Klaszter centroidja = komponensenként vett átlagos vektor – ez is egy vektor Nem feltétlenül egy dokumentum. (1,2,3); (4,5,6); (7,2,6) vektorok centroidja (4,3,5). Centroid a legtöbb esetben megfelelő reprezentáns. Centroid
Izolált pontok (outliers) Az izolált pontokat figyelmen kívül tudja hagyni Hogyan határozható meg az izolált pont? Sok statisztikai definíció létezik, pl. A pont centroidhoz képesti momentuma > M vmilyen csoport momentum. Mondjuk 10. Centroid Outlier
Medoid mint reprezentáns elem A centroid nem biztos, hogy a korpusz egy eleme. Medoid: egy reprezentáns dokumentum Példa: a centroidhoz legközelebbi dokumentum Miért hasznos ez Nagy csoportok reprezentáns eleme (>1000 docs) A centroid egy sűrű vektor lesz A medoid egy ritka vektor lesz Analógia: átlag/centroid vs. medián/medoid
Dendrogram: Példa – hierarchikus algoritmusok Csoportok egyesítésénél, a dokumentumok gyakran tematikus taxonómiába rendeződnek d3 d5 d1 d3,d4,d5 d4 d2 d1,d2 d4,d5 d3
Egyesítő klaszterezés Adott: csoportok száma, k. Kezdetben minden dokumentumot egy csoportnak tekintünk Kiindulás: n csoport; Iteráció: while csoportok száma > k, keresd a „legközelebbi” csoportpárt, és egyesítsd őket.
“Legközelebbi” csoportpár Sok lehetőség van a definícióra Centroid kapcsolódás (center of gravity, súlypont) Egyesítsük azokat, amelyeknek a centroidja (avagy súlypontja) a leginkább hasonló a cos mérték szerint Átlagos kapcsolódás (average-link v. group average) - csoportok közti átlagos távolság Átlagos cos mérték az elempárok között Egyszerű kapcsolódás (single-link) - csoportok közti minimális távolság A leginkább hasonló elemek alapján Teljes kapcsolódás (complete-link) - csoportok közti maximális távolság A legtávolabbi elemek hasonlósága alapján
Particionáló módszerek, K-means Az algoritmus jellemzői: Az elemeket közvetlenül a klaszterhez rendeli hozzá A hozzárendelés iteratív közelítésen alapszik. Előre adott az igényelt klaszterek darabszáma (K) Algoritmus: induláskor felveszünk K darab középpontot, mint klaszter középpontot (tetszőlegesen!) minden elemet hozzárendeljük a legközelebbi középponthoz a kapott csoportokra kiszámítjuk az elemei átlagát a klaszter középpontot az új átlagba visszük át A középpontok vándorolnak az optimális hely felé, konvergencia ha egyik klaszterközéppont sem mozog már, leáll az algoritmus Egyes változatokban a közép helyett a k-medián módszert alkalmazzák K meghatározása klaszterezés ellenőrzés
Principal Direction Divisive Partitioning (PDDP) A módszer alapgondolata: A térben olyan egyenes mentén a legkönnyebb felosztani, ahol legnagyobb az értékek szórása. a szeparáló egyenes ezen irányra merőleges lesz
PDDP algoritmus A főirány meghatározása a mát tanult PCA módszerrel lehetséges az objektumok levetítésese erre az egy dimenzióra a kapott egydimenziós térben klaszterezés elvégzése pl. K-means módszerrel klaszter határok meghatározása a határpontokra merőleges egyenesek megadása ezen egyenesek lesznek a klaszter határok