Rekommendationssystem för livestreamingtjänster
|
|
- Bengt Bergström
- för 6 år sedan
- Visningar:
Transkript
1 EXAMENSARBETE INOM DATATEKNIK, GRUNDNIVÅ, 15 HP STOCKHOLM, SVERIGE 2016 Rekommendationssystem för livestreamingtjänster HENRIK SUNMARK KTH SKOLAN FÖR INFORMATIONS- OCH KOMMUNIKATIONSTEKNIK
2 Handledare: Anders Sjögren Examinator: Fadil Galjic
3 Abstract Användningen och behovet av rekommendationssystem i digitala tjänster har växt i takt med att utbudet i dessa blivit allt större och svårare för användare att navigera i. Rekommendationssystem används idag i allt ifrån E-handel till musik- och filmstreaming. För att förse användare med rekommendationer på objekt används en mängd olika väl beprövade algoritmer, filtreringsmetoder och datainsamlingsmetoder. Att applicera dessa i livestreamingtjänster ställer nya krav på systemen eftersom innehållet byts ut mer frekvent, helt nytt innehåll tillkommer regelbundet och explicit data samt metadata är sällan tillräcklig för att ta fram träffsäkra rekommendationer. I en fallstudie med företaget Liveguide undersöks hur rekommendationssystem kan appliceras i livestreamingtjänster med avseende på de utmaningar och krav som finns. Metoder presenteras där aktuella lösningar testas, utvärderas och anpassas till att fungera bra i livestreamingsammanhang. Slutligen föreslås tre modeller för rekommendationssystem som tagits fram utifrån det resultat metoderna leder till. För att tillfredsställa de identifierade utmaningarna inom området visade sig hybrida, mångsidiga modeller fördelaktiga i livestreaming. Nyckelord: Rekommendationssystem, livestreaming, algoritmer, filtreringsmetoder
4 Abstract The usage and demand of recommender systems in digital services has increased in line with their huge range of products, making it more difficult for users to navigate through the content. Recommender systems are used in a wide scope of digital services ranging from E-commerce to music and film streaming. In order to provide users with recommendations on objects, a variety of algorithms, filtering methods and methods of data collections are being used. Applying these in live streaming services puts new demands on such systems since the content is replaced frequently and new objects added regularly. Furthermore, livestreaming services often lack explicit data and metadata, making recommendations less accurate. In a case study with Liveguide, recommender systems are evaluated, focusing on whether they are applicable to live streaming services, respecting requirements and demands on such systems. Methods are presented which tests, evaluates and adapts existing solutions to fit in well in context of live streaming. Finally, three models for recommender systems are suggested, based on the methods result. In order to satisfy the identified challenges, hybrid models turned out to be preferable in the context. Keywords: Recommender systems, live streaming, algorithms, filtering methods
5 Ordförklaring Metadata Data om data, d.v.s. data som beskriver datan Stream I digitalt sammanhang, en sändning video, musik eller annan data Tag Identifierare av objekt likt kategori, dock mindre generell. Ett objekt har ofta flera tags. Användarsession I digitalt sammanhang, en tidsperiod då en användare är ansluten till en webbsida / tjänst Rating En preferens angivet för ett visst objekt, vanligtvis på en skala. Antingen angivet av användaren själv eller beräknat utifrån implicit data.
6
7 Innehållsförteckning 1 INLEDNING Bakgrund Problem Syfte Avgränsningar BAKGRUNDSTEORI Rekommendationssystem Sessionsdata Dataset Användarpreferenser och rekommendationer Filtreringsmetoder Kollaborativ filtrering Innehållsbaserad filtrering Kännedomsbaserad filtrering Hybrida rekommendationssystem Utmaningar med rekommendationer i livestreaming Rekommendera objekt i realtid Cold start Användaridentifiering och etik Datainsamling Lagring Relaterade arbeten Collaborative filtering recommender systems A Hybrid Preference-Aware Recommendation Algorithm for Live Streaming Channels18 3 METOD Metod med teoretisk undersökning och modellering Delfråga: Vilka typer av rekommendationssystem finns redan? Kan de appliceras på livestreamingtjänster? Delfråga: Vilken data är nödvändig för att möjliggöra relevanta rekommendationer? Delfråga: Vad är en bra rekommendation och hur kan den mätas? Metod med prototyp offline test... 24
8 3.2.1 Att identifiera ett bra resultat Genomförande med prototyptestning Projektmetod Arbetsmetoder Projektrelaterade verktyg ANALYS OCH RESULTAT Urval av rekommendationsmetoder Datainsamlingsstrategi Filtreringsmetoder Rekommendationsalgoritmer Algoritmernas träffsäkerhet och implementerbarhet Testmiljö och dataset Jämförelse med träffsäkerhet Jämförelse mellan algoritmer Hybridsystem User-KNN, Knowledge filtering Minimalt datakrav Content filtering, Most Viewed Balanserad modell SlopeOne Modellera bra rekommendationssystem DISKUSSION Metodval Utfall av resultat Framtida arbete Hållbarhet SLUTSATS KÄLLFÖRTECKNING BILAGOR... 54
9 1 Inledning 1.1 Bakgrund I takt med att användningen av digitala tjänster och att antal användare har ökat, [1] har även ett kommersiellt intresse för att utvinna och analysera användardata växt fram. Syftet är bland annat att försöka förutse vad användare är ute efter i form av produkter eller tjänster, och med hjälp av informationen rikta innehåll enligt användares preferenser. Processen går att automatisera till att i realtid presentera användarspecifika eller gruppspecifika rekommendationer på objekt till användare. Till detta används så kallade rekommendationssystem [2]. Rekommendationssystem används idag i stor utsträckning bland digitala tjänster, i allt ifrån E-handel till filmstreaming. Behovet av systemen har ökat i takt med den mängd digitalt innehåll som tillgängliggörs, och därmed gör det allt svårare för användare att navigera bland filmtitlar, musik produkter m.m. Målet med ett rekommendationssystem är att försöka förutse vilka objekt en användare kan tänkas ha intresse för, beräkna en användarspecifik rating (ett betyg på en bestämd skala) för dessa och presentera rekommendationer för användaren. 1.2 Problem Liveguide [3] bedriver en livestreamingtjänst, där streams från en mängd kanaler inom olika kategorier samlas in och presenteras för användaren. Även i detta fall kan man dra nytta av rekommendationssystem. Dock ställs nya krav på sådana system när rekommendationer ska presenteras och uppdateras i realtid. Innehållet som ska rekommenderas behöver inte nödvändigtvis existera när en användare ansluter sig till tjänsten, vidare finns inga färdiga uppslag med innehåll att presentera. Ytterligare utmaningar är att behålla relevans i rekommendationerna. Livestreamingsinnehåll byts kontinuerligt ut, vilket gör äldre rekommendationer oanvändbara, till skillnad från system som rekommenderar produkter, filmer eller musik. Med denna studie besvaras följande frågeställning: 8
10 Hur man kan modellera ett bra rekommendationssystem för livestreamingtjänster? 1.3 Syfte Studien kommer att innefatta jämförelser mellan olika angreppsmetoder som typiskt används i rekommendationssystem. Dessa metoder kommer att utvärderas med avseende på de krav som ställs på ett rekommendationssystem för livestreamingtjänster. Syftet med detta är att hitta en bra och fungerande modell, som den typ av livestreamingtjänster som Liveguide och liknande företag bedriver, kan dra nytta av vid utveckling av rekommendationssystem. Liveguide har för avsikt att förbättra sin användarkännedom gällande användningsmönster och innehållsintressen i den tjänst de levererar. Med hjälp av användardata som samlas in vill Liveguide på sikt utveckla ett system, som kan förbättra användarupplevelsen genom att presentera innehåll anpassat efter enskilda användare eller grupper av användare. Man vill alltså utveckla ett rekommendationssystem som uppfyller detta. Med hjälp av de slutsatser som presenteras i denna studie ska ett sådant system, anpassat för den livestreamingtjänst som företaget bedriver, kunna utvecklas. 9
11 1.4 Avgränsningar Omfattningen av fallstudien angränsas när det gäller antalet komponenter i den skapade modellen, och utvärderingen av denna modell. För att uppfylla samtliga intressenters krav och förväntningar av arbetet, så finns det begränsningar i den omfattning fallstudien kan genomföra. Den typ av system som modelleras kan behöva fler komponenter än de som tas upp i denna studie, för att fungera fullständigt i en verklig miljö. Därför begränsas studien till följande aspekter: datainsamling, filtreringsmetoder och algoritmer som används i rekommendationssystem. Denna studie innefattar bland annat utvärdering av strategier för generering av rekommendationer. Med det finns inte möjlighet att utvärdera resultatet i ett realtidsscenario, vilket begränsar exaktheten i resultatet. 10
12 11
13 2 Bakgrundsteori 2.1 Rekommendationssystem Rekommendationssystem är ett verktyg som bland annat används i digitala tjänster för att förse användare med rekommendationer på objekt som de kan tänkas vara intresserade av. Detta har både för avsikt att hjälpa användare att navigera bland stora sortiment, och därmed förbättra upplevelsen, men även att öka försäljning, hålla kvar användare längre i tjänsten samt att förstå användaren bättre [4]. För att kunna implementera ett rekommendationssystem krävs viss datainsamling från användare samt filtreringsmetoder och algoritmer som kan generera rekommendationer Sessionsdata För att kunna skapa rekommendationer som grundar sig i användardata, så krävs en strategi för datainsamling. Desto mer kvalitativ användardata som finns att tillgå, desto precisare rekommendationer kan skapas. Användardata från webtjänster samlas ofta in som användarsessioner, där varje session innehåller information om användarens beteende i tjänsten. Sessionens parametrar innehåller ofta information om användarens språk, enhet, version av programvara samt en mängd beteendeparametrar, exempelvis sessionstid, information om det besökta innehållet, hur användaren navigerade, o.s.v. I dokumentbaserade NoSQL-databaser (se 2.4.1), vilket används i denna fallstudie, sparas och hämtas sådan data ofta i formatet JSON (JavaScript Object Notation) som, likt XML, har till stor del självbeskrivande notationer Dataset En mängd, delmängd eller en samling data av en viss typ kan uttryckas som ett dataset. I detta fall representerar ett dataset en samling av sessionsdata från användarsessioner, som bland annat kommer att användas till att testa olika metoder och algoritmer för rekommendationssystem Användarpreferenser och rekommendationer En preferens i ett rekommendationssystem beskriver en användares relation till ett visst objekt, och representeras ofta av tupeln <User, Item, Rating> [5], där man med hjälp av vald algoritm beräknar hur intresserad (rating) man tror en användare (user) 12
14 är av ett visst objekt (item). Dessa preferenser används sedan för att skapa en eller flera rekommendationer till användaren i form av tupeln <User, Item, Rating>. 2.2 Filtreringsmetoder Kollaborativ filtrering Som namnet antyder är kollaborativ filtrering baserat på antagandet att en användare har liknande eller samma intressen som andra användare med liknande historik. Rekommendationsmetodiken går ut på att analysera användardata från en större mängd användare, och skapa rekommendationer till enskilda användare baserat på vad liknande användare tycker om. Metoden är den mest traditionella och använda metoden inom rekommendationssystem [4], och är ett typiskt exempel på hur filmrekommendationer tas fram. Kollaborativ filtrering i sig kan utföras med en mängd olika metoder för att beräkna likheter mellan användare, vilka användare som har liknande intressen och vikten av deras intressen. En välanvänd algoritm är k-nn (k - Nearest Neighbors algorithm). Algoritmen letar efter så kallade grannanvändare som har bedömt objekt likvärdigt med användaren i fråga historiskt, och skapar rekommendationer därefter. En rating kan ha varierande betydelse beroende på tjänsten i fråga, rättare sagt beroende på vilken typ av data som samlas in. Dock är dess syfte alltid att representera en användares preferens för ett objekt. Det typiska sättet att bestämma en rating är att låta användaren, på en skala betygsätta objektet i fråga, vilket ger en input kallad explicit data. Detta är i många fall inte en optimal variant, eftersom att det ofta finns en skillnad mellan vad en användare säger och egentligen gör [6]. Vidare är sannolikheten stor att flera betygsättningar från användare uteblir, vilket drastiskt försämrar underlaget i form av input till rekommendationsalgoritmerna. Ett alternativ till detta, som även kan kombineras med explicit data, är implicit data. Med hjälp av implicit data, d.v.s. data baserad på användarbeteende som antal klick på objekt, tidsdata, navigering o.s.v. kan en användares rating för ett objekt uppskattningsvis beräknas. Försök har även gjorts att ytterligare förbättra rekommendationer genom att sätta dem i användarens sammanhang. I Extending recommendation algorithms by modeling user context [7] utforskas detta i samband med kollaborativ filtrering i en fallstudie med Spotify. Utfallet pekade på både för och nackdelar, men potential i metoden uppvisades. 13
15 Metoder för kollaborativ filtrering likt k-nn medför skalbarhetsproblem när förutsägelser beräknas för en användare, på grund av att komplexiteten ökar linjärt med antalet användare. Att beräkna en rekommendation för en användare uu, givet samtliga användare UU, innebär att först hitta grannanvändare NN UU, d.v.s. samtliga användare som har gemensamma, tidigare preferenser som uu. Därefter kombineras preferenser för att förutsäga en rekommendation. Oavsett vilken algoritm som används för att beräkna en rating utifrån resultatet, medför operationen som lägst tidskomplexiteten OO(UU). Detta är dock i fallet när hela användarmodellen behöver uppdateras. Att göra uppslag på en användare kräver endast en iteration genom ett bestämt antal grannanvändare. Matrisfaktorisering Matrisfaktoriseringsalgoritmer kan implementeras för kollaborativ filtrering och har växt fram på senare år. De har visats överlägsna mot traditionella grannalgoritmer på flera fronter, vilket åskådliggjordes i resultatet av Netflix Prize [8], tävlingen där forskningsgrupper fick i uppdrag att förbättra Netflix dåvarande rekommendationsalgoritm. Matrisfaktoriseringsalgoritmer utnyttjar det faktum att användare ofta har liknande preferenser och därmed grupperar dem därefter. Om t.ex. alla användare som har höga preferenser för objekt A även har det för objekt B, kan dessa sammanslås till en och samma vektor som representerar en preferens. Detta eliminerar en stor del av det skalbarhetsproblem som finns med tidigare kollaborativa algoritmer. Det har även visat sig att sådana faktoriseringar förbättrar precision i förutsägningar [9]. En vanlig metod för faktorisering är Singular Value Decomposition (SVD) där en MM NN matris faktoriseras till submatriser innehållande linjärt oberoende värden. I fallet där två användare har exakt samma preferenser för ett objekt, betraktas dessa som linjärt beroende och utgör endast en rad i den faktoriserade matrisen. Precisionen och uppslagstiden i den här typen algoritmer är mycket tillfredställande, dock kan uppbyggnaden av användarmodeller, d.v.s. själv matrisfaktoriseringen, ta orimligt lång tid på stora datasets, vilket begränsar möjligheten att uppdatera denna Innehållsbaserad filtrering Likt kollaborativa rekommendationssystem utgår även innehållsbaserade (contentbased) rekommendationssystem ifrån en specifik användares preferenser för att generera nya rekommendationer. Till skillnad från kollaborativ filtrering jämförs användarens preferenser med beskrivningen av olika objekt av intresse (exempelvis 14
16 kategori och egenskaper) istället för andra, liknande användares preferenser. Att generera rekommendationer med denna metod förutsätter att det finns en inlärningsalgoritm, likt den som beskrivs av van Materen och van Someren i [10], för att skapa en användarmodell att använda när användarens preferenser matchas mot objekt. En användarmodell kan representeras på olika sätt. Vanligtvis använder man sig utav vektorer med innehåll som matchas mot motsvarande vektorer för ett visst objekt. I exemplet av en film skulle en sådan kunna innehålla skådespelare, genre, årtal o.s.v. Ett känt problem med att ge rekommendationer baserat på innehåll är att strukturera och beskriva innehållet. Innehåll kan komma ifrån olika källor, med olika strukturer på metadata. Detta problem förklaras vidare och undersöks av Karlsson och Berg i [11], där de utvecklar en algoritm för att automatiskt generera metadata i form av nyckelord från ett radioprogram Kännedomsbaserad filtrering Metoden, även kallad knowledge-based filtering, grundas i att samla in explicit data från användare, d.v.s. data angiven av användaren själv, med avsikt att förbättra rekommendationer. Vanligtvis innebär detta att en användare, vid första användning anger vilka typer av objekt och kategorier som är av intresse. Metoden enskilt utgör inte ett speciellt avancerat rekommendationssystem, utan brukar istället kombineras med andra metoder Hybrida rekommendationssystem System som använder sig av hybrid filtrering drar nytta av fördelarna med två eller flera andra rekommendationssystem, med syftet att producera ett exaktare resultat. Hybrida system är en välanvänd lösning och går att implementera med en mängd olika metoder. I Hybrid Web Recommender Systems, R. Bruke [12] utvärderas en mängd kombinationer av filtreringsmetoder i hybrida system, och dess fördelar presentera i jämförelse med andra kombinationer och ensamstående lösningar. 15
17 2.3 Utmaningar med rekommendationer i livestreaming Rekommendera objekt i realtid Vanligtvis i rekommendationssystem skapas rekommendationer för objekt, som filmtitlar och produkter, baserat på tidigare preferenser. Dessa rekommendationer kan då användas som färdiga uppslag från samma tidpunkt som en användare ansluter sig till tjänsten. Att rekommendera innehåll för realtidstjänster så som livestreaming kan i stort sett utföras med samma beprövade filtreringsmetoder som beskrivs i 2.2, dock är inte innehållsförslag aktuella att rekommendera till användare i annat än precis den tidpunkt som användaren ansluter sig, eftersom att streamen sänds i realtid och inte kommer att vara tillgänglig i framtiden. Detta medför att rekommendationer inte kan förberedas åt en användare på specifika objekt, utan måste hittas vid samma tidpunkt som användaren ansluter sig till tjänsten, alternativt att användarmodellen uppdateras mycket frekvent baserat på innehåll som är aktuellt för tillfället. Detta är givetvis tekniskt möjligt men det ställer krav på algoritmernas tidskomplexitet, vilket vidare kan medföra mindre precisa rekommendationer Cold start I stort sätt alla system, metoder och algoritmer för rekommendationssystem lider av det gemensamma problemet, cold start. Problemet delas in och beskrivs i två olika kategorier [5]: Item cold start När ett nytt objekt tillgängliggörs för användare, saknas tillräckligt med data om objektet i form av exempelvis ratings, för att kunna rekommendera det till användare. User cold start En ny användare av tjänster har för systemet inga kända preferenser, vilket gör det näst intill omöjligt att ge rekommendationer med hjälp av filtreringsalgoritmer. I fallet av livestreamingtjänster kommer item cold start alltid att vara ett givet problem, eftersom samtliga aktuella objekt är nya. Detta måste finnas i åtanke när ett rekommendationssystem modelleras, eftersom att de metoder som generellt används inom området kommer att behöva anpassas till att rekommendera användarpreferenser mot andra metadata än ratings. 16
18 En lösning som i vissa fall används till user cold start är att låta nya användare själva ange sina preferenser, för att sedan kunna utveckla rekommendationer på den initiala datan från användaren, vilket utgör en del av filtreringsmetoden knowledgebased filtering. Denna metod är dock inte alltid träffsäker nog, eftersom att det som sagt finns skillnader mellan vad användare anger för preferenser och vad de egentligen gör. Knowledge-based filtering är mer förekommande i fall där objekten är mindre frekvent omsatta, men kan med fördel användas i ett hybridsystem tillsammans med t.ex. kollaborativ filtrering om tjänsten så tillåter Användaridentifiering och etik För att kunna sammanställa en användares preferenser i en tjänst över tid, så måste det vara möjligt att identifiera användaren unikt varje gång denna använder tjänsten. En typisk lösning på detta är att låta användaren registrera sig innan tjänsten används och därmed enkelt kunna knyta användarens aktivitet till ett användar-id, dock är det inte alltid möjligt att göra detta då man t.ex. inte vill kräva registrering för att använda tjänsten i fråga. I det fallet finns möjligheten att istället identifiera den enhet eller webbläsare som används unikt dock är detta inte lika träffsäkert då det kan variera även om användaren i fråga är densamma. 2.4 Datainsamling Lagring Traditionellt lagras data i relationsdatabaser, d.v.s. tabellbaserade databaser. Volymen data som genereras av webbapplikationer har på senare år ökat enormt, vilket har fått relationsdatabaser att halka efter när det kommer till skalbarhet och tillgänglighet [16]. För att möta detta behov har så kallade NoSQL-databaser utvecklats, som frångår den traditionella relationsdatabasen med tabeller och använder sig istället av andra tekniker som document stores. I sådana finns ingen strukturerad data i form av tabeller, i stället grupperas dokument i kollektioner, vilket underlättar skalbarheten eftersom det enkelt kan distribueras mellan olika fysiska servrar. I Linked data performance in different databases : Comparison between SQL and NoSQL databases [16] jämförs prestandan mellan relationsdatabaser och NoSQL-databaser i ett rekommendationssystem, där användarpreferenser finns sparade i databasen. 17
19 Slutsatsen av studien pekar på att NoSQL-databasen MongoDB, som även används i det system som denna fallstudie byggs på, är den mest lämpade för användning i rekommendationssystem med avseende på bland annat prestanda. 2.5 Relaterade arbeten Collaborative filtering recommender systems Ekstrand et al. [5] beskriver kollaborativa och hybrida rekommendationssystem, subsystem och dess mest använda algoritmer ingående. Vidare beskrivs metoder att bygga datasets, genomföra tester med dessa samt olika vägar att utvärdera resultatet. På grund av att denna studie inte lämnar utrymme till att i detalj beskriva algoritmer för bl.a. kollaborativ filtrering, kunde Collaborative filtering recommender systems, tillsammans med andra arbeten användas till att identifiera vilka komponenter inom det breda områden som kan hjälpa till att besvara frågeställningen A Hybrid Preference-Aware Recommendation Algorithm for Live Streaming Channels I konferensartikeln av Yang et al. [17] föreslås en hybrid algoritm för livestreamingtjänster, uppdelad i två delar. Första delen är Preference-Aware Recommendation, där användardata samlas in, sammanställs och preferenser beräknas genom antaganden i implicit data. Andra delen av hybridalgoritmen kallar författarna för Most Recent Viewed (MRV), vilket är en variant av Most viewed (MV) som bl.a. Twitch använder sig av. MRV utgår ifrån användares loggar och föreslår de kanaler som användaren återkommer mest till snarare, än vilka kanaler som flest tittar på just nu. 18
20 Artikeln lägger även stor vikt i eventuella felkällor och förvirringar som kan förekomma i implicit data inom livestreamingtjänster, och föreslår ändringar i tolkningen av data, som parerar dessa. 19
21 3 Metod Det problem som formuleras i studien grundas i flera delproblem, som har adresserats tidigare och lösts med motsvarande metoder. Dessa kommer att utvärderas gentemot det problem som beskrivs i denna studie. Syftet med kapitlet är att beskriva de metoder som kommer att användas för att vetenskapligt, dock samtidigt resultatorienterat kunna besvara frågeställningen: att modellera ett bra rekommendationssystem för livestreamingtjänster. För att metodiskt kunna besvara frågeställningen, behandlas följande delfrågor. Vilka typer av rekommendationssystem finns redan? Kan de appliceras på livestreamingtjänster? Vilken data är nödvändig för att möjliggöra relevanta rekommendationer? Vad är en bra rekommendation och hur kan den mätas? Frågorna besvaras i en fallstudie med Liveguide, vilket också är den undersökningsstrategi som tillämpas. Detta sker med hjälp av de metoder som presenteras nedan, som tillsammans strävar efter att så precist som möjligt besvara frågeställningen. Två överliggande delmetoder används, den ena mer teoretisk och därefter ett praktiskt offline-test som genomförs med avsikt att verifiera utfallet av den teoretiska metoden och därmed stärka trovärdigheten i resultatet. 3.1 Metod med teoretisk undersökning och modellering Med grund i den vetenskapliga arbetsmetod som beskrivs av Ekholm och Andersson i Vetenskaplighet [18], togs en metod fram för att strukturerat och iterativt nå ett resultat som besvarar delfrågorna. Metoden grundas i att genom en problemidentifiering hitta lösningar på liknande tidigare problem, utvärdera dessa, eventuellt anpassa tidigare teknik, utvärdera den nya lösningen och sedan identifiera brister i modellen för att slutligen korrigera den iterativt. Denna sekvens beskrevs ursprungligen av Bunge [19] med likheter i de steg som presenteras i denna metod, och är en del av den undersökningsmetod som valts till att besvara delfrågorna. 20
22 Bunges sekvens är generell och kan anpassas till att fungera som överliggande metod i de flesta projekt och studier. Hela sekvensen kommer inte att beskrivas här, utan istället anpassas till att effektivt kunna besvara frågeställningen. Metoden beskriver först den generella sekvens som valdes till att besvara delfrågorna med teoretisk undersökning och modellering. Därefter beskrivs mer ingående hur de enskilda frågorna, med hjälp av metoden, besvarats. Problemidentifiering: För att besvara varje enskild delfråga identifierades först vad frågan egentligen adresserar. Vilken data är nödvändig för att möjliggöra relevanta rekommendationer? Svaret på frågan finns redan och beskrivs i teorikapitlet. Problemet som frågan adresserar är om det aktuella svaret även fungerar i detta fall: livestreaming. Identifiera tidigare lösningar: Det finns mycket forskning inom rekommendationssystem och en uppsjö av konferensartiklar som beskriver optimala algoritmer, den ena bättre än den andra. Att leverera ytterligare en sådan hade antagligen inte bidragit till något annat än en specifik lösning till detta fall. Däremot användes bland annat dessa för att undersöka vilka algoritmer och filtreringsmetoder som lämpar sig bäst för livestreaming med avseende på de krav och ytterligare utmaningar som finns, utöver de som gäller generellt för rekommendationssystem. Vidare utforskades lösningar för datalagring, datainsamling och övriga aspekter som underlag för en bra lösning för respektive delfråga. Modellering: Med utgångspunkt i de upptäckta tidigare lösningarna undersöktes hur anpassningsbara de var till implementation i livestreaming. Även om exempelvis samma rekommendationsalgoritm används i detta fall som för en filmtjänst så innebär det inte att exaktheten i resultaten är densamma, på grund av skillnader i övriga delar av systemen. Genom att närmar, undersöka hur parametrar i befintliga algoritmer påverkar resultatet, och hur implicit samt explicit data hanteras, kunde slutsatser dras huruvida de tidigare lösningarna skulle fungera i livestreaming. 21
23 Utvärdering: En färdig modell utvärderas gentemot de delfrågor som ursprungligen skulle besvaras, specifikt mot de krav som ställts på det system som Liveguide vill utveckla (se 1.3). Eventuella problem och svårigheter med modellen kunde upptäckas genom att titta på varje enskild utmaning och krav som tagits upp, och identifiera den del eller delar av modellen som är tänkta att lösa problemet. Om en lösning helt saknas eller kan antas vara bristfällig, så återgår man enligt metod till att föreslå nya lösningar eller anpassa aktuella lösningar. Därefter återupprepas stegen. Metodens förlopp illustreras i Figur 1. Observera att denna är generell för samtliga delfrågor. Syftet med metoden är att tidigt upptäcka problem i modellen och samtidigt tillåtas att anpassa och förbättra den iterativt under arbetets gång. Figur 1 Generell metod med teoretisk undersökning och modellering Delfråga: Vilka typer av rekommendationssystem finns redan? Kan de appliceras på livestreamingtjänster? Metoden behandlar framför allt beprövade algoritmer, men även lösningar för kända enskilda filtreringsmetoder och hybrida filtreringsmetoder. Utfallet från denna delfråga används som underlag för vad som ska testas i den kommande, mer praktiska metoden, offline-test. 22
24 Figur 2 - Tillvägagångsmetod för att besvara delfrågan Till skillnad från Figur 1 Generell metod med teoretisk undersökning och modellering, illustrerar Figur 2 hur den generella metoden mer specifikt appliceras för att besvara delfrågan. Efter en förstudie på aktuella rekommendationsystem kan de jämföras och utvärderas genom egna antaganden utifrån livestreamingtjänsters uppbyggnad samt med hjälp av observationer inom områden från relaterade studier och konferensartiklar likt den som presenterats av Yang et al. [17] Delfråga: Vilken data är nödvändig för att möjliggöra relevanta rekommendationer? För att besvara frågan identifierades först vilken typ av data som finns att tillgå (av explicit eller implicit typ) i tjänsten för att avsmalna urvalet av datainsamlingsstrategier. Därefter undersöktes vilken data som användes som input i beprövade algoritmer, genom en vidare litteraturstudie. Med detta som underlag togs teoretiska modeller fram som använder den data som finns att tillgå i tjänster på olika sätt, för att representera de parametrar befintliga algoritmer kräver. Resultatet av detta utvärderades dels teoretiskt men senare, även i den prototyp som byggdes, med fokus på implementerbarhet och relevans för träffsäkerhet i rekommendationer Delfråga: Vad är en bra rekommendation och hur kan den mätas? Att besvara vad en bra rekommendation är medför problemet att svaret på frågan i sig kan vara svårt att bedöma trovärdigheten på. Huruvida en bra rekommendation är att rekommendera något likt det en given användare redan tycker om, eller något nytt att utforska för användaren förblir en definitionsfråga. För att tydliggöra problemet som delfrågan ska besvara antogs det att en bra rekommendation är en re- 23
25 kommendation som medför att användaren faktiskt använder sig utav den och dessutom nyttjar den fortsättningsvis. Med detta fastställt kan frågan besvaras med en tydligare och mer reproducerbar metod. Med problemet förtydligat fortlöper metoden likt den som beskrivits generellt för de övriga delfrågorna inom metoden med teoretisk undersökning: Beprövade och standardiserade metoder att mäta rekommendationsresultat med identifieras och kan sedan användas för att utvärdera resultat med hjälp av den prototypen. 3.2 Metod med prototyp offline test Följande metod togs fram för att ytterligare verifiera utfallet av den teoretiska metoden. Testet implementerar de kända algoritmer och användning av implicit data som tidigare använts i rekommendationssystem, genom en prototypimplementering. Prototypen använder sig av skarp sessionsdata ur ett bestämt dataset från streamingtjänsten. Med detta kan de olika algoritmerna testas med sessionsdata som input och generera ett mätbart resultat Att identifiera ett bra resultat I ett perfekt test skulle ett mycket stort dataset köras igenom prototypen och dess resultat testas i realtid mot aktiva användare, för att sedan jämföra användarens faktiska beteende mot de rekommendationer som algoritmen resulterade i. I detta projekt driftsätts inte prototypen i ett realtidsscenario. För att skapa ett förväntat resultat att jämföra output från prototypen med, skapas ett dataset utifrån historisk sessionsdata, där man vet vad en mängd unika användare faktiskt använde sig av för innehåll. Detta används sedan som facit för resultatet som produceras av de olika algoritmerna/rekommendationsmetoderna, med samma användarspecifika sessioner som input. Ett resultat som ligger mycket nära det förväntade resultatet kan anses vara en bra rekommendation Genomförande med prototyptestning Testet med prototypen är av typen offline test, det vill säga ett test som i detta fall sker med historisk sessionsdata. Detta ger ett mindre trovärdigt resultat än vad ett realtidstest skulle göra, men den valda metoden anses vara tillräckligt för att besvara problemformuleringens delfrågor. Offline-tester har fördelen att snabbt kunna utvärdera stora datasets av olika typer, samt att kunna applicera dem i samband 24
26 med flera olika algoritmer samtidigt [6]. Genomförandet av test med prototypen sker med nedanstående steg: Skapa ett dataset: Som input till de olika algoritmerna används ett dataset med sessionsdata utvald beroende på vad som ska testas. Exempelvis krävs sessioner med ett användar-id för att kunna applicera kollaborativ filterering samt innehållsbaserad filtrering. Sessioner som saknar detta kan därför uteslutas ur det dataset som används. Baserat på de datainsamlingsstrategier som modellerats med hjälp av den teoretiska metoden, struktureras ett dataset upp, anpassat för parametrarna till algoritmerna som testas. Ta fram förväntat resultat: Det förväntade resultatet är av samma typ för samtliga rekommendationsmetoder som används i testet, för att kunna jämföra dess output mot det förväntade resultatet. Ett dataset som bestämmer det förväntade resultatet består av en förbestämd mängd användare och information om deras sessioner som upprättats av prototypsystemet. Tillsammans skapar detta ett dataset innehållande en mängd objekt av typen: { {user, item, rating}, {user,item,rating},. } som kan jämföras med motsvarade resultat som algoritmerna producerar. Testkörning: Med teoretisk undersökning och modellering togs lämpade rekommendationsmetoder fram med respektive algoritmer. Dessa testas med prototypsystemet och producerar separata resultat i formatet beskivet ovan. De algoritmer som visats applicerbara från den data som finns att tillgå från livestreamingtjänsten modifieras inte i sig, eftersom att de sedan tidigare är optimerade och väl beprövade, däremot anpassades den implicita inputen till dem. Utvärdering: Samtliga resultat jämförs mot det gemensamma förväntade resultatet. Olika rekommendationsmetoder kan antas ge olika träffsäkerhet på de parametrar som finns i det förväntade resultatet. Ett resultat bedöms efter hur nära de beräknade preferenserna (rating) i resultatet ligger de ursprungliga värderna i datasetet. Figur 3 illustrerar metoden med prototyp. Varje metod i figuren implementeras med olika algorigmer, dessa producerar då separata resultat. 25
27 Figur 3 - Test med prototyp Likt den teoretiska metoden, lämnar även denna utrymme för att anpassning i de olika rekommendationsmetoderna om resultatet anses otillräckligt. 3.3 Projektmetod Arbetet bedrivs som ett projekt med ett flertal intressenter, akademiska mål och leveransmål. Därav används också projektrelaterade metoder och verktyg under arbetets gång för att kontinuerligt driva projektet framåt och uppnå samtliga intressenters förväntningar. I den projektdefinition [20] som upprättats inför projektet listas samtliga verktyg, dokument och utrustning som använts under projektets gång. En del av dessa uppdateras kontinuerligt Arbetsmetoder Åtagandetriangeln Triangelns tre hörn representerar tid, kostnad och funktionalitet där kostnad i detta fall översätts till arbetstimmar. Målsättningen är generellt att minst ett av triangelns hörn ska hållas dynamisk för att undvika att projektet misslyckas på grund av brist i något av hörnen. Prioriteringen i detta projekt ligger i att besvara frågeställningen, därav blir funktionaliteten i den prototyp som ska levereras det dynamiska hörn som får anpassas efter övriga omständigheter. 26
28 Figur 4 - Åtagandetriangeln MoSCoW Modellen anger en prioritetsordning för de krav som ställts på den produkt som levereras av ett projekt. Syftet med modellen är att säkerställa att de viktigaste kraven levereras i tid och övriga krav därefter enligt följande ordning: Must Krav som måste vara uppfyllda vid projektets slut Could Krav som måste vara uppfyllda, dock inte nödvändigtvis inom projektets tidsram Should Krav om helst ska vara uppfyllda men resultatet lider inte i fallet där dessa krav inte uppfylls Won t Krav som inte ställts av projektet men är relevanta för framtiden Med anledning av de begränsningar som finns kring projektet fanns åtagandetriangeln [21] i tanke från projektets start. Då arbetet sker under begränsad tid, med begränsad arbetskraft och ska uppfylla samtliga intressenters krav, så talar risken för sig själv. Att någon av de nämnda inte räcker till är en stor risk. För att motverka och begränsa utfallet av vidtogs tidigt två åtgärder: Ett riskdokument upprättades och projektmodellen MoSCoW [21] användes som en del av planeringen. För att hålla det funktionella hörnet i åtagandetriangeln dynamiskt i detta projekt upprättades, med hjälp av MoSCoW-modellen, en kravspecifikation. Detta gjordes i dialog med Liveguide för att förtydliga vad som var viktigast för dem att få ut av projektet. För den akademiska produkten finns sedan tidigare väldefinierade mål och krav som ska uppfyllas, modellen samt kravspecifikationen appliceras därför endast på företaget som intressent. 27
29 Riskanalys Enligt den riskanalys för projekt som beskrivs av Sommerville [22] kan risker delas in i följande kategorier: Projektrisker Risker som påverkar projektets tidsplan eller resurser Produktrisker Risker som påverkar produktens egenskaper Affärsrisker Risker som påverkar organisationens utveckling, t.ex. konkurrens I detta projekt är affärsrisker i stort sett uteslutet dock återstår projektrisker och produktrisker, vilket givetvis är sammanhängande. Det riskdokument som tagits fram som strategi att möta risker med är framtaget enligt den riskanalysmodell som presenteras av Sommerville där risker identifieras, prioriteras, övervakas och planeras med hjälp av strategier för risker som eventuellt löses ut. Se Figur 5 Figur 5 Riskanalysmodell, från Sommerville [22] Vid projektstarten identifierades de flesta risker som skulle kunna påverka projektet negativt och en plan för att möta dessa vid eventuellt utfall togs fram. Under arbetets gång övervakades dessa; vissa kunde plockas bort efter att milstolpar passerats och en del tillkom med tiden Projektrelaterade verktyg Utöver de metoder och modeller som använts för att driva projektet användes även verktyg för att hjälpa till med detta. 28
30 GANTT-Schema användes för tidsplanering och för att få en överblick av projektets aktuella stadie. Schemat delar in projektet i faser som sträcker sig över en bestämd period, där varje fas har uppgifter och milstolpar. Verktyget underlättade planeringen för både projektplaneringen och intressenterna eftersom att ungefärliga datum för olika tidsfaster tidigt kunde planeras in. Exakt hur man arbetar med GANTT-scheman kommer inte att beskrivas som en del av projektmetoden. Verktygen beskrivs mer utförligt i Arbeta i projekt: individen, gruppen, ledaren [21]. 29
31 4 Analys och resultat 4.1 Urval av rekommendationsmetoder De beprövade rekommendationssystem som identifierades och utvärderades är sedan tidigare bevisligen generellt effektiva. Vad detta kapitel besvarar är huruvida de är anpassningsbara till att fungera i det liknande system för livestreaming som utvecklas i denna fallstudie samt vad som ytterligare krävs i form av data och datastrukturer för att möjliggöra ett sådant system. Eftersom att resultatet från denna metod delvis grundas av tidigare lösningar så blir utfallet mer teoretiskt. För att sammanställa detta kommer resultatet från de två metoderna avslutningsvis utmynna i sammanställda modeller som representerar förslag på bra rekommendationssystem i livestreamingtjänster Datainsamlingsstrategi En gemensam nämnare i de filtreringsmetoder som presenterats i 2.2 Filtreringsmetoder är att de alla använder sig av attributet Rating i beräkningen av rekommendationer, vilket förekommer i de flesta rekommendationssystem. Attributet är i de tjänster som metoderna appliceras på, något som är angivet av användaren för ett objekt, på en bestämd skala. Detta är en del av den datainsamling som används av t.ex. Youtube och Netflix när rekommendationer beräknas [22] [23]. Att betygsätta ett objekt som sänds live är dock ingenting som är relevant eftersom det endast varar ett par timmar i bästa fall. I Liveguides nuvarande system, likt många andra, finns ingen strukturerad information om användarens preferenser för objekt, som är angivet av användaren själv, annat än vilka kanaler, eller broadcasters som följs. Med tanke på att allt innehåll i tjänsten sänds live så skulle sådan datainsamling inte heller tillföra någon nytta. I A hybrid online-product recommendation system: Combining implicit rating-based collaborative filtering and sequential pattern analysis [25] presenterar Choi et al. en hybridalgoritm där inputen, istället för rating angivet av användaren, är resultatet av en analys på användarens tidigare beteende, i detta fall med avseende på bland annat vilka produkter användaren i fråga har köpt enligt: aaaaaaaaaa tttttttttttttttttttttttttt aaaa aaaaaaännnnnnnnnn uu ppå fförrrrrråll ii AAAA(uu, ii) = ln + 1 aaaaaaaaaa tttttttttttttttttttttttttt aaaa aaaaaaännnnnnnnnn uu 30
32 där AP representerar en Absolute rating d.v.s. den rating användaren antas ha för ett objekt. En liknande lösning beskrivs av Yang et al. [17] där ett hybridsystem föreslås till livestreamingtjänster, vilket också grundar användarens preferenser i implicit data. En lösning med metoderna presenterade av Yang- och Chio et al. i åtanke utvärderades i denna studie: Den datainsamling som för nuvarande gäller denna fallstudie innehåller bland annat de attribut som visas i Figur 6 för en session. Figur 6 - Metadata från användarsession Metoden för att representera en rating i [17] använder sig bland annat av den typ av attribut som visas Figur 6. Genom att analysera en mängd historiska sessioner för en användare kan en rating bestämmas med en liknande formel likt den som visats i [25] och därmed användas som implicit input till de olika filtreringsmetoderna. Detta testades i den prototyp som utvecklats för studien Filtreringsmetoder De typiska filtreringsmetoder som används i rekommendationssystem utvärderades med fokus på hur de teoretiskt skulle fungera för att skapa rekommendationer i 31
33 en livestreamingtjänst. Med tanke på de skillnader som finns mellan innehåll i livestreamingtjänster och övriga områden som filtreringsmetoderna appliceras på upptäcktes en del svårigheter som annars är mindre problem. Innehållsbaserad filtrering: Metoden har en mängd fördelar framför kollaborativ filtrering gällande implementation och resurskrav generellt. Eftersom att all input till innehållsbaserade algoritmer endast beror på användarens egen historik i fråga, så krävs inga större operationer för att undersöka användarens preferenser. Vidare får metoden fördelen att enklare kunna rekommendera helt nya objekt, eftersom att preferenserna jämförs med objektens metadata istället för andra användarens preferenser, vilket sällan kommer ge en träff på nya objekt. I fallet av livestreaming är som sagt i stort sätt alla objekt nya vilket gör innehållsbaserad filtrering teoretisk stark inom området. Dock visar sig detta samtidigt problematisk i just livestreaming, eftersom att det ofta saknas tillräckligt med metadata om objekten för att kunna hitta träffsäkra rekommendationer [17]. Bland de största tjänsterna som levererar livestreams finns sällan mer information än kategori, tag, broadcaster och titel som användbar metadata, vilket ger en alldeles för bred träffbild att rekommendera. I fallet av denna studie saknas tillräcklig metadata från de kanaler som sänder livestreams, vilket utesluter innehållsbaserad filtrering från offline-testet med prototyp, dock kan det komma till användning i enklare modeller av rekommendationssystem. Recommender Systems Handbook [4] lyfter fram ytterligare ett problem kallat Over-Specialization som applicerar innehållsbaserade rekommendationer generellt men som även gäller denna fallstudie. Om en användare endast får rekommendationer baserade på sitt eget beteende gentemot andra liknande objekt, så kommer systemet inte kunna hitta nya områden att rekommendera, d.v.s. i fallet av livestreaming kommer nya taggar och kategorier inte kunna rekommenderas innan dess att användaren först hittat dit själv, vilket ger användaren ett väldigt nischat och begränsat utbud av rekommendationer. Kollaborativ filtrering: Problemet med att rekommendera innehåll som för användaren är nytt, motverkas av kollaborativ filtrering då grannanvändare till användaren i fråga sällan har exakt samma preferenser. Detta ger en rekommendation av användare med liknande intressen samtidigt som det kan guidea en användare ut ur sitt vanliga tittarmönster till att upptäcka nytt innehåll, som dessutom med tillräcklig träffsäkerhet kan anses intressant. Till 32
34 skillnad från innehållsbaserade filtreringsmetoder, krävs ett stort dataset av tidigare preferenser från olika användare innan rekommendationerna kan anses vara relevanta[5], vilket gör cold start till ett större problem vid användning av kollaborativa filtreringsalgoritmer jämfört med innehållsbaserade. Med grund i de sessionsdata som undersökts i denna fallstudie från en livestreamingtjänst, upptäcktes det att en stor del av användarsessionerna innehåller flera men korta visningar på varje objekt. Se Figur 7. Figur 7 - Urval av 1300 sessioner där tiden per session presenteras I Figur 7 syns det att korta sessioner är överrepresenterade i den livestreamingtjänst vars sessioner undersöktes, dock visade det sig samtidigt att varje session innehöll i snitt 2,97 visningar på olika objekt, där de längre sessionerna var överrepresenterade i antal objekt. Detta medför att en användarmodell kan byggas upp relativt snabbt i förhållande till exempelvis ett rekommendationssystem för en filmtjänst som använder sig av kollaborativ filtrering. De sessioner som var mycket korta och innehöll flera visningar ansågs inte vara tillräckligt trovärdig implicit data för att användas i det dataset som skapades för till prototypen. Så pass korta sessioner kan inte påvisa att användaren har något intresse för kategorin. Mer sannolikt är att sessionerna skapats då användare snabbt bläddrat igenom innehåll för att komma fram till annat, eller testat funktionalitet som ny användare. 33
35 Hybrida rekommendationssystem: En vanlig modell för hybrida rekommendationssystem är en kombination av innehållsbaserad filtrering och kollaborativ filtrering. I detta fall måste dock innehållsbaserad filtrering uteslutas på grund av avsaknad metadata från de kanaler som sänder innehåll. Med tanke på det cold-start problem som alltid kommer att finnas i tjänster likt denna, så skulle ett hybridsystem som kombinerar kollaborativ filtrering med kännedomsfiltrering, snabbare kunna bygga upp användarmodeller för nya användare och därmed ge träffsäkrare rekommendationer när användarens implicita data inte räcker till. I Combining Collaborative Filtering and Knowledge- Based Approaches for Better Recommendation Systems [26] föreslår författaren ett en arkitektur för ett sådant system: Figur 8 - Hybridsystem mellan kollaborativ- och kännedomsbaserad filtrering. Från: Combining Collaborative Filtering and Knowledge-Based Approaches for Better Recommendation Systems, Thomas Tran [26]. Arkitekturen illustrerad av Figur 8 har många likheter med det system som utvecklas i fallstudien och skulle kunna anpassas därefter. Genom att låta nya användare ange sina preferenser kan en kännedomsdatabas för dessa kombineras med ratingen beräknad från implicit data, ge en bättre input till den algoritm som används till att ge rekommendationer, exempelvis User K-NN. 34
36 Den arkitektur som Tran illustrerar i Figur 8 är ursprungligen tänkt till E- handel, dock skulle produktdatabasen enkelt kunna bytas ut mot taggar och kategorier på streams, som sedan kan matchas mot tillgängliga streams. Den största nackdelen med detta vore implementeringen i sig. Algoritmer som K- NN har endast parametrarna <User, Item, Rating>, vilket skulle innebära att datan från kännedomsdatabasen först måste kombineras och eventuellt temporärt lagras tillsammans med den implicita datan Rekommendationsalgoritmer Trots att innehållsbaserad filtrering hade varit en stark kandidat i sammanhanget, så kan inte några sådana algoritmer appliceras på den typ av livestreaming som undersöks i denna fallstudie då objektens metadata är otillräcklig, vilket också kan antas vara fallet för de flesta livestreams eftersom att de existerar under begränsad tid. Istället undersöktes algoritmer under kollaborativ filtrering som generellt kan delas in i metoderna grannalgoritmer (exempelvis K-NN) och matrisfaktorisering (exempelvis SVD-algoritmer [9]). User-KNN: (se 2.2.1) introducerades av GroupLens 1994 [27] och har sedan dess blivit den populäraste algoritmen inom kollaborativ filtrering. User-KNN har tidigare applicerats inom flertalet områden, allt ifrån e-handel till livestreaming, och kan enkelt anpassas därefter då den endast involverar parametrarna (User, Item, Rating). Den kan användas både för att förutse ratings på objekt men även som så kallad Top-N algoritm, d.v.s. att den kan rekommendera nya objekt som användaren i fråga aldrig varit nära sedan tidigare. Grannalgoritmer som denna, har hög tidskomplexitet relativt innehållsbaserad filtrering. I livestreaming, där varje användarmodell behöver uppdateras mer frekvent än i övriga fall, finns fördelen att kunna göra detta separat för en enskild användare utan att behöva uppdatera hela modellen. SVD++: Algoritmen presenterades av Koren [28]. Den använder sig utav fördelarna från både grannalgoritmer och matrisfaktorisering och har visat sig ge bättre förutsägelser än tidigare algoritmer, inklusive vinnarna av Netflix Prize [29] [28]. Matrisfaktoriseringsalgoritmer ger onekligen mycket bra förutsägelser och förbättrar skalbarheter avsevärt med avseende på datalagring, men har en nackdel som framför allt kan resultera i stora problem om algoritmen skulle användas i realtid i 35
37 ett rekommendationssystem för livestreamingtjänster: Algoritmer av denna typ använder sig utan den matematiska metoden SVD (Singular Value Decomposition) [30] för matrisfaktorisering vilket kräver att hela datasetet evalueras när modellen byggs upp. Detta sker i mycket tidskrävande operationer för stora datasets. I livestreamingtjänster, där innehåll byts ut mycket frekvent skulle detta medföra problem i beräkningskomplexitet i ett realtidsscenario. I Tabell 1 visas ett tidstest som jämför SVD++ mot två grannalgoritmer. Testet är gjort på MovieLens 1M dataset [31] med hjälp av Librec [32]. SlopeOne: Ytterligare en algoritm för kollaborativ filtrering, introducerad Lemire och Maclachlan [33]. Författarna lyfter inte fram algoritmen som en rival till de bäst presterande gällande träffsäkerhet, däremot är den enkel att implementera, kräver få ratings innan den ger tillräckligt träffsäkra resultat och framför allt snabb att göra uppslag i samt uppdatera med ny data. Algoritmen grundas i att parvis mäta differensen mellan användares ratings för olika objekt. Om användare A och B har givit rating två respektive ratings för ett objekt I, och användare A även har givit objektet J en rating, så beräknas en rating för objekt J till användare B genom differensen de båda angav för I. Detta illustreras i Figur 9: Figur 9 - SlopeOne, differens mellan objekt. Från: Slope One Predictors for Online Rating-Based Collaborative Filtering [33]. På grund av dess egenskaper ställt emot de krav som finns för rekommendationer i livestreaming, ansågs algoritmen vara en bra kandidat till ett sådant system. 36
38 Tabell 1 - Tidstest, MovieLens Databas Algoritm Uppbyggnadstid (s) Test tid (s) User-KNN 6,34 19,28 SVD++ 107,35 5,0 SlopeOne 14,0 10,0 4.2 Algoritmernas träffsäkerhet och implementerbarhet Följande test genomfördes med den prototyp som konstruerats till studien. Med hjälp av den kunde de presenterade algoritmerna testköras och utvärderas med data från en livestreamingmiljö. Syftet med testet är förutom att verifiera resultatet av den teoretiska metoden, att jämföra algoritmernas träffsäkerhet i den miljö testet utförs, vilket skiljer sig ifrån vad algoritmerna traditionellt används till Testmiljö och dataset Offline-testet genomfördes med sessionsdata från Liveguides databas. Sessionerna som datasetet byggdes upp av innehåller användaridentifierare, dock ej knutet till några personuppgifter. Utifrån det dataset som byggts upp användes biblioteket Librec [34] för att utföra precisionstester med de valda algoritmerna. Biblioteket innehåller en samling av de mest välkända och välanvända algoritmer som används för att förutse ratings (rating prediction) samt att rekommendera nya objekt (item ranking) Bilaga A visar den konfiguration som användes för algoritmerna i Librec samt förklaring till konfigurationsfilerna Jämförelse med träffsäkerhet I Tabell 2 presenteras resultatet från offline-tester i Librec. Resultatet mäts med hjälp av MAE (mean abosolute error) och RMSE (root mean squared error). Som namnet antyder, mäter MAE den genomsnittliga avvikelsen mellan alla beräknade (förutsagda) ratings och den faktiska ratingen [35] [6] enligt: 37
39 1 nn pp uu,ii rr uu,ii uu,ii Där n representerar antalet ratings, p, förutsagd rating, r faktiskt rating och u,i (user, item). RMSE beräknas med liknande metod, dock dras även roten ur feldifferansen, vilket ger ett betydligt sämre resultat där feldifferansen för enskilda resultat är ovanligt stora. [6]. pp uu,ii rr uu,ii 2 uu,ii nn Tabell 2 Rating prediction. Test med kollaborativ filtering. Lägre värde är bättre Algoritm MAE RMSE User-KNN (k-nearest neighbour) 0,123 0,197 SVD++ 0,108 0,189 SlopeOne 0,120 0,195 I den prototyp som strukturerat upp sessionsdatan samt givit användare en rating genom implicit data, mäts denna på en skala mellan 0 och 1. I ett resultat mätt i MAE och RMSE, innebär alltså exempelvis ett resultat på 0,123 att den förutsagda ratingen för ett objekt skiljer sig med ~12% från den faktiska. Träffsäkerheten som illustreras i Tabell 2 visade sig vara marginellt sämre än vad exempelvis det test som gjordes med MovieLens databas[29] gav, dock ligger resultatet inom rimliga gränser. Skillnaden beror med största sannolikhet på skillnaden i datasetens storlek och datainsamling. 38
40 4.3 Jämförelse mellan algoritmer Resultatet av metoderna hittills visar för- och nackdelar med de olika tekniker som används i rekommendationssystem, applicerat på livestreaming. För att tydliggöra dessa skapades olika modeller där tekniker kombineras till ett rekommendationssystem, som med grund i resultatet lämpar sig bra i livestreaming. Polärdiagrammet i Figur 10 illustrerar de olika modellernas prestanda med avseende på de krav som finns. Skalan 0-5 är relativ de övriga alternativen som tagits upp i denna rapport Hybridsystem User-KNN, Knowledge filtering Som känt så kräver grannalgoritmer som K-NN ett relativt stort dataset för att till varje användare, kunna hitta flera grannanvändare och därmed ge precisa rekommendationer. Utöver detta krävs flera tidigare preferenser från varje användare. Fördelarna med algoritmen är dock stora när det kommer till en balans mellan tidskomplexitet och träffsäkerhet. I en kombination med kännedomsbaserad filtrering är potentialen stor för ett sådant rekommendationssystem, eftersom det bästa från de två kan kombineras utan några större tekniska utmaningar. En sådan modell passar bra i tjänster likt den Liveguide har då de befinner sig i ett växande stadie, där många användare är nya och saknar tidigare preferenser. Coldstart problemet är då särskilt viktigt och löses bra med explicit data från användaren, samtidigt som grannalgoritmen effektivt kan hitta grannanvändare. För att få precisa rekommendationer krävs dock ett hyfsat stort dataset, som kan kombineras med den explicita datan för att hitta grannar Minimalt datakrav Content filtering, Most Viewed En alternativ modell togs fram, med huvudsaklig fokus på implementerbarhet. Det tänkta systemet skulle endast använda sig av implicit data från användarna för att bygga upp användarmodeller, som sedan kan matchas den metadata som finns om aktuella streams, likt ett rekommendationssystem byggt på innehållsbaserad filtrering. Eftersom att metadata ofta är bristande[36] skulle träffbilden bli bred. För att avsmalna detta, väljs det först de streams med matchande vektorer som har flest antal tittare för tillfället. Resultatet av detta blir med största sannolikhet lång ifrån lika träffsäkert som det tidigare beskrivna hybridsystemet, dock har det till sin fördel att vara betydligt enklare att implementera och trots saknad lösning för cold- 39
41 start, så kan flera streams presenteras för användaren med minimalt insamlad implicit data. Därmed minskar även risken för felaktiga rekommendationer, baserade på för få grannanvändare Balanserad modell SlopeOne Ett rekommendationssystem med implicit data som input skulle teoretiskt, i tillräcklig mån besvara samtliga krav och utmaningar som ställts med hjälp av endast algoritmer SlopeOne. I sin enkelhet kan algoritmen på mindre datasets ta fram rekommendationer till enskilda användare, utan att uppdatera hela modellen (test set) mycket snabbt. Rekommendationerna har tillräcklig men långt ifrån perfekt träffsäkerhet, dock vägs detta upp i fallet av livestreaming då övriga krav har så pass stor betydelse för att systemet överhuvudtaget ska fungera i praktiken. 40
42 Jämförelse modeller Hybridsystem Minimalt datakrav Balanserad modell Tidskomplexitet Cold-start Träffsäkerhet Implementerbarhet Datakrav Figur 10 Sammanställd jämförelse med polärdiagram, närmare kanterna indikerar bättre resultat. 4.4 Modellera bra rekommendationssystem Av de presenterade modellerna är ingen av dem perfekt. Hur ett bra rekommendationssystem för livestreamingtjänster ska modelleras, beror på vilka aspekter som prioriteras vilket tydlig illustreras i Figur 10. I denna fallstudie är cold start en speciellt viktig aspekt med tanke på att företaget i fråga är relativt nystartat och därmed i ett växande stadie. Detta medför att många användare är nya, och saknar tidigare preferenser. Om ett rekommendationssystem skulle implementeras i en livestreamingtjänst som varit aktiv under längre tid och har mer användardata att tillgå, är antagligen bättre träffsäkerhet viktigare än att möta cold start-problemet. Gemensamt har de föreslagna modellerna att någon form av hybridsystem mellan olika filtrerings- och datainsamlingsmetoder är avgörande för att uppfylla kraven i tillräcklig utsträckning. Oavsett vilken data eller filtreringsmetod som används, är 41
43 de snabbare algoritmerna att föredra i livestreaming utifrån det resultat metoderna kommit fram till, trots att kostnaden ofta blir sämre träffsäkerhet. På grund av den stora omsättningen av innehåll och hur användare frekvent navigerar i livestreamingtjänster, genereras en stor mängd implicit data som viktig att ta vara på för att kunna ta fram rekommendationer. Explicit data är självklart även fördelaktig om det finns att tillgå, men kan inte ersätta analysen av den implicita datan. När en preferens skapas utifrån implicit data, gäller det att analysera den rätt. Vi ser i Figur 7, hur en stor del av användarsessionerna är mycket korta. Detta genererar implicit data som kan vara svårtolkad. Att en användare har navigerat sig fram till en stream och lämnat den efter 10 sekunder, kanske bör antas negativt snarare än att användaren visat intresse för kategorin. Metoden som Choi et al.[25] tagit fram lider av detta när den implementeras i livestreaming. 42
44 43
45 5 Diskussion Målet med fallstudien var att hitta ett bra rekommendationssystem för livestreamingtjänster. Givetvis finns det fler än ett svar på frågan beroende på vilka aspekter som prioriteras. I kapitlet diskuteras huruvida den metod som valdes besvarar de delfrågor som konstruerades för att besvara frågeställningen. Vidare undersöks om samma metod skulle kunna användas i en liknande fallstudie, vad finns det för fördelar och brister i den valda metoden? Även testresultatet diskuteras med avseende på dess rimlighet och relevans. 5.1 Metodval Den metod som valts grundas huvudsakligen i att undersöka lösningar på tidigare, liknande delproblem och utvärdera om de kan användas, eller anpassas till att användas i livestreamingtjänster, specifikt i denna fallstudie. Då rekommendationssystem för livestreaming är ett tämligen outforskat område så saknas fullständiga, typiska lösningar för den här typen av utmaningar. Därav valdes denna metod då det tillåter att ett nytt system modelleras utifrån tidigare dellösningar, vars komponenter kan utvärderas separat med avseende på de krav som ställs på rekommendationssystemet i fråga. Förutom den mer teoretiska delen av metoden gjordes även ett offline-test, där välanvända algoritmer testades för att se hur de fungerar ur prestanda och implementationssynpunkt. Algoritmernas prestanda har förvisso utvärderats oräkneligt många gånger tidigare, men inte i fallet av livestreaming där de kan antas prestera annorlunda med tanke på skillnaden i användarnas beteendemönster (se Fel! Hittar inte referenskälla.) gentemot t.ex. en filmtjänst. Eftersom att beteendet i stor utsträckning påverkar de implicita data som i detta fall används som parametrar till algoritmerna och explicit data saknas i sammanhanget, så utgör testet en viktig del av metoden. Om möjligheten fanns, att genomföra tester i en driftsatt realtidsmiljö och utvärdera resultatet därefter, så hade hela denna undersökning kunnat genomföras i ett bredare perspektiv där andra, antagligen mycket användbara algoritmer som t.ex. MV (MostViewed) kombinerats med traditionella kollaborativa algoritmer för att skapa ett hybridrekommendationssystem likt det som presenteras i A Hybrid Preference-Aware Recommendation Algorithm for Live Streaming Channels [17]. 44
46 Den projektmetod som valdes till arbetet grundas i väl beprövade verktyg och projektmodeller som används professionellt [21] [22] och syftet med dem i detta projekt var att kunna dra nytta av dem på samma sätt som de av författarna förklaras. Omfattningen av projektmetoden avsmalnades avsiktligt innan projektets start eftersom att det förhållandevis är litet och inte lämnar mycket utrymme till allt för ingående planering och administrativt arbete, vilket med stor sannolikhet inte hade kunnat uppföljas. Åtagandetriangeln och MoSCoW-modellen var till stor nytta redan från början för att begränsa arbetet. Fortsättningsvis kan det övervägas om verktyg som GANTT-schema och Riskanalys är lämpligt att använda i liknande projekt. Dess funktion och syfte är mycket användbart, dock kan det vara svårt att uppfölja dem i den detalj som förväntas i så pass små projekt. 5.2 Utfall av resultat Målet med den prototyp av ett rekommendationsystem som konstruerades var bland annat att med hjälp av den, samt metoden för offline-test kunna verifiera svaret på de delfrågor som besvarats med den teoretiska metoden. I stor utsträckning var det som undersökningen kom fram till teoretiskt, även möjligt att implementera, exempelvis användningen av implicit data. Dock visade det sig, inte helt oväntat att resultatet av algoritmernas träffsäkerhet inte stämde helt överens med deras verkliga kapacitet, även om det låg inom rimliga gränser. I Tabell 2 syns det t.ex. att SlopeOne och User-KNN presterar likvärdig i träffsäkerhet på ratings, trots att de generellt bör prestera olika på den parametern. Anledningen till detta beror med största sannolikhet på att det dataset som användes inte var tillräckligt stort då det rörde sig i storleksordningen av tusentals sessioner. I de tester likt det som användes för Netflix Prize och andra testmiljöer för algoritmer, används datasets med miljontals objekt för att utesluta tillfälligheter. Resultatet i övrigt pekar, i flera aspekter på att hybrida system på ett eller annat sätt är en nödvändighet för att uppfylla alla de krav som ställs på rekommendationssystem i livestreamingsammanhang men även inom övriga områden för att i praktiken uppnå önskat resultat. Faktumet att flera olika metoder behöver kombineras för att få ett bra resultat som möjligt kan antas tyda på att de mest använda systemen och algoritmerna inte har hängt med i övrig utveckling i digitala tjänster. Med den da- 45
47 tamängd som idag finns och samlas in, finns det stor potential att utveckla nuvarande algoritmer till att ta in flera parametrar om användarna än den traditionella tupeln <User, Item, Raing>. 5.3 Framtida arbete Den testmiljö som användes i denna studie var begränsad till det data som fanns att tillgå för tillfället. För vidare utforskning inom området kvarstår ett flertal intressanta hybrida system och algoritmer att testa. Framför allt har det på senare år tillkommit modernare metoder som tar hänsyn till flera parametrar än de traditionella rekommendationssystemen. Ett exempel på en sådan algoritm är SoRec [37], där matrisfaktorisering kombineras med sociala aspekter ifrån användarens sociala profil, insamlat från sociala nätverk för att ge ännu mer användarspecifika rekommendationer. 5.4 Hållbarhet Att identifiera användare med de metoder som beskrivits medför vissa etiska aspekter. Betydelsen för integritet och datainsamling i digitala tjänster är något som konsumenter värderar allt högre, vilket medför liknande problem i rekommendationssystem som tidigare diskuterats i CRM (customer relationship management) sammanhang [13]. För att kunna använda sig av så pass omfattande datainsamling som krävs för att rekommendationssystem och CRM-system ska fungera, krävs en tydlig policy för hur data ska hanteras och knytas användarspecifikt. Dessutom förutser detta att man tar hänsyn till de regleringar och lagar som gäller för insamling av strukturerad data samt cookies [11][12], vilket kan variera mellan olika länder. Om framtida rekommendationssystem ska ta hänsyn till ytterligare parametrar likt de som beskrivs i algoritmen SoRec, medför detta ytterligare insamling och strukturering av personlig data. Större användarkännedom är något som underlättar marknadsföring, och industrin strävar efter eftersom att det är finansiellt fördelaktigt. Med tanke på den riktning synen på datainsamling går, är det möjligt att utvecklingen inte är hållbar i det avseendet. Hållbarhetsaspekter ur miljösynpunkt kommer inte att undersökas vidare eftersom det inte är direkt applicerbart på arbetet. 46
48 47
49 6 Slutsats De rekommendationssystem som används idag är även applicerbara i livestreamingtjänster, men måste i praktiken anpassas därefter. De brister som finns i dem visar sig blir ännu större när de appliceras i livestreaming. Exempelvis är det i en filmtjänst ett alternativ att överväga algoritmer som SVD++ framför övriga trots dess tidskomplexitet, eftersom att precisionen i rekommendationerna blir så pass mycket bättre. I livestreaming blir det desto svårare att överväga fördelarna då tidskrävande uppbyggnad av en användarmodell inte är ett alternativ på grund av den höga frekvens innehåll byts ut i. För att kunna kompensera de brister som finns, visade det sig hybrida rekommendationssystem nästan är ett måste i livestreamingtjänster. Genom att använda sig av flera datainsamlingskällor och rekommendationsmetoder kombinerat så kan problem som cold-start uteslutas. Detta sker dock på en bekostnad av implementerbarhet och högre krav på datainsamling vilket, vidare kan leda till ytterligare etiska frågeställningar. Trots utvecklingen av nya, snabbare och precisare algoritmer, så kan de tyckas vara naiva med tanke på de möjligheter som finns. När K-NN (som fortfarande är den mest använda algoritmen) utvecklades, fanns inte i närheten av samma datavolymer om användare att tillgå som idag. Det finns stor potential för vidare forskning och utveckling inom rekommendationssystem generellt, men framför allt inom livestreaming som växter allt mer. Med tanke på att allt innehåll sänds digitalt och vem som helst kan sända när som helst, så finns det enorma möjligheter att utveckla rekommendationsalgoritmerna till att ta hänsyn till sociala parametrar där exempelvis grannanvändare inte bara är användare med liknande tidigare preferenser, utan även användare med övriga gemensamma intressen. Vidare kan rekommendationer i realtid förslås användare utifrån vad grannanvändare tittar på just nu. 48
50 49
51 7 Källförteckning [1] Information society statistics - households and individuals - Statistics Explained, Jun [Online]. Available: explained/index.php/information_society_statistics_- _households_and_individuals. [Accessed: 24-Jan-2016]. [2] Recommender system, Wikipedia, the free encyclopedia. 28-Jan [3] Liveguide - Your personal guide to live streaming video., 24-Jan [Online]. Available: [Accessed: 24-Jan-2016]. [4] F. Ricci, L. Rokach, B. Shapira, and P. B. Kantor, Recommender Systems Handbook. Springer Science & Business Media, [5] M. D. Ekstrand, J. T. Riedl, and J. A. Konstan, Collaborative filtering recommender systems, Found. Trends Hum.-Comput. Interact., vol. 4, no. 2, pp , [6] J. L. Herlocker, J. A. Konstan, L. G. Terveen, and J. T. Riedl, Evaluating Collaborative Filtering Recommender Systems, ACM Trans Inf Syst, vol. 22, no. 1, pp. 5 53, Jan [7] T. VASILOUDIS, Extending recommendation algorithms bymodeling user context, KTH, School of Computer Science and Communication (CSC), [8] Netflix Prize: Review Rules. [Online]. Available: [Accessed: 16-May-2016]. [9] Algorithms: Single Value Decomposition. [Online]. Available: l. [Accessed: 16-May-2016]. [10] R. van Meteren and M. van Someren, Using Content-Based Filtering for Recommendation, [11] F. Karlsson and F. Berg, Algoritm för automatiserad generering av metadata, [12] R. Burke, Hybrid Web Recommender Systems, in The Adaptive Web, P. Brusilovsky, A. Kobsa, and W. Nejdl, Eds. Springer Berlin Heidelberg, 2007, pp [13] K. Fletcher, Consumer power and privacy: the changing nature of CRM, Int. J. Advert., vol. 22, no. 2, pp , [14] Datainspektionen, Dina rättigheter enligt personuppgiftslagen - Datainspektionen. [Online]. Available: [Accessed: 19-Apr-2016]. 50
52 [15] Kakor för webbplatsinnehavare. [Online]. Available: [Accessed: 19-Apr-2016]. [16] E. Chavez Alcarraz and M. Moraga, Linked data performance in different databases : Comparison between SQL and NoSQL databases, [17] T. W. Yang, W. Y. Shih, J. L. Huang, W. C. Ting, and P. C. Liu, A Hybrid Preference-Aware Recommendation Algorithm for Live Streaming Channels, in 2013 Conference on Technologies and Applications of Artificial Intelligence, 2013, pp [18] N. Andersson and A. Ekholm, Vetenskaplighet - Utvärdering av tre implementeringsprojekt inom IT Bygg & Fastighet 2002, Institutionen för Byggande och Arkitektur, Lunds Universitet, [19] M. Bunge, Epistemology & Methodology I:: Exploring the World (Treatise on Basic Philosophy) (Volume 5). Springer, [20] H. Sunmark, Projektdefinition. 01-Feb [21] S. Eklund, Arbeta i projekt: individen, gruppen, ledaren. Studentlitteratur, [22] I. Sommerville, Software Engineering (9th Edition). Pearson, [23] J. Davidson, B. Liebald, J. Liu, P. Nandy, T. Van Vleet, U. Gargi, S. Gupta, Y. He, M. Lambert, B. Livingston, and D. Sampath, The YouTube Video Recommendation System, in Proceedings of the Fourth ACM Conference on Recommender Systems, New York, NY, USA, 2010, pp [24] D. Nikolov and K. Donglnn, Learning to Predict Movie Ratings from the Netflix Dataset. [Online]. Available: [Accessed: 04-Mar-2016]. [25] K. Choi, D. Yoo, G. Kim, and Y. Suh, A Hybrid Online-product Recommendation System: Combining Implicit Rating-based Collaborative Filtering and Sequential Pattern Analysis, Electron Commer Rec Appl, vol. 11, no. 4, pp , Jul [26] T. Tran, Combining Collaborative Filtering and Knowledge-Based Approaches for Better Recommendation Systems, ResearchGate, Jan [27] P. Resnick, N. Iacovou, M. Suchak, P. Bergstrom, and J. Riedl, GroupLens: An Open Architecture for Collaborative Filtering of Netnews, in Proceedings of the 1994 ACM Conference on Computer Supported Cooperative Work, New York, NY, USA, 1994, pp
53 [28] Y. Koren, Factorization Meets the Neighborhood: A Multifaceted Collaborative Filtering Model, in Proceedings of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, New York, NY, USA, 2008, pp [29] LibRec - Examples & Comparison with Other Recommendation Libraries. [Online]. Available: [Accessed: 16-May- 2016]. [30] K. Baker, Singular Value Decomposition Tutorial, 29-Mar [Online]. Available: [Accessed: 16-May-2016]. [31] MovieLens, GroupLens, 06-Sep [Online]. Available: [Accessed: 16-May-2016]. [32] LibRec - Datasets. [Online]. Available: [Accessed: 16-May-2016]. [33] D. Lemire and A. Maclachlan, Slope One Predictors for Online Rating-Based Collaborative Filtering, arxiv:cs/ , Feb [34] G. Guibing, Z. Jie, S. Zhu, and Y.-S. Neil, LibRec: A Java Library for Recommender Systems. [35] J. Herlocker, J. A. Konstan, and J. Riedl, An Empirical Analysis of Design Choices in Neighborhood-Based Collaborative Filtering Algorithms, Inf. Retr., vol. 5, no. 4, pp , [36] D. Farrington and N. Muesch, ANALYSIS OF THE CHARISTERISTICS AND CONTENT OF TWITCH LIVESTREAMING, [37] H. Ma, H. Yang, M. R. Lyu, and I. King, SoRec: social recommendation using probabilistic matrix factorization, 2008, p
54 53
55 Bilagor Bilaga A Librec Konfiguration med förklaring 54
56 Förklaring till Librec-inställningar Config 1 - Källa 55
57 Config Config
Effekten av varierande datamängd vid filmbetygsprediktion
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
Personifierad Netflix
Linköpings universitet Personifierad Netflix Lisa Rönnqvist 2016-08-24 Sammanfattning INNEHÅLLSFÖRTECKNING 1. Inledning... 1 1.1 Bakgrund... 1 1.2 Syfte... 2 2. Netflix... Fel! Bokmärket är inte definierat.
En praktisk implementation av ett rekommendationssystem
Konsten att välja En praktisk implementation av ett rekommendationssystem Projektarbete Artificiell intelligens Patricia Lindblad 729G43 729G43 patli010!1 1. Introduktion 3 1.1. Vad är ett rekommendationssystem?
Rekommendationssystem. med fördjupning på collaborative filtering
Rekommendationssystem med fördjupning på collaborative filtering, majsc331 870325-1929 729G11 Artificiell Intelligens II Linköpings Universitet HT 2009 Innehållsförteckning Inledning... 1 Bakgrund...
Måldriven, informationscentrerad webbdesign
Måldriven, informationscentrerad webbdesign Linus Forsell Digitala Distributionsformer vid Högskolan Väst, Trollhättan, Sverige linus.forsell@student.hv.se 1 Abstrakt I den här essän kommer måldriven och
Titel Mall för Examensarbeten (Arial 28/30 point size, bold)
Titel Mall för Examensarbeten (Arial 28/30 point size, bold) SUBTITLE - Arial 16 / 19 pt FÖRFATTARE FÖRNAMN OCH EFTERNAMN - Arial 16 / 19 pt KTH ROYAL INSTITUTE OF TECHNOLOGY ELEKTROTEKNIK OCH DATAVETENSKAP
Datalagringsmetodik och arkitektur i Java. Projektdefinition. Projektdefinition. Björn Brenander. 7 maj 2001
Datalagringsmetodik och arkitektur i Java Projektdefinition Dokumenttitel Projektdefinition Dokumentansvarig Dokumentförfattare Björn Brenander Dokumentnamn Projektdefinition.doc Version 16 Ref. nr. Skapades
PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning
PMM (Process Maturity Metrics) PMM är en metod för att mäta processmognad i utvecklingsprojekt. I korthet går metoden ut på att man utvärderar sin utvecklingsprocess med avseende på ett antal framgångsfaktorer
TiVo ett rekommendationssystem. TiVo ett rekommendationssystem
Sammanfattning I dagens informationssamhälle kan det ibland vara svårt att sortera ut relevant information från mängden. Vi får då förlita oss till rekommendationer och omdömen från andra i allt från vilken
Rafel Ridha Projektdefinition
Rafel Ridha Projektdefinition Utveckling av applikation för Windows Phone Dokumenttitel Projektdefinition Dokumentförfattare Rafel Ridha Dokumentnamn Projektdefinition xx.pdf Version 0.3 E-post rafelr@kth.se
CDC en jämförelse mellan superskalära processorer. EDT621 Campus Helsingborg av: Marcus Karlsson IDA
CDC6600 - en jämförelse mellan superskalära processorer av: Marcus Karlsson Sammanfattning I denna rapport visas konkret information om hur den första superskalära processorn såg ut och hur den använde
SÅ BLIR DIN NETFLIX- UPPLEVELSE BÄTTRE. En litteraturstudie om Netflixs rekommendationssystem
SÅ BLIR DIN NETFLIX- UPPLEVELSE BÄTTRE En litteraturstudie om Netflixs rekommendationssystem Sammanfattning Studien fokuserar på Latent Factor Model som var ett stort genomslag under Netflix Prize tävlingen
LINKÖPINGS UNIVERSITET. Rekommendationssystem
LINKÖPINGS UNIVERSITET Rekommendationssystem, julho969 900728-5969 729G11 Artificiell Intelligens II Linköpings universitet HT 2010 Innehållsförteckning Introduktion Vad är ett rekommendationssystem?...
Ökat personligt engagemang En studie om coachande förhållningssätt
Lärarutbildningen Fakulteten för lärande och samhälle Individ och samhälle Uppsats 7,5 högskolepoäng Ökat personligt engagemang En studie om coachande förhållningssätt Increased personal involvement A
Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design
RE SD PD I UT IT ST AT Mjukvarudesign System Requirement Specification Inkrementell och iterativ! Konceptuell design (VAD) Systemdesign (OOA) Arkitekturell (grovkornig, UML) Teknisk design (HUR) Programdesign
Framsida Titelsida ii Trycksida iii Abstract iv Sammanfattning v Förord vi Tom vii Innehållsförteckning 1 Introduktion... 1 1.1 Bakgrund... 1 1.2 Inledning... 1 1.2.1 Kaprifolen... 2 1.3 Syfte... 2 1.4
Titel på examensarbetet. Dittnamn Efternamn. Examensarbete 2013 Programmet
Titel på examensarbetet på två rader Dittnamn Efternamn Examensarbete 2013 Programmet Titel på examensarbetet på två rader English title on one row Dittnamn Efternamn Detta examensarbete är utfört vid
version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg
version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg Introduktion till kursbyggarverktyg Contento Svenska AB Hornsgatan 103 117 28 Stocholm Table of Contents KAPITEL 1 Introduktion 2 Begrepp
Litteraturstudie. Utarbetat av Johan Korhonen, Kajsa Lindström, Tanja Östman och Anna Widlund
Litteraturstudie Utarbetat av Johan Korhonen, Kajsa Lindström, Tanja Östman och Anna Widlund Vad är en litteraturstudie? Till skillnad från empiriska studier söker man i litteraturstudier svar på syftet
Rekommendationer på nätet
Linköpings universitet Rekommendationer på nätet Kollaborativa rekommendationssystem Cornelia Böhm 2017-01-12 Abstrakt Rekommendationssystem är algoritmer som används för att filtrera ut de produkter som
X-jobbs katalog. Medius R&D November 2011
X-jobbs katalog Medius R&D November 2011 Contents ERP och Workflow System... 2 ipad och workflow system... 3 Nya möjligheter med HTML5... 4 Nya alternativ för affärsregelmotorer... 5 Process Intelligence
NKRR. Regelskrivning i praktiken
Sida: 1 (13) NKRR Regelskrivning i praktiken Innehåll Sida: 2 (13) 1 Inledning... 3 1.1 Förkortningar och begrepp... 3 2 Ändringshistorik för dokumentet... 4 3 Bakgrund... 5 3.1 Regler i NKRR... 5 3.2
SLUTRAPPORT WEBBPROJEKT 1
SLUTRAPPORT WEBBPROJEKT 1 Kostregistrering 30 mars 2012 Webbprojekt 1 1DV411 Institutionen för datavetenskap, fysik och matematik Linnéuniversitetet Ella Källman - ella@kallman.se Martin Kuoppa - martin@duofy.com
Kundhandledning för EBIS. E-space Business Intelligence System. Version
Kundhandledning för EBIS E-space Business Intelligence System Version 1 10-10-06 E-space Communication AB 2010 Innehåll 1. Introduktion 3 2. Filerna har olika egenskaper 4 2.1. Analys i kundzonen. 4 2.2.
Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1
Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut
Institutionen för datavetenskap Department of Computer and Information Science
Institutionen för datavetenskap Department of Computer and Information Science Examensarbete Smarta receptförslag algoritmutvärdering och implementationsförslag av Bernhard Hahn LIU-IDA/LITH-EX-G--12/032--SE
Tentamen: Programutveckling ht 2015
Tentamen: Programutveckling ht 2015 Datum: 2015-11-04 Tid: 09:00-13:00 Sal: Ansvarig: Resultat: Hjälpmedel: Maxpoäng: Betygsgränser: Anslås inom 3 veckor. Inga 40 p 20 p för G, 32 p för VG. Iakttag följande:
Utveckling av ett grafiskt användargränssnitt
Datavetenskap Opponenter: Daniel Melani och Therese Axelsson Respondenter: Christoffer Karlsson och Jonas Östlund Utveckling av ett grafiskt användargränssnitt Oppositionsrapport, C-nivå 2010-06-08 1 Sammanfattat
Manual HSB Webb brf 2004 03 23
TERMINOLOGI I Polopoly används ett antal grundläggande begrepp för publicering och hantering av information, eller innehåll som det också benämns. Nedan följer en kort genomgång av denna grundläggande
Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1
Inlämningsuppgift : Finn 2D1418 Språkteknologi Christoffer Sabel E-post: csabel@kth.se 1 1. Inledning...3 2. Teori...3 2.1 Termdokumentmatrisen...3 2.2 Finn...4 3. Implementation...4 3.1 Databasen...4
Införande av Skolfederation. Erfarenheter i Sundsvalls kommun
Införande av Erfarenheter i Sundsvalls kommun Innehåll 1. OM DOKUMENTET... 3 2. OM SKOLFEDERATION... 3 3. INFÖRANDE AV SKOLFEDERATION... 3 3.1 FASTSLÅ VERKSAMHETENS MÅLBILD FÖR SKOLFEDERATION... 3 3.1.1
Kravspecifikation Fredrik Berntsson Version 1.3
Kravspecifikation Fredrik Berntsson Version 1.3 Status Granskad FB 2017-01-27 Godkänd FB 2017-01-27 Dokumenthistorik Version Datum Utförda ändringar Utförda av Granskad 1.0 2014-01-15 Första versionen
CUSTOMER VALUE PROPOSITION ð
CUSTOMER VALUE PROPOSITION ð IN BUSINESS MARKETS JAMES C. ANDERSSON, JAMES A. NARUS, & WOUTER VAN ROSSUMIN PERNILLA KLIPPBERG, REBECCA HELANDER, ELINA ANDERSSON, JASMINE EL-NAWAJHAH Inledning Företag påstår
VILKET REKOMMENDATIONSSYTEM SKA EN INTERAKTIV MEDIETJÄNST VÄLJA?
VILKET REKOMMENDATIONSSYTEM SKA EN INTERAKTIV MEDIETJÄNST VÄLJA? Med Spotify som praktiskt fall.se 12 januari 2017 729G43 Kognitionsvetenskapliga programmet, LiU. Sammanfattning Rekommendationssystem är
CREATING VALUE BY SHARING KNOWLEDGE
CREATING VALUE BY SHARING KNOWLEDGE PROJEKTLEDNING 101 Nidzara Dellien, Lund September 2017 PROJEKT En formell definition på projekt är följande (enligt Wikipedia): En temporär satsning för att framställa
Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar
Skapa testfall Testing Köra testen Hitta fel Inspections and reviews Verifiera resultatet Formal methods Static analysis Completeness Verifiering Kvalitet Maintainability Validering Traceability Fault
Betygskriterier för examensarbete/självständigt arbete
Fastställt av BIG: s institutionsstyrelse 2008-10-22 Betygskriterier för examensarbete/självständigt arbete 1. Bedömningsgrunder och innehåll Ett examensarbete eller självständigt arbete ska bedömas inom
Gymnasiearbetet. Daniel Nordström
Gymnasiearbetet Daniel Nordström Presentationens innehåll Film gymnasiearbetet Gymnasiearbetet i korthet Gymnasiearbetet mot högskoleförberedelse Planering-genomförande och utvärdering Planeringen för
campus.borlänge Förstudie - Beslutsstöd för operativ tågtrafikstyrning
campus.borlänge Förstudie - Beslutsstöd för operativ tågtrafikstyrning En rapport från CATD-projektet, januari-2001 1 2 Förstudie Beslutsstöd för operativ tågtrafikstyrning Bakgrund Bland de grundläggande
Pass 3: Metadata. Svensk nationell datatjänst, SND BAS Online
Pass 3: Metadata Funktioner hos metadata Den här presentationen kommer att ta upp olika funktioner som metadata kan ha. Jag kommer också visa att det finns olika typer av metadata beroende på vilken funktion
Projektmodell med kunskapshantering anpassad för Svenska Mässan Koncernen
Examensarbete Projektmodell med kunskapshantering anpassad för Svenska Mässan Koncernen Malin Carlström, Sandra Mårtensson 2010-05-21 Ämne: Informationslogistik Nivå: Kandidat Kurskod: 2IL00E Projektmodell
Reflektioner från Enheten Forskning och utvärdering. - Angående Rambölls slututvärdering av Ung komp.
Reflektioner från Enheten Forskning och - Angående Rambölls slut av Ung komp. Af 00009_2.0_(2017-10-11, AF5000) Arbetsförmedlingen Författare: Johan Egebark och Gülay Özcan Datum: 2018-03-06 Diarienummer:
Data på individ/hushålls/företags/organisationsnivå. Idag större datamänger än tidigare
MIKROEKONOMETRI Data på individ/hushålls/företags/organisationsnivå Tvärsnittsdata och/eller longitudinella data o paneldata Idag större datamänger än tidigare Tekniska framsteg erbjuder möjligheter till
Datavetenskapligt program, 180 högskolepoäng
GÖTEBORGS UNIVERSITET UTBILDNINGSPLAN IT-fakultetsstyrelsen 2013-02-14 Datavetenskapligt program, 180 högskolepoäng (Computer Science, Bachelor s Programme, 180 credits) Grundnivå/First level 1. Fastställande
Särskilda riktlinjer och anvisningar för examensarbete/självständigt arbete, grundnivå, vid institutionen för omvårdnad
Umeå Universitet Institutionen för omvårdnad Riktlinjer 2012-10-23 Rev 2012-11-16 Sid 1 (6) Särskilda riktlinjer och anvisningar för examensarbete/självständigt arbete, grundnivå, vid institutionen för
Mobile First Video on demand och livesändningar på Internet. Juni 2012
Mobile First Video on demand och livesändningar på Internet Juni 2012 1 Om detta dokument Marknaden och tekniken kring film (video on demand och livesändningar) på Internet utvecklas blixtsnabbt. Video
Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt
Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt Kravhantering / Testprocess - Agenda AGENDA Grundläggande kravhanteringsprocess. Insamling, dokumentation, prioritering, Test och förvaltning
Anpassningsbar applikationsstruktur för flerpunktsskärmar
Datavetenskap Opponent(er): Rikard Boström Lars-Olof Moilanen Respondent(er): Mathias Andersson Henrik Bäck Anpassningsbar applikationsstruktur för flerpunktsskärmar Oppositionsrapport, C/D-nivå 2005:xx
Föreläsning 4 Identifiera krav och behov. Att läsa: Kapitel 10 i Rogers et al.: Interaction design
Föreläsning 4 Identifiera krav och behov Att läsa: Kapitel 10 i Rogers et al.: Interaction design Översikt Vikten av krav Olika typer av krav Datainsamling för olika krav Scenarier Use Cases Essential
Mångdubbla din försäljning med målsökande marknadsföring
Mångdubbla din försäljning med målsökande marknadsföring Av alla besökare i en webbutik är det statistiskt sett bara en liten andel som handlar något. Tänk om du kunde återengagera den stora andelen potentiella
IMPORTERA POSTER TILL DIVA Anvisning för export av poster från andra databassystem för import till DiVA
IMPORTERA POSTER TILL DIVA Anvisning för export av poster från andra databassystem för import till DiVA Universitetsbiblioteket Senast ändrad: 2016-12-12 2 Innehållsförteckning Linköpings universitetsbibliotek
Big Data i spelbranchen
Big Data i spelbranchen ett projekt med Hadoop och open source i fokus Kunden Företaget arbetar med onlinespel och utvecklar många olika spel för över 100 spelbolag, exempelvis Casinon som Casinostugan
Martin Gunséus! Praktikrapport HT 2012 Institutionen för kommunikation och medier, Lund Universitet
Praktikrapport Praktikplats Avdelning Handledare Sveriges Television Publik- och Utbudsanalys Tomas Lindhé Publik och utbudsanalys, PoU, på SVT svarar mot olika ledningsfunktioner i organisationen gällande
Leverans-API för nedladdning av geodata v1.0 - teknisk beskrivning
Leverans-API för nedladdning av geodata v1.0 - teknisk beskrivning Dokumentversion 1.0 Gränssnitt Version 1.0 Schema Åtkomst Åtkomstkontroll http://namespace.lantmateriet.se/distribution/uttag/leverans-1.0.0.json
Idrottsapen. 1. Inledning. 2. Mål och syfte. 3. Projektbeskrivning
Idrottsapen Slutrapport för projektet Idrottsappen. Projekttitel: Idrottsappen Uppdragstagaren: Sandklef GNU Labs, 710413-5137 1. Inledning Under samtal med olika aktiva personer inom olika idrotter framkom
Webbserverprogrammering
Webbserverprogrammering WES Webbserverprogrammering Ämnet webbserverprogrammering behandlar funktionalitet för webblösningar och samspelet mellan beställare, användare, formgivare och utvecklare. Ämnets
Business research methods, Bryman & Bell 2007
Business research methods, Bryman & Bell 2007 Introduktion Kapitlet behandlar analys av kvalitativ data och analysen beskrivs som komplex då kvalitativ data ofta består av en stor mängd ostrukturerad data
Visualisering av samverkan
Visualisering av samverkan 18 december 2017 En viktig aspekt i samverkan är att inte bara ha koll på vilka andra aktörer du själv samverkar med, utan även veta om vilka aktörer du inte samverkar med, men
Syns du, finns du? Examensarbete 15 hp kandidatnivå Medie- och kommunikationsvetenskap
Examensarbete 15 hp kandidatnivå Medie- och kommunikationsvetenskap Syns du, finns du? - En studie över användningen av SEO, PPC och sociala medier som strategiska kommunikationsverktyg i svenska företag
Gymnasiearbetets titel (huvudrubrik)
Risbergska skolan Program Gymnasiearbetets titel (huvudrubrik) Underrubrik Titeln på rapporten måste givetvis motsvara innehållet. En kort överrubrik kan förtydligas med en underrubrik. Knut Knutsson BetvetA10
Vetenskapsmetodik. Föreläsning inom kandidatarbetet 2015-01-28. Per Svensson persve at chalmers.se
Vetenskapsmetodik Föreläsning inom kandidatarbetet 2015-01-28 Per Svensson persve at chalmers.se Detta material är baserad på material utvecklat av professor Bengt Berglund och univ.lektor Dan Paulin Vetenskapsteori/-metodik
Kemi 2. Planering VT2016
Kemi 2 (KEM02, NA2) Planering VT2016 Pär Leijonhufvud CC $\ BY: 20160208 C Denna planering gäller för VT2016, med andra ord den andra halvan av kursen. Centralt innehåll Fet stil skolverkets text, med
1 Positivt definita och positivt semidefinita matriser
Krister Svanberg, april 1 1 Positivt definita och positivt semidefinita matriser Inom ickelinjär optimering, speciellt kvadratisk optimering, är det viktigt att på ett effektivt sätt kunna avgöra huruvida
Inlämning 1 - Tentafrågor. Projektgrupp A
Inlämning 1 - Tentafrågor Projektgrupp A 2010-11-17 Fråga \ Innlärningsmål Svar: 1 2 3 4 5 6 7 8 9 12 13 15 Fråga 1: LAU1 E x x Fråga 2: LAU1 E x Fråga 3: LAU8 B x x Fråga 4: LAU8 D x x x Fråga 5: LAU2
Martin Völcker, SLL & Suit
1 2009-02-03 DSDM Martin Völcker, SLL & Suit martin.volcker@suit.se Tel: 08-648 70 00 Mobil:0708-252424 Mentorskap - Projektledning - Utbildning- Workshops 2 2009-02-03 Oklara krav Oklara roller Försenade
Vad är nytt i ExOpen Web Reports 2.1?
Vad är nytt i ExOpen Web Reports 2.1? Innehåll Notifieringar...1 Schemalagd rapportuppdatering...2 Intranätsintegration och integrerad inloggning (Single Sign-On)...2 Förfinad visualisering...3 Teknik...5
729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo
729G75: Programmering och algoritmiskt tänkande Tema 1, föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt
Digital Conversion Manager
Digital Conversion Manager Kurser Kursen har 8 huvudmoment/delkurs(er) YH-poäng: Webbteknik & Interaktionsdesign 30 Kursen lär den studerande hur teknikerna bakom webben fungerar i övergripande drag. Den
Mål med lektionen! Repetera och befästa kunskaperna.
Entity Framework Mål med lektionen! Repetera och befästa kunskaperna. Vad lektionen omfattar Repetera och gå igenom kursen lite snabbt. Vilka problem vill vi lösa? Vi arbetar med Webbapplikationer Vi kommer
1 Minkostnadsflödesproblem i nätverk
Krister Svanberg, april 2012 1 Minkostnadsflödesproblem i nätverk Ett nätverk består av en given mängd noder numrerade från 1 till m (där m är antalet noder) samt en given mängd riktade bågar mellan vissa
Li#eratur och empiriska studier kap 12, Rienecker & Jørgensson kap 8-9, 11-12, Robson STEFAN HRASTINSKI STEFANHR@KTH.SE
Li#eratur och empiriska studier kap 12, Rienecker & Jørgensson kap 8-9, 11-12, Robson STEFAN HRASTINSKI STEFANHR@KTH.SE Innehåll Vad är en bra uppsats? Söka, använda och refera till litteratur Insamling
Deadline 3. Grupp A.4 Kathrin Dahlberg Elin Gardshol Lina Johansson Petter Liedberg Pernilla Lydén
Deadline 3 Grupp A.4 Kathrin Dahlberg Elin Gardshol Lina Johansson Petter Liedberg Pernilla Lydén 1 3. Kartlägg kundens röst För att få en klar bild av kundens nuvarande och kommande behov definieras marknaden
TMP Consulting - tjänster för företag
TMP Consulting - tjänster för företag Adress: http://tmpc.se Kontakta: info@tmpc.se TMP Consulting är ett bolag som utvecklar tekniska lösningar och arbetar med effektivisering och problemslösning i organisationer.
Mälardalens högskola
Teknisk rapportskrivning - en kortfattad handledning (Version 1.2) Mälardalens högskola Institutionen för datateknik (IDt) Thomas Larsson 10 september 1998 Västerås Sammanfattning En mycket viktig del
Sökfavoriter. Unifaun Online 2015-06-01
Sökfavoriter Unifaun Online 2015-06-01 2 Innehåll 1 Sökfavoriter... 3 1.1 Begrepp... 3 1.2 Symboler och knappar... 3 1.3 Skapa sökfavorit... 4 1.4 Använda sökfavorit... 7 1.5 Ta bort sökfavorit... 8 1.6
Företagsmodellering i UML
Företagsmodellering i UML En kort-kort introduktion av Ambjörn Naeve http://kmr.nada.kth.se Modellering En modell är en förenklad beskrivning av ett komplext område En modell är motiverad av mål (= har
Mönster. Ulf Cederling Växjö University Ulf.Cederling@msi.vxu.se http://www.msi.vxu.se/~ulfce. Slide 1
Mönster Ulf Cederling Växjö University UlfCederling@msivxuse http://wwwmsivxuse/~ulfce Slide 1 Beskrivningsmall Beskrivningsmallen är inspirerad av den som användes på AG Communication Systems (AGCS) Linda
Examensarbeten vid civilingenjörsutbildningen i Energisystem. Information till företaget
Examensarbeten vid civilingenjörsutbildningen i Energisystem Information till företaget Förord Först ett tack för att vår civilingenjörsstudent får göra sitt examensarbete i Ert företag och under Er handledning.
Datastrukturer och Algoritmer D0041D
Luleå Tekniska Universitet 19 mars 2014 Laborationsrapport Laboration 3 Datastrukturer och Algoritmer D0041D Primms Algoritm Namn E-mail Magnus Björk magbjr-3@ltu.student.se Handledare Felix Hansson Primms
PREDIKTIVA MODELLER I EN FÖRÄNDERLIG VÄRLD
Går det att göra en framtidsprognos när marknaden förändras i rekordfart? PREDIKTIVA MODELLER I EN FÖRÄNDERLIG VÄRLD Datan du inte visste att du behövde är den som avgör huruvida du överlever på morgondagens
Second handbook of research on mathematics teaching and learning (NCTM)
Second handbook of research on mathematics teaching and learning (NCTM) The effects of classroom mathematics teaching on students learning. (Hiebert & Grouws, 2007) Inledande observationer Undervisningens
Delrapport DP3. FGS för paketstruktur för e-arkiv Bilaga 1 METS
Delrapport DP3 FGS för paketstruktur för e-arkiv Bilaga 1 METS Karin Bredenberg & Mats Berggren IT/SoU 010-476 71 23 2013-01-14 2.0 1(9) INNEHÅLLSFÖRTECKNING 1. BILAGA 1: METS...3 1.1 INTRODUKTION...3
Implementering - teori och tillämpning inom hälso- och sjukvård
Implementering - teori och tillämpning inom hälso- och sjukvård Siw Carlfjord Leg sjukgymnast, Med dr IMH, Linköpings universitet There are not two sciences There is only one science and the application
Rune Tennesmed. Oskar Norling 1DV430. Individuellt Mjukvaruutvecklingsprojekt 1DV430 Webbprogrammerare H12 Oskar Norling
Rune Tennesmed Oskar Norling Individuellt Mjukvaruutvecklingsprojekt Webbprogrammerare H12 Oskar Norling 2012-05-30 Abstrakt Denna rapport handlar om mitt mjukvaruutecklingsprojekt som jag och en klasskompis
EAs krav vid ackreditering av flexibel omfattning
SWEDAC DOC 12:1 2012-05-10 Utgåva 1 Inofficiell översättning av EA 2/15 M:2008 EAs krav vid ackreditering av flexibel omfattning Swedac, Styrelsen för ackreditering och teknisk kontroll, Box 878, 501 15
Östgötatrafiken berättar om sin styrning samt hur de använder pm3-licensen
PM3 FA LL ST UDIE - ÖSTGÖTATR A FIK EN Östgötatrafiken berättar om sin styrning samt hur de använder pm3-licensen Vi lever i en snabbt föränderlig omvärld. Var inte rädda för att testa er fram och göra
Utformning av resultatdiskussion
Utformning av resultatdiskussion Den vetenskapliga textens retorik Argumentera i text utforma diskussionskapitlet En praktisk argumentationsmodell Avdelningen för fackspråk och kommunikation God professionell
Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1
Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens
Riskanalys fo r kritiska IT-system - metodbeskrivning
Riskanalys fo r kritiska IT-system - metodbeskrivning Kim Weyns, kim.weyns@gmail.com 2013-08-22 Martin Höst, martin.höst@cs.lth.se Inledning Denna rapport innehåller en metodbeskrivning för en riskanalysmetod
Hur matar man in en fråga?
Hur matar man in en fråga? Att starta Vi har utarbetat denna handledning för att hjälpa dig att förstå hur du ska använda det här systemet för förfrågningar. Det är jättelätt! Lär dig att surfa dig igenom
Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...
Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering... 4 Bussen (projektförslag)... 5 Bakgrund... 5 Klassen Buss
VILKA PERSONUPPGIFTER BEHANDLAR VI OCH HUR ANVÄNDER VI DEM?
INTEGRITETSPOLICY 1. INLEDNING 1.1. Göteborgs Universitet ( vi eller oss ) är personuppgiftsansvarig för den behandling av dina personuppgifter som utförs i samband med tillhandahållandet av våra tjänster
BETYG GYMNASIESKOLAN
UTBILDNINGSFÖRVALTNINGEN BETYG GYMNASIESKOLAN Diskussionsmaterial Vad är detta? I materialet ges förslag på hur man kan arbeta med fortbildning i lärargrupper runt betyg i gymnasieskolan. Det kan i sin
extensible Markup Language
Datavetenskap Opponenter: Björn Olsson Andreas Svensson Respondenter: Sanaa Al-abuhalje Afrah Al-abuhalje XML extensible Markup Language Oppositionsrapport, C-nivå 2007:06 1 Sammanfattat omdöme av examensarbetet
Visma EasyCruit. Sammanfattning av vår senaste produktutveckling. Augusti Svensk version
Visma EasyCruit Sammanfattning av vår senaste produktutveckling Augusti 2019 - Svensk version Innehåll Innehåll 2 Vad har vi arbetat med? 3 Förbättringar för den nya kandidathanteringen 3 Videoansökningar
Synkronisering av kalenderdata
Datavetenskap Jonas Lindelöw, Richard Löfberg Sten Hansson Bjerke, Anders Friberg Synkronisering av kalenderdata Oppositionsrapport, C/D-nivå 2006:07 1 Sammanfattat omdöme av examensarbetet Vi tycker att
Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo
Objektorienterade språk Historik Simula 67 Smalltalk 80 Procedurorienterad programmering Subprogram Programbibliotek Dataorienterad programmering Abstrakta datatyper Objektbaserade språk, föregångare till
Examensarbete, Högskoleingenjör energiteknik, 15 hp Grundnivå
Examensarbete, Högskoleingenjör energiteknik, 15 hp Grundnivå Studenten ska tillämpa kunskaper och färdigheter förvärvade inom utbildningsprogrammet genom att på ett självständigt och vetenskapligt sätt
Gymnasiearbetet för det naturvetenskapliga programmet
Gymnasiearbetet för det naturvetenskapliga programmet Pär Leijonhufvud 2017-08-29 Innehåll Syfte.................................... 2 Arbetsformer............................... 2 Rapporten.................................
Metod1. Intervjuer och observationer. Ex post facto, laboratorie -, fältexperiment samt fältstudier. forskningsetik
Metod1 Intervjuer och observationer Ex post facto, laboratorie -, fältexperiment samt fältstudier forskningsetik 1 variabelbegreppet oberoende variabel beroende variabel kontroll variabel validitet Centrala