Václav Nádraský 3/2010
1. Úvod 2. Model sociální sítě 3. Ohodnocovací model v sociálních sítí 4. Zpracování dotazu 5. Dosažené výsledky u implementací v reálných sítích 6. Závěrečné zhodnocení
Sociální sítě se staly velmi populárními Mnoho uživatelů, mnoho dat Nové způsoby propojení publikovaných informací Vztahy mezi uživateli Použití tagů (nebo jiné, uživatelsky specifické, formy definice skóre) Facebook, del.icio.us, Flickr, LibraryThing, MySpace, LinkedIn, YouTube
SS (sociální sítě) nabízí nové způsoby vyhledávání Výsledek dotazu závisí na iniciátorovi dotazu Více důvěřuji doporučení svých přátel Příbuznost tagů Wisdom of the crowd (Explicitní, Implicitní) Velké množství možností v dotazování Vyžaduje efektivní a škálovatelné metody Běžné způsoby dotazování Neefektivní (DataMining data rychle narůstají) Neberou v potaz vztahy mezi uživateli (Web search) Nový inkrementální top-k algoritmus (založený na threshold algoritmu) s dvourozměrnou expanzí Sociální expanze Sémantická expanze
Různé zaměření různých SS Všechny jsou ale založené na podobném principu Formálnější definice SS Uživatelé se musí registrovat Produkují obsahové informace = dokumenty Přidávají k dokumentům tagy, popř. hodnocení Uživatelé si definují svůj vlastní seznam přátel Velikost seznamu ~ reputace uživatele v dané síti
SS lze chápat jako graf
Friendship(User1, User2, FriendshipStrength) Určuje existenci uživatele 2 na seznamu přátel uživatele 1 Lze definovat i sílu vztahu Tranzitivní uzávěr TagSimilarity(Tag1, Tag2, TagSim) Různá slova, stejný význam Synonyma, hyponyma Linkage(Document1, Document2, Weight) Odkazy mezi dokumenty GPS souřadnice pro místo pořízení fotografie
DocContent(Document, Tag, ContentScore) Určuje přiřazení tagu k dokumentu Pomocí ContentScore lze určit i jak dobře tag dokument vystihuje Tagging(User, Tag, TagScore) Zdali uživatel použil (a jak intenzivně) daný tag Určuje témata, o které se uživatel zajímá Rating(User, Document, RatingScore) Typicky hodnocení dokumentu uživatelem V jistých případech lze chápat i jako autorství
Dotaz Q(u, q1 qn) u je iniciátor dotazu q1 qn je seznam hledaných tagů pro zjednodušení bez vah relevantní výsledek dotazu seřazen podle příslušného skóre výsledek závisí na iniciátorovi (oproti standardnímu IR dotazu) Ohodnocovací model je rozšířen o relativní důležitost uživatelů vůči iniciátorovi relativní důležitost použitého tagu vůči uživateli (volitelně) podobnost tagů
F u (u ) Funkce udávající důležitost uživatele relativně k iniciátorovi F u ( u) 0 uživatele nezajímají jeho dokumenty U F u u u ( ) 1 lze nahlédnout jako na pravděpodobnost Několik možných interpretací Syntaktický pohled velikost průniku společných tagů Sociální pohled vzdálenost v grafu mezi uživateli Globální pohled Globální důležitost uživatele (PageRank)
F u (u ) Kombinace syntaktického a sociálního pohledu Podobnost přímo spojených uživatelů Podobnost nepřímo spojených uživatelů Finální podobnost konstantní podobnost (závisí na α) je pro uživatele bez konexí
sf u ( d, t ) Nahrazuje klasickou frekvenci tf Odráží podobnost uživatelů, kteří použili tag na dokument, který může být předmětem zájmu iniciátora kolikrát uživatel použil tag t na dokumentu d pro dnešní sociální sítě je to typicky binární hodnota 1 (použil) nebo 0 (nepoužil) Po dosazení globální část (nezávisí na iniciátorovi)
s u ( d, t ) skóre dokumentu d vzhledem k tagu t ohodnocovací funkce (zjednodušená BM25) k 1 je definovatelný koeficient (tunable coefficient in BM25) idf(t) je inverzní frekvence tagu v dokumentech df(t) je počet dokumentů, které byly označeny tagem t na rozdíl od originální formule BM25 se nebereme v potaz délka dokumentů
s * u ( d, t) Uživatelé nepoužívají unifikované tagy Je třeba sjednocovat významově stejné tagy Ne vždy je to dobrá volba ověřeno experimentálně Zvolena opatrná expanze careful expansion expandují se jen ti nejlepší Podobnost tagů: Skóre dokumentu d vzhledem k tagu t (včetně expanze)
* s ( d, q,, q u 1 n ) Součet všech dílčích skóre pro všechny tagy v dotazu
Based on threshold algorithm over impactorder inverted lists Nelze však předpočítávat skóre pro každý tag nebo uživatele (skóre je závislé na iniciátorovi) Nová verze algoritmu ContextMerge Využívá indexy, které jsou již z principu dostupné Seznam dokumentů otagovaných konkrétním uživatelem Počet dokumentů, na které byl použit konkrétní tag Skóre počítá průběžně inkrementálně Pro dokumenty udržuje horní a dolní hranici skóre Lze tedy vykonávání ukončit dříve
Je využíváno několika indexů lze je předzpracovat v čase tvoření indexů DOCS(t) obsahuje seznam dokumentů pro daný tag spolu s globální frekvencí tagu TF(d,t) USERDOCS(u,t) obsahuje pro daného uživatele u a tag t množinu dokumentů spolu s tf u (d,t) FRIENDS(u) obsahuje seznam přátel uživatele u spolu s P u (u ) SIMTAGS(t) obsahuje seznam tagů podobných tagu t spolu s tsim(t,t )
Během zpracování se sekvenčně čtou indexy USERDOCS a DOCS V jedné iteraci hlavní smyčky se načte celkem batchsize nových dokumentů (prokládaně z indexů USERDOCS a DOCS), které mají nejlepší očekávané skóre (vyhodnocuje funkce ChooseNextList) udržuje se hodnota high[i] a highf[i] poslední přečtená hodnota z indexu DOCS a FRIENDS Během zpracování se udržuje seznam zatím nejlepších kandidátů na top-k Každý kandidát obsahuje následující informace: - hodnota přečtená z indexu DOCS (pro každý tag q) - množina indexů již přečtených DOCS - kolikrát byl d j v uživatelském seznamu pro q i - dolní hranice finálního skóre - horní hranice finálního skóre
Experimentální implementace nad reálnými sítěmi del.icio.us 12389 uživatelů, 175754 záložek 2781096 tagů, 152306 přátel Flickr 52347 uživatelů, 10000000 obrázků 29111183 tagů, 1293777 přátel (ve smyslu okomentování obrázků) LibraryThing 9986 uživatelů, 6453605 knížek 14295693 tagů, 17317 přátel
Co jsou relevantní výsledky? Velmi závislé na iniciátorovi Nelze jednoduše definovat 2 nezávislé metody vyhodnocení user-specific ground truth uživatelská studie
Dokumenty, které byly označeny všemi tagy v dotazu iniciátorem nebo jeho přímými přáteli Uživatel pravděpodobně tyto dokumenty viděl a souhlasil s použitými tagy Dotazy náhodně vybrány z dvojice tagů se střední hodnotou frekvence použití Iniciátor náhodně vybrán z uživatelů, kteří tyto tagy použili, a má alespoň jednoho přítele Nelze použít u Flickeru Téměř žádný průnik použitých tagů
5 reálných uživatelů na LibraryThing každý použil tag na alespoň 20 knížek každý navázal nějaká přátelství Uživatelé navrhli 28 dotazů vztahujících se k jejich knížkám Po vyhodnocení dotazů iniciátor manuálně doplnil výsledek dotazu o informaci vysoce relevantní, relevantní, úplně mimo (očima iniciátora)
Jako hodnocení pro určité hodnoty α spočítána Přesnost NDCG (Normalized Discounted Cumulative Gain) Uživatelská studie User-specific ground truth Sémantický pohled zdá se důležitější než sociální Pokud není zahrnuta sociální komponenta vůbec, efektivita výsledku naopak klesne
Jazyk Java DB server Oracle 10b Server Windows 4xOperton 16GB RAM Porovnáváno se základním algoritmem join-then-sort Horní graf bez expanze tagů Více než 50% úspora času Dolní graf včetně expanze tagů 3-5 násobná úspora času
Nové možnosti ohodnocování dokumentů relevantnější výsledky Upravený top-k algoritmus ContextMerge Velmi efektivní Menší počet přístupů na disk Několikanásobně rychlejší Světlá budoucnost Zdroj informací Efficient Top-k Querying over Social-Tagging Networks R. Schenkel, T. Crecelius, M. Kacimi, S. Michel, T. Neumann, J. X. Parreira, G. Weikum SIGIR 08, 07/2008, Singapore http://lsirpeople.epfl.ch/smichel/publications/sigir2008.pdf