06 januari 2010

Några problem med rekommendationssystem

I den nära framtidens överflöd av musik, där praktiskt taget all musik som någonsin spelats in är tillgänglig att lyssna på var som helst och när som helst, får automatiska rekommendationssystem en avgörande roll i att hjälpa oss välja. Rasmus Fleischer ger i Det postdigitala manifestets §15–§18 en tankeväckande beskrivning av möjligheterna med rekommendationssystem, och några av dess möjliga sociala konsekvenser. Men han diskuterar inte frågan om hur systemen egentligen ska fungera – det förutsätts antagligen några medlemmar av vad som kan uppfattas som ett modernt prästerskap, datateknikerna, ta hand om.

Ganska naturligt kanske, men eftersom jag är en av medlemmarna i det där prästerskapet som förutsätts kunna leverera underverk till att ge rekommendationer, på ett sätt som förutsätts vara alltför komplext för att den genomsnittlige användaren ens ska börja försöka begripa sig på det, så börjar jag förstås omedelbart fundera över hur man egentligen ska få fram de där rekommendationerna.

Själva de algoritmiska problemen med att behandla tillräckligt mycket data på tillräckligt kort tid bekymrar mig inte nämnvärt. Det är sekundära och angenäma problem som vi löser på ett eller annat sätt med smarta beräkningar, kraftfull hårdvara eller väl valda approximationer. Nej, det svåra här är framför allt att det är så ytterligt svårt att avgöra vilket problem det egentligen är som ska lösas.

Den vetenskapliga litteraturen flödar redan över av matematiska och statistiska metoder för rekommendationer. Utan tvekan lever många av metoderna upp till förväntningarna vad gäller komplex obegriplighet. Men när man tittar på hur själva problemet egentligen beskrivs, problemet som metoden löser, matematiskt formulerat som något sorts optimeringsproblem, då blir i alla fall jag väldigt snabbt tveksam. Är det verkligen det där som är rekommendationsproblemet, och i så fall varför?

I själva verket finns ingen bra matematisk formulering av vad ett rekommendationssystem ska göra. Eller med andra ord, inget objektivt mått på om en viss rekommendation är bättre än en annan. När man visar upp en rekommendation kan nog de flesta människor säga om de tycker att den är »rätt« eller inte, och om man pressar dem kan de eventuellt ad hoc komma fram till någon sorts abstraktion av varför. Men tar man den abstraktionen och applicerar blint på tillgänglig data så vågar jag påstå att man kommer att få resultat som innehåller en hel del »fel« som många kommer att irritera sig på.

Till syvende och sist är det en smaksak vad som är rätt och fel. Detta är en mardrömssituation för en algoritmiker som vant sig vid att allt kan reduceras till binära beslutsproblem. Ett sätt att objektivifiera problemet är att säga att det gäller att förutsäga rekommendationer som man redan har empiriska data för (som i Netflix filmrekommendationstävling) men det är en forumlering som kräver ganska begränsade förutsättningar. Det enda uppenbart objektivt korrekta sättet att närma sig problemet skulle vara att försöka simulera de relevanta delarna av användarens hjärna.

Det är det ena som gör rekommenderandet svårt. Det andra är brist på data.

Visst, över tid kan man samla på sig hur mycket data som helst, men man stöter ändå alltid på situationer där de är sparsamma. Brist på data ger osäkerhet, men i många statistiska metoder ger det en illusion av säkerhet. Det kan man observera om man tittar i till exempel en nätbokhandel på en hyfsat ovanlig bok man redan köpt. Bland rekommendationerna radas då ibland upp en misstänkt stor del av ens egen bokhylla. I mitt fall kan det exempelvis vara tecknade serier av Chris Ware som påstås ha samband med böcker om databasteori. Ett illusoriskt samband, eller? Om det nu är så att den enda som köpt databasteoriboken också köpt den tecknade serien, finns det då inte ett starkt statistiskt belägg för att det faktiskt finns ett samband? Här är det ont om bra objektiva argument. Motsvarande koppling mellan två databasböcker är betydligt svårare att kritisera.

Lyckligtvis kommer man dock en bra bit på väg med ganska enkla metoder. Men det är inte självklart att framtidens system blir så fruktansvärt mycket mer sofistikerade än dagens, annat än genom att de kommer att kunna använda sig av mer data (och mycket data slår ofta sofistikerade algoritmer).

