Dokumentrekommendationssystem och intranät Anders Gabrielsson anders@stp.ling.uu.se Examensarbete 20p Språkteknologiprogrammet Institutionen för lingvistik Uppsala universitet Handledare: Lars Borin och Henrik Fagrell 21 januari 2000
Sammanfattning Dokumentrekommendation är en del av informationsfiltrering, ett område som främst handlar om att tillfredsställa långsiktiga informationsbehov, i motsats till informationssökning (information retrieval, IR) där man sällan tar hänsyn till användarens intressen eller tidigare beteende. Inom informationsfiltrering gör man detta genom att skapa en modell för det som användaren är intresserad av som sedan används för att välja ut relevanta informationskällor, vanligtvis textdokument. Jag ger här en översikt över de vanligaste metoderna för informationsfiltrering. Jag jämför innehållsbaserad filtrering, där man ser till dokumentens innehåll, med social filtrering, där man i stället utnyttjar andra användares omdömen om dem, och explicita användarmodeller, sådana som konstrueras av användarna själva, med implicita, som skapas av systemet utifrån observationer av användarnas beteende. Här finns en mer detaljerad beskrivning av LSI, Latent Semantic Indexing, en matematisk metod för att hitta likheter mellan dokument. Jag beskriver också det system för dokumentrekommendation på ett företags intranät som jag arbetat på för Viktoriainstitutets räkning. Systemet använder sig av LSI och explicita användarprofiler.
Innehåll 1 Inledning 1 1.1 Informationsfiltrering........................ 1 1.2 Informationsfiltrering och intranät................. 1 1.3 Uppgift............................... 2 2 Informationsfiltrering 3 2.1 Introduktion och terminologi.................... 3 2.1.1 Kort historik........................ 5 2.2 Metoder för textfiltrering...................... 5 2.2.1 Innehållsbaserad filtrering................. 5 2.2.2 Social filtrering....................... 7 2.2.3 Betygsmodeller....................... 8 2.3 Användarmodeller......................... 8 2.3.1 Explicita och implicita modeller.............. 9 2.4 Exempel på system......................... 9 2.4.1 SIFT............................ 9 2.4.2 InfoScope.......................... 9 2.4.3 Tapestry........................... 10 2.4.4 URN............................ 10 2.4.5 GroupLens......................... 10 2.4.6 TREC............................ 10 2.4.7 Intressanta utvecklingsriktningar.............. 11 2.5 LSI................................. 12 2.5.1 SVD............................ 12 2.5.2 För- och nackdelar samt jämförelser med andra system.. 14 3 Implementation 16 3.1 Klienten............................... 16 3.1.1 Funktionalitet........................ 17
3.1.2 Teknikaliteter........................ 19 3.2 Servern............................... 21 3.2.1 Indexering: översikt.................... 21 3.2.2 Indexering: detaljer..................... 22 3.3 Datafiler............................... 24 3.3.1 Filter............................ 24 3.3.2 Profil............................ 24 4 Diskussion 25 4.1 Tankar kring indexering....................... 26 5 Sammanfattning 27 Referenser 29 A Appendix 30 A.1 Synonymiregler........................... 30 A.2 Profil- och filterexempel...................... 32
Kapitel 1 Inledning Mer och mer information finns i elektronisk form, vilket gör det enkelt att göra den tillgänglig för många människor. Detta används bland annat inom företag som använder sig av sina intranät för att distribuera information i elektronisk form. Det kan dock vara svårt för de anställda att tillgodogöra sig informationen på ett effektivt sätt, eftersom det kan krävas stora insatser av tid och arbete för att hitta det som är relevant för den enskilde. 1.1 Informationsfiltrering Informationsfiltrering är ett område där man främst koncentrerar sig på långsiktiga informationsbehov, det vill säga när en användare vill bli kontinuerligt hjälpt med att få fram information om ett visst ämne. Oftast handlar det om att förmedla intressanta textdokument till användaren, men det kan också röra sig om film, musik och så vidare. Många använder sig näst intill dagligen av informationsfiltrering i form av bok- och filmrecensioner, sökmotorer på väven 1 och så vidare. Många existerande system kräver dock en relativt stor insats av tid och arbete innan de ger någon utdelning (Fagrell 1999, s.1), delvis för att de främst är konstruerade för att tillfredsställa kortsiktiga informationsbehov. 1.2 Informationsfiltrering och intranät Intranät har blivit ett vanligt sätt för företag att sprida information till sina anställda. (Fagrell 1999, s. 1) Det kan dock vara problematiskt att hitta relevant information 1 Denna term har av SICS lanserats som ett alternativ till webben. Jag har valt att använda detta ord eftersom jag anser det mer lämpligt att hitta svenska alternativ till engelska ord än att anpassa dem till svenska böjningsmönster. 1
även på ett sådant nät, eftersom den nya informationen lätt kan försvinna i mängden av mindre aktuella dokument, och eftersom alla anställda inte är intresserade av all ny information som görs tillgänglig. Ett exempel på den omfattning som ett stort intranät kan ha är Volvos, som i maj 1999 hade 30 000 användare och 250 servrar med 500 000 dokument. Vissa servrar registrerade då strax över 3000 sessioner per arbetsdag, där en session definieras som en serie förfrågningar med uppehåll på mindre än 30 minuter. (Fagrell 1999, s. 3) 1.3 Uppgift Min uppgift har varit att som mitt examensarbete på språkteknologiprogrammet undersöka området informationsfiltrering samt att fortsätta utvecklingen av ett system för informationsfiltrering som skapats vid Viktoriainstitutet i Göteborg för användning på Volvos intranät. 2
Kapitel 2 Informationsfiltrering 2.1 Introduktion och terminologi Med informationsfiltrering menas här en typ av informationssökning där användaren försöker tillfredsställa ett långsiktigt informationsbehov genom att genomsöka en stor mängd dynamiskt genererad information. Denna definition är i stort sett densamma som den som används i Oard (1997), varifrån större delen av innehållet i den här delen har hämtats. Ett informationsfiltreringssystem är ett automatiskt system som konstruerats för att hjälpa användare att hitta de informationsenheter som bäst tillfredsställer deras informationsbehov. Informationssökning används här i vid mening, omfattande alla typer av aktiviteter som företas i avsikt att tillfredsställa ett informationsbehov. Det innefattar såväl att slå upp telefonnummer i en telefonkatalog eller tågtider i en tågtidtabell som databassökningar eller användning av sökmotorer på nätet. Med informationsenhet menas en enhet som innehåller information i en form som kan tolkas av användaren. Det kan röra sig om texter, men också bilder, ljud eller något annat. Informationsenheter som innehåller text kallas vanligen dokument, och filtrering av dessa brukar kallas textfiltrering. Det är denna gren av området som kommer att stå i fokus här. Med dynamiskt genererad information menas att det ständigt tillkommer ny information som användaren kan vara intresserad av. Den representation av användarens informationsbehov som systemet använder kallas profil eller användarmodell. Det senare begreppet kan även användas om en grupp användare. Det är i praktiken knappast möjligt att skapa en perfekt representation av användarens informationsbehov, men man bör sträva efter att göra en så god approximation som möjligt, inom de ramar som sätts av det system man använder. (Alla som någon gång har använt en sökmotor vet hur svårt det kan vara att ens för sig själv formulera exakt vad det egentligen är man letar efter.) 3
Det som skiljer informationsfiltrering, IF, från information retrieval, IR, är just att inom IF antas användarens informationsbehov vara relativt stabilt och specifikt jämfört med hur snabbt ny information görs tillgänglig. Ett typiskt exempel på IR är användning av sökmotorer på nätet. Här kan användarens informationsbehov inte antas vara detsamma från en sökning till en annan, snarare tvärt om - användarens behov ändras snabbt och kan variera mycket. Ett filter som ska ta bort så kallad spam (oönskade, vanligtvis kommersiella, massutskick) från användarens e-post är dock ett exempel på IF, eftersom samma, eller mycket liknande, urvalskriterier används hela tiden, medan det ständigt tillkommer nya informationsenheter, i det här fallet e-brev. Ett informationsfiltreringssystem kan antingen bygga på att den som tar emot och den som sänder informationen samarbetar genom att avsändaren gör något slags markeringar för att underlätta sortering, eller på att mottagaren själv får sköta filtreringen. Eftersom samarbete kräver någon form av samordning, och eftersom det finns stora mängder redan existerande dokument som skulle behöva förses med sådana markeringar, är system där mottagaren själv får göra allt antagligen dem som är mest intressanta i nuläget. Det finns dock undantag, till exempel när det gäller e-postlistor, mailing lists. Här är det vanligt att en speciell teckensekvens automatiskt läggs till i rubriken på alla meddelanden, för att det ska vara lätt att se varifrån de kommer. Detta gör det möjligt för mottagaren att sortera upp meddelanden från olika listor i olika mappar, eller att själv välja i vilken ordning man ska läsa sina meddelanden. Här kommer jag dock att koncentrera mig på system som enbart bygger på att mottagaren själv filtrerar utan någon särskild hjälp från avsändaren. Det är ibland möjligt att använda ett IR-system för att utföra uppgifter som ligger närmare IF till sin natur. Man kan till exempel utföra samma sökning i en sökmotor varje dag för att hitta alla nya sidor som rör det ämne man är intresserad av. Även det omvända kan i vissa fall gå att genomföra. Till exempel kan användaren ändra den profil som används för att filtrera de nya informationsenheterna så fort han vill söka efter något nytt, men detta är inte alltid möjligt, och antagligen mycket sällan värt besväret. Namnet informationsfiltrering antyder att det enbart rör sig om att sortera bort de informationsenheter som bedöms vara mindre intressanta för användaren, men det stämmer inte riktigt. Det gäller snarare att arrangera om den information som finns så att det blir lätt att hitta det man är ute efter. Ett program som till exempel ordnar inkommande e-post efter hur brådskande den antas vara är ett informationsfiltreringssystem, även om ingen post faktiskt kastas bort. Möjligen kunde ett namn som informationssortering, informationsseparering eller informationsstrukturering vara mer rättvisande, men jag har valt att här ansluta mig till den existerande terminologin. 4
2.1.1 Kort historik IF har sitt ursprung i vad Luhn kallade selective dissemination of information, SDI, när han 1958 presenterade tanken om ett Business Intelligence System (Oard 1997, s. 9). Tanken var att användare skulle ha profiler hos bibliotek där listor av nya dokument som skulle kunna intressera dem skulle sammanställas och skickas ut, varefter användarna skulle kunna beställa det som intresserade dem. Luhns tidiga arbeten identifierade alla aspekter av modern IF, även om detaljerna i tillämpningen naturligtvis ändrats med teknikens utveckling. Houseman fann i en undersökning 1969 sextio fungerande system för SDI inom the Special Interest Group for SDI (Houseman 1969). Den information som distribuerades var främst abstracts för vetenskapliga artiklar på magnetband. Termen informationsfiltrering skapades 1982 i Communications of the ACM (Association for Computing Machinery) där man såg behovet av att skapa någon typ av filter för elektronisk post, till exempel ett som baserade sig på e-brevens innehåll. 1987 introducerads tanken på social filtrering, där informationsenheter sorteras efter markeringar gjorda av användare snarare än efter sitt innehåll. 2.2 Metoder för textfiltrering Här ges en översikt över de vanligaste metoderna för textfiltrering. 2.2.1 Innehållsbaserad filtrering Innehållsbaserad filtrering innebär att man ser till dokumentens innehåll när man sorterar dem. Detta kan göras på flera olika sätt. Den grundläggande metoden är dock att på något sätt extrahera olika egenskaper ur dokumentet och omvandla dem till ett format som gör det möjligt att jämföra dem med en användares profil. Exempel på manuell innehållsbaserad filtrering är när en artikel förses med abstract eller nyckelord. Man har då valt ut delar av dokumentets innehåll som anses representativa och sedan omvandlat dem till ett format som gör det möjligt för en potentiell läsare att snabbt bilda sig en uppfattning om det är intressant för honom. De egenskaper som används vid automatiserad filtrering baseras oftast på termförekomster i dokumentet. Den enklaste typen av sådan filtrering är att användarens profil består av ett antal termer och att dokument som innehåller något av dessa termer väljs ut för presentation medan alla andra ignoreras. Med en inte alltför grov generalisering kan man säga att alla andra typer av innehållsbaserad filtrering är förfiningar avsedda att komma tillrätta med de problem som denna enkla metod medför. 5
Exakt matchning kontra rangordning Den metod för filtrering som beskrevs ovan, när systemet endast gör en rent binär bedömning av om ett dokument ska visas eller ej, kallas för exakt matchning ( exact match ). En förbättring av detta är att rangordna dokumenten i stället ( ranked output ). 1 Dokumentet ges då ett betyg som är avsett att beskriva hur likt det är det som användaren vill ha. Det finns ett flertal olika metoder för att få fram detta betyg, men grundtanken är densamma. Se avsnittet om betygsmodeller nedan. Det man vinner på att rangordna dokumenten i stället för att låta maskinen själv plocka bort det som anses ointressant är att man får tillgång till de kunskaper användaren har som inte fångats upp av systemet. Det kan röra sig om avancerade omvärldskunskaper eller semantisk förståelse som är alltför svåra eller kostsamma att implementera, men som en människa kan använda utan någon ansträngning. Detta gör att dokument som inte passar in på den profil systemet har men som användaren ändå anser vara intressanta kan hittas. Dessutom kan användaren själv avgöra när han ska sluta söka längre ner i listan över dokument, och kan på så vis själv bestämma den gräns då dokument ska sluta visas. Den största nackdelen är att systemet blir mer komplicerat, eftersom det inte längre räcker med ett binärt värde för varje dokument. För att rangordningen ska vara meningsfull måste den också på ett ungefär motsvara användarens förväntningar, annars kommer den antagligen att uppfattas som meningslös eller irriterande. Att enstaka dokument får en något felaktig placering är förstås oundvikligt och bör inte ses som något stort problem, men om användaren inte kan lita på att systemet gjort en någorlunda rimlig grovsortering är det antagligen bättre att presentera dokumenten med någon annan metod, som i bokstavsordning eller efter någon slags innehållsklassificering. Det går naturligtvis att kombinera båda typerna av filter. Till exempel kan ett e-post-filter rensa bort meddelanden vars rubriker innehåller vissa ord eller fraser (som MAKE MONEY FAST ) medan de övriga sorteras enligt någon slags betygsskala. Synonymi och polysemi Ett stort problem med att använda listor av termer som sökkriterier är att olika personer kan använda många olika termer för att beskriva samma sak. Detta gör att man kanske bara hittar en bråkdel av de dokument som rör det område man är 1 Många av dagens sökmotorer använder exakt matchning för att välja ut vilka dokument som ska presenteras för användaren som relevanta för hans sökning, ibland kombinerat med någon slags betygssättning. Så länge man inte betygssätter alla dokument och presenterar dem som uppnår ett visst betyg så rör det sig ändå om en variant av exakt matchning. 6
intresserad av, eftersom de termer man använder helt enkelt inte förekommer i de övriga dokumenten. Med andra ord leder synonymi till försämrad recall. Relaterade problem är att samma term kan användas för att beteckna olika saker, polysemi, samt att böjningsformer av olika ord kan sammanfalla, homografi. Detta gör att man kan få upp fullständigt irrelevanta dokument, det vill säga att precisionen sjunker. I viss mån kan detta åtgärdas genom att använda fler sökord och endast välja ut de dokument som innehåller alla, men detta leder återigen till försämrad recall, eftersom det inte är säkert att alla de dokument man vill ha innehåller alla de sökta termerna. Ett sätt att försöka komma åt problemet med synonymi är att använda sig av så kallad query expansion med hjälp av ett synonymlexikon. Detta kan göras manuellt eller automatiskt. Problemet med att göra det manuellt är förstås att det kräver extra arbete. Automatisk frågeexpansion är inte heller problemfri. Man får visserligen sannolikt bättre recall, eftersom fler termer används vid sökningen, men precisionen kommer antagligen också att sjunka, eftersom vissa av de nya orden antagligen har en något annorlunda betydelse, och eftersom de i sin tur kan vara polysema eller ha homografer, så att helt felaktiga betydelser läggs till. En annan metod som delvis kan lösa detta problem är att använda sig av mer avancerad syntaktisk information. Nackdelen med detta är att det oftast kräver domänspecifika kunskaper vilket gör systemet mindre portabelt. Ett system som enbart använder sig av till exempel ordfrekvenser är enkelt att tillämpa på flera olika domäner, antagligen också på flera olika språk, medan ett som använder sig av stora lexikon och avancerad syntaktisk och semantisk parsning kräver mycket arbete innan det kan flyttas. Här gäller förstås att det är en gradvis övergång från mycket generella system till mycket specifika - så länge man håller sig inom samma språk kan till exempel viss syntaktisk information alltid användas, men ju mer man förlitar sig på systemets kunskaper om specifka ord eller konstruktioner, desto mer domänspecifikt blir det. 2.2.2 Social filtrering Inom innehållsfiltrering antas systemets användare agera oberoende av varandra. När man använder sig av social filtrering ( social filtering, collaborative filtering ) utnyttjar man i stället andra användares kunskaper om de informationsenheter man ska söka bland. Olika typer av manuell social filtrering är mycket vanligt förekommande i de allra flesta människors vardag. Vi frågar våra vänner om tips på bra böcker, filmer eller restauranger, läser recensioner i tidningen och så vidare. En viktig aspekt att ta hänsyn till här är de kunskaper vi har om andra människors smak. Att be en främling rekommendera en bok ger sällan något, eftersom man inte vet något om 7
hur hans intressen förhåller sig till ens egna. Detta är ett av de problem man måste hantera om man vill försöka automatisera den här processen. En vanlig metod är att användaren får sätta betyg på ett antal informationsenheter som han redan känner till, varpå systemet försöker hitta andra användare som givit liknande betyg åt dessa enheter. Man kan sedan utnyttja dessa användares betyg på för den nya användaren okända enheter för att rekommendera sådana som borde passa honom och varna honom för sådana som de andra givit låga betyg. 2.2.3 Betygsmodeller Målet med ett betygssystem är att de dokument som bäst fyller användarens informationsbehov ska ges ett högt betyg. Här beskrivs några sätt att avgöra hur nära användarens intresse ett visst dokument befinner sig. Det enklaste sättet är att konstruera en användarprofil som består av ett antal termer och sedan visa upp de dokument som innehåller något av termerna, som beskrevs ovan. Stamning 2 av termerna kan vara lämpligt, så att man hittar olika former av termerna i profilen. Ett mer förfinat sätt att sätta betyg på dokument är att uppskatta sannolikheten för att det uppfyller användarens informationsbehov. Man använder sig av viktad information om termers frekvenser i enskilda dokument och i hela dokumentsamlingen för att försöka uppskatta hur sannolikt det är att ett visst dokument tillfredsställer användarens informationsbehov. Här betraktar man dokument och användarprofiler som vektorer i ett rum med en dimension för varje term, med termernas frekvenser (eller någon funktion 3 av dessa) som koordinater. Man kan sedan använda vinkeln mellan dokument och profiler eller avståndet mellan ändpunkterna hos deras vektorer för att på så sätt få ett mått på hur nära profilen ett dokument ligger. Ofta används cosinusvärdet av vinkeln för att få fram ett lätthanterligt mått. En vidareutveckling av vektormodellen som kallas latent semantic indexing, LSI, beskrivs närmare nedan. 2.3 Användarmodeller För att ett informationsfiltreringssystem ska fungera måste man kunna skapa en bra modell över användarens informationsbehov. Denna modell kallas alltså an- 2 Jag har valt att översätta den engelska termen stemming med stamning, för att komma så nära det ursprungliga ordet som möjligt. Alternativa översättningar skulle kunna vara stamavskiljning eller stamreduktion. 3 Flera olika typer av funktioner har använts för att modifiera den rena frekvensen, till exempel olika typer av logaritmer och rent binära funktioner. 8
vändarens profil. I detta avsnitt beskrivs kort några olika sätt att bygga upp en sådan. Som nämndes i inledningen är det långt ifrån självklart att den modell som byggs upp matchar det informationsbehov som användaren faktiskt har. 2.3.1 Explicita och implicita modeller Det finns två olika sätt att bygga upp en profil över användaren, explicit och implicit. Vid explicit profilskapande ger användaren själv direkt den information som används för att bygga upp profilen. Vid textfiltrering rör det sig oftast om antingen en lista av intressanta ord eller ett antal typdokument. Ett system som skapar användarprofilen implicit studerar självt användaren och drar slutsatser utifrån hur han hanterar de olika dokumenten. Vanliga exempel på observationer är hur lång tid han spenderar på att läsa ett visst dokument och om det sparas för framtida bruk eller kastas bort efter läsning. Det har visat sig att detta ofta ger i någon mening bättre information om vilka dokument som ska rekommenderas, men å andra sidan är det svårare att implementera en sådan metod. Det går naturligtvis att kombinera dessa två modeller, till exempel genom att an- vändaren först anger en lista av ord som senare modifieras beroende på hans beteende. 2.4 Exempel på system 2.4.1 SIFT SIFT var ett enkelt innehållsbaserat filtreringssystem för USENET News-artiklar som var avsett att användas för att testa effektiviteten hos olika algoritmer. Användarprofilerna skapades manuellt i form av listor av ord att söka efter och ord att undvika. Systemet valde varje dag ut tjugo artiklar och presenterade dem i rangordning. Det fanns möjlighet att modifiera sin profil interaktivt med hjälp av en nätbläddrare. (Oard 1997, s. 11-13) 2.4.2 InfoScope SIFT betraktade alla news-artiklar som likvärdiga och tog ingen hänsyn till ämne, författare eller vilken nyhetsgrupp de kom ifrån. Detta gjorde däremot InfoScope. På grund av de begränsningar som sattes av kraften hos dåtidens (1991) datorer så var detta den enda information som kunde hanteras. Systemet använde sig av regelbaserad exakt matchning. (Oard 1997, s. 13-14) 9
2.4.3 Tapestry Textfiltreringssystemet Tapestry var det första som använde sig av social filtrering. Det var avsett för filtrering av elektronisk post, news-artiklar och nyhetsartiklar. Systemet tog hänsyn både till innehållet och till de betyg som det givits av andra läsare. Även Tapestry hade regler för att välja ut när ett dokument skulle presenteras, men här hade användaren möjlighet att vikta reglerna. Systemet var uppdelat i klient och server, där servern använde en uppsättning enkla regler för att avgöra om dokumentet skulle visas för användaren, och klienten sedan använde de mer sofistikerade viktade reglerna för att rangordna de dokument som skulle visas. (Oard 1997, s. 16-17) 2.4.4 URN URN var ett system för filtrering av news-artiklar. Här hade användarna möjlighet att dels göra explicita, binära bedömningar av dokumenten, dels att justera de nyckolord som användes för att beskriva dem. Användarna kunde både lägga till och stryka ord för att skapa en enligt deras mening bättre bild av dokumentets innehåll. (Oard 1997, s. 18-19) 2.4.5 GroupLens GroupLens är ett forskningsprojekt vid University of Minnesota som leds av John Riedl och Joseph Konstan där man bland annat studerar social filtrering. Ett projekt som fortfarande är aktivt är MovieLens, ett rekommendationssystem för film 4. (GroupLens 1999) Användaren sätter betyg på ett antal filmer på en femgradig skala, och systemet försöker sedan hitta andra användare som satt liknande betyg på samma filmer. Denna grupp används sedan för att sätta betyg på filmer som användaren inte sett själv, men som andra i gruppen har betygsatt. 1999 hade man över 80 000 användare. (Good 1999, s. 4) 2.4.6 TREC TREC (Text REtrieval Conference) är en sedan 1992 årlig konferens där man bland annat testar olika textfiltreringssystem under kontrollerade former, vilket är viktigt när man vill undersöka systemets effektivitet eller jämföra det med andra system. (Text REtrieval Conference 1999) Ett problem är att man gjort ganska starka antaganden om vad som menas med relevans, bland annat att det kan uttryckas som 4 MovieLens finns tillgängligt på www.movielens.umn.edu. 10
ett rent binärt värde samt att åsikter om relevans är konstanta över användare och tid. (Oard 1997, s. 15) 2.4.7 Intressanta utvecklingsriktningar Den stora utmaningen för informationshanteringssystem av alla typer just nu är väven, där det finns miljontals dokument med väldigt olika innehåll av varierande typ - text, ljud, rörliga bilder, stillbilder och program. För tillfället är mängden information alltför omfattande i förhållande till den datorkraft och det lagringsutrymme som man rimligtvis kan ha tillgång till för att ett rent rekommendationssystem ska kunna upprättas. De sökmotorer som för tillfället finns bygger i de flesta fall på ren innehållsbaserad filtrering, även om det ofta finns möjlighet till ungefärliga matchningar. Det finns dock undantag, till exempel Google 5 som använder sig av en typ av social filtrering när de olika alternativen betygsätts. Sidor som hänvisas till av många andra sidor ges ett högre betyg, där sidor som redan fått ett högt betyg väger tyngre. Eftersom det är människor som skapar de flesta hemsidor tar man alltså hjälp av vad författarna själva anser vara viktiga eller intressanta sidor. (Why Use Google? 1999) Även för informationsfiltrering är det intressant att kombinera innehålls- baserad och social filtrering. Hur långt man kan komma med innehållsbaserad filtrering beror på hur avancerad analys man kan göra av informationsenheternas innehåll, vilket i sin tur begränsas dels av datorresurser och dels av hur avancerade lingvistiska modeller man kan skapa - semantik är ju ett notoriskt problematiskt område inom datorlingvistiken. Människor är å andra sidan bra på att hitta innehållsmässiga likheter mellan dokument som kan ha stora skillnader om man bara ser till ytan, vilket gör att social filtrering kan ge ett viktigt tillskott till ett rent innehållsbaserat system, men för att social filtrering ska fungera krävs att antalet användare är tillräckligt stort. Hur man konstruerar användarprofilen för ett filtreringssystem är också ett område där vidare utveckling behövs. Betygssättning är komplicerat och därför otillförlitligt. Är till exempel ett dokument som innehåller all den information man vill ha men även mycket som är ovidkommande bättre eller sämre än ett som är fokuserat på rätt område men inte innehåller lika mycket? Det har visat sig att man ofta får bättre resultat av att se till hur användaren hanterar olika dokument, till exempel hur länge han läser dem, än om man bara använder sig av explicit betygsättning, men det är inte alltid så lätt att extrahera sådan information på ett bra sätt, och olika personer kan bete sig på olika sätt. En person med svenska som 5 Sökmotorn Google finns tillgänglig på www.google.com. 11
modersmål kanske spenderar längre tid med att läsa meddelanden på engelska helt enkelt för att de är mer svårbegripliga snarare än för att de är mer intressanta. Flerspråkiga system är över huvud taget problematiska, men också väldigt intressanta. 2.5 LSI Latent semantisk indexering, LSI, är en metod som bygger på vektormodellen. Det man framförallt ville komma till rätta med när man skapade metoden var problemen med synonymi och polysemi. Grundtanken är ganska enkel: man försöker gruppera dokument som har stora mängder gemensamma ord tillsammans, så att det ska gå lätt att hitta alla dokument med liknande innehåll även om man inte använt sig av exakt de termer som förekommer i dokumentet vid sökningen. Det finns flera sätt att uppnå detta. I den artikel där metoden presenteras (Deerwester 1990) använder man sig av singular value decomposition, SVD, en matematisk metod för att projicera mångdimensionella data till ett lägre antal dimensioner. När man gör detta kommer vissa vektorer helt naturligt att klumpas samman eftersom vissa av skillnaderna som fanns i de ursprungliga data kommer att minska eller helt försvinna. Om man väljer de nya basvektorerna på ett lämpligt sätt så kan man se till att de stora skillnaderna bevaras medan de mindre suddas ut något, och detta är ju precis vad man var ute efter. 2.5.1 SVD Single value decomposition (SVD) är ett av många namn på liknande metoder för att projicera mångdimensionella data till ett mindre antal dimensioner. Metoden är nära besläktad med bland annat egenanalys och spektralanalys. Grundtanken är att hitta ett antal ortogonala basvektorer för det rum som beskrivs av termdokumentmatrisen, varpå man väljer bort de basvektorer som ansvarar för de minsta skillnaderna mellan dokumenten. Inom SVD är detta mycket enkelt att göra eftersom man som en konsekvens av analysen får ett mått på variationen i de olika basvektorernas riktningar. Det går att visa att om man behåller de n basvektorer som ansvarar för de största variationerna i de ursprungliga data så får man den bästa möjliga projektionen till ett n-dimensionellt rum. Hur många basvektorer man vill ha beror på vilken anledning man har att minska antalet dimensioner. Om det är för att man vill få en visuell uppfattning om hur data är fördelade kan man av naturliga skäl inte ta mer än två eller tre. För informationsfiltrering verkar etthundra till några hundra vara lagom. Om man tar för få dimensioner blir indelningen alltför grov, och tar man för många förlorar man den sammanklumpning som man faktiskt vill ha. 12
Tekniska detaljer Målet är att approximera en m n-matris med, där är en m k-matris, är en diagonal k k-matris, och är en n k-matris. En godtycklig m n-matris kan sönderdelas i en produkt av tre andra matriser:, r So r Do m A = m To r n n r sådana att och har ortonormala kolumner och är diagonal. Detta kallas matrisens SVD, Singular Value Decomposition. är en m r-matris, en r r- matris och en n r-matris, där r är :s rang min(m,n). Om elementen i är ordnade i fallande storlek så kan man sätta de r-k minsta till 0 och få en projektion till k dimensioner,. x11 0... 0 0 x22......... 0... So 0 0 xrr x11 0... 0 0 x22......... xkk 0... 0... 0 So Det går att visa att om man nu multiplicerar ihop,, och så är den resulterande matrisen den matris av rang k som ligger närmast i minsta kvadrathänseende. Man kan nu stryka de rader och kolumner i som enbart innehåller nollor 13
för att få en ny diagonal matris av rang k, samt stryka motsvarande kolumner i respektive. Detta resulterar i att och för att få, r So r Do m A = m To r n n r där är en m k-matris, är en diagonal k k-matris, och är en n k-matris. Detta är precis vad vi vill ha. 2.5.2 För- och nackdelar samt jämförelser med andra system Fördelen med att representera dokumenten på detta sätt är, som nämnts ovan, att vi i viss mån kan sudda ut skillnaderna mellan närliggande ord, både synonymer och sådana som mycket ofta förekommer tillsammans. Detta gör att en profil som innehåller vissa ord även kan ge högt betyg åt dokument som innehåller ord som i någon mening ligger betydelsemässigt nära de angivna, även om just de orden inte förekommer. Man kommer alltså i viss mån ifrån problemet att det är lätt att missa intressanta dokument på grund av skillnader i ordval. Detta är även den stora fördelen med exakt matchning, som ju ofta missar relevanta dokument och fångar upp irrelevanta. Där har man ju inte heller någon hjälp av den betygssättning som ett vektorbaserat system kan ge med att åtminstone grovt sortera dokumenten. Den stora nackdelen med detta system är att det är mer resurskrävande än den vanliga vektormodellen, både för beräkningar och för lagring. Det krävs en hel del arbete för att göra den matrisuppdelning som behövs, och de resulterande matriserna T och D är i motsats till den ursprungliga matrisen A inte glesa, vilket gör att de kräver mer lagringsutrymme än om man använder sig av den vanliga vektormodellen. Under förutsättning att man har tillgång till kraftfulla datorer och gott om lagringsutrymme är detta dock inget större problem. Jag anser därför att LSI är en mycket lämplig metod för system som är tänkta att användas där sådana resurser finns, som till exempel större företag. LSI är i sig en helt innehållsbaserad metod, och lämpar sig därför främst för 14