>> [RIPRODUZIONE DI BRANI MUSICALI]
>> CERVELLO Scassellati: Benvenuti alla serie CS50 AI.
Il mio nome è Scass, e oggi stiamo andando a parlare di sistemi di raccomandazione.
Sistemi di suoni ora di raccomandazione come una specie di strano nome.
Suona come forse dovrebbe essere sistemi di raccomandazione,
e mi sono d'accordo con te.
Ma questi sono i sistemi che aiutano selezionare le cose simili ogni volta
si seleziona qualcosa online.
Netflix, per esempio suggeriranno altri film che si potrebbe desiderare di vedere.
O Pandora suggerirà diverso canzoni che si potrebbe desiderare di ascoltare.
Amazon suggerire che tipo di altri prodotti si potrebbe desiderare di comprare.
Facebook sarà anche suggerire alcuni degli altri amici
che si potrebbe desiderare di aggiungere.
Ciascuno di questi sistemi operano usando lo stesso tipo di algoritmo di base,
e questo è quello che siamo andando a parlare oggi.
>> Ora, questi algoritmi sono sorprendentemente grande business.
Netflix a pochi anni fa in 2009 ha offerto $ 1 milione
premio se si potesse migliorare la loro sistema di raccomandazione di appena il 10%.
Questo 10%, però, rappresenta un notevole quantità di attività.
Le stime sono difficili da trovare, ma molte persone
credere che questi raccomandazione sistemi per l'acquisto on-line
sistema come Amazon portare da qualche parte tra il 10% e il 25% un aumento delle entrate.
Quindi potete immaginare la tipo di volume che si sei
parlando quando pensiamo anche questi piccoli algoritmi.
>> Quindi cerchiamo di ottenere qualche esempio.
Come è possibile che questi sistemi funzionano davvero?
Offriamo due tipi di algoritmi che
sono in gioco quando si parla di raccomandazioni di generazione.
Le prime sono chiamate filtraggio dei contenuti basato.
E filtraggio dei contenuti basato conta sulle somiglianze tra le voci
stessi, cioè tra due film o due canzoni o due articoli acquistati.
Stiamo andando a utilizzare filmati come esempio, ma questa
potrebbe applicarsi, in realtà, di qualsiasi tipo di oggetto che stiamo cercando.
>> Quindi, se ci penso un po ' film dell'ultimo anno,
Ho visto Inside Out con i miei bambini, si sono trovati benissimo.
Ma abbiamo anche avuto una scelta.
Avremmo potuto vedere Serventi, potremmo visto Age of Ultron,
o avremmo potuto visto Ant Man nei teatri.
>> Per uno di questi film, potremmo immaginare
creazione di un elenco di funzionalità o qualità circa i film diversi.
Così, per esempio, potrei prendere in considerazione che di quei film sono animati.
Beh, entrambi Inside Out e Serventi sono animati.
Né Age of Ultron né Ant Man sono film d'animazione.
E potrei immaginare edificio una struttura, una tabella che
elenca ciascuna di queste proprietà.
Sono animati o no?
Potrei quindi aggiungere di più caratteristiche di questo tavolo
con l'aggiunta di più righe in questa struttura.
Potrei chiedere se Non sono film Marvel.
Beh, Inside Out e Serventi Non sono film Marvel,
Age of Ultron e Ant Man sono certamente.
>> E potrei chiedere qualsiasi tipo di diverse qualità
che volevo, qualsiasi tipo di caratteristiche che potrebbe essere importante per me.
Hanno un supercattivo?
Beh, non c'è supercattivo in Inside Fuori, ma ci sono quelli di Serventi
e, ovviamente, la due film di supereroi.
>> Potrei anche chiedere le cose come, beh, non passano il test Bechdel?
Ci sono due nominati personaggi femminili che
passare un po 'notevole quantità di tempo avere una conversazione che
non comporta uomini nel cast?
Ebbene, in questo caso, Inside Out passa il test, Serventi fallisce, Age of Ultron
passa il test, e ANT Man fallisce.
Una qualsiasi di queste caratteristiche Potrei pensare
come importante per alcune persone.
>> Potrei anche chiedere cose come sono Ci sono delle persone in questi film che
sono alunni di diciamo, Parchi e Ricreazione, uno dei miei programmi preferiti.
Beh, Inside Out ha Amy Poehler, che è un ex-alunni.
Che conta.
Jon Hamm era in Serventi.
Paul Rudd era in Ant Man, ma nessuno in Age of Ultron era nei parchi e Req
anche.
Così posso costruire questo elenco di caratteristiche, e che potevano davvero
essere qualsiasi cosa, sui film.
Potrebbero essere su ciò che proporzioni che sono stati girati in,
potrebbe essere il numero di seggi venduti sul loro fine settimana di apertura.
Qualsiasi caratteristica che voglio generare posso mettere in questa tabella.
>> Ora, in questo caso, ho costruito ogni sorta di valori Bullion,
sì o no, passare o fallire, ma potrebbe essere qualsiasi cosa.
Potrebbero essere valori arbitrari.
Per i contenuti filtro basato, quello che stiamo andando a fare
è che stiamo andando a prendere in considerazione due colonne di questa tabella
e vedere quanto sono simili.
Così, per esempio, se è andato a vedere Inside Out,
Potrei chiedere, quali sono gli altri film che potrei essere disposto ad andare a vedere.
Cioè, quello disposto a spendere i miei soldi per andare a vedere.
E posso paragonare questo da solo prendendo le due colonne, una da Inside Out
e uno qualsiasi dei altri film, e solo vedere
quanti di loro match caratteristiche.
Quindi, se confronto Inside Out con Serventi, beh, c'è
tre cose qui quella partita.
Sono entrambi animati, nessuno dei due sono film Marvel, e ciascuno di essi
avere Parchi e Req alunni.
Così ho potuto contare su come tante partite ci sono stati,
e in questo caso ci sarebbe stato di tre.
>> Se poi paragono Inside Out con diciamo Age of Ultron,
Posso guardare la lista e dire, beh, c'è
solo una cosa che corrisponde lì.
Entrambi superano il test Bechtel, così che sta per essere un punteggio di uno.
E tra Inside Out L'uomo e Formica, ancora una volta ho
può confrontare riga per riga quanti cose coincidono tra loro due.
Beh, uno ANIMATA, uno non lo è.
Uno è un film Marvel, non è.
Uno ha un supercattivo, l'altro no.
Si passa la Bechtel prova, si fallisce,
ma entrambi hanno Parchi e Req alunni, Quindi, di nuovo, si ottiene un punteggio di uno.
>> Quindi, se fossi alla ricerca di film che erano simili a Inside Out,
Potrei cercare i film che hanno il punteggio più alto in questo contenuto
schema di filtraggio.
Quindi, in questo caso, considererebbe Minions
per essere più vicini e più probabile che sia qualcosa
che vorrei spendere soldi per vedere di Age of Ultron o Ant Man.
>> Questi contenuti basato sistemi di filtraggio si basano solo
sulle proprietà i film, e così io
può costruire questi solo conoscendo qualcosa sui prodotti
che ho.
Posso usare qualsiasi tipo di caratteristiche che mi piacerebbe,
e posso costruire più caratteristiche complesse che
coinvolgere test più complessi di una qualità come vado avanti.
In realtà, posso anche visualizzare questa tabella non come un oggetto statico,
ma piuttosto come dimensioni all'interno di uno spazio di stato più grande.
E posso iniziare a parlare del distanze tra film diversi.
Queste sono tutte le cose che sappiamo come
fare con il tipo di strutture di dati che abbiamo già visto in CS50.
Così ho potuto immaginare edificio una struttura di dati per un film.
C'è una struttura che ho costruito chiamato film,
ed ha cinque voci booleane in esso.
E 'animato, è una meraviglia film, ce l'ha un supercattivo,
fa passare il test Bechdel, e Ci sono parchi e Rec alunni in esso?
E ciascuna di queste è un struttura di dati che
possono occupare per quel particolare film.
>> Poi calcolare se due film sono simili o meno,
quale sia il loro punteggio, ho potuto scrivere una serie di pseudocodice che
genera quella stessa funzione.
Cioè, dato qualche film M1, posso trovare il film più simile ad esso
seguendo la pseudocodice.
Considero che è il migliore sistema che ho trovato segnando,
il miglior paragone che ho trovato.
Per ogni altro film Ho intenzione di passare attraverso,
Io preparo un punteggio partita uguale a 0.
E io andrò attraverso quella film, una M1, il film
Ho iniziato con, io controllerò ogni caratteristica
che devono vedere se c'è una corrispondenza.
Se c'è una corrispondenza, io sarò incrementare il punteggio partita.
E se alla fine il punteggio match che Ho è migliore di quello attuale migliore
punteggio, allora io ricordare che il miglior punteggio,
e questo è il miglior match che ho.
Alla fine, qualunque film è seduto in corrispondenza migliore,
che è la più vicina Sono stato in grado di venire.
Così basato questi contenuti sistemi di filtraggio,
tutti hanno questa struttura di base.
Essi si basano sulla voce in questione e nulla
su una qualsiasi delle preferenze dell'utente.
>> L'altro meccanismo che usiamo in fine di costruire sistemi di raccomandazione
si chiama filtraggio collaborativo.
Filtraggio collaborativo si basa su Non le qualità dell'oggetto stesso,
ma come la gente, altro gli utenti che è, come essi hanno
risposto a questi stessi oggetti.
Quindi, per continuare con il mio esempio di film, Potrei prendere un gruppo di miei amici
e loro indagine su se o Non gli piaceva film particolari.
Ora luoghi diversi produrranno questi dati in modi diversi.
È possibile esaminare direttamente il vostro utenti, o si poteva solo
vedere ciò che scelgono se sei, ad esempio Netflix.
Quali film hanno fatto guardare?
>> Potrei mettere in discussione alcuni dei miei amici qui e scoprire
che Jason è piaciuto ogni film vide, non sorprende lì.
Andy è solo Serventi e zia Man.
Sarah è Inside Out e Vendicatori, il contrario di Andy.
E Sam, beh, Sam è piaciuto tutti i film di supereroi,
ma nessuno dei film d'animazione.
>> Potrei quindi interrogare per qualche nuovo individuale, un altro utente come me
e chiedere, beh, se mi è piaciuto uno di questi film,
si può fare una previsione su quale altro film che potrebbe piacere.
Cioè, se mi è piaciuto Dentro Out, quali altri film
sono io probabile che vogliono anche vedere sulla base di ciò che la gente ha fatto simili?
Cioè, io vado attraverso un Io filtrare attraverso questa lista
e trovare solo il individui che piaceva anche
Inside Out, che ha trovato le mie preferenze.
Bene, ciò significa che Andy e Sam, che non gli piaceva Inside Out,
così io non ho intenzione di prenderle in considerazione.
Ho intenzione di sbarazzarsi di loro dati per questo confronto.
>> Posso quindi guardare a ciò che Jason e Sarah pensiero e la loro concordanza
up che dei film che videro che non ho, se li è piaciuto
o no.
Potrei contare fino, diciamo voti.
Così Serventi, per esempio, potrebbe avere un votare a favore, perché Jason piaceva.
Sia Jason e Sarah è piaciuto Avengers, quindi sarebbe dispone di due voti.
E solo Jason piaceva Ant Man, quindi sarebbe ottenere un voto.
Quindi, se ho dovuto poi raccomandare per me che di questi film
Potrei essere più probabilità di vedere, lo farei devono scegliere Age of Ultron: Vendicatori.
>> Così per una di queste sistemi, ora sto usando
dati che non era generato sulla film in sé, ma sulle preferenze
da altri utenti.
Questo ha alcune difficoltà, naturalmente.
Che cosa succede se non si dispone di tutti gli altri utenti?
Beh, che si chiama problema di avvio.
Bisogna avere un po ' quantità di dati prima di sei
in grado di iniziare a fare queste raccomandazioni.
Il rovescio della medaglia di esso è una volta si inizia la raccolta dei dati,
se è possibile raccogliere più e sempre più dati,
si otterrà sempre meglio e le raccomandazioni migliori.
>> Ora potremmo tradurre questo in codice pure.
Siamo in grado di definire un diverso tipo di struttura,
in questo caso lo chiameremo un utente.
Ed ha caratteristiche su quali film questo utente piacevano.
Hanno piace Inside Out, Minions, Vendicatori e Ant Man.
Allora potremmo generare alcuni pseudocodice a seguire
la stessa procedura che ho usato prima.
Cioè, dato un particolare utente x, facciamo consiglia un film
che x potrebbe piacere.
Siamo in grado di passare attraverso e per tutti i film,
siamo in grado di inizializzare un punteggio per quel film sia 0.
E allora possiamo trovare tutto degli altri utenti
hanno le stesse preferenze come x.
E allora per ogni film che gli piaceva,
ci incrementiamo il punteggio di quel film.
Qualunque sia filmato nella finale ha il punteggio più alto,
questo è quello che vorrei raccomandare.
>> Niente di tutto questo è davvero oscuro.
Niente di tutto questo è impegnativo.
Questi sono tutti algoritmi di base che si potrebbe implementare oggi.
>> Ora, con veri e propri sistemi di raccomandazione, si esegue in qualche problema.
Che cosa succede se non c'è nessuno che corrisponde esattamente le tue preferenze?
E se ci sono utenti che sono esattamente le vostre preferenze,
ma poi deviare drasticamente da quello che ti piace?
Mi piace classico Godzilla film, ma mia moglie non lo fa.
Mi piace guardare loro, la mia Account Netflix li contiene.
Il suo di no.
Cosa succede quando si comincia miscelazione dati come questo?
Queste sono tutte le sfide che si può superare,
hanno semplicemente prendere un po ' algoritmi più complessi.
>> Ora, nel mondo reale, che sono in realtà operativa,
usiamo il filtro del contenuto basato o usiamo filtraggio collaborativo?
E la risposta è usiamo entrambi.
Quasi tutti i principali utenti questo caso, Amazon, Facebook, Netflix,
Pandora, tutti usano una combinazione di questi diversi sistemi di raccomandazione.
E quando combiniamo le scelte da ciascuno, noi li chiamiamo sistemi ibridi.
Essi in qualche modo dipendono dal caratteristiche dell'oggetto stesso,
e in qualche modo dipendono da le preferenze degli altri utenti.
Questi sistemi ibridi, sono grandi affari,
e sono ciò che è oggi in corso.
>> Quindi grazie molto per me l'adesione.
Spero che tu hai ottenuto un po ' bit di una comprensione di ciò
rende questi sistemi di lavoro.
La prossima volta che sei in linea, ricorda che non solo si influenzano le scelte,
ma potenzialmente tutti gli altri è così.
Grazie ancora.