Kaikki mitä sinun tarvitsee tietää Yhteistyösuodatuksesta

ennen kuin pääsemme ydinkäsitteisiin, kuten collaborative filtering recommender systems ja collaborative filtering algorithms, ymmärrämme suosittelijajärjestelmiä.

suosittelujärjestelmä pyrkii ennustamaan käyttäjän mieltymyksen, jotta hän voisi “suositella” jotakin tuotetta, joka voisi olla esimerkiksi vaatteita tai elokuvia, palveluita jne., suosittelujärjestelmät ovat tulleet erittäin tärkeiksi tänään, koska ylijäämä vaihtoehtoja kaikilla aloilla, ja ne auttavat yrityksiä paremmin sijoittaa tuotteitaan tai palvelujaan lisääntynyt liikkuvuus.

on olemassa kaksi tapaa rakentaa suosittelujärjestelmä; toinen on Sisältöpohjainen ja toinen on yhteistoiminnallinen suodatus. Tarkastelemme Collaborative suodatus syvällisesti tässä artikkelissa, yhdessä Collaborative suodatus esimerkkejä.

35% ja Amazon.com ‘ s revenue is generated by its recommendation engine.

on olemassa kaksi tapaa eli aistia, joissa yhteistoiminnallinen suodatus pyörittää suosittelijajärjestelmiä, ja se on kapea ja yleisempi.

suppeammassa merkityksessä yhteistoiminnallinen suodatus toimii ennustamalla yhden käyttäjän mieltymyksiä, keräämällä ja tutkimalla monien muiden samankaltaisten käyttäjien mieltymyksiä.

Lataa yksityiskohtainen opetussuunnitelma ja saat ilmaisen pääsyn Perehdytysistuntoon

Date: 13th Feb, 2021 (lauantai)
Time: 10:30 AM – 11:30 AM (IST / GMT +5:30)
(Anna yhteystietosi, latauslinkki lähetetään sinulle muutamassa sekunnissa)

esimerkiksi, jos käyttäjä A ja käyttäjä B molemmat haluavat samaa pesukonetta, käyttäjä B: n muut mieltymykset saattavat olla jotain, josta käyttäjä A on kiinnostunut, koska heidän makunsa ja tarpeensa ovat samanlaiset. Tämä tapahtuu tietenkin ottamalla huomioon monia eri käyttäjiä ja lukuisia mieltymyksiä ja reaktioita, siis termi, yhteistoiminnallinen suodatus.

Collaborative Filtering Source-Recommendender System

yleisemmässä merkityksessä kollaboratiivinen suodatus on prosessi, jossa käyttäjän mieltymys ennustetaan tutkimalla hänen aktiivisuuttaan kaavojen johtamiseksi.

esimerkiksi tutkimalla tykkäyksiä, inhokkeja, ohituksia ja näkymiä suosittelijajärjestelmä voi ennustaa, mistä käyttäjä pitää ja mistä hän ei pidä.

yhteistyösuodatuksen ja sisältöpohjaisen suodatuksen ero on siinä, että edellinen ei tarvitse kohdetietoja, vaan toimii käyttäjän mieltymysten mukaan.

Kollaboratiivisen suodatuksen tyypit

Muistipohjaisen tai lähimmän naapuruston algoritmi

Suosittelijajärjestelmän lähde – kohti Datatieteitä

tässä menetelmässä käytetään luokitusjärjestelmää ennustamaan yhden käyttäjän mieltymyksiä ottamalla huomioon samankaltaisen käyttäjän eli “naapurin” mieltymykset. On olemassa kaksi tapaa laskea asetukset Tässä, käyttäjä-pohjainen Collaborative suodatus ja kohde-pohjainen Collaborative suodatus.

Tarkastellaanpa ensin käyttäjäpohjaista Yhteissuodatusta. Oletetaan, että meillä on matriisi luokitukset n x M, käyttäjä uᵢ, I = 1,…n ja kohta pⱼ, j=1,…m. sanotaan, että meidän täytyy ennustaa luokitus kohde rᵢⱼ, kohta J että käyttäjä en ole katsellut/rated. Miten tämä menetelmä toimii, on laskea käyttäjä I: n mieltymykset ja sovittaa ne muiden käyttäjien kanssa, valitse top X samanlaisia käyttäjiä, ottaa niiden luokitukset kohteen rᵢⱼ, ja löytää painotettu keskiarvo ennustaa käyttäjä I: n mahdollinen luokitus/etusija kohteen.

