[REPRODUCCIÓ DE MÚSICA] CERVELL Scassellati: Benvingut a la sèrie CS50 AI. El meu nom és Scass, i avui anem per parlar dels sistemes de recomanació. Ara de recomanació sons sistemes com una mena d'estrany nom. Sona com potser el que hauria ser sistemes de recomanació, i que tipus d'acord amb vostè. Però aquests són els sistemes que ajuden seleccioneu coses similars sempre que sigui selecciona alguna cosa en línia. Netflix, per exemple suggerirà una altra pel·lícules que vostè pot ser que vulgueu veure. O Pandora suggerirà diferent cançons que és possible que vulgueu escoltar. Amazon li suggerirà quin tipus de Altres productes que et poden voler comprar. Facebook fins i tot suggerir alguns dels altres amics que és possible que vulgueu afegir. Cada un d'aquests sistemes funcionen amb el mateix tipus bàsic d'algorisme, i això és el que estem va a parlar avui. Ara bé, aquests algoritmes són sorprenentment grans empreses. Netflix fa uns anys en 2009 va oferir un $ 1.000.000 premi si vostè podria millorar la seva sistema de recomanació en només un 10%. Que el 10%, però, representa una quantitat substancial dels negocis. Les estimacions són difícils de aconseguir, però moltes persones Creiem que aquestes recomanacions sistemes per a una compra en línia sistema com Amazon condueixen a algun lloc entre 10% i 25% majors ingressos. Així que vostè pot imaginar el tipus de volum que ets parlant de quan pensem en fins i tot aquests petits algoritmes. Així que anem a obtenir alguns exemples. Com és que aquests sistemes funcionen realment? No són dos bàsica tipus d'algoritmes que estan en joc quan parlem de recomanacions de generació. Les primeres es denominen filtrat basat en contingut. I el filtrat basat en contingut es basa sobre similituds entre els elements a si mateixos, és a dir, entre dues pel·lícules o dues cançons o dos articles comprats. Utilitzarem pel·lícules com un exemple, però això podria aplicar-se, en realitat, a qualsevol tipus d'objecte que estem buscant. Així que si penso en alguns pel·lícules de l'any passat, Vaig veure Inside Out amb meus fills, els va encantar. Però també vam tenir una elecció. Podríem haver anat a veure els esbirros, podríem vist Edat d'Ultron, o podríem haver vist Home Formiga en els teatres. Per a qualsevol d'aquests pel·lícules, podríem imaginar la generació d'una llista de característiques o qualitats dels diferents pel·lícules. Així, per exemple, podria considerar quines d'aquestes pel·lícules estan animats. Bé, tant Inside Out i esbirros estan animats. Ni l'edat ni d'Ultron Home Formiga són pel·lícules animades. I jo podia imaginar edifici una estructura, una taula que enumera cadascuna d'aquestes propietats. Estan animats o no? Llavors jo podria afegir més característiques a aquesta taula mitjançant l'addició de més files en aquesta estructura. Jo podria preguntar si No són pel·lícules de Marvel. Bé, Inside Out i Minions No són les pel·lícules de Marvel, Edat d'Ultron i Ant home certament ho són. I jo podria fer qualsevol tipus de diferents qualitats que jo volia, qualsevol tipus de característiques que podria ser important per a mi. Tenen un super dolent? Bé, no hi ha súper vilà a l'interior , Però n'hi ha en Minions i en, òbviament, la dues pel·lícules de superherois. Jo també podria preguntar-li coses com, bé, no passen la prova Bechdel? Hi ha dos nomenats personatges femenins que passar algun quantitat significativa de temps tenir una conversa que no involucrar els homes en l'elenc? Bé, en aquest cas, Inside Out passa la prova, Minions falla, Age of Ultron passa la prova, i no Ant Man. Qualsevol d'aquestes característiques El que podia pensar com importants per a algunes persones. Jo també podria preguntar-li coses com són Hi ha alguna gent en aquestes pel·lícules que són ex alumnes de diguem, Parcs i Recreació, un dels meus programes favorits. Bé, Inside Out compta amb Amy Poehler, que és una d'Antics Alumnes. Això compte. Jon Hamm estava en Minions. Paul Rudd estava en Ant Man, però ningú a Age of Ultron era a Parcs i Req tant be. Així que puc construir aquesta llista de característiques, i que van poder realment ser qualsevol cosa sobre les pel·lícules. Podrien ser d'allò relació d'aspecte que es va rodar a, que podria ser el nombre d'escons que venut en el primer cap de setmana. Qualsevol característica que vull gènere que puc posar en aquesta taula. Ara, en aquest cas, he construït tot tipus de valors de lingots, si o no, passar o fallar, però podrien ser qualsevol cosa. Podrien ser valors arbitraris. Per al filtrat de continguts basat, el que farem és que tindrem en compte dues columnes d'aquesta taula i veure el similars que són. Així, per exemple, si va anar a veure Inside Out, Jo podria preguntar, quines són les altres pel·lícules que podria estar disposat a anar a veure. És a dir, que es disposa a gastar els meus diners per anar a veure. I puc comparar això amb només prendre les dues columnes, un des de dins cap a fora i un qualsevol dels altres pel·lícules, i només veure quants del seu partit de característiques. Així que si comparo Inside Out amb esbirros, bé, hi ha tres coses aquí que els partits. Tots dos estan animats, cap dels dos són les pel·lícules de Marvel, i dos d'ells tenir Parcs i Req exalumnes. Així que podria comptar fins a com molts partits hi va haver, i en aquest cas no hi hauria tres. Doncs si jo comparo Inside Out amb diguem Edat d'Ultron, Puc mirar avall a la llista i dir, bé, hi ha només una cosa que coincideix allà. Tots dos passen la prova de Bechtel, per la qual que hi haurà una puntuació d'un. I entre Inside Out i l'Home Formiga, una altra vegada pot comparar línia per línia el nombre de coses coincideixen entre ells dos. Bé, un ANIMADA, un no és. Un és una pel·lícula de Marvel, un no és. Un té un súper vilà, l'altra no. Es passa la Bechtel prova, una falla, però tots dos tenen Parcs i Req alumnes, així que de nou, obté una puntuació d'un. Així que si jo estàvem buscant pel·lícules que eren similars a Inside Out, Jo podria buscar les pel·lícules que tenen la puntuació més alt dins d'aquest contingut esquema de filtrat. Així que en aquest cas, consideraria Minions per estar més a prop i més probable que sigui una cosa que anava a gastar diners per veure que era d'Ultron o l'Home Formiga. Basada Aquests continguts sistemes de filtrat es basen simplement en les propietats de les pel·lícules, i pel que pot construir aquests només coneixent alguna cosa sobre els productes que tinc. Puc utilitzar qualsevol tipus de característiques que m'agradaria, i puc construir més característiques complexes que involucrar la prova més complexa d'una qualitat a mesura que avanço. De fet, fins i tot puc veure aquesta taula no com un objecte estàtic, sinó més aviat com sent dimensions dins d'un espai d'estat major. I puc començar a parlar de la distàncies entre diferents pel·lícules. Aquestes són totes les coses que sabem com fer ús dels tipus d'estructures de dades que ja hem vist al CS50. Així que em podia imaginar edifici una estructura de dades per a una pel·lícula. Hi ha una estructura que tinc construïda anomenada pel·lícula, i té cinc entrades booleanes en el mateix. Està animat, ¿és una meravella pel·lícula, ¿té un super dolent, Què passa la prova Bechdel, i hi ha Parcs i Rec alumnes en ella? I cada un d'ells és un estructura de dades que I pot ocupar per a aquesta pel·lícula particular. A continuació, calcular si dos pel·lícules són similars o no, que la seva puntuació és, que podia construir un cos de pseudo-codi que genera aquesta mateixa funció. És a dir, donat una mica de pel·lícula M1, que pugui trobar la pel·lícula més semblant a ella seguint el pseudocodi. Considero que és el millor sistema que he trobat anotant, la millor comparació que he trobat. Per cada altra pel·lícula Vaig a anar a través, Vaig a posar una puntuació partit igual a 0. I vaig a anar a través d'aquesta pel·lícula, un M1, la pel·lícula Vaig començar amb, ho comprovaré tots i cada funció que tenen a veure si hi ha un partit. Si hi ha un partit, vaig a incrementar el resultat del partit. I si al final el resultat del partit que He és millor que l'actual millor anotar, llavors vaig a recordar que la millor puntuació, i aquest és el millor partit que tinc. Al final, sigui quina sigui la pel·lícula seu al millor partit, això és el més proper He estat capaç d'arribar. Així basa aquests continguts sistemes de filtrat, tots ells tenen aquesta estructura bàsica. Es basen en l'article en qüestió i res sobre qualsevol de les preferències de l'usuari. L'altre mecanisme que utilitzem en per construir sistemes de recomanació es diu filtratge col·laboratiu. Filtratge col·laboratiu es basa en no les qualitats de l'objecte en si mateix, però com les persones, altres usuaris, és a dir, com han respost a aquests mateixos objectes. Així que per continuar amb el meu exemple de la pel·lícula, Jo podria prendre un munt dels meus amics i estudiar sobre si és o No els agradava pel·lícules particulars. Ara diferents llocs generaran aquestes dades de diferents maneres. Vostè pot examinar directament al seu usuaris, o vostè podria veure el que decideixen si vostè és, per exemple Netflix. Què pel·lícules tenien que veuen? Jo podria qüestionar una mica de la meva amics aquí i saber que Jason li agrada cada pel·lícula que va veure, no sorprenent allà. Andy només li agrada Minions i tia home. Sarah li agrada Inside Out i Venjadors, el contrari d'Andy. I Sam, bé, Sam li agrada totes les pel·lícules de superherois, però cap de les pel·lícules animades. Llavors jo podria preguntar per alguna nova individual, algun altre usuari com jo i demanar, bé, si m'ha agradat d'aquestes pel·lícules, es pot fer una predicció sobre que altres pel·lícules que podria agradar. És a dir, si m'agradava l'interior Out, que altres pel·lícules estic probable que també vulgui veure en base al que la gent feia semblants? És a dir, vaig a anar a través d'un Vaig a filtrar a través d'aquesta llista i trobar només el persones que també els agradava Inside Out, que coincidia amb les meves preferències. Bé, això vol dir que Andy i Sam, que no li agradava Inside Out, així que no vaig a considerar-los. Vaig a desfer del seu les dades per a aquesta comparació. Llavors puc veure el que Jason i Sarah va pensar i recompte fins que de les pel·lícules que veien que no ho vaig fer, si els van agradar o no. Jo només podia comptar fins, diguem vots. Així Minions, per exemple podria tenir-ne un votar per ella, ja que Jason li agradava. Tant Jason i Sarah li agrada Venjadors, per la qual cosa tindria dos vots. I només Jason li agrada Ant Man, per la qual cosa seria aconseguir un vot. Així que si hagués de després recomanar per mi mateix quina d'aquestes pel·lícules Jo podria ser més propensos a veure, ho faria de triar Edat d'Ultron: Venjadors. Així que per a qualsevol d'aquests sistemes, ara estic fent servir dades que no va ser generada per la pel·lícula en si, sinó de les preferències d'altres usuaris. Això té algunes dificultats, és clar. Què passa si vostè no té cap altre usuari? Bé, això es diu problema d'inici. Has de tenir una mica de quantitat de dades abans que estigui capaç de començar a fer aquestes recomanacions. L'altra cara d'això és un cop de començar a recollir dades, si vostè pot obtenir més i més i més dades, obtindrà millor i millor i millors recomanacions. Ara podríem traduir això en codi. Podem definir una diferent tipus d'estructura, en aquest cas ho anem a trucar a un usuari. I es va posar sobre les característiques quines pel·lícules aquest usuari agradaven. Els va agradar Inside Out, Minions, venjadors, i l'Home Formiga. Llavors podríem generar alguns pseudocodi per seguir el mateix procediment que he fet servir abans. És a dir, donat un determinat usuari x, anem a recomanar una pel·lícula que x pot agradar. Podem anar a través i per a totes les pel·lícules, podem inicialitzar una puntuació per a aquesta pel·lícula sigui 0. I llavors podem trobar tot dels altres usuaris que tenir les mateixes preferències que x. I a continuació, per a cada pel·lícula que els agradava, incrementarem la puntuació d'aquesta pel·lícula. Sigui quina sigui la pel·lícula en el extrem té la puntuació més alta, aquesta és la que jo hauria de recomanar. Res d'això és realment fosca. Res d'això és un repte. Aquests són tots els algoritmes bàsics que es pot aplicar avui. Ara, amb els sistemes de recomanació de béns, es troba amb alguns problemes. Què passa si no hi ha ningú que coincideix exactament amb les seves preferències? Què passa si hi ha usuaris que són exactament les seves preferències, però llavors desviar dràsticament del que t'agrada? M'agrada clàssic Godzilla pel·lícules, però la meva dona no ho fa. M'agrada veure'ls, el meu Compte de Netflix els conté. De La seva no. Què passa quan comencem barreja de dades d'aquest tipus? Aquests són tots els desafiaments que pot superar, que acaba de prendre una mica algoritmes més complexos. Ara, en el món real, el que són en realitat operativa, Com fem servir el filtrat basat en contingut o Com fem servir filtratge col·laboratiu? I la resposta és que utilitzem tots dos. Gairebé tots els principals usuaris en aquest cas, Amazon, Facebook, Netflix, Pandora, tots ells utilitzen una combinació de aquests diferents sistemes de recomanació. I quan combinem les opcions de cadascun, els anomenem sistemes híbrids. Ells d'alguna manera depenen de la característiques de l'objecte en si mateix, i d'alguna manera depenen de les preferències dels altres usuaris. Aquests sistemes híbrids, són un gran negoci, i són el que està vigent en l'actualitat. Així que moltes gràcies per acompanyar-me. Espero que hagis aconseguit una mica mica d'una comprensió del fa que aquests sistemes de treball. La propera vegada que estiguis en línia, recorda que No només li influir en les seves decisions, però potencialment tot el món és així. Gràcies de nou.