Läskurs: Dimensionsreducerande vektorrumsmetoder

Läskurs:
Dimensionsreducerande vektorrumsmetoder för språkbehandling
Jonas Sjöbergh
KTH Nada
SE-100 44 Stockholm, Sweden
[email protected]
Magnus Rosell
KTH Nada
SE-100 44 Stockholm, Sweden
[email protected]
Abstract
Detta är en kort rapport om vår läskurs om Latent
Semantic Analysis (LSA) eller Latent Semantic Indexing (LSI), samt Random Indexing (RI) och Random Mapping (RM).
1 Kursens utveckling
Vi ville prova LSA. Därför implementerade vi det
m.h.a. ett matematikpaket som tillhandahåller Singular Value Decomposition (SVD).
Senare har vi fått tillgång till en äldre version
av ett numera kommersiellt LSI-paket från Leif
Grönqvist, som han själv använder i sin LSAforskning.
Vi har även använt och förbättrat Martin Hassels
Java-implementation av RI.
2 Teori
De tre metoder vi studerat har mycket gemensamt,
men skiljer sig åt en hel del. LSA och RM utgår
från en matris, ofta med termer och dokument, och
reducerar matrisen medan RI bygger sin vektorrepresentation med få dimensioner från början. Alla
metoderna har som mål att reducera antalet dimensioner i representationen av de objekt som behandlas, för det mesta ord och dokument.
LSA är en optimal dimensionsreducering av den
ursprungliga matrisen avseende kvadratavståndet
till de ursprungliga vektorerna, medan RM är en
slumpmässig dimensionsreducering som visar sig
vara nära nog optimal. De i LSA resulterande dimensionerna är de viktigaste dimensionerna (som
svarar för så stor del av variansen i datat som
möjligt), medan man i RM får ett antal godtyckliga dimensioner.
RI och RM bygger båda två på observationen att
slumpvektorer i en mångdimensionell rymd är nära
nog ortogonala. RI ger varje ord en gles slumpvektor som tack vare detta förhållande blir i princip
unik. RM projicerar hela term-dokument-matrisen
på en slumpmässig bas som av samma anledning
blir nästan ortogonal.
I sammanhanget vill vi också passa på att beskriva ytterligare en relaterad metod, HAL – Hyperspace Analogous to Language.
2.1
Latent Semantic Analysis
LSA (Latent Semantic Analysis) är en metod för att
upptäcka vilka ord som är relaterade till vilka andra
ord.
Grundidén är att om ord X och ord Y ofta
förekommer i samma sammanhang så är de relaterade. Om ord Y och ord Z också ofta förekommer
gemensamt är förmodligen X och Z också relaterade.
Ursprungligen användes LSA för att få ökad
täckning i sökmotorer (Dumais et al., 1988). Idén
var att det inte räcker att söka efter endast dokument
med orden i sökfrågan utan man ville expandera
sökfrågan automatiskt. I detta sammanhang brukar
metoden kallas LSI (Latent Semantic Indexing) och
den har visat sig kunna förbättra resultaten. (Faktum är att de flesta försök att inkorporera någon
form av disambiguering av ords betydelse i informationssökning gett dåliga resultat medan statistiska metoder som tittar på samförekomst visats kunna
tillföra något.(Sanderson, 2000))
För att hitta relaterade ord ställer man upp en matris med frekvenser, med ord i den ena dimensionen och kontexter i den andra. Kontexten är ofta
dokument, dvs vi får den vanliga term-dokumentmatrisen från informationssökning. Sen gör man
singulärvärdesfaktorisering (SVD, Singular Value
Decomposition) och krymper antalet dimensioner.
En bra egenskap hos SVD är att den bevarar avstånden mellan ord (definerat som tex cosinus av
vinkeln mellan dem) i den meningen att om det var
längre mellan A och B än mellan B och C så kommer det fortfarande vara längre mellan A och B efter reduktionen. En mindre bra egenskap är att det
är beräkningsmässigt tungt att utföra SVD om man
inte går ner till väldigt få dimensioner.
Det finns diverse varianter på ovanstående metod,
tex:
• frekvenserna kan viktas på olika sätt1
• man kan använda andra dimensioner än
just ord och dokument (ord och ord som
förekommer inom X ord därifrån är ett exempel)
• antalet dimensioner man reducerar till varierar
också.
LSA kan användas till lite av varje. Det är vanligt
att man använder det för att försöka hitta synonymer, eftersom synonymer kommer att betraktas som
väldigt lika enligt LSA. Dock är det många sorters
relationer mellan ord som har denna egenskap, och
det är ofta svårt att (automatiskt) se precis vilken
relation två ord har som gör att de anses lika.
Värt att notera för LSA kan vara att matrisen man
börjar med ofta är väldigt gles. Efter SVD är det i
princip inte några element alls som har värdet 0.
2.2
LSA, SVD, PCA, FA - Vad är skillnaden?
LSA använder sig av SVD som är en utvidgning
av PCA (Principal Component Analysis) för ickekvadratiska matriser. PCA hittar de dimensioner, i
tur och ordning, som svarar för störst del av variansen i datat (ibland räcker färre dimensioner än man
hade från början för att fullständigt förklara data).
FA (Factor Analysis) baseras också på PCA. Här
används en människas omdöme för att modifiera resultatet så att dimensionerna blir mer intuitiva under det att man söker hålla den förklarade variansen
konstant. (Oakes, 1998)
2.3
Random Indexing
En metod som liknar LSA men som inte är fullt så
beräkningstung, och som dessutom sägs vara baserad på teorier om hur hjärnan fungerar, är Random
Indexing (RI).
I RI utgår man inte från en matrisen, utan
bestämmer sig på förhand för att använda ett visst
antal dimensioner, typiskt 2000. Man ger varje kontext en (gles) vektor i denna nya rymd. En kontext
är oftast ett annat ord som förekommer i närheten,
men det kan lika gärna vara ett dokument som i normalfallet för LSA. Varje ord erhåller sen en kontextvektor som är summan2 av vektorerna för kontexterna det förekommer i. Ord med liknande kontextvektorer (mätt med något avståndsmått) förekommer i
liknande sammanhang och kan antas vara relaterade.
1
I (Berry et al., 1995) hävdas att den bästa viktningen är
logaritmisk lokal vikt och en entropibaserad global vikt.
2
Summeringen av kontexterna är ofta viktad så att kontexter
längre från ordet bidrar mindre.
Ordet ”random” i RI kommer ifrån att man oftast slumpar ut vilken vektor en viss kontext får
(men den får naturligtvis samma vektor vid varje
förekomst). Ofta brukar man välja att använda glesa
vektorer, med tex åtta element av 2000 nollskiljda,
fyra element med värde ett och fyra med minus ett.
Det går förstås lika bra att inte ha slump, t.ex.
kan man ha en hash-funktion istället. Huvudsaken
är att man får ”nästan” linjärt oberoende vektorer,
vilket får till följd att de enskilda orden får genomslag i kontextvektorerna. Glesa slumpvektorer i en
mångdimensionell rymd tenderar att vara nära nog
ortogonala.
Naturligtvis kan man även konstruera en modell
med helt unika vektorer (tex unära vektorer så att
första ordet får en vektor med en etta i första positionen och nollor i övrigt, den andra en ett i andra
positionen etc) för varje ord, men då missar man en
av poängerna – dimensionsreduceringen.
Som tidigare nämnts varierar vad man anser vara
en kontext. Även olika viktningsförfaranden och parameterval (t.ex. längden på vektorerna) är möjliga.
Precis som för LSA är det ofta oklart vilka ord som
har vilken sorts relation till varandra även om man
vet att de är relaterade på något sätt. Olika parameterval kan favorisera olika sorters relationer, ett enkelt exempel är att smala fönster som kontext ger
syntaktisk likhet, medan breda fönster ger semantiskt relaterade ord.
2.4 Random Mapping
Random Mapping (RM) använder samma iakttagelse som RI; det finns många nästan ortogonala vektorer i en mångdimensionell rymd. En uppsättning
slumpmässiga vektorer är därför ofta en tillräckligt
god approximation av en bas. Detta avsnitt baseras
på (Kaski, 1998).
RM är en projektion till ett underrum. Om n ∈
N är den ursprungliga representationen av ett objekt och R är en d × N -slumpmatris med normaliserade kolumner, där d < N , ger oss projektionen:
x = Rn,
(1)
den nya representationen.
Likheten mellan objekten i den nya representationen följer likheten mellan dem i den ursprungliga.
Avvikelsen blir statistiskt (över flera slumpprojektioner) allt mindre ju fler dimensioner som används
i den nya representationen.
Denna metod är mycket snabb jämfört med LSA
(SVD); vi behöver bara göra matrismultiplikationer.
Vi förlorar emellertid den rangordning av de nya dimensionerna som LSA (SVD) ger oss. Vi vet inget
om hur de förhåller sig var och en till fördelningen
i den ursprungliga rymden, bara att de tillsammans
ger en god approximation.
Om vi inte är intresserade av de enskilda dimensionernas bidrag till approximationen är den här metoden att föredra.
2.5
LSA – RI
“Latent” i Latent Semantic Analysis syftar på att
man med hjälp av metoden anses hitta latenta semantiska relationer; ord som inte är enkelt relaterade. Term-dokument-matrisen erbjuder en möjlighet
att jämföra ord på samma sätt som texter kan
jämföras. Här missar man att ord som är relaterade
till ett gemensamt ord utan att vara direkt relaterade
kan anses relaterade (se inledningen på avsnitt 2.1).
Både LSA och RI försöker hitta sådana latenta
samband men baseras på underliggande mer eller
mindre uttalade antaganden. Om man använder helt
unika vektorer i RI kommer ord att anses relaterade
bara om de delar minst ett ord i sina totala kontexter. Då man använder kortare slumpmässiga ej unika vektorer lägger man på ett brus som får till följd
att vissa ord anses relaterade även om de inte delar
något ord i sina kontexter.
LSA projicerar term-vektorerna från termdokument-matrisen (eller dokument-vektorerna
beroende på vad man är intreserad av) på ett underrum så att kvadrat-avståndet minimeras. Exakt
den bas som åstadkommer detta väljs alltså för
projektionen och ingen annan, tex slumpmässig
som i Random Mapping. Därför kommer ord som
ligger nära de mest varianta riktningarna (de som
i underrummet fungerar som basriktningar) i den
ursprungliga term-dokument-matrisen att betraktas
som relaterade även om de inte delar gemensamma
ord i sina kontexter (dokument i LSA). I LSA utgår
man alltså från, till skillnad från i RI, att det finns
latent semantisk information i ordens fördelningar
över dokumenten även om det inte finns någon
direkt koppling via gemensamma ord.
LSA och RI relaterar alltså båda ord som inte
har en direkt koppling via gemensamma ord. RI på
grund av att metoden infört brus och LSA på grund
av att man valt ett specifikt underrum.
Den här skillnaden spelar nog oftast ingen större
roll. Detta underbyggs av att Random Mapping och
LSA verkar ge fullständigt likvärdiga resultat (se
avsnitt 2.4). Random Indexing och Random Mapping är väldigt lika.
Både LSA och RI (och även Random Mapping) har parametrar som måste väljas, främst
kanske dimensionen på vektorerna. Empiriska undersökningar har visat att LSA fungerar bäst vid
100-200 dimensioner och RI vid knappt 2000. Vi
har inte hittat någon förklaring till varför just dessa
värden fungerar bäst.
2.6 Hyperspace Analogous to Language
Vi passar på att beskriva en relaterad metod som liksom LSA använts till allt möjligt: HAL, eller Hyperspace Analogous to Language (Lund et al., 1995).
Här bygger man upp en ord-ord-matris samtidigt
som man går igenom textmängden. Man bestämmer
sig för ett kontextfönster, tex 10 ord före och 10 ord
efter varje ord. Om ord a föregår ett ord b ökar man
värdet3 av elementet i a:s kolumn och b:s rad, så att
b:s rad representerar hur alla ord används före b. På
motsvarande sätt låter man b:s kolumn representera
hur alla ord används efter b.
Ord representeras sedan av en vektor bestående
av sina båda vektorer (kolumn och rad) efter varandra. Dimensionsreducering av denna åstadkoms genom att bara behålla de dimensioner som har högst
varians. I (Lund et al., 1995) reduceras 140 000 dimensioner till 200 på detta vis, eftersom variansen
är mycket låg i de borttagna.
3 Experiment
Följande experiment har skett under kursens gång.
3.1 LSA för sångtexter
En kort (och därför inte så värst bra) implementation
av LSA skrevs ihop. Det mesta man behöver finns
i diverse färdiga programmeringsbibliotek. Vår implementation använde LAPACK, då den finns på
Nada med extra optimeringar för Sun-hårdvara. Implementationen testades sen på sångtexter från engelskspråkig populärmusik, som laddades ned från en
webbsajt med sångtexter.
En ord-sång-matris ställdes upp. Sedan kunde
man välja hur många dimensioner LSA skulle reducera till och man kunde använda programmet för
att se:
• vilka ord som var relaterade till vilka (”vanlig”
LSA)
• vilka sånger som var relaterade (”vanlig” LSA)
• vilka sånger som bäst passade till ett ord (vanlig sökmotor, med LSA-expanderad sökfråga)
• vilka ord som var mest relevanta för en
sång (sökmotor på andra ledden, med LSAexpanderad sökfråga)
Då LSA ger lite oväntade kopplingar kunde man
t.ex. få veta att Beatles och Destiny’s Child är ungefär samma sak, eftersom båda har framfört sånger
3
Tex proportionellt mot inversen av avståndet dem emellan.
med hög frekvens av ordet ”night”. Experimentet
var mer roligt än praktiskt användbart.
3.2
Kontextkänslig uppdelning av
sammansättningar
I tidigare experiment användes en metod för uppdelning av sammansatta ord som prioriterade uppdelningar vars ordled förekom som ord i närheten
av sammansättningen. Den metoden fungerade inte
speciellt bra, eftersom ordled sällan förekom i kontexten vare sig från korrekta eller felaktiga uppdelningsförslag.
En idé var att leta efter ord i kontexten som var
relaterade till ordleden, istället för att leta efter ordleden själva. Detta prövades med både LSA och RI.
Ordrelationerna byggdes från diverse källor, t.ex.
SUC, NE och nyhetsartiklar. Dock blev resultaten
fortfarande dåliga, p.g.a. att relationerna kunde vara
av väldigt konstig art.
Så småningom framkom att om man använder
en heuristik för att gallra bort många uppdelningsförslag som med hög sannolikhet är fel kan
man med gott resultat använda kontextmetoden för
att avgöra resterande tvetydigheter. Om man då
även lägger till RI blir resultatet ännu bättre.
De uppdelningsförslag man framförallt vill gallra
bort tidigt är de med väldigt många ordled. RI och
LSA hittar för sådana nästan alltid något ordled som
av någon anledning är starkt kopplat till den nuvarande kontexten. Tillsammans med en heuristik för
detta finns alltså en praktisk tillämpning där RI är
användbart, vilket är trevligt. Tyvärr är RI tämligen
resurskrävande jämfört med andra metoder för uppdelning av sammansättningar, så i praktiken låter
man nog ändå gärna bli att använda RI för detta.
3.3
Högskoleprovets ORD-del med Random
Indexing
Det är populärt att använda LSA och liknande metoder för att lösa TOEFL-test (Test Of English as a
Foreign Language). De delar av proven man löser då
är synonymfrågor av typen ”i meningen bla bla, vilket av följande alternativ är det bästa ordet att ersätta
ord X med?” (det finns även andra typer av uppgifter
på TOEFL-testen). På det svenska högskoleprovet
finns liknande frågor (ORD-delen). Vi har provat RI
för att göra denna del av provet (det har blivit en
labb i språkteknologikursen).
Varje fråga i ORD-delen består av ett ord och fem
möjliga synonymer. Testdeltagaren ska ange vilket
av alternativen som är “mest synonymt”.
För att få tag på lämpliga texter har vi använt
Googles API för Java. För alla ord i testet4 gjorde
vi en sökning och skapade med hjälp av resultatet
två textmängder:
• mängd1 - alla snippetar från de 20 första
söksvaren (då så många fanns för ordet).
• mängd2 - hela texter från de 10 första
söksvaren från Googles cacheminne (då så
många fanns för ordet).
Vi plockade bort html-taggar så gott det gick och
lemmatiserade alla ord. En hel del texter togs sedan
bort pga av besvärlig textkodning. Efter allt detta
var mängd1 900kB och mängd2 9MB.
Vi tog sedan bort de testfrågor vars ord förekom
färre än tio gånger i träningsmängderna. Det gav oss
två test (ett för vardera träningsmängd): test1 med
59 frågor och test2 med 48 frågor. Ett tredje test
(test3) består av alla texter från mängd1 och mängd2
och frågorna från test1.
För att få så bra resultat som möjligt har vi varierat en mängd parametrar (inom parentes de värden
vi provat):
• dimensionalitet - storleken på slumpvektorerna
(1000,2000)
• antal 1:or och -1:or (4, 8, 100)
• kontextfönstrets storlek, åt vänster (2, 4, 10)
och åt höger (2, 4, 10)
• att använda stopplista för ord och att inte göra
det (vi tar alltid bort ord som är kortare än 3
bokstäver och längre än 25)
• viktningsschema, dvs vikten för kontexterna i
summeringen till kontextvektorn
Totalt 108 varianter per viktningsschema och test.
De två viktningsscheman vi provat beskrivs av
följande två vikter, där d är avståndet till fokusordet
och sim är den redan funna likheten mellan kontexten och fokusordet:
M S = 21−d
M R = (0.8 + 0.2sim)M S
(2)
(3)
Den första är den viktning som använts av Magnus Sahlgren och den andra är vår variant som
förstärker redan existerande samband. Vår variant gav likvärdiga resultat, men är betydligt
4
Vi behöll inte de frågor som innehåll “synonymer” med
fler än ett ord.
Parameter
Dimensionalitet
långsammare eftersom man måste jämföra fokusordet med alla ord i kontextfönstret. Därför presenterar vi bara resultat från försök med det första viktningsschemat.
De bästa och sämsta resultaten på de olika testen
syns i tabell 1. För att utröna vilka parametrar som
är viktiga för resultatet har vi beräknat medelvärde
och standardavvikelse på resultatet för varje enskild
parameter över de 108 försöken, se tabellerna 2 och
3 (motsvarande värden för test2).
Den enda tydliga tendensen över alla försök är
att stopplista ger förbättrade resultat. Utan den blir
resultatet till och med sämre än slumpen (20%) i
vissa fall.
test1
test2
test3
Bäst
Antal rätt Procent
26/59
44%
15/33
45%
22/59
37%
Sämst
Antal rätt Procent
16/59
27%
7/33
21%
9/59
15%
Tabell 1: Resultat
Parameter
Dimensionalitet
Antal 1/-1
Vänsterfönster
Högerfönster
Stopplista
Värde
1000
2000
4
8
100
2
4
10
2
4
10
på
av
Medel
20.56
20.52
19.61
20.58
21.42
20.06
20.72
20.83
20.22
20.64
20.75
23.50
17.57
stdv
3.18
3.40
2.80
3.14
3.63
2.84
3.41
3.53
3.45
3.21
3.19
1.78
0.97
Tabell 2: Parametrarnas inverkan: test1
Motsvarande har provats för TOEFL-testet med
goda resultat: 70% rätt! (Sahlgren, 2001) (Med
en kombination av flera metoder har över 90%
uppnåtts.) Vi presterade betydligt sämre, lägre
än 50%, men har också haft mycket sämre
förutsättningar. Högskoleprovets ORD-del är inriktat på modersmålstalare och är därför antagligen
svårare än TOEFL-testet. Det var inte helt enkelt att
skaffa bra textmängder med dessa ganska ovanliga
ord.
Alla våra resultat bör ses i ljuset av de små datamängder vi använt. Att vi inte kunnat hitta några
Antal 1/-1
Vänsterfönster
Högerfönster
Stopplista
Värde
1000
2000
4
8
100
2
4
10
2
4
10
på
av
Medel
15.50
15.89
15.58
15.75
15.75
15.53
15.83
15.72
15.94
15.58
15.56
19.94
11.44
stdv
4.34
4.48
3.95
3.96
5.20
4.35
4.46
4.43
4.24
4.44
4.54
1.27
1.10
Tabell 3: Parametrarnas inverkan: test3
tydliga tendenser i hur parametrarna påverkar resultatet kan mycket väl bero på att de är för små.
3.4 Högskoleprovets läsförståelse
Vi provade också att använda LSA för att göra
läsförståelsetestet från högskoleprovet.
Lite olika metoder testades. Ett exempel var att
låta varje mening i texten frågan hör till vara en
kontext. Sedan valdes det svar som var mest likt
frågan, med texten som utgångspunkt för vad som
var likt vad. Samtliga metoder som prövades fungerade väldigt dåligt (sämre än slumpen), så det gjordes inte så mycket experiment på detta tema.
3.5 Klustring
Vi har gjort ett antal försök med klustring och olika
representationer. I avsnitt 3.5.1 jämför vi Random
Mapping och trunkering av klustercentroider och i
avsnitt 3.5.2 provar vi några olika representationer
baserade på Random Indexing.
Vi har använt 2500 artiklar från Aftonbladet ur
KTH News Corpus och utvärderar mot tidningens
fem egna kategorier. Tabellerna 4 och 5 visar resultat vid klustring till 10 kluster med algoritmerna
K-means och Bisecting K-means med vanlig vektorrymdsrepresentation. Två försök med vardera 20
klustringar ges för varje algoritm5 . Alla värden i
detta avsnitt avser 20 klustringar till 10 kluster. Att
vi valt just 10 kluster kan naturligtvis påverka resultaten.
Vi representerar texterna i den vanliga vektorrymdsmodellen med cosinus som likhetsmått och
tf w,d ∗ idf w -vikt enligt:
tf w,d = c1 + (1 − c1 )
5
fw,d
maxw fw,d
De första används senare i graferna.
(4)
n − nw
nw
1.4
(5)
1.2
där fw,d är antalet gånger ordet w förekommer i dokumentet d, n är antalet texter, nw är antalet texter ordet w förekommer i. Vi har satt c1 = 0.5 och
c2 = 0.5.
De 2500 artiklarna har efter bearbetning (sammansättningsuppdelning, stemming och stoppordsborttagning) 7265 olika ord. Enskilda artiklar har i
snitt 36.25 olika ord (min: 7, max: 191).
I de följande avsnitten tillämpas olika former av
representationer. Resultaten från dessa försök är naturligtvis beroende av den nu beskrivna ursprungliga representationen, men vi har inte provat olika
sådana.
Försök
1
2
Mått
Info Gain
Precision
F-measure
Info Gain
Precision
F-measure
medel
1.12
0.70
0.58
1.15
0.71
0.60
stdav.
0.07
0.03
0.04
0.05
0.03
0.03
Tabell 4: K-means utan projektion
Försök
1
2
Mått
Info Gain
Precision
F-measure
Info Gain
Precision
F-measure
medel
1.09
0.69
0.55
1.11
0.70
0.57
stdav.
0.09
0.04
0.04
0.11
0.04
0.04
Tabell 5: Bisecting K-means utan projektion
3.5.1 Global eller lokal projektion
Vi ville verifiera resultaten i (Schütze and Silverstein, 1997) där trunkering av klustercentroider visas
ge lika bra resultat som global projektion via LSI
och att båda ger lika bra resultat som då man inte
projicerar alls. Eftersom det inte är möjligt att få de
ursprungliga vektorerna från LSI-paketet kunde vi
inte göra den jämförelsen. Istället har vi använt Random Mapping som global projiceringsmetod. Dessutom gör de i artikeln jämförelsen i en informationssökningskontext, medan vi använder tidningskategorier som referens.
Figurerna 1 till 4 ger Information Gain vid klustercentroidtrunkering respektive dimensionsreducering mha Random Mapping till 10, 20, 30, 40,
1
Info Gain
idf w = c2 + log
0.8
0.6
0.4
0.2
0
0
100
200
300
400
500
600
Antal dimensioner
700
800
900
1000
Figur 1: K-means med Random Mapping (Info
Gain)
50, 100, 200, 300, 400, 500 och 1000 dimensioner6 . Motsvarande figurer för precision och Fmeasure ger liknande grafer. De horisontella linjerna är värdena för motsvarande klustringar utan projektion (försök 1 i tabellerna 4 och 5).
Trunkering av klustercentroider verkar inte
påverka resultatet menligt för någon av algoritmerna bara man inte trunkerar för hårt (se figurerna 3
och 4). För K-means tycks till och med resultatet
kunna förbättras vid trunkering precis som rapporterats i (Schütze and Silverstein, 1997). Anledningen
skulle kunna vara att de lägst viktade orden i centroiderna bara tillför brus.
Random Mapping verkar inte motsvara LSA
tillräckligt väl för K-means (figur 1). Våra försök
ger klart försämrade resultat medan (Schütze and
Silverstein, 1997) rapporterar oförsämrade resultat
med LSA. Det är väldigt märkligt att algoritmen inte
ger lika goda resultat med flera hundra dimensioner
som med den ursprungliga representationen.
Bisecting K-means verkar fullständigt stabil för
Random Mapping. Den ger lika goda resultat ned
till några tiotal dimensioner.
3.5.2 Random Indexing
Vi ville också prova om Random Indexing (RI) kan
förbättra klustringsresultat. Två olika textrepresentationer skapade mha av RI har provats.
Vi har provat att representera en text med en
RI-kontextvektor som är summan av alla de i texten förekommande ordens RI-kontextvektorer viktat ordvis med tf*idf-vikten för orden i texten, RIvektorer. Likhet har beräknats enligt cosinus-måttet
mellan dessa vektorer. Vi provade även att ta bort
6
För att göra figurerna mer lättlästa har punkterna oegentligt
sammanfogats med räta linjer. Heldragna linjer motsvarar medelvärden, medan de streckade ligger på en standardavvikelses
avstånd från dessa.
1.25
1.2
Info Gain
1.15
1.1
1.05
1
0.95
0
100
200
300
400
500
600
Antal dimensioner
700
800
900
1000
Figur 2: Bisecting K-means med Random Mapping
(Info Gain)
1.4
1.3
Info Gain
1.2
1.1
1
0.9
0.8
0.7
0
100
200
300
400
500
600
Antal dimensioner
700
800
900
1000
Figur 3: K-means med trunkering (Info Gain)
stopporden vid RI-indexeringen (ej stoppord). Tabellerna 6 och 7 ger resultaten för de bägge algoritmerna.
K-means fungerar inte bra med denna representation medan Bisecting K-means ger lika goda resultat
1.3
1.2
1.1
Info Gain
1
0.9
0.8
0.7
0.6
0.5
0
100
200
300
400
500
600
Antal dimensioner
700
800
900
1000
Figur 4: Bisecting K-means med trunkering (Info
Gain)
som vid normal representation och ingen projektion.
Bisecting K-means hittade tillräckligt med information vid projektion med Random Mapping ner till
några tiotals dimensioner så det säger bara att det
finns lika mycket för klustring användbar information i de här representationerna.
Att K-means fungerar bättre då stopporden tagits
bort vid RI-indexeringen kan kanske tolkas som att
RI blir mindre fokuserad på syntaktisk information
då och därmed bättre på att representera innehållet.
Den andra textrepresentationen vi provat utvidgar
den vanliga vektorrymdsmodellen. Alla texters representation har tillförts de n (i nästan alla försök
har vi använt n = 5) mest lika RI-synonymerna
(och sig självt) för varje ord som ingår i dem. Vikten
för ord har naturligtvis ackumulerats. Likhet mellan de resulterande vektorerna har beräknats med
cosinus-måttet.
Vi har provat olika viktningar av orden som lagts
till. Först provade vi produkten av vikten för det
ursprungliga ordet och likheten dem emellan (mellan ordet och RI-”synonymen”). Resultaten för detta
syns även det i tabellerna 6 och 7 med beteckningen
Utvidgad n.
Resultatet är minst sagt nedslående och vi har
provat många olika varianter av viktning vid utvidgningen (bland annat genom ge ord med högre idfvikt högre vikt). Det har förbättrat resultaten en del,
men inte alls nått upp till den vanliga vektorrymdsrepresentationen.
Det är förvånande att den med RI-synonymer utvidgade vanliga representationen fungerar så dåligt.
Kanske är den godtyckligt tagna mängden RIsynonymer (5 eller 10 stycken) dålig; kanske borde man prova någon likhetströskel istället. Men det
kan också vara så att RI-synonymerna inte lämpar
sig för innehållsrepresentation.
Projektion har inte tillämpats i något RI-försök.
Det hade varit nästa steg om dessa oprojicerade
försök gett goda resultat.
En stor och viktig invändning mot de här RIförsöken är att RI-indexeringen bara gjorts på denna
lilla textmängd. Kanske hade RI-synonymerna varit
bättre om de tagits fram från en större eller rent av
en helt annan textmängd.
Att skapa den utvidgade vanliga representationen
tar lång tid eftersom alla ord måste jämföras med
alla andra.
3.5.3 Diskussion
Det är intressant att Bisecting K-means fungerar
så stabilt. Även då algoritmen uppenbarligen har
väldigt få dimensioner att behandla (projektion med
Random Mapping till några få tiotal dimensioner)
klarar den av att urskilja 10 bra kluster. Man frågar
Representation
RI-vektorer
RI-vektorer
(ej stoppord)
Utvidgad 10
Utvidgad 5
Mått
Info Gain
Precision
F-measure
Info Gain
Precision
F-measure
Info Gain
Precision
F-measure
Info Gain
Precision
F-measure
medel
0.43
0.43
0.38
0.69
0.52
0.47
0.46
0.44
0.38
0.58
0.50
0.43
stdav.
0.03
0.02
0.02
0.03
0.01
0.01
0.05
0.03
0.02
0.04
0.03
0.02
Tabell 6: K-means Random Indexing
Representation
RI-vektorer
RI-vektorer
(ej stoppord)
Utvidgad 10
Utvidgad 5
Mått
Info Gain
Precision
F-measure
Info Gain
Precision
F-measure
Info Gain
Precision
F-measure
Info Gain
Precision
F-measure
medel
1.12
0.71
0.57
1.08
0.69
0.54
0.45
0.45
0.41
0.54
0.49
0.44
stdav.
0.08
0.03
0.03
0.10
0.04
0.03
0.05
0.02
0.02
0.04
0.02
0.02
Tabell 7: Bisecting K-means Random Indexing
sig om det betyder att klustren ofta, även vid representation med fler dimensioner, kan beskrivas väl
med några få dimensioner. Det känns inte helt otroligt om man tänker på de magiska 100-200 dimensionerna vid LSA...
Det är anmärkningsvärt att det är så svårt att få
bättre klustringsresultat mha RI. Det kanske inte
går. RI hittar statistiska samband i ords användning.
Klustring gör också det; två liknande texter som uteslutande använder var sin synonym för något ord
blir ändå lika varandra tack vare övriga ord. Att
försöka införa detta på två sätt kanske inte är en bra
ide.
Genomgående för de försök som gjorts för
disambiguering av ords betydelse för informationssökning har varit att ju längre sökfrågan och
texterna är desto mindre (alternativt sämre) inverkan har det (Sanderson, 2000). I klustring har man
bara hela texter, så våra resultat är kanske inte så
märkliga.
4 Litteratur
Utöver de referenser som finns i texten har vi läst
mycket annat, bland annat följande:
• LSA/LSI: (Berry et al., 1999), (Landauer,
2003)
• RI: (Sahlgren, 2004), (Sahlgren et al., 2002)
• RM:(Kohonen et al., 2000)
5 Tack till
Leif Grönqvist, Magnus Sahlgren och Martin Hassel.
References
Michael W. Berry, Susan T. Dumais, and Gavin W.
O’Brien. 1995. Using linear algebra for intelligent information retrieval.
M.W. Berry, Z. Drmac, and E.R. Jessup. 1999. Matrices, vector spaces, and information retrieval.
S. T. Dumais, G. W. Furnas, T. K. Landauer, and
S. Deerwester. 1988. Using latent semantic analysis to improve information retrieval. In Proceedings of CHI’88: Conference on Human Factors
in Computing, pages 281–285, New York.
Samuel Kaski. 1998. Dimensionality reduction by
random mapping: Fast similarity computation for
clustering. In Proceedings of IJCNN’98, International Joint Conference on Neural Networks,
volume 1, pages 413–418. IEEE Service Center,
Piscataway, NJ.
T. Kohonen, S. Kaski, K. Lagus, J. Salojrvi, J. Honkela, V. Paatero, and A. Saarela. 2000. Self organization of a massive document collection.
Thomas Landauer. 2003. Pasteur’s quadrant: Computational linguistics, lsa, and education. In Jill
Burstein and Claudia Leacock, editors, HLTNAACL 2003 Workshop: Building Educational
Applications Using Natural Language Processing, pages 46–52, Edmonton, Alberta, Canada,
May 31. Association for Computational Linguistics.
K. Lund, C. Burgess, and R.A. Atchley. 1995.
Semantic and associative priming in highdimensional semantic space. In Proceedings of
the Cognitive Science Society, pages 660–665.
Hillsdale, N.J.: Erlbaum Publishers.
Michael P. Oakes, editor. 1998. Statistics for Corpus Linguistics. Edinburgh University Press.
Magnus Sahlgren, Preben Hansen, and Jussi Karlgren. 2002. English-Japanese cross-lingual query expansion using random indexing of aligned
bilingual text data. In The Third NTCIR Workshop, Tokyo, Japan.
M. Sahlgren. 2001. Representing word meanings
based on random labels. In The 23rd Annual
Conf. of the Cognitive Science Society.
Magnus Sahlgren. 2004. Automatic bilingual lexicon acquisition using random indexing of aligned
bilingual data. In Proceedings of LREC-2004,
pages 1289–1292, Lisbon, Portugal.
Mark Sanderson. 2000. Retrieving with good sense. Inf. Retr., 2(1):49–69.
H. Schütze and C. Silverstein. 1997. Projections for
efficient document clustering. In Proceedings of
SIGIR’97, pages 74–81.