[MUSIC nagpe-play] BRAIN SCASSELLATI: Welcome sa mga serye CS50 AI. Ang pangalan ko ay Scass, at ngayon kami ay pagpunta makipag-usap tungkol recommender systems. Ngayon recommender tunog systems tulad ng uri ng isang kakaibang pangalan. Ito tunog tulad marahil ito ay dapat na maging rekomendasyon sistema, at ako uri ng sumasang-ayon sa iyo. Ngunit ito ay ang sistema na makakatulong sa piliin ang mga katulad na mga bagay-bagay sa tuwing pumili ka ng isang bagay na online. Netflix, halimbawa ay magmumungkahi ng iba pang mga pelikula na baka gusto mong panoorin. O Pandora ay magmumungkahi ng iba't ibang kanta na maaaring gusto mong makinig sa. Amazon ay magmumungkahi ano ang mga uri ng iba pang mga produkto na maaaring gusto mong bumili. Facebook ay kahit na iminumungkahi ang ilan sa mga iba pang mga kaibigan na maaaring gusto mong idagdag. Bawat isa sa mga sistema ay tumatakbo na gumagamit ang parehong mga pangunahing uri ng mga algorithm, at iyon ang hindi namin pagpunta sa makipag-usap tungkol sa ngayon. Ngayon ang mga algorithm ay nakakagulat malaking negosyo. Netflix ng ilang taon na ang nakakaraan sa 2009 inalok ng $ 1 milyon prize kung maaari mong pagbutihin ang kanilang rekomendasyon ng sistema sa pamamagitan lamang ng 10%. Iyon 10%, bagaman, ay kumakatawan sa isang malaking halaga ng negosyo. Ang mga pagtatantiya ay mahirap dumating sa pamamagitan ng, ngunit maraming mga tao naniniwala na ang mga rekomendasyon sistema para sa isang online na pagbili system tulad ng Amazon lead sa tabi-tabi sa pagitan ng 10% at 25% mas mataas na kita. Kaya maaari mong isipin ang uri ng lakas ng tunog na ikaw ay pakikipag-usap tungkol sa kapag sa tingin namin tungkol kahit na ang mga maliit na mga algorithm. Kaya sabihin makakuha ng ilang mga halimbawa. Paano ay ito na ang mga sistema na talagang gumagana? May dalawang pangunahing uri ng mga algorithm na ay sa play sa usaping pagbuo ng mga rekomendasyon. Ang unang iyan ay tinatawag na based filter ng nilalaman. At sa pag-filter ng nilalaman na batay nakasalalay sa pagkakatulad sa pagitan ng mga item kanilang sarili, na nasa pagitan ng dalawang mga pelikula o dalawang kanta o dalawang mga bagay na binili. Kami ay pagpunta sa gamitin ang pelikula bilang isang halimbawa, ngunit ito maaaring mag-aplay, talaga, sa anumang uri ng object na kami ay naghahanap para sa. Kaya kung sa tingin ko ang tungkol sa ilang mga pelikula mula sa nakaraang taon, Nakita ko ang Inside Out sa ang mga anak ko, mga mahal nila ito. Ngunit nagkaroon din kami ng isang pagpipilian. Kami ay maaaring may nawala upang makita Minions, kami ay maaaring tumingin sa Edad ng Ultron, o maaari naming tumingin sa Ant Man sa mga sinehan. Para sa alinman sa mga ito mga pelikula, maaari naming isipin pagbuo ng isang listahan ng mga tampok o katangian ang tungkol sa mga iba't ibang mga pelikula. Kaya halimbawa, kaya kong isaalang-alang kung alin sa mga pelikula ay animated. Well, parehong Inside Out at Minions ay animated. Wala alinman sa Edad ng Ultron ni Ant Man mga animated movies. At ako ay maaaring magpalagay na gusali up ng isang istraktura, ang isang talahanayan na Inililista bawat isa sa mga katangian. Sigurado sila animated o hindi? Maaari ako pagkatapos magdagdag ng higit pa mga tampok sa talahanayan na ito sa pamamagitan ng pagdaragdag ng mas maraming mga hilera sa structure na ito. Maaari kong tanungin kung o hindi ang mga ito ay mga pelikula milagro. Well, Inside Out at Minions hindi movies milagro, Edad ng Ultron at Ant Man tiyak. At ako ay maaaring humingi ng anumang uri ng iba't ibang mga katangian na nais ko, ang anumang mga uri ng mga tampok na maaaring mahalaga sa akin. Sila ay may isang super kontrabida ba? Well, walang super kontrabida sa Inside Out, ngunit may mga bago sa Minions at sa, malinaw naman, ang dalawang superhero movies. Maaari ko ring magtanong ng mga bagay tulad ng, well, gawin nila pumasa sa pagsubok Bechdel? Sigurado pinangalanan mayroong dalawang female character na gumastos ng ilang makabuluhang halaga ng oras sa pagkakaroon ng isang pag-uusap na ay hindi kasangkot sa mga lalaki sa cast? Well, sa kasong ito, magbabalik Inside Out ang mga pagsubok, nabigo Minions, Age of Ultron pumasa sa pagsubok, at nabigo Ant Man. Anumang isa sa mga tampok na ito Kaya kong isipin ang tungkol sa bilang mahalaga para sa ilang mga tao. Maaari ko ring magtanong ng mga bagay tulad ng mga Mayroon bang anumang mga tao sa mga pelikula na mga alumni mula sabihin natin, Parke at Libangan, ang isa sa aking mga paboritong palabas. Well, Inside Out may Amy Poehler, na ang isang Alumni. Iyon ang binibilang. Jon Hamm ay sa Minions. Paul Rudd ay sa Ant Man, ngunit walang isa sa Edad ng Ultron ay sa Parke at Req din. Kaya ang maaari kong bumuo ng up ang listahan ng mga mga tampok, at maaaring sila ay talagang maging anumang bagay tungkol sa mga movies. Sila ay maaaring maging tungkol sa kung ano aspect ratio sila ay pagbaril sa, maaaring ito ay kung gaano karaming mga upuan nila ibinebenta sa kanilang opening weekend. Anumang mga tampok na gusto kong bumuo ang maaari kong ilagay sa talahanayan na ito. Ngayon, sa kasong ito, na binuo ko lahat ng uri ng Bullion halaga, oo o hindi, pumasa o mabibigo, ngunit maaaring sila ay kahit ano. Sila ay maaaring maging di-makatwirang halaga. Para sa pag-filter ng nilalaman na batay, kung ano ang namin ang pagpunta sa gawin ay kami ay pagpunta upang isaalang-alang dalawang mga hanay sa talahanayan na ito at makita kung gaano magkakatulad ang mga ito. Kaya halimbawa, kung ako nagpunta upang makita Inside Out, Baka ako tanungin, ano ang ibang mga pelikula na baka ako ay handa upang pumunta makita. Iyon ay, kung ano ang handang gastusin ang aking pera upang pumunta makita. At maaari ko bang ihambing ito sa pamamagitan ng pagkuha lamang ang dalawang mga haligi, isa mula sa Inside Out at isa mula sa alinman sa mga iba pang mga pelikula, at lamang ang nakakakita kung ilan sa kanilang mga tugma tampok. Kaya kung ihahambing ko ang Inside Out may Minions, well, may tatlong bagay dito na tumutugma. Sila ay parehong animated, alinman sa mga ito mga pelikula milagro, at pareho ng mga ito Mayroon Parks at Req alumni. Kaya maaari kong bilangin up kung paano maraming mga tugma mayroong, at sa kasong ito may gusto maging tatlo. Kung pagkatapos ay i-kumpara Inside Out may sabihin natin Edad ng Ultron, Maaari ko bang tingnan ang listahan at sabihin mo, well, may lamang ng isang bagay na tumutugma doon. Sila ay parehong pumasa sa pagsubok Bechtel, kaya na ay magiging isang puntos ng isa. At sa pagitan Inside Out at Ant Man, muli kong maaaring ihambing bawat linya nito kung gaano karaming mga bagay na tumugma sa pagitan ng dalawa sa kanila. Well, isa ay animated, ang isa ay hindi. One ay isang milagro movie, isa ay hindi. Nakakuha One ng isang sobrang kontrabida, ang iba pang ay hindi. One magbabalik ang Bechtel test, nabigo ang isa sa mga ito, ngunit sila ay parehong may mga Parke at Req alumni, kaya muli, ito ay makakakuha ng isang marka ng isa. Kaya kung ako ay naghahanap para sa mga pelikula na katulad ng sa Inside Out, Kaya kong tumingin para sa mga pelikula na mayroon ang pinakamataas na iskor sa loob ng nilalaman scheme filtering. Kaya sa kasong ito, ako isaalang-alang ang Minions upang maging mas malapit at mas malamang na maging isang bagay na ako ay gumastos ng pera upang makita sa Edad ng Ultron o Ant Man. Based Ang mga nilalaman filtering systems lamang umaasa sa mga katangian ng mga pelikula, at sa gayon ako maaaring bumuo ng mga pamamagitan lamang ng karunungan isang bagay tungkol sa mga produkto na mayroon akong. Maaari ko bang gamitin ang anumang uri ng mga tampok na gusto ko, at maaari ba akong bumuo ng higit pa kumplikadong mga tampok na magdawit ng mas kumplikadong mga test ng isang kalidad na pumunta ako kasama. Sa katunayan, maaaring kahit ko bang tingnan ang talahanayan na ito hindi bilang isang static na bagay, ngunit sa halip na rin ang pagiging sukat sa loob ng isang mas malaking espasyo ng estado. At maaari ko bang simulan ang pakikipag-usap tungkol sa distansya sa pagitan ng iba't ibang movies. Ito ang lahat ng mga bagay-bagay na alam namin kung paano sila gawin gamit ang mga uri ng istruktura ng data na kami ay nakita ko na sa CS50. Kaya maaari kong isipin na gusali isang istraktura ng data para sa isang pelikula. May isang struct na ko itinayo tinatawag movie, at ito ay may limang Boolean entries sa loob nito. Ay animated ito, ito ay isang milagro pelikula, ang magkaroon ng isang super kontrabida, ay ito pumasa sa pagsubok Bechdel, at ang naroon Parks at Rec alumni sa loob nito? At bawat isa sa mga ito ay isang istraktura ng data na ako maaaring sumakop para sa partikular na pelikula. Pagkatapos compute kung dalawang pelikula ay katulad o hindi, ano ang kanilang mga iskor ay, maaari ko isulat ang isang hanay ng mga pseudocode na bumubuo na parehong function. Iyon ay, na ibinigay ng ilang pelikula M1, maaari ko hanapin ang pinaka-katulad na movie na ito pamamagitan ng pagsunod sa pseudocode. Isaalang-alang ko na kung saan ay ang pinakamahusay na pagmamarka ng sistema na na nahanap ko, ang pinakamahusay na mga paghahambing na nalaman ko. Para sa lahat ng iba pang movie Pupunta ako sa pumunta sa pamamagitan ng, Kukunin ko i-set ang isang marka match katumbas ng 0. At kukunin ko na pumunta sa pamamagitan ng na movie, isang M1, ang pelikula Ako makapagsimula sa, kukunin ko na suriin ang bawat isa at ang bawat tampok na mayroon sila upang makita ang kung may isang match. Kung mayroong isang pares, kukunin ko paglakas ng pagtutugma ng kalidad. At kung sa tapusin ang tumugma sa iskor na Ako ay mas mahusay kaysa sa mga kasalukuyang pinakamahusay na puntos, at pagkatapos ay makikita ko ang tandaan na ang pinakamahusay na iskor, at ito ay ang pinakamahusay na tugma na mayroon ako. Sa katapusan, kahit anong movie ay nakaupo sa pinakamahusay na tugma, iyon ang pinakamalapit Napuntahan ko na dumating. Kaya batay sa mga nilalaman filtering systems, lahat sila ay may mga ito ng pangunahing istraktura. Sila ay umaasa sa mga item na pinag-uusapan at wala tungkol sa alinman sa mga kagustuhan ng gumagamit. Ang iba pang mga mekanismo na ginagamit namin sa order upang bumuo ng rekomendasyon sistema ay tinatawag collaborative filtering. Tulungang filtering ay nakasalalay sa hindi ang mga katangian ng bagay mismo, ngunit kung paano ang mga tao, ang ibang mga gumagamit na ay, kung paano sila Na tumugon sa mga parehong bagay. Kaya upang magpatuloy sa aking mga halimbawa ng pelikula, Maaari ako kumuha ng isang bungkos ng mga kaibigan ko at survey ang mga ito tungkol sa kung o Hindi nagustuhan nila partikular na mga pelikula. Ngayon iba't-ibang lugar ay bubuo ng ang data na ito sa iba't ibang paraan. Maaari kang direktang survey na ang iyong gumagamit, o maaari mo lamang makita kung ano ang pinili nila kung ikaw ay, halimbawa Netflix. Aling mga pelikula ay nilang panoorin? Maaaring tanong ko ang ilan sa aking mga mga kaibigan dito at alamin kung na nagustuhan Jason ang bawat pelikula Nakita niya, hindi nakakagulat doon. Lamang nagustuhan Andy Minions at tiyahin Man. Nagustuhan Sarah Inside Out at Avengers, ang kabaligtaran ng Andy. At Sam, well, Sam nagustuhan sa lahat ng mga superhero movies, ngunit wala sa mga animated movies. Maaari ko pagkatapos ay sa query para sa ilang bagong indibidwal na, ang ilang mga iba pang mga user tulad ng aking sarili at tanungin, well, kung nagustuhan ko isa sa mga movies, maaari kang gumawa ng isang hula tungkol sa kung saan ang ibang mga pelikula na maaaring magustuhan ko. Iyon ay, kung nagustuhan ko Inside Out, kung saan ang ibang mga pelikula malamang kong ring nais na makita ako batay sa kung ano ang ginawa katulad na mga tao? Iyon ay, kukunin ko na pumunta sa pamamagitan ng isang Kukunin ko i-filter sa pamamagitan ng listahang ito at hanapin lamang ang mga indibidwal na din nagustuhan Baligtad, na tumugma sa aking mga kagustuhan. Well, na nangangahulugan na ang Andy at Sam, hindi nila gusto Inside Out, kaya hindi ako pagpunta sa isaalang-alang ang mga ito. Pupunta ako sa mapupuksa ang kanilang mga data para sa paghahambing na ito. Maaari kong pagkatapos ay tingnan kung ano ang Jason at naisip Sarah at tally up na ng pelikula na nakita nila na ako ay hindi, kung nagustuhan nila ang mga ito o hindi. Kaya kong bilangin lang up, sabihin natin na boto. Kaya Minions, halimbawa ay maaaring magkaroon ng isa bumoto para sa mga ito, dahil nagustuhan ito Jason. Nagustuhan Parehong Jason at Sarah Avengers, kaya ito ay may dalawang mga boto. At lamang nagustuhan Jason Ant Man, kaya ito ay makakuha ng isang boto. Kaya kung ako ay upang pagkatapos ay pinapayo para sa aking sarili kung alin sa mga pelikula Ito ay maaaring maging pinaka-malamang na panoorin ko, nais ko kung piliin ang Edad ng Ultron: Avengers. Kaya para sa alinman sa mga ito systems, ngayon gumagamit ako ng data na nabuo hindi tungkol sa mga movie mismo, ngunit tungkol sa mga kagustuhan mula sa iba pang mga gumagamit. Na ito ay may ilang mga problema ng mga kurso. Paano kung hindi ka magkaroon ng anumang iba pang mga gumagamit? Well, na tinatawag na startup problema. Mayroon kang magkaroon ng ilang mga dami ng data nang hindi ka pa magagawang upang simulan ang paggawa ang mga rekomendasyon. Ang kasalungat ng ito ay isang beses simulan mo sa pagkolekta ng data, kung maaari mong mangolekta ng higit pang at higit pa at mas maraming data, makakakuha ka ng mas mahusay at mas mahusay na at mas mahusay na mga rekomendasyon. Ngayon kami ay maaaring isalin ito sa code pati na rin. Maaari naming tukuyin ang isang iba't ibang mga uri ng istraktura, sa kasong ito makikita ang tawag namin ito ng isang user. At ito ay nakuha ng mga tampok tungkol sa kung aling mga pelikula nagustuhan ang user na ito. Gusto ba nila Inside Out, Minions, Avengers, at Ant Man. Maaari naming pagkatapos ay bumuo ng ilang pseudocode upang sundin ang parehong pamamaraan na ginamit ko dati. Iyon ay, na ibinigay ng isang partikular na user x, inirerekumenda ng isang movie ipaalam Maaaring gusto na x. Maaari naming pumunta sa pamamagitan at para sa lahat ng mga movies, maaari naming initialize ang isang marka para sa pelikula na 0. At pagkatapos ay maaari mahanap namin ang lahat ng ng iba pang mga gumagamit na magkakaroon ng parehong mga kagustuhan bilang x. At pagkatapos ay para sa bawat pelikula na nagustuhan nila, ipapakita namin pagdami ang mga marka ng na movie. Alinmang movie sa end ay ang pinakamataas na iskor, na ang isa ay dapat ko inirerekumenda. Wala sa mga ito ay talagang nakatago. Wala sa mga ito ay mahirap na. Ito ang lahat ng mga pangunahing mga algorithm na maaari mong ipatupad ngayon. Ngayon na may real recommender systems, tumakbo ka sa ilang mga problema. Paano kung may walang tao na tumutugma nang eksakto sa iyong mga kagustuhan? Paano kung may mga gumagamit na ay eksakto ang iyong mga kagustuhan, ngunit pagkatapos ay mag-iba ng husto mula sa kung ano ang gusto mo? Gusto ko classic Godzilla mga pelikula, ngunit ang aking asawa ay hindi. Gusto ko na panoorin ang mga ito, ang aking Netflix account ay naglalaman ng mga ito. Ang kanyang ay hindi. Ano ang mangyayari kapag binuksan namin paghahalo ng data tulad nito? Ito ang lahat ng mga hamon na maaari mong pagtagumpayan, tumagal lamang sila ng bahagyang mas kumplikadong mga algorithm. Ngayon sa tunay na mundo, na kung saan mga tunay na pagpapatakbo, gumagamit kami ng pag-filter batay sa nilalaman o tayo gumagamit collaborative filtering? At ang sagot ay na ginagamit namin ang dalawang iyan. Halos lahat ng mga pangunahing mga gumagamit sa kasong ito, Amazon, Facebook, Netflix, Pandora, lahat sila ay gumamit ng isang kumbinasyon ng mga mga iba't ibang mga rekomendasyon ng mga sistema. At kapag pinagsama natin ang mga pagpipilian mula sa ang bawat isa, ang tawag namin sa mga ito systems hybrid. Sila sa ilang mga paraan depende sa mga mga katangian ng mga bagay sa sarili, at sa ilang mga paraan depende sila sa ang mga kagustuhan ng iba pang mga gumagamit. Ang mga hybrid system, ang mga ito ay malaking negosyo, at ang mga ito kung ano ang kasalukuyang araw na ito. Kaya salamat talaga sa pagsama sa akin. Umaasa ako na iyong nakuha ng isang maliit na bit ng isang pag-unawa sa kung ano ang gumagawa ng mga sistema ng trabaho. Susunod na oras na ikaw ay online, tandaan na hindi lamang sa iyo pag-impluwensya sa iyong mga pagpipilian, ngunit potensyal na ang iba ay pati na rin. Salamat ulit.