Alt hvad du behøver at vide om Samarbejdsfiltrering
- tag en Demo klasse
- typer af Samarbejdsfiltrering
- hukommelsesbaseret eller nærmeste Kvarteralgoritme
- modelbaseret Samarbejdsfiltrering
- Hybrid Samarbejdsfiltrering
- eksempel på Samarbejdsfiltrering
- datasæt
- oprettelse af Samarbejdsfiltreringsalgoritmen
- hukommelsesbaseret Samarbejdsfiltreringsalgoritme
- beregning af Rating
- begrænsninger af Samarbejdsfiltrering
- anvendelser af Samarbejdsfiltreringsanbefalings systemer
tag en Demo klasse
(giv dine kontaktoplysninger, Hent link vil blive sendt til dig i få sekunder)
før vi går ind i kernekoncepter som kollaborative filtreringsanbefalings systemer og kollaborative filtreringsalgoritmer, lad os forstå anbefalingssystemer.
et anbefalingssystem sigter mod at forudsige en brugers præference for at ‘anbefale’ en vare, der kan være et produkt som tøj eller kunne være film, tjenester osv., anbefalingssystemer er blevet meget vigtige i dag på grund af overskuddet af muligheder inden for hvert domæne, og de hjælper virksomheder med bedre at placere deres produkter eller tjenester for øget bevægelse.
der er to måder at opbygge et anbefalingssystem på; den ene er indholdsbaseret, og den anden er Samarbejdsfiltrering. Vi vil se på Samarbejdsfiltrering i dybden i denne artikel sammen med Samarbejdsfiltreringseksempler.
35% af Amazon.com ‘ s indtægter genereres af sin anbefaling motor.
der er to måder, eller sanser, hvor samarbejdsfiltrering kører anbefalingssystemer, og det er en smal og en mere generel.
i den snævrere forstand fungerer samarbejdsfiltrering ved at forudsige en brugers præference ved at indsamle og studere præferencerne for mange andre lignende brugere.
Hent detaljeret læseplan og få gratis adgang til orienteringssession
tid: 10:30 am – 11: 30 AM (IST/GMT +5:30)
for eksempel, hvis bruger A og bruger B begge foretrækker den samme vaskemaskine, kan de andre præferencer for Bruger B være noget, bruger A vil være interesseret i, da deres smag og behov er ens. Dette gøres naturligvis ved at tage hensyn til mange forskellige brugere og adskillige præferencer og reaktioner, deraf udtrykket, samarbejdsfiltrering.
Samarbejdsfiltreringskilde – anbefalingssystem
i en mere generel forstand er samarbejdsfiltrering processen med at forudsige en brugers præference ved at studere deres aktivitet for at udlede mønstre.
for eksempel ved at studere likes, antipatier, springer over og visninger, kan et anbefalingssystem forudsige, hvad en bruger kan lide, og hvad de ikke kan lide.
forskellen mellem samarbejdsfiltrering og indholdsbaseret filtrering er, at førstnævnte ikke har brug for elementoplysninger, men i stedet fungerer på brugerpræferencer.
typer af Samarbejdsfiltrering
hukommelsesbaseret eller nærmeste Kvarteralgoritme
Recommender system Source-against Data Science
denne metode bruger et klassificeringssystem til at forudsige en brugers præferencer ved at tage hensyn til præferencerne for en lignende bruger eller ‘naboen’. Der er to måder at beregne præferencer på her, brugerbaseret Samarbejdsfiltrering og varebaseret Samarbejdsfiltrering.
lad os først overveje brugerbaseret Samarbejdsfiltrering. Lad os sige, at vi har en matrice af ratings n H m, for bruger U LR, i = 1,…n og vare p LR, j=1,…m. lad os sige, at vi er nødt til at forudsige vurderingen af vare r LR, en vare j den bruger, jeg ikke har set/bedømt. Hvordan denne metode fungerer, er at beregne bruger i ‘S præferencer og matche dem med andre brugere, vælge de øverste lignende brugere, tage deres vurderinger for varen r l, og find det vægtede gennemsnit for at forudsige bruger I’ S mulige vurdering/præference for varen.
under hensyntagen til det faktum, at nogle brugere har en tendens til at være for lempelige, hvilket giver høje ratings for varer, de ikke rigtig nyder, mens nogle brugere har en tendens til at være for strenge, hvilket giver lave ratings, selv for varer, de kan lide, korrigerer denne metode til Samarbejdsfiltrering formlen for at slippe af med bias. For at rette op på dette trækker vi hver brugers gennemsnitlige vurdering af alle elementer, når vi beregner det vægtede gennemsnit og derefter tilføjer det tilbage til målbrugeren:
lighed kan beregnes på 2 måder: Pearson korrelation og cosinus lighed.
opsummering af denne metode er ideen at finde brugere, der ligner vores målbruger mest med hensyn til præference, veje deres ratings for en vare og forudsige det som den potentielle vurdering for vores målbruger for det valgte emne.
i Elementbaseret Samarbejdsfiltrering sammenligner vi to elementer og antager, at de er ens, når en bruger giver de to elementer lignende vurderinger. Vi forudsiger derefter brugerens vurdering for en vare ved at beregne det vægtede gennemsnit af ratings på de fleste lignende varer fra denne bruger. Se billedet nedenfor som et eksempel.
Elementbaseret Filtreringskilde-Medium
modelbaseret Samarbejdsfiltrering
i denne metode til samarbejdsfiltreringsanbefalings – systemer bruges forskellige data mining-og maskinlæringsalgoritmer til at udvikle en model til at forudsige en brugers vurdering af et ikke-klassificeret element. Nogle eksempler på disse modeller er bayesiske netværk, klyngemodeller, nedbrydning af entalværdi, probabilistisk latent semantisk analyse, multiple multiplikativ faktor, latent dirichletallokering og Markov beslutningsproces-baserede modeller.
Hybrid Samarbejdsfiltrering
denne metode kombinerer de hukommelsesbaserede og modelbaserede Samarbejdsfiltreringssystemer for at eliminere begrænsninger som sparsity og tab af information. Denne metode er imidlertid mere kompleks at bygge.
Hent detaljeret læseplan og få gratis adgang til orienteringssession
tid: 10:30 am – 11: 30 AM (IST/GMT +5:30)
eksempel på Samarbejdsfiltrering
for at få en god forståelse af samarbejdsfiltreringsanbefalings-systemer, lad os tage et eksempel på samarbejdsfiltrering i realtid og opbygge en samarbejdsfiltreringsalgoritme i Python. Det første skridt er at definere datasættet. Hvis du er nybegynder i Python, skal du tjekke denne videnartikel:
datasæt
i dette samarbejdsfiltreringseksempel skal vi først samle data, der indeholder et sæt elementer og brugere, der har reageret på disse elementer. Denne reaktion kan være eksplicit, som en vurdering eller en lignende eller ikke lide, eller det kan være implicit, som at se et emne, tilføje det til en ønskeliste eller læse en artikel.
disse datasæt er normalt repræsenteret som en matrice, der består af et sæt brugere, elementer og reaktionerne fra disse brugere på disse elementer. Her er et eksempel:
en matrice med fem brugere og fem elementer Source – Real Python
denne matrice repræsenterer fem brugere u1-u5, der har bedømt fem elementer i1-i5, mellem ratings 1-5 (også ingen vurderinger). I de fleste tilfælde har disse matricer flere tomme celler end fulde, fordi det er meget usandsynligt for mange brugere at bedømme mange af elementerne på listen. Dette er kendt som en sparsom matrice.
du kan bruge denne liste over datakilder af høj kvalitet til dine samarbejdsfiltreringsalgoritmeprojekter. Et godt sted at starte er MovieLens 100k datasæt, der indeholder 100.000 ratings for 1682 film givet af 943 brugere, hvor hver bruger har bedømt mindst 20 film.
mens datasættet har mange nyttige felter, er de, vi fokuserer på, især:
u.item: the list of moviesu.data: the list of ratings given by users
u. datafil indeholder en separat liste over vurderinger og bruger-ID, Element-ID, rating og tidsstempel. Her er et eksempel:
første 5 rækker af MovieLens 100k datakilde-Real Python
hele filen indeholder data for 100.000 sådanne vurderinger.
oprettelse af Samarbejdsfiltreringsalgoritmen
ideen bag udførelsen af dette projekt er at 1. Identificer brugere med lignende præferencer og derefter 2. Forudsig en vurdering af en film af en bruger, der endnu ikke har bedømt den. Vi skal også tage hensyn til nøjagtigheden af vores resultater.
1 og 2 opnås ved hjælp af forskellige sæt algoritmer. Et vigtigt punkt at huske er, at vi ikke er bekymrede over prøvebrugernes alder, demografi osv. eller filmens genre osv. Alt, hvad vi er bekymret for, er implicitte og/eller eksplicitte vurderinger for disse film af disse brugere.
for at måle nøjagtigheden af vores resultat kan vi bruge indstillinger som Root Mean Kvadratfejl eller Mean Absolute Error.
hukommelsesbaseret Samarbejdsfiltreringsalgoritme
i denne metode forsøger vi at forudsige den vurdering R, som en bruger U muligvis ville give et element (filmen) I.
det første trin er at finde brugere, der har lignende præferencer som bruger U, og derefter beregne vurderingen R.
her er et eksempel på, hvordan vi finder brugere med lignende præferencer. Overvej det lille datasæt:
disse er vurderinger for 2 film, givet af 4 brugere A, B, C og D. plotning af ratings, grafen ser sådan ud:
Plotting the ratings Source-Real Python
afstanden mellem plotpunkter er en måde at få en ide om ligheder i interesse. Vi kan bruge følgende program til at beregne afstanden:
fra scipy import spatial
vi bruger scipy.rumlig.afstand.euklidisk funktion til beregning af afstanden. Vi beregner afstanden mellem C og A, B og D. Vi kan se, fra resultatet og også fra selve tabellen, at C er tættest på B. Men vi vil også gerne vide ud af A og D, hvem der er tættest på C. Med hensyn til afstand kan vi sige D, men når vi ser på bordet, kan vi sige, at A og C er mere justeret, fordi de begge kan lide film 2 dobbelt så meget som film 1 (i betragtning af forhold og ikke den faktiske vurdering), mens bruger D kan lide begge film næsten ens, hvilket indikerer, at deres præference kan være anderledes. Hvad den euklidiske afstand ikke kan forudsige, kan vi muligvis udlede fra vinklen på linjen, der forbinder brugerne. Sammenføjning af brugerne vil grafen se ud:
vi kan se, at jo mindre vinklen mellem to linjer er, jo mere ligner deres referencer. For at finde dette i programmet kan vi køre følgende:
du kan se, at cosinus ligheden mellem a og b er 0, hvilket indikerer tæt lighed. Brug af euklidisk afstand og cosinus lighed er 2 af de forskellige metoder, du kan bruge til at beregne lighed i præference.
beregning af Rating
når vi har identificeret brugere med lignende præferencer til vores bruger U, går vi om at forudsige rating R U ville give for en film, hvis de endnu ikke har bedømt. Igen er der mange måder at gøre dette på.
en enkel måde er at finde gennemsnittet af de ratings, der er givet for den film af de lignende topbrugere. Det matematiske udtryk ville være:
den matematiske formel for den gennemsnitlige bedømmelse givet af N brugere kilde – Real Python
du kan også gå til en vægtet tilgang, hvis i de øverste lignende brugere er der meget forskel i mening. Det ville betyde at give den nærmeste lignende bruger mere vægt og derefter faldende vægte. Udtrykket ville være:
begrænsninger af Samarbejdsfiltrering
et væsen, det tager ikke hensyn til metadata. Brugere vurderer muligvis en film baseret på deres præference for skuespilleren i den, for eksempel, men samarbejdsfiltrering tager ikke højde for dette.
en anden ulempe er, at samarbejdsfiltrering ikke er særlig effektiv, medmindre mange brugere har bedømt mange varer. Først da kan det gøre det bedste match for et lignende publikum og derefter forudsige vurderingen.
da Samarbejdsfiltrering har brug for enorme datasæt, for at kunne få brugere med tætte ligheder, er der ofte problemet med data sparsity. Som vi så tidligere, er en sparsom matrice en med flere tomme celler end fulde, hvilket næsten altid er tilfældet.
skalerbarhed er et andet problem, da den Samarbejdsfiltreringsalgoritme normalt skrives i betragtning af N-brugere. Efterhånden som datasættet vokser, kan det samlede program blive massivt.
anvendelser af Samarbejdsfiltreringsanbefalings systemer
Samarbejdsfiltreringsanbefalings systemer kilde – ægte Python
Samarbejdsfiltrering finder den højeste anvendelse på det sociale internet. Du vil se samarbejdsfiltrering i aktion på applikationer som YouTube, Reddit og Reddit, blandt mange andre. Disse applikationer bruger Samarbejdsfiltrering til at anbefale videoer/indlæg, som brugeren mest sandsynligt kan lide baseret på deres forudsigelige algoritme.
Samarbejdsfiltrering er en populær metode til anbefalingsprogrammer på trods af begrænsningerne. Det bruges også i e-handelsplatforme til at anbefale produkter baseret på køb fra brugere med lignende præferencer eller smag.
som programmør skal du blande algoritmer for at gøre Samarbejdsfiltrering mere præcis og også blande metoder eller forudsigelse for at få de mest nøjagtige resultater. Kapitlet Recommender Systems i Mining Massive Dataset book er også en stor kilde til information om Samarbejdsfiltrering.
Hent detaljeret læseplan og få gratis adgang til orienteringssession
tid: 10:30 am – 11: 30 AM (IST/GMT +5:30)
vi har også en komplet Guide til, hvordan man bliver dataforsker, hvilket er noget, de fleste maskinlæringsentusiaster stræber efter at blive.
for at få den rigtige data science skillset, skal du tilmelde dig et Data Science kursus. Dette vil hjælpe dig med at hæve din karriere som dataforsker.