Adatányászat Mértékek hasonlóságok, távolságok Minhash és Szegedi Tudományegyetem Adatányászat
Halmazok hasonlósága Hasonló egyedek keresése Fontos lehet hasonló egyedek megtalálása és kiszűrése, pl. plagizálás duplikátumok kiszűrése találati listáól (Google) ajánlórendszerek (A vásárló hasonló B-hez; X termék hasonló Y-hoz) Mit értünk hasonló pont alatt? A kis távolságra lévőket. Mi legyen a távolság? Adatányászat
Halmazok hasonlósága Távolságmetrikák axiómarendszere Egy (a, ) adatpont pároson értelmezett d : Rn Rn R függvényt távolságmetrikának nevezzük, amennyien eleget tesz a következő feltételeknek:. d(a, ) (nemnegativitás). d(a, ) = a = (pozitív definitség). d(a, ) = d(, a) (szimmetria). d(a, ) d(a, c) + d(c, ) (háromszög-egyenlőtlenség). Adatányászat
Halmazok hasonlósága Távolság és hasonlóság viszonya Szoros kapcsolat a két fogalom között Viszonylag természetes átjárhatóság iztosított a két fogalom között pl. adott d(a, ) távolság esetén s(a, ) hasonlóságra tekinthetünk úgy, mint: s(a, ) = d(a, ) s(a, ) = +d(a,) s(a, ) = exp d(a,)... Adatányászat
Halmazok hasonlósága Távolságfogalmak csoportosítása Euklideszi vs. nem-euklideszi távolságok Euklideszi távolságok: az adatpontok (Euklideszi) téreli pozíciója alapján határozza meg a távolságot nem Euklideszi távolságok: az adatpontok távolsága nem a téreli, "fizikai" pozíciójuk alapján kerül meghatározásra Metrikus vs. nem-metrikus távolságok Metrikus távolság: teljesül rá a távolságmetrikák axiómarendszere Nem-metrikus távolság: nem teljesül rá a távolságmetrikák axiómarendszere Például? d(pm, PM) Adatányászat
Halmazok hasonlósága Minkowski távolság az Euklideszi távolság általánosítása /p P N ( ai i p ) d(a,) = i= p = Manhattan-távolság (` norma) a példáan 7 p = Euklideszi távolság (` norma) a példáan 5 p = Maximum (`max norma) a példáan 6 5 =(6,) (6,) a=(;) 5 6 Adatányászat
Halmazok hasonlósága Koszinusz hasonlóság a és által ezárt szög koszinusza Előnye? Hátránya? a scos (a, ) = cos Θ = kakkk (iz.: tálán) Koszinusz hasonlóság ináris vektorok esetéen? Adatányászat
Halmazok hasonlósága Koszinusz távolság A koszinusz hasonlóságól származtathatjuk pl. dcos = scos (a, ) vagy dcos = arccos scos (a, ) d(a, ) scos (a, a) = dcos (a, a) = scos (a, ) = scos (, a) dcos (a, ) = dcos (, a) Háromszög-egyenlőtlenség: a-ól c-e majd c-ől -e történő forgatások legjo eseten is csak megegyezhetnek (egyéként pedig meghaladják) az a-ól -e történő közvetlen forgatás mértékével Adatányászat
Halmazok hasonlósága Egzotikusa távolságok Változók közötti összefüggés figyelemevétele Mahalanois-távolság p dmah (a, ) = (a ) Σ (a ), ahol Σ a jellemzők által felvett értékekől számított kovarianciamátrix B A C d(a,c) < d(a,b)? Adatányászat
Halmazok hasonlósága Mi is valójáan a Mahalanois távolság? A korrelálatlan adatokon számított Euklideszi-távolság Hogy tennénk korrelálatlanná X -et? (X Rn d ) Feltehető, hogy a jellemzők várható értéke X X Σ Az az L Rd d leképezés kell, amire (L X )(XL) = I fennáll Ahonnan Σ = (LL ) Σ = LL, azaz L leképezés a Σ Cholesky-felontásáól jön Emlékeztető.) (AB) = B A, (AB) = B A, valamint (A ) = (A ).) Cholesky-felontás: szimmetrikus, pozitív definit mátrixoknak (mint amilyen Σ is) megadható egy speciális (U = L ) LU-felontása = 5?? Hogy nézne ki két korrelálatlanná tett pont távolságnégyzete? (L (a )) (L (a )) = (a ) Σ (a ) Adatányászat
Halmazok hasonlósága Dekorreláció Cholesky felontással képeken Σ=[ ; ], µ=[ ], n=5 6 6 6 6 6 6 6 Adatányászat 6
Halmazok hasonlósága Egzotikusa távolságok Változó hosszúságú jellemzővektorok Változó hosszúságú jellemzővektorok (pl. fehérjék vagy gének esetéen) Mennyire hasonló az AAGCTAA és a GGCTA sorozatok? Szerkesztési távolság: megadja, hogy a sztring hány törlés és eszúrás művelettel alakítható át sztringgé Tö fajtája is ismert (pl. súlyozott fajta, Levenshtein távolság) Dinamikus programozással megoldható O(mn) idően tálázatkitöltéssel (m és n a szavak hosszai) Szoros kapcsolat a leghossza közös részsorozat (LKR) meghatározásának prolémájával ded (a, ) = a + LKR(a, ) = 7 + 5 = Adatányászat
Halmazok hasonlósága Szerkesztési távolság példa D[, j] = j, j {,,..., n} D[i, ] = i, i {,,..., m} d(i, j) +, törlés esetén d(i, j ) +, eszúrás esetén D[i, j] = min d(i, j ) + ( a(i) == (j)), csere esetén ded (a, ) = D[m, n] A T C G G ^ 5 ^ 5 A 5 6 5 A 6 5 G 5 C 5 5 T 5 6 5 6 A 5 6 7 6 7 A Adatányászat
Halmazok hasonlósága Távolságmérték-e a szerkesztési távolság? szerkesztés nemnegatív értékű ded (a, ) ded (a, a) = a + a LKR(a, a) = ded (a, ) = ded (, a), mivel a eszúrás és törlés műveletek egymás inverzei Háromszög-egyenlőtlenség: a átírása -vé úgy, hogy előtte átírtuk c-vé nemkevese szerkesztéssel oldható csak meg, mintha egyől formára hoztuk volna a-t Adatányászat
Halmazok hasonlósága Jaccard hasonlóság sjacc (A, B) = A B A B Példa sjacc (A, B) = / =. Multihalmazok közötti hasonlóság A = {x, x, x, y }, B = {x, x, y, y, z} sjacc (A, B) = {x,x,y } {x,x,x,y,y,z} Adatányászat = /6
Halmazok hasonlósága Jaccard és Dice távolságok djacc (A, B) = sjacc (A, B) Jaccard hasonlóság egy rokona: Dice együttható sdice (A, B) = ddice (A, B) = A B A + B A B A + B Adatányászat
Halmazok hasonlósága Dokumentumok közötti hasonlóság karakter k-gramok: egy szöveg k-hosszú részsztringjeinek halmaza pl. k = és D = adca D = {a, d, dc, ca} Szóközök figyelemevétele (pl. Szeretek hagymalevest enni. és A TEK hagy ma levest enni.) k megválasztása fontos (mik lehetnek a szempontok?) Adatányászat
Halmazok hasonlósága k-gramok karakterek vs. tokenek magyar áécé mérete = (5) lehetséges -gramok = 7896 (565) P( mert ) P( qyzz ) P( yyyy ) növeljük k értékét (pl. k =) a dokumentumokat pedig a ennük szereplő k -gramok (pl. k ájton tárolt) hash értékeinek halmazával reprezentáljuk Újsághírek hasonlóságára: karakter n-gramok helyett stopszavakat követő token (szó) n-esek használata. Miért? Adatányászat
elmélete Lokalitás-érzékeny hashelés () Motiváció Tfh. hasonló dokumentumokat szeretnénk keresni N = = 6 dokumentum között Brute force megoldás: N Jaccard hasonlóság számítása másodpercenként 6 összehasonlítást elvégezve, az 5 dokumentumpár összehasonlítása tö, mint 5,5 napig tartana Adatányászat
elmélete Lokalitás-érzékeny hashelés () Keressünk egy h hasítófüggvényt, amelyre nagy valószínűséggel teljesül: s(a, ) h(a) = h() s(a, ) h(a) 6= h() Mivel a hasonló dokumentumokhoz nagy valószínűséggel egyező hasítófüggvény-értékek tartoznak, így elegendő azoknak a pontoknak az összehasonlítása, amelyekre h(a) = h() Adatányászat
elmélete Halmazok reprezentációja Lenyomatok (signatures) formájáan: karakterisztikus mátrix Elem a c d e S S S S A gyakorlatan persze nem tároljuk az egész mátrixot ritka reprezentáció Adatányászat
elmélete Minhash függvény Permutáljuk a karakterisztikus mátrix sorait Az egyes ojektumok hash értéke legyen az első nemnulla elemük pozíciója pl. hmin (S ) =, hmin (S ) = Elem e a d c S S S S Adatányászat
elmélete Minhash lenyomatok A karakterisztikus mátrix sorainak összes lehetséges permutációját kipróálva kiszámítható a Jaccard hasonlóság Határozzuk meg az adatpontok minhash függvényét a karakterisztikus mátrix sorainak töszöri véletlen permutációja mellett Az adatpontokat reprezentáljuk minhash függvényértékeik kise elemszámú (pl. elemű) vektoraként Nagy mátrix esetéen a sorok nem permutálhatók hatékonyan. Megoldás? Adatányászat
elmélete Minhash lenyomat Példa Item S S S S Inicializáló lépés S S S S h h h = x + mod 5 Adatányászat h = x + mod 5
elmélete Minhash lenyomat Példa Item S S S S. lépés S S S S h h h = x + mod 5 Adatányászat h = x + mod 5
elmélete Minhash lenyomat Példa Item S S S S. lépés S S S S h h h = x + mod 5 Adatányászat h = x + mod 5
elmélete Minhash lenyomat Példa Item S S S S h = x. lépés S S S S h min(, ) h min(, ) + mod 5 Adatányászat h = x + mod 5
elmélete Minhash lenyomat Példa Item S S S S. lépés S S S S h h h = x + mod 5 Adatányászat h = x + mod 5
elmélete Minhash lenyomat Példa Item S S S S 5. lépés S S S S h h h = x + mod 5 Adatányászat h = x + mod 5
elmélete Minhash lenyomat Példa Végső minhash lenyomatok h h S S S S Minhashek alapján S S, (,) S, (,) S,5 (,5) S, (/) ecsült (és S, (,), (,), (,), (/) a tényleges) S,5 (,5), (,), (,),5 (,) Adatányászat hasonlóságok S, (/), (/),5 (,), (,)
elmélete Lokalitás érzékeny hashelés M = [mi,j ]k n : mi,j = j adatpont sorainak i-dik permutációja mellett felvett minhash értéke osszuk fel M-et dara s soról álló lokkra (k = s) lokk, hogy azon elül teljesen megegyeznek lenyomataik a, -re jelöltként tekintünk (azonos kosára képeződnek le) kosarak s sor lokk n elem Adatányászat
elmélete Lokalitás érzékeny hashelés a, pont x soron egyezik (- típusú sor), y soron tér el (- vagy - típus) sim(a, ) = P(minhash lenyomatuk x egyezik)= x+y P(s-elemű minhash lenyomatuk valahol eltér) = sim(a, )s P(s-elemű minhash lenyomatuk alkalomól legalá egyszer egyezzen) = ( sim(a, )s ) Adatányászat
elmélete.8.6...5 Hasonlóság s=5 és =:.8.6...5 Hasonlóság P(azonos kosára kerülés) s= és =: P(azonos kosára kerülés) P(azonos kosára kerülés) P(azonos kosára kerülés) Lokalitás érzékeny hashelés s és szerepe s= és =:.8.6...5 Hasonlóság s=7 és =:.5 Hasonlóság.8.6.. Adatányászat
elmélete Lokalitás érzékeny függvénycsaládok Tfh. adva van az S tér adatpontjai fölött értelmezett d távolságmérték a hasítófüggvények egy H családja (d, d, p, p)-érzékeny, ha minden h H és (a, ) S pontpárra teljesül: d(a, ) < d P(h(a) = h()) p d(a, ) > d P(h(a) = h()) p a minhash függvények a Jaccard hasonlóságra nézve egy (d, d, ( d ), ( d ))-érzékeny családot iztosítanak (d d esetéen). Mi a helyzet, ha d < d(a, ) < d? Hamis pozitívok: h(a) = h(), holott d(a, ) > t Hamis negatívok: h(a) 6= h(), holott d(a, ) < t Az eddigieken felül elvárások: függetlenség, hatékonyság (olcsóság, kominálhatóság) Adatányászat
elmélete Lokalitás érzékeny függvénycsaládok fölerősítése ÉS konstrukciók Tfh. adott egy (d, d, p, p )-érzékeny H függvénycsalád H függvénycsalád (d, d, ps, ps )-érzékeny lesz, amennyien minden h H -ra teljesül h (a) = h () i s hi (a) = hi () : hi H Adatányászat
elmélete Lokalitás érzékeny függvénycsaládok fölerősítése VAGY konstrukciók Tfh. adott egy (d, d, p, p )-érzékeny H függvénycsalád H függvénycsalád (d, d, ( p ), ( p ) )-érzékeny lesz, amennyien minden h H -ra teljesül h (a) = h () i hi (a) = hi () : hi H Adatányászat
elmélete Lokalitás érzékeny függvénycsaládok fölerősítése ÉS-VAGY konstrukciók kominálása Tekintsünk a minhash függvényre (.,.6,.8,.)-érzékenyként ( p ) : ÉSs= -konstrukciót követő VAGY= ( ( p) ) : VAGY= -konstrukciót követő ÉSs= FP/FN? d p ( p ) ( ( p) ),9,,9,99,8,,68,5,7,,,5,6,,985,5795,5,5,75,778,,6,65,97,66655,96799,,7,,8,8785,996,,9,986,9996 Adatányászat
elmélete Lokalitás érzékeny függvénycsalád a koszinusz távolsághoz Az összehasonlítandó vektorokat vetítsük véletlen vektorok által meghatározott hipersíkokra h(a) = h() a és pontok a véletlen félterek azonos oldalaira esnek (a hipersíkot definiáló vektorral vett pontszorzataik előjelei megegyeznek) P(h(a) = h()) = d(a,) 8 (d, d, (8 d )/8, (8 d )/8)-érzékeny család Nagyszámú random vektort generálni költséges lenne megelégszünk ±-ekől álló vektorokkal Adatányászat
elmélete Nagyfokú hasonlóság mérése hatékonyan Az aan az eseten igazán hatékony, ha a pontpáronkénti hasonlóságok/távolságok nem közel azonosak Ötlet: ne hasonlítsuk össze azon (xi, xj ) pontpárokat, melyekre P(s(xi, xj ) J) =, adott J küszöértékre Egyszerűsítés: az összehasonlítandó ojektumok rendezett, karakterismétlődést nem tartalmazó sztringek Rendezett = a, karakter azonos sorrenden forduljon elő az ojektumok reprezentációian Nem valódi megkötések Heurisztikák Hossz alapú szűrés Prefix-alapú szűrés, pozíció alapú szűrés,... Adatányászat
elmélete Hossz alapú szűrés Tfh. a sztringes reprezentációjú ojektumokat hosszuk szerint rendeztük, és Ls < Lt A két sztring közötti átfedés mértéke Ls sjacc (s, t) Amennyien minket kizárólag a sjacc (s, t) J pontpárok érdekelnek, úgy LLst J Lt LJs -nek teljesülnie kell Adatányászat Ls Lt
elmélete Prefix alapú szűrés sztringet indexeljünk p hosszú prefixük szimólumaival p prefixekre teljesüljön: sim(s, t) J ps pt 6= Tfh. sim(s, t) J, mégis p s pt = Ls ps a maximális hasonlóság (amennyien t szuffixe Ls megegyezik az s sztring Ls ps hosszú szuffixével) s J > Ls L p teljesülése esetén s és t összehasonlítása fölösleges s Ls hosszú s sztring esetéen legyen ps > ( J)Ls c (ps = ( J)Ls c + ) Érdemes lehet a szimólumok természetes (lexikografikus) rendezésétől eltérni a sora állításuk során. Mégis hogy? gyakoriság szerint fordított sorrende vegyük a karaktereket Adatányászat
elmélete Prefix alapú szűrés példa Tfh. J =, 9 és s = cdefghij Ls = 9 ps =, 9c + indexelt Tfh. t reprezentációja nem szimólummal kezdődik, és sim(s, t), 9 t = acdefghij Lt = pt = (, 9) c + = a, indexelt ps pt 6= -nél nagyo szimólummal kezdődik Ekkor ps pt = sim(s, t) < J És tényleg: még t = cdefghij esetéen is sim(s, t) = Adatányászat 8 9 <, 9
elmélete Pozíció alapú szűrés Motiváció: van, hogy a prefix alapú szűrés nem elég Tfh. s = acdefghijk, t = cdefghijk, J =, 9 ps = a és pt = c (Ls = Lt = miatt) Ekkor ps pt 6=, mégis sim(s, t) = 9/ < J Ötlet: az indexelés szimólumok helyett történjen (szimólum, pozíció) párosok alapján Adatányászat
Proailisztikus adatszerkezet (Tartalmaz művelet) Implementáció: hasítófüggvények és itvektor használatával Ha egy x elem olyan értékre képeződik le, ahova már koráan képeződött le elem, akkor feltesszük, hogy már láttuk x-et Fals negatívok aránya, viszont fals pozitív találatok lehetnek Paraméterei: itvektor hossza (n), hasítófüggvények száma (k) Hatékonyságot efolyásolja még: eltárolt elemek száma (m) Linkek: Bloom filter demo és Guava API Adatányászat
elemzése Darts tála hasonlat: q mezőe r -szer dounk P(nem találunk ele egy mezőe) = q r P(r-szer nem találunk ele egy mezőe) = q = q qr r q e q r P(találat ér egy mezőt) = e q Micsoda q és r? q = n, r = m Mi történik, ha egy dartsszal töször is dohatunk? q = n, r = k m P(fals pozitív) = ( e k m n )k Adatányászat
példa Tfh. van 9 egyedünk, és egy 8 9 hosszú itvektorunk P(fals pozitív) = ( e 8 ), 75 Tfh. minden egyedhez két hasítófüggvényt számolunk P(fals pozitív) = ( e 8 ), 9 Adatányászat