Porada Expert Search vyhľadávanie skúsených členov na fóre www.porada.sk (Vyhľadávanie informácií - projekt) Bc. Martin Mihalovič november 2011
Úvod Projekt je zameraný na zoradenie výsledkov vyhľadávania IR systému. Cieľom bolo vytvoriť vlastnú aplikáciu, ktorá vyhľadáva skúsených členov diskusného fóra www.porada.sk pre zvolené tematické okruhy (expert search). www.porada.sk je jedno z najväčších diskusných fór slovenského internetu. Témy sú tu rozdelené do niekoľko desiatok okruhov od relatívne všeobecných (Záhrada, Anglický jazyk...) po špecializované (Zákon o spotrebnej dani z liehu...). Používatelia si môžu navzájom hodnotiť príspevky buď ako "užitočné" alebo "neužitočné". Tieto hodnotenia tvoria orientovaný graf, ktorý sa dá použiť na vyhodnotenie a zoradenie členov podľa autority (podobne ako Google zoraďuje stránky podľa topológie hyper-liniek). Snahou projektu je využiť tieto vlastnosti na vytvorenie IR systému, ktorého vstupom je dopyt na jednu alebo viac tematických oblastí a vráti zoznam členov fóra, ktorí sú skúsení v daných oblastiach, zoradený podľa ich odbornosti. Informácia o odbornosti člena Porady môže pomôcť inému, ktorý rieši nejaký problém, posúdiť autoritu odpovedí na svoju otázku. Prípadne môže smerovať otázku priamo na experta v oblasti, ktorej sa týka. Súvisiace práce V oblasti vyhľadávania informácií boli snahy o vytvorenie aplikácie [1], ktorá identifikuje na webe osoby a umožní dopytovať sa nad nimi a nájsť tak experta v oblasti, ktorú vyjadruje dopyt. Tento systém ale využíva len lokálne informácie pre osobu vytvorí akýsi profil podľa pôsobiska, autorstva na projektoch či publikáciách a pod. Tieto profily sú dokumentami, nad ktorými sa vykonávajú IR operácie, nepracuje so žiadnymi prepojeniami. J. Zhang a spol. už využili [5] prepojenia medzi ľuďmi na hľadanie expertov a ich zoradenie podľa predpokladanej odbornosti. Použili sieť akademických výskumníkov a vytvorili profesionálne profily podobne ako [1]. Profily sú vzájomne spojené vzťahmi spoluautorstva alebo odborného dohľadu. Tieto linky sú potom využité na zoradenie osôb vyhovujúcich dopytu (podobne ako Google zoraďuje stránky podľa topológie hyper-linkových prepojení). Použitý bol jednoduchý iteratívny výpočet. Porada Expert Search Navrhol som vlastnú aplikáciu Porada Expert Search (PES), ktorá využíva prepojenia medzi diskutujúcimi na www.porada.sk, ktoré vznikajú keď si navzájom udeľujú ocenenia užitočný. Každý ocenenie je súčasťou príspevku, a teda má jasné tri atribúty zdroj (oceňujúci), cieľ (autor príspevku) a tematickú oblasť (prevzatú od témy vlákna). Ocenenia s členmi Porady tvoria orientovaný graf podobne, ako web stránky s linkami. PES je systém, ktorý hľadá dominantných členov v zadanej doméne (tem. okruh) prípadne zjednotení viacerých. Príklad informačnej potreby pre PES môže vyzerať napr. kto je skúsený pre oblasť Stavbári OR Strojári OR Drevári?. Spôsob usporiadania je podobný, ako ho vykonáva Google pomocou algoritmu PageRank [2] s podstatným rozdielom: skóre sa nevyčísli vopred pre celý graf ale sa počíta on-line nad podgrafom vybratým vzhľadom na dopyt (podobne ako pri HITS [4] alebo čiastočne Topicsensitive PageRank [3]). Výstupom je zoznam dokumentov, t.j. mien členov zoradený podľa odbornosti k dopytovaným doménam. Podgraf pre Porada Expert Search má ešte jednu odlišnosť oproti webu. Hrany majú rôzne váhy a teda rôzne sa nimi šíri autorita. Váha určuje početnosť ocenení medzi zdrojovým a hodnoteným vrcholom. Ak jeden člen ohodnotil iného vo vybratých oblastiach viac-krát, váha hrany v grafe je súčet hodnotení (pr. diskutujúci A 7-krát ocenil B = váha hrany A->B je 7. Teda hodnota v A-tom riadku a B-tom stĺpci v matici susednosti, ktorá vstupuje do PageRanku, bude 7).
Jadro výpočtu už je identické s PageRankom. Získanie a spracovanie dát PES je súčasťou projektu, ktorý predstavuje kompletný IR systém. Fázy stiahnutia web stránok s diskusiami, extrakcie členov a ocenení, a vytvorenia invertovaného indexu boli vykonané len jednorazovo. Pre rovnaký dopyt tak PES vracia vždy rovnaké výsledky, ktoré zodpovedajú stavu súhlasov v dobe, keď boli stránky stiahnuté (2. a 3. október 2011). Na stiahnutie stránok z porada.sk bol použitý program WebSite Downloader for Windows, na spracovanie HTML stránok a naplnenie indexu a súborov s grafom som vytvoril jednoduché JAVA programy, dostupné sú na SVN http://code.google.com/p/porada-expert-search/. Implementácia PES bol implementovaný ako desktopová Java aplikácia. Dáta, s ktorými pracuje sú názvy domén, ktoré sa môžu vyskytnúť v dopyte používateľa a graf súhlasov členov Porady. Program používa špeciálny invertovaný index, ktorý nemapuje termy (tem. oblasti) na dokumenty, ale na prepojenia (ocenenia užitočnosti). Keďže tieto dva súbory dát sa nemenia, sú uložené v textových súboroch, ktoré sa načítajú do pamäti raz pri štarte aplikácie. Samotné prepojenia a mená členov sú tiež v osobitných súboroch. Pri každom vytvorení dopytu s názvami domén PES načíta podgraf, teda ocenenia z daných domén a členov, ktorí ich dali/dostali. Rozhranie vstupného dopytu nedovoľuje vložiť nesprávny názov domény (viac o GUI v prílohe B) a preto sa nemusia vykonávať žiadne textové operácie, program jednoducho povyberá domény z dopytu. Nájdenie relevantných dokumentov je tiež veľmi jednoduché, pretože k doménam sú jednoznačne priradené súhlasy a tie zasa majú jasný zdroj a adresáta. Samotné výpočtové jadro je PageRank algoritmus, konkrétne z knižnice JUNG. Keď sa vypočíta PageRank skóre pre všetkých členov, sú ešte pred zobrazením výsledkov odobratí takí, ktorí ocenenie iba udelili ale žiadne nedostali. Títo sú dôležití pre výpočet ale nie sú relevantnými dokumentami. Výsledky PES pre ľubovoľný doménový dopyt vráti zoznam členov Porady, zoradený podľa ich odbornosti. Výstupy boli zhodnotené z dvoch pohľadov meraním presnosti (precision) v top k dokumentoch a porovnaním s jednoduchým ratingovým systémom na www.porada.sk. Precision@5, precision@10 Pri hodnotení som nepracoval s pokrytím (recall) najmä preto, že v takomto type IR systému, kde dokumenty sú zoradené podľa relevantnosti, nie je dôležité vrátiť čo najviac výsledkov, ale ponúknuť tie najlepšie ako prvé. Použité boli hodnotenia presnosti v top 5 a 10 výsledkoch (precision@5, precision@10). V náhodne vybratých 8 tematických oblastiach PES vrátil zoradený zoznam členov, pre ktorých bola relevantnosť, ako úroveň odbornosti pre danú oblasť, určená nasledovne: pre člena sa v histórii príspevkov na www.porada.sk vybralo posledných 6 príspevkov v niektorom vlákne, ktoré patrí do vybranej oblasti. Každý bol potom subjektívne ohodnotený 0, 1 alebo 2 bodmi, podľa toho, či sa javí k téme (2) alebo skôr bezcenný (0). 1 bod sa udeľoval vo výnimočných prípadoch, keď sa nedala odhadnúť relevantnosť textu voči téme (napr. nerozumel som úplne špecifickej problematike). Celková odbornosť člena sa potom určila jednoducho binárne tak, že ak mal aspoň 9 bodov za príspevky, je expertom a teda relevantným výsledkom PES, ktorý zvyšuje precision. Nasledovná tabuľka obsahuje počty relevantných dokumentoch v prvých 5 a 10 výsledkoch.
Učitelia Rozpočtové a príspevkové.org Kultúra Cestovanie PC - počítače Anglický jazyk Štátni zamestnanci Mzdové účtovníctvo, personalisti ka, odvody p@5 1 1 1 0,8 1 0,8 0,8 1 p@10 1 1 0,9 0,8 0,9 0,9 0,8 1 Presnosť PES v prvej päťke aj desiatke je dosť vysoká, pod 100% klesá hlavne v doménach, kde je k dispozícii menej dát (hodnotení užitočnosti). Celková precision@5 je 0,925 a precision@10 je 0,9125. Úplný rozpis hodnotení výstupov je v Prílohe A. Porovnanie s Porada bodovaním Porada.sk používa vlastný bodovací systém na určenie expertov. Je to len jednoduchá suma špeciálnych bodov (nie užitočný ), ktoré môže člen udeliť inému. Stránka zobrazuje top 10 expertov pre jednotlivé tematické oblasti. Urobil som porovnanie výsledkov PES s týmto bodovaním pre 8 oblastí, sledovaný bol prienik v top 10 a podobnosť usporiadania. Podobnosť usporiadania je vyjadrená pomocou korelačného koeficientu Kendall's Tau, ktorý nadobúda hodnotu od -1,0 do +1,0 (1 znamená úplnú zhodu usporiadania dvoch zoznamov, -1 presne opačné usporiadania). Cieľom nebolo získať vysoké korelácie (hodnoty blízke 1,0 by znamenali, že použitie prepojení a PageRanku má minimálnu pridanú hodnotu oproti priamej ankete). Príliš nízke korelácie (napr. okolo -0,7) by ale znamenali, že PES znižuje členov Porady, ktorí sú komunitou považovaní za hodnotných. Za dobrú koreláciu považujem hodnotu okolo 0,3. Kendall's Tau korelácia Počet spoločných členov v top 10 Spoločenstvá vlastníkov bytov 0,78 8 Marketing OR Obchodná korešpondencia OR Podnikateľské nápady OR Internetové podnikanie OR Začiatky podnikania ako nato 1 0,42 7 PC počítače 0,16 8 Daň z príjmu OR Ostatné dane, clá OR Mzdové účtovníctvo, presonalistika, odvody OR Aktuality - News OR Daň z motorových vozidiel OR Daň z pridanej hodnoty OR Podvojné účtovníctvo OR Obchodné právo, Európske normy, BOZP, PO OR Zahraničné účtovníctvo, dane, súvislosti OR Rady z Porady OR Jednoduché účtovníctvo OR Účtovné a iné softvéry 2 0,42 7 Domácnosť 0,38 7 Recepty -0,07 8 Rodinné, občianske, spotrebiteľské právo 0,73 9 Kultúra 0,33 8 1 tieto štyri oblasti sú na Porade pod súhrnným názvom Podnikanie 2 oblasti sú na Porade pod názvom Účtovníctvo, dane, právo, BOZP
PES vykazuje prekvapivo vysokú zhodu s Poradou v určení množiny top 10 expertov. Pri pohľade na graf súhlasov sa dá vidieť, že títo členovia sú tí, ktorí priamo dostali veľa súhlasov. Mená, ktoré sú v top 10 iba v mojej aplikácii sú takmer výhradne také, ktoré dostali síce málo súhlasov, ale od iných hodnotných členov (výrazný prípad možno nájsť napr. v oblasti Kultúra, kde na 6. miesto PES vyhodnotil člena, ktorý dostal súhlasy iba od 6 iných členov - narozdiel od desiatok súhlasov slabších expertov - ale dostal ich od skúsených členov). Zhodnotenie Porada Expert Search pracuje s dokumentami, ktorými sú členovia diskusného portálu porada.sk. S použitím techník IR hľadá skúsených členov v zadaných tematických oblastiach. Používa na to sieť vzájomných ocenení užitočný udeľovaných medzi členmi. Podľa oblasti sa vyberá len podgraf relevantných súhlasov a ten sa použije na nájdenie expertov. Pridanou hodnotou PES je schopnosť identifikovať aj takých expertov, ktorí neprodukujú veľa, resp. nemajú veľa súhlasov. Je to vďaka aplikovaniu princípu algoritmu PageRank: skúsený člen je taký, o ktorom si veľa iných myslí, že je skúsený alebo taký, o ktorom sa iní skúsení zhodnú, že je skúsený. Metódy prezentované v tomto projekte sú použiteľné aj v iných systémoch podobných Porade, napríklad sme.sk (+/- hodnotenia v diskusiách) alebo akékoľvek tematicky rozdeliteľné sociálne siete s hodnotením príspevkov. Referencie [1] Krisztian Balog, Leif Azzopardi, and Maarten de Rijke. 2006. Formal models for expert finding in enterprise corpora. In Proceedings of the 29th annual international ACM SIGIR conference on Research and development in information retrieval (SIGIR '06). ACM, New York, NY, USA, 43-50. DOI=10.1145/1148170.1148181 http://doi.acm.org/10.1145/1148170.1148181 [2] Brin, S., Page, L., Motwani, R., and Winograd, T. 1999. The PageRank citation ranking: Bringing order to the Web. Tech. Rep. 1999-66, Stanford University. Dostupné na internete na http://dbpubs.stanford.edu:8090/pub/1999-66. [3] Taher H. Haveliwala. 2002. Topic-sensitive PageRank. In Proceedings of the 11 th international conference on World Wide Web (WWW '02). ACM, New York, NY, USA, 517-526. DOI=10.1145/511446.511513 http://doi.acm.org/10.1145/511446.511513 [4] Jon M. Kleinberg. 1999. Authoritative sources in a hyperlinked environment. J. ACM 46, 5 (September 1999), 604-632. DOI=10.1145/324133.324140 http://doi.acm.org/10.1145/324133.324140 [5] Zhang, Jing and Tang, Jie and Li, Juanzi, 2007, Expert Finding in a Social Network, In Advances in Databases: Concepts, Systems and Applications. Department of Computer Science and Technology, Tsinghua University, 10-201, East Main Building, Tsinghua University, Beijing, China, 100084. DOI=10.1007/978-3-540-71703-4_106 http://dx.doi.org/10.1007/978-3-540-71703-4_106
Príloha A Podrobné hodnotenia výsledkov Tematická oblasť: Učitelia (4413 užitočných potvrdení) Sabadka 2 0 2 2 2 2 10 (relevantný) zdenka131 2 2 2 2 2 2 12 (relevantný) pe.pe 2 2 2 2 2 2 12 (relevantný) jaros5 2 2 2 2 0 2 10 (relevantný) judita1971 2 2 2 2 1 2 11 (relevantný) susann2 2 2 2 2 2 2 12 (relevantný) kvet 2 2 2 2 2 0 10 (relevantný) terezamaria 2 2 2 2 2 2 12 (relevantný) ivka70 2 2 2 2 2 2 12 (relevantný) veronikasad 2 2 2 1 2 2 11 (relevantný) Tematická oblasť: Rozpočtové a príspevkové.org (772 užitočných potvrdení) kvet 2 2 2 2 2 2 12 (relevantný) susann2 2 2 2 2 2 2 12 (relevantný) Sabadka 2 2 2 2 2 2 12 (relevantný) Xanti 2 2 2 2 2 2 12 (relevantný) judita1971 1 2 2 2 2 2 11 (relevantný) Beata 1 2 2 2 2 2 11 (relevantný) Sojka 007 2 2 0 2 2 2 10 (relevantný) ivka70 2 2 2 2 2 2 12 (relevantný) terezamaria 2 2 2 2 0 2 10 (relevantný) adi11 2 2 2 2 2 2 12 (relevantný) Tematická oblasť: Kultúra (2899 užitočných potvrdení) erzet 2 2 2 2 2 2 12 (relevantný) Marína 2 1 2 2 0 2 9 (relevantný) alla66 2 2 2 2 2 2 12 (relevantný)
Slayer666 1 2 2 2 2 2 11 (relevantný) Dana1 2 2 2 2 2 2 12 (relevantný) ivuliatko 2 2 1 2 2 2 11 (relevantný) arizona 2 2 2 2 2 2 12 (relevantný) Nella_2 2 1 2 1 2 2 10 (relevantný) Petra Nová 2 2 1 0 2 0 7 (nerelevantný) trisestri 2 2 2 2 1 2 11 (relevantný) Tematická oblasť: Cestovanie (3119 užitočných potvrdení) arizona 2 2 2 2 2 2 12 (relevantný) lujza.j 2 2 0 2 2 2 10 (relevantný) Lubaba 2 2 1 1 2 2 10 (relevantný) buchač 2 2 2 2 0 0 8 (nerelevantný) pivko 2 2 2 0 2 2 10 (relevantný) Chobot 2 2 1 2 2 2 11 (relevantný) 220870 2 2 2 2 2 2 12 (relevantný) Marína 2 2 2 2 2 2 12 (relevantný) Rozalka 2 2 0 2 2 1 9 (relevantný) Mária27 2 2 2 2 2 2 12 (relevantný) Tematická oblasť: PC - počítače (4978 užitočných potvrdení) Chobot 2 2 2 2 2 2 12 (relevantný) Vlado40 2 2 2 2 2 2 12 (relevantný) misoft 2 2 2 1 2 2 11 (relevantný) marjankaj 0 2 2 2 2 2 10 (relevantný) Fero11 2 0 2 2 2 2 10 (relevantný) Flinstone 2 2 2 2 2 2 12 (relevantný) arizona 2 2 2 2 2 2 12 (relevantný) alla66 2 2 2 2 2 2 12 (relevantný) PaloPa 2 2 2 2 2 2 12 (relevantný) srska 2 0 0 2 2 2 8 (nerelevantný)
Tematická oblasť: Anglický jazyk (652 užitočných potvrdení) Meggi 1 2 2 0 2 2 2 10 (relevantný) Braňo 2 1 2 0 2 2 9 (relevantný) Chobot 2 2 2 2 0 0 8 (nerelevantný) zanetth 2 2 2 2 2 2 12 (relevantný) Nella_2 2 2 2 2 2 1 11 (relevantný) Slayer666 2 2 2 2 2 2 12 (relevantný) ludmilla 2 0 2 2 2 2 10 (relevantný) majoneza 2 2 2 2 2 2 12 (relevantný) alla66 2 2 2 1 1 2 10 (relevantný) Nika 2 2 2 2 2 2 12 (relevantný) Tematická oblasť: Štátni zamestnanci (574 užitočných potvrdení) Petra Nová 1 2 0 2 2 2 9 (relevantný) dana9 2 2 2 2 X X 8 (nerelevantný) terezamaria 2 2 2 2 2 2 12 (relevantný) wagner 2 2 2 2 2 2 12 (relevantný) Mária27 2 2 2 2 2 2 12 (relevantný) Chobot 2 2 0 0 2 1 7 (nerelevantný) zdenka131 2 2 2 2 2 2 12 (relevantný) Xanti 2 2 2 2 2 2 12 (relevantný) arizona 2 2 2 2 0 2 10 (relevantný) adi11 2 2 2 2 2 2 12 (relevantný) Tematická oblasť: Mzdové účtovníctvo, personalistika, odvody (35 872 užitočných potvrdení) veronikasad 2 2 2 2 2 2 12 (relevantný) Jana Motyčková 2 2 2 2 2 2 12 (relevantný) Chobot 2 2 2 2 2 2 12 (relevantný) Jozef Mihál 2 2 0 2 2 2 10 (relevantný) Tweety 2 2 2 2 2 2 12 (relevantný)
rodina1 2 2 2 2 2 2 12 (relevantný) brčko 2 2 2 2 2 2 12 (relevantný) terezamaria 2 2 2 2 2 2 12 (relevantný) Andyke 2 2 2 2 2 2 12 (relevantný) mzdarka renca 2 2 2 2 2 2 12 (relevantný)
Príloha B Inštalácia a použitie Porada Expert Search Inštalácia Porada Expert Search je desktopová Java aplikácia používajúca dáta výhradne z TXT súborov. Inštalácia programu je jednoduchá; stačí rozbaliť ZIP súbor PESv0.1.zip (dostupný aj na http://porada-expert-search.googlecode.com/svn/trunk/release/pesv0.1.zip) a upraviť konfiguračný súbor app.config. Konfigurácia obsahuje umiestnenie súborov s názvami domén a invertovaným indexom. Tieto textové súbory sú tiež súčasťou balíčka a konfiguračný súbor je implicitne nasmerovaný sem. Používanie Launch.bat je súbor, ktorý spúšťa samotnú aplikáciu v OS Windows. Po spustení sa načítajú domény, index a časti grafu. Samotné vyhľadávanie expertov sa vykonáva vybudovaním dopytu v záložke Query Data a jeho potvrdením v záložke Search. Dopyt je text udávajúci jednu alebo viac tematických oblastí, v ktorých sa hľadajú skúsení členovia Porady. Keďže oblasti sú pevne dané, používateľ nemusí vkladať text ručne, ale dopyt vykliká, ako na obrázku nižšie. Názvy oblastí sú v dopyte spojené log. spojkou OR, čo naznačuje, že sa bude hľadať v zjednotení ocenení z vlákien daných oblastí.
V záložke Search používateľ spúšťa kompletné vyhľadávanie tlačidlom Rank to end. Výsledný zoznam expertov vo vybratých doménach sa vypíše vľavo dole zoradený podľa skúseností (dosiahnutého PageRank skóre). Po vypísaní výsledkov je možné si zobraziť graf vzájomných ocenení aj so zvýraznením vrcholov (členov) podľa skúsenosti ako na ďalšom obrázku (červené väčšie kruhy sú skúsenejší členovia pre vybraté oblasti).
Graf sa vykreslí po stlačení Show graph vpravo dole. Pri prechode kurzorom nad kruhom sa zobrazí meno člena a dosiahnutý PageRank. Najmenšie sivé kruhy sú členovia, ktorí sa na grafe ocenení zúčastnili len tak, že ocenenie dali ale žiadny nedostali. Ich mená nie sú vo výslednom zozname, v grafe sa zobrazujú len pre úplnosť. Používateľ PES môže upraviť parametre iteratívneho výpočtu. Precision je prahová zmena jednotlivých PageRankov, ktorá rozhoduje o ďalšej iterácii. Obdobne Max. iterations je maximálny počet iterácií. Splnenie niektorého z týchto parametrov ukončí výpočet. Je tiež možnosť nenechať zbehnúť celé hľadanie automaticky, ale manuálne spúšťať každú iteráciu (tlačidlo Step 1 iteration). Po každom kroku sa vypíše aktuálne skóre a zostáva aj možnosť zobraziť si graf vizuálne.