Allt du behöver veta om Samarbetsfiltrering
- ta en Demo klass
- typer av Samarbetsfiltrering
- Minnesbaserad eller närmaste Grannalgoritm
- modellbaserad Samarbetsfiltrering
- Hybrid Samarbetsfiltrering
- Samarbetsfiltreringsexempel
- Dataset
- skapa Samarbetsfiltreringsalgoritmen
- Minnesbaserad Samarbetsfiltreringsalgoritm
- beräkning av betyg
- begränsningar av Samarbetsfiltrering
- tillämpningar av Collaborative Filtering Recommender Systems
ta en Demo klass
(ger dina kontaktuppgifter, nedladdningslänk kommer att skickas till dig i några sekunder)
innan vi går in i kärnkoncept som samarbetsfiltreringsrekommendationssystem och samarbetsfiltreringsalgoritmer, låt oss förstå rekommendationssystem.
ett rekommendationssystem syftar till att förutsäga en användares preferenser, för att ‘rekommendera’ ett objekt, som kan vara en produkt som kläder, eller kan vara filmer, tjänster etc., rekommendationssystem har blivit mycket viktiga idag på grund av överskottet av alternativ i varje domän, och de hjälper företag att bättre placera sina produkter eller tjänster för ökad rörelse.
det finns två sätt att bygga ett rekommendationssystem; det ena är Innehållsbaserat och det andra är Samarbetsfiltrering. Vi kommer att titta på Samarbetsfiltrering i djupet i den här artikeln, tillsammans med Samarbetsfiltreringsexempel.
35% av Amazon.com intäkter genereras av dess rekommendationsmotor.
det finns två sätt, eller sinnen, där samarbetsfiltrering kör rekommendationssystem, och det är en smal och en mer allmän.
i smalare bemärkelse fungerar samarbetsfiltrering genom att förutsäga en användares preferenser, genom att samla in och studera preferenser hos många andra liknande användare.
ladda ner detaljerad läroplan och få GRATIS tillgång till Orienteringssession
tid: 10:30 am – 11:30 AM (IST / GMT + 5:30)
till exempel, om användare A och användare B båda föredrar samma tvättmaskin, kan de andra inställningarna för användare B vara något som användare A kommer att vara intresserad av eftersom deras smak och behov är likartade. Detta görs naturligtvis genom att ta hänsyn till många olika användare och många preferenser och reaktioner, därav termen, samarbetsfiltrering.
Collaborative Filtering Source – Recommender System
i en mer allmän mening är collaborative filtering processen att förutsäga en användares preferenser genom att studera deras aktivitet för att härleda mönster.
till exempel, genom att studera gillar, ogillar, hoppar och vyer, kan ett rekommendationssystem förutsäga vad en användare gillar och vad de ogillar.
skillnaden mellan samarbetsfiltrering och innehållsbaserad filtrering är att den förra inte behöver artikelinformation utan istället fungerar på användarinställningar.
typer av Samarbetsfiltrering
Minnesbaserad eller närmaste Grannalgoritm
Recommender system Source-Towards Data Science
denna metod använder ett klassificeringssystem för att förutsäga en användares preferenser genom att ta hänsyn till en liknande användares eller ‘grannens’preferenser. Det finns två sätt att beräkna inställningar här, användarbaserad Samarbetsfiltrering och artikelbaserad Samarbetsfiltrering.
låt oss först överväga användarbaserad Samarbetsfiltrering. Låt oss säga att vi har en matris av betyg n x m, för användaren u expori, i = 1,…n och artikel p expori, j=1,…m. låt oss säga att vi måste förutsäga betyget på artikel r expori, ett objekt J den användaren Jag har inte tittat på/betygsatt. Hur denna metod fungerar, är att beräkna användar i: s preferenser och matcha dem med andra användare, Välj de bästa x liknande användare, ta sina betyg för objektet r brasilienoch hitta det vägda genomsnittet för att förutsäga användar i: S möjliga betyg/preferens för objektet.
med hänsyn till det faktum att vissa användare tenderar att vara för lätta, vilket ger höga betyg för objekt som de inte riktigt tycker om, medan vissa användare tenderar att vara för strikta, vilket ger låga betyg även för objekt som de gillar, korrigerar denna metod för Samarbetsfiltrering formeln för att bli av med bias. För att korrigera detta subtraherar vi varje användares genomsnittliga betyg av alla objekt när vi beräknar det vägda genomsnittet och lägger sedan till det för målanvändaren:
likhet kan beräknas på 2 sätt: Pearson korrelation och cosinus likhet.
Sammanfattningsvis är tanken att hitta användare som mest liknar vår målanvändare när det gäller preferens, väga deras betyg för ett objekt och förutsäga det som potentiell betyg för vår målanvändare för det valda objektet.
i Artikelbaserad Samarbetsfiltrering jämför vi två objekt och antar att de är lika när en användare ger de två objekten liknande betyg. Vi förutspår sedan användarens betyg för ett objekt genom att beräkna det vägda genomsnittet av betyg på de flesta X liknande objekt från den här användaren. Se bilden nedan som ett exempel.
Artikelbaserad filtrering Källmedium
modellbaserad Samarbetsfiltrering
i denna metod för samarbetsfiltreringsrekommendationssystem används olika data mining och maskininlärningsalgoritmer för att utveckla en modell för att förutsäga en användares betyg av ett oklassificerat objekt. Några exempel på dessa modeller är Bayesian nätverk, klustring modeller, singular värde nedbrytning, probabilistisk latent semantisk analys, multipel multiplikativ faktor, latent Dirichlet allokering och Markov beslutsprocess-baserade modeller.
Hybrid Samarbetsfiltrering
denna metod kombinerar minnesbaserade och modellbaserade Samarbetsfiltreringssystem för att eliminera begränsningar som sparsitet och förlust av information. Denna metod är dock mer komplex att bygga.
ladda ner detaljerad läroplan och få GRATIS tillgång till Orienteringssession
tid: 10:30 am – 11:30 AM (IST / GMT + 5:30)
Samarbetsfiltreringsexempel
för att få en god förståelse för samarbetsfiltreringsrekommendationssystem, låt oss ta ett samarbetsfiltreringsexempel i realtid och bygga en samarbetsfiltreringsalgoritm i Python. Det första steget är att definiera datauppsättningen. Om du är nybörjare i Python, kolla in den här kunskapsartikeln:
Dataset
för detta samarbetsfiltreringsexempel måste vi först samla in data som innehåller en uppsättning objekt och användare som har reagerat på dessa objekt. Denna reaktion kan vara explicit, som ett betyg eller liknande eller ogillar, eller det kan vara implicit, som att visa ett objekt, lägga till det i en önskelista eller läsa en artikel.
dessa datamängder representeras vanligtvis som en matris som består av en uppsättning användare, objekt och de reaktioner som ges av dessa användare på dessa objekt. Här är ett exempel:
en matris med fem användare och fem objekt Source-Real Python
denna matris representerar fem användare u1-u5, som har betygsatt fem objekt I1-i5, mellan Betyg 1-5 (också inga betyg). I de flesta fall har dessa matriser fler tomma celler än fulla, eftersom det är mycket osannolikt för många användare att betygsätta många av objekten i listan. Detta är känt som en gles matris.
du kan använda den här listan med högkvalitativa datakällor för dina samarbetsfiltreringsalgoritmprojekt. Ett bra ställe att börja är MovieLens 100k dataset som innehåller 100 000 betyg för 1682 filmer som ges av 943 användare, där varje användare har betygsatt minst 20 filmer.
medan datasetet har många användbara fält, är de som vi fokuserar på ett särskilt:
u.item: the list of moviesu.data: the list of ratings given by users
u. Data-filen innehåller en separat lista över betyg och användar-ID, artikel-ID, betyg och tidsstämpel. Här är ett exempel:
första 5 rader av MovieLens 100k datakälla-Real Python
hela filen innehåller data för 100.000 sådana betyg.
skapa Samarbetsfiltreringsalgoritmen
tanken bakom att utföra detta projekt är att 1. Identifiera användare med liknande inställningar och sedan 2. Förutsäg ett betyg för en film av en användare, som ännu inte har betygsatt den. Vi måste också ta hänsyn till riktigheten i våra resultat.
1 och 2 uppnås med olika uppsättningar algoritmer. En viktig punkt att komma ihåg är att vi inte är oroade över provanvändarnas ålder, demografi etc. eller filmens genre, etc. Allt vi handlar om är implicita och / eller uttryckliga betyg för dessa filmer av dessa användare.
för att mäta noggrannheten i vårt resultat kan vi använda alternativ som Root Mean Square Error eller Mean Absolute Error.
Minnesbaserad Samarbetsfiltreringsalgoritm
i den här metoden försöker vi förutsäga betyget R som en användare U eventuellt skulle ge ett objekt (filmen) I.
det första steget är att hitta användare som har liknande preferenser till användaren U, beräkna sedan betyget R.
här är ett exempel på hur vi hittar användare med liknande preferenser. Tänk på den lilla datauppsättningen:
dessa är betyg för 2 Filmer, ges av 4 användare A, B, C och D. plottar betyg, grafen ser ut så här:
Plotting the ratings Source-Real Python
avståndet mellan plotpunkter är ett sätt att få en uppfattning om likheter i intresse. Vi kan använda följande program för att beräkna avståndet:
från scipy import spatial
vi använder scipy.rumslig.avstånd.euklidisk funktion för att beräkna avståndet. Vi beräknar avståndet C från A, B och D. Vi kan se, från resultatet och även från själva bordet, att C är närmast B. Men vi skulle också vilja veta av A och D vem som är närmast C. När det gäller avstånd kan vi säga D, men när vi tittar på bordet kan vi säga att A och C är mer inriktade eftersom de båda gillar film 2 dubbelt så mycket som film 1 (med tanke på förhållanden och inte det faktiska betyget) medan användaren d gillar båda filmerna nästan lika, vilket indikerar att deras preferens kan vara annorlunda. Vad det euklidiska avståndet inte kan förutsäga kan vi eventuellt härleda från vinkeln på linjen som förbinder användarna. Genom att gå med i användarna skulle grafen se ut:
vi kan se att ju mindre vinkeln mellan två linjer, desto mer liknar deras referenser. För att hitta detta i programmet kan vi köra följande:
du kan se att cosinuslikheten mellan a och b är 0, vilket indikerar nära likhet. Att använda euklidiskt avstånd och cosinuslikhet är 2 av de olika metoderna du kan använda för att beräkna likhet i preferens.
beräkning av betyg
när vi har identifierat användare med liknande preferenser till vår användare U, går vi om att förutsäga betyg R U skulle ge för en film om de ännu inte har betygsatt. Återigen finns det många sätt att gå om detta.
ett enkelt sätt är att hitta genomsnittet av de betyg som ges för den filmen av liknande toppanvändare. Det matematiska uttrycket skulle vara:
den matematiska formeln för det genomsnittliga betyget som ges av n – användare källa-Real Python
du kan också gå för ett vägt tillvägagångssätt om i de bästa liknande användarna finns det stor skillnad i åsikt. Det skulle innebära att den närmaste liknande användaren får mer vikt och sedan fallande vikter. Uttrycket skulle vara:
begränsningar av Samarbetsfiltrering
en varelse, det tar inte hänsyn till metadata. Användare kan betygsätta en film baserat på deras preferens för skådespelaren i den, till exempel, men samarbetsfiltrering tar inte hänsyn till detta.
en annan nackdel är att samarbetsfiltrering inte är särskilt effektiv om inte många användare har betygsatt många objekt. Först då kan det göra den bästa matchen för en liknande publik och sedan förutsäga betyget.
eftersom Samarbetsfiltrering behöver enorma datamängder, för att kunna få användare med nära likheter, finns det ofta problemet med data sparsity. Som vi såg tidigare är en gles matris en med mer tomma celler än fulla, vilket nästan alltid är fallet.
skalbarhet är en annan fråga, eftersom Samarbetsfiltreringsalgoritmen vanligtvis skrivs med tanke på n-användare. När datamängden växer kan det övergripande programmet bli massivt.
tillämpningar av Collaborative Filtering Recommender Systems
Collaborative Filtering Recommender Systems Source – Real Python
Collaborative Filtering finner den högsta användningen i den sociala webben. Du kommer att se samarbetsfiltrering i aktion på applikationer som YouTube, Netflix och Reddit, bland många andra. Dessa applikationer använder Samarbetsfiltrering för att rekommendera videor/inlägg som användaren sannolikt kommer att gilla baserat på deras prediktiva algoritm.
Samarbetsfiltrering är en populär metod för rekommendationsprogram, trots begränsningarna. Det används också i e-handelsplattformar för att rekommendera produkter, baserat på inköp av användare med liknande preferenser eller smaker.
som programmerare måste du blanda algoritmer för att göra Samarbetsfiltrering mer exakt och även blanda metoder eller förutsägelse för att få de mest exakta resultaten. Recommender Systems-kapitlet i Mining Massive Dataset book är också en bra källa till information om Samarbetsfiltrering.
ladda ner detaljerad läroplan och få GRATIS tillgång till Orienteringssession
tid: 10:30 am – 11:30 AM (IST / GMT + 5:30)
vi har också en komplett Guide om hur man blir datavetenskapare, vilket är något som de flesta maskininlärningsentusiaster strävar efter att bli.
för att få rätt data science skillset bör du anmäla dig till en Data Science-kurs. Detta hjälper dig att höja din karriär som datavetare.