170 likes | 323 Views
Zoeken en vinden: ranking & clustering. TU Delft Library Digitale Productontwikkeling. Egbert Gramsbergen. Onderwerpen. Ranking : bij query q wordt voor ieder doc d een score s ∈ [0,1] uitgerekend. d ’s worden gesorteerd op afnemende s . Hoe wordt s berekend?
E N D
Zoeken en vinden: ranking & clustering TU Delft Library Digitale Productontwikkeling Egbert Gramsbergen
Onderwerpen • Ranking: bij query q wordt voor ieder doc d een score s∈ [0,1] uitgerekend.d’s worden gesorteerd op afnemende s. • Hoe wordt s berekend? • Clustering: gegeven een verzameling docs, maak deelverzamelingen waarbinnen docs onderling minimaal verschillen. • Waarom? • Hoe?
Ranking – waarom? • Relevantie is geen binair begrip. Er bestaat meer of minder relevant. • Verschillende gebruikers beoordelen verschillende docs als relevant voor dezelfde vraag. Wat zou Google zijn zonder ranking?
Ranking – hoe? • Index = zak van Sinterklaas, gevuld met termen • doc d, query q = zakje met sommige van deze termen=> representatie als vectoren Assen: indextermen d, q: vectoren Verschil zegt iets over relevantie Maar: verfijning nodig
Verfijningen Zomaar, blijkt aardig te werken Uit kansberekening: Als d relevant dan kans p1 op term t Als d niet relevant dan kans p2 (<p1) op term t Wat is dan de kans P dat d relevant is als termen t1..tn in d voorkomen en tn+1…tN niet? Antwoord: monotoon toenemende functie van Σi(wd,i)(i loopt over alle termen die voorkomen in d) • Term frequency weging: niet lineair maar zwakker:wt = 0 als f=0, wt = 1+log(f) als f>0 (f = #keren term in doc) • Overall doc(term) frequency weging: wd = log(N/Nt ) (N = #docs, Nt = #docs met term t) • Normalisatie van vectoren: lengte = 1. • DAN: kleinere afstand = grotere similarity
Docs in (aap,noot,mies) space voorbeeld 3 termen in index: aap,noot,mies Vectoren genormaliseerd: eindpunten liggen op 1/8 boloppervlak Normalisatie: nm en nnmm vallen samen aap: relatief zeldzaam, daarombijv. amn dicht bij aap-as In het echt: niet 3 dimensies maar ~ 105 !
Similarity, relevantie en afstand Vectoren genormaliseerd: sim ∈ [0,1], sim = 1 als vectoren samenvallen=> synoniem voor relevantie Soms is het handiger om de denken in termen van (Euclidische) afstand:
Tunen, tunen, tweaken… • Zones/velden: search “kameel” =>[1.0]title:kameel [0.8]subject:kameel [0.3]abstract:kameel • Woordnabijheid in doc: search “kameel bulten” =>de kameel had twee bulten: hoge score…bulten wegens de vele muggen… blabla …daarna per kameel…: lage scorebijv. w ~ 1/(s+1) waarin s = #tussenliggende termen. • Statische factoren (onafhankelijk van q), bijv: • Documenttype/(sub)collectie (bijv. proefschrift > scriptie) • Nieuwheid (ook afhankelijk van andere factoren: voor artikel belangrijker dan voor boek, voor ict belangrijker dan voor geologie; Google: “deserves freshness” parameter) • Populariteit (ranking/rating door gebruikers, views/downloads, inkomende links) Google page rank Start: ieder doc score 1 Dan: ieder doc verdeelt zijn score gelijkelijk over zijn uitgaande links … herhaal tot in den eeuwigheid. Correctie voor “dead ends”: teleportatie naar random doc (ook voor niet-dead ends: teleportatie-coefficient typisch ca. 0.1) Oplossing: NxN overgangsmatrix M opstellen (met -1 op diagonaal), ΣiMijwj=0 => gewicht doc i ~ (i,i)subdeterminant van M.
Clustering • “Grouping a set of objects into classes of similar objects” • Een vorm van “unsupervised learning” = leren van ruwe data • Navigatie door de gehele collectie • Navigatie door zoekresultaten • Verhoging recall (meer zoekresultaten) • Verbetering performance in vector space retrieval Waarom?
Clustering: hoe? Aanname: similar = dicht bij elkaar in vectorruimte Algoritmes: • Partitional - Begin met random (beginpunten van) clusters - Iteratief verbeteren • Hiërarchische algoritmes • Bottom-up • Top-down
Een partitioning algoritme: K-Means • Begin met k random condensatiekernen • ieder doc wordt ingedeeld bij dichtstbijzijnde condensatiekern • bereken van de zo gevormde clusters de centroïden (zwaartepunten): • Gebruik deze als nieuwe condenstatiekernen en ga terug naar 2 • Ga door tot de oplossing stabiel is
Pick seeds Assign clusters Compute centroids Reassign clusters x x Compute centroids x x x x K Means voorbeeld (K=2) Reassign clusters Converged!
K Means vervolg Issues: • k ligt vast • Je kunt terechtkomen in een lokaal i.p.v. globaal optimum, afhankelijk van de beginpunten. Oplossingen: • Neem 1 random beginpunt en dan steeds als volgende het doc dat het minst lijkt op enig bestaand beginpunt, totdat je er k hebt. • Probeer verschillende sets van beginpunten uit • Begin met het resultaat van een andere methode
d3,d4,d5 d4,d5 d3 Hierarchical Agglomerative Clustering(HAC) • Begin met ieder doc in apart cluster • Combineer de 2 meest verwante clusters • Herhaal tot er 1 cluster over is d3 d5 d1 d4 d2 d1,d2
Buckshot Algorithmgebruik HAC als beginpunt voor K Means Afkappen bij k clusters • Cluster een random sample van grootte N met HAC • Afkappen bij k clusters • Neem dit als beginpunt voor K-Means clustering. • Efficiënt en geen problemen met slecht gekozen beginpunten
Cluster labels Lastig punt • Vuistregel: 5-10 meest frequente termen in de centroïde • Uitzondering: te algemene termen • Geen stopwoorden, woordstam • Alleen zelfstandige naamwoorden(combinaties) • Clustering van gehele collectie: vaak handmatig redactiewerk ]Taalkennis!
bronnen • http://courses.ischool.berkeley.edu/i141/f07/schedule.html • http://www-csli.stanford.edu/~hinrich/information-retrieval-book.html