”Vi lämnar informationens tidsålder och går in i rekommendationernas tidsålder.”
Som många tekniker för maskininlärning gör ett rekommendationssystem förutsägelser baserade på användarnas tidigare beteenden. Specifikt handlar det om att förutsäga användarens preferenser för en uppsättning objekt baserat på tidigare erfarenheter. De två mest populära metoderna för att bygga ett rekommendationssystem är innehållsbaserad och kollaborativ filtrering.
Innehållsbaserad metod kräver en god mängd information om artiklarnas egna egenskaper, snarare än att använda användarnas interaktioner och återkopplingar. Det kan till exempel vara filmattribut som genre, årtal, regissör, skådespelare osv. eller textuellt innehåll i artiklar som kan extraheras med hjälp av Natural Language Processing. Collaborative Filtering behöver å andra sidan inget annat än användarnas historiska preferenser för en uppsättning artiklar. Eftersom det bygger på historiska data är det centrala antagandet här att de användare som tidigare har varit överens tenderar att också vara överens i framtiden. När det gäller användarnas preferenser brukar de uttryckas i två kategorier. Explicit betygsättning, är ett betyg som en användare ger ett objekt på en glidande skala, t.ex. 5 stjärnor för Titanic. Detta är den mest direkta feedbacken från användarna för att visa hur mycket de tycker om ett objekt. Implicit betygsättning: Användarnas preferenser anges indirekt, t.ex. genom sidvisningar, klick, köp, om man lyssnar på ett musikstycke eller inte, och så vidare. I den här artikeln kommer jag att titta närmare på kollaborativ filtrering som är ett traditionellt och kraftfullt verktyg för rekommendationssystem.
Standardmetoden för kollaborativ filtrering är känd som Nearest Neighborhood-algoritmen. Det finns användarbaserad CF och objektsbaserad CF. Låt oss först titta på användarbaserad CF. Vi har en n × m matris av betyg, med användaren uᵢ, i = 1, …n och objektet pⱼ, j=1, …m. Nu vill vi förutsäga betyget rᵢⱼ om målanvändaren i inte har tittat på/betygsatt objektet j. Processen går ut på att beräkna likheterna mellan målanvändaren i och alla andra användare, välja ut de X mest likartade användarna och ta det vägda genomsnittet av betygen från dessa X användare med likheterna som vikter.
Och olika människor kan ha olika utgångspunkter när de ger betyg, vissa människor tenderar att ge höga betyg generellt, andra är ganska stränga även om de är nöjda med artiklarna. För att undvika denna bias kan vi subtrahera varje användares genomsnittliga betyg för alla objekt när vi beräknar det vägda genomsnittet och lägga till det igen för målanvändaren, vilket visas nedan.