Teknik och samhälle Datavetenskap och medieteknik Examensarbete 15 högskolepoäng, grundnivå Automatisk synonymgenerering med Word2Vec för query expansion inom e-handel Automatic synonym generation with Word2Vec for query expansion within E-Commerce Kemal Kojic Emil Petersson Examen: kandidatexamen 180 hp Huvudområde: datavetenskap Program: systemutvecklare Datum för slutseminarium: 2018-05-30 Handledare: Bengt Nilsson Examinator: Jesper Larsson
Sammanfattning I detta arbete undersöks hur väl automatisk synonymgenerering genom maskininlärningsmetoden Word2Vec, som tränats över en datamängd från Google News på hundra miljarder ord, lämpar sig för query expansion inom ehandel. Detta görs genom användning av produkt- och eventdata från ett välkänt modebolag där synonymer genereras utifrån söksträngar som loggats i eventdata genom olika metoder som i sin tur bildar synonymböcker som används i framtida sökningar med hjälp av query expansion. För att kunna besvara studiens forskningsfrågor utförs först en kvantitativ analys. Denna analys utförs på data som matchade köp, produktträffar, no-hits och söktid. Information om denna data genereras utifrån en söksimulator som simulerar loggade händelser från användarsessioner i ett ehandelssystem. Därefter filtreras de genererade synonymböckerna genom att ta bort synonymer som är kopplade till de söksträngar som producerat ett sämre resultat i simuleringen med synonymer, än utan. För att validera vårt resultat från den kvantitativa analysen utförs även en kvalitativ analys på skillnaden i sökresultatet som de olika metoderna tar fram, där vi undersöker vad det är för produkter som tas fram med hjälp av synonymerna, för att undersöka dess relevans. Våra tester uppvisar att ett lägre tröskelvärde leder till fler produkträffar och minskar antalet no-hits. Antalet produktträffar ökades med mellan 4%-10%, no-hits reducerades med mellan 11%-22%. I de fall där söksträngen har tilldelats bra synonymer påverkas relevansen av produkterna positivt då fler relevanta produkter dyker upp i sökresultatet. I de fall där söksträngen har tilldelats mindre bra synonymer påverkas relevansen av produkterna negativt då vissa irrelevanta produkter dyker upp i sökresultatet som användaren antagligen inte vill se i sitt sökresultat. I alla fall där de automatiskt genererade synonymerna används så befinner sig majoriteten av alla köpta produkter i den första halvan av sökresultatet, däremot minskar antalet köpta produkter på den första platsen i sökresultatet i alla fallen.
Abstract In this thesis, we examine automatic synonym generation through the use of the machine learning algorithm Word2Vec that has been trained using a Google News data set containing a hundred million words to find out if it is suitable for query expansions in e-commerce. This is examined through the use of product- and event data from a wellknown fashion company where synonyms are generated from search-queries that have been logged in the event data through different methods, resulting in thesaurus that are used in future searches with the use of query expansions. In order to answer the thesis research question, a quantitative analysis is performed. This analysis is performed on data such as matched payments, product matches, no-hits and search time. Information about this data is generated through a search simulator that simulates logged events from user sessions in a e-commerce system. The generated thesaurus are later filtered through the removal of synonyms that are connected to search queries whose results have produced worse results than the results without synonyms. In order to validate our results from the quantitative analysis a qualitative analysis is also performed on the difference of the search result that the different methods produce. In this qualitative analysis we research what type of products that the added synonyms produce in order to understand the relevance of the search query. Our tests show that the lower the threshold is, the higher the number of product hits and the lower the number of no-hits. Our tests shows that the number of product hits was increased by between 4%-10%, the number of no-hits was reduced by 11%-22%. In all of the tests using automatically generated synonyms, the results show that the majority of the purchased products are presented in the first half of the search result, however, in all of the tests using automatically generated synonyms the number of purchases in the first position of the search result was reduced.
Innehåll 1 Inledning 1 1.1 Mål och Syfte................................... 1 1.2 Frågeställning................................... 1 1.3 Avgränsningar.................................. 2 2 Tidigare forskning 2 2.1 Query Expansion................................. 2 2.2 Text mining och synonymgenerering...................... 3 3 Word2Vec 4 4 Metod 6 4.1 Systematisk litteraturstudie........................... 6 4.2 Produkt- och eventdata............................. 6 4.3 Dataformatering................................. 7 4.4 Synonymgenerering................................ 7 4.5 Söksimulator................................... 9 4.6 Filtrering av de genererade synonymböckerna................. 10 4.7 Implementation.................................. 11 4.8 Metoddiskussion................................. 11 5 Resultat 13 5.1 Utan synonymer................................. 14 5.2 Manuella synonymer............................... 15 5.3 Automatiska synonymer med 0.63 i cosine similarity............. 16 5.4 Automatiska synonymer med 0.68 i cosine similarity............. 17 5.5 Automatiska synonymer med 0.70 i cosine similarity............. 18 5.6 Filtrerade synonymer............................... 19 5.7 Jämförelser mellan resultat........................... 21 6 Analys och diskussion 24 6.1 Matchade Köp.................................. 24 6.2 Produktträffar.................................. 25 6.3 No-hits...................................... 26 6.4 Genomsnittlig söktid............................... 26 6.5 Distribution av matchade köp.......................... 27 6.6 Kvalitativ dataanalys.............................. 28 6.7 Den filtrerade synonymboken.......................... 28 6.8 Uppdagade problem och förslag på förbättring................ 29 7 Slutsatser och vidare forskning 30 8 Bilagor 33 8.1 Ordlista...................................... 33
1 Inledning I dagens internetsamhälle finns all världens information tillgänglig genom användandet av datorer, smartphones etc. På daglig basis används sökmotorer som t.ex. Google för att hitta olika typer av information, men även sökmotorer på hemsidor för att söka efter produkter eller tjänster. För att dessa sökmotorer skall producera ett resultat som tillfredsställer en användares informationsbehov används bland annat metoder för att utvinna kärnfull information ur större textmängder, till exempel för att associera textkällor till specika kategorier. Anledningen till detta är för att spara tid på att inte manuellt behöva läsa igenom stora samlingar text. Sådana metoder kan även användas för att utvinna synonymer utifrån textkällorna. Att använda automatiskt genererade synonymer för att utöka söksträngar har visats sig producera ett mer relevant sökresultat för förslag på dokument eller hemsidor som en användare kan tänkas leta efter [1, 2, 3]. Att formulera en söksträng som tar fram relevant information kan vara svårt. En användare är inte alltid helt hemtam i de domäner som informationsbehovet tillhör, och det kan därför ibland bli svårt att få ett system till att rekommendera det man faktiskt är ute efter. Domänkunskap kan tänkas vara viktigt för att söka efter information, eftersom valet av sökfras som ställs till systemet kan variera beroende på hur mycket kunskap man har inom domänen. Ett exempel på detta kan vara att en användare väljer att söka efter sökfraserna köksluckor och fronter där dessa två termer är synonymer i den domän de befinner sig i. Det kan därför tänkas att en användare vill få samma resultat oavsett vilken sökfras som söks efter då båda orden i detta fallet hör till samma produkt. Här ser vi möjligheten att undersöka hur en välanvänd metod för automatisk synonymgenerering påverkar sökresultatet inom e-handel. 1.1 Mål och Syfte Målet med denna studie är att utvärdera metoden Word2Vec för att se hur metodens synonymgenerering lämpar sig för att utöka söksfraser inom e-handel. Syftet med denna studien är att försöka förbättra processen för informationshämtning inom e-handel med hjälp av Word2Vec. Studien kommer alltså bidra till möjligtvis förbättrade sökmetoder som kommer att kunna användas av olika tjänster inom e-handel. 1.2 Frågeställning Vår studie ämnar att undersöka hur sökresultat inom e-handel påverkas av query expansion med hjälp av automatisk synonymgenerering genom Word2Vec, och utifrån detta har följande forskningsfrågor utformats: F1. Hur påverkas antalet träffar? F2. Hur påverkas no-hits? F3. Hur påverkas distributionen av tidigare köpta produkter i sökresultatet? F4. Hur påverkas relevansen av produkterna i sökresultatet? 1
1.3 Avgränsningar Vi har valt att avgränsa oss till att enbart använda oss utav engelska datamängder för synonymgenerering i form av Google News och eventdata. Detta har vi gjort eftersom datamängderna innehåller betydligt mycket mer data än de svenska motsvarigheterna och enligt Mikolov m. fl. [4] så förbättras synonymgenereringen av större datamängder. Dessutom är söksträngarna som används i arbetets tester enbart på engelska. För val av metod för synonymgenerering har vi valt att avgränsa oss till att endast använda Word2Vec som metod för synonymgenerering för att arbetet inte ska bli för stort. Vi valde en färdig implementation då vi inte fokuserar på att förbättra algoritmen utan vill istället se hur den lämpar sig för e-handelsdomänen. Vi har valt att avgränsa oss till att endast undersöka hur Word2Vec lämpar sig för query expansion inom mode. Motiveringen till detta är att den produkt- och eventdata som används för studien kommer från ett stort företag inom e-handelsindustrin som enbart säljer kläder, skor, accessoarer, smink etc. 2 Tidigare forskning Ett flertal problem har uppmärksammats inom effektivitet och resultat av sökningar efter olika typer av information. De problem som uppstår med de nuvarande metoderna är att de är begränsade i sina möjligheter till att hitta relevant information [1, 2, 5, 6]. Detta kan exempelvis bero på att ett söksystem utökar en söksträng med irrelevanta synonymer p.g.a. att systemet inte förstår en söksträngs kontext [7], möjligheterna att söka efter relevant information kan kräva en viss domänkunskap som t.ex. språk eller teknisk nivå [1, 6] eller att nuvarande metoder har begränsningar i sina möjligheter att modellera olika typer av associationer mellan ord [8, 9]. Att modellera både paradigmatiska- och syntagmatiska associationer kan vara viktigt för att fylla en användares behov, eftersom att ett visst ord har en specifik betydelse när en användare formulerar en söksträng [9]. Syntagmatiska relationer är ord som ofta dyker upp i en viss sekvens och tillsammans skapar en viss innebörd, medan paradigmatiska relationer är sådana ord som kan ersätta varandra utan att meningens innebörd ändras. Ett exempel på en syntagmatisk relation skulle kunna vara alla ord som bidrar till kontexten i meningen En hund ramlade ned från en stol. En paradigmatisk relation i denna mening hade kunnat vara att man bytte ut ordet hund mot katt eller stol mot säng som hade bidragit till meningen En katt ramlade ned från en säng. 2.1 Query Expansion Flera angreppssätt har tagits fram i tidigare forskning för att automatiskt försöka lösa bland annat problemen som nämnts ovan. Det som det rådande forskningsläget har gemensamt är att man i samtliga fall försöker utöka söksträngar för att på så sätt kunna förbättra och effektivisera sökresultat genom att utöka räckvidden för sökning men också att enbart ta fram ett sökresultat som faktiskt är relevant, och på så sätt få en bättre precision [7, 5, 10, 6, 1, 2, 11]. Precision innebär antalet relevanta resultat som returnerats genom det totala antalet returnerade resultatet [5]. Räckvidden i detta fallet innebär antalet relevanta resultat som returnerats genom totala antalet relevanta information som 2
finns i datamängden och kallas ofta recall i tidigare forskning [5]. Ett flertal studier menar att en viktig del av utökningen är den förbehandling man gör med den ursprungliga söksträngen [7, 2, 8, 3]. Denna förbehandling brukar utföras för att sålla ut sådan text som inte anses vara relevant för den datamängd man ska använda. Denna irrelevanta text kan bestå av speciella tecken som exempelvis används i XML- och JSONfiler, vanligt förekommande ord som tas bort med hjälp av metoder så som TFIDF och stop-word removal och filtrering av olika typer av ordklasser med hjälp av part of speech tagging och stemming. På detta sätt förhindrar man att ord som exempelvis en och ett som förekommer extremt många gånger i texter läggs till i utökningen av söksträngen. 2.2 Text mining och synonymgenerering För att skapa förutsättningar för att hitta ord eller termer som är relevanta för en söksträng, kan automatisk text mining utföras på stora källor av text för att skapa en synonymordbok. Dessa källor kan vara stora delar av Wikipedia [3], Google News [10, 11], Microsoft Research Paraphrase Corpus [8], Yelp betyg [8], hemsidor som har blivit förbehandlade så att de endast innehåller ren text [2], läkarjournaler [6], religiösa skrifter [1] m. fl. Den framtagna synonymordboken används i de flesta fallen för att förlänga söksträngar med länkade ord eller fraser med förhoppningen av att förbättra relevansen och räckvidden för sökresultatet [7, 5, 10, 6, 1, 2, 11], men även för att jämföras med manuellt skapade synonymer utifrån olika texter [3]. Att skapa förutsättningen för att kunna beräkna likheten mellan ord utifrån dessa enorma källor av text kan göras genom olika tillvägagångssätt. Det som generellt sätt görs är att man undersöker hur ofta olika ord dyker upp tillsammans i texterna som analyseras [1, 2, 3, 6]. Att generera synonymerna för att förlänga söksträngar kan göras på olika sätt. POST (Part of Speech tagging) använder sig av kontexten för att kunna tagga olika ordklasser i en text. Detta görs eftersom samma ord kan ha olika betydelser i olika kontexter, som exempelvis building som både kan vara ett verb och ett substantiv, och vikten läggs på hur ett ord används, snarare än vad ordet betyder [7]. Topic modeling används för att gruppera ord och tilldela dem kategorier som de tillhör för att lättare hitta liknande information [6]. Kluster av synonymer används även för query expansion. Sådana kluster kan genereras från lexikala synonymdatabaser som WordNet och kan innehålla flera nivåer av synonymer [2]. Metoder för Vector Space Model(VSM) är populära inom den tidigare forskningen. Dessa metoder genererar någon form av datastruktur som består av vektorer som representerar olika ord [3, 10, 1, 11]. Genom VSM delas texterna upp i matriser innehållandes olika ord, och genom att stega igenom dessa matriserna kan man beräkna hur ofta olika ord tenderar att uppstå tillsammans. Några av de metoder som är värda att nämna är Word2Vec och Latent Dirichlet Allocation (LDA). LDA är en typ av topic model-metod som används för att förklara varför vissa delar av den data man arbetar med är lika. Exempelvis kan en bit av en text som handlar om katter hamna under katt relaterat och kan på så vis användas för att sedan visa denna text som resultat när en användare söker efter kattrelaterade sökfraser [1, 6]. Word2Vec är en samling av modeller som genom neurala nätverk omvandlar text till vektorer. Vektorerna tränas genom att metoden försöker beräkna sannolikheten för att ett visst ord skall dyka upp baserat på orden runt 3
om kring, och detta görs genom hela texten som analyseras [11]. För att sedan beräkna hur lika, eller olika orden är, så utförs ytterligare beräkningar för att utifrån dessa vektorer dra slutsatser om vilket eller vilka ord som verkar vara mest lika det ord eller de termer som söktermen ursprungligen bestod av [3]. Ett flertal studier använder även vanliga synonymordböcker i sin process. WordNet, som är en lexikal databas och bland annat används för synonymer, är den källa som använts mest i den tidigare forskningen som undersökts. Synonymerna från WordNet används oftast i kombination med en metod för text mining, dels för query expansion men även för att beräkna likheten mellan meningar [5, 2, 8]. Med hjälp av text mining och query expansion uppvisar de framtagna metoderna ett bättre sökresultat i precision och recall [3, 5, 6, 1, 2]. Resultatet påverkas av kvalitén på synonymordboken som genereras, och det är därför viktigt att lägga fokus på metoden för synonymgenering [1]. Den tidigare forskningen visar ett forskningsgap av automatisk synonymgenerering för query expansion inom e-handel, men baserat på det uppvisade resultatet i den tidigare forskningen kan det tänkas att dessa metoder även bör uppvisa ett bättre sökresultat inom e-handel. 3 Word2Vec Distribuerade representationer av ord innebär att ord representeras som vektorer innehållandes reela tal. Många metoder använder sig utav en sådan representation av ord eftersom det har hjälpt träningsalgoritmer att uppnå bättre resultat genom att gruppera liknande ord [4]. Två av de mer kända metoderna som även har setts användas i tidigare forskning är Latent Semantic Analysis (LSA) och Latent Dirichlet Allocation(LDA). Tomas Mikolov m. fl. menar att tidigare forskning har bevisat att framtagningen av distribuerade representationer av ord genom neurala nätverk bidrar till en bättre prestation än tidigare nämnda metoderna [12]. Med bättre prestation menar de att neurala nätverk ger bättre resultat än LSA överlag och behöver inte använda lika mycket datorkraft på större datamängder till skillnad från LDA. Deras förslag på en ny implementation genom neurala nätverk är vad de kallar Word2Vec och är även den metod som kommer att användas i denna studie. Word2Vec kan användas för att mäta semantiska och syntaktiska likheter mellan ord. Exempel på semantiska likheter mellan ord skulle kunna vara likheten mellan Sverige och Stockholm jämfört med Danmark och Köpenhamn eller Sverige och Krona jämfört med Storbritannien och Pund. Word2Vec kan alltså dra slutsatser om semantiska likheter genom algebraiska operationer så som vektor( man ) - vektor( kung ) + vektor( kvinna ) som ska resultera i vektor( drottning ) om dessa ord förekommit tillräckligt ofta när man har tränat sin datamängd. Syntaktiska likheter är likheter mellan ord så som superlativ, plural, motsatser osv. Alltså exempelvis bred och bredast, mus och möss och bra och dålig. Dessa likheter beräknas genom att identifiera hur långt avstånd det är mellan de två olika vektorernas vinklar, något som kallas cosine similarity. Word2Vec erbjuder två olika arkitekturer för inlärning av distribuerade representationer av ord. Continuous Bag-of-Words Model(CBOW) och Continous Skip-gram Model [12]. CBOW försöker att förutspå vilket ord som borde sättas in i en specifik kontext. Exempelvis kan man befinna sig i kontexten Det är väder idag och CBOW försöker 4
då förutspå vilket ord det är vi letar efter. Har vi tränat tillräckligt mycket data kan vi få ett resultat som varmt eftersom att det ordet har förekommit flest gånger inom liknande kontexter. Continous Skip-gram tar emot ett ord som indata och försöker placera ut detta ord i en kontext. Ett exempel på detta skulle vara att man får ordet varmt som inmatning och då försöker förutspå den mest lämpliga kontexten för detta ord. Detta skulle kunna vara Det är väder idag. CBOW är snabbare än Skip-Gram men Skip- Gram presterar bättre när man arbetar med ord som inte förekommer väldigt ofta. I båda arkitekturerna används context-window som en parameter för hur många ord man ska hålla reda på innan och efter det ord man arbetar med. Mikolov m.fl. [4] menar att 5 ord innan och efter det ordet man arbetar med är ett bra värde på context-window när man ska träna sin datamängd. En visualisering på de två olika arkitekturerna kan hittas i figur 1. Figur 1: Jämförelse av CBOW och Continous Skip-gram För att träna sin data med hjälp av Word2Vec så används antingen Hierarchical Softmax eller Negative Sampling. Negative Sampling väljer ut ett ord ifrån ett specificerat antal ord som kontext och försöker hitta ett annat ord som ofta dyker upp tillsammans med det ordet man arbetar mot. När en sådan matchning har hittats så bildar dessa två orden ett par med värdet 1. Därefter tar man slumpmässigt fram k ord ifrån datamängden och bildar par med det ord vi arbetar mot där k representerar antalet slumpmässigt utvalda ord man väljer att ta fram. Dessa paren sätts sedan till 0. Enligt Mikolov m.fl. [4] är 5-20 slumpmässigt utvalda ord är bra värde för mindre datamängder medan större datamängder inte behöver mer än 2-4 stycken slumpmässigt utvalda ord. Om man exempelvis hade arbetat med meningen Jag gillar att äta flingor till frukost. med fokus på ordet äta och k hade satts till 3 så hade resultatet av negative sampling kunnat se ut som i följande tabell. 5
Tabell 1: Exempel på Negative Sampling för Jag gillar att äta flingor till frukost. Kontext Ord Mål Äta Flingor 1 Äta Kung 0 Äta Hund 0 Äta Att 0 Hierarchical Softmax använder sig av ett binärt träd där löven representerar alla ord som finns i den datamängd man arbetar i och alla inre noder representerar sannolikhet. Med hjälp av detta binära träd kan man sedan beräkna sannolikheten av att ett ord förekommer i liknande kontexter som ett annat. I Word2Vec använder sig Hierarchical Softmax av ett binärt huffmanträd för att dessa tilldelar korta koder för frekventa ord som resulterar i snabbare träning av datamängden [4]. Ett problem med stora datamängder av text är att de mest frekventa orden som dyker upp ofta är ord som inte är lika viktiga som andra ord. Dessa ord kan dyka upp flera miljontals gånger. Detta kan exempelvis bidra till att kopplingar som hund och valp inte får lika bra likhetsbedömning som exempelvis hund och en. För att förhindra att ord som dessa ska vinna över ord som vi anser vara mer intressanta så använder vi oss av subsampling i Word2Vec. Detta innebär att vi inte hanterar dessa högt förekommande orden på samma sätt som de mer intressanta orden och därför löser vi dessa problem. Mikolov m.fl. [4] menar att ett sumbsampling värde på runt 10 5 är ett bra värde att använda för träningen av datamängden. 4 Metod 4.1 Systematisk litteraturstudie För att samla data och information om det rådande forskningsläget som kommer att stå till grund för denna studie har en systematisk litteraturstudie utförts. Denna systematiska litteraturstudie utförs för att vi ska hitta relevant information inom forskningsområdet och inte bara välja ut artiklar som passar oss. Söksträngen som använts i sökningsprocessen av artiklar delades in i två sektioner, med de boolska operatorerna AND mellan de två sektionerna och OR mellan var ord i sektionerna då vi ser att antingen eller kan ta fram relevant information, där den ena sektionen representerade text- och/eller data mining och den andra sektionen representerade synonymgenerering. Sökningarna utfördes i databaserna IEEE och ACM då dessa anses vara relevanta inom området datavetenskap och således relevanta för denna studie. För att säkerhetsställa att forskningen som står till grund för arbetet är aktuell filtrerades resultatet till att enbart visa artiklar från 2011 och framåt, samt endast konferens- och journalartiklar. Söksträngen som användes i litteraturstudien såg ut som följande: (( text mining OR data mining ) AND (synonym* OR thesaurus OR syntagmatic OR paradigmatic )). 4.2 Produkt- och eventdata Den data som används för denna studien kommer från ett välkänt företag inom mode och e-handel. Anledningen till att denna data används är för att datamängden innehåller 6
mycket information och för att företaget som äger den har gett godkännande om att den får användas inom forskningssyfte. Den består huvudsakligen av en produktkatalog och eventloggar. Två olika datamängder används av event loggade på separata dagar. Eventloggarna består av event som innehåller information som exempelvis söksträngar, antal sökträffar, information om köp som exempelvis hur många produkter som köpts och vilka positioner i sökresultatet som de köpta produkterna har befunnit sig i. Av alla event som finns i datamängderna så innehåller den första datamängden 11322 event som är sökningar, och den andra 2378. Sökfraserna från den första datamängden kommer att användas för synonymgenerering. Produktkatalogen innehåller alla produkter, och data om produkterna, som fanns till salu under den dagen som eventen loggades. Produktdatan innehåller information som exempelvis titel, produktbeskrivning, produktgrupp, storlekstyper m.m. 4.3 Dataformatering För att förbereda datan för simulatorn som används för att utvärdera metoden i ett senare steg så tranformeras datamängden innehållande all produktinformation då produktkatalogen är anpassad för en äldre version av simulatorn. Produktkatalogen representeras i form av en XML-fil som behöver läsas in och struktureras om fullständigt innan data kan skrivas till en ny fil. Detta görs genom en Java-implementation eftersom att simulatorn som används är sedan tidigare implementerad i Java, och blir därför lättare att integrera med. Java-implementationen skapar upp den nya filstrukturen som sedan fyller noderna med data från den tidigare produktkatalogen. All produktinformation bevaras under processen och endast strukturen förändras. 4.4 Synonymgenerering Synonymerna som används för att utvärdera metoden och besvara forskningsfrågorna genereras utifrån loggad eventdata. För framtagandet av synonymerna till denna eventdata används färdigtränade vektorer som tränats genom Word2Vec utav skaparna till metoden. Vektorerna har tränats på en datamängd från Google News innehållandes 100 miljarder ord, och resulterade i 300 vektordimensioner som representerar 3 miljoner unika ord och fraser. Dessa vektorer tränades med hjälp av CBOW-arkitekturen med 300 vektordimensioner, en context window på 5, sample size på 10 5 och med hjälp av träningsalgoritmen negative sampling. Som tidigare nämnts i detta arbete så anses de valda värdena för parametrarna vara optimala för datamängdens storlek [4]. Träningen resulterar i de färdigtränade vektorerna som består av 3 miljoner ord och fraser kopplade till ord med semantiska likheter. Eftersom att Mikolov m.fl. anser att stora datamängder med många dimensioner presterar bättre valdes denna färdigtränade datamängd då det var den största vi kunde hitta [12]. Söksträngarna från eventdatan används för att ta fram synonymerna som används för studiens experiment. För att göra detta bearbetas söksträngarna på två olika sätt. I det första skedet delas söksträngen upp ord för ord, och i det andra skedet delas orden i söksträngen upp parvis enligt ordningen de uppstår. Anledningen till att vi delade upp det på detta viset är för att det engelska språket har många särskrivna ord. Ett exempel på detta hade varit det svenska ordet fotbollsskor som i engelskan istället hade hetat football shoes. Tabellerna nedan illustrerar exempel på hur söksträngar bearbetas: 7
Tabell 2: Bearbetning av söksträngen Black Leather Jacket Black Leather Jacket Ord Fraser Black Black Leather Leather Leather Jacket Jacket Tabell 3: Bearbetning av söksträngen Men Sporting Sweatshirt Men Sporting Sweatshirt Ord Fras Men Men Sporting Sporting Sporting Sweatshirt Sweatshirt När söksträngen har behandlats påbörjas synonymgenereringen. För varje ord och/eller fras genereras nio olika synonymfiler med respektive tröskelvärde på 0.63, 0.68 och 0.70 i cosine similarity. För varje tröskelvärde sparas de 5, 10 och 100 närmsta synonymerna i separata filer. Motiveringen till att olika antal synonymer väljs är för att undersöka huruvida man kan tjäna på att hämta ett färre antal synonymer för ett lägre tröskelvärde, alternativt att hämta ett större antal synonymer för ett högre tröskelvärde. När synonymerna genereras så hämtas max det specificerade antalet, oavsett om det finns fler synonymer som matchar kriteriet för tröskelvärde. I vissa fall händer det att vissa ord vars kopplade synonymer som har låg cosine similarity faktiskt kan anses vara bra synonymer trots deras låga cosine similarity. I fall som dessa vill man inte gå miste om dessa synonymerna då vi förlorar värdefull information på detta vis. På samma sätt kan vissa ord ha flertalet synonymer som anses vara bra och därför har synonymer genererats utifrån olika tröskelvärden och olika antal synonymer. Risken med ett lägre tröskelvärde är däremot att få med synonymer som inte är relevanta för sökningen, detta försöks minimeras genom att endast hämta ett fåtal synonymer per ord, exempelvis 5. Respektive tröskelvärden och framtagning av antal synonymer valdes ut efter manuell granskning av automatiskt generade synonymer och representerar låg, medium och hög cosine similarity. De hämtade synonymerna skrivs sedan ut till en synonymbok för respektive tröskelvärde och antal hämtade synonymer. Synonymboken representeras av en XML-fil för att kunna användas i söksimularorn. Tabell 4: Antalet synonymer som genereras från Google News datamängd för respektive tröskelvärde Cosine Similarity 0.63 0.68 0.70 Topp 5 8003 4375 3187 Topp 10 11938 5808 4009 Topp 100 38434 12511 6779 Manuellt framtagna synonymer används också för studiens experiment för att jämföra 8
hur mycket bättre eller sämre det blir att försöka generera synonymer automatiskt jämtemot manuellt. Dessa synonymerna är en del av e-handelsplattformen som studien baseras på och är framtagna utifrån produktkatalogen och e-handelstjänsten som används för studiens experiment. Eftersom synonymerna tillhör e-handelsplattformen är datamängden inte tillgänglig för allmänheten. Processen för att ta fram de manuella synonymerna har skett före detta arbete och är ingenting som har gjorts under studiens gång utan används endast för jämförelser. De manuella synonymerna tas fram utifrån produktdatan och är strukturerade så att de oftast går till en relevant produktkategori, snarare ett liknande ord. Ett exempel på detta är exempelfrasen Baseball Jacket som är kopplad med synonymen Outerwear. De manuella synonymerna är alltså subjektivt framtagna utifrån vad som anses vara lämpliga synonymer för produkterna i produktkatalogen. Processen för att manuellt ta fram synonymer är tidskrävande eftersom man måste ha personal som spenderar tid på att skriva ned ett stort antal synonymer istället för att ha det som en automatiserad process. Ett diagram på hur processen ser ut för metoden till experimentet finns att se i figur 2. Figur 2: Processen som körs från början till slutet av simuleringen. 4.5 Söksimulator Simulatorn som används för studiens experiment är utvecklad utifrån den e-handelsplattform som den produkt- och eventdata som används för studien kommer ifrån, och är utvecklad i forskningssyfte av företaget som äger e-handelsplattformen. E-handelsplattformen är en produkt som utvecklas och säljs av ett företag och eftersom att simulatorn är en del av plattformen så kommer simulatorn enbart att beskrivas övergripande i följande avsnitt. Simulatorn är sessionsbaserad och simulerar de loggade eventen för att ta reda på skillnader efter att exempelvis synonymer tillagts. Simulatorn använder riktiga sökningar som utförts av en användare och returnerar bland annat antalet produktträffar och köp 9
som användare gjort efter sökningen. Genom att tillsätta synonymer kommer resultatet för sökningarna troligtvis att förändras och förflytta sig. Ett exempel på detta kan vara att en kund sökt efter black leather jacket och köpt produkten på den 6e platsen i sökresultatet. När synonymerna sedan tillsätts utförs samma sökning i simulatorn och så utvärderar den om köpen som tillhör sökningen flyttats framåt eller bakåt i sökresultatet. Sökningarna som utförs returnerar relaterade produkter till sökord eller fraser från produktkatalogen. Simulatorn utför även automatisk korrigering av stavning eller pluralisering för sökningar, ett exempel på detta är att vid en sökning på ordet hoop utförs även sökningar för ordet hoops, samma princip används vid uppslag av synonymer. Synonymerna utnyttjas genom att simulatorn använder sig utav den booleska operatorn OR för att utföra sökningen med olika kombinationer av synonymer för originalsökfrasen och returnerar ett resultat för alla kombinationer. För att ta fram köprelaterade resultat använder sig simulatorn av händelser som är sammanhängande i sessioner. Simulatorn går igenom alla sökningarna som har lett till ett köp i en session och ökar Köpnivå när den hittar hittar ett köp av en produkt som befinner sig inom de första tjugo produkterna i sökresultatet. Anledningen till att en gräns dras efter de tjugo första platserna i sökresultatet är för att det generellt sett är den mängden produkter som visas upp per sida i sökresultatet, och att det är önskvärt att förbättra det sökresultat som användaren bemöts av direkt vid sökning. För att en användare skall kunna se de produkter som kommer efter de tjugo första platserna skulle exempelvis kunna kräva att användaren manuellt klickar sig vidare till nästa sida i sökresultatet, vilket är något som e-handelsplattformen vill minimera då det kan antyda att produkterna som befinner sig i toppen av sökresultatet är irrelevanta. I testerna som använder sig av synonymer förändras dessa värden när följande inträffar: En användare har exempelvis i en session använt söksträngen hoops men inte köpt en produkt från sökresultatet, därefter söker användaren med söksträngen basketball och köper en produkt från sökresultatet. Simulatorn observerar sedan om basketball finns som synonym till hoops, och om synonymerna matchar ökar matchade köp om produkten fanns bland de tjugo första produkterna i sökresultatet. 4.6 Filtrering av de genererade synonymböckerna För varje simulerad sökning producerar simulatorn även ett numeriskt värde, som representerar vilken effekt söksträngen har. Detta värde beräknas enligt följande formel: Figur 3: Formel för att beräkna hur bra en söksträng är. För att försöka förbättra synonymerna som genereras så används värdet som nämns ovan för att ta bort synonymer till söksträngar. Detta görs genom att jämföra effekten för en söksträng med synomer och utan synonymer, om söksträngens effekt är lägre med synonymer än utan, tas alla synonymer bort enligt samma sätt som de genererats. Detta utförs på synonymböckerna som leder till minst respektive flest matchade betalningar i söksimulatorn. De filtrerade synonymböckerna används sedan i söksimulatorn. Anledning- 10
en till att vi har valt att utföra förbättringen på de synonymböcker med minst respektive flest matchade betalningar är för att vi vill undersöka hur stor skillnad det kan bli på resultatet som visar minst respektive mest relevanta produkter. Testmängden som används för att utvärdera de filtrerade synonymböckerna är loggad dagen efter träningsmängden. En visuell kvalitativ analys kommer även att utföras på filer som innehåller visuella skillnader för sökningarna som görs i simuleringarna. Dessa filer visar skillnader i sökresultatet för med- och utan användning av synonymer. Sökresultatet i filerna består av bilder på produkterna som returnerats, samt vilka synonymer som använts för söksträngen. Detta resultat visar alltså vilka extra produkter som hämtas genom användandet av synonymer. 4.7 Implementation För att utföra våra tester utvecklas en Maven-modul i programmeringsspråket Java. Anledningen till detta är för att den simulator som integreras med modulen också är byggd i Java. DeepLearning4j är ett java-bibliotek som används för att kunna arbeta med datamängden av vektorer som genereras av Word2Vec och som i sin tur används för att beräkna likheter mellan olika ord som tas fram från eventdatan och dess synonymer. Anledningen till att DeepLearning4j valdes är för att detta bibliotek är rekommenderat för javautvecklare på Google-Codes sida om Word2Vec [13]. Synonymerna till söksträngarna från eventdatan skrivs ut i XML-format för att kunna läsas av simulatorn. 4.8 Metoddiskussion Experiment anses vara lämpligast för denna studie då den datagenerering som görs består av observationer i form av event från e-handelsplattformen som sedan kan analyseras enligt en kvantitativ dataanalys. Eftersom att den eventdata som används bygger på observationer från ett riktigt e-handelssystem i produktion där användare har skrivit in söksträngar så bidrar detta till att datan blir mer trovärdig att användas i ett experiment. Användarna har alltså inte varit medvetna om att datan kommer att användas för testerna och således sökt i normala omständigheter. Enligt Oates har det bevisats att data som är framtagen av människor som vet om att deras data kommer att användas i experiment kan leda till att datan blir missvisande [14, pp. 164-165]. Detta för att människor i vissa fall väljer att utföra val som de vanligtvis inte hade gjort. För att kunna validera resultatet av de filtrerade synonymordböckerna har vi annan testdata än träningsdata. Testdatan som används under simuleringen är hämtat från samma system som träningsdatan, fast från dagen därpå. Av föregående anledningar anser vi att vi uppfyller intern validitet i den datan vi har valt att utföra våra experiment på. För att kunna generalisera resultatet för studien har vi valt att träna Word2Vec på en datamängd från Google News. Datamängden innehåller 100 miljarder ord hämtade från nyheter för en rad olika kategorier som exempelvis handel, världen, hälsa, politik, teknologi, sport, vetenskap, underhållning m.fl [15]. Synonymerna genereras alltså inte utifrån enbart domänspecifik data inom mode och det kan därför tänkas att resultatet är representativt för andra områden inom e-handel. Den data som genereras från testerna och som står till grund för att kunna besvara F. 1-3 är kvantitativ data eftersom den representerar exempelvis antal sökträffar, antal sök som lett till köp och så vidare. En kvantitativ dataanalys är därför lämplig som metod [14, p. 172]. 11
För att besvara F. 4 och ytterliggare kunna validera och förstå relevansen av resultatet från den kvantitativa analysen kommer vi även att utföra en visuell kvalitativ analys av skillnaden mellan de produkter som hämtats för söksträngar med- och utan synonymer för de filtrerade synonymböckerna. Genom att undersöka skillnaderna i sökresultaten kan vi avgöra huruvida de extra produkterna som hämtats med hjälp av synonymer är relevanta eller inte. 12
5 Resultat För att utvärdera huruvida de framtagna synonymerna påverkar resultatet av sökningarna kommer experimentet använda sig av samma grupp, eventdatan, med för- och eftertest. Simulatorn körs ett antal gånger, där den första körningen körs utan användning av synonymer och resterande körningar använder sig av olika typer av genererade synonymer. För att ge en tydligare bild av resultatet körs även simulatorn med synonymer som skapas manuellt utifrån produktkatalogen. Resultatet av testerna jämförs för att besvara forskningsfrågorna. Testerna genererar följande data: Sessioner = Antalet session som har loggats i eventdatan. Köpta Produkter = Totala antalet köpta produkter i de loggade eventen. Sessioner med köp = Antalet sessioner som innehåller köp. Sessioner med köp efter sök = Antalet sessioner med köp efter att en sökning gjorts. Sökningar = Antalet event som är sökningar. Köp = Totala antalet köp i eventdatan. Matchade köp = Antalet köpta produkter som visas på de tjugo första platserna i sökresultatet. Distribution av matchade köp = Tabellen representerar antalet matchade köp för varje position i sökresultatet. Första positionen representerar alltså hur många av de köpta produkterna som varit först i sökresultatet. Sista positionen representerar hur många av de köpta produkterna som legat på tjugonde platsen i sökresultatet. Det som eftersträvas är att matcha så många köp som möjligt som möjligt så tidigt som möjligt i sökresultet. Antal sökningar = Antalet event som är sökningar. Produktträffar = Antalet produkter som sökningarna returnerat. Genomsnittlig söktid (ms) = Genomsnittlig söktid i millisekunder. Topp 5, 10, 100 = Maxantalet synonymer som hämtas för ett ord eller en fras. Filtrerad = För denna kolumnen har vi använt oss av synonymboken från kolumnen Topp 100, men tagit bort alla synonymer till söksträngar som fått försämrad effekt enligt Figur 3, därefter har vi kört om simuleringen med den nya synonymboken. Tabell 5: Eventdata Sessioner 460689 Köpta Produkter 37990 Sessioner med köp 13604 Sessioner med köp efter sök 2573 Sökningar 11322 Köp 13805 Tabellen ovan innehåller övergripande information som finns i den eventdata som används för testerna i simulatorn. 13
5.1 Utan synonymer Tabell 6: Simulatorresultat del 1 utan synonymer Antal sökningar 11322 Matchade köp 3192 Produktträffar 160456 No-hits 2327 Genomsnittlig söktid (ms) 84.78 Tabellen ovan innehåller resultatet för simulatorn som körs utan användning av synonymer. Utan några synonymer hittas 3192 köpta produkter inom de tjugo första produkterna i sökresultatet. 2327 sökningar genererar 0 produktträffar och totalt når alla sökningarna till 160456 produkter. Genomsnittlig söktid för simulatorn att utföra sökningarna är 84.78ms. Tabell 7: Simulatorresultat del 2 utan synomer Position Köpnivå 1 788 2 359 3 325 4 236 5 151 6 151 7 127 8 151 9 117 10 121 11 91 12 137 13 36 14 77 15 62 16 67 17 60 18 54 19 44 20 38 Tabellen ovan visar distributionen av de matchade köpen för testerna som körs utan användning av synonymer. 14
5.2 Manuella synonymer Tabell 8: Simulatorresultat del 1 för manuella synonymer Antal sökningar 11322 Matchade köp 3265 Produktträffar 164732 No-hits 2106 Genomsnittlig söktid (ms) 99.15 Tabellen ovan innehåller resultatet för simulatorn som körs med användning av manuellt skapade synonymer. Med de manuellt framtagna synonymerna hittas 3265 köpta produkter inom de tjugo första produkterna i sökresultatet. 2106 sökningar genererar 0 produktträffar och totalt når alla sökningarna till 164732 produkter. Genomsnittlig söktid för simulatorn att utföra sökningarna är 99.15ms. Tabell 9: Simulatorresultat del 2 för manuella synonymer Position Köpnivå 1 798 2 358 3 331 4 245 5 153 6 158 7 130 8 170 9 121 10 122 11 97 12 140 13 34 14 79 15 58 16 68 17 61 18 60 19 43 20 39 Tabellen ovan visar distributionen av de matchade köpen för testerna som körs med användning av manuellt genererade synonymer. 15
5.3 Automatiska synonymer med 0.63 i cosine similarity Tabell 10: Simulatorresultat del 1 för automatiska synonymer från Google News med 0.63 i cosine similarity Topp 5 Topp 10 Topp 100 Antal sökningar 11322 11322 11322 Matchade köp 3073 3077 3005 Produktträffar 171968 175032 176879 No-hits 1967 1849 1807 Genomsnittlig söktid (ms) 119.33 137.13 197.24 Tabellen ovan innehåller resultatet för simulatorn som körs med användning av automatiskt genererade synonymer utifrån vektorerna som tränats med datamängden från Google News. Synonymerna som används för resultatet ovan genereras med ett tröskelvärde på 0.63 i cosine similarity. Tabell 11: Simulatorresultat del 2 för automatiska synonymer med 0.63 i cosine similarity Köpnivå Position Topp 5 Topp 10 Topp 100 1 713 671 658 2 376 389 368 3 280 280 252 4 216 232 211 5 195 190 199 6 153 156 175 7 84 90 90 8 123 130 129 9 133 127 130 10 98 120 121 11 98 94 81 12 107 78 80 13 52 39 47 14 90 99 84 15 69 74 61 16 72 90 87 17 37 43 56 18 78 64 70 19 55 52 49 20 44 59 57 Tabellen ovan visar distributionen av de matchade köpen för testerna som körs med användning av automatiskt genererade synonymer över tröskelvärdet 0.63. 16
5.4 Automatiska synonymer med 0.68 i cosine similarity Tabell 12: Simulatorresultat del 1 för automatiska synonymer från Google News med 0.68 i cosine similarity Topp 5 Topp 10 Topp 100 Antal sökningar 11322 11322 11322 Matchade köp 3139 3148 3108 Produktträffar 168165 169111 169593 No-hits 2046 2015 2003 Genomsnittlig söktid (ms) 105.79 113.58 125.39 Tabellen ovan innehåller resultatet för simulatorn som körs med användning av automatiskt genererade synonymer utifrån vektorerna som tränats med datamängden från Google News. Synonymerna som används för resultatet ovan genereras med ett tröskelvärde på 0.68 i cosine similarity. Tabell 13: Simulatorresultat del 2 för automatiska synonymer med 0.68 i cosine similarity Köpnivå Position Topp 5 Topp 10 Topp 100 1 739 729 719 2 389 400 401 3 310 311 311 4 198 201 196 5 184 181 174 6 176 181 186 7 90 96 89 8 150 150 149 9 114 110 112 10 104 104 103 11 103 91 88 12 120 103 97 13 41 36 45 14 90 97 92 15 64 73 69 16 44 70 65 17 55 59 64 18 60 51 56 19 52 47 42 20 56 58 50 Tabellen ovan visar distributionen av de matchade köpen för testerna som körs med användning av automatiskt genererade synonymer över tröskelvärdet 0.68. 17
5.5 Automatiska synonymer med 0.70 i cosine similarity Tabell 14: Simulatorresultat del 1 för automatiska synonymer från Google News med 0.70 i cosine similarity Topp 5 Topp 10 Topp 100 Antal sökningar 11322 11322 11322 Matchade köp 3208 3208 3208 Produktträffar 167102 167201 167383 No-hits 2061 2063 2058 Genomsnittlig söktid (ms) 99.76 101.02 107.04 Tabellen ovan innehåller resultatet för simulatorn som körs med användning av automatiskt genererade synonymer utifrån vektorerna som tränats med datamängden från Google News. Synonymerna som används för resultatet ovan genereras med ett tröskelvärde på 0.70 i cosine similarity. Tabell 15: Simulatorresultat del 2 för automatiska synonymer med 0.70 i cosine similarity Köpnivå Position Topp 5 Topp 10 Topp 100 1 762 756 752 2 386 383 383 3 313 314 313 4 207 204 202 5 190 197 198 6 168 170 175 7 99 103 197 8 142 144 145 9 122 122 126 10 123 124 123 11 91 89 83 12 130 113 114 13 58 53 60 14 82 87 88 15 59 59 60 16 58 66 66 17 49 54 52 18 62 62 62 19 62 63 64 20 45 45 45 Tabellen ovan visar distributionen av de matchade köpen för testerna som körs med användning av automatiskt genererade synonymer över tröskelvärdet 0.70. 18
5.6 Filtrerade synonymer För utvärdering över hur de filtrerade synonymerna påverkar sökningar i systemet har vi använt oss av eventdata insamlad en dag efter den eventdata som använts i tidigare experiment. Tabell 16: Eventdata Sessioner 273598 Köpta Produkter 57664 Sessioner med köp 12074 Sessioner med köp efter sök 2133 Sökningar 8378 Köp 12254 Tabell 17: Simulatorresultat och jämförelser för filtrerad synonymbok med 0.63 cosine similarity Utan Synonymer 0.63 Ofiltrerad 0.63 Filtrerad Antal sökningar 8378 8378 8378 Matchade köp 2822 2648 2806 Produktträffar 117152 130101 127654 No-hits 1787 1382 1440 Genomsnittlig söktid (ms) 79.55 205.51 157.37 Tabellen ovan innehåller resultatet för simulatorn som körs med användning av den filtrerade synonymboken med tröskelvärdet 0.63. 19
Tabell 18: Simulatorresultat del 2 för filtrerad synonymbok med 0.63 cosine similarity Köpnivå Position Utan Synonymer 0.63 Ofiltrerad 0.63 Filtrerad 1 622 512 580 2 373 338 363 3 267 230 262 4 211 141 175 5 157 156 173 6 139 156 167 7 178 176 182 8 95 90 83 9 92 90 81 10 96 97 80 11 90 99 84 12 77 67 72 13 64 78 67 14 56 69 80 15 59 56 60 16 36 43 45 17 50 62 77 18 76 91 81 19 34 35 36 20 50 91 58 Tabellen ovan visar distributionen av de matchade köpen för testerna som körs med användning av den filtrerade synonymboken med tröskelvärdet 0.63. Tabell 19: Simulatorresultat del 1 för filtrerad synonymbok med 0.70 cosine similarity Utan synonymer 0.70 ofiltrerad 0.70 filtrerad Antal sökningar 8378 8378 8378 Matchade köp 2822 2851 2888 Produktträffar 117152 122762 122417 No-hits 1787 1595 1597 Genomsnittlig söktid (ms) 79.55 102.84 101.39 Tabellen ovan innehåller resultatet för simulatorn som körs med användning av den filtrerade synonymboken med tröskelvärdet 0.70. 20
Tabell 20: Simulatorresultat del 2 för filtrerad synonymbok med 0.70 cosine similarity Köpnivå Position Utan Synonymer 0.70 ofiltrerad 0.70 filtrerad 1 622 609 613 2 373 354 384 3 267 275 269 4 211 184 205 5 157 158 161 6 139 177 164 7 178 183 189 8 95 83 82 9 92 99 92 10 96 87 93 11 90 93 83 12 77 79 74 13 64 68 72 14 56 41 55 15 59 52 61 16 36 48 44 17 50 60 64 18 76 98 93 19 34 39 35 20 50 64 55 Tabellen ovan visar distributionen av de matchade köpen för testerna som körs med användning av den filtrerade synonymboken med tröskelvärdet 0.70. 5.7 Jämförelser mellan resultat Resultaten av antalet no-hits, antalet produktträffar, antalet matchade köp och den genomsnittliga söktiden ifrån de olika sökmetoderna som har tagits fram jämförs i kommande diagram med det resultat som framtagits utan synonymer och ställs mot varandra genom att observera den procentuella skillnaden mellan dessa. 21
Figur 4: Jämförelse mellan antalet matchade köp i de olika sökmetoderna som använts i söksimulatorn. Diagrammet ovan visar den procentuella skillnaden av antalet matchade köp för alla testerna som körs jämfört med det resultat som framtagits utan några synonymer alls. Resultatet visar att den filtrerade synonymboken från tröskelvärdet 0.70 matchar flest köp med en ökning av matchade köp på 2.33%. Alla automatiskt genererade synonymer, förutom de som genereras över tröskelvärdet 0.70, matchar färre köpta produkter än testet som inte använder synonymer. För att den automatiserade versionen av genererade synonymer ska anses som användbar krävs det att den procentuella skillnaden ska vara positiv. Figur 5: Jämförelse mellan antalet produktträffar i de olika sökmetoderna som använts i söksimulatorn. 22
Diagrammet ovan visar den procentuella skillnaden av antalet produktträffar för alla testerna som körs jämfört med det resultat som framtagits utan några synonymer alls. De automatiskt genererade synonymerna bidrar till fler produktträffar i alla tester i jämförelse med de manuellt genererade synonymerna eller inga synonymer alls. De automatiskt genererade synonymerna som framtagits från de 100 första synonymerna i tröskelvärdet 0.63 visar att det sker en ökning på 10.23% i produktträffar. Detta bidrar till att ytterligare 12949 produkter dyker upp i användares sökresultat i jämförelse med det fall då inga synonmer används alls. Resultatet visar att ju fler synonymer som genereras och används, desto fler produktträffar får sökningarna. Figur 6: Jämförelse mellan antalet no-hits i de olika sökmetoderna som använts i söksimulatorn. Diagrammet ovan visar den procentuella skillnaden av antalet no-hits för alla testerna som körs jämfört med det resultat som framtagits utan några synonymer alls. De automatiskt genererade synonymerna bidrar till färre no-hits i alla tester i jämförelse med de manuellt genererade synonymerna. Ju färre no-hits desto bättre. 23
Figur 7: Jämförelse mellan den genomsnittliga söktiden i de olika sökmetoderna som använts i söksimulatorn. Diagrammet ovan visar den procentuella skillnaden av den genomsnittliga söktiden för alla testerna som körs jämfört med det resultat som framtagits utan några synonymer alls. För att den automatiserade processen av synonymgenereringen ska anses vara användbar så ska den genomsnittliga söktiden vara så låg som möjligt. Resultatet visar att ju fler synonymer som genereras och används, desto längre blir den genomsnittliga söktiden. Ju lägre söktid desto bättre. 6 Analys och diskussion I den första delen av analysen utför vi en kvantitativ analys på den data som genererats från söksimulatorn, därefter utför vi en kvalitativ analys för att få en bättre förståelse för relevansen av resultatet. 6.1 Matchade Köp För det lägre tröskelvärdet 0.63, vilket även är det tröskelvärde som gett lägst matchade betalningar, förlorar simuleringen mellan 114-186 (3.5%-5.8%) betalningar jämfört med simuleringen utan synonymer. En förlust av matchade betalningar inträffar även för tröskelvärdet 0.68, där 52-83 (1.6%-2.6%) betalningar försvinner i jämförelse med simuleringen utan synonymer. Detta indikerar att de extra synonymer som genereras utifrån tröskelvärdna på 0.63 och 0.68 leder till produktträffar som orsakar ett brus av irrelevanta produkter i sökresultatet och förflyttar de relevanta produkterna som köpts för söksträngarna längre bak i resultatet. I alla fallen av simuleringarna med synonymer som genererats utifrån tröskelvärdet 0.70 leder till en förbättring på 17 (0.5%) fler matchade köp än simuleringen utan synonymer. Denna siffran är inte särskilt hög, därför är det viktigt att titta på skillnaden i antalet produktträffar och no-hits. En liten ökning på matchade köp kan tillsammans med en stor ökning av produktträffar och minskning av no-hits 24