Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO, RACUNALNISTVO IN
INFORMATIKO
Mladen Borovic
Sistem priporocanja dokumentovin analiza kvalitete vsebinskega
priporocanja pri razlicnihobdelavah vhodnega besedila
Magistrsko delo
Maribor, September 2012
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO, RACUNALNISTVO IN
INFORMATIKO
Sistem priporocanja dokumentovin analiza kvalitete vsebinskega
priporocanja pri razlicnihobdelavah vhodnega besedila
Magistrsko delo
Avtor: Mladen Borovic
Mentor: izr. prof. dr. Milan Ojstersek
Studijski program: Racunalnistvo in informacijske tehnologije (MAG)
Smer: Racunalniske metodologije in aplikacije
UDK: 004.777:004.93(043.2)
III
Naslov: Sistem priporocanja dokumentov in analiza kvalitete vsebinskega
priporocanja pri razlicnih obdelavah vhodnega besedila
Kljucne besede: priporocilni sistemi, vsebinsko priporocanje dokumentov,
funkcija razvrscanja BM25, latentna semanticna analiza, belezenje
uporabniskih aktivnosti, pomensko oznacevanje, statisticne metode,
procesiranje naravnega jezika, jezikovne tehnologije
UDK: 004.777:004.93(043.2)
Povzetek
V magistrskem delu obravnavamo nacrtovanje in razvoj sistemov za vsebinsko pri-
porocanje pomensko sorodnih dokumentov. V teoreticnem delu najprej podamo
osnovne znacilnosti priporocilnih sistemov. Ker v priporocilnem sistemu obdelujemo
besedila v slovenskem jeziku, najprej podamo pregled nekaterih obdelav vhodnega
besedila (lematizacija, izlocanje pogostih besed in pomensko oznacevanje). Nato
opisemo funkcijo razvrscanja BM25 in pristop z latentno semanticno analizo. Sledi
podroben opis razvoja priporocilnega sistema, ki je tudi prakticni izdelek tega ma-
gistrskega dela. V nadaljevanju predstavimo in analiziramo uspesnost vsebinskega
priporocanja pri razlicnih obdelavah vhodnega besedila. Na koncu podamo se nekaj
potencialnih izboljsav v smislu pomenskega grucenja, klasifikacije, hibridnega pristopa
pri razvrscanju dokumentov in uporabe razvitega sistema v drugih aplikacijah.
V
Title: A document recommendation system and content-based recommendation
quality analysis with different text processing methods applied
Keywords: recommender systems, content-based document recommendation, ranking
function BM25, latent semantic analysis, user-action tracking, semantic
tagging, statistical methods, natural language processing, language
technologies
UDC: 004.777:004.93(043.2)
Abstract
In this thesis we discuss the planning and development of content-based recommender
systems for semantically related documents. The theoretic part describes the basic
features of recommender systems. Due to processing of Slovene language, we provide
an overview in the field of text processing methods (lemmatisation, stop word lists
and semantic tagging). Then we describe the ranking function BM25 and the latent
semantic analysis method. Further on, we describe in detail, the development of a
content-based recommender system for documents, which is also the practical result
of this thesis. We then analyse the success rate of the recommendation with different
text processing methods applied. Finally, we describe some of the potential enhance-
ments such as semantic clustering, user classification, a hybrid approach in ranking
documents as well as using the developed system with other applications.
VI
Zahvala
Zahvaljujem se mentorju izr. prof. dr. Milanu Ojstersku za vodenje in pomoc pri
opravljanju magistrskega dela. Hvala tudi sodelavcem iz Laboratorija za heterogene
racunalniske sisteme za nasvete in profesionalno delovno okolje. Predvsem gre zahvala
mag. Janezu Brezovniku univ. dipl. inz. rac. in inf. in univ. dipl. inz. rac. in inf.
Marku Fermetu za pomoc pri tehniski izvedbi. Zahvaljujem se univ. dipl. inz. rac.
in inf. Goranu Hrovatu in dipl. inz. rac. in inf. tehnol. (UN) Marku Burjeku za
uporabo lematizatorja in pomenskega oznacevalnika.
Zahvaljujem se tudi ljudem, ki so sodelovali pri ocenjevanju kvalitete priporocanja.
To so bili nekateri sodelavci in studenti iz Fakultete za elektrotehniko, racunalnistvo
in informatiko na Univerzi v Mariboru. Sodelovali so studenti naslednjih studijskih
programov:
• 1. in 2. letnik programa Racunalnistvo in informacijske tehnologije (MAG),
• 1. letnik programa Telekomunikacije (MAG),
• 2. letnik programa Elektrotehnika (MAG),
• 2. letnik programa Medijske komunikacije (MAG),
• 2. in 3. letnik programa Racunalnistvo in informacijske tehnologije (UN),
• 2. in 3. letnik programa Racunalnistvo in informacijske tehnologije (VS),
• 3. letnik programa Informatika in tehnologije komuniciranja (VS).
Nazadnje se zahvaljujem se druzini in prijateljem za podporo in potrpljenje.
VII
Kazalo
Uvod 1
1 Sistemi priporocanja 4
1.1 Struktura sistema priporocanja . . . . . . . . . . . . . . . . . . . . . 4
1.2 Zbiranje informacij o uporabniku . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Seja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2 Piskotki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.3 Evercookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Tipi priporocanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.1 Splosno priporocanje . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.2 Specificno priporocanje . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Pristopi priporocanja . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.1 Sodelujoce filtriranje . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.2 Filtriranje na podlagi vsebine . . . . . . . . . . . . . . . . . . 15
1.5 Priporocanje dokumentov . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5.1 Pristopi merjenja podobnosti med dokumenti . . . . . . . . . 16
VIII
2 Obdelava dokumentov 19
2.1 Izlocanje pogostih besed . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Lematizacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Avtomatsko pridobivanje kljucnih besed s pomenskim oznacevanjem . 21
3 Funkcija razvrscanja BM25 24
3.1 Izbira parametrov k1 in b . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Izpeljanke BM25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.1 BM11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.2 BM15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.3 BM25F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.4 Izpeljanke avtorjev Lv in Zhai . . . . . . . . . . . . . . . . . . 31
3.3 Prednosti in slabosti . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4 Latentna semanticna analiza 33
4.1 Dokumenti v vektorskem prostoru . . . . . . . . . . . . . . . . . . . . 33
4.2 Algoritem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3 Primer delovanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.4 Prednosti in slabosti . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.5 Izboljsave LSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5 Razvoj sistema priporocanja 45
5.1 Motivacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.2 Struktura razvitega sistema . . . . . . . . . . . . . . . . . . . . . . . 46
5.3 Mehanizem belezenja uporabniskih aktivnosti . . . . . . . . . . . . . 48
5.4 Razvrscanje rezultatov . . . . . . . . . . . . . . . . . . . . . . . . . . 48
IX
5.5 Izboljsave za robustno uporabo v praksi . . . . . . . . . . . . . . . . 50
5.5.1 Filtriranje ocen BM25 . . . . . . . . . . . . . . . . . . . . . . 50
5.5.2 Uvedba paralelizma . . . . . . . . . . . . . . . . . . . . . . . . 52
6 Rezultati 54
6.1 Primerjava razlicnih obdelav . . . . . . . . . . . . . . . . . . . . . . . 55
6.2 Vpliv priporocanja na statistiko obiska . . . . . . . . . . . . . . . . . 59
6.3 Razprava o dobljenih rezultatih . . . . . . . . . . . . . . . . . . . . . 60
7 Ideje za nadaljnje delo 62
7.1 Pomensko grucenje . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
7.1.1 Algoritem Lingo . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.2 Klasifikacija uporabnika . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.3 Uvedba hibridne funkcije razvrscanja . . . . . . . . . . . . . . . . . . 65
7.4 Uporaba priporocanja v drugih aplikacijah . . . . . . . . . . . . . . . 67
Zakljucek 68
Literatura 69
A Lematizacija in LSA 74
B Porocila Google Analytics 80
X
Slike
1.1 Struktura sistema priporocanja in njegova funkcija v ze obstojecem
sistemu s podatki. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Replikacijske lokacije, ki jih uporablja piskotek Evercookie. . . . . . . 8
1.3 Splosno priporocanje kot ciklicni proces. . . . . . . . . . . . . . . . . 10
1.4 Proces specificnega priporocanja. . . . . . . . . . . . . . . . . . . . . 11
1.5 Tvorba binarne matrike uporabnikov in izdelkov. . . . . . . . . . . . 12
1.6 Podobni dokumenti kot vozlisca v okolici aktivnega vozlisca v pomenski
mrezi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.7 Polno povezan graf podobnosti dokumentov. . . . . . . . . . . . . . . 17
3.1 Odvisnost lokalne utezi od frekvence pri razlicnih razmerjih||dj ||A
(I). . 27
3.2 Odvisnost lokalne utezi od frekvence pri razlicnih razmerjih||dj ||A
(II). 27
3.3 Vpliv parametra k1 na krivuljo odvisnosti lokalne utezi od frekvence
pri konstantnem b. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4 Obnasanje odvisnosti lokalne utezi od gostote pri konstantnih parame-
trih k1 in b in razlicnih povprecnih dolzinah dokumentov A. . . . . . 29
4.1 Stanje matrik po singularnem razcepu (I). . . . . . . . . . . . . . . . 36
4.2 Stanje matrik po singularnem razcepu (II). . . . . . . . . . . . . . . . 36
XI
4.3 Stanje matrik po redukciji dimenzij na rang k. . . . . . . . . . . . . . 37
4.4 Delovanje LSA nad slovenskim jezikom. . . . . . . . . . . . . . . . . . 40
4.5 Delovanje LSA nad angleskim jezikom. . . . . . . . . . . . . . . . . . 42
5.1 Potek komunikacije v scenariju splosnega priporocanja. . . . . . . . . 47
5.2 Potek komunikacije v scenariju specificnega priporocanja. . . . . . . . 47
5.3 Potek komunikacije ob posodobitvi indeksa dokumentov. . . . . . . . 48
6.1 Primerjava ustreznosti razlicnih obdelav. . . . . . . . . . . . . . . . . 57
6.2 Primerjava casovne zahtevnosti razlicnih obdelav. . . . . . . . . . . . 58
6.3 Primerjava prostorske zahtevnosti razlicnih obdelav. . . . . . . . . . . 58
6.4 Vpliv delovanja sistema priporocanja na odbojno stopnjo. . . . . . . . 59
7.1 Delovanje hibridne funkcije razvrscanja. . . . . . . . . . . . . . . . . . 65
A.1 Primerjava matrike A brez lematizacije in z uporabo lematizacije. . . 76
A.2 Primerjava k-aproksimacije matrike A brez lematizacije in z uporabo
lematizacije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
A.3 Primerjava kovariancne matrike cov(A) brez lematizacije in z uporabo
lematizacije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
A.4 Primerjava korelacijske matrike corr(A) brez lematizacije in z uporabo
lematizacije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
A.5 Rezultat LSA brez lematizacije. . . . . . . . . . . . . . . . . . . . . . 78
A.6 Rezultat LSA z lematizacijo. . . . . . . . . . . . . . . . . . . . . . . . 78
XII
Tabele
2.1 Razlika med krnjenjem in lematizacijo. . . . . . . . . . . . . . . . . . 21
5.1 Strategija razvrscanja rezultatov priporocanja. . . . . . . . . . . . . . 49
5.2 Filtriranje z dinamicno mejo; neustrezen zadetek izpade iz seznama
priporocil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.1 Meritev delovanja sistema pri uporabi besed in lematiziranih besed. . 55
6.2 Meritev delovanja sistema pri uporabi besednih zvez in lematiziranih
besednih zvez. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.3 Meritev delovanja sistema pri uporabi besed in lematiziranih besed z
avtomatskim pridobivanjem kljucnih besed s pomenskim oznacevanjem. 56
6.4 Meritev delovanja sistema pri uporabi besednih zvez in lematiziranih
besednih zvez z avtomatskim pridobivanjem kljucnih besed s pomen-
skim oznacevanjem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
XIII
Algoritmi
1 LSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2 Paralelno racunanje ocen BM25 . . . . . . . . . . . . . . . . . . . . . 52
3 Paralelno racunanje vhodne matrike A pri LSA . . . . . . . . . . . . 53
4 Paralelno racunanje uteznih vektorjev po redukciji ranga . . . . . . . 53
5 Paralelno racunanje kosinusnih razdalj . . . . . . . . . . . . . . . . . 53
6 Pomensko grucenje . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7 Klasifikacija uporabnika . . . . . . . . . . . . . . . . . . . . . . . . . 64
XIV
Oznake in simboli
Slope One
di,j razdalja med i-tim in j-tim izdelkom
di,j povprecna razdalja med i-tim in j-tim izdelkom
Ni,j stevilo vseh uporabnikov, ki so ocenili i-ti in j-ti izdelek
rating(x)i ocena uporabnika x za izdelek i
r(x)i,j predvidena ocena uporabnika x za izdelek i glede na oceno izdelka j
SlopeOne(x, y) ocena Slope One za izdelek x in uporabnika y
BM25
t beseda
d dokument
tf(t, d) tf utez besede t v dokumentu d
n(t) stevilo dokumentov, v katerih se pojavlja beseda t
idf(t) idf utez besede t v celotni zbirki dokumentov
D zbirka dokumentov
||D|| velikost zbirke D
q zahteva
qi beseda v zahtevi
||q|| stevilo besed v zahtevi
s(d, q) ocena BM25 za dokument d in zahtevo q
||d|| stevilo besed v dokumentu
A povprecno stevilo besed v dokumentih iz zbirke D
XV
BM25 nad.
k1 parameter za uravnavanje pomembnosti utezi tf
b parameter za uravnavanje pomembnosti dolzine dokumentov
B funkcija normalizacije dolzine dokumenta
L(ti, dj) lokalna utez za i-to besedo t vsebovano v j-tem dokumentu d
itd(ti, dj) gostota i-te besede t v j-tem dokumentu d
LSA
tf -idf(t, d) utez tf − idf za besedo t v dokumentu d
||T || stevilo vseh besed v zbirki dokumentov
||D|| stevilo vseh dokumentov v zbirki dokumentov
A matrika utezi
dj stolpicni utezni vektor dokumenta
q vektor zahteve
U ortonorm. baza vek. prostora (levi lastni vektorji)
Σ matrika singularnih vrednosti
V∗ ortonorm. baza vek. prostora (desni lastni vektorji
k rang redukcije
Uk reducirana matrika U
Σk reducirana matrika Σ
dj,k reduciran utezni vektor dokumenta
qk reduciran utezni vektor zahteve
sim(qk,dj,k) razdalja med reduciranima vektorjema zahteve in dokumenta
Funkcija razvrscanja
da aktivni dokument
D mnozica dokumentov
W mnozica utezi
R mnozica priporocenih dokumentov
XVI
Pomensko grucenje
C mnozica gruc
c gruca
nmaxDrugo najvecje stevilo gruc z oznako Drugo
imax najvecje stevilo iteracij
L oznaka gruce
Klasifikacija uporabnika
U mnozica uporabnikov
UC gruce, katerim pripada uporabnik U
cmax gruca z najvecjim stevilom ogledov
imax indeks gruce z najvecjim stevilom ogledov
Hibridna funkcija razvrscanja
x aktivni dokument
P mnozica parametrov
D mnozica priporocenih dokumentov
d priporocen dokument
r parameter k pri LSA (rang redukcije)
XVII
Kratice
HTTP Hyper-Text Transfer Protocol
API Application Programming Interface
LSO Local Shared Object
BM25 Best Match 25
BM11 Best Match 11
BM15 Best Match 15
BM25F Best Match 25 for Fields
XML eXtensible Markup Language
LSA Latent Semantic Analysis
SVD Singular Value Decomposition
PLSA Probabilistic Latent Semantic Analysis
DKUM Digitalna Knjiznica Univerze v Mariboru
XVIII
Uvod
Kadar se clovek znajde v situaciji kjer se mora odzvati, nima pa veliko znanja o tema-
tiki, je edino naravno, da bo iskal pomoc v smislu nasvetov in priporocil. Vzemimo
primer kadar se nam pokvari avto, nimamo pa avtomehanika h kateremu bi redno
hodili. Intuitivno zacnemo sprasevati prijatelje in znance ali poznajo kaksnega do-
brega avtomehanika. Rezultat je ponavadi vec priporocil, odlocimo pa se za tistega
avtomehanika, ki nam je bil najveckrat priporocan.
Z razmahom svetovnega spleta, ki je danes izredno pomemben medij in vir informacij,
so se pojavile ideje o sistemih na spletu, ki bi s priporocili pomagali cloveku pri
odlocitvah. Dandanes lahko vidimo, da so te ideje realizirane prakticno vsepovsod
- od priporocanja video vsebin na YouTube, do priporocanja oseb na Facebook-u
pa tudi v bolj resnih aplikacijah kot so diagnosticni ekspertni sistemi v medicini.
Priporocanje najdemo tudi na spletnih trgovinah, kjer prodajalca povsem zamenja
sistem za priporocanje. To je tudi ena izmed strategij spletnih trgovin, da bi kupca
pripravile do tega, da bi kupil vec artiklov. Vidimo torej, da so sistemi priporocanja
pravzaprav vsepovsod ceprav jih sploh vec ne opazimo. Dejstvo je, da ob vsaki
uporabi spleta iscemo informacije, ki bi nas po najboljsi poti pripeljale do zadanega
cilja. Sisteme priporocanja lahko tako opisemo kot posebno vrsto spletnih iskalnikov,
ki ne potrebujejo direktno podanih iskalnih vnosov. Le-ti so pri sistemih priporocanja
v obliki aktivnosti, klikov in porabljenem casu na spletni strani. Ideja priporocanja na
spletu je, da uporabniku vedno ponudimo zanj najbolj relevantne informacije, glede
na njegovo trenutno zanimanje. Sistem priporocanja mora torej na inteligentni nacin
razpoznati uporabnikovo zanimanje zgolj na podlagi njegovih aktivnosti na spletni
2
strani. Navadno gre za mesanico podatkovnega rudarjenja in procesiranja naravnega
jezika - slednje predvsem zaradi velike vecine tekstovnih informacij na spletu. Zelo
zanimiva veja priporocanja je priporocanje dokumentov, saj ponuja veliko izzivov na
podrocju jezikovnih tehnologij. Najbolj prideta do izraza razresevanje vecpomenskosti
in iskanje podobnih dokumentov na podlagi vsebine. S to problematiko se ukvarjajo
razlicne metode, ki si jih bomo vse nadaljevanju tudi podrobneje ogledali. Bistven
del vsakega sistema priporocanja je metoda razvrscanja zadetkov. Od slednje je
odvisna kvaliteta priporocanja. Obstaja vec razlicnih metod razvrscanja, hkrati pa
iz dneva v dan nastajajo tudi nove. Magistrsko delo opisuje nekaj uveljavljenih,
prav tako pa opisuje idejo o lastni metodi razvrscanja. Skupaj z opisom razvoja
sistemov za priporocanje je bila ideja, da magistrsko delo sluzi kot vodic pri izdelavi
taksnih sistemov kot tudi dodatna motivacija za razvoj novih pristopov, se posebej
na podrocju priporocanja dokumentov s pomocjo procesiranja naravnega jezika.
Cilj tega magistrskega dela je razviti sistem priporocanja dokumentov, ki bo deloval
nad mnozico opisov dokumentov. Posledicno je potrebna tudi metoda razvrscanja,
ki bo uredila dokumente po ustreznosti na podlagi pomenske podobnosti. Preuciti
zelimo tudi vplive predprocesiranja dokumentov v smislu lematizacije in avtomatskega
pridobivanja kljucnih besed s pomenskim oznacevanjem. Na koncu zelimo ugotoviti
tudi, ali bi sistem priporocanja izboljsal statistiko obiskov. V ta namen preizkusimo
veljavnost naslednjih hipotez:
Hipoteza 1: obravnava kljucnih besed v obliki besednih zvez se izkaze za boljso
kot obravnava v obliki besed.
Hipoteza 2: uporaba lematizacije kot korak predobdelave dokumentov izboljsa
kvaliteto priporocanja.
Hipoteza 3: uporaba kljucnih besed avtorja skupaj s kljucnimi besedami pri-
dobljenimi s pomenskim oznacevanjem bolje definira pomen dokumenta, kot
uporaba zgolj kljucne besede s strani avtorja.
Hipoteza 4: sistem priporocanja izboljsa statistiko obiskov v smislu zmanjsanja
odbojne stopnje in povecanju povprecnega prestanega casa obiska.
3
To magistrsko delo je razdeljeno na sedem poglavij. V prvem poglavju bomo spo-
znali osnove sistemov priporocanja. Podrobneje si bomo ogledali tipe priporocanja,
nacine sledenja uporabnikovim aktivnostim in pristope za merjenje podobnosti med
dokumenti. V drugem poglavju bomo spoznali nekaj tehnik obdelave dokumentov.
S tretjim poglavjem bomo presli v tehnicne vode in spoznali eno izmed uveljavljenih
metod razvrscanja dokumentov - funkcijo razvrscanja BM25. Spoznali bomo njene
lastnosti, izpeljanke in si podrobneje ogledali njeno delovanje. Podobno bomo tudi v
cetrtem poglavju nadaljevali z latentno semanticno analizo (LSA), ki je se en uspesen
pristop razvrscanja dokumentov. Peto poglavje opisuje razvoj sistema priporocanja
z lastno funkcijo razvrscanja, temeljeco na pristopu BM25. Spoznali bomo strukturo
razvitega sistema, in preverili ali je BM25 bolj primerna za prakticno uporabo kot
LSA. Prav tako je podanih nekaj izboljsav, ki omogocajo boljso robustnost razvitega
sistema. V sestem poglavju opisemo testno okolje in zastavljene preizkuse razvitega
sistema. Razprava o dobljenih rezultatih obsega vpliv razlicnih tehnik obdelave na
koncen rezultat in evaluacijo uspesnosti. V sedmem poglavju je podanih tudi ne-
kaj predlogov za izboljsavo razvitega sistema priporocanja kot tudi nekaj zamisli o
uporabi taksnega sistema v drugih aplikacijah.
Poglavje 1Sistemi priporocanja
Uporabniki svetovnega spleta porabijo veliko casa za iskanje informacij na spletu. Nji-
hove strategije iskanja se razlikujejo, zato je kvaliteta najdene informacije razlicna.
Veliko ugodneje je, ce uporabnikom priporocamo vsebine, ki bi jih utegnile zanimati
na tak nacin, da bi vedno dobili najbolj kvalitetno informacijo. Tukaj je izziv ugoto-
viti kaj uporabnika pravzaprav zanima. To vprasanje resujejo sistemi priporocanja, ki
podobne informacije zdruzujejo, nato pa na podlagi uporabnikovih aktivnosti predvi-
devajo katere informacije uporabnika zanimajo. Gre za avtomatiziran sistem obdelave
podatkov, ki mora biti ucinkovit, zanesljiv in ne prevec vsiljiv do uporabnika. Danes
lahko delovanje taksnih sistemov vidimo na spletnih straneh kot so YouTube, Face-
book in Amazon, iskalnik Google pa metode, ki jih najdemo v sistemih priporocanja
uporablja za poosebljeno iskanje.
V tem poglavju bomo spoznali strukturo takih sistemov, razlicne tipe in pristope pri-
porocanja ter nacine identificiranja in predvidevanja uporabnikovih aktivnosti. Po-
drobneje si bomo ogledali podrocje priporocanja dokumentov in nekaj metod, ki se
za ta namen uporabljajo.
1.1 Struktura sistema priporocanja
Vsak sistem priporocanja lahko predstavimo kot del vecjega sistema s podatki, ki
uporablja sistem priporocanja za iskanje podobnih vsebin. Podatki so lahko v po-
ljubnem formatu; priporocamo lahko video posnetke, slike, besedilo, povezave do ljudi
1. Sistemi priporocanja 5
in podobno. Kljucnega pomena je, da imamo podatke dobro strukturirane, saj je le
tako mozno izvesti kvalitetno priporocanje. V kolikor podatki niso strukturirani, jih
je potrebno strukturirati pred nadaljnjo obdelavo. Zelo pomemben del sistemov pri-
porocanja so tudi aktivnosti in navade uporabnikov. Za sisteme priporocanja je to
kljucno, saj se na podlagi tega doloci vsebina za priporocanje. V ta namen se upo-
rabniske aktivnosti belezijo tako, da lahko sistem nudi istemu uporabniku rezultate,
ki zanimajo le njega, lahko pa se tvorijo tudi uporabniski profili in se uporabnika uvr-
sti v dolocen profil. Sistem v tem primeru priporoca enake vsebine vec uporabnikom
z istim profilom. Pri sistemih priporocanja gre pravzaprav za filtriranje podatkov
glede na uporabniske aktivnosti, saj zelimo uporabniku dostaviti le tisto kar ga za-
nima. V praksi je to tezje storiti, saj lahko uporabnika v nekem obdobju zanimajo
dolocene tematike, kratek cas za tem pa ga bodo zanimale druge tematike. Zato
je potrebno najti nacin posodabljanja podatkov o uporabniku. Ponavadi se vkljuci
casovna komponenta, ki daje prioriteto novejsim uporabniskim aktivnostim, starejsim
uporabniskim aktivnostim pa ali zelo zniza prioriteto, ali pa jih v celoti odstrani.
Sistem priporocanja tako vsebuje modul za obdelavo podatkov, modul za belezenje in
ovrednotenje uporabniskih aktivnosti in pristop za razvrstitev rezultatov po ustrezno-
sti. Podatki in uporabniske aktivnosti sta vhoda v sistem, izhod pa predstavlja nabor
informacij, ki ustrezajo pogojem filtriranja. Splosno graficno predstavitev sistemov
priporocanja lahko vidimo na sliki 1.1.
1.2 Zbiranje informacij o uporabniku
Da lahko sploh zacnemo s priporocanjem, potrebujemo mehanizem za zbiranje in-
formacij o uporabniku. Le tako lahko vemo kaj uporabnika zanima. Informacije o
uporabniku pridobimo tako, da belezimo njegove aktivnosti. Poudariti je treba, da
nas tukaj ne zanimajo podatki kot so kateri brskalnik uporablja, verzija operacij-
skega sistema ali zaslonska locljivost. Zanima nas katere tematike iz vsebin, ki jih
ponujamo, so za uporabnika najbolj zanimive. Obstajata dva nacina pridobivanja
informacij o uporabniku. Eksplicitni nacin poteka tako, da uporabniku zastavimo
nekaj vprasanj o tem kaj ga zanima, ga prosimo, da ocenjuje vsebine po kvaliteti
ali pa mu ponudimo dve vsebini in ga prosimo, da izbere bolj ustrezno. Ta nacin
1. Sistemi priporocanja 6
Slika 1.1: Struktura sistema priporocanja in njegova funkcija v ze obstojecem sistemu spodatki.
je direkten, saj izvajamo interakcijo z uporabnikom. Nekateri uporabniki ne zelijo
sodelovati v tem procesu, preprosto zato, ker jim vzame prevec casa in jih v bistvu
ovira pri ogledu vsebin. Zato obstaja tudi implicitni nacin. Pri tem nacinu uporabnik
ne ve, da zbiramo informacije o njem. Tukaj je med drugim potrebno beleziti kaj si
je uporabnik ogledal, kako dolgo je gledal tisto in na koncu primerjati dobljeno z
obiski drugih uporabnikov. Tvori se torej profil za vsakega uporabnika. Implicitni
nacin je naceloma boljsi s stalisca uporabnikove izkusnje, saj uporabnika ne motimo
pri ogledu vsebin. Prihaja pa do vprasanj o vdorih v zasebnost. Tukaj moramo biti
zelo previdni in tudi predhodno obvestiti uporabnike, da bomo spremljali njihove de-
1. Sistemi priporocanja 7
javnosti. V tem magistrskem delu se bomo bolj osredotocili na implicitni del zbiranja
informacij o uporabniku. V nadaljevanju si bomo pogledali nekaj pristopov zbiranja
informacij, ki smo jih tudi vkljucili v prakticni del tega magistrskega dela.
1.2.1 Seja
Vsa komunikacija med sistemom priporocanja poteka preko protokola HTTP po prin-
cipu odjemalec-streznik. Ker protokol HTTP ne ohranja stanja, potrebujemo seje,
da stanje ohranimo. Z ohranjanjem stanja si lahko zapomnimo pretekle aktivnosti
uporabnika hkrati pa lahko identificiramo ali gre za enakega uporabnika. Seja je
definirana kot mnozica uporabnikovih aktivnosti znotraj casovnega intervala, ki ga
dolocimo. Sejo lahko tudi avtomatsko podaljsujemo kadar nastopi nova aktivnost. V
sejo lahko shranimo kakrsnekoli podatke, ki nastanejo med obiskom spletne strani.
Glavna pomanjkljivost sej je v tem, da seja potece po casovnem intervalu obenem pa
se seja zakljuci ko zapremo okno brskalnika. To pomanjkljivost lahko odpravimo z
uporabo piskotkov.
1.2.2 Piskotki
Piskotke lahko razumemo kot podatke, ki jih spletni streznik poslje odjemalcu. Nava-
dno se piskotki uporabljajo za hranjenje identifikacijskih podatkov uporabnikov kot
sta uporabnisko ime in geslo. Podobno kot pri seji lahko tudi v piskotke shranju-
jemo poljubne podatke, ki nam lahko koristijo pri belezenju uporabniskih aktivnosti.
Na podrocju sistemov priporocanja se piskotki najbolj uporabljajo v namen identi-
fikacije uporabnika, saj zelimo vedeti za katerega uporabnika gre. Pri implicitnem
nacinu zbiranja informacij, uporabnik ni vedno identificiran z uporabniskim imenom
in geslom, temvec ga lahko v ozadju oznacimo z enolicnim identifikatorjem, ki je
shranjen v piskotku na odjemalcevi strani. Tako vemo za katerega uporabnika gre,
hkrati pa lahko vse njegove aktivnosti neposredno ob njihovem nastanku shranju-
jemo v podatkovno bazo tako, da so podatki o uporabniku azurni. Problem nastopi
kadar uporabnik pobrise piskotke. Takrat izgubimo enolicni identifikator, ki je bil
shranjen v piskotku. Streznik bi v tem primeru ustvaril nov enolicni identifikator za
istega uporabnika in ga smatral kot novega uporabnika. Posledicno bi bili rezultati
1. Sistemi priporocanja 8
priporocanja slabsi. Mozna resitev tega scenarija je uporaba persistentnih piskotkov
imenovanih Evercookie.
Slika 1.2: Replikacijske lokacije, ki jih uporablja piskotek Evercookie.
1.2.3 Evercookie
Evercookie je persistentni piskotek, ki ga je leta 2010 zasnoval strokovnjak za varnost
in bivsi heker Samy Kamkar. Gre za Javascript API, ki omogoca uporabo v spletnih
straneh. Cilj teh piskotkov je, da se ohranijo na odjemalcu tudi kadar uporabnik po-
brise piskotke. Princip na katerem delujejo ti piskotki je pravzaprav zelo inovativen.
Ob ustvarjanju piskotka Evercookie, se najprej ustvari standardni HTTP piskotek.
Zatem se le-ta replicira na vec razlicnih lokacij (slika 1.2), med drugim tudi v LSO
shrambe namenjene za Flash in Silverlight animacije. Kar je se bolj zanimivo je to, da
mehanizem za uporabo piskotka sam zazna, ce je bil piskotek na katerikoli replicirani
lokaciji izbrisan. V kolikor se je to zgodilo, se bodo podatki rekonstruirali iz drugih
obstojecih repliciranih lokacij. Gre za avtomatski mehanizem samovzdrzevanja, ki je
podoben delovanju raznih racunalniskih virusov in crvov. Ravno zaradi tega je upo-
raba piskotkov Evercookie vprasljiva in jih v prakticnem delu nismo implementirali.
1. Sistemi priporocanja 9
1.3 Tipi priporocanja
Pri priporocanju lahko imamo v splosnem dva scenarija. Prvi scenarij nastopi kadar
je uporabnik v zacetnem stanju, kjer se ni izvedel nobene aktivnosti. Drugi scenarij
obicajno sledi prvemu scenariju in se zgodi kadar je uporabnik ze izvedel aktivnost.
Prvi scenarij lahko smatramo kot splosno priporocanje (angl. general recommenda-
tion), saj nimamo podatka o tem kaj uporabnika zanima. Drugi scenarij pa lahko
smatramo kot specificno priporocanje (angl. specific recommendation), saj je upo-
rabnik ze izvedel aktivnost in mu glede na to aktivnost lahko priporocamo ustrezne
vsebine.
1.3.1 Splosno priporocanje
Splosno priporocanje nastopi ob zacetnem stanju uporabnika. To je recimo takrat,
kadar uporabnik obisce glavno stran spletne strani. Ce vzamemo primer spletne
strani YouTube, je uporabnik v zacetnem stanju takrat, ko obisce glavno stran in
si se ne izbere video posnetka, ki si ga bo ogledal. V primeru, da je uporabnik
ze prej obiskal spletno stran in smo njegove aktivnosti belezili, mu lahko nudimo
splosno priporocanje v obliki seznama vsebin, ki se navezuje na vsebine ogledane v
preteklosti. Ce je uporabnik prvic obiskal spletno stran, nimamo dovolj podatkov o
uporabniku, da bi mu lahko nudili kvalitetno priporocanje. V tem primeru uberemo
drugo strategijo - recimo priporocanje najbolj ogledanih vsebin s strani vseh uporab-
nikov. Splosno priporocanje lahko smatramo kot ciklicni proces kot kaze slika 1.3. Na
podlagi uporabnikove zgodovine se izberejo podobne vsebine, ki se priporocajo. Klik
na priporoceno vsebino se belezi v zgodovino in cikel se ponovi.
1.3.2 Specificno priporocanje
Pri specificnem priporocanju je situacija enostavnejsa kot pri splosnem priporocanju.
V bistvu informacije o uporabniku sploh niso potrebne, lahko pa zelo izboljsajo pri-
porocanje. Specificno priporocanje lahko izvajamo kadarkoli, saj imamo podano upo-
rabnisko aktivnost in s tem priblizno idejo, kaj bi uporabnika utegnilo zanimati. Ce
znova vzamemo primer spletne strani YouTube, je aktivnost uporabnika klik na video
1. Sistemi priporocanja 10
Slika 1.3: Splosno priporocanje kot ciklicni proces.
posnetek. Ker je video posnetek s strani sistema priporocanja obdelan in posledicno
vemo kateri video posnetki so mu podobni, lahko tvorimo seznam podobnih video
posnetkov. Ta seznam je tudi rezultat priporocanja. Za priporocanje torej niso bile
potrebne informacije o uporabniku, v primeru da bi jih imeli, pa bi lahko se bolje
razvrstili elemente v seznamu priporocila.
Tako pri splosnem kot tudi pri specificnem priporocanju (slika 1.4) gre za ciklicni pro-
ces. To je ena izmed tezav sistemov priporocanja, saj uporabniku ne zelimo ponujati
vedno istih vsebin. To lahko do neke mere odpravimo z nakljucnim razvrscanjem ele-
mentov v seznamu priporocila. Na tak nacin lahko dlje casa obdrzimo uporabnikovo
pozornost in mu ponudimo vec vsebin. Podoben pojav so odkrili na spletni strani
YouTube, kjer je specificno priporocanje zraven dobrega iskalnika in vsebine glavni
razlog za veliko kolicino casa, ki ga uporabniki prezivijo na strani. Pojav je znan kot
“YouTube zanka”(angl. YouTube loop).
1. Sistemi priporocanja 11
Slika 1.4: Proces specificnega priporocanja.
1.4 Pristopi priporocanja
Ko imamo zasnovano strategijo belezenja uporabniskih aktivnosti, lahko zacnemo
nacrtovati na kaksen nacin bomo obdelovali vsebine. Ta proces vpliva na koncni re-
zultat priporocanja, saj definiramo predstavitev podatkov in nacin njihove obdelave.
Pristop sodelujocega filtriranja deluje zgolj na podlagi analize uporabniskih aktivno-
sti, obstaja pa tudi pristop filtriranja na podlagi vsebine, ki daje vecjo tezo vsebini.
Seveda obstajajo tudi sistemi, ki zdruzujejo ta dva pristopa v hibridni pristop. Zani-
mivo je dejstvo, da oba pristopa delujeta podobno dobro kljub obratnima strategijama
obdelave podatkov.
1.4.1 Sodelujoce filtriranje
Sodelujoce filtriranje (angl. collaborative filtering) je pristop obdelave podatkov v sis-
temih priporocanja, kjer imajo uporabniske aktivnosti vecjo tezo kot sama vsebina.
Pri tem pristopu vsebina ni pomembna, saj pristop deluje po principu podobnih
1. Sistemi priporocanja 12
mnenj. Ta temelji na predpostavki, da ce ima oseba A isto mnenje kot oseba B, ob-
staja vecja moznost strinjanja teh dveh oseb o drugi zadevi, kot je moznost strinjanja
ene izmed njiju z nakljucno izbrano osebo C. Pri sistemih priporocanja so mnenja iz
zgornje predpostavke predstavljena kot uporabnikova ocena vsebine, lahko pa zgolj
kot ogled vsebine. Te vrednosti nato upostevamo pri razvrscanju rezultatov glede
na klasifikacijo uporabnikov. Sodelujoce filtriranje lahko tako predstavimo v dveh
korakih:
1. Iskanje uporabnikov s podobnimi vzorci ocenjevanja kot jih ima aktivni upo-
rabnik (tisti, ki mu priporocamo).
2. Upostevanje vrednosti ocen uporabnikov iz 1. koraka za razvrscanje rezultatov
v priporocilu.
Ta pristop pa ima veliko slabost na samem zacetku. Ker na zacetku nimamo upo-
rabniskih ocen za vsebine, bi bilo priporocanje po tem pristopu nemogoce. Tako je
ta pristop primeren le takrat, ko imamo dovolj obsezno mnozico uporabniskih ocen.
Pristop z binarnimi vektorji
Pri Amazonu, ki je znan po svojem sistemu priporocanja, uporabljajo pristop binarnih
vektorjev. Osnova za delovanje je tvorba binarne matrike uporabnikov in izdelkov. V
primeru, da je uporabnik izdelek kupil se v polje vnese enica, sicer pa nicla. Nato se
za vsaki par dveh izdelkov iz matrike vzameta njuna pripadajoca binarna vektorja.
Izracuna se kosinusna razdalja med tema vektorjema, ki predstavlja mero ustreznosti
za priporocanje. Poglejmo si preprost primer:
Uporabnik Izdelek 1 Izdelek 2 Izdelek 3Ales kupil ni kupil kupil
Mateja ni kupila kupila kupilaBojan ni kupil kupil ni kupil
→
1 0 10 1 10 1 0
Slika 1.5: Tvorba binarne matrike uporabnikov in izdelkov.
Imamo tri uporabnike in tri izdelke, katere so uporabniki ali kupili ali ne. Za vsak
izdelek lahko dobimo pripadajoc vektor tako, da vzamemo stolpicni vektor iz binarne
1. Sistemi priporocanja 13
matrike. Izracunajmo torej ustreznosti za priporocanje med danimi izdelki s kosinusno
razdaljo:
rel(1, 2) =(1, 0, 0) · (0, 1, 1)
||(1, 0, 0)||||(0, 1, 1)||= 0
rel(1, 3) =(1, 0, 0) · (1, 1, 0)
||(1, 0, 0)||||(1, 1, 0)||=
1√2≈ 0.7
rel(2, 3) =(0, 1, 1) · (1, 1, 0)
||(0, 1, 1)||||(1, 1, 0)||=
1
2= 0.5
Po tem pristopu bi uporabnik, ki si ogleduje izdelek 1 ali izdelek 2 dobil za priporocilo
izdelek 3. Gre za uporabo linearne regresije oblike f(x) = ax + b. V praksi lahko to
pomeni slabost prenasicenja (angl. overfitting) kar pomeni, da sistem uposteva sum,
namesto koristnih informacij. To slabost lahko odpravimo z uporabo preprostejse
linearne regresije oblike f(x) = x+ b. Slednja se uporablja pri pristopu imenovanem
Slope One.
Pristop Slope One
Algoritmi Slope One so se prvic pojavili v clanku [10] leta 2005 kot nacin za pri-
porocanje s sodelujocim filtriranjem. Gre za zelo preprost pristop, hkrati pa je na-
tancnost priporocanja primerljiva z bolj kompleksnimi metodami. Implementacija teh
algoritmov ni zahtevna, uporabljajo pa se tudi kot sestavni del drugih algoritmov za
priporocanje. Pri tej druzini algoritmov najveckrat upostevamo uporabnikove ocene
za doloceno vsebino, ki jo ponujamo. Ideja je, da poskusamo predvidevati kako bi upo-
rabnik ocenil se neogledano vsebino. Na podlagi tega lahko izvedemo priporocanje.
Oglejmo si primer delovanja pristopa Slope One, ko imamo podanih nekaj ocen vse-
bin. Ocene so na intervalu [1, 5], znak “?” pa pomeni da izdelek se ni bil ocenjen.
Zanima nas kako bi Bojan ocenil izdelek 1 na podlagi svojih prejsnjih ocen in ocen
ostalih uporabnikov.
Uporabnik Izdelek 1 Izdelek 2 Izdelek 3
Ales 5 3 2
Mateja 3 4 ?
Bojan ? 2 5
1. Sistemi priporocanja 14
Najprej izracunamo povprecni razdalji med izdelkoma 1 in 2 ter 1 in 3. Pri tem
upostevamo stevilo uporabnih podatkov Ni,j, saj ni nujno, da so vsi uporabniki ocenili
vse izdelke:
d1,2 =
5
3
?
−
3
4
2
=
2
−1
?
⇒ d1,2 =2 + (−1)
2= 0.5, N1,2 = 2
d1,3 =
5
3
?
−
2
?
5
=
3
?
?
⇒ d1,3 =3
1= 3, N1,3 = 1
Nato izracunamo predvideno Bojanovo oceno za izdelek 1 z njegovima ocenama za
izdelka 2 in 3:
r(Bojan)1,2 = rating(Bojan)2 + d1,2 = 2 + 0.5 = 2.5
r(Bojan)1,3 = rating(Bojan)3 + d1,3 = 5 + 3 = 8
Iz dobljenega izracunamo koncno predvideno Bojanovo oceno za izdelek 1 po pristopu
Slope One:
SlopeOne(x, y) =
∑ni=1Nx,i · r(y)x,i∑n
i=1Nx,i
(1.1)
SlopeOne(1, Bojan) =
∑ni=1N1,i · r(Bojan)1,i∑n
i=1N1,i
=N1,2 · r(Bojan)1,2 +N1,3 · r(Bojan)1,3
N1,2 +N1,3
=2 · 2.5 + 1 · 8
2 + 1=
13
3= 4.33
Bojan bi tako izdelek 1 predvidoma ocenil z oceno 4.33. Ker je to blizu maksimalne
ocene, bi bil ta izdelek verjetno uvrscen med prve rezultate priporocanja.
1. Sistemi priporocanja 15
1.4.2 Filtriranje na podlagi vsebine
V sistemih priporocanja lahko priporocila tvorimo tudi na podlagi vsebine (angl.
content-based filtering). Gre za pristop, kjer ima vecjo veljavo vsebina, uporabniske
aktivnosti pa nam lahko pomagajo pri uvrscanju uporabnika v gruco ljudi z zanima-
njem za podobno tematiko. Pri tem pristopu se uporabljajo algoritmi, ki analizirajo
znacilnosti vsebin, nato pa se uporabniku priporocajo tiste vsebine, ki najbolj spadajo
med njegove tematike zanimanja. Na tem podrocju je aktualna uporaba algoritmov
grucenja, nevronskih mrez in odlocitvenih dreves. Najpomembnejsa je dobra defini-
cija znacilnosti, saj le-ta opisuje vsebino na enolicen nacin. Navadno se za znacilnosti
vsebin vzamejo metapodatki, ki zagotavljajo dovolj enolicen opis. Tukaj vstopamo v
svet procesiranja naravnega jezika, saj je vecina teh opisov danih s tekstom. Ceprav
lahko z obdelavo opisov v tekstovni obliki priporocamo karkoli, se bomo v nadaljeva-
nju osredotocili na priporocanje dokumentov. Ti so v celoti dani v tekstovni obliki in
ni potrebno eksplicitno tvoriti opisa, saj je le-ta ze vsebovan v vsebini dokumenta.
1.5 Priporocanje dokumentov
Vecina informacij na spletu je danih v tekstovni obliki. Tukaj gre za mnozico doku-
mentov v razlicnih formatih, ki so si lahko po vsebini podobni. Priporocanje doku-
mentov torej poteka na podlagi filtriranja glede na vsebino. Da bi lahko priporocali
dokumente, jih moramo najprej spraviti v standardiziran format. Tako se resimo pro-
blemov z razlicnimi formati dokumentov, hkrati pa ohranimo le vsebino, saj oblike pri
obdelavi ne potrebujemo. Obdelavo lahko klasificiramo v razred statisticnih metod
in v razred metod, ki uporabljajo pomenske mreze. Statisticne metode so veliko bolj
razvite in tudi v prakticni uporabi prednjacijo pred metodami s pomenskimi mrezami.
To je zaradi tega, ker so metode s pomenskimi mrezami dokaj novo podrocje, ki je
se razmeroma neraziskano. Statisticne metode vecinoma delujejo na principu “vrece
besed”, ki dokumente predstavi v obliki vektorjev v vektorskem prostoru, katerega
razpenjata kolicini stevila besed in stevila dokumentov. Tukaj gre za stetje pojavitev
besed v dokumentu in upostevanje raznih utezi, ki izhajajo iz tega podatka. Znane
metode na tem podrocju so med drugim BM25 [23], LSA [27, 28] in nakljucno inde-
1. Sistemi priporocanja 16
ksiranje (angl. random indexing) [37]. V nadaljevanju si bomo podrobneje ogledali
metodi BM25 (poglavje 3) in LSA (poglavje 4), ki smo ju preizkusili pri razvrscanju.
1.5.1 Pristopi merjenja podobnosti med dokumenti
V sistemih priporocanja dokumentov je potrebna dobra definicija dokumenta in me-
trike za merjenje podobnosti. Pri statisticnih metodah se ponavadi zbirka dokumen-
tov pretvori v matriko, ki predstavlja vektorski prostor. Dokumenti so predstavljeni
kot n-dimenzionalni vektorji, kjer so komponente vektorja utezi za vsako vsebujoco
besedo. Podobnost je definirana z razdaljo dveh vektorjev v vektorskem prostoru.
Najveckrat se uporablja kosinusna razdalja, v literaturi pa se uporabljata tudi evklid-
ska razdalja in razdalja Manhattan, ki sta pravzaprav razdalji Minkowski za p = 1 in
p = 2, ter razdalja Chebyshev (enacbe 1.2 do 1.6).
cosine(a,b) =a · b
||a|| · ||b||(1.2)
euclidean(a,b) =
√√√√ n∑i=1
(ai − bi)2 (1.3)
manhattan(a,b) =n∑
i=1
|ai − bi| (1.4)
minkowski(a,b) =
(n∑
i=1
|ai − bi|p) 1
p
(1.5)
chebyshev(a,b) = maxi
(|ai − bi|) (1.6)
1. Sistemi priporocanja 17
Pri pristopih s pomenskimi mrezami gre za drugacen pogled na situacijo. Zbirka
dokumentov je predstavljena kot polno povezan graf, kjer vsako vozlisce grafa pred-
stavlja dokument. Vrednosti povezav med vozlisci so njihove pomenske podobnosti.
Podobni dokumenti so torej vozlisca v okolici aktivnega vozlisca kot kaze slika 1.6.
Slika 1.6: Podobni dokumenti kot vozlisca v okolici aktivnega vozlisca v pomenski mrezi.Aktivno vozlisce (rdece), podobna vozlisca (modro) in povezave aktivnega z ostalimi vo-zlisci. Povezave med ostalimi vozlisci niso prikazane. Dolzina crte, ki povezuje dve vozlisci,ponazarja pomensko podobnost med njima.
A
B
C D
E
Slika 1.7: Polno povezan graf podobnosti dokumentov. Vrednosti povezav so na intervalu[0, 1], kjer manjsa vrednost pomeni vecjo podobnost. Aktivno vozlisce A (rdece) je najboljpodobno vozliscema B (modro) in E (zeleno), ki pa sta med sabo zelo razlicni. Podobnovelja za vozlisci C in D. A je torej interdisciplinarne narave, saj sta tematiki modrih inzelenih vozlisc razlicni.
1. Sistemi priporocanja 18
Pri teh pristopih se uporabljajo algoritmi nad grafi za iskanje poti med vozlisci. Velika
prednost teh pristopov je moznost grucenja vozlisc, saj imamo podane medsebojne
podobnosti vozlisc. To se lahko uporabi za iskanje tematik (angl. topic discovery), kar
omogoca tvorbo hierarhije dokumentov po tematiki. Nekatera vozlisca lahko imajo
enake podobnosti z aktivnim vozliscem, zato lahko s podatkom o drugih enako po-
dobnih vozliscih tvorimo hierarhijo vozlisc. Ob preverjanju medsebojnih podobnosti
dobljenih vozlisc lahko dolocimo gruce dokumentov s podobnimi tematikami. To je
se posebej uporabno pri dokumentih iz interdisciplinarnih podrocij kot sta recimo
mehatronika in bioinformatika.
Poglavje 2Obdelava dokumentov
Dokumente je pred priporocanjem skoraj vedno potrebno ustrezno obdelati. To po-
meni, da dokumente pretvorimo v taksen format, ki bo vseboval dovolj konteksta o po-
menu dokumenta, hkrati pa ne bo vseboval sumnih informacij, ki bi utegnile pokvariti
koncni rezultat. Navadno obdelava dokumentov vsebuje vec korakov, kjer se z vsakim
korakom priblizamo zelenemu koncnemu opisu dokumenta. Obstaja vec nacinov ob-
delave, opisali pa bomo izlocanje pogostih besed, sumarizacijo besedila, lematizacijo
besedila in avtomatsko pridobivanje kljucnih besed s pomenskim oznacevanjem.
2.1 Izlocanje pogostih besed
V stavkih besedila se pogosto pojavljajo besede, ki nimajo nobene pomenske vre-
dnosti. To so slovnicne besedne vrste med katere spadajo vezniki, predlogi, clenki
in medmeti. Besede teh besednih vrst zelimo odstraniti iz besedila, saj nas zanima
zgolj pomen. To storimo z uporabo seznama prepovedanih besed (angl. stop word
list), ki vsebuje slovnicne besedne vrste za jezik, v katerem je besedilo. Ce besedilo
vsebuje besedo na seznamu, jo iz besedila odstranimo. Tako nam v besedilu osta-
nejo le predmetnopomenske besedne vrste; to so samostalniske besede, pridevniske
besede, glagoli, povedkovniki in prislovi. Tvorba taksnega seznama je v bistvu zelo
dobrodosla tudi kadar zelimo izvajati strojno ucenje slovnicnih pravil dolocenega je-
zika. Prav tako se tak seznam lahko uporabi za hitro detekcijo jezika. Vcasih je dobro
na seznam prepovedanih besed dodati tudi kaksne predmetnopomenske besedne vrste,
2. Obdelava dokumentov 20
ki se velikokrat pojavljajo skozi korpus besedil. Ce se katera beseda velikokrat po-
javlja v korpusu besedil, jo lahko smatramo kot prevec splosno. Za dobre specificne
rezultate iskalnikov in drugih sistemov, ki uporabljajo obdelavo besedil, je taksna
strategija nujna.
Poglejmo si primer vhodnega besedila in besedila po izlocanju pogostih besed v slo-
venskem jeziku. Vhodno besedilo so prvi trije stavki iz Cankarjeve zbirke crtic Moje
zivljenje:
Vhod
Nedavno je Slovenska Matica razposiljala po nasih krajih formular, na katerega najbi ljudje napisali poglavitne zanimivosti iz svojega zivljenja in nehanja. Tudi jazsem dobil tak formular, pa nisem vedel, kaj bi z njim. Besedilo je bilo namrechrvasko, moj obcevalni jezik pa je doma edinole slovenski.
Izhod
Nedavno Slovenska Matica razposiljala krajih formular katerega ljudje napisali po-glavitne zanimivosti svojega zivljenja nehanja. jaz dobil formular nisem vedel njim.Besedilo hrvasko, moj obcevalni jezik doma edinole slovenski.
Opazimo, da je na izhodu manj besed, pomen besedila pa ostane. S tem smo odstranili
sum, ki ga vnasajo slovnicne lastnosti jezika.
2.2 Lematizacija
Lematizacija (angl. lemmatisation) ali geslenje, je postopek dolocanja osnovne slovar-
ske oblike (leme) besedam v besedilu. Lematizaciji zelo podoben postopek je krnjenje.
Glavna razlika med lematizacijo in krnjenjem je v tem, da krnjenje besede ne pretvori
v slovarsko obliko ampak preprosto odreze koncnico besede tako, da ostane le krn.
Pri besedilnem rudarjenju se lematizacija uporablja pri odkrivanju kontekstov bese-
dil. Ce imamo besedilo podano z lemami je veliko lazje ugotoviti pomen besedil, saj
je primerna obdelava sklanjatev zahteven postopek. Tako si z lematizacijo olajsamo
delo, saj sklepamo da bo lema obdrzala pomen besede, kar v veliki vecini tudi velja.
Tako krnjenje kot lematizacija se uporabljata pri besedilnem rudarjenju, vendar je
lematizacija primernejsa za morfolosko bogate jezike kot je slovenski jezik. Medtem
2. Obdelava dokumentov 21
ko je za angleski jezik rezultat krnjenja in lematizacije skorajda enak, se pri sloven-
skem jeziku pojavijo pomembne razlike. Krnjenje besed slovenskega jezika povzroci
zelo kratke krne. Posledicno se ti kratki krni zlijejo s pomenom ostalih besed v be-
sedilu, kar je problematicno za postopke, ki se zanasajo na krnjenje. Za ilustracijo
razlike med krnjenjem in lematizacijo si poglejmo primer (tabela 2.1) nekaterih besed
slovenskega jezika, ki prikazujejo delovanje krnjenja in lematizacije ter njun rezultat.
beseda krnjenje lematizacija
hodim hod hoditi
boljsi bolj dober
(pri) gori (Triglav) gor gora
(ogenj) gori gor gora
Tabela 2.1: Razlika med krnjenjem in lematizacijo. Pri besedi boljsi vidimo, da se pomenbolje izrazi z uporabo lematizacije. Pri besedi (ogenj) gori pa vidimo, da lematizacija vrnerezultat z zelo razlicnim pomenom.
2.3 Avtomatsko pridobivanje kljucnih besed s po-
menskim oznacevanjem
Za opis tematike dokumenta ponavadi vzamemo kljucne besede. S slednjimi lahko
uvrstimo dokument v ustrezne kategorije. Nekatere kljucne besede pa niso vedno
primerne, saj so prevec splosne ali pa prevec specificne. V tem primeru poznamo
resitev v obliki avtomatskega pridobivanja kljucnih besed. Postopek deluje tako, da
kot vhod podamo celoten dokument ali pa le en odsek, na izhodu pa dobimo besede,
ki opisujejo tematiko vhodnega dokumenta.
V diplomskem delu Marka Burjeka [8] je opisan postopek pomenskega oznacevanja
besedil s pomocjo Wikipedije. Ta postopek lahko uporabimo tudi za avtomatsko pri-
dobivanje kljucnih besed. Pomenski oznacevalnik prejme vhod v obliki teksta, lahko
pa mu podamo tudi seznam prepovedanih besed. Nato se z algoritmom za iskanje
2. Obdelava dokumentov 22
besed poiscejo besede primerne za pomensko oznacevanje. Na tem mestu se opravi se
obdelava teksta v obliki pretvorbe v male crke in lematizacije. Rezultat te faze (korak
I) je seznam besed, ki so primerne za pomensko oznacevanje. Imamo torej besede,
ki se pojavljajo v besedilu, ne vemo pa njihovega pomena in ali gre za vecpomenske
besede. Ta problem resuje naslednja faza (korak II), ki razvrsti besede glede na po-
datek o temah, na katere je posamezna beseda kazala v Wikipediji. Ce se zazna samo
en pomen oziroma vec pomenov kjer je en izrazito velik, se beseda obravnava kot
enopomenska. S pomocjo algoritma za izracun sorodnosti, razlocevalnika in klasifika-
torja naucenega z algoritmom C4.5 se izracuna se splosnost (korak III). Postopek se
zakljuci z izracunom vrednosti za verjetnost, da bi bila beseda povezava na temo, ce
bi se pojavila v Wikipediji (korak IV). Rezultat je XML z verjetnostmi in besedami,
ki pomensko opisujejo dokument in jih lahko smatramo kot kljucne besede.
Vhod
V diplomskem delu obravnavamo problematiko pisanja tehnicnih vsebin in obja-vljanj le-teh na spletu. V teoreticnem delu predstavimo slovnico oznacevalnih jezikovLaTeX in MathML. V prakticnem delu smo izdelali spletni urejevalnik WYSIWYG,ki omogoca vnos matematicnih in kemijskih formul, zapisanih v oznacevalnem jezikuMathML.
Izhod
MathML, WYSIWYG, LaTeX, Jezik, Slovnica, Splet, Tehnika
V koraku I pred izbiranjem primernih besed za pomensko oznacevanje uporabimo pa-
rameter pmin, ki predstavlja minimalno zahtevano verjetnost, da je beseda oznacena
kot povezava v Wikipediji. Ta parameter lahko nastavljamo poljubno, avtor pa sve-
tuje vrednost 0.85, kar pomeni 85% verjetnost, da gre za povezavo v Wikipediji. Ver-
jetnosti se izracunajo z enacbo 2.1, kjer nl(w) pomeni stevilo pojavitev kot beseda,
nW (w) pa stevilo vseh pojavitev v Wikipediji.
pl(w) =nl(w)
nW (w)(2.1)
2. Obdelava dokumentov 23
Po koraku I so znane besede, ki so se pojavile v besedilu, ne pa tudi njihov pomen.
Zato v koraku II ugotavljamo pomen besed na podlagi tematik, v katerih so se poja-
vile. Besede lahko imajo vec pomenov, zato je treba ugotoviti katere so enopomenske
in katere vecpomenske. To storimo tako, da ovrednotimo povezavo med besedami in
tematikami glede na pogostost uporabe. Tukaj igrajo glavno vlogo verjetnosti, da
so besede povezave v Wikipediji. V kolikor je verjetnost besede vecja od minimalne
zahtevane verjetnosti, jo smatramo kot enopomensko in tako dolocimo pomen besede.
V koraku III s pomocjo razlocevalnika izracunamo verjetnosti misljenih pomenov
pri ostalih besedah. Razlocevalnik izracuna verjetnost s pomocjo splosnosti angl.
commonness, sorodnosti in podatkov s konteksta. Pri kontekstu se uposteva kvaliteta
konteksta; ce so enopomenske besede v istem dokumentu sorodne, je pri dolocanju
pomena vecpomenskih besed bolj pomembna sorodnost, v primeru slabe sorodnosti
pa je bolj pomembna splosnost. Splosnost je dana z enacbo 2.2 in predstavlja inverz
verjetnosti, da je beseda povezava v Wikipediji.
c(w) =nW (w)
nl(w)(2.2)
Sledi se korak IV, kjer se za vsako besedo izracuna vrednost za verjetnost, da bi bila
beseda povezava na temo, ce bi se pojavila v Wikipediji. To se izracuna s pomocjo
algoritma C4.5, ki uporablja pojavitve, izhod razlocevalnika (verjetnost, da je pomen
pravilen), sorodnost z ostalimi tematikami, verjetnost povezave, globina tematike
v hierarhiji in pozicija besede v besedilu (pojavitev na enem mestu ali razprsena
pojavitev). Vse besede z verjetnostjo manjso od pmin se odstranijo iz seznama. S
korakom V se seznam preostalih besed uredi po verjetnostih.
Poglavje 3Funkcija razvrscanja BM25
BM25 (Best Match 25 ) je funkcija razvrscanja, ki omogoca razvrscanje dokumentov
po podobnosti na podlagi besed, ki se pojavljajo v dokumentih. Zacetki razvoja te
funkcije segajo med 1970 in 1980, ko sta Stephen E. Robertson in Karen Sparck Jones
zacela razvijati ogrodje za pridobivanje informacij na podlagi verjetnosti. Med 1980
in 1990 je ta funkcija dozivela tudi vecjo publiciteto, saj je bila prvic implementirana
v sistemu Okapi. Tako je dobila tudi drugo ime - Okapi BM25. Prav tako je imple-
mentirana v razlicnih resitvah povezanih z iskalniki kot so Xapian, Apache Lucene in
Apache Solr. BM25 je ze od svojega nastanka ena izmed najboljsih funkcij za iska-
nje podobnih dokumentov, se pa tudi danes - vec kot 40 let po nastanku - se vedno
izboljsuje. V nadaljevanju bomo spoznali zakaj je temu tako in kaj tocno naredi to
funkcijo tako dobro in zanesljivo. BM25 v bistvu ni samo ena funkcija temvec druzina
vec funkcij, ki se razlikujejo po uteznih shemah in vrednostih parametrov pomembno-
sti za utezi. Najveckrat se uporabljata utezi tf in idf . Utez tf (angl. term frequency)
predstavlja frekvenco dolocene besede v dokumentu, utez idf pa pomembnost besede
glede na celotno zbirko dokumentov. Enacbe za izracun utezi tf in idf za BM25 se
glasijo:
tf(t, d) = ||n : t ∈ d|| (3.1)
n(t) = ||d ∈ D : t ∈ d|| (3.2)
idf(t) = log||D|| − n(t) + 0.5
n(t) + 0.5(3.3)
3. Funkcija razvrscanja BM25 25
||D|| v enacbi 3.3 predstavlja kardinalnost (velikost) zbirke D, n(t) dan z enacbo 3.2
pa stevilo dokumentov, ki vsebujejo besedo t. Prav tako je potrebno omeniti, da
enacba 3.3 vnasa nekaj slabosti, ko se beseda t pojavi v vec kot polovici dokumentov
iz zbirke D. Recimo da imamo opravka z dvema zelo podobnima dokumentoma in se
v enem pojavi beseda t, v drugem pa ne. Dokument, ki ne vsebuje besede t bo dobil
visjo oceno, saj BM25 vnasa nizanje pomembnosti zelo pogostim besedam. To lahko
resimo z uporabo drugacne enacbe za utez idf (recimo z enacbo 4.2, opisano v poglavju
LSA), ali pa z ustreznim predhodnim filtriranjem besed, ki opisujejo dokument.
Ocena BM25 je odvisna od utezi tf in idf ter parametrov k1 in b. Splosna enacba
izracuna ocene BM25 za dokument d glede na zahtevo q z besedami qi je podana z
enacbo 3.4.
s(d, q) =
||q||∑i=1
idf(qi) ·tf(qi, d) · (k1 + 1)
tf(qi, d) + k1 ·(
1− b+ b · ||d||A
) , qi ∈ q (3.4)
||d|| =n∑
i=1
tf(ti, d), ti ∈ d (3.5)
A v zgornji enacbi predstavlja povprecno stevilo besed v dokumentih iz zbirke D kar
nakazuje, da je delovanje BM25 odvisno od zbirke dokumentov in njihove predsta-
vitve. Prav tako imata kljucno vlogo parametra k1 in b, ki uravnavata tezo utezi
tf in tezo dolzine dokumentov v koncnem izracunu. Dolzina dokumentov se meri s
stevilom besed. Parametra sta bila uvedena zaradi dveh znacilnosti, ki se pojavljata
pri pisanju dokumentov.
Pa recimo, da imamo dva podobna dokumenta, ki imata enako tematiko, uporabljata
enake besede in sta ju napisala dva razlicna avtorja. Dokumenta sta lahko razlicna
v dolzinah zaradi razlicnih stilov avtorjev. En izmed avtorjev lahko ima taksen stil,
kjer uporablja veliko nepomembnih ali redundantnih besed, da pove enako stvar kot
drugi avtor. V tem primeru lahko predpostavimo, da imata oba dokumenta enako
dolzino in lahko posledicno normaliziramo frekvence besed z dolzino dokumenta brez
da bi spremenili vpliv unikatnosti in ustreznosti. Temu pravimo predpostavka o sirini
vsebine dokumenta (angl. verbosity hypothesis). Obstaja pa tudi drug pogled na
3. Funkcija razvrscanja BM25 26
situacijo; dokumenta lahko imata razlicno dolzino zaradi tega, ker je en avtor na-
pisal bistveno vec o tematiki kot drug avtor. O tem govori predpostavka o obsegu
dokumenta (angl. scope hypothesis). V praksi gre za kombinacijo teh dveh predpo-
stavk, zato potrebujemo ustrezno normalizacijo. Dolzino vsakega dokumenta lahko
normaliziramo s povprecno dolzino dokumentov, dano z enacbo 3.6. Nadalje lahko
to normalizacijo reguliramo s parametrom b kot kaze enacba 3.7, v enacbi 3.4 pa
vidimo, da uporabimo funkcijo normalizacije B za normalizacijo utezi tf v navezi s
parametrom k1.
A =
∑||D||j ||dj||||D||
(3.6)
B = 1− b+ b · ||dj||A
(3.7)
3.1 Izbira parametrov k1 in b
Parameter k1 uravnava pomembnost utezi tf , parameter b pa pomembnost dolzine
dokumentov. V interesu nam je, da sestavimo taksno funkcijo, ki bo delovala najbolje
na razlicnih dokumentih v zbirki. To pomeni, da je potrebno ugotoviti katere vredno-
sti parametrov k1 in b so najboljse za dano zbirko. Vrednosti teh dveh parametrov
niso striktno definirane, navadno pa se uporabijo vrednosti k1 ∈ [1.2, 2.0] in b = 0.75.
Da bomo bolje razumeli kako parametra dejansko vplivata na samo delovanje BM25,
si poglejmo odvisnost lokalnih utezi od frekvence besed. Za boljso ilustracijo bomo
reproducirali primere na to temo, ki so podani v [23]. Definirajmo lokalno utez L za
i-to besedo t vsebovano v j-tem dokumentu d, ki je dana z enacbo 3.8.
L(ti, dj) =tf(ti, dj) · A
||dj ||A||dj || · k1 ·B + tf(ti, dj) · A
||dj ||, ti ∈ dj (3.8)
Oglejmo si grafe krivulj odvisnosti lokalnih utezi od frekvence besed za razlicna raz-
merja||dj ||A
, ce pri tem spreminjamo parametra k1 in b.
3. Funkcija razvrscanja BM25 27
0 2 4 6 8 100
0.2
0.4
0.6
0.8
1
tf
L
0 2 4 6 8 100
0.2
0.4
0.6
0.8
1
tfL
Slika 3.1: Odvisnost lokalne utezi od frekvence za razmerja||dj ||A = 0.1 (modra),
||dj ||A = 1
(rdeca) in||dj ||A = 10 (zelena) pri parametrih b = 0.5 in k1 = 1 (levo) ter k1 = 2 (desno).
0 2 4 6 8 100
0.2
0.4
0.6
0.8
1
tf
L
0 2 4 6 8 100
0.2
0.4
0.6
0.8
1
tf
L
Slika 3.2: Odvisnost lokalne utezi od frekvence za razmerja||dj ||A = 0.1 (modra),
||dj ||A = 1
(rdeca) in||dj ||A = 10 (zelena) pri parametrih b = 0.8 in k1 = 1 (levo) ter k1 = 2 (desno).
Iz slik 3.1 in 3.2 je razvidno, da parameter b vpliva na ukrivljenost krivulj, parameter
k1 pa na polozaj krivulje. Visja vrednost parametra k1 pri konstantnem b potisne
krivuljo k nizjim vrednostim kot je to vidno na sliki 3.3. Zaradi tega lahko parameter
b definiramo kot normalizacijski parameter za doseganje mehke normalizacije (angl.
3. Funkcija razvrscanja BM25 28
soft normalization), parameter k1 pa definiramo kot dusilni faktor normalizacijske
funkcije B. Vidimo torej, da parametra k1 in b skupaj vzajemno vplivata na krivulje
kar pa pomeni tudi, da je potrebno prilagajati oba hkrati kadar ju zelimo spreminjati.
0 2 4 6 8 100
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
tf
L
k1 = 0.2
k1 = 1
k1 = 3
k1 = 10
Slika 3.3: Vpliv parametra k1 na krivuljo odvisnosti lokalne utezi od frekvence pri kon-stantnem b. Vecje vrednosti k1 potisnejo funkcijske vrednosti nizje kot manjse vrednostik1.
Poglejmo se kako na delovanje BM25 vplivajo dolzine dokumentov. Dolzino doku-
menta lahko preprosto definiramo kot sestevek vseh frekvenc besed, ki jih vsebuje.
Ce zelimo ugotoviti vpliv posamezne besede v dokumentu, moramo definirati se t.i.
gostoto besede itd (angl. index term density), ki jo izracunamo za vsako besedo kot
kolicnik njene frekvence in dolzine dokumenta v katerem je vsebovana (enacba 3.9).
itd(ti, dj) =tf(ti, dj)
||dj||, ti ∈ dj (3.9)
Upostevajmo gostoto besed v enacbi 3.8 in poglejmo kaj se zgodi, ce fiksiramo para-
metra k1 in b, hkrati pa spreminjamo povprecno dolzino dokumentov A:
L(ti, dj) =itd(ti, dj) · A
A||dj || · k1 ·B + itd(ti, dj) · A
, ti ∈ dj (3.10)
3. Funkcija razvrscanja BM25 29
0 0.5 1 1.5 20.8
0.82
0.84
0.86
0.88
0.9
0.92
0.94
0.96
0.98
1
itd
L
A = 500A = 1000A = 1500A = 2000A = 2500A = 3000
Slika 3.4: Obnasanje odvisnosti lokalne utezi od gostote pri konstantnih parametrih k1in b in razlicnih povprecnih dolzinah dokumentov A. Na zacetku vrednost L sorazmernonarasca z vrednostjo itd, cez cas pa doseze tocko nasicenosti, kjer vrednost itd nima vecmocnega vpliva nanjo.
Zaradi tocke nasicenosti, lahko ugotovimo kje se nahaja regija nasicenosti ali ne-
nasicenosti zgolj na podlagi povprecne dolzine dokumenta. Torej, ce imamo podano
povprecno vrednost dokumenta, zeleno vrednost za itd in dolzino dokumenta, lahko
ugotovimo kolikokrat se naj beseda ponovi, da se bomo izognili regiji nasicenosti ozi-
roma nenasicenosti. Slednja opazka nam lahko pomaga pri izbiri parametrov k1 in b,
ce imamo vec zbirk dokumentov in iscemo najboljsi vrednosti za k1 in b, ki bi delovali
dovolj zadovoljivo na vseh zbirkah hkrati.
3.2 Izpeljanke BM25
Razvoj BM25 cez leta ni stal, saj se je podrocje pridobivanja znanja zelo hitro razsirilo,
se posebej v smislu razvoja iskalnikov. Tako danes poznamo kar nekaj izpeljank
BM25, ki osnovni ideji funkcije vnasajo dodatno funkcionalnost, nekatere pa izboljsajo
3. Funkcija razvrscanja BM25 30
delovanje v celoti. Potrebno je omeniti tudi avtorja Lv in Zhai [25, 41, 42, 43], ki sta
na podrocju izpeljank BM25 v zadnjih letih doprinesla kar 5 razlicnih izpeljank.
3.2.1 BM11
BM11 v resnici ni izpeljanka v pravem pomenu besede. Gre le za BM25, kjer para-
meter b nastavimo na 1, parameter k1 pa prosto izbiramo. Ker parameter b nastopa v
normalizacijski funkciji B, govorimo o polni normalizaciji (angl. full normalization).
Tako lahko skrajsamo enacbo 3.4 v enacbo 3.11:
s(d, q) =
||q||∑i=1
idf(qi) ·tf(qi, d) · (k1 + 1)
tf(qi, d) + k1 · ||d||A
, qi ∈ q (3.11)
3.2.2 BM15
Podobno kot pri BM11, se tudi pri BM15 nastavi parameter b na konstantno vre-
dnost, vendar tokrat na 0. Parameter k1 tudi tukaj prosto izbiramo. BM15 lahko iz
normalizacijskega stalisca interpretiramo kot komplement BM11, saj gre za nicelno
normalizacijo (angl. zero normalization). Rezultat je enacba 3.12:
s(d, q) =
||q||∑i=1
idf(qi) ·tf(qi, d) · (k1 + 1)
tf(qi, d) + k1, qi ∈ q (3.12)
3.2.3 BM25F
S prihodom strukturiranih virov podatkov, je bilo potrebno razviti metodo, ki bi
omogocala sestavljeno ocenjevanje glede na strukturo podatkov. Pri nekaterih oblikah
podatkov je tako, da nekateri deli strukturiranega dokumenta bolje opisujejo tema-
tiko kot drugi. Tako lahko damo vecjo utez oceni, ki jo dobimo iz naslova in kljucnih
besed, manjso pa tisti oceni, ki jo dobimo iz zakljucka. Taksno shemo ocenjevanja
omogoca izpeljanka BM25F. Poudariti je treba, da je za delovanje te izpeljanke po-
trebna standardizirana struktura dokumenta (recimo XML), kar pa je tezko doseci ce
3. Funkcija razvrscanja BM25 31
te strukture ne definiramo ze vnaprej. Tekst je lahko poljubno zgrajen, zato je v pra-
ksi skoraj vedno potrebno implementirati se orodje, s katerim oznacujemo strukturo
dokumenta.
3.2.4 Izpeljanke avtorjev Lv in Zhai
Lv in Zhai sta v zadnjih letih razvila veliko izpeljank, ki izboljsujejo delovanje BM25.
Med njimi gre za sicer manjse spremembe, ki pa imajo veliko vpliva v uporabi. Naj-
bolj znana izmed njunih izpeljank je BM25L [25], ki odpravlja slabo delovanje BM25
kadar imamo dolge dokumente. To pomanjkljivost sta odkrila prav avtorja in jo tudi
odpravila s prilagajanjem normalizacije tako, da sta uvedla parameter zamika δ. Sle-
dnji zagotavlja, da so dolgi dokumenti enakovredni krajsim, kar izboljsa razvrscanje.
Druge izpeljanke teh avtorjev so BM25C, BM25Q, BM25T [43] in BM25+ [42], ki pa
jih ne bomo podrobneje obravnavali zaradi njihove prevelike obseznosti.
3.3 Prednosti in slabosti
Skozi to poglavje smo podrobneje spoznali delovanje BM25 in spoznali nekatere la-
stnosti s teoreticnega vidika. Dejstvo je, da je BM25 zelo ucinkovita metoda v praksi.
Z njeno uporabo hitro ugotovimo, da ima kar nekaj pozitivnih lastnosti, nekaj pa
je tudi negativnih. Oglejmo si torej nekaj prednosti in slabosti BM25 s prakticnega
vidika.
Prednosti
• Preprosta implementacija.
• Moznost paralelnega racunanja utezi.
• Neodvisnost od jezika.
• Uporaba priporocenih vrednosti parametrov k1 in b se v splosnem dobro obnese.
3. Funkcija razvrscanja BM25 32
Slabosti
• Dokumenti z besedami, ki se velikokrat pojavijo v zbiri dokumentov so vcasih
slabse uvrsceni, kar ni vedno zazeleno. Ce zelimo to odpraviti, moramo spre-
meniti implementacijo ali pa ustrezneje nastaviti parametra k1 in b.
• Rezultati so odvisni od vsebine dokumentov. Ce je le-ta obsezna, lahko upora-
bimo izpeljanko BM25L, ki pa vnasa nov parameter δ. Posledicno je implemen-
tacija kompleksnejsa, vnesemo pa se eno novo spremenljivko pri optimizaciji
vrednosti parametrov.
Poglavje 4Latentna semanticna analiza
Latentna semanticna analiza (angl. latent semantic analysis) ali LSA, je izum Scotta
Deerwesterja in njegove ekipe [27, 28] iz leta 1988. Gre za tehniko analize podobnosti
med besedili na podlagi pomenov. Tehnika predpostavlja, da se besede s podob-
nim pomenom pojavljajo v okolici podobnih besed. Metoda se aktivno uporablja
pri inteligentnih iskalnikih, sistemih priporocanja, detekciji plagiatov in tudi kot del
postopkov pomenskega grucenja. Na podrocju iskalnikov je postopek znan tudi kot
latentno semanticno indeksiranje (LSI - angl. latent semantic indexing). V tem po-
glavju bomo spoznali delovanje metode LSA, njene posebnosti in lastnosti ter nekaj
izboljsav.
4.1 Dokumenti v vektorskem prostoru
Dokumente razumemo kot mnozico besedil, stavkov ali besednih zvez. V taksni obliki
je dokument s stalisca matematicnih modelov neustrezno definiran, saj s stavki tezko
operiramo. Z drugimi besedami: nimamo ustreznih matematicno definiranih opera-
cij, ki bi jih lahko uporabljali za obdelavo dokumentov, predstavljenih na ta nacin.
Zaradi tega iscemo nacine predstavitve dokumentov v drugacni, matematicno bolj
ustrezni obliki. Upraviceno lahko sklepamo, da je vsak dokument definiran s svojo
vsebino. Nasa naloga je torej ugotoviti ustrezen nacin pretvorbe besed iz dokumenta v
obliko, ki je primerna za obdelavo. Ker ima vsak dokument vec razlicnih besed lahko
predpostavimo, da je vsaka beseda lastnost dokumenta, ki mu pripada. Pri LSA in
4. Latentna semanticna analiza 34
tudi nekaj drugih metodah, te lastnosti preprosto prestejemo. Izhajamo iz predpo-
stavke, da je frekvenca besed pokazatelj konteksta. Ker je besed vec, vsaka beseda
predstavlja svojo dimenzijo. Na tak nacin dobimo predstavitev dokumenta v obliki
vektorja, kjer so komponente vektorja frekvence, ki pa s svojimi vrednostmi predsta-
vljajo utezi. Vec taksnih vektorjev lahko zdruzimo v matriko in imamo matematicno
dobro definirano strukturo zbirke besedil.
LSA deluje nad zbirko besedil in zahtevo, ki ju pretvori v matriko in vektor z utezmi.
Pretvorbo zbirke opravimo tako, da za besede v dokumentih izracunamo utezi v
vsakem dokumentu. Dobljene utezi lahko kompaktno shranimo v matriko A, s tem
pa dobimo n-dimenzionalni prostor, katerega dimenzije segajo do stevila vseh besed
v zbirki. Utezi so lahko zgolj frekvence besed v besedilu, lahko pa so to tf -idf utezi
(angl. term frequency - inverse document frequency). Slednje dobimo po naslednjih
enacbah:
tf(t, d) = ||n : t ∈ d|| (4.1)
idf(t) =||D||n(t)
(4.2)
n(t) = ||d ∈ D : t ∈ d|| (4.3)
tf -idf(t, d) = tf(t, d) · idf(t) (4.4)
Utez tf torej predstavlja frekvenco besede v dokumentu d, utez idf pa pomeni po-
membnost besede t v celotni zbirki dokumentov D. Kot vidimo je utez tf enako
definirana kot pri funkciji BM25, utez idf pa ne. To je zaradi tega, ker BM25 upo-
rablja drugacno definicijo utezi idf zaradi drugacnega verjetnostnega modela. ||D||je kardinalnost (velikost) zbirke dokumentov, n(t) pa pomeni stevilo dokumentov iz
zbirke dokumentov D, ki vsebujejo besedo t. Pri enacbi 4.2 je treba poudariti, da
pride do deljenja z 0 v kolikor je vrednost enacbe 4.3 enaka 0. To lahko resimo tako,
da ne upostevamo besed, ki niso v zbirki ali pa priredimo enacbo 4.3 tako, da eno-
stavno pristejemo 1. Na ta nacin se resimo deljenja z 0, za vse ostale vrednosti pa se
ucinkovitost delovanja ne spremeni.
4. Latentna semanticna analiza 35
Matrika utezi A je matrika, kjer vrstice predstavljajo besede, stolpce pa dokumenti v
zbirki. Ker ni nujno da bo stevilo besed enako stevilu dokumentov v zbirki, matrika A
naceloma ni kvadratna. Naj bo ||T || stevilo vseh besed v zbirki, ||D|| pa stevilo vseh
dokumentov v zbirki. Stevca i = 1, 2, ...||T || in j = 1, 2, ...||D|| naj stejeta po vrsticah
(besedah) in stolpcih (dokumentih). Matrika A je tako velikosti ||T ||×||D||. Tvorimo
jo tako, da izracunamo stolpicne utezne vektorje dj za posamezne dokumente in jih
zlagamo skupaj.
Pretvorba zahteve je identicna tvorbi stolpicnega uteznega vektorja dj. Zahtevo torej
razumemo kot dokument, ki pa ga ne upostevamo v zbirki. Lahko se zgodi, da zahteva
vsebuje besede, ki v zbirki ne obstajajo. V taksnih primerih teh besed ne upostevamo
pri racunanju uteznega vektorja. Rezultat pretvorbe sta torej utezna matrika zbirke
A in utezni vektor zahteve q.
4.2 Algoritem
Po preslikavi v vektorski prostor lahko izvajamo matematicne operacije nad podatki,
saj nimamo vec opravka z besedami temvec z realnimi stevili. Najprej utezno matriko
A razcepimo na matrike U, Σ in V∗ s postopkom singularnega razcepa (angl. singular
value decomposition). V nadaljevanju bomo singularni razcep oznacevali s kratico
SVD. U in V∗ sta v bistvu ortonormirani bazi vektorskega prostora, katerega smo
ustvarili, Σ pa je diagonalna matrika, ki vsebuje singularne vrednosti. Ta korak je
tudi racunsko najbolj zahteven in predstavlja ozko grlo metode LSA.
Sledi redukcija dimenzij matrik U, Σ in V∗ na rang k. To je kljucna operacija v al-
goritmu, saj predstavlja neke vrste filter suma zaradi katerega je tezko najti podobne
pomene med besedami v zbirki. Z redukcijo enostavno odrezemo odvecne dimenzije
vektorskega prostora, rezultat pa je k-aproksimacija originalnega vektorskega pro-
stora. Rang k lahko interpretiramo kot parameter filtriranja. Od tega parametra je
odvisno delovanje LSA, saj z majhno vrednostjo izgubimo informacije in zmanjsamo
racunsko zahtevnost, obratno pa ohranimo informacije (vcasih tudi nepotrebne) in
povecamo racunsko zahtevnost. Ta parameter je odvisen od zbirke besedil in se v
praksi nastavlja po potrebi, studija [32] pa je pokazala, da se za splosno besedilo
4. Latentna semanticna analiza 36
A
w × d
U Σ V
w × w w × d
d × d
*
Slika 4.1: Stanje matrik po singularnem razcepu. Slika prikazuje stanje matrik pokoncanem koraku 1 v algoritmu 1.
A
w × d
U Σ V
w × d
d × d d × d
*
Slika 4.2: Stanje matrik po singularnem razcepu. Vrednosti v matriki Σ po vrstici D soenake 0 in ne doprinesejo nic h koncnemu rezultatu zato jih lahko zavrzemo. Posledicnose spremeni velikost matrike U zaradi pogoja o ujemajocih se notranjih dimenzijah primnozenju matrik.
najbolje obnese vrednost med k = 100 in k = 300. Slike 4.1, 4.2 in 4.3 prikazujejo
stanje matrik pred in po izvajanju tega koraka.
Zatem moramo izracunati nove utezne vektorje dokumentov dj,k in zahteve qk. To
je potrebno zato, ker nekaterih informacij po redukciji nimamo vec, prvotni utezni
vektorji pa te informacije se vedno upostevajo. Nove utezne vektorje dobimo tako,
da originalne vektorje pomnozimo z reducirano matriko Uk in inverzom reducirane
4. Latentna semanticna analiza 37
w × d w × k
k × k k × d
VΣA U *kkkk
Slika 4.3: Stanje matrik po redukciji dimenzij na rang k (korak 2 v algoritmu 1). Matrikamiz stanja na sliki 4.2 spremenimo dimenzije glede na parameter ranga k.
matrike Σk. Izracun novih uteznih vektorjev opravimo z enacbama 4.5 in 4.6.
dj,k = dTj UkΣ
−1k (4.5)
qk = qTUkΣ−1k (4.6)
Na koncu moramo izracunati le se podobnosti med vektorjem zahteve qk in vsemi
vektorji dokumentov dj,k. To storimo z racunanjem razdalje med vektorji. Naceloma
lahko vzamemo katerokoli metriko razdalje, ponavadi pa vzamemo kosinusno razdaljo
dano z enacbo:
sim(qk,dj,k) =qk · dj,k
||qk|| · ||dj,k||(4.7)
Kosinusna razdalja vraca podobnost dveh dokumentov glede na kot dveh vektorjev
v vektorskem prostoru. Manjsi je ta kot, bolj sta si dokumenta podobna, saj lezita
blizje skupaj v vektorskem prostoru. Dokument d, ki kot vektor lezi najblizje vektorju
zahteve q je torej rezultat algoritma, zlahka pa lahko LSA modificiramo tako, da vrne
n najbolj podobnih dokumentov. Koraki algoritma so zbrani v 1.
4. Latentna semanticna analiza 38
Algoritem 1 LSA
1: function Latent-Semantic-Analysis(A, q)// Korak 1: singularni razcep
2: (U,Σ,V∗) = SVD(A)// Korak 2: redukcija dimenzij U, Σ in V∗
3: U→ Uk // redukcija po stolpcih4: Σ→ Σk // redukcija po vrsticah in stolpcih5: V∗ → V∗k // redukcija po vrsticah
// Korak 3: izracun novih uteznih vektorjev dokumentov dj,k
6: dj,k ← dTj UkΣ
−1k
// Korak 4: izracun novega uteznega vektorja zahteve qk
7: qk ← qTUkΣ−1k
// Korak 5: izracun podobnosti med dj,k in qk
8: S ← ∅9: for dk ∈ Dk do
10: S ← S ∪ {sim(qk,dk)}11: end for
// Korak 6: iskanje n najbolj podobnih dokumentov v S12: max← maxn{S}13: return max14: end function
4.3 Primer delovanja
V nadaljevanju si bomo poblizje ogledali delovanje LSA nad slovenskim in angleskim
jezikom. Primer v slovenscini je izmisljen, primer v anglescini pa je primer iz [46].
Na obeh primerih bomo pokazali delovanje algoritma, hkrati pa bosta primera sluzila
kot dokaz, da je metoda LSA neodvisna od jezika. To pomeni, da deluje enako dobro
ne glede na jezik zbirke dokumentov. To je posledica verjetnostnega modela, ki se
ustvari, ko tvorimo utezno matriko A.
Delovanje nad slovenskim jezikom
Naj bo zbirka dokumentov D sestavljena iz treh stavkov a, b in c (|D| = 3) v slo-
venskem jeziku, kjer vsak stavek predstavlja en dokument. Zahteva q naj bo stavek
Hotel sem sobo v hotelu.
4. Latentna semanticna analiza 39
a Hotel je placati racun za sobo
b Ta hotel ima zelo poceni sobe
c Kdor bo hotel, bo spal v hotelu
Informacije pretvorimo v vektorski prostor in dobimo matriko A ter vektor q:
A =
0 0 2
1 1 1
0 0 1
0 1 0
1 0 0
0 0 1
1 0 0
0 1 0
1 0 0
0 0 1
1 0 0
0 0 1
0 1 0
0 0 1
1 0 0
0 1 0
q =
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
bo
hotel
hotelu
ima
je
kdor
placati
poceni
racun
sobe
sobo
spal
ta
v
za
zelo
Izvedemo SVD(A), reduciramo matrike U, Σ in V∗ na rang k = 2 in izracunamo
nove utezne vektorje:
ak =
−0.25
0.83
bk =
−0.21
0.44
ck =
−0.94
−0.33
qk =
−0.33
0.18
4. Latentna semanticna analiza 40
Izracunamo kosinusne razdalje med novimi uteznimi vektorji dokumentov ak, bk, ck
in novim uteznim vektorjem zahteve qk ter poiscemo maksimalni element mnozice S:
S = {0.71, 0.81, 0.67}
max = max{S} = 0.81
Najvecje ujemanje se pojavi pri dokumentu b. LSA za zahtevo Hotel sem sobo v
hotelu vrne dokument Ta hotel ima zelo poceni sobe. Delovanje v vektorskem prostoru
prikazuje slika 4.4.
−1 −0.5 0 0.5 1−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
LSA dimenzija 1
LSA
dim
enzija2
LSA - prikaz vektorjev
ZahtevaDokumenti
Slika 4.4: Delovanje LSA nad slovenskim jezikom. Roza vektor predstavlja dokument znajvecjim ujemanjem.
4. Latentna semanticna analiza 41
Delovanje nad angleskim jezikom
Naj bo zbirka dokumentovD sestavljena iz treh stavkov a, b in c (|D| = 3) v angleskem
jeziku, kjer vsak stavek predstavlja en dokument. Zahteva q naj bo stavek gold silver
truck.
a Shipment of gold damaged in a fire
b Delivery of silver arrived in a silver truck
c Shipment of gold arrived in a truck
Informacije pretvorimo v vektorski prostor in dobimo matriko A ter vektor q:
A =
1 1 1
1 1 0
1 0 0
0 1 0
1 0 0
1 0 1
1 1 1
1 1 1
1 0 1
0 2 0
1 1 0
q =
0
0
0
0
0
1
0
0
0
1
1
a
arrived
damaged
delivery
fire
gold
in
of
shipment
silver
truck
Izvedemo SVD(A), reduciramo matrike U, Σ in V∗ na rang k = 2 in izracunamo
nove utezne vektorje:
ak =
−0.49
−0.64
bk =
−0.64
0.71
ck =
−0.58
−0.24
qk =
−0.21
0.18
4. Latentna semanticna analiza 42
Izracunamo kosinusne razdalje med novimi uteznimi vektorji dokumentov ak, bk, ck
in novim uteznim vektorjem zahteve qk ter poiscemo maksimalni element mnozice S:
S = {−0.05, 0.99, 0.44}
max = max{S} = 0.99
Najvecje ujemanje se pojavi pri dokumentu b. LSA za zahtevo gold silver truck vrne
dokument Delivery of silver arrived in a silver truck. Delovanje v vektorskem prostoru
prikazuje slika 4.5.
−1 −0.5 0 0.5 1−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
LSA dimenzija 1
LSA
dim
enzija2
LSA - prikaz vektorjev
ZahtevaDokumenti
Slika 4.5: Delovanje LSA nad angleskim jezikom. Roza vektor predstavlja dokument znajvecjim ujemanjem.
4.4 Prednosti in slabosti
Iskanje podobnih pomenov v besedilih je zelo tezka naloga, ki jo LSA dobro opravlja.
Trenutno je to ena izmed najbolj popularnih metod za iskanje podobnih pomenov v
besedilih. Vendar ker na podrocju procesiranja naravnega jezika za to nalogo obstaja
4. Latentna semanticna analiza 43
veliko razlicnih metod, hitro ugotovimo, da nobena izmed njih ni popolna. Metoda
LSA je priljubljena ravno zaradi dobrih rezultatov. V nadaljevanju je navedenih nekaj
glavnih prednosti in slabosti LSA.
Prednosti
• Neodvisnost od jezika.
• Dobro zaznavanje sinonimov.
• Omogoca iskanje podobnih besedil v razlicnih jezikih, ce imamo prevedeno ba-
zno mnozico besedil.
• Mozna je paralelna implementacija.
Slabosti
• Slabo zaznavanje polisemije (vecpomenskosti).
• Verjetnostni model LSA predvideva, da dokumenti in besede v vektorskem pro-
storu tvorijo model z Gaussovo porazdelitvijo, v praksi pa se pojavi model s
Poissonovo porazdelitvijo.
• Casovno in prostorsko potratna metoda pri velikih kolicinah podatkov.
4.5 Izboljsave LSA
Veliko raziskovalcev se ukvarja z resevanjem slabosti LSA, saj so v praksi dolocene
omejitve, katere je potrebno zaobiti za dobro delovanje LSA. Prva taksna omejitev
je racunanje SVD. Izracun navadno poteka v dveh fazah. Najprej je potrebno redu-
cirati matriko tako, da postane bidiagonalna, nato pa sledi izracun SVD za dobljeno
bidiagonalno matriko z iterativnim algoritmom. Racunska zahtevnost za matriko di-
menzij m × n je O(mn2) [44]. Ko imamo veliko dokumentov in besed, traja izracun
SVD tudi po vec dni. V tem primeru lahko ali zmanjsamo mnozico dokumentov,
ali pa izboljsamo algoritem za izracun SVD. Operacija SVD predstavlja ozko grlo
4. Latentna semanticna analiza 44
metode LSA, zelimo pa hitro delovanje pri veliki kolicini podatkov, saj drugace ne
bi mogli izvesti neposrednega serviranja rezultatov, kar pa je potrebno recimo pri
iskalnikih. V ta namen so bile razvite metode, med njimi tudi inkrementalne, ki
hitreje izracunajo SVD [31, 38, 35]. Trenutno najbolj aktualni metodi sta Brandov
algoritem [36] in metoda stohasticne aproksimacije Gorellove in Webba [33]. Medtem
ko Brandov algoritem izracuna natancno resitev, metoda Gorellove in Webba vrne le
zelo dober priblizek zaradi iterativnega pristopa. Rezultat obeh izboljsav je podoben
uveljavljenim metodam za izracun SVD, ki jih najdemo v [38, 44, 45]. Naslednja
pomanjkljivost LSA je ta, da verjetnostni model LSA predvideva, da so dokumenti in
besede v vektorskem prostoru normalno porazdeljeni, ceprav so v bistvu porazdeljeni
po Poissonovi porazdelitvi. V ta namen je bila razvita metoda PLSA (angl. Probabili-
stic LSA) [34], ki daje ravno zaradi upostevanja prave porazdelitve se boljse rezultate
kot LSA. Zaznavanje polisemije je najvecja pomanjkljivost LSA, ki je raziskovalno se
najbolj neresena. Resevanja tega problema bi se lahko lotili z vklucitvijo semanticnih
mrez. Slednje nosijo informacije o vec pomenih istih besed. Tezava je v tem, da je
gradnja semanticnih mrez trenutno se zelo neraziskano podrocje in zaradi tega se ni
dovolj dobrih postopkov, ki bi jih lahko uporabili v praksi.
Poglavje 5Razvoj sistema priporocanja
V tem poglavju bomo opisali razvoj sistema priporocanja dokumentov, ki je tudi
prakticni izdelek tega magistrskega dela. Spoznali bomo zasnovano strukturo sistema
in uporabljene metode, podrobneje pa si bomo pogledali pristop opisovanja dokumen-
tov s kombinacijo vec razlicnih nacinov. Na koncu si bomo ogledali se nekaj izboljsav,
ki smo jih implementirali za bolj robustno uporabo v praksi. Med razvojem smo za
zbirko dokumentov uporabljali diplomske, magistrske in doktorske naloge ter druge
dokumente shranjene v digitalni knjiznici Univerze v Mariboru (DKUM).
5.1 Motivacija
Digitalna knjiznica Univerze v Mariboru je spletna aplikacija, ki omogoca dostop do
akademskih gradiv kot so diplomske, magistrske in doktorske naloge v digitalni obliki.
V sklepu diplomskega dela Diane Kolar [7], katerega namen je bil dolociti uporabniske
profile iz analize klikov na DKUM, je podana ugotovitev, da vecina obiskovalcev
DKUM zelo hitro zapusti spletno stran z malim stevilom klikov. Ugotovljeno je bilo
tudi dejstvo, da si vec kot 90% obiskovalcev ogleda le eno gradivo. Kot resitev tega
problema je omenjen sistem priporocanja v namen vabljenja k ogledu vec sorodnih
gradiv.
Namen prakticnega dela tega magistrskega dela je torej zasnovati in izdelati splosni
sistem priporocanja, ki ga lahko vkljucimo v DKUM z namenom izboljsanja povra-
tnega obiska. Hkrati zelimo uporabnikom nuditi kvalitetno priporocanje, ki temelji
5. Razvoj sistema priporocanja 46
na analizi vsebine dokumentov. Da bi to dosegli, smo zasnovali nacin pridobivanja
kontekstnega opisa posameznega dokumenta, razvili mehanizem za belezenje upo-
rabniskih aktivnosti in aplikacijo, ki vraca priporocitve. V nadaljevanju je podana
struktura tega sistema skupaj s potekom komunikacije med posameznimi komponen-
tami sistema, kot tudi podroben opis metod, ki se uporabljajo v razvitem sistemu
priporocanja.
5.2 Struktura razvitega sistema
Pri razvoju sistema priporocanja smo sledili smernicam opisanim v poglavju 1. Nas
sistem tvorijo streznik, spletne storitve za dostop do streznika in uporabniski vme-
snik, ki prikazuje rezultate priporocanja. Za belezenje uporabniskih aktivnosti smo
razvili modul v strezniku in ustrezno spletno storitev. Kombinacija obeh omogoca
belezenje dokumentov, ki si jih je dolocen uporabnik ogledal in kolikokrat je to storil.
V strezniku se nahaja tudi modul za obdelavo dokumentov ki zagotavlja standar-
diziran format opisa za vsak dokument. Po obdelavi dokumentov se pricne inde-
ksiranje dokumentov, kjer uporabimo ocene funkcije razvrscanja BM25. Streznik
obdelavo dokumentov izvaja periodicno, saj se v zbirko dokumentov dodajajo novi
dokumenti. Na tak nacin posodabljamo indeks dokumentov. Za potrebe splosnega
priporocanja bi lahko opravljali tudi pomensko grucenje dokumentov. Rezultat tega
so gruce dokumentov, katerim bi priredili uporabnike s klasifikacijo na podlagi ze
ogledanih dokumentov. Pomensko grucenje dokumentov nam tako nudi osnovo za
splosno priporocanje, saj lahko izpisemo vse dokumente v gruci, kot priporocila. Ker
je uporabnik povezan z gruco, bo tudi priporocilo ustrezno. Specificno priporocanje
nudimo na zahtevo odjemalca, kjer nasa funkcija razvrscanja vrne najbolj podobne
dokumente za aktivni dokument. Sliki 5.1 in 5.2 prikazujeta komunikacijo v scenari-
jih splosnega in specificnega priporocanja, slika 5.3 pa prikazuje posodobitev indeksa
dokumentov.
5. Razvoj sistema priporocanja 47
Slika 5.1: Potek komunikacije v scenariju splosnega priporocanja. Uporabnik si ogledaprvo stran spletne strani, ta aktivnost pa se zabelezi v njegov profil. Iz ze obstojecegaprofila se pridobi seznam dokumentov, ki so ustrezni za uporabnika. Iz tega seznama seizbere n dokumentov, ki predstavljajo splosno priporocilo.
Slika 5.2: Potek komunikacije v scenariju specificnega priporocanja. Uporabnik si ogledavsebino dokumenta, ta aktivnost pa se zabelezi v njegov profil. Glede na aktivni dokumentse pridobijo podobni dokumenti iz indeksa dokumentov. Funkcija razvrscanja po podobnostiz aktivnim dokumentom filtrira n dokumentov iz indeksa, ki tvorijo specificno priporocilo.
5. Razvoj sistema priporocanja 48
Slika 5.3: Potek komunikacije ob posodobitvi indeksa dokumentov. Ob dodajanju no-vih dokumentov se le-ti obdelajo, modul za periodicno posodabljanje pa posodobi indeksdokumentov.
5.3 Mehanizem belezenja uporabniskih aktivnosti
Za belezenje uporabniskih aktivnosti smo implementirali mehanizem, ki deluje na
podlagi piskotkov in seje. Vsakemu novemu uporabniku se dodeli enolicni identi-
fikator. Da v prihodnosti lahko identificiramo uporabnika, shranimo ta podatek v
piskotek, ki se hrani pri uporabniku. Vsak uporabnikov ogled dokumenta si za-
belezimo z vnosom v podatkovno bazo, hkrati pa lahko stejemo kolikokrat je bil ta
dokument ogledan s strani uporabnika. Tako lahko na podlagi veckratnih ogledov
dajemo vecjo tezo dolocenim dokumentom, kar se uporabi pri razpoznavanju tematik
zanimivih za uporabnika. Mehanizem je v resnici zelo preprost, saj ima zgolj dve sta-
nji - vnos novega uporabnika in posodobitev informacij o ze obstojecem uporabniku.
Na tak nacin gradimo uporabniske profile, kjer imamo podatke le o ogledanih doku-
mentih. Na podlagi stevila ogledov dolocenega dokumenta lahko ugotovimo katere
tematike uporabnika zanimajo.
5.4 Razvrscanje rezultatov
Za potrebe razvrscanja rezultatov smo zasnovali funkcijo razvrscanja, ki deluje nad
vec parametri. Funkcija ima vec faz, skozi katere razvrsca rezultate. Najprej se med
vsemi dokumenti izracunajo podobnosti v obliki ocen BM25. Tvorimo torej indeks
5. Razvoj sistema priporocanja 49
dokumentov v obliki kvadratne matrike. Iz tega indeksa glede na vhodni dokument
izberemo tiste dokumente, ki imajo z vhodom najvisjo vrednost podobnosti. Medtem,
ko ocena BM25 nosi vecino teze pri razvrscanju, pa uporabljamo tudi druge parame-
tre. Vsak dokument ima podatek o letu izida, stevilu ogledov, stevilu prenosov in
stevilu ter vsoti uporabniskih ocen. Te parametre uporabimo kot pomozne za boljse
razvrscanje. Strategija razvrscanja, ki jo uporabljamo je podana v tabeli 5.1.
pomembnost utez
1 ocena BM25
2 leto izida
3 stevilo prenosov
4 stevilo ogledov
5 povprecna ocena
6 fakulteta
7 mentor
8 studijski program
Tabela 5.1: Strategija razvrscanja rezultatov priporocanja.
Formalno zapisemo uporabljeno funkcijo razvrscanja kot funkcijo treh vhodov. Prvi
vhod je aktivni dokument, drugi vhod je mnozica parametrov za razvrscanje, tretji
vhod pa mnozica utezi poravnana s parametri za razvrscanje. Definirajmo relacijo
podobnosti ∼, ki nosi podatek o podobnosti med dvema dokumentoma. Funkcija
razvrscanja slika iz obstojece mnozice dokumentov D v novo mnozico dokumentov R.
Mnozica R je tako podmnozica mnozice D. Mnozica R vsebuje tiste dokumente, ki
so najbolj podobni aktivnemu dokumentu da, obenem pa so razvrsceni po podobnosti
padajoce.
f : (da, D,W ) 7→ R
∀r ∈ R : r ∼ da ∧ sim(ri, da) > sim(ri+1, da) ∧R ⊂ D
5. Razvoj sistema priporocanja 50
Gre torej za prioritetni sistem razvrscanja, kjer ima vsebinska podobnost najvecjo
tezo, sledijo pa ji casovni in uporabniski faktorji (mnozica utezi W ). Dodajali bi lahko
tudi druge faktorje, kot sta fakulteta in mentor. Pri tem bi ju morali previdno uvrstiti
v strategijo, saj bi drugace lahko prislo do priporocanja enakih dokumentov za vec
razlicnih dokumentov, ki pa imajo slucajno enakega mentorja. Taksno delovanje ni
zazeleno, saj uporabniku ne ponujamo nic novega. Zadnja faza je dolocanje koncnega
seznama priporocil. To storimo preprosto tako, da iz mnozice R vzamemo prvih n
priporocil. Stevilo priporocil lahko dolocimo fiksno, lahko pa ga sproti racunamo na
podlagi utezi priporocil v mnozici R.
5.5 Izboljsave za robustno uporabo v praksi
Razvit sistem smo preizkusali pri razlicnih kolicinah podatkov. Izkazalo se je, da je
sistem deloval slabse pri vecjih kolicinah podatkov, kar pa je v praksi nekaj povsem
obicajnega. Glavna razloga sta bila predvsem kolicina obdelanih podatkov in cas, ki
ga je potreboval za obdelavo podatkov. Tako smo se osredotocili na resevanje teh
dveh pomanjkljivosti. Po pregledu podatkov smo ugotovili, da bi dolocene obdelane
podatke lahko zanemarili, saj so bili neuporabni. Prav tako smo razmislili katera
opravila v sistemu se lahko pospesijo s paralelnim procesiranjem. Ugotovili smo, da
bi z uvedbo paralelizma signifikantno zmanjsali cas procesiranja, ce bi ga uporabili
pri racunanju ocen BM25 in vektorjev pri LSA.
5.5.1 Filtriranje ocen BM25
Pri velikih kolicinah dokumentov je tudi indeks z ocenami BM25 velik. V njem so
shranjene podobnosti vseh dokumentov z vsemi drugimi dokumenti. Ker so podob-
nosti med dolocenimi dokumenti majhne, jih lahko zavrzemo. S tem pridobimo na hi-
trosti poizvedbe podobnih dokumentov, saj je mnozica obdelovanja bistveno manjsa.
Za to je potrebno ustrezno dolociti prag filtriranja. Slednji je odvisen tudi od stevila
dokumentov, ki jih zelimo na koncu priporocati. Prag filtriranja ocen BM25 lahko po-
stavimo tako, da dobimo tocno toliko stevilo dokumentov kot jih zelimo priporocati.
Prav tako lahko prag postavimo tako, da bomo imeli tudi nekaj vec dokumentov na
razpolago kot pa jih bomo pravzaprav priporocali. Prva moznost je bolj uporabna,
5. Razvoj sistema priporocanja 51
ce zelimo hitrost. Z drugo moznostjo lahko uporabniku priporocamo tudi ne najbolj
podobne dokumente z namenom, da bi mu nudili se druge vsebine, ki pa imajo vsaj
nekaj podobnosti z vsebino, ki si jo trenutno ogleduje. Prihranek pri prostoru je tako
pogojen s pragom filtriranja. Pri uporabi tega postopka na gradivih iz DKUM smo
zabelezili 95% prihranek pri prostoru (iz 13GB na 600MB), kar nakazuje na dejstvo,
da so gradiva raznolika.
Naslov vhodnega dokumenta
Izdelava WYSIWYG urejevalnika s podporo matematicnim in kemijskim znakom
Seznam zadetkov
i Naslov dokumenta BM25 ∆i
1 Izdelava e-dokumentov s programskim jezikom LaTeX 12.64 0
2 Objava znanstvenih dokumentov na spletnih straneh 10.91 1.73
3 Urejanje in obdelava besedil 7.05 5.59
4 Analiza uporabnosti urejevalnikov besedil v poslovnih sistemih 6.85 5.79
5 Virtualna radijska novinarska redakcija 5.93 6.71
Tabela 5.2: Filtriranje z dinamicno mejo; neustrezen zadetek izpade iz seznama priporocil.
Tudi pri uporabi filtriranja ocen BM25 se lahko zgodi, da za rezultat ne bomo vedno
dobili dobrih priporocil. Razlog je ravno v raznolikosti gradiv, ki nam ne zagotavlja
da obstaja toliko podobnih dokumentov, kolikor je nase minimalno zeleno stevilo
priporocil. V tem primeru je potrebno razviti naknadno filtriranje z dinamicno mejo,
ki deluje nad delnim rezultatom. Ce je v seznamu priporocil zaznana velika razlika
med vrednostmi ocen BM25, lahko iz seznama odstranimo vse zadetke, ki se pojavijo
za zaznano veliko razliko. Posledica tega je, da ni zagotovljeno minimalno zeleno
stevilo priporocenih dokumentov, po drugi strani pa zagotovimo le pomensko ustrezne
zadetke. Primer filtriranja z dinamicno mejo je podan v tabeli 5.2, kjer je vrednost
minimalnega zelenega stevila zadetkov enaka 5. Dinamicna meja je postavljena na
polovico najvecje ocene, kar lahko interpretiramo kot upostevanje vseh zadetkov, ki
so za vec kot 50% pomensko povezani z najustreznejsim zadetkom. Nato izracunamo
5. Razvoj sistema priporocanja 52
razlike ∆i med najvecjo oceno in vsako naslednjo oceno. Iz seznama odstranimo tiste
zadetke, kjer je razlika ocen vecja od dinamicne meje.
5.5.2 Uvedba paralelizma
Nekatera opravila pri obdelavi dokumentov v nasem sistemu priporocanja so racunsko
zahtevna. Primer taksnih opravil sta racunanje ocen BM25 in vektorjev v reducira-
nem vektorskem prostoru pri LSA. Ta opravila lahko pospesimo z uporabo parale-
lizma. Zasnova struktur za shranjevanje podatkov nam omogoca, da racunamo ocene
BM25 povsem paralelno, saj gre za kvadratno matriko, njeni elementi pa predstavljajo
podobnosti med dvema dokumentoma. Tako lahko socasno racunamo podobnosti za
vec dokumentov hkrati, kar pohitri delovanje tega koraka obdelave podatkov. Ta
paralelni pristop je prikazan v algoritmu 2.
Algoritem 2 Paralelno racunanje ocen BM25
1: function Parallel-Compute-BM25-Scores(D)2: A← matrix(0, D.Count, D.Count) // A je matrika nicel3: parallel for di ∈ D do4: for dj ∈ D do5: Ai,j ← BM25(di, dj)6: end for7: end parallel for8: return A9: end function
Podobno imamo tudi pri LSA matriko, ki pa ni vedno kvadratna in vsebuje fre-
kvence besed v dokumentih. Tudi tukaj lahko izracun paraleliziramo tako, da socasno
racunamo vrednosti za vec dokumentov (algoritem 3). Enake strategije se lahko po-
sluzimo tudi pri izracunu uteznih vektorjev po redukciji ranga (algoritem 4), kot tudi
pri izracunu kosinusnih razdalj med dokumenti (algoritem 5).
5. Razvoj sistema priporocanja 53
Algoritem 3 Paralelno racunanje vhodne matrike A pri LSA
1: function Parallel-Compute-Term-Document-Matrix(D, T )2: A← matrix(0, T.Count, D.Count) // A je matrika nicel3: parallel for dj ∈ D do4: for ti ∈ T do5: Ai,j ← tf(ti, dj)6: end for7: end parallel for8: return A9: end function
Algoritem 4 Paralelno racunanje uteznih vektorjev po redukciji ranga
1: function Parallel-Compute-Weight-Vectors(A, k)2: Dk ← matrix(0, A.Columns, A.Columns− k) // Dk je matrika nicel3: parallel for dj ∈ A.Columns do4: dT
j,k ← dTj UkΣ
−1k
5: setrow(Dk, j, dj,k) // Vektor dj,k shranimo kot vrstico j v matriki Dk
6: end parallel for7: return Dk
8: end function
Algoritem 5 Paralelno racunanje kosinusnih razdalj
function Parallel-Compute-Cosine-Distances(qk, Dk)S ← ∅parallel for dj,k ∈ Dk do
S ← S ∪{
qk·dj,k
||qk||·||dj,k||
}// Izracunano razdaljo dodamo v mnozico razdalj S
end parallel forreturn S
end function
Poglavje 6Rezultati
Da bi preverili delovanje razvitega sistema za priporocanje, smo se odlocili za vec
preizkusov pri razlicnih nastavitvah. Najprej smo preverili ali sistem opravlja svoj
namen in priporoca dokumente, ki so si podobni. Preverili smo delovanje z utezmi
BM25, preucevali pa smo tudi obnasanje sistema pri razlicnih obdelavah vhodnih
dokumentov. Natancneje smo preverjali kaksen je rezultat, ce vhode obdelujemo na
nivoju besed in besednih zvez, prav tako pa smo poskusali z lematiziranim vhodom
pri obeh variantah. Nato smo se preucili kako na rezultat vpliva avtomatsko pridobi-
vanje kljucnih besed s pomenskim oznacevanjem. Na koncu smo sistem priporocanja
vkljucili v DKUM in preverjali njegov vpliv na statistiko obiska. Zeleli smo preizku-
siti tudi metodo LSA, vendar smo hitro ugotovili, da je preizkus te metode na realnih
podatkih nemogoc zaradi casovne in prostorske zahtevnosti. LSA bi tako morali po-
gnati na porazdeljenem sistemu, katerega pa med casom pisanja tega magistrskega
dela nismo imeli na voljo.
Za vhodne podatke smo vzeli 20000 elektronskih gradiv (diplomskih, magistrskih in
doktorskih nalog) iz DKUM. Parametri za dolocanje utezi BM25 so bili pri vseh sce-
narijih enaki (k1 = 1.2, b = 0.75). Uspesnost smo merili na nakljucno izbranih 80
dokumentih iz vhodne mnozice, kjer smo se omejili na gradiva iz fakultete za ele-
ktrotehniko, racunalnistvo in informatiko na Univerzi v Mariboru (v nadaljevanju
UM-FERI). Vracali smo vedno po 5 priporocil za izbran dokument, nato pa prever-
jali ali je priporocilo za cloveka relevantno. Ustreznost smo merili tako, da je skupina
6. Rezultati 55
izbranih ljudi ocenila priporocilo z oceno med 0 in 5, kjer ocena pomeni stevilo ustre-
znih zadetkov v seznamu. Ocene smo za vsak scenarij sesteli in izracunali odstotek
relevantnosti. Ocenjevalci so bili studenti zakljucnih letnikov studijskih programov
1. bolonjske stopnje, studenti studijskih programov 2. bolonjske stopnje in zaposleni
na UM-FERI, tako da smo lahko predpostavili, da nam ocene podajajo domenski
strokovnjaki. Izvedenih je bilo 1600 meritev nad 80 dokumenti. Za preverjanje vpliva
na statistiko obiska smo si pomagali z resitvijo Google Analytics, ki se aktivno upo-
rablja na DKUM dovolj casa, da lahko dobimo reprezentativen vzorec. Pri tem smo
opazovali odbojno stopnjo (angl. bounce rate) in povprecni cas obiska.
6.1 Primerjava razlicnih obdelav
S prvim preizkusom smo zeleli ugotoviti, ali se z izbrano funkcijo razvrscanja bo-
lje obnese obdelava na nivoju besed ali besednih zvez. Zanimal nas je tudi vpliv
lematizacije pri obeh pristopih. Merili smo ustreznost, porabljen cas procesiranja
in porabljen prostor za koncne sezname priporocanja. Rezultati tega preizkusa so
podani v tabelah 6.1 in 6.2.
besede (A) lematizirane besede (B)
Ustreznost 5181000
5571000
Ustreznost [%] 51.80 55.70
Porabljen cas 17m 44s 22m 50s
Porabljen prostor [MB] 387 464
Tabela 6.1: Meritev delovanja sistema pri uporabi besed in lematiziranih besed.
Z drugim preizkusom smo zeleli ugotoviti, ali bi avtomatsko pridobivanje kljucnih be-
sed pomenskim oznacevanjem pripomoglo k boljsemu opisu dokumenta. Tukaj smo
namesto kljucnih besed podanih s strani avtorja uporabili tudi avtomatsko prido-
bljene kljucne besede. Tudi tukaj smo preizkusili vpliv lematizacije in vpliv uporabe
6. Rezultati 56
besedne zveze (C)lematizirane besedne
zveze (D)
Ustreznost 5261000
5971000
Ustreznost [%] 52.60 59.70
Porabljen cas 12m 19s 37m 50s
Porabljen prostor [MB] 180 237
Tabela 6.2: Meritev delovanja sistema pri uporabi besednih zvez in lematiziranih besednihzvez. S krepko pisavo so oznaceni globalni maksimumi oz. minimumi.
besed ter besednih zvez. Enako kot pri prejsnjem preizkusu, smo tudi tukaj me-
rili ustreznost, porabljen cas procesiranja in porabljen prostor za koncne sezname
priporocanja. Rezultati pristopa z obdelavo na nivoju besed so dani v tabeli 6.3,
rezultati pristopa z obdelavo na nivoju besednih zvez pa v tabeli 6.4.
besede + pomenskooznacevanje (E)
lematizirane besede +pomensko oznacevanje
(F)
Ustreznost 4741000
4621000
Ustreznost [%] 47.40 46.20
Porabljen cas 26m 33s 34m 19s
Porabljen prostor [MB] 541 674
Tabela 6.3: Meritev delovanja sistema pri uporabi besed in lematiziranih besed z avto-matskim pridobivanjem kljucnih besed s pomenskim oznacevanjem.
V nadaljevanju so podani grafi primerjave med vsemi kombinacijami uporabljenih
obdelav, ki smo jih preizkusili. Vsak postopek obdelave ima pripadajoco oznako v
obliki crke zaradi kompaktnejsega izgleda grafa primerjave. Oznake so A (besede), B
(lematizirane besede), C (besedne zveze), D (lematizirane besedne zveze, E (besede
in pomensko oznacevanje), F (lematizirane besede in pomensko oznacevanje), G (be-
6. Rezultati 57
besedne zveze +pomensko oznacevanje
(G)
lematizirane besednezveze + pomenskooznacevanje (H)
Ustreznost 4861000
5551000
Ustreznost [%] 48.60 55.50
Porabljen cas 18m 42s 51m 56s
Porabljen prostor [MB] 273 335
Tabela 6.4: Meritev delovanja sistema pri uporabi besednih zvez in lematiziranih besednihzvez z avtomatskim pridobivanjem kljucnih besed s pomenskim oznacevanjem.
sedne zveze in pomensko oznacevanje) in H (lematizirane besedne zveze in pomensko
oznacevanje).
A B C D E F G H0
10
20
30
40
50
60
70
80
90
100
Ustreznost[%
]
Tip predobdelave
Primerjava ustreznosti
Slika 6.1: Graf primerjave ustreznosti. Najbolje so se odrezale obdelave D (lematiziranebesedne zveze) - 59.7%, B (lematizirane besede) - 55.7% in H (lematizirane besedne zvezein pomensko oznacevanje) - 55.5%. Povprecna ustreznost je bila 52.19% (oznaceno z rdecocrto), kar je malenkost vec od minimalne pricakovane ustreznosti (50%) (oznaceno z zelenocrto).
6. Rezultati 58
A B C D E F G H0
500
1000
1500
2000
2500
3000
Porabljen
cas[s]
Tip predobdelave
Primerjava casovne zahtevnosti
Slika 6.2: Graf primerjave casovne zahtevnosti. Najbolje so se odrezale obdelave C (be-sedne zveze), G (besedne zveze in pomensko oznacevanje) in A (besede). Povprecen cas jebil 27m 45s (oznaceno z rdeco crto).
A B C D E F G H0
100
200
300
400
500
600
700
Porabljen
prostor[M
B]
Tip predobdelave
Primerjava prostorske zahtevnosti
Slika 6.3: Graf primerjave prostorske zahtevnosti. Najbolje so se odrezale obdelave C (be-sedne zveze), D (lematizirane besedne zveze) in G (besedne zveze in pomensko oznacevanje).Povprecni porabljen prostor je bil 386.4 MB (oznaceno z rdeco crto).
6. Rezultati 59
6.2 Vpliv priporocanja na statistiko obiska
S pomocjo Google Analytics smo spremljali odbojno stopnjo in povprecen cas obiska
na DKUM medtem, ko je bil sistem priporocanja aktiven. Ker se Google Analytics
na DKUM uporablja od maja 2010, smo primerjali obdobje med mesecem majem in
junijem za leta 2010, 2011 in 2012. Pri tem smo merili razlike v odbojni stopnji. Ker
je stevilo obiskov na DKUM med letom 2010 in letom 2012 naraslo (dodatek B.2), je
smiselno pricakovati tudi povisanje v odbojni stopnji (dodatek B.1). Tako smo zeleli
ugotoviti, ali se vpliv sistema priporocanja kaze pri pomanjsanem povisanju odbojne
stopnje za izbrano obdobje v letu 2012. To smo preverili tako, da smo racunali
razlike v odstotnih tockah odbojnih stopenj po tednih v izbranem obdobju. Slika 6.4
prikazuje graf razlik odstotnih tock odbojnih stopenj za obdobje maj - junij v letih
2011 in 2012.
Teden 1 Teden 2 Teden 3 Teden 4 Teden 5 Teden 6 Teden 7 Teden 8 Teden 9
44
46
48
50
52
Analiza odbojne stopnje za obdobje maj − junij
Teden v obdobju
Odb
ojna
sto
pnja
[%]
20112012napoved
Slika 6.4: Odstotki odbojne stopnje za obdobje maj - junij v letih 2011 (rdece) in 2012(modro). Pricakovana funkcija (oranzno) je v skladu s povecanim stevilom obiskov in jev povprecju za 1.88% vecja od leta 2011. Navpicni crti nakazujeta obdobje aktivnegadelovanja sistema priporocanja na DKUM.
6. Rezultati 60
6.3 Razprava o dobljenih rezultatih
Iz dobljenih rezultatov smo ugotovili, da se z vidika kvalitete boljse obnese obdelava
besedil na nivoju besednih zvez. Ko besedne zveze uporabljamo v navezi z lema-
tizacijo, je potrebnega nekaj dodatnega dela, saj je najprej potrebno lematizirati
besede v besedni zvezi, nato pa dobljene lematizirane besede ponovno zdruziti v be-
sedno zvezo. Koncni casi teh obdelav so tako daljsi, kar je smiselno, saj lematizacija
vzame dodaten cas procesiranja. Ugotovili smo tudi, da se z vidika kvalitete rezul-
tata boljse obnesejo obdelave, ki uporabljajo lematizacijo. To velja za vse primere
razen za obdelavo, ki uporablja besede in pomensko oznacevanje (E), kjer se je upo-
raba lematizacije izkazala za slabso. V vseh drugih primerih je lematizacija bistveno
pripomogla k boljsemu odstotku ustreznosti. Obdelave z lematizacijo vracajo vec
podobnih dokumentov, zato je vecja tudi kolicina prostora, ki ga zavzema rezultat.
S temi ugotovitvami smo potrdili prvo in drugo hipotezo tega magistrskega dela.
Ugotovitve veljajo za pristop BM25, ugotovili pa smo tudi nekaj zanimivosti glede
lematizacije in LSA, ki so podane v dodatku A.
Avtomatsko pridobivanje kljucnih besed se je v vecini primerov izkazalo kot dober
nacin bogatenja konteksta v opisu dokumenta. Ker smo uporabljali genericno pri-
porocene parametre s strani razvijalcev pomenskega oznacevalnika, menimo, da bi
lahko ob podrobnejsi analizi izbire parametrov se povecali faktor vpliva na koncni
rezultat. Ta ugotovitev potrjuje tretjo hipotezo tega magistrskega dela.
Sistem priporocanja je imel tudi vpliv na statistiko obiska. V obdobju, ko je bil sistem
priporocanja aktiven smo zabelezili padec odbojne stopnje na nivo iz leta 2011. Ko
sistem priporocanja ni bil aktiven, je odbojna stopnja znova narasla po vrednosti
in bila v skladu s pricakovanim trendom. Povprecna razlika v odbojni stopnji za
obdobje maj - junij v letih 2011 in 2012 je pred in po aktivnem delovanju sistema
priporocanja znasala med 2 in 3%. Med aktivnim delovanjem sistema priporocanja je
povprecna razlika znasala med 0.6 in 1.6%, kar nakazuje na dejstvo, da so si uporabniki
v tem obdobju ogledali vec vsebin na DKUM. Povprecni cas obiska se ni bistveno
spremenil med aktivnim delovanjem sistema priporocanja. Vpliv sistema priporocanja
na statistiko obiska bi bilo potrebno preuciti se na daljsem obdobju, saj nastopajo tudi
6. Rezultati 61
drugi faktorji. Znano je, da se pred obdobji zagovorov zakljucnih del obisk na DKUM
poveca, odbojna stopnja pa pade. Ta obdobja so ponavadi v mesecu marcu, aprilu,
juniju, septembru in oktobru. Prav tako je med poletjem manj obiska na DKUM, zato
je tudi odbojna stopnja manjsa. Ob upostevanju vseh teh faktorjev, bi lahko dobili
veliko boljsi vidik na dejanski vpliv delovanja sistema priporocanja. Ta ugotovitev
delno potrjuje cetrto hipotezo tega magistrskega dela, saj smo zabelezili zmanjsanje
odbojne stopnje, ne pa tudi povecanja povprecnega prestanega casa obiska.
Poglavje 7Ideje za nadaljnje delo
Med razvojem prakticno uporabnega sistema za priporocanje smo spoznali, da obstaja
nekaj izboljsav, s katerimi bi morda izboljsali rezultate priporocanja ali pa vpeljali
nove funkcionalnosti. Trenutno razvit sistem nima podpore za splosno priporocanje,
kar bi bilo mozno, ce bi dokumente grucili nato pa na podlagi uporabniskih aktivnosti
klasificirali uporabnika v ustrezno gruco. Prav tako bi morda izboljsali rezultate z
uporabo hibridne funkcije razvrscanja, kjer bi uporabili kombinacijo BM25 in LSA.
Nazadnje smo ugotovili, da bi rezultati nasega sistema za priporocanje lahko bili vhod
tudi za druge aplikacije kot tudi sestavni del v delovnem toku teh aplikacij.
7.1 Pomensko grucenje
Pomensko grucenje dokumentov je postopek zdruzevanja podobnih dokumentov na
podlagi semantike. Rezultat so gruce dokumentov s podobno tematiko. Gre torej
za klasicne postopke grucenja, ki za metriko razdalje uporabljajo mero pomenske
podobnosti. S postopkom pomenskega grucenja lahko torej tvorimo gruce podobnih
dokumentov, lahko pa na podlagi teh gruc zgradimo pomensko hierarhijo. V nasem
sistemu bi pomensko grucenje uporabili za tvorbo gruc podobnih dokumentov, v
katere bi nato uvrscali uporabnike. Sklepamo, da bo uporabnik zelel videti podobne
dokumente z enako tematiko in da bi z uporabo gruc lahko izvedli boljse priporocanje.
Gruce bi tvorili recimo z algoritmom Lingo, ki je namenski algoritem za pomensko
grucenje dokumentov.
7. Ideje za nadaljnje delo 63
7.1.1 Algoritem Lingo
Leta 2004 so avtorji Osınski, Stefanowski in Weiss predstavili algoritem Lingo [21,
20], ki sluzi grucenju zadetkov pri iskalnikih. Kot stranski produkt je bil razvit
tudi iskalnik Carrot2, ki lahko isce z iskalniki kot so Google, Bing in Yahoo!, vrne
pa zadetke zdruzene na podlagi semantike. Lingo deluje na podlagi singularnega
razcepa, njegova dobra lastnost pa je, da vsaki gruci kot oznako dodeli uporabniku
prijazno frazo. Vsaka taksna fraza se smatra kot reprezentativna fraza za tisto gruco
in pomensko predstavlja vse dokumente v pripadajoci gruci. Algoritem je podrobneje
predstavljen v [21], kjer je podan tudi psevdokod. Ta pristop ima dve glavni slabosti.
Zaradi racunanja singularnega razcepa za veliko mnozico dokumentov je postopek
casovno zelo zahteven. Prav tako algoritem veliko stevilo dokumentov uvrsti v gruco
z oznako Drugo. Za resitev slednjega problema bi lahko gruco z oznako Drugo dalje
delili na podgruce. Nakar bi iskali podobnosti z ze obstojecimi grucami. Ce bi nasli
dovolj podobno gruco, bi gruci zdruzili. Postopek je dan v nadaljevanju:
Algoritem 6 Pomensko grucenje
1: function Semantic-Clustering(D, nmaxDrugo, imax)2: C ← Lingo(D) // Prvo grucenje3: nDrugo ← C[Drugo].Stevilo4: i← 05: Ctmp ← C // Nadaljnje grucenje nad gruco z oznako Drugo6: while nDrugo > nmaxDrugo and i < imax do7: Ci ← Lingo(Ctmp[Drugo].Documents)8: for c ∈ Ci do9: if ∃C[L] : L = c.Label then
10: C[L] = C[L] ∪ c // Zdruzevanje gruc s podobnimi oznakami11: end if12: end for13: Ctmp ← Ci[Drugo]14: nDrugo ← Ctmp.Count15: i← i+ 116: end while17: return C18: end function
7. Ideje za nadaljnje delo 64
7.2 Klasifikacija uporabnika
Ko imamo enkrat zbrane informacije o uporabnikovih aktivnostih, lahko zanj zgra-
dimo profil. Belezimo lahko katere dokumente si je uporabnik ogledal. Uporabniski
profil tako vsebuje identifikatorje dokumentov in stevilo uporabnikovih ogledov ti-
stega dokumenta. Nasa zelja je, da bi sedaj uporabnika na podlagi njegovega profila
klasificirali in s tem povezali z gruco dokumentov, ki so najbolj podobni tistim, ki
si jih je ze ogledal. Pristop, ki bi ga lahko uporabili za to je zelo preprost. Za
vsako gruco, ki je na voljo, vodimo stevce ogledov. Nato gremo skozi vse dokumente
v uporabnikovem profilu in pogledamo stevilo ogledov. Ker imamo podatek kateri
dokument spada v katero gruco, lahko povecamo stevec gruce za stevilo ogledov, ki
pripadajo dokumentu iz gruce. Na koncu dobimo gruco z najvec ogledi in jo priredimo
uporabniku. Iz te gruce nato uporabniku nudimo splosne priporocitve, saj sklepamo,
da so dokumenti iz te gruce interesantni zanj. Sklep je upravicen na podlagi stevila
ogledov dokumentov iz te gruce. Potek klasifikacije je dan v 7. Ta postopek bi se
izvajal periodicno, saj moramo upostevati novejse uporabnikove aktivnosti. Zaradi
tega se lahko zgodi tudi, da se cez cas uporabniku dodeli druga gruca. Hkrati lahko
dodamo tudi casovno komponento, ki sluzi kot utez. Taksen pristop bi scasoma dajal
manjso veljavo dokumentom, ki so bili ogledani zelo dolgo nazaj. To bi bilo smiselno,
saj se lahko zgodi tudi, da dolocena tema uporabnika zanima le kratek cas. Zaradi
tega uporabniku ne zelimo priporocati stvari, ki ga trenutno ne zanimajo in se raje
zanesemo na njegove najbolj aktualne oglede dokumentov.
Algoritem 7 Klasifikacija uporabnika
1: procedure User-Classification(U , C)2: for u ∈ U do3: acc← array(Count, 0, C.Size)4: UC ← C[u]5: for c ∈ UC do6: acc[c].Count← acc[c].Count+ u.Document[c].V iews7: end for8: (cmax, imax)← max acc9: update(U , u, cmax, imax)
10: end for11: end procedure
7. Ideje za nadaljnje delo 65
7.3 Uvedba hibridne funkcije razvrscanja
V poglavjih 3 in 4 smo podrobneje spoznali dva pristopa merjenja podobnosti med do-
kumenti. Ugotovili smo, da je BM25 zelo hitra, preprosta in ucinkovita metoda, hkrati
pa omogoca spremembo delovanja glede na vhodna parametra k1 in b. Prav tako smo
ugotovili da je LSA zelo dobra izbira, ko gre za zaznavanje sinonimov. Tezava LSA
je v tem, da obdelava na veliki kolicini podatkov traja zelo dolgo, kar pa ne zelimo,
saj zelimo v dolocenem casovnem okviru izracunati podobnosti. Tako imamo dve
omejitvi; zadovoljivo hiter izracun podobnih dokumentov in kvalitetno mero podob-
nosti, ki dobro zaznava sinonime. Resitev obstaja v uporabi tako BM25 kot LSA pri
razvrscanju dokumentov, ki bi skupaj tvorili hibridno funkcijo razvrscanja.
Slika 7.1: Delovanje hibridne funkcije razvrscanja. Z BM25 izberemo podobne dokumenteiz podatkovne baze, z LSA pa jih bolje razvrstimo po podobnosti.
Dejstvo je, da ob priporocanju ponavadi vracamo le manjse stevilo dokumentov -
ponavadi do 15. Prav tako se izkaze, da ob tem stevilu vrnjenih dokumentov, BM25
zajame veliko vecino dokumentov, ki so ustrezni, vendar so v rezultatu zaradi slabsega
zaznavanja sinonimov uvrsceni nizje. Tako ne dobimo vedno najbolj primernega re-
zultata s stalisca semantike, saj sinonimom zaradi narave BM25 ne dajemo dovolj
teze. Obenem lahko opazimo, da smo sedaj zmanjsali mnozico podatkov iz vec tisoc
dokumentov na nekaj deset. Da bi dvignili pomembnost sinonimom, lahko sedaj upo-
rabimo LSA nad to manjso mnozico podatkov. To bo delovalo hitro, saj je mnozica
7. Ideje za nadaljnje delo 66
majhna, hkrati pa bo ze obstojec seznam priporocenih dokumentov bolje razvrscen
zaradi upostevanja sinonimov. Pristop torej tvorita dve fazi (slika 7.1). V prvi fazi
se z BM25 izbere mnozica dokumentov, ki imajo najboljso podobnost z zahtevo, v
drugi fazi pa se z LSA dodatno razvrsti dokumente v mnozici tako, da se upostevajo
sinonimi.
Gre torej za grobo filtriranje z BM25 in naknadno fino razvrscanje z LSA. Hibridna
funkcija razvrscanja je odvisna od parametrov BM25 in LSA hkrati, saj jih podeduje
zaradi uporabe obeh metod. Zapisimo formalno definicijo za BM25 in LSA, nato pa
se za hibridno funkcijo razvrscanja. Najprej definirajmo relacijo ∼, ki predstavlja po-
dobnost med dvema dokumentoma. BM25 bomo predstavili kot funkcijo f (enacba
7.1), ki slika iz vhodnega dokumenta x in mnozico parametrov P v mnozico doku-
mentov D, iz katere so vsi podobni dokumentu x. Analogno storimo za LSA (funkcija
g, enacba 7.2), le da tukaj nastopa parameter redukcije ranga k, ki ga bomo zaradi
podobnosti s parametrom k1 oznacevali z r.
f : (x, P ) 7→ D, ∀d ∈ D : d ∼ x, P = {k1, b} (7.1)
g : (x, r) 7→ D, ∀d ∈ D : d ∼ x (7.2)
Hibridno funkcijo razvrscanja h lahko formalno zapisemo kot kompozitum funkcij g
in f (enacba 7.3) pri dokumentu x in mnozici parametrov P . Funkcija h (enacba 7.4)
slika iz vhodnega dokumenta x in mnozico parametrov P v mnozico dokumentov D,
iz katere so vsi podobni dokumentu x.
h = g ◦ f (7.3)
h : (x, P ) 7→ D, ∀d ∈ D : d ∼ x, P = {k1, b, r} (7.4)
S tako zasnovano funkcijo razvrscanja bi zadovoljili potrebo po priporocanju, ki
uposteva sinonime. Parametra k1 in b lahko optimiziramo kar enako, kot bi ju opti-
mizirali v primeru, ko bi uporabili samo BM25. To je zato, ker se v hibridni funkciji
najprej izvede BM25, ki izbira iz zbirke vseh dokumentov. Tako sta parametra od-
7. Ideje za nadaljnje delo 67
visna od narave dokumentov v zbirki vseh dokumentov. Parametra r pa ne moremo
optimizirati s tradicionalnim pristopom zato, ker gre za reducirano mnozico dokumen-
tov. V LSA ze dobimo mnozico dokumentov, s podobno tematiko, pa tudi dimenzije
vektorskega prostora so premajhne, da bi lahko uporabljali priporocene optimalne
vrednosti podane v [32]. Uporabimo lahko znano razmerje 1:3, ki se uporablja pri
razdelitvi ucne in testne mnozice pri ucenju metod umetne inteligence. Ker je mnozica
dokumentov, ki je vhod v LSA, ze dobro pomensko definirana s strani BM25, lahko
sklepamo, da je tretjina dokumentov dovolj za ohranitev pomenskega bistva tiste
mnozice podobno kot je tretjina ucnih vzorcev dovolj, da se pravilno razpozna te-
stne vzorce. Tako bi pri implementaciji uporabljali vrednost r = n3, kjer je n stevilo
zahtevanih dokumentov v priporocilu.
7.4 Uporaba priporocanja v drugih aplikacijah
Priporocanje dokumentov lahko uporabimo tudi za druge namene. Zaradi narave
rezultata (to je seznam podobnih dokumentov) lahko priporocanje dokumentov uvr-
stimo v delovni tok kot korak obseznejsega procesa. Primer taksnega procesa je
recimo odkrivanje potencialnih plagiatov. Za odkrivanje potencialnih plagiatov nava-
dno delamo primerjave med vsemi dokumenti. Z vkljucitvijo priporocanja dokumen-
tov bi lahko eliminirali dokumente, ki si niso podobni, kar bi zmanjsalo obdelovano
mnozico. S tem bi ustvarili seznam filtriranih dokumentov, katere naj sistem za od-
krivanje potencialnih plagiatov uposteva pri nadaljnji obdelavi. V tem primeru se
torej priporocanje dokumentov obnasa kot filter.
Se ena aplikacija priporocanja bi lahko bila v obliki podpornega orodja za studente pri
izbiri mentorja za diplomske, magistrske in doktorske naloge. Student bi v aplikacijo
vpisal kljucne besede iz podrocja, ki ga zanima, aplikacija pa bi med diplomskimi, ma-
gistrskimi in doktorskimi nalogami nasla najbolj ustreznega mentorja. To bi potekalo
tako, da bi najprej poiskali dokumente, ki so podobni vhodnim kljucnim besedam,
nato pa bi presteli kolikokrat se mentorji pojavljajo v seznamu. V primeru izenacenja,
bi lahko uporabili se dodatno utez glede na to kateri dokument ima najvecjo podob-
nost z vhodnimi kljucnimi besedami.
Zakljucek
V tem magistrskem delu smo s stirimi hipotezami utemeljili tezo o razvoju in ana-
lizi delovanja sistema vsebinskega priporocanja dokumentov pri razlicnih obdelavah
vhodnega besedila. Pokazali smo, da se uporaba besednih zvez bolje obnese kot upo-
raba besed pri obdelavi zbirke besedil, v kateri zelimo najti podobne dokumente. Z
uporabo lematizacije pri obdelavi smo pokazali, da se uspesnost iskanja podobnih do-
kumentov poveca, saj s tem ohranimo vec pomenskih informacij v opisu dokumentov.
To je se posebej uspesno, kadar gre za morfolosko bogate jezike kot je tudi sloven-
ski jezik. Pokazali smo tudi, da avtomatsko pridobivanje kljucnih besed s pomocjo
pomenskega oznacevanja dodatno in hkrati ustrezno obogati pomensko informacijo
o vsebini dokumenta. Implicitno smo tudi pokazali, da je mogoce izvajati vsebin-
sko priporocanje z dobrimi rezultati ze z minimalnim naborom pomenskih informacij
- to so naslovi in kljucne besede. Nazadnje smo se pokazali, da uporaba sistema
priporocanja na zbirki dokumentov kot je DKUM pripomore k izboljsanju statistike
obiska v smislu zmanjsanja odbojne stopnje. Hkrati smo ugotovili, da se cas obiska
ne spremeni, potrebna pa je podrobnejsa analiza, da bi to hipotezo lahko v popolnosti
potrdili ali ovrgli. S tem ugotavljamo, da teza magistrskega dela utemeljuje zadane
hipoteze.
Nadaljnje raziskovalno delo na obravnavanem podrocju bi lahko obsegalo preucevanje
hibridne funkcije razvrscanja, opisane v zadnjem poglavju tega magistrskega dela.
Ta temelji na pomenskih informacijah pridobljenih iz sinonimov s pomocjo latentne
semanticne analize. Dokumente bi lahko tudi pomensko grucili in jih predstavili kot
vozlisca v grafu, kjer bi nato razvijali metriko vsebinske podobnosti.
Literatura
[1] P. Melville, V. Sindhwani, Recommender Systems, Encyclopedia of Machine Le-
arning, Springer, 829-838, 2010.
[2] F. Ricci, L. Rokach, B. Shapira, Introduction to Recommender Systems Han-
dbook, Recommender Systems Handbook, Springer, 1-35, 2011.
[3] J. Brezovnik, Programsko orodje za procesiranje besedil v naravnem jeziku, Ma-
gistrsko delo, Fakulteta za elektrotehniko, racunalnistvo in informatiko Maribor,
Univerza v Mariboru, 2009.
[4] J. Brezovnik, M. Ojstersek, TextProc - a natural language processing framework
and its use as plagiarism detection system, International Journal of Education
and Information Technologies, 1(5):293-300, 2011.
[5] M. Ferme, Zasnova poosebitvenega streznika, Diplomsko delo, Fakulteta za elek-
trotehniko, racunalnistvo in informatiko Maribor, Univerza v Mariboru, 2008.
[6] G. Hrovat, Izdelava oblikoslovnega oznacevalnika za slovenski jezik in primerjava
z drugimi resitvami, Diplomsko delo, Fakulteta za elektrotehniko, racunalnistvo
in informatiko Maribor, Univerza v Mariboru, 2010.
[7] D. Kolar, Dolocanje uporabniskega profila z analizo klikov, Diplomsko delo, Fa-
kulteta za elektrotehniko, racunalnistvo in informatiko Maribor, Univerza v Ma-
riboru, 2011.
Literatura 70
[8] M. Burjek, Wikifikacija vsebin v digitalni knjiznici UM, Diplomsko delo, Fakul-
teta za elektrotehniko, racunalnistvo in informatiko Maribor, Univerza v Mari-
boru, 2011.
[9] G. Adomavicius, A. Tuzhilin, Toward the Next Generation of Recommender Sy-
stems: A Survey of the State-of-the-Art and Possible Extensions, IEEE Transac-
tions on Knowledge and Data Engineering, 17(6):734-749, 2005.
[10] D. Lemire, A. Maclachlan, Slope One Predictors for Online Rating-Based Colla-
borative Filtering, Proceedings of SIAM Data Mining (SDM’05), 471-475, 2005.
[11] B. Mobasher, Effective Personalization Based on Association Rule Discovery
from Web Usage Data, Proceedings of the 3rd international workshop on Web
information and data management, 9-15, 2001.
[12] K. V. Lester, M. C. Martiny, Information Retrieval in Document Spaces Using
Clustering, Magistrsko delo, Department of Informatics and Mathematical Mo-
delling, Technical University of Denmark, 2005.
[13] O. E. Zamir, Clustering Web Documents: A Phrase-Based Method for Grouping
Search Engine Results, Doktorsko delo, University of Washington, 1999.
[14] C. Castelluccia, E. de Cristofaro, D. Perito, Private Information Disclosure from
Web Searches (The case of Google Web History), Privacy Enhancing Technolo-
gies, Lecture Notes in Computer Science, Volume 6205/2010, 38-55, 2010.
[15] M. Steinbach, G. Karypis, V. Kumar, A Comparison of Document Clustering
Techniques, KDD Workshop on Text Mining, 2000.
[16] B. Mobasher, Automatic Personalization Based on Web Usage Mining, Commu-
nications of the ACM, 2000.
[17] D. Pierrakos, et. al. Web Usage Mining as a Tool for Personalization: A Survey,
User Modeling and User-adapted Interaction, 13(4):311-372, 2003.
[18] M. Grobelnik, D. Mladenic, Text-Mining Tutorial, predavanje, J. Stefan Insti-
tute, Slovenia, 2004.
Literatura 71
[19] A. Kuhn, S. Ducasse, T. Gırba, Semantic clustering: Identifying topics in source
code, Information and Software Technology, 49(3):230-243, 2007.
[20] S. Osinski, D. Weiss, A Concept-driven Algorithm for Clustering Search Results,
IEEE Intelligent Systems, 20(3):48-54, 2005.
[21] S. Osinski, J. Stefanowski, D. Weiss, Lingo: Search Results Clustering Algorithm
Based on Singular Value Decomposition, 2004, citirano 13.07.2011. Dostopno na
naslovu: http://www.cs.put.poznan.pl/jstefanowski/pub/lingo.pdf
[22] E. Gabrilovich, S. Markovitch, Computing Semantic Relatedness using
Wikipedia-based Explicit Semantic Analysis, Proceedings of the 20th interna-
tional joint conference on Artifical intelligence, 1606-1611, 2007.
[23] E. Garcia, A Tutorial on Okapi BM25, predavanje, 2011, citi-
rano 30.08.2011. Dostopno na naslovu: http://www.miislita.com/
information-retrieval-tutorial/okapi-bm25-tutorial.pdf
[24] E. Garcia, A Tutorial on Okapi Simple BM25F, predavanje, 2011,
citirano 30.08.2011. Dostopno na naslovu: http://www.miislita.com/
information-retrieval-tutorial/okapi-simple-bm25f-tutorial.pdf
[25] Y. Lv, C. Zhai, When documents are very long, BM25 fails!, Proceedings of the
34th International ACM SIGIR Conference on Research and Development in
Information Retrieval, 1103-1104, 2011.
[26] J. L. Vasireddy, Applications of Linear Algebra to Information Retrieval, Magi-
strsko delo, Department of Mathematics and Statistics, Georgia State University,
2009.
[27] S. Deerwester, et. al. Indexing by Latent Semantic Analysis, Journal of the Ame-
rican Society for Information Science, 41(6):391-407, 1990.
[28] S. Dumais, Latent Semantic Analysis, Annual Review of Information Science and
Technology, 38:188-230, 2004.
[29] J. R. Bellegarda, Latent Semantic Mapping [Information Retrieval], Signal Pro-
cessing Magazine, IEEE, 22(5):70-80, 2005.
Literatura 72
[30] J. Flynn, Latent Semantic Indexing Using SVD and Riemannian SVD, preda-
vanje, University of California, Santa Cruz, 2007, citirano 08.09.2011. Dosto-
pno na naslovu: http://classes.soe.ucsc.edu/cmps290c/Spring07/proj/
Flynn_talk.pdf
[31] C. A. Kumar, S. Srinivas, Latent Semantic Indexing Using Eigenvalue Analysis
for Efficient Information Retrieval, International Journal of Applied Mathema-
tics and Computer Science, 16(4):551-558, 2006.
[32] S. Sathiappan, V. P. Gopalan, Finding the Optimal Rank for LSI Models Pro-
ceedings of the International Conference on Advances and Emerging Trends in
Computing Technologies, 2010.
[33] G. Gorrell, B. Webb, Generalized Hebbian Algorithm for Incremental Latent Se-
mantic Analysis, INTERSPEECH-2005, 1325-1328, 2005.
[34] T. Hoffman, Probabilistic Latent Semantic Indexing, Proceedings of the 15th
Conference on Uncertainty in Artificial Intelligence, 289-296, 1999.
[35] Y. Koren, R. Bell, C. Volinsky, Matrix Factorization Techniques for Recommen-
der Systems, Computer 42(8):30-37, 2009.
[36] M. Brand, Fast Online SVD Revisions for Lightweight Recommender Systems,
Proceedings of the 3rd SIAM International Conference on Data Mining, 3:37-46,
2003.
[37] M. Sahlgren, Introduction to Random Indexing Proceedings of the Methods and
Applications of Semantic Indexing Workshop at the 7th International Conference
on Terminology and Knowledge Engineering, 2005.
[38] N. Bosner, Fast Methods for Large Scale Singular Value Decomposition, Doktor-
sko delo, University of Zagreb, Department of Mathematics, 2006.
[39] M. Taylor, et. al. Optimisation methods for ranking functions with multiple para-
meters, Proceedings of the 15th ACM International Conference on Information
and Knowledge Management, 585-593, 2006.
Literatura 73
[40] D. Bollegala, N. Noman, H. Iba, RankDE: Learning a Ranking Function for In-
formation Retrieval Using Differential Evolution, Proceedings of the 13th Annual
Conference on Genetic and Evolutionary Computation, 1771-1778, 2011.
[41] Y. Lv, C. Zhai, Adaptive Term Frequency Normalization for BM25, 20th ACM
Conference on Information and Knowledge Management, 2011.
[42] Y. Lv, C. Zhai, Lower-bounding Term Frequency Normalization, 20th ACM Con-
ference on Information and Knowledge Management, 2011.
[43] Y. Lv, C.Zhai, A Log-logistic Model-based Interpretation of TF Normalization of
BM25, Proceedings of the 34th European Conference on Information Retrieval,
2012.
[44] L. N. Trefethen, D. Bau III, Numerical Linear Algebra, poglavje V/31 - Compu-
ting the SVD, 1997.
[45] B. Plestenjak, Numericna Linearna Algebra, poglavje 4 - Singularni razcep, 2010.
[46] D. A. Grossman, O. Frieder, Information Retrieval: Algorithms and Heuristics,
Springer, 2nd edition, 2004.
Dodatek ALematizacija in LSA
Pristopa LSA v prakticnem delu tega magistrskega dela nismo uporabili zaradi pre-
velike casovne in prostorske zahtevnosti, vendar smo v casu razvoja prakticne resitve
poskusali primerjati LSA in BM25. Pri tem smo naleteli na zanimivo ugotovitev
glede uporabe lematizacije z LSA. Izkaze se, da pri LSA z lematizacijo dobimo slabse
rezultate kot brez lematizacije. Sklepamo, da se v matriki A pojavijo regije, kjer
je vrednost utezi veliko visja od ostalih. To se zgodi zaradi narave utezi tf , ki je
posledicno vecja po vrednosti zaradi lematizacije. LSA deluje po principu filtriranja
suma kar razkrije skrite pomene, z lematizacijo pa ustvarimo dodaten sum, ki ga LSA
ne odstrani, zato se skriti pomeni ne razkrijejo. Direktna posledica lematizacije je tudi
vektorski prostor manjsih dimenzij. Zaradi tega prihaja do zgoscenosti kontekstov,
zaradi katere je tezje zaznati skrite pomene. Tako si razlagamo slabse delovanje LSA,
kadar besedilo predhodno lematiziramo.
Za prikaz razlike delovanja med LSA brez lematizacije in z lematizacijo smo vzeli
zbirko 10 stavkov v slovenskem jeziku in podali smiselno zahtevo. Enkrat smo stavke
lematizirali, drugic pa jih pustili kot so. Nato smo pogledali matriko A (slika A.1),
rekonstruirano matriko Ak za k = 3 (slika A.2), kovariancno matriko cov(A) (slika
A.3), korelacijsko matriko corr(A) (slika A.4) in rezultat LSA v vektorskem prostoru
(sliki A.6 in A.5). Slike potrjujejo sklep o problematicnih regijah, ki se pojavijo zaradi
uporabe lematizacije. Slika matrike A prikazuje vrednosti utezi in razkriva povisanje
njihovih vrednosti ob uporabi lematizacije. Slika rekonstruirane matrike Ak prikazuje
sum, ki ga vnasa uporaba lematizacije. Kovariancna in korelacijska matrika kazeta
A. Lematizacija in LSA 75
vpliv lematizacije na pomenske podobnosti. Sliki situacije v vektorskem prostoru
prikazujeta razliko v kvaliteti rezultata. Uporabili smo zahtevo Spal sem v sobi. in
naslednje stavke:
1. Hotel je placati racun za sobo.
2. Ta hotel ima zelo poceni sobe.
3. Kdor bo hotel, bo spal v hotelu.
4. Vceraj sem spal v hotelu.
5. Iskal sem prenocisce, ki bo poceni.
6. Sobe v tem stanovanju so ogromne.
7. Kdor ne dela, naj ne je.
8. Otroci so v sobi, jaz pa sedim v kuhinji.
9. Kdo se sploh spi v hotelu?
10. Ali je placal racun?
Najbolj podoben stavek zahtevi brez uporabe lematizacije je Kdo se sploh spi v hotelu?
s podobnostjo 0.937, pri uporabi lematizacije pa je to stavek Otroci so v sobi, jaz pa
sedim v kuhinji. s podobnostjo 0.823. Ko nismo uporabili lematizacije smo “ulovili”
pomen (gre za aktivnost spanja v sobi), kot tudi implicitno povezavo hotela s sobo.
Z uporabo lematizacije smo “ulovili” le direktno ujemanje besede soba.
A. Lematizacija in LSA 76
2 4 6 8 10
10
20
30
402 4 6 8 10
5
10
15
20
25
30
Slika A.1: Primerjava matrike A brez lematizacije (levo) in z uporabo lematizacije (desno).Vrednosti utezi so po lematizaciji ponekod visje kot brez nje (oznaceno z rdeco). To se zgodiv primeru kadar imata dve pomensko razlicni besedi enako lemo. Primer tega sta para besed[hotel (stavba), hotel (glagol hoteti)] z lemo hoteti in [je (glagol biti), je (glagol jesti)] zlemo biti. S tem pojavom se prav tako zmanjsa dimenzija vektorskega prostora.
2 4 6 8 10
10
20
30
402 4 6 8 10
5
10
15
20
25
30
Slika A.2: Primerjava k-aproksimacije matrike A brez lematizacije (levo) in z uporabolematizacije (desno). Lematizacija vnasa sum, ki je viden v k-aproksimaciji matrike A.Slednjo izracunamo kot produkt reduciranih matrik, dobljenih s postopkom singularnegarazcepa (Ak = UkΣkV
∗k).
A. Lematizacija in LSA 77
2 4 6 8 10
2
4
6
8
10
2 4 6 8 10
2
4
6
8
10
Slika A.3: Primerjava kovariancne matrike cov(A) brez lematizacije (levo) in z uporabolematizacije (desno). Kovariancna matrika razkriva regije, ki ponazarjajo pomenske podob-nosti (zeleno). Pri uporabi lematizacije te regije niso tako dobro razkrite (rdece).
2 4 6 8 10
2
4
6
8
10
2 4 6 8 10
2
4
6
8
10
Slika A.4: Primerjava korelacijske matrike corr(A) brez lematizacije (levo) in z uporabolematizacije (desno). Podobno kot kovariancna matrika, tudi korelacijska matrika razkrivaregije, ki ponazarjajo podobnosti (zeleno). Vpliv suma je tukaj se malo bolj viden (rdece).
A. Lematizacija in LSA 78
−10
1
−10
1−1
−0.5
0
0.5
1
LSA dimenzija 1
LSA - prikaz vektorjev
(brez lematizacije)
LSA dimenzija 2
LSA
dim
enzija3
ZahtevaDokumenti
Slika A.5: Rezultat LSA brez lematizacije (roza vektor - tesno skupaj z zahtevo) priparametru k = 3. Ker sta vektor zahteve (rdec) in njemu najbolj podoben vektor (roza)tesno skupaj, gre za dober rezultat.
−10
1
−10
1−1
−0.5
0
0.5
1
LSA dimenzija 1
LSA - prikaz vektorjev
(z lematizacijo)
LSA dimenzija 2
LSA
dim
enzija3
ZahtevaDokumenti
Slika A.6: Rezultat LSA z lematizacijo pri parametru k = 3. V primerjavi s sliko A.5opazimo razliko v smereh vektorjev, drugacen (slabsi) pa je tudi najbolj podoben vektor(roza).
A. Lematizacija in LSA 79
Poskusajmo razumeti situacijo s pomocjo analogije: predstavljajmo si vrt fiksne
dolzine in sirine na katerem se nahaja doloceno stevilo roz. Na vrtu se pojavlja
tudi veliko plevela. Roze naj predstavljajo skrite pomene, plevel pa naj predstavlja
sum besedila. Ce zelimo jasno videti roze, moramo plevel odstraniti s sredstvom proti
plevelu. V nasem primeru je sredstvo proti plevelu redukcija ranga matrike, ki deluje
kot filter. Ko odstranimo plevel, se roze jasno vidijo. Postopek lematizacije je ekvi-
valenten zgoscevanju kolicine plevela na dolocenih delih vrta. Sredstvo proti plevelu
zaradi vecje gostote plevela ne deluje vec tako efektivno, zato na vrtu ostaja vec ple-
vela. Posledicno se tudi roze ne vidijo vec tako jasno, saj jih plevel zakriva. Vidimo
torej, da se z uporabo lematizacije skriti pomeni ne prepoznajo vec tako dobro, kot
ce lematizacije ne uporabimo.
Dodatek BPorocila Google Analytics
B.1 Porocilo o odbojni stopnji med 2010 in 2012
B.2 Porocilo o stevilu ogledov med 2010 in 2012
B.3 Porocilo o povprecnem casu obiskov med 2010 in 2012
B.4 Porocilo o primerjavi odbojnih stopenj za obdobje maj -
junij v letih 2011 in 2012
http://dkum.unimb.si http://dkum.u…dkum.unimb.si [DEFAULT]
© 2012 Google
Language Visits % Visits
1. sl 1,506,865 75.60%
2. enus 387,845 19.46%
3. en 38,724 1.94%
4. engb 22,648 1.14%
5. slsi 8,648 0.43%
6. hr 6,148 0.31%
7. de 6,077 0.30%
8. it 2,776 0.14%
9. sr 2,179 0.11%
10. hrhr 1,787 0.09%
view full report
Overview
991,654 people visited this site
Visits: 1,993,314
Unique Visitors: 991,654
Pageviews: 8,146,441
Pages / Visit: 4.09
Avg. Visit Duration: 00:02:46
Bounce Rate: 47.97%
% New Visits: 49.74%
50.18% Returning Visitor1,000,224 Visits
49.82% New Visitor993,089 Visits
0.00% Other1 Visits
Bounce Rate
July 2010 October 2010 January 2011 April 2011 July 2011 October 2011 January 2012 April 2012
30%30%30%
60%60%60%
% of visits: 100.00%
Visitors Overview May 1, 2010 Jun 30, 2012
http://dkum.unimb.si http://dkum.u…dkum.unimb.si [DEFAULT]
© 2012 Google
Language Visits % Visits
1. sl 1,506,865 75.60%
2. enus 387,845 19.46%
3. en 38,724 1.94%
4. engb 22,648 1.14%
5. slsi 8,648 0.43%
6. hr 6,148 0.31%
7. de 6,077 0.30%
8. it 2,776 0.14%
9. sr 2,179 0.11%
10. hrhr 1,787 0.09%
view full report
Overview
991,654 people visited this site
Visits: 1,993,314
Unique Visitors: 991,654
Pageviews: 8,146,441
Pages / Visit: 4.09
Avg. Visit Duration: 00:02:46
Bounce Rate: 47.97%
% New Visits: 49.74%
50.18% Returning Visitor1,000,224 Visits
49.82% New Visitor993,089 Visits
0.00% Other1 Visits
Pageviews
July 2010 October 2010 January 2011 April 2011 July 2011 October 2011 January 2012 April 2012
250,000250,000250,000
500,000500,000500,000
% of visits: 100.00%
Visitors Overview May 1, 2010 Jun 30, 2012
http://dkum.unimb.si http://dkum.u…dkum.unimb.si [DEFAULT]
© 2012 Google
Language Visits % Visits
1. sl 1,506,865 75.60%
2. enus 387,845 19.46%
3. en 38,724 1.94%
4. engb 22,648 1.14%
5. slsi 8,648 0.43%
6. hr 6,148 0.31%
7. de 6,077 0.30%
8. it 2,776 0.14%
9. sr 2,179 0.11%
10. hrhr 1,787 0.09%
view full report
Overview
991,654 people visited this site
Visits: 1,993,314
Unique Visitors: 991,654
Pageviews: 8,146,441
Pages / Visit: 4.09
Avg. Visit Duration: 00:02:46
Bounce Rate: 47.97%
% New Visits: 49.74%
50.18% Returning Visitor1,000,224 Visits
49.82% New Visitor993,089 Visits
0.00% Other1 Visits
Avg. Visit Duration
July 2010 October 2010 January 2011 April 2011 July 2011 October 2011 January 2012 April 2012
00:02:3000:02:3000:02:30
00:05:0000:05:0000:05:00
% of visits: 100.00%
Visitors Overview May 1, 2010 Jun 30, 2012
http://dkum.unimb.si http://dkum.u…dkum.unimb.si [DEFAULT]
May 1, 2012 Jun 30, 2012
May 1, 2011 Jun 30, 2011
% Change
May 1, 2012 Jun 30, 2012
May 1, 2011 Jun 30, 2011
% Change
May 1, 2012 Jun 30, 2012
May 1, 2011 Jun 30, 2011
% Change
May 1, 2012 Jun 30, 2012
May 1, 2011 Jun 30, 2011
Language Visits % Visits
1. sl
149,718 75.79%
119,183 75.05%
25.62% 0.98%
2. enus
37,199 18.83%
32,355 20.37%
14.97% 7.58%
3. en
4,272 2.16%
2,568 1.62%
66.36% 33.73%
4. engb
1,857 0.94%
1,928 1.21%
Overview
122,394 people visited this site
Visits: 24.40%197,550 vs 158,805
Unique Visitors: 21.46%122,394 vs 100,769
Pageviews: 9.05%725,164 vs 664,973
Pages / Visit: 12.34%3.67 vs 4.19
Avg. Visit Duration: 12.56%00:02:33 vs 00:02:55
Bounce Rate: 4.01%48.82% vs 46.94%
% New Visits: 5.03%45.44% vs 47.85%
54.49% Returning Visitor107,653 Visits
45.51% New Visitor89,897 Visits
Bounce Rate Bounce Rate
May 8 May 15 May 22 May 29 Jun 5 Jun 12 Jun 19
30%30%30%
60%60%60%
change in % of visits: +0.00%
Visitors Overview May 1, 2012 Jun 30, 2012Compare to: May 1, 2011 Jun 30, 2011
∼ Usus magister est optimus ∼
(Vaja dela mojstra)