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 vinterjacka vi ska köpa till vilken artikel vi ska läsa. Rekommendationssystem, som automatgenererar rekommendationer, blir allt vanligare på olika webbsidor och i olika typer av system. I detta arbete beskrivs för TV-program. Algoritmerna bakom rekommendationsprocessen i systemet beskrivs och idén bakom systemet diskuteras.
Innehållsförteckning 1. Bakgrund... 1 2. Rekommendationssystem... 1 3. Dataflödet... 2 3.1 Explicit feedback... 2 3.2 Implicit feedback... 2 3.3 Förslagsprocessen... 2 4. Algoritmerna bakom TiVo... 4 4.1 Collaborative-Filtering algoritmen... 4 4.2 Innehållsbaserad algoritm... 5 5. Slutord... 6 5. Referenser... 7
1. Bakgrund Problemet med information overload påverkar många dagligen i sökandet efter ny kunskap. Det kan röra sig om allt från artikelsökning i skol- eller jobbsammanhang till att veta vilket hotell man vill bo på under semestern eller vilken film man ska se på kvällen. För att underlätta vårt sökande tar vi ofta hjälp av andras åsikter om specifika saker. Vi läser recensioner och tittar på köpstatistik. Många webbsidor har därför börjat med rekommendationssystem som gör förutsägelser och rekommendationer utifrån andra användares bedömningar. I detta arbete beskrivs TV-guiden TiVo, ett rekommendationssystem som för närvarande finns i USA, Kanada och Australien. Över en miljon människor använder dagligen TiVo [1]. TiVo fungerar som en hjälpreda när du ser på TV. Den kan plocka fram information om TVprogram och guida dig till den typ av film, serier eller nyheter som passar dig bäst. Detta sparar den enskilde tittaren tid och effektiviserar TV-tittandet genom att reducera tiden då man zappar runt i jakt efter något lämpligt att se på. Systemet ger dig också möjlighet att se på dina favoritprogram när det passar dig. Den spelar in live-tv så att du kan pausa och spola tillbaka mitt i ett program. TiVo började utvecklas under mitten av 1990-talet och var till en början enbart en TV-guide men har under åren utvecklats till ett mer avancerat rekommendationssystem. 2. Rekommendationssystem Målet med ett rekommendationssystem är att förutsäga till vilken grad en användare kommer att uppskatta ett visst tv-program, en CD-skiva, eller en webbsida. Sådana här system kan delas in i två undergrupper, innehållsbaserad rekommendation och samarbetsbaserad rekommendation (Collaborative Filtering system). Den tidigare använder sig av specifika särdrag för att kunna göra en rekommendation, så som genre, skådespelare, eller regissör. Systemet lär sig av användarens tidigare val vilka skådespelare, till exempel, som är särskilt uppskattade. Dessa rekommendationer är dock inte särskilt effektiva eftersom de bara ger en vag hint om huruvida användaren faktiskt kommer gilla en film eller inte. Eftersom det bara finns ett givet antal genres så kan systemet inte göra en tillräckligt precis förutsägelse. Ett samarbetsbaserat system kan däremot göra mer exakta rekommendationer med hjälp av input från andra användare. För att detta system ska kunna fungera måste varje användare vara aktiv och själv betygsätta program och filmer som han eller hon har sett. På detta sätt byggs en databas med betyg på alla program upp som sedan kan matchas med varandra. Detta är ett så kallat item-item system. [1] Systemet kan hitta par av program som användare verkar ha uppskattat lika mycket (eller lika lite) och koppla ihop dem. När en rekommendation ska göras tar systemet ut relevanta par och gör en förutsägelse utifrån de medelbetyg som finns.[1] Idén är alltså att program med samma betyg antas ge samma reaktion hos olika användare. Exempel: Pelle har inte betygsatt serien OC. TiVo gör därför en beräkning för att kunna förutsäga ett betyg på denna serie, och därmed kunna förutsäga vad Pelle kommer att tycka om den. Systemet jämför betyget som andra användare har satt på OC med alla andra 1
betygsatta serier och plockar ut de vars betyg korrelerar med OC. Serien får alltså samma medelbetyg som Pelle har satt på andra serier som korrelerar med den. 3. Dataflödet Från det att en användare betygsätter ett program sker en serie händelser som till slut leder fram till att användaren får tillbaka en rekommendationslista på program som han eller hon med sannolikhet kommer att tycka om. Varje film och program har ett eget unikt ID, som sätts av Tribune Media Services (TMS) (tms.tribune.com). Serier som har flera episoder har ett gemensamt ID för alla avsnitt. Varje rekommendation sker på ID-nivå, systemet försöker alltså inte förutse vad användaren kommer att tycka om ett specifikt avsnitt av en serie. Varje TiVo-användare betygsätter i snitt 98 olika program. [1] Själva dataflödet börjar med att en användare ger feedback och betygsätter ett program. Detta kan göras antingen explicit eller implicit. 3.1 Explicit feedback En användare kan under tiden ett program visas, eller direkt efter, välja att betygsätta det. Han eller hon trycker då på en uppåtknapp för att ge plusbetyg eller på en nedåtknapp för att ge minuspoäng. På engelska används uttrycket thumbs up och thumbs down som en liknelse till den fysiska gesten för att något är bra eller dåligt. Betygsättningen ligger mellan +3 (tre tummar upp) och -3 (tre tummar ner). 3.2 Implicit feedback Eftersom användare inte alltid väljer att betygsätta ett program så gör systemet även implicit betygsättning. Detta sker när en användare spelar in ett program. Systemet sätter då automatiskt betyget +1. Det finns dock problem med detta implicita betygsättningssätt. Till exempel gör systemet ingen skillnad på betyg som är satta explicit eller implicit. Ali och van Stam påpekar att användare ibland verkar betygsätta program som de egentligen inte tittar på för att få en viss profil. De menar att en bättre indikator för implicit feedback skulle vara antal minuter som användaren tittar på programmet [1]. En detalj som kan vara värd att nämna är att alla användare på en och samma TiVo räknas som en enda användare. Så en familj med olika tycke och smak ses som en enhet. Detta kan förstås ställa till en del problem när det kommer till rekommendationer. Vem passar bäst för just denna rekommendation? Tonårsdotter eller pappa? 3.3 Förslagsprocessen 1. Feedback från användaren. Användarens handlingar noteras av systemet. Till exempel inspelningar och betygsättningar. 2. Profilen överförs. Periodvis överförs en användares profil till TiVos server. Hela profilen sänds på nytt varje gång istället för att uppdateras. Detta är nödvändigt eftersom servern inte kan knyta ihop uppdateringar med befintlig data lagrad i servern. Detta i sin tur beror på att varje profil anonymiseras vid överföring till servern. 2
3. Anonymisering. Servern tar bort all data som kan koppla ihop profilen med användaren. Till exempel så nollställs tidstämpeln så att varje överföring ser ut att vara gjord 1970-01-01. 4. Uträkningar. Servern räknar ut korrelation mellan par av serier. Sedan görs ett paket av de aktuella korrelerande paren. 5. Nedladdning av korrelationer. De korrelerande paren ( paketen ) laddas ner till enskilda TiVos. 6. Uträkningar för den enskilde användaren. En algoritm i varje enskild TiVo itererar genom TV-guiden. Med hjälp av det nedladdade paketet görs förutsägelser för program som användaren ännu inte sett (eller egentligen; inte betygsatt). Rekommendationen görs endast på program som användaren har tillgång till och som ännu inte betygsatts. TiVo gör alltså inte en rekommendation om ett program på en kanal som användaren inte kan få in. 7. Rekommendationslista. Förutsägelserna om vilka program användaren kommer att tycka om kombineras med redan betygsatta program och en lista med tänkbara serier, filmer och nyhetssändningar görs. 8. Eventuell inspelning. Om det finns utrymme på hårddisken i användarens TiVo spelas det program som ligger högst upp på rekommendationslistan in. Detta sker enbart om användaren inte har förprogrammerade inspelningar, i så fall går dessa före. Figur 1. Rekommendationslista Program kan hamna i rekommendationslistan på tre olika sätt. - Användaren har redan betygsatt ett program men har inte programmerat in inspelning av det programmet. När programmet då dyker upp i rekommendationslistan görs det som en påminnelse om att ett program som användaren garanterat tycker om kommer att sändas. Ett maximalt sorteringsvärde sätts på detta program (255). - TiVos Collaborative Filtering räknar ut hur mycket användaren kommer att tycka om programmet. Algoritmen räknar ut ett betyg (mellan +3 och -3) samt ett sorteringsvärde (i detta fall mellan 160 och 250). 3
- Betyg och sorteringsvärde sätts med hjälp av innehållsbaserad filtrering (contentbased filtering). Även denna algoritm räknar ut ett betyg och ett sorteringsvärde. Denna kan endast ge lägre sorteringsvärden (mellan 0 och 128) eftersom den använder sig av en enklare uppsättning av särdrag än vad Collaborative filtering gör. Att sorteringsvärdet varierar beroende på vilken metod som används, gör att de olika metoderna får olika slutvärden. Detta resulterar i att rekommendationerna från respektive metod får olika prioriteringen i den slutgiltiga rekommendationslistan. Program som redan är betygsatta får högre prioritering än program uträknade med Collaborative Filtering som i sin tur har högre prioritering än program uträknade med innehållsbaserad filtrering. Algoritmerna körs i bakgrunden på varje enskild TiVo med hjälp av Linux, minst en gång per dag. 4. Algoritmerna bakom TiVo Rekommendationssystemet i TiVo använder sig av två algoritmer. Dels en Bayesiansk, innehållsbaserad algoritm. Dels den så kallade Collaborative-Filtering algorithm (CF). 4.1 Collaborative-Filtering algoritmen Målet med en collaborative-filtering (CF) algoritm är att rekommendera nya saker eller räkna ut den förväntade nyttan (värdet) av en viss sak (till exempel TV-program, CD-skiva eller bok). Detta görs utifrån andra användares bedömningar av saken i fråga. Sarwar et al. beskriver en typisk CF som något som består av n antal användare (user) U {u 1, u 2 u n } och av m antal saker (items) I {i1, i2 im}. Varje användare ui har en lista med saker Iui som han eller hon har uttryckt en åsikt om. [4] När användare har betygsatt två program (show) lika sätts dessa (programmen) ihop och blir ett par. Sedan bildas större grupper med par för att kunna utföra förutsägelser på större material. Korrelationen (r) mellan två program räknas ut med hjälp av Pearsons korrelationskoefficient (i figuren: s1 och s2). Summan är för alla (N) användare (u) som betygsatt båda programmen. ts1u är betyget som användare u har gett program s1. Ts1 är genomsnittsbetyget som de aktuella användarna (N u) gett s1.!s1 är standardavvikelsen från betyget för s1. [1] 4
Figur 2. Pearsons korrelationsformel Förutsägelsealgoritmen -Collaborative- använder program som ska bli utvärderade (alltså serier eller filmer som användaren inte har betygsatt ännu), samt korrelationen mellan ett par av program -Pairs- som input (<series, series, correlation>). Collaborative tar sedan ut en undergrupp av Pairs där det aktuella programmet ingår, Pairs (S). Pairs (S) sorteras utifrån korrelationsvärdet (r, S1, S2). Ett medelvärde räknas sedan ut på de paren som har de högsta korrelationsvärdena. Detta värde blir betyget, (!). Rekommendationslistan sorteras sedan utifrån!. Collaborative (Series, Pairs): For each unrated series S in Series let Pairs(S) Figur 2. be Collaborative subset of Pairs Filtering predicting Algorithm for S consider elements <S1, S, r (S1, S)> in Pairs(S) sort Pairs(S) with respect to absolute r compute weighted linear average! as in equation E Predictions: = Predictions U <S,! > Output Predictions sorted by! Figur 3. Collaborative Filtering Algorithm 4.2 Innehållsbaserad algoritm Denna algoritm används för att komma runt problemet att en ny användare ännu inte hunnit betygsätta några program och därmed inte kan jämföras med andra användare. Samma sak gäller för nya TV-program. Detta kallas för the cold-start problem [2, 3, 4]. Eftersom CFalgoritmen inte kan användas i dessa fall får istället den innehållsbaserade bayesianska algoritmen ta över för att göra en förutsägelse:! = <", #>, där " är ett beräknat betyg och # är sorteringsvärdet. 5
5. Slutord Syftet med ett rekommendationssystem är att hjälpa människor att sortera i en informationsmängd som kan verka oöverskådlig. Att då istället ta hjälp av andras erfarenheter verkar vara ett lämpligt sätt att förkorta sökprocessen. TiVo ger varje användare chansen att sätta ett värde på sin emotionella respons på ett visst program. Den enskilda individens tycke om ett program är det som får stå till grund för en rekommendation till en annan individ. Men speglar våra betygsättningar vår verkliga respons på programmet? Ali och van Stam skriver att det händer att användare betygsätter program som de skulle vilja bli förknippade med. Medan de egentligen tittar på helt andra typer av program [1]. Detta indikerar att betygsättningen inte alltid speglar verkligheten och kan då ge en skevhet i rekommendationerna. Författarna föreslår alternativa sätt att ge feedback på ett program, till exempel genom att mäta antal minuter som ett program är på. Men detta kan också vara missvisande då TV:n kan vara på utan att någon faktiskt tittar. Det är inte heller ovanligt att man faktiskt fastnar framför ett TV-program som man egentligen inte tycker om alls. Så detta är inte heller någon bra lösning. Collaborative Filtering är definitivt ett användbart och praktiskt sätt att minska informationsbördan för människor. Men jag tror att det är viktigt att komma ihåg varför man vill ha ett rekommendationssystem och vem det är till för. Risken att systemet trasslar in sig i komplicerade algoritmer och fixar för att lösa alltmer komplexa problem är överhängande om man glömmer bort människorna i systemet och var behovet kommer ifrån. 6
5. Referenser 1. Ali, K. & van Stam, W. (2004). TiVo: Making Show Recommendations Using a Distributed Collaborative Filtering Architecture. Industry/Government Track Paper 2. Kim, B. M., Li, Q., Park C. S. & Kim, S. (2006). A new approach for combining contentbased and collaborative filters. Journal of Intelligent Information Systems 21 (1): pp 79-91. 3. Li, Q., Myaeng, S. H., Kim, B. M. (2007). A probabilistic music recommender considering user opinions and audio features. Information Processing & Management Journal (IP&M) 43(2): pp 473-487. 4. Sarwar, B., Karypis, G., Konstan, J., & Riedl, J. (2001). Item-based collaborative filtering recommendation algorithms. Proceedings of the WWW conf. pp. 285 295. 7