Alles wat u moet weten over Collaborative Filtering

voordat we in kernconcepten zoals collaborative filtering recommender systemen en collaborative filtering algoritmen, laten we begrijpen recommender systemen.

een aanbevelingssysteem is bedoeld om de voorkeur van een gebruiker te voorspellen, teneinde een item te “aanbevelen”, dat een product kan zijn zoals kleding, of films, diensten, enz. recommender systemen zijn vandaag de dag erg belangrijk geworden vanwege het overschot aan opties op elk gebied, en ze helpen bedrijven hun producten of diensten beter te plaatsen voor meer beweging.

er zijn twee manieren om een recommender-systeem op te bouwen: één is gebaseerd op inhoud en de andere is Collaborative Filtering. We zullen kijken naar Collaborative Filtering in de diepte in dit artikel, samen met Collaborative Filtering voorbeelden.

35% van Amazon.com ‘ s inkomsten worden gegenereerd door de aanbeveling motor.

er zijn twee manieren, of zintuigen, waarop collaborative filtering recommender systemen draait, en dat is een smalle en een meer algemene.

in engere zin werkt collaboratieve filtering door de voorkeur van een gebruiker te voorspellen, door de voorkeuren van veel andere vergelijkbare gebruikers te verzamelen en te bestuderen.

Download gedetailleerd Curriculum en krijg gratis toegang tot Oriëntatiesessie

Datum: 13 Feb, 2021 (zaterdag)
tijd: 10: 30 – 11: 30 (IST / GMT +5):30)
(verstrek uw contactgegevens, zal de downloadverbinding naar u in paar seconden worden gemaild)

bijvoorbeeld, als gebruiker A en gebruiker B beiden de voorkeur geven aan dezelfde wasmachine, kunnen de andere voorkeuren van gebruiker B iets zijn waar gebruiker A in geïnteresseerd zal zijn omdat hun smaak en behoeften vergelijkbaar zijn. Dit wordt natuurlijk gedaan door rekening te houden met veel verschillende gebruikers en tal van voorkeuren en reacties, vandaar de term collaborative filtering.

Collaborative Filtering Source-Recommender System

in een meer algemene zin is collaborative filtering het proces van het voorspellen van de voorkeur van een gebruiker door het bestuderen van hun activiteit om patronen af te leiden.

bijvoorbeeld, door het bestuderen van de likes, dislikes, skips en views, kan een recommender systeem voorspellen wat een gebruiker leuk vindt en wat hij niet leuk vindt.

het verschil tussen collaborative filtering en content-based filtering is dat de eerste geen item informatie nodig heeft, maar in plaats daarvan werkt op gebruikersvoorkeuren.

soorten collaboratieve Filtering

Geheugengebaseerd Of dichtstbijzijnde Buurtalgoritme

Recommender System Source-Towards Data Science

deze methode maakt gebruik van een beoordelingssysteem om de voorkeuren van een gebruiker te voorspellen door rekening te houden met de voorkeuren van een soortgelijke gebruiker of de ‘buurman’. Er zijn twee manieren om voorkeuren hier te berekenen, op gebruiker gebaseerde Collaborative Filtering en op item gebaseerde Collaborative Filtering.

laten we eerst eens kijken naar op gebruikers gebaseerde collaboratieve Filtering. Laten we zeggen dat we een matrix hebben van ratings n x m, voor gebruiker uᵢ, i = 1,…n en item pⱼ, j=1,…m. Laten we zeggen dat we de rating van item rᵢⱼ moeten voorspellen, een item J die gebruiker ik niet heb bekeken/beoordeeld. Hoe deze methode werkt, is het berekenen van gebruiker I voorkeuren en overeenkomen met andere gebruikers, selecteer de top x vergelijkbare gebruikers, nemen hun ratings voor het item rᵢⱼ, en vind het gewogen gemiddelde Om gebruiker I ‘ S mogelijke rating/voorkeur van het item te voorspellen.

rekening houdend met het feit dat sommige gebruikers de neiging om te mild, het geven van hoge beoordelingen voor items die ze niet echt genieten, terwijl sommige gebruikers de neiging om te streng, het geven van lage beoordelingen, zelfs voor items die ze leuk vinden, deze methode van Collaborative Filtering corrigeert de formule om zich te ontdoen van de bias. Om dit te corrigeren, trekken we de gemiddelde waardering van elke gebruiker van alle items af bij het berekenen van het gewogen gemiddelde en voegen het dan terug voor de doelgebruiker:

gelijkenis kan op 2 manieren worden berekend: Pearson correlatie en cosinus gelijkenis.

om deze methode samen te vatten, is het idee om gebruikers te vinden die het meest lijken op onze doelgebruiker in termen van voorkeur, hun beoordelingen af te wegen voor een item, en te voorspellen dat als de potentiële rating voor onze doelgebruiker, voor het geselecteerde item.

in Item-Based Collaborative Filtering vergelijken we twee items en gaan we ervan uit dat ze vergelijkbaar zijn wanneer een gebruiker de twee items vergelijkbare ratings geeft. Vervolgens voorspellen we dat de beoordeling van de gebruiker voor een item door het berekenen van het gewogen gemiddelde van de ratings op de meeste x soortgelijke items van deze gebruiker. Zie onderstaande afbeelding als voorbeeld.

