EXAMENSARBETE INOM TEKNIK, GRUNDNIVÅ, 15 HP STOCKHOLM, SVERIGE 2016 Effekten av varierande datamängd vid filmbetygsprediktion En studie med en egenkonstruerad rekommendationsalgoritm ERIK LINDBOM ADAM PIELBUSCH KTH SKOLAN FÖR DATAVETENSKAP OCH KOMMUNIKATION
Effekten av varierande datamängd vid filmbetygsprediktion En studie med en egenkonstruerad rekommendationsalgoritm ERIK LINDBOM ADAM PIELBUSCH DD143X Examensarbete inom datalogi, grundnivå Handledare: Jens Lagergren Examinator: Örjan Ekeberg CSC, KTH 2016-05-11
Referat Behovet av att kunna förutspå användares preferenser ökar i samhället. Då konsumtion i digitala butiker ökar är det viktigt för butikerna att kunna generera så träffsäkra produktrekommendationer som möjligt för att på så sätt kunna öka sin försäljning. Denna rapport tar upp frågan om hur träffsäkerheten förändras med olika mängd data. En egen algoritm som lånar teorier från både kollaborativ- och innehållsbaserad filtrering konstrueras. Algoritmen testades med en mängd olika testset hämtade från MovieLens. Testseten varierade i storlek från 20 000 upp till 100 000 betyg. Resultatet visar att vid väldigt lite data uppnås bästa prediktionen. Träffsäkerhetens förändring är relativt liten.
Abstract The effect of varying the amount of data in movie rating prediction The need to predict what users will like increase more and more in society. As we consume more in digital stores, the importance for these stores to deliver as accurate product recommendations as possible increase. This report addresses the question of how the accuracy change with different amount of data. An algorithm that borrows theories from both collaborative- and content-based filtering is constructed. The algorithm was tested with a variety of test sets retrieved from MovieLens. The test sets are ranged in size from 20 000 up to 100 000 ratings. The result shows that a very small amount of data makes the best predictions. However, the change in accuracy is relatively small.
Innehåll 1 Introduktion 1 1.1 Syfte.................................... 1 1.2 Frågeställning............................... 1 2 Bakgrund 3 2.1 Kvadratisk medelvärdesavvikelse.................... 3 2.2 Netflix-tävlingen............................. 3 2.3 Kända algoritmer och tidigare forskning................ 4 2.3.1 Kollaborativ filtrering...................... 4 2.3.2 Innehållsbaserad filtrering.................... 5 2.3.3 Hybrider............................. 5 2.4 Kallstart.................................. 6 3 Metod 7 3.1 Dataset från MovieLens......................... 7 3.2 Testdata.................................. 7 3.3 Den aktuella algoritmen......................... 8 4 Resultat 11 4.1 Mätningar med den konstruerade algoritmen............. 11 4.1.1 Test av u1-u5........................... 12 4.1.2 Test av u5-u1........................... 13 4.2 Mätningar med filmens medelbetyg................... 15 5 Diskussion 17 5.1 Metodval................................. 17 5.2 Programmets prestanda och dataset.................. 18 5.3 Slutsats.................................. 19 Litteraturförteckning 21
Kapitel 1 Introduktion Att med hög träffsäkerhet förutsäga specifika användares beteenden är något som har blivit allt viktigare på senare tid. Det beror på att vi konsumerar allt mer i digitala butiker. Då är det viktigt att dessa butiker kan generera träffsäkra produktrekommendationer, vilket görs med hjälp av rekommendationssystem som använder sig av historiska beteenden hos användaren. Det här är viktigt för företag som har som mål att sälja produkter på internet. Genom att snabbt ge besökaren bra produktrekommendationer kan försäljning och vinsten öka hos företaget. Under åren 2006-2009 hade Netflix en tävling för att förbättra sin betygprediktionsalgoritm vilket är en form av rekommendationssystem. För dem handlar det om att kunna föreslå videomaterial som uppskattas av sina användare så att användare stannar och fortsätter att använda tjänsten. Denna tävling har bidragit till träffsäkrare rekommendationssystem [1]. 1.1 Syfte Syftet med rapporten är att jämföra hur träffsäkerheten påverkas med olika mängd data från MovieLens, en databas med information om användare och filmer. En egenkonstruerad algoritm som bygger på teorier från redan kända rekommendationsalgoritmer har konstruerats. Träffsäkerheten beräknas med RMSE (root mean sqaure error, se avsnitt 2.3). Betygen fördelas på en skala mellan 1 och 5 och tanken är att förutsäga vilket betyg en användare kommer att ge en film baserat på de betyg användaren har gett till andra filmer. För alla dataset gäller att användarna har betygsatt minst 20 filmer. Resultatet är intressant för att avgöra hur pass stor datamängd som behövs för att kunna ge en träffsäker produktrekommendation till användare av olika internetbaserade tjänster. 1.2 Frågeställning Hur förändras RMSE-värdet hos den egenkonstruerade algoritmen, på MovieLens dataset, genom att variera mängden data? 1
Kapitel 2 Bakgrund Här presenteras olika metoder som är vanliga inom betygsprediktion. Stycket går igenom förklaringar av vad rekommendationssystem är samt hur Netflix-tävlingen bidragit till bättre prediktionsalgoritmer. Här presenteras även de vanligaste algoritmerna för att lösa rekommendationsproblemet. 2.1 Kvadratisk medelvärdesavvikelse Kvadratisk medelvärdesavvikelse (eng. Root mean square error, RMSE) är ett mått på hur stor medelavvikelsen eller spridningen av de faktiska värdena och de förutspådda värdena är. RMSE-värdet räknas lättast ut genom att först kvadrera residualerna, summera dem, dividera summan med det totala antalet värden och därefter beräknas kvadratroten av kvoten enligt figur 2.1 [2]. n (y i ŷ i ) 2 i=1 RMSE = n Figur 2.1. Där y i är det förutspådda värdet, ŷ i är värdet från den i:te observationen och n är det totala antalet värden [2]. 2.2 Netflix-tävlingen Netflix publicerade en tävling i oktober år 2006. Tävlingen gick ut på att skapa en prediktionsalgoritm som var minst 10% bättre än deras befintliga algoritm. Netflix använde år 2006 en algoritm som kallades för CineMatch och hade ett RMSE-värde på 0.95, vilket betyder att ett betyg i snitt skiftar med 1 helt betygssteg. Hade medelbetyget av en användares alla betygsatta filmer tagits och sedan medelbetyget av alla användare för en specifik film, så hade algoritmen endast varit 3% sämre än CineMatch. Många försök gjordes, men till slut korades vinnaren år 2009. Vinnaren 3
KAPITEL 2. BAKGRUND hade lyckats skapa en algoritm med ett RMSE-värde på 0.85, vilket var den mest träffsäkra prediktionsalgoritmen år 2009 [1]. 2.3 Kända algoritmer och tidigare forskning Det finns idag en mängd olika webbapplikationer som använder sig av system för att försöka gissa hur deras användare kommer att ställa sig till vissa alternativ. Det är denna process som kräver ett så kallat rekommendationssystem. Sedan Netflix publicerade sin tävling år 2006 så har en hel del forskning och framsteg gjorts inom ämnet, där en del nya algoritmer har framkommit och där en del andra har fått sig vissa förbättringar med tiden. Nedan presenteras de mest använda algoritmerna för att lösa rekommendationsproblemet [1]. 2.3.1 Kollaborativ filtrering Kollaborativ filtrering är en metod där en mängd användares feedback samlas in i form utav olika betyg, för att sedan studera likheterna mellan dessa användare och jämföra hur de har betygsatt de olika föremålen. Därifrån kan det räknas ut hur en ny användare troligtvis skulle betygsätta ett föremål baserat på vad tidigare användare gjort. Kollaborativ filtrering kan delas in i två olika metoder: omgivningsbaserat, även kallad minnesbaserat tillvägagångssätt, eller modellbaserat tillvägagångssätt [3]. I det omgivningsbaserade tillvägagångssättet väljs en liten grupp användare ut som gjort liknande val som den användare betyget ska förutsägas för. Sedan används en algoritm som förutser betygsrankingen genom att vikta övriga användarnas kombinationer av betygssättning. Om ett stort antal användare och föremål används, så klarar inte ett vanligt omgivningsbaserat tillvägagångssätt att hantera komplexiteten som uppstår vid sökning efter den mindre gruppen användare som används till att förutspå en användares val. Då kan föremål-till-föremål-baserad kollaborativ filtrering användas. Istället för att matcha en användare med liknande användare, så försöker algoritmen att matcha en användares betygsatta föremål till ett liknande föremål [3]. Det modellbaserade tillvägagångssättet går ut på att modeller så som maskininlärnings- eller datautvinningsalgoritmer först utvecklas. Sedan används testdata för att lära modellen att hitta komplexa mönster och därigenom göra en intelligent och träffsäker prediktion [4]. Singulärvärdesuppdelning Singulärvärdesuppdelning (eng. Singular Value Decomposition, SVD) är en matrisfaktoriseringsmetod som gör det möjligt att representera en matris väldigt exakt genom att dela upp den i tre enklare matriser. Vid full rang på matrisen så kan den exakta matrisen återges. Vid lägre ordning så återges en ungefärlig matris från de rader och kolumners faktorer som finns. 4
2.3. KÄNDA ALGORITMER OCH TIDIGARE FORSKNING Figur 2.2. Visar en singulärvärdesuppdelning av en matris M. När matrisen M delas upp enligt figur 2.2, vilket är en m n matris med rangen r, erhålls matriserna U och V. Där U är en m r kolumn-ortogonal-normaliserad matris, och V är en n r kolumn-ortogonal-normaliserad matris, där V även är en diagonal matris. I U finns singulärvärdena till M i diagonalen [1]. I Netflix-tävlingen var det en algoritm som byggde på SVD:s principer som visade sig vara den mest träffsäkra lösningen och således blev det vinnande bidraget. Denna algoritm är även den bästa för det dataset som den här rapporten baseras på [5]. 2.3.2 Innehållsbaserad filtrering I den här metoden läggs fokus på föremålets egenskaper. Hur lika två föremål är baseras på hur många egenskaper som liknar varandra. Vid en jämförelse av exempelvis två filmer så används då egenskaper som skådespelare, regissör, år som filmen gavs ut och genre. För att sedan kunna jämföra två föremål, så görs först en vektor som fylls med nollor och ettor; etta om egenskapen förekommer, annars noll. Detta kräver dock att egenskapen är av boolesk typ. Vid numeriska värden går det inte skapa en komponent i vektorn för alla möjliga värden (tänk betygssnitt som kan innehålla flera decimaler), då används i stället det rena värdet. När det finns vektorer som beskriver föremålen, behövs vektorer som beskriver användarna. När dessa vektorer slås ihop bildas en matris som kan användas för att ta fram prediktioner [1]. 2.3.3 Hybrider För att kunna använda styrkorna i både kollaborativ- och innehållsbaserad-filtrering så finns hybrider av dessa. En enkel metod skulle vara att filtrera fram en lista för den kollaborativa och en för den innehållsbaserade för att sedan kombinera dessa två listor till ett slutligt resultat [3]. Men det finns oändligt med olika varianter på hybrider där det används delar av båda metoderna för att komma fram till ett så träffsäkert resultat som möjligt. 5
KAPITEL 2. BAKGRUND 2.4 Kallstart Ett vanligt problem för rekommendationssystem är ett fenomen som kallas kallstart (eng. cold start). Det träder i kraft när en ny användare eller produkt kommer in i systemet. En ny användare som inte har betygsatt någon film försvårar prediktionen då det inte finns någon personlig historik att använda. Ett system som använder sig av demografisk data om användarna kan fortfarande använda detta för att kunna förbättra resultatet. För en ny produkt är det i början relativt få som har betygsatt produkten, och därför kan medelbetyget vara missvisande [6]. 6
Kapitel 3 Metod Det här avsnittet tar upp de metoder som använts för att kunna generera de resultat som presenteras i nästa kapitel. 3.1 Dataset från MovieLens I rapporten används ett dataset som innehåller 100 000 betyg från 943 användare på totalt 1682 olika filmer. Datan samlades in under en 7-månadersperiod från september 1997 till april 1998 via MovieLens webbsida [7]. Varje användare har betygsatt minst 20 filmer. De uppgifter som finns att tillgå om användarna är kön, ålder, sysselsättning och postkod. I rapporten används alla dessa uppgifter förutom sysselsättning och postkod. De uppgifter som finns att tillgå om filmerna är titel, släppdatum, IMDb URL samt 19 fält för de olika genrer som filmen kan ha. En film kan ha flera olika genrer, och då markeras detta med en 1:a i fältet för respektive genre den har. I rapporten används ej IMDb URL och genre. Alla uppgifter som användes i rapporten lades in i en databas för att enkelt kunna komma åt datan. 3.2 Testdata Testen gjordes med färdig testdata som delats upp i fem disjunkta delmängder, vardera mängd bestod av 20 000 betyg. Dessa var namngivna u1.test upp till u5.test och kommer i rapporten att refereras som testset. Det första testet kördes enbart med u1.test. Det andra testet kördes med unionen av u1.test och u2.test. Denna process upprepades till det fanns en union av alla fem testseten innehållande alla 100000 betyg. Noterbart är att dessa testset var för sig inte innehåller alla användare, och att antalet filmer som användarna har betygsatt inte har någon undre gräns. Ytterligare ett test gjordes där testseten lades ihop åt andra hållet för att se om ordningen av unionerna hade någon påverkan. Först testades enbart u5.test. Därefter testades unionen av u5.test och u4.test. Denna process upprepades likt testet ovan. Slutligen gjordes ett test där den konstruerade algoritmen inte användes 7
KAPITEL 3. METOD utan där prediktionen enbart var filmens avrundade medelbetyg. Detta gjordes för att erhålla ett referensvärde att jämföra den egenkonstruerade algoritmen med. 3.3 Den aktuella algoritmen Algoritmen som skapades har två in-parametrar: användare X och film Y. Det som resulteras är en prediktion för vilket betyg användare X kommer att ge filmen Y. För att göra detta togs tre olika faktorer i åtanke: medelbetyget på filmen Y ( ˆM Y ), snittavvikelsen för användare X (ÛX) och snittbetyget för filmen Y av användare som klassas som liknande till användare X (ŜX,Y ). Medelbetyget för filmen Y räknades ut redan vid skapandet av databasen och är utgångspunkten i algoritmen. Användning av medelbetyget kommer från den innehållsbaserade filtreringens teorier. Û X (se figur 3.1 och 3.2) är ett flyttal mellan 0 och 4 vilket är ett mått på hur långt ifrån filmens medelbetyg användaren har varit på de tidigare filmerna användaren har betygsatt. Detta är ett mått som förändras efter varje film som användaren har betygsatt. Algoritmen tar hänsyn till om användaren gett ett betyg som är över eller under ˆM Y. Användaren har därmed två olika snittavvikelser. Den positiva snittavvikelsen ÛXpos (figur 3.1) används till filmer där ŜX,Y ˆM Y. Annars används den negativa snittavvikelsen ÛXneg (figur 3.2). Positiv snittavvikelse, ÛXpos = n ˆM Y r Y Figur 3.1. Visar snittavvikelsen ÛXpos, där ry är det faktiska betyget användaren gav film Y och n + är antalet filmer som användare har betygsatt med ett högre betyg än filmens medelbetyg. Y =1 n + Negativ snittavvikelse, ÛXneg = n ˆM Y r Y Figur 3.2. Visar snittavvikelsen ÛXneg, där ry är det faktiska betyget användaren gav film Y och n är antalet filmer som användare har betygsatt med ett lägre betyg än filmens medelbetyg. Y =1 n Ŝ X,Y beräknas från en lista med de användare som klassas som liknande till användaren. Användare med samma kön och i samma åldersgrupp kommer väljas att vara med i denna lista. Åldersgruppen är ett intervall som är +/- 5 från åldern på användare X. Specialfall har gjorts för personer som är över 60 samt för personer som är under 18. Detta görs för att det är väldigt få personer som ingår i dessa grupper, vilket gör att sannolikheten är stor att inte tillräckligt många liknande användare kommer att hittas. Minst fyra användare måste därför ingå i denna grupp för att minimera risken att ge felaktiga prediktioner. Hittas inte minst fyra liknande användare kommer ŜX,Y att tilldelas samma värde som ˆM Y. Användning av liknande användare kommer från den kollaborativa filtreringens teorier. Då 8
3.3. DEN AKTUELLA ALGORITMEN algoritmen använder sig av delar från både kollaborativ filtrering och innehållsbaserad filtrering så klassas algoritmen som en hybrid. Nedan visas hur beräkning av betygsprediktionen går till. ˆM Y +ŜX,Y Betygsprediktion = 2 + ÛXpos om ŜX,Y ˆM Y ˆM Y +ŜX,Y 2 ÛXneg om ŜX,Y < ˆM Y Figur 3.3. Såhär tas den slutgiltiga prediktionen fram. Prediktionen avrundas till närmaste heltal. Då det finns en liten chans att närmaste heltal skulle vara mindre än 1 eller större än 5 görs ett sista test som kollar detta. Den avrundade prediktionen jämförs sedan med användarens faktiska betyg på filmen. Det är den eventuella differensen mellan dessa som sedan används för att beräkna RMSE-värdet. Om den avrundade prediktionen överensstämmer med användarens faktiska betyg räknas detta som en korrekt prediktion. 9
Kapitel 4 Resultat Här presenteras resultaten för de olika prediktionerna, med olika mängd data. Resultaten är baserade på 20 000 upp till 100 000 betyg på filmer som de olika användarna har betygsatt. 4.1 Mätningar med den konstruerade algoritmen Nedan presenteras tester med respektive testset var för sig. Vid mätning av RMSEvärdet för alla testset med 20 000 betyg erhålls det bästa värdet med testset u3 och det sämsta RMSE-värdet erhålls med testset u1. Figur 4.1. RMSE-värdet från prediktioner med respektive testset bestående av 20000 betyg. 11
KAPITEL 4. RESULTAT Dataset Antal betyg RMSE Korrekta pred. Korrekta pred. (%) u1 20 000 1.1621 7 218 36.09 u2 20 000 1.1546 7 227 36.14 u3 20 000 1.1336 7 310 36.55 u4 20 000 1.1396 7 229 36.15 u5 20 000 1.1400 7 323 36.62 Tabell 4.1. RMSE-värdet och antalet korrekta prediktioner hos de olika testseten vid körning av den konstruerade algoritmen. 4.1.1 Test av u1-u5 I detta avsnitt presenteras en mängd tester där testseten går från u1 till och med u5. Antalet korrekta prediktioner ökar näst intill linjärt med antalet betyg. Bäst antal korrekta prediktioner erhålls vid 20 000 betyg, där även det bästa RMSE-värdet erhålls. Det sämsta antalet korrekta prediktioner erhålls vid 100 000 betyg medan det sämsta RMSE-värdet erhålls vid 60 000 betyg. Figur 4.2. Antalet korrekta betygsprediktioner med olika antal betyg. Dataset Antal betyg RMSE Korrekta pred. Korrekta pred. (%) u1 20 000 1.1621 7 218 36.09 u1-u2 40 000 1.1865 13 922 34.81 u1-u3 60 000 1.1918 20 549 34.25 u1-u4 80 000 1.1902 27 266 34.08 u1-u5 100 000 1.1860 33 994 33.99 Tabell 4.2. RMSE-värdet från prediktioner med olika antal betyg. 12
4.1. MÄTNINGAR MED DEN KONSTRUERADE ALGORITMEN Figur 4.3. Antalet korrekta betygsprediktioner (i procent) med olika antal betyg. Figur 4.4. RMSE-värdet från prediktioner med olika antal betyg. 4.1.2 Test av u5-u1 I detta avsnitt presenteras en mängd tester där testseten går från u5 till och med u1. RMSE-värdet ökar fram till och med 80 000 betyg där det sämsta värdet erhålls, därefter förbättras värdet en aning. Likt testet ovan (figur 4.4) erhålls det bästa RMSE-värdet vid 20 000 betyg medan det sämsta nu erhålls vid 80 000 betyg, till skillnad från 60 000 betyg i testet ovan (tabell 4.2). I detta avsnitt är alla test bättre än motsvarande test från föregående avsnitt. 13
KAPITEL 4. RESULTAT Figur 4.5. Antalet korrekta betygsprediktioner (i procent) med olika antal betyg. Figur 4.6. RMSE-värdet från prediktioner med olika antal betyg. Dataset Antal betyg RMSE Korrekta pred. Korrekta pred. (%) u5 20 000 1.1400 7 323 36.62 u5-u4 40 000 1.1704 13 878 34.70 u5-u3 60 000 1.1809 20 563 34.27 u5-u2 80 000 1.1886 27 157 33.95 u5-u1 100 000 1.1860 34 014 34.01 Tabell 4.3. RMSE-värdet och antalet korrekta prediktioner vid olika antal betyg. 14
4.2. MÄTNINGAR MED FILMENS MEDELBETYG 4.2 Mätningar med filmens medelbetyg Nedan presenteras de resultat som erhålls om enbart filmens avrundade medelbetyg används som prediktion. Det går att se att både RMSE-värdet och antal korrekta prediktioner är bättre med de avrundade medelbetygen som prediktion än hos den konstruerade algoritmen (tabell 4.1 och 4.4). Förändringen av RMSE-värdet är väldigt lågt sett över de fem testseten. Unionen av alla fem testseten erhåller ett sämre RMSE-värde än testseten var för sig. Dataset Antal betyg RMSE Korrekta pred. Korrekta pred. (%) u1 20 000 1.0155 7 817 39.09 u2 20 000 1.0115 7 814 39.07 u3 20 000 1.0062 7 881 39.41 u4 20 000 1.0039 7 853 39.27 u5 20 000 1.0062 7 893 39.47 u1-u5 100 000 1.0383 37 409 37.41 Tabell 4.4. Antalet korrekta prediktioner med respektive testset och RMSE-värdet när enbart filmens avrundade medelbetyg används. 15
Kapitel 5 Diskussion I följande avsnitt diskuteras resultatet, samt möjliga orsaker till hur och varför det blev som det blev. Möjliga förbättringar av algoritmen tas även upp. 5.1 Metodval Algoritmen som konstruerades är baserad på tidigare kända algoritmer och hämtar delar från både den kollaborativa- och den innehållsbaserade filtreringens teorier. Att använda sig av filmens medelbetyg, medelbetyget hos liknande användare samt användarens snittavvikelse visade sig ge ett sämre RMSE-värde än att bara använda filmens medelbetyg för att utföra prediktionen (se tabellerna 4.2, 4.3 och 4.4). Vetskapen om att RMSE-värdet för datasetet är strax över 1 om enbart filmens avrundade medelbetyg utgör prediktionen (tabell 4.4), gjorde att valet av metod gick till att konstruera en egen algoritm. Ett RMSE-värde på 1 betyder att det i snitt är 1 betygssteg fel på alla prediktioner. Därifrån är det önskvärt att i snitt gå ett steg åt rätt håll för att erhålla en så bra prediktion som möjligt. Därför var filmens medelbetyg den konstruerade algoritmens utgångspunkt. Det hade varit möjligt att gruppera in användarna i fler grupper, till exempel yrke och postnummer. Detta skulle kunna ge en mer korrekt prediktion men risken är även att resultatet blir sämre. Eftersom det endast finns 943 stycken användare i datasetet skulle det kunna leda till att det bara finns ett fåtal användare i varje grupp, något som eventuellt kan försämra resultatet. Datan som fanns att tillgå till filmerna saknade egenskaper som regissör och skådespelare. Därför skulle det ha varit svårt att göra algoritmen helt utifrån den innehållsbaserade filtreringens teorier. Det går även att argumentera för att användning av genre skulle vara något negativt. Genre är ett rätt vagt begrepp och om en film är klassad som till exempel en komedi så innebär inte det att den kommer att vara rolig. En framtida eventuell förbättring till algoritmen skulle vara att spara användarens X senaste filmbetyg i en lista, och sedan leta upp användare som gav exakt eller väldigt lika betyg till dessa filmer. Utifrån dessa användare kan sedan ett snittbetyg 17
KAPITEL 5. DISKUSSION tas fram på nästa film som ska betygsättas. Det skulle även vara möjligt att använda sig av matrisfaktorisering i framtiden, för att på så sätt kunna återskapa SVD-algoritmen (figur 2.2) vilket är bevisat att vara en bra metod genom bland annat Netflixtävlingen. Dessa utökningar skulle kunna ge ett mer precist resultat. 5.2 Programmets prestanda och dataset Resultatet kan anses svårtolkat då det vid mindre datamängd visar sig vara bättre än med stor datamängd. Andelen korrekta prediktioner minskar med ökad datamängd. Förändringen av antalet prediktioner som den misslyckas med visar sig avta i hastighet och i slutändan kan antalet korrekta prediktioner tänkas konvergera mot 34% (figur 4.3 och 4.5). RMSE-värdet är inte helt beroende av hur många korrekta prediktioner som gjordes. Utan det beror på hur många betygssteg fel som prediktionen resulterade i. Det betyder att vid många korrekta prediktioner, och att de som är fel, ligger många betygssteg från det faktiska betyget så visar RMSE-värdet på ett dåligt resultat. Om antalet korrekta prediktioner är få och de som är fel ligger väldigt nära de korrekta betygen, resulterar det i ett litet antal korrekta betyg men ett bättre RMSE-värde, vilket kan vara missvisande i längden. Detta visar att det inte går att enbart betrakta det ena måttet för att kalla algoritmen för framgångsrik utan båda måtten bör tas med i beräkningarna. Att avgöra hur pass bra den egenkonstruerade algoritmens RMSE-värde egentligen är kan anses svårt då resultatet skulle kunna bli bättre med mer mängd data. I nuläget med 100 000 betyg som mest, så sjunker RMSE-värdet efter ungefär hälften av betygsdatan, vilket skulle kunna förbättras ju mer data som finns att tillgå. Detta är inte något som går att säga klart, men ju mer betyg som finns att tillgå desto mindre kommer kallstarten att påverka, vilket kan resultera i bättre prediktioner. Kallstarten verkar ha en kraftig påverkan på den egenkonstruerade algoritmen då RMSE-värdet för testfallen u1-u5 (tabell 4.2) och u5-u1 (tabell 4.3) initialt försämras när mängden data ökar. Användarens snittavvikelse är det mått som den konstruerade algoritmen använder för att minska kallstartens påverkan. Det är först vid användning av hela testsetet på 100 000 betyg som användarna är garanterade att ha betygsatt minst 20 filmer vardera. Detta betyder att de mindre testseten kan få en väldigt liten nytta av användarnas snittavvikelser. Som det ser ut nu så är trenden att efter resultatet stabiliserats, blir RMSE-värdet aningen bättre ju mer data som finns. Detta skulle kunna bero på att användarens snittavvikelse ökar i precision ju fler filmer användaren har betygsatt. 18
5.3. SLUTSATS 5.3 Slutsats Hur förändras RMSE-värdet hos den egenkonstruerade algoritmen, på MovieLens dataset, genom att variera mängden data? Med den egenkonstruerade algoritmen så förändras RMSE-värdet väldigt lite när mängden data varieras. Skillnaden mellan högsta och lägsta RMSE-värdet är 0.030 (tabell 4.2) respektive 0.049 (tabell 4.3). Resultatet visar att testet som enbart hade 20 000 betyg gav det bästa RMSE-värdet, medan testet med 60 000 respektive 80 000 betyg gav det sämsta RMSE-värdena. Algoritmen visar således att ordningen som datan i testseten arrangeras i, har påverkan på hur resultatet av RMSE-värdena blir. Generellt sett försämras RMSE-värdet hos den egenkonstruerade algoritmen med ökad datamängd. 19
Litteraturförteckning [1] Anand Rajaraman, Jeffrey D Ullman, Jeffrey David Ullman, and Jeffrey David Ullman. Mining of massive datasets, volume 1. Cambridge University Press Cambridge, 2012. [2] Susan Holmes. Rms error. http://statweb.stanford.edu/~susan/courses/ s60/split/node60.html, 2000. Hämtad: 2016-03-25. [3] Prem Melville and Vikas Sindhwani. Recommender systems. In Encyclopedia of machine learning, pages 829 838. Springer, 2011. [4] Xiaoyuan Su and Taghi M Khoshgoftaar. A survey of collaborative filtering techniques. Advances in artificial intelligence, 2009:4, 2009. [5] Librec examples on real data sets. http://www.librec.net/example.html. Hämtad: 2016-04-20. [6] Al Mamunur Rashid, George Karypis, and John Riedl. Learning preferences of new users in recommender systems: an information theoretic approach. ACM SIGKDD Explorations Newsletter, 10(2):90 100, 2008. [7] Grouplens. movielens. http://grouplens.org/datasets/movielens/, 2016. Hämtad: 2016-02-04. 21
www.kth.se