>> [Predvaja glasba]
>> BRAIN SCASSELLATI: Dobrodošli v seriji CS50 AI.
Moje ime je Scass, in danes gremo govoriti o recommender sistemov.
Zdaj recommender sistemi zvoki kot nekako čudno ime.
Sliši se kot morda bi morala biti priporočilo sistemi,
in sem se nekako strinjam s tabo.
Toda to so sistemi, ki pomagajo izberite podobne stvari, kjer je to
izberete nekaj online.
Netflix, na primer bo predlagal drugega filmi, ki bi si želeli gledati.
Ali bo Pandora kažejo drugačno pesmi, ki bi si želeli poslušati.
Amazon bo predlagal kakšne vrste drugi proizvodi, boste morda želeli kupiti.
Facebook bo celo kažejo nekatere druge prijatelje
da boste morda želeli dodati.
Vsaka od teh sistemov delujejo prek enake osnovne vrste algoritma
in to je tisto, kar smo bomo danes govorili.
>> Zdaj ti algoritmi Presenetljivo velik posel.
Netflix je pred nekaj leti v 2009 ponudil 1 milijon $
nagrado, če bi lahko izboljšali njihovo Priporočilo sistem za samo 10%.
Da je 10%, čeprav predstavlja precejšen obseg poslovanja.
Ocene so težko dobiti, vendar veliko ljudi
Verjamem, da ti priporočilo sistemi za spletni nakup
Sistem, kot so Amazon pripelje do nekje med 10% in 25% povečanju prihodkov.
Torej si lahko predstavljate vrsta volumna, ki ste
govorimo o tem, ko razmišljamo o tudi ti malo algoritmi.
>> Torej, kaj je dobil nekaj primerov.
Kako je to, da ti Sistemi res deluje?
Obstajata dve osnovni vrste algoritmov, ki
so v igri, ko govorimo o Priporočila, ki ustvarjajo.
Prvi so se imenujejo Vsebina temelji na filtriranje.
In vsebina, ki temelji filtriranje blestel na podobnosti med postavkami
same, ki je med dvema filme ali dve pesmi ali dve kupljene postavke.
Bomo uporabili filme Kot primer, vendar je to
se lahko uporablja, res, za vse vrste objekta, ki ga iščemo.
>> Torej, če mislim, da o nekaterih filmov iz lanskega leta,
Videl sem Inside Out z moji otroci, so ga ljubili.
Vendar smo imeli tudi možnost izbire.
Lahko bi šli, da vidite Sluge, smo lahko videli Age of Ultron,
ali smo lahko videli Ant Man v gledališčih.
>> Za katero od teh filmi, smo lahko predstavljate
ustvari seznam funkcij ali lastnosti, o teh različnih filmov.
Tako bi lahko na primer menim kateri od teh filmov so animirani.
No, tako Inside Out in Sluge so animirani.
Niti Starost Ultron niti Ant Man so animirani filmi.
In jaz bi si predstavljam stavbo up strukture, tabele, ki
izpiše vsako od teh lastnosti.
So animirani ali ne?
Jaz bi nato dodajte več funkcije v tej tabeli
z dodajanjem več vrstic v to strukturo.
Jaz bi vprašati, ali ne oni Marvel filmov.
No, Inside Out in Sluge niso Marvel filmov,
Starost Ultron in Ant Man gotovo so.
>> In jaz lahko vprašam vse vrste za različne kakovosti
da sem želel, vse vrste funkcij da bi bilo pomembno zame.
Ali imajo super lopov?
No, ni super lopov v Inside Ven, vendar pa so tisti v Sluge
in, seveda je dve Superhero filmi.
>> Jaz lahko vprašam tudi stvari, kot so, dobro, ne opravijo preizkus Bechdel?
Ali obstajajo dve imenom ženski liki, ki
preživijo nekaj veliko količino Čas ob pogovoru, ki
ne gre za moške, v zasedbi?
No, v tem primeru, Inside Out prehaja test, Sluge ne uspe, Age of Ultron
opravi preskus, in Ant Man uspe.
Koli izmed teh funkcij Sem razmišljala o tem
kot pomembno za nekatere ljudi.
>> Jaz lahko vprašam tudi stvari, kot so tam vsi ljudje v teh filmih, ki
so alumni iz recimo, parki in Rekreacija, ena izmed mojih najljubših oddaj.
No, Inside Out je Amy Poehler, da je nekdanjih štipendistov.
Ki šteje.
Jon Hamm je bil v Sluge.
Paul Rudd je bil Ant Man, vendar nihče V dobi Ultron bil v parkih in Req
kot dobro.
Tako sem lahko zgraditi ta seznam funkcije, in so lahko res
biti nič o filmih.
Ti bi se lahko kaj razmerje so ustrelili v,
da bi se lahko, koliko sedežev so prodajajo na svoji otvoritveni vikend.
Vse funkcije, da želim ustvarjajo morem dati v tej tabeli.
>> Zdaj, v tem primeru, sem zgradil vse vrste vrednot Bullion,
da ali ne, mimo ali ne, vendar bi lahko bilo karkoli.
Ti so lahko poljubnih vrednosti.
Za vsebino, ki temelji filtriranje, kaj bomo storili
se bomo, da razmisli dva stolpca v tej tabeli
in videli, kako podobni so.
Tako na primer, če sem obiskal Inside Out,
Jaz lahko vprašam, kaj so drugi filmi da bi moral biti pripravljen iti videti.
To pomeni, da tisto, kar želijo porabiti svoj denar, da gredo videti.
In to lahko primerjate z šele ob dva stolpca, ena od znotraj navzven
in enega iz katerega koli od drugi filmi, in samo videnje
koliko njihove funkcije tekmo.
Torej, če primerjam Inside Out z Sluge, no, tam je
tri stvari, ki so tukaj, ki se ujemajo.
Oni so tako animirani, nobeden od njih so Marvel filmov in oba
imajo parki in req alumni.
Tako sem lahko računam gor, kako veliko tekem je bilo,
in v tem primeru bi bilo tri.
>> Če pa primerjam Inside Out z recimo Age of Ultron,
Jaz lahko ogledate določitvi seznama in rekel, dobro, tam je
Samo ena stvar je, ki se ujema tam.
Oba prestati preskus Bechtel, tako da se dogaja, da je rezultat enega.
In med Inside Out in Ant Man, sem spet
Lahko primerjate po vrsticah, koliko Stvari se ujemajo med njima.
No, en animirani, eden je ni.
Ena je Marvel film, ena ni.
Eden je dobil super lopov, drugi pa ne.
Ena prehaja Bechtel test, eden ga ne uspe,
vendar imata oba parki in req alumni, tako znova, da dobi rezultat enega.
>> Torej, če sem iskali za filme da so bili podobni Inside Out,
Jaz bi si za filme, ki imajo najvišja ocena v okviru te vsebine
Shema za filtriranje.
Torej, v tem primeru sem bi upošteval Sluge
biti bližje in bolj verjetno nekaj
da bi porabili denar za ogled kot Age of Ultron ali Ant Man.
>> Na osnovi teh vsebin sistemi za filtriranje zanašajte samo
o lastnostih filmi, in tako sem
lahko gradijo ti samo s poznavanjem Nekaj ​​o izdelkih
da imam.
Lahko uporabite vse vrste funkcije, ki bi rad,
in sem se lahko gradijo več kompleksne funkcije, ki
vključevati bolj zapleteno preizkus takšne kakovosti, kot sem šel skupaj.
V bistvu, lahko sem celo to tabelo ne kot eno statični objekt,
ampak kot dimenzije v večjem prostoru stanj.
In lahko začnem govorimo o Razdalje med različnimi filmov.
To so vse stvari, da vemo, kako so
storite z uporabo vrste podatkovnih struktur da smo že videli v CS50.
Tako sem lahko predstavljate stavbo podatkovna struktura za film.
Tam je struct, ki sem jih zgrajeno imenuje film,
in ima pet logičnih vnose v njem.
Je animiral, je Marvel film, pa ima super lopov,
ne prenese test Bechdel, in obstajajo Parki in Rec alumni v njem?
In vsak od teh je podatkovna struktura, ki sem
Lahko zasedajo za to določeno film.
>> Nato izračuna ali dveh filmi so podobni ali ne,
kakšna je njihova ocena je, da sem lahko izpišite niz psevdokoda da
generira to isto funkcijo.
Da je, glede na nekatere film M1, sem lahko najti najbolj podoben film z njo
s po psevdokoda.
Menim, kateri je najboljši sistem točkovanja, ki sem jih našel,
najboljša primerjava, ki sem jih našel.
Za vsak drugi film Jaz bom šel skozi,
Bom nastavite rezultat dvoboja enak 0.
In jaz bom šel skozi to Film, An M1, film
Začel sem z, bom preveriti vsak element
da imajo videti če je ujemanje.
Če je tekma, bom prirastek rezultat tekmo.
In če na koncu rezultat tekmo, ki Sem je bolje kot sedanja najbolje
rezultat, potem bom ne pozabite, da je najboljši rezultat,
in to je najboljša tekma, ki jo imam.
Na koncu, kar film je sedel v najboljšem srečanja
ki je najbližje Bil sem sposoben priti.
Torej, na osnovi teh vsebin filtrirne naprave,
vsi imajo to osnovno strukturo.
Zanašajo se na postavki na vprašanje in nič
o kateri koli od želje uporabnikov.
>> Drugi mehanizem, ki jih uporabljamo v naročite graditi priporočilo sisteme
se imenuje sodelovalno filtriranje.
Sodelovalno filtriranje opira na ne pa lastnosti predmeta samega,
ampak kako ljudje, drugo Uporabniki, ki je, kako oni '
odzvala na te iste stvari.
Torej, da nadaljuje s svojim filma primer, Jaz bi si kup mojih prijateljev
in jih raziskava o tem, ali ni jim všeč, posebne filme.
Zdaj bodo različni kraji ustvarjanje Ti podatki so na različne načine.
Lahko neposredno raziskavo vaš uporabniki, ali pa si lahko samo
videti, kaj izbrati, če ste, na primer Netflix.
Kateri filmi pa so gledal?
>> Jaz bi vprašanje nekaj mojih prijatelji tu in izvedeli
da Jason všeč vsak film je videl, ni pa presenetljivo.
Andy je všeč samo Sluge in teto Man.
Sarah všeč Inside Out in Avengers, nasprotje Andy.
In Sam, no, Sam všeč vse superheroj filmov,
vendar nobeden od animiranih filmov.
>> Jaz bi se potem pozanima za nekatere nove Posameznik, nekateri drugi uporabnik, kot sem jaz
in vprašati, no, če mi je všeč eden od teh filmov,
Lahko naredite napoved o kateri drugi filmi bom morda všeč.
To je, če sem Inside všeč Out, ki drugih filmih
sem verjetno tudi želijo videti temelji na tisto, podobni ljudje storili?
To pomeni, da bom šel posredno preko Bom filtrira skozi ta seznam
in našli samo posamezniki, ki so prav tako všeč
Inside Out, ki se ujema moje želje.
No, to pa pomeni, da se Andy in Sam, ti ni všeč Inside Out,
tako da ne bom, da jih obravnava.
Grem, da se znebite svoje Podatki za to primerjavo.
>> Lahko pa pogledamo, kaj Jason in Sarah misli in zaznamovati
do katerega izmed filmov, ki sta jih videla da nisem to, ali so jim všeč
ali ne.
Jaz lahko samo štetje, recimo glasov.
Torej Sluge, na primer morda eno glasovati za to, ker Jason je všeč.
Oba sta Jason in Sarah všeč Avengers, tako da bi imeli dva glasova.
In samo Jason všeč Ant Man, tako da bi dobil en glas.
Torej, če sem moral potem priporočam za sebe, kateri od teh filmov
Morda bom najverjetneje gledal, jaz bi morali izbrati Age of Ultron: Avengers.
>> Torej za katerega koli od teh sistemi, zdaj sem s pomočjo
Podatki, ki je ne ustvari približno Film sam po sebi, ampak o preferencah
iz drugih uporabnikov.
To ima nekaj težav, seveda.
Kaj pa, če nimate nobenih drugih uporabnikov?
No, to se imenuje zagonski problem.
Moraš imeti nekaj Količina podatkov, preden ste
lahko začeli delati ta priporočila.
Druga plat tega je, ko začnete zbiranje podatkov,
če lahko zbere več in vedno več podatkov,
boste dobili boljši in boljši in boljša priporočila.
>> Zdaj bomo lahko prevedli to v kodi, kot tudi.
Mi lahko določite drugačen vrsta strukture,
V tem primeru bomo ga pokličete uporabnik.
In to je dobil funkcije o kateri filmi ta uporabnik všeč.
Ali jim je všeč Inside Out, Sluge, Avengers, in Ant Man.
Mi lahko potem ustvari nekateri psevdokoda slediti
enak postopek, da sem se prej.
To pomeni, daje poseben Uporabnik x, pa priporočam film
da je x morda všeč.
Mi lahko šel skozi in za vse filme,
bomo lahko inicializacijo rezultat Za to film biti 0.
In potem bomo lahko našli vse od drugih uporabnikov, ki so
imajo enake nastavitve kot x.
In nato za vsak Film, ki jim je všeč,
bomo prirastek rezultat tega filma.
Katerikoli film v Konec ima najvišjo oceno,
to je tisti, ki sem moral priporočam.
>> Nič od tega ni res nejasna.
Nič od tega ni zahtevna.
To so vse osnovne algoritme da lahko izvajajo danes.
>> Zdaj z realno recommender sistemov, naletite na nekaj težav.
Kaj pa, če je nihče ne kdo ujema natanko nastavitve?
Kaj pa, če obstajajo uporabniki, ki so natanko vaše želje,
potem pa odstopa drastično od tistega, kar vam je všeč?
Všeč mi je klasičen Godzillo filmi, ampak moja žena ne.
Rad jih gledam, moj Netflix račun jih vsebuje.
Ji je ne.
Kaj se zgodi, ko smo začeli mešanje podatkov, kot je ta?
To so vsi izzivi ki jih lahko premagali,
so nekoliko vzemite bolj zapletenih algoritmov.
>> Zdaj v realnem svetu, ki so dejansko delovati,
bomo uporabili vsebinsko temelji filtriranje ali bomo uporabili sodelovalno filtriranje?
In je odgovor uporabljamo oba.
Skoraj vsi izmed glavnih uporabnikov V tem primeru, Amazon, Facebook, Netflix,
Pandora, vsi uporabljajo kombinacijo ti različni priporočilo sistemi.
In ko smo se združujejo odločitve iz vsak, jih imenujemo hibridne sisteme.
So na nek način odvisna od lastnosti predmeta samega,
in v nekaterih pogledih so odvisni preference drugih uporabnikov.
Ti hibridni sistemi, oni so velik posel,
in oni, kaj je tok danes.
>> Torej, hvala lepa se mi pridružil.
Upam, da ste gotten malo malo razumevanja, kaj
naredi ti sistemi dela.
Naslednjič, ko ste na spletu, ne pozabite, da Ne samo, da vplivanja na vaše izbire,
vendar potencialno vsi ostali, je tudi.
Hvala še enkrat.