Item-Based Filtering bron-Medium

Model-Based Collaborative Filtering

in deze methode van Collaborative filtering aanbevelingssystemen worden verschillende data mining en machine learning algoritmen gebruikt om een model te ontwikkelen om de beoordeling van een gebruiker van een item zonder beoordeling te voorspellen. Enkele voorbeelden van deze modellen zijn Bayesiaanse netwerken, clustering modellen, enkelvoudige waarde decompositie, probabilistische latente semantische analyse, multiple multiplicative factor, latente Dirichlet allocatie en Markov decision process-based modellen.

hybride collaboratieve Filtering

deze methode combineert op geheugen gebaseerde en modelgebaseerde collaboratieve filtersystemen om beperkingen zoals schaarsheid en verlies van informatie te elimineren. Deze methode is echter complexer om te bouwen.

Download gedetailleerd Curriculum en krijg gratis toegang tot Oriëntatiesessie

Datum: 13 Feb, 2021 (zaterdag)
tijd: 10: 30 – 11: 30 (IST / GMT +5):30)
(verstrek uw contactgegevens, zal de downloadverbinding naar u in paar seconden worden gemaild)

Collaborative Filtering voorbeeld

om een goed begrip te krijgen van Collaborative filtering recommender systemen, nemen we een real-time collaborative filtering voorbeeld en bouwen we een collaborative filtering algoritme in Python. De eerste stap is het definiëren van de dataset. Als je een beginner bent in Python, bekijk dan dit kennisartikel:

Dataset

voor dit voorbeeld van collaboratieve filtering moeten we eerst gegevens verzamelen die een set items en gebruikers bevatten die op deze items hebben gereageerd. Deze reactie kan expliciet zijn, zoals een rating of een like of dislike, of het kan impliciet zijn, zoals het bekijken van een item, het toevoegen aan een verlanglijstje, of het lezen van een artikel.

deze gegevensverzamelingen worden gewoonlijk weergegeven als een matrix die bestaat uit een verzameling gebruikers, items en de reacties die deze gebruikers op deze items geven. Hier is een voorbeeld:

een matrix met vijf gebruikers en vijf items bron – echte Python

deze matrix vertegenwoordigt vijf gebruikers u1-u5, die vijf items i1-i5 hebben beoordeeld, tussen ratings 1-5 (ook geen ratings). In de meeste gevallen hebben deze matrices meer lege cellen dan volledige, omdat het voor veel gebruikers zeer onwaarschijnlijk is om veel van de items in de lijst te beoordelen. Dit staat bekend als een schaarse matrix.

u kunt deze lijst met hoogwaardige gegevensbronnen gebruiken voor uw collaboratieve filteralgoritmeprojecten. Een goede plek om te beginnen is MovieLens 100k dataset die 100,000 ratings voor 1682 films gegeven door 943 gebruikers bevat, waarbij elke gebruiker ten minste 20 films heeft beoordeeld.

hoewel de dataset veel nuttige velden heeft, zijn de velden die we in het bijzonder focussen:

u.item: the list of moviesu.data: the list of ratings given by users

het u. data bestand bevat een aparte lijst met beoordelingen en gebruikers-ID, item-ID, waardering en tijdstempel. Hier is een voorbeeld:

eerste 5 rijen MovieLens 100k gegevensbron-echte Python

het volledige bestand bevat gegevens voor 100.000 dergelijke ratings.

het creëren van het Collaborative Filtering algoritme

het idee achter het uitvoeren van dit project is om 1. Identificeer gebruikers met soortgelijke voorkeuren en vervolgens 2. Voorspel een waardering voor een film door een gebruiker, die deze nog niet heeft beoordeeld. We zullen ook rekening moeten houden met de nauwkeurigheid van onze resultaten.

1 en 2 worden bereikt met behulp van verschillende reeksen algoritmen. Een belangrijk punt om te onthouden is dat we niet bezorgd zijn over de leeftijd van de steekproef gebruikers, Demografie, enz. of het genre van de films, enz. Het enige waar we ons mee bezig houden zijn impliciete en/of expliciete ratings voor deze films door deze gebruikers.

om de nauwkeurigheid van ons resultaat te meten, kunnen we opties gebruiken zoals Root Mean Square Error, of Mean Absolute Error.

Geheugengebaseerd collaboratief Filteralgoritme

in deze methode proberen we de rating R te voorspellen die een gebruiker U mogelijk een item zou geven (de film) I.

de eerste stap is het vinden van gebruikers die soortgelijke voorkeuren hebben als gebruiker U, bereken dan de rating R.

hier is een voorbeeld van hoe we gebruikers met soortgelijke voorkeuren vinden. Beschouw de kleine dataset:

dit zijn waarderingen voor 2 films, gegeven door 4 gebruikers A, B, C en D.:

het plotten van de ratings Source-Real Python

de afstand tussen plotpunten is een manier om een idee te krijgen over overeenkomsten in belang. We kunnen het volgende programma gebruiken om de afstand te berekenen:

