« Ny skånsk bloggareträff: söndagen 6 februari 13.00, Kin Long Malmö | Main | Bloggforum 2004 finns som ljudfil »
januari 29, 2005
Lite om rekommendationssystem (recommender systems, collaborative filtering)
För ett tag sedan (och troligen främst via Henrik Torstenssons Filmtipset - jag är imponerad!) fick jag ett nyuppväckt intresse för rekommendationssystem (recommender systems, collaborative filtering). Bl.a. genom att tillbringa ett antal timmar med just Filmtipset som har flera olika varianter av rekommendationer (se nedan för några exempel). Om du är intresserad av film rekommenderas ett besök. För att få bra rekommendationer krävs att man registrerar sig och betygsätter ett gäng filmer (troligen rätt många).
Under denna tid satt jag och betygsatte (så ärligt som möjligt) knappt 1000 filmer, till viss del just för att testa hur bra rekommendationerna är. Tilläggas kan att jag är inte alls lika betygsaktiv där nu som då men går gärna in och kollar betygen och kommentarerna för olika filmer som är titt-aktuella.
Funktionen att se vilka personer som är mest lika ens egen betygssättning finns naturligtivs liksom vilka filmer som är lika en specifik film, och de funkade ungefär som förväntat men jag blev inte speciellt överraskad. Det finns även andra finesser. Speciellt tyckte jag om "X:s overrated/underrated" som visar de filmer som en person (X) har betygssatt och som är mest över eller under genomsnittsbetyget. Att det är enkelt att göra egna filmlistor är också en bra sak.
Denna fascination gjorde naturligtvis att jag kikade vidare på (och läste om en del) litteratur kring slika system. Nedan är några av dessa. Det fanns även en halvbakad plan på att skriva ett eget litet bloggrekommendationssystem men andra projekt - såväl privata som icke-privata - fick högre prioritet.
Här är alltså lite att läsa om sådana system:
Greg Linden, Brent Smith, Jeremy York Amazon.com Recommendations - Item-to-item Collaborative Filtering där man förklarar Amazons rekommenationsmetod och jämför med andra varianter, t.ex. user-to-user. Man kommer där fram till att Amazons metod är bättre än de andra. (Inte helt oväntat; samtliga tre författarna arbetar på Amazon.)
Badrul Sarwar, George Karypis, Joseph Konstan, John Riedl: Item-based Collaborative Filtering Recommendation Algorithms är en mer teknisk genomgång av olika typer av algoritmer.
Shyong (Tony) K. Lam, John Riedl (GroupLens-projektet) Shilling Recommender Systems for Fun and Profit som diskuterar hur man avslöja försök till fusk och penetration (shilling) i rekommendationssystem.
Daniel Lemire, Sean McGrath: Implementing a Rating-Based Item-to-Item Recommender System in PHP/SQL som innehåller mer praktiska saker för att skapa ett rekommendationssystem inklusive källkod i PHP och SQL (precis som titeln antyder). Den är en praktisk kommentar till implementationen av metoden beskriven i Daniel Lemire, Anna Maclachlan: Slope One Predictors for Online Rating-Based Collaborative Filtering. Systemet som implementerades är inDiscover (som jag inte kollat in).
Upendra Shardanand, Pattie Maes: Social Information Filtering: Algorithms for Automating "Word of Mouth". Klassiker.
Jag har försökt hitta någon bra modern bok i ämnet, men har inte funnit någon som passar. Den närmaste är nog Word of Mouse: The Marketing Power of Collaborative Filtering av Eric Vrooman, John Riedl, Joseph Konstan, men är ej beställd.
Ett system att kika vidare på är Collaborative Filtering Engine (CoFE) som är en open source-implementation skriven i Java och använder MySQL-databas. Det finns två exempel som man kan köra, bl.a. data från MovieLens-projektet. API-dokumentationen finns här.
Till slut ett tips om en ny Yahoo!-grupp: RecommenderSystems.
Se även
Grouplensprojektets publications
James Thorntons Collaborative Filtering Research Papers
Några tidigare anteckningar i ämnet:
InfoVis: Collaborative Filtering
Farliga rekommenderare.
Posted by hakank at januari 29, 2005 12:14 FM Posted to Rekommendationssystem