kun otetaan huomioon se, että jotkut käyttäjät ovat yleensä liian lieviä ja antavat korkeita arvosanoja kohteille, joista he eivät todellisuudessa pidä, kun taas jotkut käyttäjät ovat liian tiukkoja ja antavat alhaisia arvosanoja jopa kohteille, joista he pitävät, tämä yhteistoiminnallinen suodatus korjaa kaavan poistaakseen harhat. Korjataksemme tämän, vähennämme jokaisen käyttäjän keskiarvon kaikista kohteista laskettaessa painotettua keskiarvoa ja lisäämme sen sitten takaisin kohdekäyttäjälle:

samankaltaisuus voidaan laskea kahdella tavalla: Pearsonin korrelaatio ja kosinin samankaltaisuus.

Tiivistäen tämän menetelmän ajatuksena on löytää käyttäjät, jotka ovat mieltymyksiltään eniten kohdekäyttäjämme kaltaisia, punnita heidän arvosanansa kohteelle ja ennustaa, että se on kohdekäyttäjämme potentiaalinen luokitus valitulle kohteelle.

Kappalepohjaisessa Yhteissuodatuksessa vertaamme kahta kohdetta ja oletamme niiden olevan samanlaisia, kun yksi käyttäjä antaa näille kahdelle kohteelle samanlaiset arvosanat. Me sitten ennustaa, että käyttäjän luokitus kohde laskemalla painotettu keskiarvo luokitukset useimmat X samankaltaisia kohteita tältä käyttäjältä. Katso alla oleva kuva esimerkkinä.

Item-Based Filtering Source-Medium

Model-Based Collaborative Filtering

tässä collaborative filtering recommendering systems-menetelmässä käytetään erilaisia tiedonlouhinta-ja koneoppimisalgoritmeja, joiden avulla voidaan kehittää malli, jolla voidaan ennustaa käyttäjän luokitus luokittelemattomalle kohteelle. Joitakin esimerkkejä näistä malleista ovat Bayesilaiset verkot, ryhmittelymallit, yksikköarvon hajoaminen, probabilistinen latentti semanttinen analyysi, multiplikatiivinen tekijä, latentti Dirichlet ‘ n allokointi ja Markovin päätösprosessiin perustuvat mallit.

Hybrid Collaborative Filtering

tässä menetelmässä yhdistyvät muistipohjaiset ja mallipohjaiset Yhteistyösuodatusjärjestelmät, joilla poistetaan rajoitukset, kuten niukkuus ja tiedon menetys. Tämä menetelmä on kuitenkin monimutkaisempi rakentaa.

Lataa yksityiskohtainen opetussuunnitelma ja saat ilmaisen pääsyn Perehdytysistuntoon

Date: 13th Feb, 2021 (lauantai)
Time: 10:30 AM – 11:30 AM (IST / GMT +5:30)
(Anna yhteystietosi, latauslinkki lähetetään sinulle muutamassa sekunnissa)

Collaborative Filtering Example

saadaksesi hyvän käsityksen collaborative filtering recommender systems, Otetaanpa reaaliaikainen collaborative filtering example ja rakentaa collaborative filtering algorithm in Python. Ensimmäinen vaihe on määritellä aineisto. Jos olet aloittelija Python, tutustu tämä tieto artikkeli:

aineisto

tätä yhteistoiminnallista suodatusesimerkkiä varten meidän on ensin kerättävä tietoja, jotka sisältävät joukon kohteita ja käyttäjiä, jotka ovat reagoineet näihin kohtiin. Tämä reaktio voi olla eksplisiittinen, kuten luokitus tai tykkää tai vastenmielisyys, tai se voi olla implisiittinen, kuten kohteen katselu, sen lisääminen toivelistaan tai artikkelin lukeminen.

nämä tietokokonaisuudet esitetään yleensä matriisina, joka koostuu joukosta käyttäjiä, kohteita ja näiden käyttäjien näihin kohtiin antamista reaktioista. Tässä esimerkki:

matriisi, jossa on viisi käyttäjää ja viisi kohdetta lähde-Real Python

tämä matriisi edustaa viittä käyttäjää u1-u5, jotka ovat luokitelleet viisi kohdetta i1-i5, luokitusten 1-5 välillä (ei myöskään luokituksia). Useimmissa tapauksissa näillä matriiseilla on enemmän tyhjiä soluja kuin kokonaisia, koska on hyvin epätodennäköistä, että monet käyttäjät arvostelevat monia listan kohteita. Tätä kutsutaan harvakseltaan matriisiksi.