En löjligt enkel metod i musikfallet är förstås att rekommendera annan musik av samma artist. Men till och med ett så enkelt kriterium kan slå brutalt fel. För vad är egentligen samma artist?

Söker man på Spotify efter Aphex Twin, vilket är den mest kända pseudonymen som den (i brist på bättre term) elektroniske musikern Richard D. James har använt sig av, då får man bland annat träff på plattan Reverse the Trend som James förefaller ha gett ut 2003 under den alternativa pseudonymen AFX. Men det har han inte alls. AFX är i detta fall ett kaliforniskt gitarrband med kristna texter, ljusår från Aphex Twins genialiskt respektlösa synthexperiment.

Uppenbarligen använder Spotify data som anger att Aphex Twin och AFX är synonymer, och det är svårt att säga att det är fel. Det är också svårt att säga vad man skulle kunna göra åt det – annat än att gå in och handeditera när man upptäcker problem. Visst skulle man kunna ha till exempel kollat skivbolagsetiketter, men det skulle precis lika gärna ha kunnat bli fel åt andra hållet, eftersom James inte bara använt sig av ett otal artistalias utan också gett ut skivor på en mängd olika bolag.

Än intressantare blir det när man söker upp Reverse The Trend på Amazon och kollar rekommendationerna. Det är idel Aphex Twin-relaterade titlar bland »customers also bought«, vilket lätt ger det felaktiga intrycket att det handlar om samma artist. Men – och detta är det riktigt intressanta – vad Amazon faktiskt säger är förmodligen helt sant!

Kundrecensionerna är underhållande; det finns 14 stycken och samtliga handlar om en enda sak: detta är ju inte Aphex Twin! Alla har lägsta betyg utom en som har högsta, och den sammanfattar fenomenet väl:

this is by far the funniest thing on amazon.com. i cant believe poeple accually bought this thinking it was aphex twin.

"Customers who bought this item also bought

* Hangable Auto Bulb ~ AFX
* Analogue Bubblebath ~ AFX Featuring Schizophrenia
* Analogue Bubblebath, Vol. 3 ~ AFX
* Surfing on Sine Waves ~ Polygon Window"

hahaha you silly people.

Amazon använder sig av användardrivna kopplingar, vilket borde vara idiotsäkert. Kunder som köpt det här har också köpt det där. Det är en koppling som är obestridligt sann i all sin objektivitet. Men det kan, som i detta fall, bli till en självförstärkande felaktig rekommendation. Varje kund som blir lurad av den synbara kopplingen, och köper skivan i tron att det är Aphex Twin, bidrar till att förstärka den.


4 comments:

Anonym sa...

Ibland finns det ju faktiskt objektiva mått på huruvida en viss rekommendation är bättre än en annan. Filmtipset till exempel rekommenderar en film som den tror att jag kommer ge betyget 5 - ser jag sedan filmen och istället ger den betyget 4 var det ju en sämre rekommendation än om jag gett den betyget 5. Ju högre betyg jag förväntas ge en film, desto mer relevant är det ju att rekommendera den. Det var väl någon videouthyrare i USA (Blockbuster?) som utlös en tävling i att just ge så träffsäkra filmrekommendationer som möjligt?

ctail sa...

Det beror förstås på vad man menar med »mått« och »objektivt«. Men att finna i efterhand att man gett rätt eller fel svar är ju inte användbart när rekommendationssystemet ska göra sitt jobb. Tävlingen du refererar till är antagligen Netflix (som jag nämnde i inlägget).

Anonym sa...

Att finna i efterhand att man gett rätt eller fel svar hjälper ju systemet att bli bättre.

ctail sa...

Visst kan det göra det, och det är ju också så man brukar göra för att utveckla system för maskininlärning: man delar upp indata i träningsmängd och testmängd, kalibrerar systemet med träningsmängden och kollar resultatet mot testmängden. Så gör man just för att man inte kan (eller inte orkar) hitta ett objektivt mått och utforma en algoritm för det specifika problemet.

Men rekommendationsproblemet är i sin totala subjektivitet ett extremfall även i maskininlärningssammanhang, i och med att det man försöker trimma in maskininlärningen mot den enskilda användarens subjektiva, och förmodligen ganska skakiga, bedömning. Dessutom vill man helst inte vara beroende av att användare ger aktiv feedback genom att betygsätta rekommendationerna.