[Prehrávanie hudby] BRAIN SCASSELLATI: Vitajte k sérii CS50 AI. Volám sa Scass, a dnes budeme hovoriť o odporúčací systémy. Teraz Odporúčací systémy zvuky ako druh podivné meno. Znie to, ako by snáď malo byť odporúčanie systémy, a nejako som s vami súhlasím. Ale to sú systémy, ktoré pomáhajú vyberte z podobné veci, kedykoľvek je to vyberiete niečo online. Netflix, napríklad navrhne ďalšie filmy, ktoré budete chcieť sledovať. Alebo Pandora navrhne iný Piesne, ktoré budete chcieť počúvať. Amazon navrhne, aké druhy ostatné výrobky budete chcieť kúpiť. Facebook bude dokonca naznačujú, niektoré z ďalších priateľov že budete chcieť pridať. Každý z týchto systémov pracujú na báze rovnaké základné druh algoritmu, a to je to, čo sme hovoriť o dnes. Teraz tieto algoritmy sú Prekvapivo veľký biznis. Netflix pred niekoľkými rokmi v 2.009 ponúkol 1.000.000 $ Cenu keby mohol zlepšiť ich Odporúčanie systém o iba 10%. , Že 10%, aj keď, predstavuje podstatná časť obchodu. Odhady sú ťažké prísť, ale mnoho ľudí verí, že tieto odporúčania Systémy pre on-line nákupy systém, ako je Amazon vedú k niekam medzi 10% a 25% zvýšenie výnosu. Takže si môžete predstaviť druh zväzku, ktorý ste hovorí o tom, kedy si myslíme, že o aj tieto malé algoritmy. Takže poďme niekoľko príkladov. Ako je možné, že tieto Systémy naozaj funguje? Existujú dva základné druhy algoritmov, ktoré sú v hre, keď hovoríme o odporúčanie generovanie. Prvý z nich sa nazývajú Obsah založené filtrovanie. A filtrovanie založený obsah spolieha na podobnosti medzi položkami samy o sebe, že sa medzi dva filmy alebo dve piesne alebo dve zakúpené položky. Budeme používať filmy ako príklad, ale toto by sa mohli týkať, naozaj, na akýkoľvek typ objektov, ktoré hľadáme. Takže ak si myslím o niektorých filmy z minulého roka, Videl som naruby s moje deti, sa im to páčilo. Ale tiež sme mali na výber. Mohli sme šli vidieť prisluhovačov, sme mohli vidieť Age of Ultron, alebo sme mohli vidieť Ant Muž v kinách. Pre niektoré z týchto filmy, mohli by sme si predstaviť, generovanie zoznamu funkcií alebo vlastnosti o tých rôznych filmoch. Tak napríklad, mohol považujem ktoré z týchto filmov sú animované. No, a to ako Inside Out a obľúbenci sú animované. Ani vek, ani Ultron Ant Man sú animované filmy. A ja som si predstaviť, budova up štruktúry, tabuľky, ktorá uvádza každej z týchto vlastností. Sú animované, alebo nie? Mohol by som potom pridať ďalšie Funkcie v tejto tabuľke pridaním ďalších riadkov do tejto štruktúry. Mohol by som sa opýtať, či nie, že sú Marvel filmy. No, Inside Out a obľúbenci nie sú Marvel filmy, Vek Ultron a mravec človeka iste sú. A mohol by som sa opýtať všetky druhy rôzne kvality že som chcel, všetky druhy funkcií ktoré by mohli byť dôležité pre mňa. Majú super darebáka? No, je tu žiadny Super zloduch v Inside Out, ale tam sú tie v prisluhovači a, sa teda jedná o dve superhrdinu filmy. Mohol by som tiež požiadať veci, ako, dobre, sa im prejsť testom Bechdel? Sú tu za dva pomenoval ženskej postavy, ktoré stráviť nejaký značné množstvo Doba konverzáciu, ktorá nezahŕňa muža v obsadení? No, v tomto prípade, Inside Out prejde testy, obľúbenci zlyhá, vek Ultron prejde testom, a Ant Muž zlyhá. Každý z týchto funkcií Nemohol som myslieť za dôležité pre niektorých ľudí. Mohol by som tiež požiadať veci, ako sú tam nejakí ľudia v týchto filmov, ktoré sú absolventi z povedzme, parky a Rekreácie, jeden z mojich obľúbených relácií. No, Inside Out má Amy Poehler, to je Alumni. To sa počíta. Jon Hamm bol v prisluhovači. Paul Rudd bol v Ant Man, ale nikto Age of ULTRON bolo v parkoch a Req tiež. Tak som si vybudovať tento zoznam rysy, a mohli naozaj byť niečo o filmoch. Môžu byť, čo Pomer strán boli výstrel v, to by mohlo byť, ako veľa miest, ktoré predal na svojom víkendu otvorení. Všetky funkcie, ktoré chcem generovať môžem dať do tejto tabuľky. Teraz, v tomto prípade, som postavil všetky druh hodnôt Bullion, áno alebo nie, prejsť alebo zlyhanie, ale mohli by byť čokoľvek. Môžu byť ľubovoľné hodnoty. Pre obsahu založené filtrovanie, čo budeme robiť sa budeme uvažovať dva stĺpce v tejto tabuľke a vidieť, ako podobné sú. Tak napríklad, ak I šiel vidieť zvnútra von, Mohol by som sa opýtať, aké sú ďalšie filmy že by som mohol byť ochotný ísť vidieť. To znamená, že to, čo ochotný míňať svoje peniaze ísť vidieť. A môžem porovnávať len s tým, že dva stĺpce, jeden z Inside Out a jeden z niektorého z ostatné filmy, a len vidieť koľko z ich funkcií zápasu. Takže keď to porovnám Inside Out s prisluhovačmi, no, je tu tri veci, ktoré tu zápas. Sú obaja animované, ani jeden z nich Marvel sú filmy, a to ako z nich majú parky a REQ absolventov. Takže som mohol spočítať, ako Mnoho zápasov tam bolo, a v tomto prípade, že by tri. Ak by som potom porovnať Inside Out s povedzme Age of Ultron, Ja sa pozrieť dole v zozname a hovoria, dobre, je tu len jedna vec, ktorá tam zodpovedá. Oba prejsť testom Bechtel, tak že to bude skóre jedného. A medzi Inside Out a Ant Muž, som znovu Môžete porovnať riadok po riadku, koľko veci zápas medzi dvoma z nich. No, jeden je animovaný, človek nie je. Jeden to film Marvel, jeden to nie je. Jeden má super darebáka, druhý nie. Jeden prechádza Bechtel test, to zlyhá, ale obaja majú parkov a req absolventov, takže opäť sa dostane skóre jeden. Takže keď som hľadali filmy ktoré boli podobné naruby, Mohol by som hľadať filmy, ktoré majú najvyšší počet bodov v rámci tohto obsahu schéma filtrovanie. Takže v tomto prípade, myslím, bude uvažovať prisluhovačov byť bližšie a viac pravdepodobné, že bude niečo že by som míňať peniaze, aby vidieť ako Age of ULTRON alebo Ant Man. Tieto obsah založený filtračné systémy sa spoliehajú len Na základe vlastností filmy, a tak som sa môže stavať to práve tým, že pozná niečo o produktoch že mám. Môžem použiť všetky druhy funkcie, ktoré by som chcel, a môžem postaviť viac komplexné funkcie, ktoré zahŕňať zložitejšie skúšky o kvalite, ako som ísť ďalej. V skutočnosti, môžem dokonca zobraziť túto tabuľku nie ako byť jeden statický objekt, ale skôr ako rozmery v rámci väčšej stavového priestoru. A môžem začať hovoriť o vzdialenosti medzi rôznymi filmami. To všetko sú veci že by sme vedieť, ako sa vykonať pomocou druhy dátových štruktúr že sme už videli v CS50. Takže som si dokázal predstaviť budovu štruktúra dát pre film. Je tu struct, ktorý som postavený tzv film, a to má päť logické položky v ňom. Je to živý, je to Marvel film, to má super darebáka, to prejsť testom Bechdel, a sú tam Parky a Rec absolventov v nej? A každý z nich je štruktúra dát, ktoré som môžu zaberať pre konkrétny film. Potom vypočítať, či dva filmy sú podobné alebo nie, čo ich skóre, mohol by som vypísať sadu pseudokódu, ktorý generuje túto rovnakú funkciu. To znamená, že vzhľadom na to nejaký film M1, môžem nájsť najviac podobný film k nemu pomocou nasledujúceho pseudokódu. Domnievam sa, čo je najlepší bodovací systém, ktorý som našiel, najlepšie porovnanie, ktoré som našiel. Pre každý iný film Chystám sa prejsť, Budem nastaviť zápas skóre rovno 0. A ja pôjdem cez to film, čo M1, film Začal som sa, Pozriem každý rys že musíte vidieť či je zhoda. Ak existuje zhoda, budem zvýšiť zápas skóre. A ak sa na konci zápas skóre, ktoré Som je lepší ako súčasný najlepší skóre, potom budem nezabudnite, že najlepšie skóre, a to je to najlepší zápas, ktorý mám. Na konci, bez ohľadu na film sedí v najlepšom zápase, to je najbližší Bol som schopný prísť. Tak to obsah na báze filtračné systémy, všetky majú základnú štruktúru. Oni sa spoliehajú na položku v pochybnosť a nič o niektorý z užívateľských preferencií. Druhý mechanizmus, ktorý budeme používať vo s cieľom vybudovať odporúčanie systémy sa nazýva spolupracovní filtrovanie. Spolupracovní filtrovanie spolieha na nie vlastnosti samotného objektu, ale ako sa ľudia, ostatné Užívatelia, že je, ako som reagoval na tieto rovnaké objekty. Takže pokračovať vo svojom príklade filmu, Mohol by som mať veľa mojich priateľov a prieskum je o tom, či Niet sa im páčilo jednotlivé filmy. Teraz rôzne miesta budú vytvárať tieto dáta rôznymi spôsobmi. Môžete priamo prieskumu svoj Užívatelia, alebo môžete jednoducho vidieť, čo si vybrať, či ste, napríklad Netflix. Aké filmy sa im pozerať? Mohol by som spochybniť niektoré z mojich priateľov a zistiť, že Jason páčil každý film videl, tam nie je prekvapujúce. Andy len rád prisluhovačov a tetou Man. Sarah rada Inside Out a Pomstitelia, opak Andy. A Sam, dobre, Sam rád všetky superhrdinu filmov, ale žiadny z animovaných filmov. Mohol by som potom dotaz pre niektoré nové jednotlivec, nejaký iný užívateľ, ako som ja a opýtať sa, dobre, ak sa mi páčilo jeden z týchto filmov, môžete robiť predpoveď o ktoré ďalšie filmy by som mohol páčiť. To znamená, že keď som Inside páčil Out, ktoré ďalšie filmy mám pravdepodobné, že tiež chcú vidieť na základe toho, čo ľudia robili podobné? To znamená, že pôjdem cez Budem filtrovať cez tento zoznam a nájsť len jednotlivci, ktorí sa tiež páčilo Naruby, ktorý uzavreté predvoľby. No, to znamená, že Andy a Sam sa im nepáčilo, Inside Out, takže nebudem skúmať ich. Chystám sa zbaviť svojich Údaje pre toto porovnanie. Potom som sa pozrieť na to, čo Jason a Sarah si myslel, a zhodujú up, ktorý z filmov, ktoré oni videli že som to neurobil, či sa im páčilo alebo nie. Mohol by som jednoducho počítať, povedzme hlasov. Takže prisluhovači, napríklad môže mať jeden pre neho hlasovať, pretože Jason to páčilo. Obaja Jason a Sarah rada Avengers, tak to bude mať dva hlasy. A iba Jason páčilo Ant Man, tak to by si jeden hlas. Takže ak by som mal do tej doby odporučiť pre seba, ktoré z týchto filmov Mohol by som byť s najväčšou pravdepodobnosťou sledovať, by som si vybrať Age of ULTRON: Avengers. Takže pre niektorý z nich Systémy, teraz som pomocou Dáta, ktoré boli generovaná nie o Film sám o sebe, ale o preferenciách od ostatných užívateľov. To má určité ťažkosti samozrejme. Čo keď nemáte žiadne iné užívateľa? No, to sa hovorí spustenie problém. Musíte mať niektoré Množstvo dát, než ste mohli začať robiť tieto odporúčania. Odvrátenou stranou je to opäť začnete zberu dát, ak môžete zbierať viac a ďalšie a ďalšie údaje, budete mať lepšie a lepšie a lepšie odporúčanie. Teraz by sme mohli preložiť toto do kódu tiež. Môžeme definovať iný druh štruktúry, V tomto prípade budeme hovoriť užívateľ. A je to tu o funkcie aké filmy tento užívateľ páčilo. Páčilo sa im páči naruby, Prisluhovači, pomstitelia a Ant Man. Mohli by sme potom generovať niektorí pseudokód nasledovať rovnaký postup, ktorý som použil predtým. To znamená, že pri určitom Užívateľ x, poďme odporučiť film že x mohlo páčiť. Môžeme prejsť a pre všetky filmy, môžeme inicializovať skóre Pre ten film bude 0. A potom môžeme nájsť všetko, z ostatných užívateľov, ktorí majú rovnaké preferencie ako x. A potom za každých film, ktorý sa im páči, budeme zvyšovať skóre tohto filmu. Bez ohľadu na film v koniec má najvyššie skóre, to je ten, čo som mala odporučiť. Nič z toho je naozaj obskurní. Nič z toho, je náročné. To všetko sú základné algoritmy že by ste mohli realizovať dnes. Teraz s reálnymi odporúčacieho systémami, sa dostanete do nejakej problémy. Čo keď tam nikto, kto zodpovedá presne vaše preferencie? Čo keď tam sú užívatelia, ktorí sú presne vaše preferencie, ale potom sa odchyľujú drasticky z toho, čo sa vám páči? Mám rád klasickú Godzilla filmy, ale moja žena nie je. Rád sa na ne pozerať, my Netflix účet obsahuje je. Jej to nie je. Čo sa stane, keď začneme miešanie dáta, ako je táto? To všetko sú výzvy že môžete prekonať, oni len sa mierne zložitejšie algoritmy. Teraz v reálnom svete, ktorý sú skutočne v prevádzke, používame filtrovanie obsahu, alebo na základe použijeme spolupracovní filtrovanie? A odpoveď je používame oba. Takmer všetky hlavné užívateľovi Tento prípad, Amazon, Facebook, Netflix, Pandora, že všetci používajú kombináciu Tieto rôzne odporúčania systémy. A keď sme kombinovať voľby z každý, im hovoríme hybridné systémy. Sú nejakým spôsobom závisieť na vlastnosti samotného objektu, av niektorých ohľadoch sú závislé na preferencie iných užívateľov. Tieto hybridné systémy, oni sú veľký biznis, a oni sú to, čo je aktuálne aj dnes. Takže vďaka moc za mňa spájanie. Dúfam, že ste sa dostali trochu trochu pochopenie toho, čo robí tieto systémy pracujú. Nabudúce ste online, pamätajte, že a to nielen tie ovplyvňujú vaše voľby, ale potenciálne všetci ostatní to tiež. Ešte raz ďakujem.