voit käyttää tätä luetteloa laadukkaista tietolähteistä yhteistoiminnallisissa suodatusalgoritmiprojekteissasi. Hyvä paikka aloittaa on MovieLens 100k aineisto, joka sisältää 100,000 luokitukset 1682 elokuvia antama 943 käyttäjää, jokainen käyttäjä on arvioinut vähintään 20 elokuvia.

vaikka aineistossa on monia hyödyllisiä kenttiä, niitä, joihin keskitymme erityisesti, ovat:

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

u. data-tiedosto sisältää erillisen listan luokituksista ja käyttäjätunnuksista, nimiketunnuksista, luokituksista ja aikaleimoista. Tässä esimerkki:

ensimmäiset 5 riviä MovieLens 100k-tietolähdettä-Real Python

koko tiedosto sisältää tiedot 100 000 tällaisesta luokituksesta.

Kollaboratiivisen Suodatusalgoritmin luominen

tämän projektin toteuttamisen idea on 1. Tunnista käyttäjät, joilla on samanlaiset mieltymykset ja sitten 2. Ennustaa luokitus elokuva käyttäjä, joka ei ole vielä arvioinut sitä. Meidän on myös otettava huomioon tulosten tarkkuus.

1 ja 2 saavutetaan erilaisilla algoritmeilla. On tärkeää muistaa, että emme ole huolissamme otoksen käyttäjien iästä, väestökehityksestä jne. tai elokuvien tyylilaji jne. Kyse on vain implisiittisistä ja/tai eksplisiittisistä arvosanoista näille elokuville näiden käyttäjien toimesta.

mittataksemme tuloksemme tarkkuutta, Voimme käyttää vaihtoehtoja, kuten juuri Keskimääräinen Neliövirhe tai keskimääräinen absoluuttinen virhe.

Muistipohjainen yhteistoiminnallinen Suodatusalgoritmi

tässä menetelmässä yritämme ennustaa luokitusta R, jonka käyttäjä U mahdollisesti antaisi kohteelle (elokuva) I.

ensimmäinen askel on löytää käyttäjät, joilla on samanlaiset mieltymykset kuin käyttäjä U: lla, sitten laskea luokitus R.

tässä on esimerkki siitä, miten löydämme käyttäjät, joilla on samanlaiset mieltymykset. Huomioi pieni aineisto:

nämä ovat 2 elokuvan arviot, jotka on antanut 4 käyttäjää A, B, C ja D.:

ratings Source-Real Python

juonen pisteiden välinen etäisyys on yksi tapa saada käsitys samankaltaisuuksista kiinnostuksessa. Etäisyyden laskemiseen voidaan käyttää seuraavaa ohjelmaa:

from scipy import spatial

käytämme scipyä.spatiaalinen.matka.euklidinen funktio etäisyyden laskemiseksi. Laskemme C: n etäisyyttä A: sta, B: stä ja D: stä. Voimme nähdä, tuloksesta ja myös itse taulukosta, että C on lähimpänä B: tä, mutta haluaisimme myös tietää A: sta ja D: stä, kuka on lähimpänä C: tä.etäisyyden suhteen voisimme sanoa D: ksi, mutta taulukkoa tarkasteltaessa voisimme sanoa, että A ja C ovat enemmän linjassa, koska molemmat pitävät elokuvasta 2 kaksi kertaa niin paljon kuin elokuvasta 1 (ottaen huomioon suhdeluvut eikä todellinen luokitus), kun taas käyttäjä D pitää molemmista elokuvista lähes yhtä paljon, mikä osoittaa, että niiden mieltymys voi olla erilainen. Mitä Euklidinen etäisyys ei pysty ennustamaan, voimme mahdollisesti johtaa käyttäjiä yhdistävän suoran kulmasta. Liittymällä käyttäjiin kuvaaja näyttäisi tältä:

voimme nähdä, että mitä pienempi kahden viivan välinen kulma, sitä samankaltaisempia niiden viitteet ovat. Jos haluat löytää tämän ohjelmasta, voimme suorittaa seuraavan:

