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.