dessa dagar oavsett om du tittar på en video på YouTube, en film på Netflix eller en produkt på Amazon, kommer du att få rekommendationer för fler saker att se, gilla eller köpa. Du kan tacka tillkomsten av maskininlärningsalgoritmer och rekommendationssystem för denna utveckling.
rekommendationssystem är långtgående, så vi kommer att nollställa ett viktigt tillvägagångssätt som kallas samarbetsfiltrering, som filtrerar information genom att använda interaktioner och data som samlas in av systemet från andra användare. Det bygger på tanken att personer som kom överens i sin utvärdering av vissa saker sannolikt kommer att komma överens igen i framtiden.
en snabb Primer på rekommendationssystem
ett rekommendationssystem är en underklass av informationsfiltrering som syftar till att förutsäga ”betyg” eller ”preferens” som en användare kommer att ge ett objekt, till exempel en produkt, film, sång etc.
rekommendationssystem ger personlig information genom att lära sig användarens intressen genom spår av interaktion med den användaren. Precis som maskininlärningsalgoritmer gör ett rekommendationssystem en förutsägelse baserad på användarens tidigare beteenden. Specifikt är det utformat för att förutsäga användarpreferenser för en uppsättning objekt baserat på erfarenhet.
matematiskt är en rekommendationsuppgift inställd att vara:
- uppsättning användare (U)
- uppsättning objekt (I) som ska rekommenderas till U
- lär dig en funktion baserad på användarens tidigare interaktionsdata som förutsäger sannolikheten för artikel i till U
rekommendationssystem klassificeras i stort sett i två typer baserat på de data som används för att dra slutsatser:
- innehållsbaserad filtrering, som använder Objektattribut.
- Samarbetsfiltrering, som använder användarbeteende (interaktioner) utöver Objektattribut.
några viktiga exempel på rekommendationssystem på jobbet inkluderar:
- produktrekommendationer på Amazon och andra shoppingwebbplatser
- film-och TV-showrekommendationer på Netflix
- Artikelrekommendationer på nyhetssidor
Vad är Samarbetsfiltrering?
Samarbetsfiltrering filtrerar information genom att använda interaktioner och data som samlas in av systemet från andra användare. Det bygger på tanken att personer som kom överens i sin utvärdering av vissa saker sannolikt kommer att komma överens igen i framtiden.
konceptet är enkelt: när vi vill hitta en ny film att titta på ber vi ofta våra vänner om rekommendationer. Naturligtvis har vi större förtroende för rekommendationerna från vänner som delar smaker som liknar våra egna.
de flesta samarbetsfiltreringssystem tillämpar den så kallade likhetsindexbaserade tekniken. I det grannskapsbaserade tillvägagångssättet väljs ett antal användare utifrån deras likhet med den aktiva användaren. Slutsats för den aktiva användaren görs genom att beräkna ett vägt genomsnitt av de valda användarnas betyg.
Samarbetsfiltreringssystem fokuserar på förhållandet mellan användare och objekt. Likheten mellan objekt bestäms av likheten mellan betyg av dessa objekt av användarna som har betygsatt båda objekten.
det finns två klasser av Samarbetsfiltrering:
- användarbaserad, som mäter likheten mellan målanvändare och andra användare.
- Artikelbaserad, som mäter likheten mellan de objekt som riktar sig till användare Betygsätta eller interagera med och andra objekt.
Samarbetsfiltrering med Python
samarbetsmetoder utarbetas vanligtvis med hjälp av en verktygsmatris. Rekommendationsmodellens uppgift är att lära sig en funktion som förutsäger nyttan av passform eller likhet med varje användare. Verktygsmatrisen är vanligtvis mycket gles, enorm och har tagit bort värden.
i följande matriser representerar varje rad en användare, medan kolumnerna motsvarar olika filmer av Pixar. Cosinuslikheten är den enklaste algoritmen som behövs för att hitta likheten hos vektorerna. Den sista, som är verktygsmatrisen efter den första matrisen, innehåller endast partiella data, vilket behövs för att förutsäga sannolikheten för det förväntade betyget av ”root” som kan ges av användaren.
i följande matriser representerar varje rad en användare, medan kolumnerna motsvarar olika filmer, förutom den sista som registrerar likheten mellan den användaren och målanvändaren. Varje cell representerar det Betyg som användaren ger till den filmen.
cosine_similarity (p, q) = p.q
|p|.|q|
cosine_similarity(joe, beck) =
När en ny användare ansluter sig till plattformen tillämpar vi den enklaste algoritmen som beräknar cosinus eller korrelationslikhet mellan rader (användare) eller kolumner (filmer) och rekommenderar objekt som är k-närmaste grannar.
det här är många ekvationer som kan hantera frågan om likhetsåtgärder, några inkluderar:
- Pearson likhet
- Jaccard likhet
- Spearman rank korrelation
- genomsnittliga kvadrerade skillnader
- närhet-påverkan-Popularitet likhet
Relatedläs mer om datavetenskap