[Muzika] BRAIN SCASSELLATI: Mirë se vini në seri CS50 UA. Emri im është Scass, dhe sot ne jemi duke shkuar për të folur në lidhje me sistemet rekomanduesi. Sistemet tani rekomanduesi tinguj lloj si një emër i rastësishëm. Kjo tingëllon si ndoshta kjo duhet të jetë sistemet rekomandim, dhe unë lloj të pajtohem me ju. Por këto janë sisteme që ndihmojnë zgjidhni nga gjëra të ngjashme kurdo ju zgjidhni diçka në internet. Netflix, për shembull, do të sugjerojë të tjera filma që ju mund të dëshironi të shihni. Ose Pandora do të sugjerojë ndryshme këngët që ju mund të dëshironi për të dëgjuar për të. Amazon do të sugjerojë se çfarë lloj të produkte të tjera që ju mund të dëshironi të blini. Facebook do të sugjerojë edhe disa miq të tjerë që ju mund të dëshironi të shtoni. Secili nga këto sisteme funksionojnë duke përdorur të njëjtin lloj themelor i algorithm, dhe kjo është ajo që ne jemi do të flasim për sot. Tani këto algoritme janë biznes çuditërisht i madh. Netflix disa vite më parë në 2009 ofroi një 1.000.000 $ çmimi nëse ju mund të përmirësojë tyre sistem rekomandim me vetëm 10%. Se 10%, edhe pse, përfaqëson një sasi të konsiderueshme të biznesit. Vlerësimet janë të vështirë për të ardhur nga, por shumë njerëz besojnë se këto rekomandim sistemet për një blerje online sistemi si Amazon çojë në diku ndërmjet 10% dhe 25% rritjen e të ardhurave. Kështu që ju mund të imagjinoni lloj i vëllimit që ju jeni duke folur për kur mendojmë për edhe këto algoritme pak. Pra, le të marrë disa shembuj. Si është e mundur që këto Sisteme të vërtetë punojnë? Ka dy themelore llojet e algoritme që janë në lojë kur flasim për Rekomandimet gjeneruese. Të parat janë quajtur përmbajtje filtrim bazuar. Dhe përmbajtjen filtrim bazuar mbështetet mbi ngjashmëritë në mes të artikujve vetë, që është në mes të dy filma ose dy këngë ose dy artikujt e blerë. Ne jemi duke shkuar për të përdorur filmat si një shembull, por kjo mund të aplikojë, me të vërtetë, për çdo lloj i objektit që ne jemi duke kërkuar për të. Pra, nëse unë mendoj për disa filma nga viti i kaluar, Unë pashë Inside Out me fëmijët e mi, ata e donin atë. Por ne gjithashtu kishte një zgjedhje. Ne mund të ketë shkuar për të parë Minions, ne mund të shihet Mosha e ULTRON, ose ne mund të kemi parë Njeriu Ant në teatro. Për ndonjë nga këto filma, ne mund të imagjinohet gjeneruar një listë të karakteristika ose Cilësitë për ato filma të ndryshëm. Kështu për shembull, unë mund të konsiderojnë cila prej këtyre filmave janë të animuar. E pra, të dyja Inside Out dhe Minions janë të animuar. As Mosha e ULTRON as Ant Njeriu janë filma të animuar. Dhe unë mund të imagjinohet ndërtesë up një strukturë, një tavolinë që listat secili prej këtyre pronave. A janë ata të animuar apo jo? Unë pastaj mund të shtoni më shumë Karakteristika në këtë tabelë duke shtuar më shumë rreshtave në këtë strukturë. Unë mund të pyes nëse janë apo jo ata janë filma Marvel. E pra, Inside Out dhe Minions nuk janë filma Marvel, Mosha e ULTRON dhe Ant njeriut me siguri janë. Dhe unë mund të kërkoj të gjitha llojet Cilësitë e ndryshme që kam kërkuar, të gjitha llojet e karakteristika të që mund të jetë e rëndësishme për mua. A kanë një zuzar super? E pra, nuk ka shejtan super në Inside Jashtë, por ato nuk janë në Minions dhe në, natyrisht, Dy filma Superhero. Unë mund të kërkoj gjëra të tilla si, mirë, ata kalojnë testin Bechdel? A ka dy quajtur personazhet femra që kalojnë disa sasi të konsiderueshme të Ora paturit e një bisedë që nuk përfshin burra në të hedhura? E pra, në këtë rast, Inside Out kalon testi, Minions dështon, Age of ULTRON kalon testin, dhe Ant Njeriu dështon. Çdo njëri nga këto karakteristika Unë mund të mendoj për si të rëndësishme për disa njerëz. Unë mund të kërkoj gjëra të tilla si janë ka ndonjë popull në këto filma që janë alumni nga le të themi, parqet dhe Rekreative, një nga shfaqjet e mia të preferuar. E pra, Inside Out ka Amy Poehler, kjo është një Alumni. Që ka rëndësi. Jon Hamm ishte në Minions. Paul Rudd ishte në Ant njeriut, por askush nuk në Epokën e ULTRON ishte në parqe dhe req gjithashtu. Kështu që unë mund të ndërtojë këtë listë të karakteristika, dhe ata mund të vërtetë të jetë çdo gjë në lidhje me filmat. Ato mund të jenë në lidhje me atë raport aspekt ata u pushkatuan në, ajo mund të jetë sa vende ata shitur në fundjavë e tyre hapjes. Çdo tipar që unë dua të gjenerojë unë mund të vënë në këtë tryezë. Tani, në këtë rast, unë kam ndërtuar të gjitha llojet e vlerave shufra ari ose argjendi, po ose jo, kalojë ose të dështojnë, por ato mund të jetë çdo gjë. Ato mund të jenë vlera arbitrare. Për përmbajtjen e bazuar filtrim, ajo që ne jemi duke shkuar për të bërë po ne do të marrin në konsideratë Dy kolonat në këtë tabelë dhe të shohim se sa të ngjashme janë ata. Kështu për shembull, në qoftë se unë shkoi për të parë Inside Out, Unë mund të pyes, çfarë janë filmat e tjerë që të mund të jenë të gatshëm për të shkuar të parë. Kjo është, ajo që i gatshëm të shpenzojnë paratë e mia për të shkuar të parë. Dhe unë mund të krahasoni këtë duke thjesht duke marrë dy kolona, ​​njëra nga Inside Out dhe njërin prej tyre në ndonjë nga filma të tjerë, dhe vetëm duke parë Sa nga tiparet e tyre ndeshjes. Pra, nëse unë krahasoj Inside Out me Minions, mirë, nuk ka tri gjëra këtu që përputhen. Ata janë të dy animuar, asnjëri prej tyre janë filma Marvel, dhe dy prej tyre kanë parqet dhe req alumni. Kështu që unë mund të llogarisë deri sa shumë ndeshje ka qenë, dhe në këtë rast nuk do të jetë tre. Nëse unë pastaj krahasoni Inside Out me le të themi Mosha e ULTRON, Unë mund të shikoni poshtë në listë dhe thonë, mirë, nuk ka vetëm një gjë që përputhet atje. Ata të dy kalojnë testin Bechtel, kështu që do të jetë një rezultat i një. Dhe në mes Inside Out dhe Man Ant, përsëri unë mund të krahasohen rresht pas rreshti sa gjëra të përputhen në mes të dy prej tyre. E pra, një e animuar, dikujt nuk. Një është një film Marvel, nuk është. Një mori një zuzar super, tjetri nuk. Një kalon Bechtel Testi, një dështon atë, por ata të dy kanë Parks dhe req alumni, kështu përsëri, ajo merr një rezultat të një. Pra, nëse unë po kërkoni për filma që ishin të ngjashme me Inside Out, Unë mund të shikoni për filmat që kanë rezultatin më të lartë në këtë përmbajtje Skema filtrim. Pra, në këtë rast, unë do ta konsideronte Minions të jetë më afër dhe më shumë ka të ngjarë të jetë diçka që unë do të shpenzojnë para për të parë se mosha e ULTRON apo njeriut Ant. Këto përmbajtje të bazuar Sistemet e filtrimit të mbështeten vetëm mbi pronat e filma, dhe kështu unë mund të ndërtojnë këto vetëm duke e ditur diçka në lidhje me produktet që unë kam. Unë mund të përdorin të gjitha llojet e karakteristika që unë do të doja, dhe unë mund të ndërtojnë më shumë karakteristika komplekse që përfshijnë provë më komplekse të një cilësie sa unë të shkojnë së bashku. Në fakt, unë edhe mund të shikoni këtë tabelë jo si një objekt statik, por më tepër si dimensione brenda një hapësirë ​​më të madhe shtetëror. Dhe unë mund të filloni duke folur për distancat mes filma të ndryshëm. Këto janë të gjitha gjërat që ne e dimë se si ata të bëjë duke përdorur llojet e strukturat e të dhënave që ne kemi parë tashmë në CS50. Kështu që unë mund të imagjinohet ndërtesë një strukturë e të dhënave për një film. Ka një struct që unë kam ndërtuar quajtur film, dhe ajo ka pesë hyra Boolean në të. A është e animuar, është një mrekulli film, e bën atë të ketë një zuzar super, e bën atë të kalojnë testin Bechdel, dhe janë atje Parqet dhe Rec alumni në të? Dhe secili prej tyre është një Struktura e të dhënave që unë mund të zënë për këtë film të veçantë. Pastaj llogaritin nëse dy filma janë të ngjashme ose jo, çfarë rezultati i tyre është, unë mund të shkruani nga një sërë pseudokod që gjeneron të njëjtin funksion. Kjo është, duke pasur parasysh disa film M1, unë mund të gjeni filmin më të ngjashëm me atë duke ndjekur pseudokod. Unë e konsideroj që është më e mirë sistemi që unë kam gjetur të shënuar, krahasimi më i mirë që unë kam gjetur. Për çdo film tjetër Unë jam duke shkuar për të shkuar nëpër, Unë do të të vendosur një rezultat ndeshje të barabartë me 0. Dhe unë do të shkoj nëpër atë Filmi, një M1, filmi Unë fillova me të, unë do të kontrolloni çdo tipar se ata duhet të shohin në qoftë se ka një ndeshje. Nëse ka një ndeshje, unë do ardhura rezultatin ndeshje. Dhe në qoftë se në fund rezultatin ndeshje që Unë kam është më i mirë se i tanishëm më i mirë të shënuar, atëherë unë do të mos harroni se rezultatin më të mirë, dhe kjo është ndeshja më e mirë që kam. Në fund, çfarëdo film është ulur në ndeshjen më të mirë, kjo është më e afërt Unë kam qenë në gjendje për të ardhur. Pra, këto përmbajtje të bazuar Sistemet e filtrimit, ata të gjithë kanë këtë strukturë bazike. Ata mbështeten mbi sendin në fjalë dhe asgjë nuk lidhje me ndonjë nga parapëlqimet e përdoruesit. Mekanizmi tjetër që ne i përdorim në urdhërojnë për të ndërtuar sistemet rekomanduese është quajtur filtrim bashkëpunuese. Filtrim bashkëpunuese mbështetet mbi jo cilësitë e objektit në vetvete, por se si njerëzit, të tjera Përdoruesit që është, se si ata kanë iu përgjigj këtyre objekteve të njëjta. Pra, për të vazhduar me shembullin tim film, Unë mund të marrë një bandë e miqtë e mi dhe studim e tyre në lidhje me nëse janë apo jo ata i pëlqente filmat veçanta. Tani vende të ndryshme do të gjenerojë këto të dhëna në mënyra të ndryshme. Ju mund të studim direkt tuaj përdoruesit, ose ju mund vetëm të shohim se çfarë ata zgjedhin nëse ju jeni, për shembull Netflix. Të cilat filma bëri ata të shikojnë? Unë mund të vënë në dyshim disa nga tim miqtë këtu dhe gjeni se Jason pëlqente çdo film ai pa, nuk është e habitshme atje. Andy vetëm i pëlqente Minions dhe hallë Man. Sarah pëlqyer brenda dhe jashtë dhe Avengers, e kundërta e Andy. Dhe Sam, mirë, Sam pëlqyer të gjitha filmat Superhero, por asnjë nga filmat e animuar. Unë pastaj mund të pyetjes për disa të reja individ, disa përdorues tjetër si veten dhe pyesin, mirë, në qoftë se unë i pëlqente njëra nga këto filmave, mund të bëni një parashikim për që filma unë mund të dëshironi tjetër. Kjo është, në qoftë se unë i pëlqente Brenda Jashtë, të cilat filma të tjerë jam shumë gjasa për të të duan të shohin bazuar në atë që bëri njerëzit të ngjashme? Kjo është, unë do të shkoj nëpër një Unë do të filtruar nëpër këtë listë dhe për të gjetur vetëm individët të cilët gjithashtu pëlqente Inside Out, i cili përputhet preferencat e mia. E pra, kjo do të thotë se Andy dhe Sam, ata nuk e pëlqen brenda dhe jashtë, kështu që unë nuk jam do të marrin në konsideratë ato. Unë jam duke shkuar për të hequr qafe të tyre të dhënat për këtë krahasim. Unë pastaj mund të shikoni në çfarë Jason dhe Sara mendoi dhe grup up që nga filmat që ata panë që nuk e kam, nëse ata i pëlqente ato apo jo. Unë mund vetëm të numëroj deri, le të themi vota. Pra Minions, për shembull, mund të ketë një të tillë votojnë për të, sepse Jason liked it. Të dy Jason dhe Sara pëlqente Avengers, kështu që do të ketë dy vota. Dhe vetëm Jason pëlqente Ant Man, kështu ajo do të marrë një votë. Pra, nëse unë kam për të pastaj të të rekomandojë për veten se cili prej këtyre filmave Unë mund të jetë më shumë gjasa për të parë, unë do të duhet të zgjedhin Mosha e ULTRON: Avengers. Pra, për ndonjë nga këto sistemet, tani unë jam duke përdorur të dhëna që nuk ishte gjeneruar rreth Vetë film, por në lidhje me preferencat nga përdorues të tjerë. Kjo ka disa vështirësi natyrisht. Çfarë ndodh nëse ju nuk keni ndonjë përdorues tjetër? E pra, kjo quhet problemi fillimin. Ju duhet të keni disa Sasia e të dhënave para se ju jeni në gjendje të fillojnë duke e bërë Këto rekomandime. Anë rrokullisje e saj është herë ju filloni mbledhjen e të dhënave, në qoftë se ju mund të mbledhë më shumë dhe të dhënat e më shumë, ju do të merrni më të mirë dhe më të mirë dhe rekomandimet më të mira. Tani ne mund të përkthehet kjo në kod si edhe. Ne mund të përcaktojë një tjetër lloj strukture, në këtë rast ne do të thërrasë atë një përdorues. Dhe atë e mori karakteristika për që Filma ky përdorues pëlqente. A u pëlqen Inside Out, Minions, Avengers, dhe Ant Man. Ne pastaj mund të gjenerojnë disa pseudokod për të ndjekur e njëjta procedurë që kam përdorur më parë. Kjo është, dhënë një të veçantë përdorues x, le të të rekomandojë një film se x mund të donte. Ne mund të shkoni nëpër dhe për të gjithë filmat, ne mund të iniciojnë një rezultat për këtë film të jetë 0. Dhe pastaj ne mund të gjeni të gjitha e përdoruesve të tjerë të cilët kanë të njëjtat preferenca si x. Dhe pastaj për çdo film që ata i pëlqente, ne do të rrisim rezultatin e atij filmi. Cilado film në fund ka rezultatin më të lartë, kjo është një unë duhet të rekomandojë. Asnjë nga këto nuk është me të vërtetë i panjohur. Asnjë nga këto nuk është sfiduese. Këto janë të gjitha algoritmet themelore që ju të mund të zbatojë sot. Tani me sisteme rekomanduesi vërtetë, keni drejtuar në disa probleme. Çfarë nëse nuk ka askush që përputhet saktësisht preferencat tuaja? Çfarë nëse ka përdorues të cilët Janë pikërisht preferencat tuaja, por pastaj devijojnë në mënyrë drastike nga ajo që ju pëlqen? Më pëlqen klasik Godzilla filma, por gruaja ime nuk e bën. Më pëlqen të shikojnë ata, im Llogaria Netflix përmban ato. Saj nuk ka. Çfarë ndodh kur ne fillojmë përzierjen e të dhënave si kjo? Këto janë të gjitha sfidat që ju mund të kapërcejë, ata vetëm të marrë pak algoritme më komplekse. Tani në botën e vërtetë, e cila janë në të vërtetë funksionale, nuk kemi përdorni përmbajtje filtrim në bazë ose nuk kemi përdorim filtrim bashkëpunuese? Dhe përgjigja është ne përdorim dy prej tyre. Pothuajse të gjithë e përdoruesve të mëdha në ky rast, Amazon, Facebook, Netflix, Pandora, ata të gjithë përdorin një kombinim të këto sisteme të ndryshme rekomandim. Dhe kur kombinohen zgjedhje nga secili, ne i quajmë ato sisteme hibride. Ata në një farë mënyre varet nga tiparet e objektit në vetvete, dhe në disa mënyra ata varen nga preferencat e përdoruesve të tjerë. Këto sisteme hibride, ata janë një biznes i madh, dhe ata janë çfarë është aktuale sot. Pra, Faleminderit shumë për t'u bashkuar me mua. Unë shpresoj se ju keni marrë pak pak e një kuptim të asaj i bën këto sisteme punë. Herën tjetër ju jeni online, mos harroni se jo vetëm ju ndikuar zgjedhjet tuaja, por potencialisht të gjithë të tjerët si. Faleminderit perseri.