LINKÖPINGS UNIVERSITET Rekommendationssystem Julia Holmström, julho969 900728-5969 729G11 – Artificiell Intelligens II Linköpings universitet HT 2010 Innehållsförteckning Introduktion – Vad är ett rekommendationssystem? ................................................................. 1 Överskådlig användning olika system .......................................................................................... 2 Innehållsbaserade system (content-based) ............................................................................... 2 Demografiska system (demographic)........................................................................................ 2 Nyttobaserade system (utility based) och Kunskapsbaserade system (knowledge based)3 Collaborative filtering .................................................................................................................. 3 Fördjupning inom collaborative filtering...................................................................................... 4 Minnesbaserade system ............................................................................................................... 4 Modellbaserade system ............................................................................................................... 6 Sammanfattning av collaborative filterings för- och nackdelar............................................. 8 En genväg – hybrida system ........................................................................................................... 9 Diskussion ....................................................................................................................................... 10 Referenser ........................................................................................................................................ 11 729G11 – Artificiell Intelligens II HT 2010 Julia Holmström 900728-5969 Introduktion – Vad är ett rekommendationssystem? Rekommendationssystem har utformats med syftet att hjälpa användare att välja bland ett stort antal domänobjekt. Det är intelligenta agenter som hanterar och bearbetar data. Rekommendationssystem används främst av företag i syfte att lättare hantera och sälja produkter online. Det kan ibland vara svårt att hitta produkter som passar användaren med hjälp av bland annat sökning på hemsidorna, och då ska rekommendationerna vara där till hjälp. Det kan hanteras på ett flertal olika sätt, med ett flertal olika rekommendationssystem som jag ska beskriva i den här uppsatsen. Domänobjekten ingår i hanteringen av en stor mängd användardata, som sedan hanteras med målet att individanpassas till varje enskild användares smak. För att bara nämna några av de största företagen som använder rekommendationssystem, så är Amazon.com och CDNow (Pazzani, 1999) bra exempel. Det är också vanligt att olika typer av rekommendationssystem kombineras till en så kallat hybrid rekommendation för att resultatet ska bli så bra som möjligt (Burke, 2002). Detta för att alla system har olika styrkor och svagheter, som måste hanteras på olika sätt. För att på ett enkelt sätt sammanfatta hur ett rekommendationssystem hanterar sina processer, och vad som är nödvändigt för en bra rekommendation så kan man beskriva det i tre delar (Burke, 2002): Den första delen är bakgrundsinformationen. Alla system har lagrad data innan processerna sätter igång. Den andra delen är viktig input, som kommer från användaren till systemet. Den tredje delen är algoritmerna som använder både de data som fanns från början med den input som användaren get. Detta för att bygga upp en bra rekommendation till användaren. I den här uppsatsen så kommer jag först ytligt beskriva de olika systemen som används idag. Sedan kommer jag enbart att fokusera på ett av dem; collaborative filtering. Och sedan ge en tydligare bild av hur just det systemet fungerar. 1 729G11 – Artificiell Intelligens II HT 2010 Julia Holmström 900728-5969 Överskådlig användning olika system Innehållsbaserade system (content-based) Ett innehållsbaserat system jämför beskrivningen av en produkt, med beskrivningen av en annan, för att ge rekommendationer som är relevanta. För att jämföra beskrivningar behövs fungerande algoritmer, som tar hänsyn till olika problem. Man mäter en så kallad item-toitem korrelation, istället för att som i andra typer av system, jämföra item-to-user, produkten till användaren. Det gäller då att hitta likheterna produkterna emellan, och även ta hänsyn till användarnas betygssättning av produkterna. Om både likheterna och betygssättningen är hög, så kan man rekommendera produkten. Ett av problemen som uppstår är att rekommendationerna alltid blir av samma kategori, eftersom det är innehållet man analyserar. Som exempel skulle en sida med musik inte rekommendera musik av en annan genre, utan fortsätta rekommendera pop om det var det som användaren köpte. Ett innehållsbaserat system har också problem med ”ramp-up”, det vill säga nya användare som inte ännu betygssatt eller köpt några produkter. Systemet bygger upp en kunskapsbas som förbättras över tid. Demografiska system (demographic) I ett demografiskt rekommendationssystem gäller det att organisera användarna i kluster, eller klasser. Det är sedan stereotyper som avgör vilken typ av rekommendation användaren får. Systemet kan till exempel kategorisera efter vilken ålder en person har, vilket kön, vilka intressen, osv. Ett sådant system förutsätter att personer som satts ihop i samma demografiska grupp då också tycker om liknande saker, vilket kan vara ett problem för det här systemet. Det är också ett problem att systemet måste samla på sig en stor mängd demografisk information för att fungera. En fördel är dock att systemet inte är beroende av användarnas betygssättningar för att ge ett bra resultat. Andra system behöver en startperiod, där data samlas in från användaren, och det behöver inte det demografiska systemet. Användarna är i fokus, och inte innehållet i produkten. Rekommendationerna förbättras över tid, och det krävs ingen domänkunskap för att systemet ska fungera. Eftersom ett demografiskt system rekommenderar efter förutbestämda stereotyper, så kräver det att mycket information 2 729G11 – Artificiell Intelligens II HT 2010 Julia Holmström 900728-5969 samlas innan systemet kan fungera väl. Det är dock positivt att de rekommendationer som sedan ges kommer att vara oberoende av genrer. Nyttobaserade system (utility based) och Kunskapsbaserade system (knowledge based) Utility-based, eller nyttobaserade rekommendationer använder “constraint satisfaction”, som sökmetod i sin planering av rekommendationerna. Systemet gör inte som t.ex. ett innehållsbaserat system och lagrar insamlad data av användaren och gör generaliseringar på längre tid, utan det här systemet räknar istället ut användarens ”nytta” av en viss produkt. För att göra det behöver ett nyttobaserat system använda sig av köparens profil, för att väga olika nyttor mot varandra. Som exempel att leveranstiden på en viss produkt är längre eller priset högre än vad köparen föredrar. Kunskapsbaserade system samlar funktionell kunskap om hur produkter används och vilka behov de uppfyller hos användaren. Det krävs då en kunskapsdatabas där agenten kan hämta sin information, vilket är en nackdel då det kräver minne och mycket förberedelse. Fördelar med både nyttobaserade och kunskapsbaserade system är att de båda undviker problemet med de nya användarna, att det är en startperiod innan systemet kan fungera bra (kallas ramp-up). En annan fördel är att systemen är känsliga för förändring i användarnas beteenden, vilket till exempel ett demografisk och innehållsbaserat system inte kan hantera. Collaborative filtering Det troligtvis vanligaste förekommande rekommendationssystemet är collaborative filtering. I korthet sammanställer systemet betygssättningen på produkterna, observerar produkter som är fått högst betyg bland användare, för att sedan komma med nya rekommendationer baserade på andra användares betygssättning. Det kan vara en binär skala (gilla/ogilla) eller en skala från till exempel 1-5. Det finns också två typer av collaborative filtering. Dels minnesbaserad, som direkt jämför användarnas korrelation, samt modellbaserad, som istället använder tidigare betyg för att komma med bättre förslag. Dessa två kommer jag att gå djupare in på i nästa kapitel. Det bästa med collaborative filtering är att den är helt oberoende av produkterna i sig, och istället helt inriktad på användarna. Med andra ord så fungerar den metoden bra på produkter som film och musik, som är mer komplexa och svårare att kategorisera med andra metoder. 3 729G11 – Artificiell Intelligens II HT 2010 Julia Holmström 900728-5969 Figur 1: För – och nackdelar med systemen (Burke, 2002) System Fördelar Nackdelar Collaborate filtering A) Kan göra rekommendationer oberoende av genrer B) Ingen domänkunskap behövs C) Anpassningsbar: Kvalitén förbättras över tid D) Implicit feedback tillräcklig I) Ramp-up-problemet för nya användare J) Ramp-u-problemet för nya produkter K) Gray-sheep problem L) Kvalitén beroende av mycket datahistorik M) stability vs plasticity problem Innehållsbaserad B, C , D I, L, M Demografisk A, B C I,K,L,M N) Demografisk information måste samlas Utilitets-baserat E) Inget ramp-up-problem F) Känslig för ändringar i användares åsikter G) Kan inkludera egenskaper för icke-produkter O) Användaren måste själv skriva i utilitetsfuktionen P) Kan inte lära sig, utan är statisk Kunskaps-baserat E, F, G H) Kan analysera användares behov till produkterna P Q) Kräver att man bygger upp kunskapen Fördjupning inom collaborative filtering Som tidigare nämnt så söker collaborative filtering efter korrelationer mellan användare, för att kunna förutspå (räkna ut) hur en användare skulle betygssätta en ny produkt. Med en ny produkt menar man en produkt som användaren i fråga inte tidigare tittat på, men som andra användare tyckt om. Minnesbaserade system För att på ett enkelt sätt förklara hur ett traditionellt minndesbaserat collaborative filteringsystem fungerar och hur man räknar ut vilka rekommendationer som ska ges till vem, så har jag valt att göra om exemplet från (Pazzani, 1999). I mitt exempel nedan (figur 2), så har fem 4 729G11 – Artificiell Intelligens II HT 2010 Julia Holmström 900728-5969 tjejer rankat vad som är bra respektive dåligt att äta på en tjejmiddag. Det är en binär skala där ett ”-” betyder att personen inte tyckte om förslaget på måltid och ”+” betyder att förslaget var positivt. Figur 2: Tabell över betygssättning ”Vad som fungerar att äta på en tjejmiddag” Pannkakor Pizza Lax Risotto Kycklingfilé Penny + + + + Emma + + + - Martina + + + Petronella + + + - Karin + + ? För att räkna ut vad Karin skulle tycka om att kycklingfilén till tjejmiddagen så behöver man jämföra henne med de andra personerna. Man måste se till dem vars andra förslag liknar Karins mest. Som ni ser i tabellen så är Karins åsikter i övrigt identiska med Martinas, och man skulle då kunna anta att Karin skulle tycka om kycklingfilén, för att Martina gjorde det. Det är dock inte ett speciellt säkert sätt att ta reda på vad Karin skulle tycka om, och istället så gör man en generellare beräkning, först med Pearsons r och sedan en beräkning med det viktade medelvärdet. För att räkna ut hur de olika åsikterna förhåller sig till varandra så använder man sig Pearsons korrelationskoefficient. Figur 3: Pearsons r, (Pazzani, 1999) I figur 2 räknas korrelationen mellan användare x och y ut, i mitt exempel blir Karin x och Martina y. Resultatet blir då en siffra mellan 1 respektive -1, där -1 ger en starkt negativ korrelation, och 1 ger en stark korrelation och noll ger en svag korrelation. För att räkna ut Pearsons r behövs alla produkter räknas med. R x,d är Karins betygssättning på produkten d,Rx är det medelvärde som räknas ut av alla Karins produktrankingar, liksom -Ry är alla Martinas produktrakningars medelvärde. 5 729G11 – Artificiell Intelligens II HT 2010 Julia Holmström 900728-5969 Figur 4: Viktat medelvärde (http://www.cs.kau.se/stat/staa10/vt06lp4/kapitel/kap3.shtml) För att sedan gå vidare i processen ska man räkna ut det viktade medelvärdet (formeln i figur 3). Ett viktat medelvärde beräknas med summan av den så kallade vikten, vilket är antal observationer av r(x,y) i korrelationen multiplicerat med alla andra personers värden dividerat med summan av vikterna. För att återgå till exemplet ovan, så skulle w i figur 1 vara summan av alla r(Karin, y) (det vill säga alla andra användare i tabellen) och X skulle vara alla andra personers värden på kycklingfilén. Sedan skulle detta divideras med summan av r(Karin, y). Modellbaserade system Den traditionella minnesbaserade collaborative filtering-metoden är inte speciellt pålitlig, eftersom betygssättningen i stora databaser sällan täcker alla produkter (Linden, Smith, York, 2003). Även om collaborative filtering-systemet klustrar ihop användare för att lättare hitta korrelationer så är det svårt att hitta bra korrelationer och därför bra rekommendationer. Collaborative filtering har därför kritiserats och setts som väldigt ineffektiv, också för att den gör att databehandling online. Modellbaserade system är en annan typ som ska fungera på ett mer effektivt sätt. Amazon.com beskriver i sin artikel om hur de använder collaborative filtering, (Linden, Smith, York, 2003) hur de ändrat produktrankingen, från en användarbaserad produktranking beskriven i minnesbaserad metod, till en så kallad ”item-to-item-algoritm”. 6 729G11 – Artificiell Intelligens II HT 2010 Julia Holmström 900728-5969 Figur 5: Modellbaserad algoritm (Amazon.com) For each item in product catalog, I1 For each customer C who purchased I1 For each item I2 purchased by customer C Record that a customer purchased I1 and I2 For each item I2 Compute the similarity between I1 and I2 Algoritmen ovan bygger en lista med liknande produkter, genom att räkna ut likheten mellan en produkt och alla andra relaterade produkter. Den här typen av databehandling används av Amazon.com och är väldigt intensiv och tidskrävande. Amazon.com bygger en ”liknande-produkter-lista”, en vektor, där rekommendationerna väljs efter den specifika produktens ”grannar”. Amazon.com har 29 miljoner användare vilket kräver mycket intensiv behandling av data. För att lyckas med den kollaborativa metoden måste listorna med produkter byggas offline. Algoritmen har en online-agent som kollar upp relevant data, oberoende av antal produkter som finns på hemsidan, istället beroende av hur många produkter användaren har handlat och rankat. Figur 6: Rekommendationer från Amazon.com 7 729G11 – Artificiell Intelligens II HT 2010 Julia Holmström 900728-5969 Sammanfattning av collaborative filterings för- och nackdelar. Fördelar är att collaborative filtering kan ge rekommendationer oberoende av kategorier, och anpassat till en användares betygssättning, kan rekommendationer av t.ex. en annan genre ges. En annan fördel är att det inte behövs någon kunskap om domänen. En tredje är att systemet förbättras över tid. Desto fler gånger man rankar en produkt, och ju fler som gör det, desto bättre blir systemet på att ge invidanpassade rekommendationer. Nackdelar med collaborative filtering är dels att nya användare behöver betygsätta flera olika produkter för att rekommendationssystemet ska börja fungera ordentligt. Som tidigare nämnt så kallas det för ”ramp up”-problemet, och är ett stort problem för nästan alla rekommendationssystem (med undantag för demografiska system). Problem uppstår på samma sätt när det tillkommer nya produkter. Innan produkten hunnit bli rankad av användarna, så kan den inte heller rekommenderas på ett bra sätt. Systemet är också beroende av en stor historik i databasen. För att göra bra rekommendationer behöver många produkter rankats av många personer, och detta behöver lagras och tas fram för att räkna ut en ny rekommendation. Ett annat problem som kan uppstå för både kollaborativa system och demografiska är det som kallas ”gray sheep”. Där hamnar vissa typer av användare i kläm eftersom collaborative filtering klustrar ihop data efter korrelationer. Det uppstår då en grå zoon där vissa typer av användare får felaktiga rekommendationer, eftersom deras smak inte faller i samma kluster som andra användare, och korrelationerna är svåra att hitta. Ännu ett problem är det så kallade ”stability-problemet” (Burke, 2002), vilket uppstår när en användares profil är registrerad och använd. Det är svårt för användare att få nya rekommendationer anpassade till nya preferenser. Till exempel, en användare som tidigare rankat matprodukter med kött, som nyligen blivit vegetarian, kommer fortsätta få kötträtter i rekommendationerna. Det problemet är svårt att lösa, men vissa system väljer att värdera betygssättningar som gjorts längre tillbaka i tiden mindre än nya betygssättningar, vilket kan vara bra på vissa sätt men dåliga på andra. Det kan försämra en användares genuina intressen och öka värdet av de intressen som är temporära. Nyhetssidor, som exempel, skulle behöva vikta sina nyheter lika, eftersom man under en viss period är intresserad av det som ligger i tiden, säg orkaner i USA, och en månad senare skulle man vilja återgå till att läsa om börsmarknaden. 8 729G11 – Artificiell Intelligens II HT 2010 Julia Holmström 900728-5969 En genväg – hybrida system För att undvika de problem som uppstår i de olika rekommendationssystemen så är ett alternativ som många hemsidor tillämpar att kombinera olika metoder till det som kallas hybrida system. De mest populära systemen att kombinera är innehållsbaserat system med collaborative filtering (Burke, 2002). Då minskas ramp-up-problemet, genom att de olika systemen kompletterar varandra. Ramp-up-problemet kan också lösas genom att man samtidigt an vänder sig av ett demografiskt system, som inte påverkas av nya användare eller produkter. Det finns olika typer av hybrida system. En viktat (weighted) hybrid fungerar så att betygssättningen av en rekommenderad produkt är uträknad från resultatet av alla andra möjliga rekommendationstekniker som finns i systemet. Som exempel då det kollaborativa systemet och det innehållsbaserade systemet. Men ett viktat system undviker inte de problem som tidigare beskrivits, att systemet är beroende av att många personer betygsatt produkterna. Ett annat system är en växlande (switching) hybrid. Då kombineras inte systemen vid uträkningen, utan rekommendationerna i sig kommer från olika system. Som exempel: En film ska rekommenderas i en filmdatabas, vilket inte gick i den innehållsbaserade uträkningen. Då kompletterar systemet med en kollaborativ rekommendation istället. Detta kombinerar fördelarna med alla rekommendationssystem som används. Det hindrar dock inte nackdelarna som systemen har gemensamt, säg som exempel ramp-up om kombinationen är collaborative och innehållsbaserat. Ett tredje exempel är en mixad hybrid som i de vanligaste fallen kombinerar collaborative filtering och innehållsbaserat system. Fördelen är att de undviker problemet med nya produkter och att dessa är svåra att rekommendera. En mixad hybrid använder båda systemen samtidigt, och innehållsbaserade system kan relatera produkter emellan och hitta en rekommendation oavsett om den är betygsatt eller inte. Det finns fler olika typer av hybrida system, men det är ingenting som jag kommer att ta upp i den här uppsatsen. För vidare läsning, se (Burke, 2002). 9 729G11 – Artificiell Intelligens II HT 2010 Julia Holmström 900728-5969 Diskussion Rekommendationssystem är en smidig genväg, ett bra sätt att hantera stora mängder data. Trots de brister som finns i systemen, så fortsätter de också att utvecklas. Som beskrivet i Wärnestålss bok om konversationsbaserade rekommendationssystem, så håller jag med om att det inte bara är tekniken bakom som spelar roll, utan också interaktionsdesignen. I framtiden så tycker jag att man borde fokusera mer på att göra hemsidor lätthanterliga, liksom kategoriseringar av produkter tydliga. Det kommer också behövas rekommendationssystem för att användare lätt ska kunna ta sig igenom djungeln av produkter, och det gäller att hitta en balans mellan rekommendationerna som ger till användarna, samt lättillgängligheten. Jag anser att rekommendationssystem är något att räkna med för kundens liksom säljarens fördel. Liksom kunden lättare hittar något som kan vara av intresse, så lyckas säljaren bli den som håller kvar kunden, och som kan rikta kunden mot de ”guldkorn” som de vill sälja. Jag tror också att det finns stora möjligheter inom rekommendationssystem för den ”omedvetna rekommendationen”. Till exempel att anpassa reklamannonser efter användarens beteende. Då kan man locka kunder på ett sätt som inte heller blir lika uppenbart. Att anpassa rekommendationer efter kundens beteende kombinerat med demografiska stereotyper tror jag är ett väldigt effektivt sätt för reklambranschen i framtiden. 10 729G11 – Artificiell Intelligens II HT 2010 Julia Holmström 900728-5969 Referenser Tryckta källor: Burke, Robin (2002). Hybrid Recommender Systems: Survey and Experiments. User Modeling and User-Adapted Interaction, 331-370. Pazzani, M. (2000). A Framework for Collaborative, Content-Based and Demographic Filtering. Artificial Intelligence Review, 393-408 Linden, Greg; Smith, Brent; York, Jeremy (2003). Amazon.com Recommendations: Item-to-Item Collaborative Filtering. IEEE Internet Computing, Januari-februari, 76-80. Sarabjot, Singh; Bamshad, Mobasher (2005). Intelligent Techniques for Web Personalization. Springer-Verlag Berlin Heidelberg. , 1-36. Wärnestål, Pontus. (2007) Dialogue Behavior Management in Conversational Recommender Systems. Linköping Studies in Science and Technology. Internetkällor: Breese, John S; Heckerman, David; Kadie, Carl (1998) Empirical Analysis of Predictive Algorithms for Collaborative Filtering. Technical Report MSR-R-98-12, Microsoft Research. Hämtad: 2010-09-20 från http://research.microsoft.com/pubs/69656/tr-98-12.pdf Senast uppdaterad: Ej angivet 11