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