maskinintelligens.se

Metod / Kollaborativ filtrering

Kollaborativ filtrering

Kollaborativ filtrering ger rekommendationer utifrån mönster i vad användare gjort, utan att veta något om artiklarna i sig. Den avgörande praktiska frågan är vilken sorts återkoppling som finns: betyg som användaren aktivt satt, eller klick och köp som bara observerats. De kräver olika modeller.

Används för: rekommendationer, nästa köp, korsförsäljning

Grundidén är enkel nog att förklara på ett möte. Användare som betett sig lika tidigare kommer sannolikt bete sig lika framöver, och det går att utnyttja utan att veta någonting om vad artiklarna faktiskt är.

Det är också styrkan. En innehållsbaserad metod kräver att någon beskriver sortimentet i strukturerad form. Kollaborativ filtrering kräver bara att man loggat vad som hänt.

Explicit och implicit återkoppling

Den här skillnaden avgör metodvalet, och den missas ofta.

Explicit återkoppling är när användaren aktivt uttryckt en åsikt: betyg, tummar, omdömen. Fördelen är att både gillande och ogillande är observerat. Nackdelen är att det knappt finns: de flesta användare betygsätter aldrig någonting, och de som gör det är inte representativa.

Implicit återkoppling är klick, visningar, köp och lyssningar. Det finns i överflöd och det har en besvärlig egenskap: det finns inga negativa exempel. Att en användare inte klickat på något betyder antingen ogillande eller att hen aldrig såg det. De två går inte att skilja åt i datan.

Konsekvensen är att modeller för implicit återkoppling måste byggas annorlunda, med konfidensvikter som säger att många köp är starkare bevis än ett, eller med rangordningsförluster som bara kräver att det observerade rankas högre än ett slumpmässigt alternativ. Att köra en betygsmodell på klickdata genom att behandla nollor som ogillande ger systematiskt fel resultat.

Två familjer

Grannskapsmetoder letar upp liknande användare eller liknande artiklar och rekommenderar därifrån. Artikel-till-artikel är fortfarande förvånansvärt konkurrenskraftigt, går snabbt att räkna, och är lätt att förklara: den som köpte det här köpte också. Se KNN för mekaniken och dess begränsningar.

Latenta faktorer placerar användare och artiklar i ett gemensamt rum med några tiotal dimensioner, där närhet betyder samhörighet. Matrisfaktorisering är grundformen.

Factorization machines generaliserar det senare till godtyckliga variabler, inte bara användar-id och artikel-id. Det gör att tidpunkt, enhetstyp, placering och segment kan ingå i samma modell. Det är därför metoden fick fäste i klickprediktion för annonser.

Principen är densamma som i gles data och pooling: när observationerna är för få ska struktur ersätta dem. Latenta vektorer och hierarkier är två sätt att göra samma sak.

Kallstart

En ny användare eller en ny artikel har ingen historik, och kollaborativ filtrering har därmed ingenting att gå på.

Lösningen är hybrid: låt modellen också använda beskrivande egenskaper — kategori, pris, märke, språk — så att en ny artikel ärver beteendet hos liknande artiklar tills den byggt egen historik.

Kallstart är regel snarare än undantag i sortiment som omsätts snabbt, och det bör därför avgöras tidigt om det behöver hanteras, inte upptäckas efter lansering.

Biblioteken

Bibliotek Passar när Anmärkning
Implicit Implicit återkoppling i skala: klick, köp, visningar ALS, BPR och artikel-till-artikel. Snabbt, med GPU-stöd. Förstahandsvalet i de flesta skarpa system
LightFM Kallstart ska hanteras och det finns metadata Hybridmodell som kombinerar beteende med egenskaper hos användare och artiklar
libFM Många kategoriska variabler ska samspela Factorization machines, originalimplementationen från Steffen Rendle. Underhålls inte: metoden är värd att kunna, verktyget bör inte väljas för nybygge
Surprise Explicita betyg, prototyper och undervisning scikit-liknande gränssnitt, SVD och grannskapsmetoder. Byggt för betygsdata, som är ovanligare i praktiken än litteraturen antyder
RecBole Många algoritmer ska jämföras Över hundra implementationer i enhetligt gränssnitt, PyTorch. Ett forsknings- och utvärderingsverktyg, inte en produktionsgrund

Praktisk ordning i ett uppdrag: börja med Implicit och en artikel-till-artikel-baslinje. Räcker det inte, pröva LightFM om kallstart är problemet. RecBole används för att avgöra om något mer avancerat är värt besväret, inte för att bygga det som ska driftsättas.

Utvärdering är svårare än det ser ut

Två fällor återkommer.

Fel mått. RMSE på betyg mäter inte det som spelar roll. Det som spelar roll är om rätt artiklar hamnar högt i en kort lista. Det kräver rangordningsmått: träffandel bland de tio översta, NDCG, MAP. Se felmått.

Utvärdering på egenproducerad data. Ett rekommendationssystem bestämmer vad användarna ser, och därmed vad de kan klicka på. Historisk data innehåller bara utfall för det tidigare system rekommenderade. En offlinemätning som ser utmärkt ut kan bero på att den nya modellen liknar den gamla, inte på att den är bättre.

Rekommendationssystem är skolexemplet på en modell som formar sin egen framtida träningsdata. Spärrarna — utforskningsbudget, permanent kontrollgrupp och loggad valsannolikhet — behandlas under beslutsmodeller och återkoppling, och de bör vara på plats innan systemet sätts i drift snarare än efteråt.

Populäritetssnedvridning

Det som redan är populärt rekommenderas mer, blir därmed mer populärt, och rekommenderas ännu mer. Utan motverkan konvergerar systemet mot att visa samma tjugo artiklar för alla.

Det ser bra ut i mätvärdena, populära artiklar konverterar ju, och det urholkar långsiktigt både sortimentets bredd och systemets nytta. Motmedlen är avsiktlig utforskning och att komplettera rangordningsmåtten med täckning och spridning över sortimentet.