>> [Musikwiedergabe]
>> BRAIN Scassellati: Willkommen auf den CS50 AI-Serie.
Mein Name ist Scass, und heute werden wir über Empfehlungssysteme sprechen.
Jetzt Empfehlungssysteme Sounds wie Art von einer ungeraden Namen.
Es klingt wie es vielleicht sollte sein Empfehlungssysteme,
und ich irgendwie einverstanden mit Ihnen.
Aber das sind die Systeme, die helfen, Wählen Sie aus ähnlichen Dingen, wenn
Sie etwas online zu wählen.
Netflix, zum Beispiel werden andere vorschlagen Filme, die Sie vielleicht zu beobachten.
Oder Pandora wird vorschlagen, verschiedene Songs, die Sie vielleicht zu hören.
Amazon wird vorschlagen, welche Arten von andere Produkte möchten Sie vielleicht, um zu kaufen.
Facebook wird sogar darauf hin, weitere Freunde
dass Sie vielleicht hinzufügen.
Jedes dieser Systeme arbeiten mit die gleiche grundlegende Art von Algorithmus,
und das ist, was wir sind werde heute sprechen.
>> Nun sind diese Algorithmen sind raschend großes Geschäft.
Netflix vor einigen Jahren in 2009 bot eine $ 1.000.000
Preis, wenn Sie verbessern könnten ihre Empfehlungssystem von nur 10%.
Dass 10%, obwohl für einen beträchtliche Menge von Geschäft.
Schätzungen sind schwer zu kommen durch, aber viele Leute
glauben, dass diese Empfehlung Systeme für einen Online-Einkauf
System wie Amazon Blei irgendwo zwischen 10% und 25% höhere Einnahmen.
So können Sie das vorstellen, Art von Volumen, das Sie
reden, wenn wir darüber nachdenken, sogar diese kleinen Algorithmen.
>> Also lassen Sie uns einige Beispiele.
Wie kommt es, dass diese Systeme wirklich funktionieren?
Es gibt zwei grundlegende Arten von Algorithmen,
im Spiel sind, wenn wir sprechen Erzeugungs Empfehlungen.
Die ersten, die genannt werden der inhaltsbasierten Filterung.
Und der inhaltsbasierten Filterung stützt auf Ähnlichkeiten zwischen den Einzelteile
selbst ist zwischen zwei Filmen, dass oder zwei Songs oder zwei gekaufte Artikel.
Wir werden Filme verwenden Als Beispiel, aber das
könnte gelten, wirklich, für jede Art von Objekt, das wir suchen.
>> Also, wenn ich über einige denken, Filme aus dem letzten Jahr,
Ich sah Inside Out mit meine Kinder, sie liebten es.
Aber wir hatten auch eine Wahl.
Wir könnten gegangen, um Minions zu sehen haben, Wir Age of Ultron sehen konnte,
oder wir gesehen haben könnte Ant Man in den Theatern.
>> Für jede dieser Filme, die wir vorstellen kann
Erzeugen einer Liste von Funktionen oder Eigenschaften über diese verschiedenen Filmen.
So zum Beispiel, ich könnte in Erwägung ziehen welche dieser Filme animiert.
Nun, beide Inside Out und Minions sind animiert.
Weder Alter noch der Ultron Ant Man gibt animierte Filme.
Und ich konnte Gebäudes vorstellen eine Struktur, eine Tabelle,
listet jede dieser Eigenschaften.
Werden sie animiert oder nicht?
Ich konnte dann fügen Sie mehr Merkmale dieser Tabelle
durch Hinzufügen von weiteren Zeilen in diese Struktur.
Ich fragen konnte, ob nicht sie Marvel-Filme.
Nun, Inside Out und Minions nicht Marvel-Filme,
Age of Ultron und Ant Man sicherlich.
>> Und ich konnte alle Arten Fragen verschiedener Qualitäten
dass ich wollte, alle Arten von Funktionen das könnte mir wichtig zu sein.
Haben sie ein Super-Bösewicht haben?
Nun, es gibt keinen Superschurken in Inside Aus, aber es sind diejenigen, in Minions
und natürlich der zwei Superhelden-Filme.
>> Ich könnte auch Dinge wie, fragen, sie passieren die Bechdel Test?
Gibt es zwei Namen weibliche Charaktere, die
verbringen einige bedeutende Menge Zeit mit einem Gespräch,
nicht um Menschen in der gegossenen?
Nun, in diesem Fall geht Inside Out der Test scheitert Minions, Age of Ultron
den Test und Ant Man scheitert.
Eine dieser Funktionen Ich denken konnte
als wichtig für einige Menschen.
>> Ich könnte auch fragen, wie die Dinge sind, es Menschen in diesen Filmen,
sind Alumni aus lassen Sie uns sagen, Parks und Erholung, einer meiner Lieblings-Shows.
Nun, Inside Out Amy Poehler, das ist ein Alumni.
Das zählt.
Jon Hamm war in Minions.
Paul Rudd war in Ant Man, aber niemand im Alter von Ultron war in Parks und Req
auch.
So kann ich bauen diese Liste Funktionen, und sie konnte wirklich
alles über die Filme zu sein.
Sie konnten zu sein, was Seitenverhältnis sie erschossen wurden,
könnte es sein, wie viele Plätze sie auf ihrer Eröffnungswochenende verkauft.
Jede Funktion, die ich will erzeugen kann ich in diese Tabelle zu setzen.
>> Nun, in diesem Fall, ich gebaut haben alle Art von Bullion Werte,
ja oder nein, bestehen oder nicht, aber sie könnte alles sein.
Sie konnten beliebige Werte sein.
Für der inhaltsbasierten Filterung, was wir tun werden
wird wir werden prüfen, zwei Spalten dieser Tabelle
und sehen, wie ähnlich sie sind.
So zum Beispiel, wenn I ging zu Inside Out zu sehen,
Ich könnte fragen, was sind die anderen Filme daß ich bereit zu gehen zu sehen.
Das heißt, welche bereit sind, mein Geld zu gehen sehen.
Und ich kann dies nur durch die Einnahme vergleichen die zwei Spalten, eine von innen nach außen
und eine aus einem das andere Filme, und nur sehen,
wie viele ihrer Merkmale übereinstimmen.
Also, wenn ich vergleichen Inside Out mit Minions, na ja, es gibt
drei Dinge, die hier zusammenpasst.
Sie sind beide beseelt, keiner von ihnen sind Marvel Filme und beide
haben Parks und Req Alumni.
So konnte ich bis zählen, wie viele Spiele gab es,
und in diesem Fall gäbe es drei sein.
>> Wenn ich dann vergleichen Inside Out mit sagen wir mal, Alter der Ultron,
Ich kann nach unten schauen die Liste und sagen, na ja, es gibt
nur eine Sache, es passt.
Beide passieren die Bechtel-Test, so das wird eine Punktzahl von eins sein.
Und zwischen Inside Out und Ant Man, wieder ich
kann Zeile für Zeile zu vergleichen, wie viele Dinge Match zwischen den beiden von ihnen.
Nun, eines ist animiert, einer ist nicht.
One ist ein Marvel-Film, einer nicht.
Eines hat ein Super-Bösewicht, der andere nicht.
Man geht die Bechtel Test fehlschlägt man es,
aber sie haben beide Parks und Req schüler, Also noch einmal, wird es einen Score von einem.
>> Also, wenn ich wurden für Filme suchen dass ähnelten Inside Out,
Ich konnte für die Filme, die haben zu suchen die höchste Punktzahl in diesem Inhalt
Filterschema.
Also in diesem Fall, ich würde Minions betrachten
engere und sein wahrscheinlich, etwas zu sein
dass ich Geld ausgeben würde, um zu sehen, als Age of Ultron oder Ant Man.
>> Diese Inhalte auf der Grundlage Filtersysteme verlassen sich nur
auf die Eigenschaften des die Filme, und so habe ich
Diese können nur durch das Wissen, zu bauen etwas über die Produkte
das ich habe.
Ich kann irgendwelche Arten verwenden Funktionen, die ich möchte,
und ich kann mehr bauen Komplex verfügt, dass
beinhalten komplexere Test von einer Qualität, wie ich entlang gehen.
In der Tat, kann ich auch diese Tabelle anzeigen nicht als ein statisches Objekt,
sondern als Dimensionen innerhalb eines größeren Zustandsraum.
Und ich kann sprechen über die Abstände zwischen verschiedenen Filmen.
Das sind alles Dinge dass wir wissen, wie sie
zu tun mit den Arten von Datenstrukturen dass wir bereits in CS50 gesehen.
So konnte ich Gebäude vorstellen eine Datenstruktur für einen Film.
Es gibt eine Struktur, die ich habe konstruiert genannt Film,
und über fünf Boolean Einträge darin.
Wird animiert, es ist ein Wunder- Film, hat es eine Super-Bösewicht,
bedeutet es passieren die Bechdel-Test und gibt es Parks und Rec-Alumni in ihm?
Und jedes von diesen ist ein Datenstruktur, die ich
kann für diesen bestimmten Film zu besetzen.
>> Dann berechnen, ob zwei Filme sind ähnlich oder nicht,
was ihre Gäste ist, konnte ich schreiben Sie eine Reihe von Pseudo-Code, dass
erzeugt die gleiche Funktion.
Das ist, da einige Film M1, ich kann finden die ähnlichste Film, um ihn
indem Sie dem Pseudocode.
Ich halte welche ist die beste Scoring-System, das ich gefunden habe,
der beste Vergleich, die ich gefunden habe.
Für jeden anderen Film Ich werde zu durchlaufen,
Ich werde einen Übereinstimmungswert gleich 0 gesetzt.
Und ich werde durchmachen Film, ein M1, der Film
Angefangen habe ich mit, ich werde überprüfen jede und jeder Funktion
dass sie zu sehen, wenn es ein Spiel.
Wenn es eine Übereinstimmung gibt, werde ich erhöhe den Übereinstimmungswert.
Und wenn am Ende das Match-Score, Ich habe besser als die derzeit besten
punkten, dann werde ich daran erinnern, dass beste Ergebnis,
und dies ist das beste Spiel, das ich habe.
Am Ende, welcher Film in beste Übereinstimmung sitzen,
das ist die am nächsten Ich habe in der Lage zu kommen.
So dass diese Inhalte auf der Grundlage Filtersysteme,
sie alle haben diese Grundstruktur.
Sie verlassen sich auf die Artikel in Frage und nichts
über eine der Benutzereinstellungen.
>> Der andere Mechanismus, die wir in bestellen Empfehlung Systeme zu bauen
genannt Collaborative Filtering.
Collaborative Filtering beruht auf nicht die Qualitäten des Objekts selbst,
aber, wie die Menschen, andere Benutzer, die ist, wie sie haben
reagierten auf diese gleichen Objekte.
Also mit meinem Film Beispiel fortzusetzen, Ich könnte ein paar meiner Freunde nehmen
und überblicken sie darüber, ob nicht sie wollten insbesondere Filme.
Jetzt unterschiedlichen Stellen generiert Diese Daten können auf verschiedene Weise.
Sie können direkt überblicken Ihre Benutzer, oder Sie könnten nur
sehen, was sie wählen, wenn Sie, zum Beispiel Netflix.
Welche Filme haben sie gesehen?
>> Ich könnte einige meiner Frage Freunde hier und finden Sie heraus
dass Jason liebte jeden Film er sah, nicht dort zu überraschen.
Andy nur gefiel Minions und Tante Man.
Sarah mochte Inside Out und Avengers, das Gegenteil von Andy.
Und Sam, gut, mochte Sam alle Superhelden-Filme,
aber keiner der animierten Filmen.
>> Ich konnte dann für einige neue Abfrage Einzel, ein anderer Nutzer wie mich
und fragen, gut, wenn ich mochte einer dieser Filme,
können Sie eine Vorhersage über zu machen die anderen Filme, die ich vielleicht gefallen.
Das heißt, wenn ich innen gefallen Out, das andere Filme
Ich bin wahrscheinlich auch sehen wollen basierend auf, was ähnlich wie die Menschen getan haben?
Das heißt, ich werde durch ein zu gehen Ich werde durch diese Liste zu filtern
und finden Sie einfach die Personen, mochten auch
Inside Out, die meine Vorlieben abgestimmt.
Nun, das bedeutet, dass Andy und Sam, sie nicht mögen Inside Out,
so werde ich nicht, um sie zu betrachten.
Ich gehe, um loszuwerden, ihre Daten für diesen Vergleich.
>> Ich kann dann an, was Jason schauen und Sarah dachte, und Tally
up denen der Filme, die sie sahen, dass ich nicht, ob sie sie gern
oder nicht.
Ich habe gerade zu zählen könnte, sagen wir Stimmen.
So Minions, zum Beispiel könnte man haben stimmen für sie, denn Jason hat es gefallen.
Sowohl Jason und Sarah mochte Avengers, so wäre es zwei Stimmen.
Und nur Jason gefallen Ant Man, so wäre es eine Stimme zu bekommen.
Also, wenn ich musste dann empfehlen für mich selbst, welche dieser Filme
Ich könnte wahrscheinlich sein zu beobachten, würde ich müssen Age of Ultron wählen: Avengers.
>> So dass für jedes von diesen Systeme, jetzt bin ich mit
Daten, die nicht über die generiert wurde Film selbst, sondern über die Präferenzen
von anderen Usern.
Dies hat einige Schwierigkeiten natürlich.
Was passiert, wenn Sie nicht über andere Nutzer?
Nun, das Startproblem genannt.
Sie müssen einige haben Menge der Daten, bevor Sie
in der Lage zu beginnen, diese Empfehlungen.
Die Kehrseite davon ist, wenn Sie sammeln Daten,
wenn Sie mehr sammeln und mehr und mehr Daten,
Sie werden besser und besser und bessere Empfehlungen.
>> Jetzt übersetzen wir könnten dies in Code auch.
Wir können einen anderen zu definieren Art von Struktur,
in diesem Fall werden wir es ein Benutzer anrufen.
Und es geht um erhielt Funktionen die Filme dieser Benützer mag.
Haben sie Lust Inside Out, Minions, Rächer und Ant Man.
Wir könnten dann erzeugen einige Pseudocode zu folgen
Die gleiche Vorgehensweise, die ich verwendet, bevor.
Das heißt, bei einer bestimmten Benutzer x, lassen Sie uns empfehlen, einen Film
daß x vielleicht gefallen.
Wir können gehen durch und für alle Filme,
können wir eine Punktzahl zu initialisieren für diesen Film 0 sein.
Und dann können wir alle zu finden der andere Benutzer,
haben die gleichen Einstellungen wie x.
Und dann für jeden Film, dass sie wollten,
wir werden die Partitur dieses Films zu erhöhen.
Unabhängig davon, welche Film in die Ende die höchste Punktzahl,
das ist der, den ich empfehlen sollte.
>> Nichts davon ist wirklich dunkel.
Nichts davon ist schwierig.
Diese sind alle grundlegenden Algorithmen dass Sie heute implementieren könnte.
>> Jetzt mit echten Empfehlungssysteme, Sie in einige Probleme laufen.
Was passiert, wenn es ist niemand, der entspricht genau Ihren Wünschen?
Was, wenn es Benutzern, sind genau Ihren Wünschen,
aber dann drastisch abweichen von dem, was Sie wollen?
Ich mag klassische Godzilla Filme, aber meine Frau nicht.
Ich mag, sie zu beobachten, mein Netflix-Konto enthält sie.
Ihr ist nicht.
Was passiert, wenn wir anfangen, Mischen von Daten wie diese?
Dies alles sind Herausforderungen dass Sie überwinden kann,
sie nehmen Sie nur leicht komplexere Algorithmen.
>> Jetzt in der realen Welt, die sind eigentlich Betriebs,
verwenden wir der inhaltsbasierten Filterung oder verwenden wir Collaborative Filtering?
Und die Antwort ist, dass wir von ihnen nutzen beides.
Fast alle der wichtigsten Benutzer in Dieser Fall, Amazon, Facebook, Netflix,
Pandora, sie alle eine Kombination aus verwenden diese verschiedenen Empfehlungssysteme.
Und wenn wir kombinieren die Auswahl von jeder, wir nennen sie Hybridsysteme.
Sie irgendwie hängen von der Merkmale des Objekts selbst,
und in gewisser Weise sie davon abhängen, die Präferenzen anderer Nutzer.
Diese Hybridsysteme, sie sind ein großes Geschäft,
und sie sind, was aktuelle heute.
>> Also vielen Dank für den Beitritt mich.
Ich hoffe, dass Sie ein wenig bekommen haben bisschen ein Verständnis dessen, was
macht diese Systeme.
Nächstes Mal, wenn Sie online sind, daran erinnern, dass nicht nur Sie zu beeinträchtigen Auswahl
aber potenziell allen anderen auch.
Danke noch einmal.