[Music kucheza] Ubongo SCASSELLATI: Karibu kwa CS50 ai mfululizo. Jina langu ni Scass, na leo tunakwenda kuzungumzia mifumo MKUBALIAJI. Mifumo sasa MKUBALIAJI sauti kama aina ya jina isiyo ya kawaida. Inaonekana kama labda ni lazima kuwa mifumo mapendekezo, na mimi aina ya kukubaliana na wewe. Lakini haya ni mifumo ya kwamba msaada kuchagua nje mambo sawa wakati wowote kuchagua kitu online. Netflix, kwa mfano kupendekeza mengine sinema ambayo unaweza kutaka kuangalia. Au Pandora kupendekeza mbalimbali nyimbo ambazo unaweza kutaka kusikiliza. Amazon mapenzi zinaonyesha ni aina gani ya bidhaa nyingine unaweza kutaka kununua. Facebook hata kupendekeza baadhi ya marafiki wengine kwamba unaweza kutaka kuongeza. Kila moja ya mifumo hii hufanya kazi kwa kutumia sawa aina ya msingi ya algorithm, na hilo ndilo tuko kwenda kuzungumza kuhusu leo. Sasa algorithms hizi ni biashara ya kushangaza kubwa. Netflix miaka michache iliyopita katika 2009 inapatikana $ 1 milioni tuzo kama unaweza kuboresha zao mapendekezo ya mfumo na% 10 tu. Hiyo 10%, ingawa, inawakilisha kiasi kikubwa cha biashara. Makadirio ni vigumu kuja na, lakini watu wengi kuamini kwamba mapendekezo hayo mifumo ya ununuzi online mfumo kama Amazon kusababisha mahali fulani kati ya 10% na 25% ongezeko la mapato. Hivyo unaweza kufikiria aina ya kiasi kwamba wewe ni kuzungumza juu wakati sisi kufikiri juu hata hawa algorithms kidogo. Basi hebu kupata baadhi ya mifano. Jinsi ni kwamba hawa mifumo kweli kazi? Kuna mambo mawili ya msingi aina ya algorithms kwamba ni katika kucheza wakati sisi majadiliano juu kuzalisha mapendekezo. Ndio kwanza zinaitwa maudhui ya msingi ya kuchuja. Na maudhui ya msingi ya kuchuja hutegemea juu ya kufanana kati ya vitu wenyewe, kwamba ni kati ya sinema mbili au nyimbo mbili au vitu viwili kununuliwa. Tunakwenda kutumia sinema kama mfano, lakini hii inaweza kuomba, kwa kweli, kwa aina yoyote ya kupinga kwamba sisi ni kuangalia kwa. Hivyo kama nadhani kuhusu baadhi sinema kuanzia mwaka jana, Niliona Ndani Kati na watoto wangu, wao kupendwa hivyo. Lakini pia alikuwa na uchaguzi. Sisi inaweza kuwa wamekwenda kuona marafiki, tunaweza kuona Umri wa Ultron, au sisi inaweza kuwa na kuonekana Ant Man katika sinema. Kwa kimojawapo cha vitu hivi sinema, tunaweza kufikiria kuzalisha orodha ya makala au sifa kuhusu sinema wale mbalimbali. Hivyo kwa mfano, mimi naweza kufikiria yupi kati ya sinema wale ni animated. Naam, wote Kati Ndani na marafiki ni animated. Wala Umri wa Ultron wala Ant Man ni sinema animated. Na mimi naweza kufikiria jengo up muundo, meza kwamba unaorodhesha kila mmoja mali hizi. Je, wao ni animated au la? Mimi naweza kisha kuongeza zaidi makala ya meza hii kwa kuongeza safu zaidi katika muundo huu. Mimi naweza kuuliza kama au wao siyo sinema ajabu. Naam, Inside Out na marafiki si sinema ajabu, Umri wa Ultron na Ant Man hakika ni. Na mimi naweza kuuliza aina yoyote sifa ya tofauti kuwa nilitaka, aina yoyote ya makala hiyo inaweza kuwa ni muhimu kwangu. Je, wana villain super? Naam, hakuna villain super katika Ndani Nje, lakini kuna wale katika Marafiki na katika, ni wazi, mbili superhero sinema. Mimi naweza pia kuuliza mambo kama, vizuri, gani wao kupita mtihani Bechdel? Je, kuna wawili aitwaye wahusika wa kike ambao kutumia baadhi kiasi kikubwa cha wakati kuwa na mazungumzo kwamba haina kuhusisha wanaume katika kutupwa? Naam, katika kesi hii, Inside Out hupita mtihani, Marafiki inashindwa, Umri wa Ultron hupita mtihani, na Ant Man inashindwa. Mtu yeyote wa makala haya Mimi naweza kufikiria kuhusu kuwa ni muhimu kwa baadhi ya watu. Mimi naweza pia kuuliza mambo kama ni kuna watu wowote katika sinema hizi kwamba ni Mbegu kutoka hebu sema, Viwanja vya na Burudani, moja ya maonyesho favorite. Naam, Inside Out ina Amy Poehler, hiyo ni Alumni. Kwamba makosa. Jon Hamm alikuwa katika marafiki. Paul Rudd alikuwa katika Ant Man, lakini hakuna mtu katika Umri wa Ultron alikuwa katika Mbuga na Req vilevile. Hivyo siwezi kujenga orodha hii ya makala, lakini hawakuweza kweli kuwa kitu chochote kuhusu sinema. Wao wanaweza kuwa juu ya nini kipengele uwiano wao walipigwa risasi katika, inaweza kuwa jinsi viti wengi wao kuuzwa katika ufunguzi mwishoni mwa wiki zao. Kipengele yoyote ambayo nataka kuzalisha siwezi kuweka katika meza hii. Sasa, katika kesi hii, nimekuwa kujengwa kila aina ya maadili Bullion, ndiyo au hapana, kupita au kushindwa, lakini hawakuweza kuwa kitu chochote. Wao wanaweza kuwa maadili holela. Kwa maudhui ya msingi ya kuchuja, nini tunakwenda kufanya ni tunakwenda kufikiria nguzo mbili katika meza hii na kuona ni jinsi sawa walipo. Hivyo kwa mfano, kama mimi alikwenda kumuona Ndani Kati, Mimi kuuliza, ni nini sinema nyingine ili nipate kuwa tayari kwenda kuona. Hiyo ni, nini tayari kutumia fedha yangu kwenda kuona. Na siwezi kulinganisha hii kwa kuchukua tu nguzo mbili, moja kutoka Inside Out na moja kutoka yoyote ya sinema nyingine, na kuona tu ni wangapi kati yao makala ya mechi. Hivyo kama mimi kulinganisha Ndani Kati pamoja Marafiki, vizuri, kuna mambo matatu hapa kwamba mechi hiyo. Wao ni wote animated, wala wao ni sinema ajabu, na wote wawili na Mbuga na Req Mbegu. Ili niweze kuhesabu hadi jinsi mechi nyingi kulikuwa na, na katika kesi hii kutakuwepo na tatu. Kama mimi kisha kulinganisha Ndani Kati na hebu sema Umri wa Ultron, Siwezi kuangalia chini orodha na kusema, vizuri, kuna jambo moja tu kwamba mechi huko. Wote wawili kupita mtihani Bechtel, hivyo kwamba kinaendelea kuwa alama ya moja. Na kati ya Ndani Kati na Ant Man, tena mimi unaweza kulinganisha mstari kwa mstari ni wangapi mambo mechi kati ya watu hao wawili. Naam, moja ni animated, moja siyo. Moja ni Marvel movie, moja siyo. Moja got villain super, wengine hana. Moja hupita Bechtel mtihani, mtu anashindwa hilo, lakini wao wote wana Parks na Req Mbegu, hivyo tena, anapata alama ya moja. Hivyo kama mimi walikuwa wanatafuta sinema ambayo yalikuwa sawa na Inside Out, Mimi naweza kuangalia kwa sinema ambazo zina alama ya juu ndani ya maudhui hii kuchuja mpango. Hivyo katika kesi hii, mimi kufikiria Marafiki kuwa karibu na zaidi uwezekano kuwa kitu kwamba napenda kutumia fedha kuona kuliko Umri wa Ultron au Ant Man. Yaliyomo hizi msingi mifumo ya kuchuja kutegemea tu juu ya mali ya sinema, na hivyo mimi Unaweza kujenga hizi tu kwa kujua kitu kuhusu bidhaa kwamba nina. Naweza kutumia aina yoyote ya sifa ya kuwa Ningependa, na mimi unaweza kujenga zaidi makala tata kwamba kuhusisha mtihani ngumu zaidi ya ubora kama mimi kwenda pamoja. Kwa kweli, siwezi hata kuona meza hii si kama moja tuli kitu, bali kama kuwa vipimo ndani ya kubwa hali nafasi. Na siwezi kuanza kuzungumza juu ya umbali kati ya sinema mbalimbali. Haya ni mambo yote kwamba sisi kujua jinsi kufanya kwa kutumia aina ya miundo data kuwa tumekuwa tayari kuona katika CS50. Hivyo mimi naweza kufikiria jengo muundo wa data kwa movie. Kuna struct kwamba nimekuwa yalijengwa aitwaye filamu, na ina tano viingilio Boolean ndani yake. Je, ni animated, je, ni Marvel movie, je, ni kuwa villain super, je, ni kupitisha mtihani Bechdel, na je, kuna Mbuga na Rec Mbegu ndani yake? Na kila moja ya haya ni muundo wa data kwamba mimi unaweza kuchukua kwa kuwa filamu fulani. Kisha compute kama mbili sinema ni sawa au la, nini alama zao ni, mimi naweza kuandika seti ya pseudocode kwamba inazalisha kazi hiyo. Hiyo ni, kutokana na baadhi ya movie M1, siwezi kupata movie inayofanana zaidi na hivyo kwa kufuata pseudocode. Naona ambayo ni bora akifunga mfumo kuwa Nimepata, kulinganisha bora kuwa Nimepata. Kwa kila movie mengine Mimi nina kwenda kupitia, Mimi itabidi kuweka mechi alama sawa na 0. Na mimi itabidi kwenda kwa kuwa movie, M1, movie Mimi kuanza na, mimi itabidi kuangalia kila mmoja na kila kipengele kwamba wana kuona kama kuna mechi. Kama kuna mechi, mimi itabidi increment mechi alama. Na kama katika mwisho wa mechi alama kwamba I have ni bora kuliko ya sasa bora alama, basi mimi itabidi kumbuka alama kwamba bora, na hii ni mechi bora kuwa nina. Mwishoni, chochote movie ni kukaa katika mechi bora, hiyo ni karibu Nimekuwa na uwezo wa kuja. Hivyo bidhaa hizi kwa kuzingatia mifumo ya kuchuja, wote wana muundo huu wa msingi. Wao wanategemea juu ya bidhaa katika swali na hakuna kitu kuhusu yoyote ya mapendekezo ya mtumiaji. Utaratibu mwingine kwamba sisi kutumia katika ili kujenga mifumo mapendekezo inaitwa kuchuja shirikishi. Kuchuja shirikishi hutegemea juu si sifa ya kitu yenyewe, lakini jinsi watu, wengine watumiaji, yaani, jinsi wameweza waliitikia vitu hivi kimoja. Hivyo kuendelea na movie yangu mfano, Nipate kuupokea kundi la marafiki zangu na utafiti wao kuhusu kama au si walipenda sinema fulani. Sasa maeneo mbalimbali kuzalisha taarifa hii kwa njia tofauti. Unaweza utafiti moja kwa moja yako watumiaji, au unaweza tu kuona nini wao kuchagua kama uko, kwa mfano Netflix. Ambayo sinema gani wao kuangalia? Nipate swali baadhi ya yangu marafiki hapa na kujua kwamba Jason walipenda kila movie aliona, si ajabu huko. Andy walipenda tu Marafiki na shangazi Man. Sarah walipenda Ndani Kati na Avengers, kinyume cha Andy. Na Sam, vizuri, Sam walipenda wote wa sinema superhero, lakini hakuna hata mmoja sinema animated. Mimi naweza kisha swala kwa baadhi ya mwezi mtu binafsi, baadhi ya mtumiaji mwingine kama mimi na kuuliza, vizuri, kama mimi walipenda moja ya sinema hizi, unaweza kufanya utabiri kuhusu ambayo wengine sinema mimi ili kama. Hiyo ni, kama mimi walipenda Ndani Nje, ambayo sinema nyingine Mimi ni uwezekano wa pia wanataka kuona kulingana na kile watu sawa alivyofanya? Yaani, nitakwenda kupitia Mimi itabidi kuchuja kupitia orodha hii na kupata tu watu ambao pia walipenda Ndani ya Kati, ambaye kuendana mapendekezo yangu. Naam, hiyo ina maana kwamba Andy na Sam, wao hawakupenda Ndani Kati, hivyo mimi si kwenda kufikiria yao. Mimi nina kwenda kujikwamua yao data kwa kulinganisha hili. Siwezi kisha kuangalia nini Jason na Sarah walidhani na Tally up yupi kati ya sinema kwamba waliona kwamba mimi si, kama wao walipenda yao au la. Mimi nilikuwa tu kuhesabu hadi, hebu sema kura. Hivyo Marafiki, kwa mfano wanaweza kuwa moja kupiga kura kwa ajili yake, kwa sababu Jason walipenda yake. Wote Jason na Sarah walipenda Avengers, hivyo ingekuwa kura mbili. Yasoni tu walipenda Ant Man, hivyo itakuwa kupata kura moja. Hivyo kama mimi alikuwa na kisha kupendekeza kwa mwenyewe yupi kati ya hawa sinema Nipate kuwa na uwezo mkubwa kwa kuangalia, napenda Una kuchagua Umri wa Ultron: Avengers. Hivyo kwa yoyote ya hizi mifumo, sasa mimi nina kutumia takwimu ambazo ilitokana si kuhusu movie yenyewe, lakini kuhusu mapendekezo kutoka kwa watumiaji wengine. Hii ina baadhi ya matatizo bila shaka. Nini kama huna watumiaji wengine yoyote? Naam, kwamba wito tatizo startup. Unaweza kuwa na baadhi wingi wa data kabla uko uwezo wa kuanza kufanya mapendekezo haya. Hasara ya ni mara moja kuanza kukusanya takwimu, kama unaweza kukusanya zaidi na data zaidi na zaidi, utasikia kupata bora na bora na mapendekezo bora. Sasa tunaweza kutafsiri hii katika kanuni vilevile. Tunaweza kufafanua tofauti aina ya muundo, katika kesi hii tutaweza simu yake mtumiaji. Na ni got sifa kuhusu ambayo sinema mtumiaji huyu walipenda. Je, wao kama Inside Out, Marafiki, Avengers, na Ant Man. Tunaweza kisha kuzalisha baadhi pseudocode kufuata utaratibu huo kwamba mimi kutumika kabla. Hiyo ni, kutokana na hasa user x, hebu kupendekeza movie kwamba x ili kama. Tunaweza kwenda kwa njia na kwa wote wa sinema, tunaweza initialize alama kwa kuwa filamu kuwa 0. Na kisha tunaweza kupata yote ya watumiaji wengine ambao wana matakwa sawa na x. Na kisha kwa kila movie kwamba walipenda, tutaweza increment alama ya kwamba movie. Kwa namna yoyote movie katika mwisho ina alama ya juu, hiyo ni moja mimi lazima kupendekeza. Hakuna hata hii ni kweli wasio na cheo. Hakuna wa hii ni changamoto. Hizi ni algorithms yote ya msingi kwamba unaweza kutekeleza leo. Sasa na mifumo MKUBALIAJI halisi, wewe kukimbia katika baadhi ya matatizo. Nini kama kuna hakuna mtu ambaye mechi hasa mapendekezo yako? Nini kama kuna watumiaji ambao ni hasa mapendekezo yako, lakini kisha uadilifu kwa kiasi kikubwa kutokana na kile wewe kama? Mimi kama classic Godzilla sinema, lakini mke wangu hana. Mimi kama kuangalia yao, yangu Netflix akaunti ina kwao. Yake haina. Kile kinachotokea wakati sisi kuanza kuchanganya data kama hii? Hizi ni changamoto zote uweze kushinda, wao tu kuchukua kidogo ngumu zaidi algorithms. Sasa katika ulimwengu wa kweli, ambayo ni kweli kazi, tunatumia maudhui ya msingi ya kuchuja au tunatumia kuchuja shirikishi? Na jibu ni sisi kutumia wote wawili. Karibu wote wa watumiaji kubwa katika kesi hiyo, Amazon, Facebook, Netflix, Pandora, wote kutumia mchanganyiko wa hizi mbalimbali mifumo mapendekezo. Na wakati sisi kuchanganya uchaguzi kutoka kila mmoja, sisi kuwaita mifumo ya mseto. Wao kwa namna fulani hutegemea juu ya sifa za kitu yenyewe, na katika baadhi ya njia wao hutegemea juu ya matakwa ya watumiaji wengine. Mifumo hii ya mseto, wao uko biashara kubwa, na wao uko nini sasa leo. Hivyo shukrani sana kwa kujiunga na mimi. Natumaini wameweza kujipatia kidogo kidogo ya uelewa wa nini hufanya mifumo hii kazi. Next wakati wewe ni online, kukumbuka kwamba si tu wewe kushawishi uchaguzi wako, lakini uwezekano wa mtu mwingine ni kama vile. Asante tena.