[Musiikkia] BRAIN Scassellati: Tervetuloa jotta CS50 AI sarja. Nimeni on Scass, ja tänään aiomme puhua Recommender järjestelmiä. Nyt Recommender järjestelmät ääniä kuin sellainen outo nimi. Se kuulostaa ehkä sen pitäisi olla suositus järjestelmät, ja olen sellainen samaa mieltä. Mutta nämä ovat järjestelmiä, jotka auttavat Valitse ulos samanlaisia ​​asioita aina valitset jotain verkossa. Netflix, esimerkiksi ehdottaa muita elokuvia, jotka saatat haluta katsoa. Tai Pandora ehdottaa eri kappaleita joita haluat kuunnella. Amazon ehdottaa millaisia muut tuotteet kannattaa ostaa. Facebook jopa ehdottaa jotkut muut ystävät että saatat haluta lisätä. Kukin näistä järjestelmistä käyttää kaikkien samat sellainen algoritmi, ja sitähän me olemme aiomme puhua tänään. Nyt nämä algoritmit ovat yllättävän suurta liiketoimintaa. Netflix muutama vuosi sitten 2009 tarjosi 1 miljoona $ palkinto jos voisivat parantaa suositus järjestelmän vain 10%. Että 10%, vaikka, edustaa huomattava määrä liiketoiminnan. Arviot ovat vaikea tule, mutta monet ihmiset uskovat, että nämä suositus järjestelmät ostopuolella järjestelmä kuten Amazon johtaa jonnekin 10% ja 25% liikevaihdon kasvusta. Joten voitte kuvitella sellainen määrä, että olet puhumme, kun ajattelemme jopa nämä pienet algoritmeja. Joten saada joitakin esimerkkejä. Mistä johtuu, että nämä järjestelmät todella toimivat? On olemassa kaksi perus Erilaisia ​​algoritmeja ovat pelissä, kun puhumme tuottavan suosituksia. Ensimmäinen niistä on nimeltään sisältö perustuu suodatus. Ja sisältö perustuu suodatus perustuu kun yhtäläisyyksiä kohdetta itse, että on kahden elokuvia tai kaksi laulua tai kaksi ostettuja kohteita. Aiomme käyttää elokuvia Esimerkkinä, mutta tämä voitaisiin soveltaa, todella, kaikentyyppisiin esine, joka etsimme. Joten jos ajattelen joitakin elokuvia viime vuonna, Näin Inside Out lapseni, he rakastivat sitä. Mutta meillä oli myös valinta. Olisimme voineet mennä nähdä Minions, voisimme nähdä Age of Ultron, tai voisimme nähneet Muurahainen mies teattereissa. Mitään näistä elokuvia, voisimme kuvitella tuottaa luettelo ominaisuuksista tai Valikoimasta nämä eri elokuvia. Niinpä esimerkiksi, voisin harkita joka niistä elokuvista ovat animoituja. No, molemmat Inside Out ja hännystelijät ovat animoituja. Kumpikaan ikä Ultron eikä Ant Man ovat animoituja elokuvia. Ja voisin kuvitella rakennus ylös rakenne, taulukko, luetellaan jokainen näistä ominaisuuksista. Ovatko ne animoituja vai ei? Voisin sitten lisää ominaisuuksia tämä taulukko lisäämällä rivejä tähän rakenteeseen. Voisin kysyä, ei he Marvel elokuvia. No, Inside Out ja hännystelijät eivät ole Marvel elokuvia, Age of Ultron ja Ant Man varmasti ovat. Ja voisin kysyä minkäänlaisia eri laatujen että halusin, kaikki erilaisia ​​ominaisuuksia että voi olla tärkeää minulle. Onko heillä super konna? No, ei ole Super konna Inside , Mutta on olemassa olevista Minions ja, tietenkin, kaksi supersankari elokuvia. Voisin myös kysyä asioita, kuten, hyvin, he kulkevat Bechdel testi? Onko kaksi nimetty naishahmoja, jotka viettää huomattava määrä aika ottaa keskustelun, joka ei liity miesten valettu? No, tässä tapauksessa, Inside Out kulkee testi, Minions epäonnistuu, ikä Ultron läpäisee testin, ja Ant Man epäonnistuu. Tahansa näistä ominaisuuksista Voisin ajatella olevan tärkeä joillekin ihmisille. Voisin myös kysyä asioita, kuten ovat Onko ihmiset näissä elokuvat ovat alumnit sanotaanko, puistot ja Virkistys, yksi minun suosikki osoittaa. No, Inside Out on Amy Poehler, se Alumni. Ratkaisee. Jon Hamm oli Minions. Paul Rudd oli Ant Man, mutta kukaan Age of Ultron oli Puistot ja Req yhtä hyvin. Joten en voi rakentaa tämän listan ominaisuudet, ja ne voisivat todella olla mitään elokuvia. Ne voisivat olla mitä kuvasuhde ne ammuttiin, se voisi olla, kuinka monta paikkaa he myivät avaamisesta viikonloppuna. Mikä tahansa ominaisuus, että haluan tuottaa voin laittaa tähän taulukkoon. Nyt, tässä tapauksessa, olen rakentanut kaikenlaisia ​​Bullion arvot, kyllä ​​tai ei, hyväksytty tai hylätty, mutta ne voivat olla mitä tahansa. Ne voisivat olla mielivaltainen arvoja. Saat sisältö perustuu suodatus, mitä aiomme tehdä on aiomme harkita kaksi saraketta tässä taulukossa ja nähdä kuinka samankaltaisia ​​ne ovat. Niinpä esimerkiksi, jos en meni tapaamaan Inside Out, Voisin kysyä, mitä muita elokuvia että voisin olla valmis menemään nähdä. Se on, mitä valmis vietän rahaa mennä katsomaan. Ja voin verrata tämän vain ottamalla kaksi saraketta, yksi Inside Out ja yksi mistä tahansa muita elokuvia, ja vain nähdä kuinka moni niiden ominaisuuksia ottelussa. Joten jos vertaan Inside Out kanssa Minions, hyvin, siellä kolme asiaa tässä, että ottelu. He molemmat animoituja, kumpikaan ovat Marvel elokuvia, ja molemmat on Puistot ja Req alumnien. Jotta voisin laskea kuinka monta ottelua oli, ja tässä tapauksessa ei halua olla kolme. Jos minä sitten verrata Inside Out jossa sanotaan Age of Ultron, Voin katsoa luetteloa alaspäin ja sanoa, hyvin, siellä vain yksi asia, joka vastaa siellä. Molemmat kulkevat Bechtel testi, joten että tulee olemaan pisteet yhden. Ja välillä Inside Out ja Ant Man, jälleen minä voi vertailla rivi riviltä, ​​kuinka monta asiat vastaavat välillä kaksi niistä. No, yksi on animoitu, yksi ei ole. Yksi on Marvel elokuva, yksi ei ole. Yksi sai super konna, toinen ei. Yksi kulkee Bechtel testi, yksi epäonnistuu se, mutta ne molemmat ovat puistot ja Req alumni, niin uudelleen, se saa pisteet yhden. Joten jos olisin etsimässä elokuvia jotka olivat samanlaisia ​​kuin Inside Out, Voisin etsiä elokuvia, jotka korkeimmat pisteet tämän sisällön suodatus järjestelmä. Joten tässä tapauksessa, minä harkitsisi Minions olla lähempänä ja enemmän todennäköisesti jotain että haluan rahaa nähdä kuin Age of Ultron tai Ant Man. Nämä sisältö perustuu suodatus järjestelmät luottaa vain ominaisuuksista elokuvia, ja niin minä voi rakentaa nämä vain tuntemalla jotain tuotteet että minulla on. Voin käyttää kaikentyyppisiä ominaisuuksia, jotka haluaisin, ja voin rakentaa lisää monimutkaisia ​​ominaisuuksia, jotka liittyvät monimutkaisemmat testi ja laatu kuin menen pitkin. Itse voin jopa katsella taulukon ei olevan yksi staattinen objekti, vaan pikemminkin olevan mitat osana laajempaa tila-avaruus. Ja voin alkaa puhua etäisyydet eri elokuvia. Nämä kaikki ovat asioita, että tiedämme, miten ne tehdä käyttämällä erilaisia ​​tietorakenteiden että olemme jo nähneet CS50. Niin voisin kuvitella rakennus tietorakenne elokuvan. On struct että olen rakennettu kutsutaan elokuva, ja se on viisi loogisia merkintöjä se. Onko se animoitu, on se Marvel elokuva, se on super konna, se siirtää Bechdel testi, ja ovat siellä Puistot ja Rec alumnien se? Ja jokainen näistä on tietorakenne että minä voi viedä kyseisen elokuvan. Laske sitten ovatko kaksi elokuvat ovat samankaltaisia ​​tai ei, mikä maalitiliään on, voisin kirjoittaa joukko pseudokoodin että tuottaa saman toiminnon. Eli annetaan hieman elokuva M1, voin löytää muistuttaa eniten elokuvan siihen seuraamalla pseudokoodina. Katson joka on paras pisteytysjärjestelmä että olen löytänyt, paras vertailu että olen löytänyt. Jokaista muut elokuva Aion käydä läpi, Minä asettaa ottelun pisteet 0. Ja menen läpi elokuva, M1, elokuva Aloitin, Tarkistan jokainen ominaisuus että heillä on nähdä jos on ottelu. Jos on ottelu, minä increment ottelu pisteet. Ja jos lopussa ottelun pisteet että Olen on parempi kuin nykyiset parhaat viereen, niin minä muistaa, että parhaat pisteet, ja tämä on paras ottelu, joka minulla on. Lopussa riippumatta elokuva istuu paras ottelu, se lähin Olen voinut tulla. Joten nämä sisältö perustuu suodatus järjestelmät, ne kaikki ovat tämän perusrakenne. He luottavat tuote kyseessä ja mitään kaikista käyttäjän mieltymysten. Muun mekanismin että käytämme jotta voidaan rakentaa suositus järjestelmiin kutsutaan yhteistyöhön suodatus. Collaborative suodatus vetoaa ei ominaisuuksia kappale itsessään, mutta miten ihmiset, muut käyttäjille, että on, miten he ovat vastasi nämä samat esineitä. Siten jatkaa minun elokuva esimerkiksi Voisin ottaa joukko ystäväni ja kartoittaa niitä siitä, onko ei he pitivät erityisesti elokuvia. Nyt eri paikoissa luo nämä tiedot eri tavoin. Voit suoraan Kartoitamme käyttäjille, tai voit mitä he valitsevat, jos olet esimerkiksi Netflix. Joka elokuvia he katsella? Saatan kyseenalaistaa joitakin minun ystäviä täällä ja selvittää että Jason halunnut jokainen elokuva hän näki, ei yllättävää siellä. Andy vain halunnut Minions ja täti Man. Sarah piti Inside Out ja Kostajat, vastakohta Andy. Ja Sam, hyvin, Sam pidetty kaikki supersankari elokuvia, mutta mikään animaatioelokuvat. Voisin sitten kyselyn joitakin uusia yksittäisiä, joitakin muita käyttäjän kuten minä ja kysyä, hyvin, jos pidin yksi näistä elokuvista, voit tehdä ennusteen joka muita elokuvia voisin like. Eli jos pidin Inside Out, joka muita elokuvia minä olen todennäköisesti myös nähdä perusteella, mitä samankaltaisia ​​ihmiset tekivät? Eli minä menen läpi Minä suodatetaan tähän listaan ja löytää vain henkilöt pitivät myös Inside Out, joka täsmäsi minun mieltymykset. No, se tarkoittaa, että Andy ja Sam, he eivät pitäneet Inside Out, joten en aio harkita niitä. Aion päästä eroon tietoja tässä vertailussa. Voin sitten katsoa, ​​mitä Jason ja Sarah ajatteli ja Tally ylös mitkä elokuvat he näkivät että en, ovatko he pitivät niitä tai ei. Voisin vain laskea, sanokaamme äänistä. Niin Minions, esimerkiksi voi olla yksi äänestää sen puolesta, koska Jason piti siitä. Sekä Jason ja Sarah piti Avengers, joten se olisi kaksi ääntä. Ja vain Jason halunnut Ant Man, joten se saisi yksi ääni. Joten jos olisin sitten suositella itselleni joka näistä elokuvista Saatan olla todennäköisimmin katsella, olisin on valittava Age of Ultron: Avengers. Joten mitään näistä järjestelmät, nyt olen käyttäen tiedot, jotka luotiin ole kyse elokuva itse, vaan mieltymykset muilta käyttäjiltä. Tämä on joitakin vaikeuksia tietenkin. Mitä jos sinulla ei ole mitään muita käyttäjiä? No, sitä kutsutaan käynnistyksen ongelma. Sinulla täytyy olla jonkin verran tietomäärän ennen olet pystyvät alkaa tehdä nämä suositukset. Kääntöpuoli on kerran aloitat tietojen keräämisen, jos voit kerätä enemmän ja yhä enemmän tietoa, saat paremmin ja paremmin ja paremmin suosituksia. Nyt voisimme kääntää tämä koodiksi samoin. Voimme määritellä eri Tällainen rakenne, Tässä tapauksessa me kutsumme sitä käyttäjä. Ja se on saanut piirteitä noin joka elokuvat tämän käyttäjän piti. He haluavat Inside Out, Minions, Kostajat, ja Ant Man. Voisimme sitten tuottaa jotkut pseudokoodilla seurata samaa menettelyä, jota käytin ennen. Että on, annetaan tietyn Käyttäjä X, nyt suositella elokuva että x ehkä. Voimme mennä läpi ja kaikille elokuvia, voimme alustaa pisteet että elokuva on 0. Ja sitten voimme löytää kaikki ja muille käyttäjille, jotka ovat samat etuudet kuin x. Ja sitten jokaiselle elokuva, että he pitivät, me increment pisteet että elokuvan. Kumpi elokuvan pää on korkeimmat pisteet, se minun pitäisi suositella. Mikään tästä ei ole todella epäselvä. Mikään tästä ei ole haastava. Nämä ovat kaikki perus algoritmit että voisit toteuttaa tänään. Nyt todellinen Recommender järjestelmiä, olet joutunut ongelmia. Mitä jos ei ole ketään, joka vastaa täsmälleen mieleisesi? Mitä jos on käyttäjiä, jotka ovat juuri mieleisesi, mutta sitten poiketa huomattavasti mistä pidät? Pidän klassinen Godzilla elokuvia, mutta vaimoni ei. Tykkään katsoa niitä, minun Netflix tili sisältää niitä. Hänen on ei. Mitä tapahtuu, kun alamme sekoittamalla tiedot näin? Nämä ovat kaikki haasteet että voit voittaa, ne vain kestää hieman enemmän monimutkaisia ​​algoritmeja. Nyt todellisessa maailmassa, joka ovat todella toiminnassa, käytämme sisältö perustuu suodatus- tai käytämme yhteistyönä suodatusta? Ja vastaus on käytämme molempia. Lähes kaikki suuret käyttäjien Tällöin Amazon, Facebook, Netflix, Pandora, he kaikki käyttävät yhdistelmä nämä eri suositus järjestelmiä. Ja kun yhdistämme valintoja jokainen, kutsumme niitä hybridi järjestelmiä. Ne jotenkin riippuvat ominaisuudet kappale itsessään, ja jotenkin ne riippuvat mieltymykset muiden käyttäjien. Nämä hybridi järjestelmät, he suuryrityksiä, ja ne ovat mitä nykyinen tänään. Joten kiitos erittäin paljon liittymään minulle. Toivottavasti olet saanut hieman hieman ymmärrystä siitä, mitä tekee nämä järjestelmät toimivat. Seuraavan kerran olet verkossa, muista, että Et ole ainoa vaikuttaa valintoja, mutta mahdollisesti kaikkien muiden samoin. Kiitos uudelleen.