voit nähdä, että kosinin samankaltaisuus a: n ja b: n välillä on 0, mikä osoittaa läheistä samankaltaisuutta. Käyttämällä euklidisen etäisyyden ja kosinin samankaltaisuus on 2 eri menetelmiä voit laskea samankaltaisuus etusija.

luokituksen laskeminen

kun olemme tunnistaneet käyttäjät, joilla on samanlaiset mieltymykset kuin käyttäjällämme U, ryhdymme ennustamaan luokitusta R U, jonka elokuva saisi, jos he eivät ole vielä arvioineet. Tässäkin asiassa on monta keinoa.

yksi suoraviivainen tapa on löytää vastaavanlaisten huippukäyttäjien kyseiselle elokuvalle antamien katsojalukujen keskiarvo. Matemaattinen lauseke olisi:

n käyttäjien antaman keskimääräisen arvosanan matemaattinen kaava Source – Real Python

Voit myös mennä painotettuun lähestymistapaan, jos ylimmillä vastaavilla käyttäjillä on paljon mielipide-eroja. Se tarkoittaisi sitä, että lähimmälle vastaavalle käyttäjälle annettaisiin enemmän painoa ja sen jälkeen painot laskisivat. Lauseke olisi:

Yhteistyösuodatuksen rajoitukset

yksi olento, se ei ota huomioon metatietoa. Käyttäjät saattavat arvostella elokuvan esimerkiksi sen näyttelijän mieltymyksen perusteella, mutta yhteistoiminnallinen suodatus ei ota tätä huomioon.

toinen haittapuoli on se, että yhteistoiminnallinen suodatus ei ole kovin tehokasta, ellei moni käyttäjä ole arvioinut paljon kohteita. Vasta sitten se voi tehdä parhaan ottelun vastaavalle yleisölle ja sitten ennustaa luokituksen.

koska yhteistoiminnallinen suodatus tarvitsee valtavia tietokokonaisuuksia, jotta voidaan saada käyttäjiä, joilla on läheiset samankaltaisuudet, ongelmana on usein tiedon niukkuus. Kuten aiemmin näimme, harva matriisi on sellainen, jossa on enemmän tyhjiä soluja kuin täysiä, mikä on lähes aina.

skaalautuvuus on toinen asia, sillä yhteistoiminnallinen Suodatusalgoritmi kirjoitetaan yleensä ottaen huomioon n-käyttäjät. Kun tietoaineisto kasvaa, kokonaisohjelmasta voi tulla massiivinen.

Applications of Collaborative Filtering Recommender Systems

Collaborative Filtering Recommender Systems Source – Real Python

Collaborative Filtering löytää eniten käyttöä sosiaalisessa verkossa. Näet yhteistoiminnallisen suodatuksen toiminnassa sovelluksissa, kuten YouTubessa, Netflixissä ja Redditissä, monien muiden joukossa. Nämä sovellukset käyttävät yhteistoiminnallista suodatusta suositellakseen videoita / viestejä, joista käyttäjä todennäköisimmin pitää niiden ennakoivan algoritmin perusteella.

yhteistoiminnallinen suodatus on rajoituksista huolimatta suosittu menetelmä suositteluohjelmissa. Sitä käytetään myös verkkokaupan alustoilla suosittelemaan tuotteita, jotka perustuvat samankaltaisten mieltymysten tai makujen käyttäjien ostoksiin.

ohjelmoijana sinun täytyy sekoittaa algoritmeja, jotta yhteistoiminnallinen suodatus olisi tarkempaa, ja myös sekoittaa menetelmiä tai ennusteita, jotta saat tarkimmat tulokset. Mining Massive data-kirjan Recommender Systems-luku on myös loistava tietolähde Yhteistoiminnallisesta suodatuksesta.

Lataa yksityiskohtainen opetussuunnitelma ja saat ilmaisen pääsyn Perehdytysistuntoon

Date: 13th Feb, 2021 (lauantai)
Time: 10:30 AM – 11:30 AM (IST / GMT +5:30)
(Anna yhteystietosi, latauslinkki lähetetään sinulle muutamassa sekunnissa)

meillä on myös täydellinen opas siitä, miten tulla Data Scientist, joka on jotain useimmat koneoppimisen harrastajat haluavat tulla.

oikeiden datatiedetaitojen saamiseksi kannattaa ilmoittautua Datatiedekurssille. Tämä auttaa sinua nostamaan uraasi Datatieteilijänä.

Vastaa

Sähköpostiosoitettasi ei julkaista.