2009-06-28 6 views
18

Ich habe gerade gelesen, wie Team BellKor Pragmatic Chaos ist winning the Netflix Challenge auf Wired, und ich bin neugierig, wie diese Art von Algorithmen in der Regel funktioniert. Ich weiß, dass die Lösung von Team Bellkor eine innovative auf dem Feld sein muss. Aber wie funktioniert das Feld normalerweise? Ist es nur eine wirklich detaillierte Datenbank mit immer wieder überfahrenen Markov-Ketten oder was?Wie funktionieren automatisierte Empfehlungsalgorithmen normalerweise?

Antwort

11

aber wie funktioniert das Feld normalerweise?

Es ist eine Data Mining-Technik. Data Mining wird als Teil von Business Intelligence (Data Warehouse usw.) verwendet, um Beziehungen und Informationen in großen Datenmengen zu finden. Es ist ein Bereich der Informatik, der sich auch mit maschinellem Lernen im Allgemeinen befasst, z. Mustererkennung. Automatische Empfehlungen erhalten Sie unter Association Mining. Eine Assoziation mit einer hohen Unterstützung wird als Empfehlung angezeigt. Der k-Nearest-Neighbor-Algorithmus ist nur einer von vielen Algorithmen, die von maschinellen Lern-/Data-Mining-Personen verwendet werden.

Wenn Sie sich für grundlegende Theorie interessieren, empfehle ich Data Mining: Practical Machine Learning Tools and Techniques von Ian H. Witten.

Für Java gibt es ein tolles maschinelles Lernpaket, WEKA, das association mining tun kann. Ian Witten ist auch einer der Autoren von WEKA.

11

Werfen Sie einen Blick auf diese Wikipedia-Artikel: Euclidean Distance.

Die Grundidee ist, dass Sie eine Distanzmetrik verwenden (wie die euklidische oben), um Menschen oder Dinge miteinander zu vergleichen.

Das neue O'Reilly Buch, Programming Collective Intelligence: Building Smart Web 2.0 Applications hat ein großes Kapitel zu diesem Thema.

+0

Ein anderer Ansatz ist die Manhattan-Entfernung (oder Taxicab-Geometrie) (schneller zu berechnen, weniger genau als euklidisch) – adhg

5

Die meisten Teilnehmer der Netflix Competition verwendeten Variationen auf einer Singular Value Decomposition. Dieser Algorithmus arbeitet, indem er eine große Matrix verwendet und sie auf eine ungefähre 2x2-Matrix vereinfacht. Diese 2 × 2-Matrix kann dann in einem 2-dimensionalen Raum gezeichnet werden, in dem nahe beieinander liegende Punkte in der ursprünglichen Matrix miteinander verknüpft sind. Im Fall von Netflix können Sie also eine Matrix erstellen, bei der die Filme die Spalten und die Benutzer die Zeilen sind, in denen jeder Wert [i, j] die Bewertung ist, die der i-Benutzer dem Film j gegeben hat. Dies ist eine sehr große Matrix, auf die dann eine SVD angewendet werden kann, um eine zweidimensionale Matrix zu erzeugen, die als Approximation der größeren Matrix dient. Benutzer, die nahe beieinander liegen, wenn sie auf dieser Ebene gezeichnet werden, teilen ähnliche Bewertungen. Wenn also ein Benutzer keinen Film gesehen hat, den ein anderer Benutzer in der Nähe gesehen hat, könnte dies eine Empfehlung für den neuen Benutzer sein.

Die gewinnende Lösung entwarf eine Variante eines SVD-Algorithmus mit der Bezeichnung SVD ++ und mixte diese zusammen mit anderen Edge Cases, um einen Algorithmus zu entwickeln, der die 10% ige Verbesserung des Preises überstieg.