2013-02-21 3 views
5

Ich bin mir nicht sicher, ob dies die richtige Plattform ist, um diese Frage zu stellen. Aber meine Problemstellung ist: Ich habe einen Buchladen & X keine Clients (x ist riesig).Verständnis und Aufbau eines sozialen Netzwerk-Algorithmus

Ein Client kann mir sagen, ob ein Buch gut oder schlecht ist (nicht empfohlen). Ich habe eine interne Logik, um Bücher miteinander zu vereinigen. Wenn also ein Kunde sagt, ein Buch sei schlecht, sagt er, dass ähnliche Bücher auch schlecht sind, und zeig ihm das nicht.

Ich verpflichte und verstecke diese Bücher. Kunden können auch untereinander interagieren und haben ein gegenseitiges Vertrauensniveau zwischen ihnen. Ein Fall entsteht, wenn Kunde A Buch X1 schlecht sagt. Also ich schwarze Liste X1, X2, X3, X4 usw.

Aber sein Freund Client B sagt X3 ist gut. So, jetzt muss ich X3 zu A zeigen. Ich dachte, um ein soziales Netzwerk aller meiner Kunden basierend auf ihrer Interaktion zu bauen, und in der Lage sein, ihr gegenseitiges Konfidenzniveau zu berechnen. Also in der oben genannten Senario, wenn gegenseitige Konfidenzniveau sehr hoch ist, wird X3 zu A zeigen, oder sonst werde ich X3 zu A nicht zeigen.

Ich wollte mich Kickstarted auf den Aufbau des sozialen Netzwerks und die Zuweisung eines wt . zu einem Pfad zwischen 2 Knoten (meine Kunden). Bitte schlage mir einige gute Hinweise vor, wo ich anfangen kann. Jedes Buch, Websites usw.

Dank

Antwort

11

Von einem hohen Niveau, werden Sie in den Bereichen Maschinelles Lernen zu sehen, Data Mining und Graph Mining/Analyse.

In Bezug auf maschinelles Lernen und Data Mining, wollen Sie in kollaborative Filterung aussehen - ich empfehle this book. Es gibt eine Menge Arbeit in diesem Bereich, bemerken Sie, wie Websites wie Amazon eine Funktion haben, die Ihnen zeigt, welche anderen Artikel zusammen mit dem Artikel gekauft wurden, den Sie gerade betrachten.

Um ein soziales Netzwerk aufzubauen, müssen Sie zuerst herausfinden, welches Datenbanksystem Sie verwenden möchten. Es gibt Graph-Datenbanken wie Neo4J und FlockDB, die mit Grafiken im Hinterkopf konzipiert sind. Sie können sich alternativ für etwas allgemeineres wie MySQL entscheiden, hängt davon ab, wie weit Sie gehen möchten.

Sobald Sie das entschieden haben, wollen Sie diese "sozialen Graph" -Daten nutzen, wo Konzepte wie Random Walks, Community-Struktur/Erkennung und Zentralität kommen. Ich empfehle this series von Vorlesungen, die Twitter gab bei UC Berkeley, um eine bessere Vorstellung davon zu bekommen, soziale Daten zu nutzen.

+0

danke adelbertc für die schnelle Antwort. Ich werde das Buch auschecken. Auf der Datenbankfront dachte ich an die Verwendung von HBase. Glaubst du, dass das ein Problem sein wird? –

+0

warum hbase? Graphalgorithmen damit sind möglich, aber ich würde es nicht empfehlen, wenn Sie mit neo4j oder orientdb beginnen können. https://docs.google.com/spreadsheet/ccc?key=0AlHPKx74VyC5dERyMHlLQ2lMY3dFQS1JRExYQUNhdVE#gid=0 – Karussell

+0

Es ist zwar möglich, HBase zu verwenden, aber wie bei allen Architekturentscheidungen sollten Sie sich fragen, warum, bevor Sie es verwenden. HBase basiert auf HDFS und wurde für das Speichern großer Mengen von spärlichen Daten entwickelt (etwas, das SQL-Systeme weniger gut handhaben können). Die FlockDB-Datenbank von Twitter wurde jedoch im Hinblick auf Online-Social-Networking- und Graph-Analyse entwickelt. – adelbertc