van scipy import spatial

we gebruiken de scipy.ruimtelijk.afstand.Euclidische functie om de afstand te berekenen. We berekenen de afstand van C vanaf A, B en D. We kunnen zien, aan het resultaat en ook aan de tabel zelf, dat C het dichtst bij B. staat, maar we willen ook uit A en D weten wie het dichtst bij C. In termen van afstand kunnen we zeggen D, maar kijkend naar de tabel kunnen we zeggen dat A en C meer uitgelijnd zijn omdat ze allebei van film 2 twee keer zoveel houden als film 1 (rekening houdend met ratio ‘ s en niet de werkelijke waardering) terwijl gebruiker D beide films bijna even leuk vindt, wat aangeeft dat hun voorkeur anders kan zijn. Wat de Euclidische afstand niet kan voorspellen, kunnen we mogelijk afleiden uit de hoek van de lijn die de gebruikers verbindt. Bij het samenvoegen van de gebruikers zou de grafiek eruit zien als:

we kunnen zien dat hoe kleiner de hoek tussen twee lijnen, hoe meer gelijk hun referenties. Om dit in het programma te vinden, kunnen we het volgende uitvoeren:

u kunt zien dat de cosinus gelijkenis tussen A en b 0 is, wat wijst op nauwe gelijkenis. Het gebruik van Euclidische afstand en cosinus gelijkenis is 2 van de verschillende methoden die u kunt gebruiken om gelijkenis in voorkeur te berekenen.

het berekenen van de Rating

zodra we gebruikers hebben geïdentificeerd met soortgelijke voorkeuren als onze gebruiker U, gaan we over het voorspellen van de rating R U zou geven voor een film als ze nog niet hebben beoordeeld. Nogmaals, er zijn vele manieren om dit te doen.

een eenvoudige manier is het vinden van het gemiddelde van de ratings gegeven voor die film door de vergelijkbare top gebruikers. De wiskundige uitdrukking zou zijn:

de wiskundige formule voor de gemiddelde waardering gegeven door N gebruikers Source – Real Python

u kunt ook kiezen voor een gewogen benadering als de in de top vergelijkbare gebruikers er veel verschil in mening. Dat zou betekenen het geven van de dichtstbijzijnde vergelijkbare gebruiker meer gewicht en dan dalende gewichten. De uitdrukking zou zijn:

beperkingen van collaboratieve Filtering

Eén ervan is dat er geen rekening wordt gehouden met metagegevens. Gebruikers kunnen een film beoordelen op basis van hun voorkeur voor de acteur in het, bijvoorbeeld, maar collaborative filtering zal hier geen rekening mee houden.

een ander nadeel is dat collaboratieve filtering niet erg effectief is, tenzij veel gebruikers veel items hebben beoordeeld. Alleen dan kan het de beste match te maken voor een vergelijkbaar publiek en dan voorspellen de rating.

omdat collaboratieve Filtering enorme datasets nodig heeft om gebruikers met nauwe overeenkomsten te kunnen krijgen, is er vaak het probleem van dataschaarste. Zoals we eerder zagen, is een schaarse matrix er een met meer lege cellen dan volle, wat bijna altijd het geval is.

schaalbaarheid is een ander probleem, omdat het collaboratieve Filteralgoritme meestal geschreven wordt rekening houdend met n-gebruikers. Naarmate de dataset groeit, kan het totale programma enorm worden.

toepassingen van Collaborative Filtering Recommender Systems

Collaborative Filtering Recommender Systems Source-Real Python

Collaborative Filtering vindt het hoogste gebruik in het sociale web. U ziet collaborative filtering in actie op toepassingen zoals YouTube, Netflix, en Reddit, onder vele anderen. Deze toepassingen maken gebruik van Collaborative Filtering aan te bevelen video’s / berichten die de gebruiker is het meest waarschijnlijk leuk op basis van hun voorspellende algoritme.

Collaborative Filtering is een populaire methode voor recommender programma ‘ s, ondanks de beperkingen. Het wordt ook gebruikt in e-commerce platforms om producten aan te bevelen, op basis van aankopen door gebruikers van soortgelijke voorkeuren of smaken.

als programmeur moet u algoritmen mengen om collaboratieve Filtering nauwkeuriger te maken, en ook methoden of voorspelling mengen om de meest nauwkeurige resultaten te krijgen. De Recommender Systems hoofdstuk in de mijnbouw Massive dataset boek is ook een grote bron van informatie over Collaborative Filtering.

Download gedetailleerd Curriculum en krijg gratis toegang tot Oriëntatiesessie

Datum: 13 Feb, 2021 (zaterdag)
tijd: 10: 30 – 11: 30 (IST / GMT +5):30)
(verstrek uw contactgegevens, zal de downloadverbinding naar u in paar seconden worden gemaild)

we hebben ook een complete gids over hoe je een Data Scientist, dat is iets wat de meeste machine learning liefhebbers willen worden.

om de juiste data science skillset te krijgen, moet je jezelf inschrijven voor een Data Science cursus. Dit zal u helpen om uw carrière als Data Scientist te verbeteren.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.