Wie bestimme ich wahrscheinliche Verbindungen in einem sozialen Netzwerk?

29

Ich bin neugierig darauf, einen Ansatz zu finden, um einen "vorgeschlagenen Freund" -Algorithmus in Angriff zu nehmen.

Facebook hat eine Funktion, mit der es Ihnen Personen empfiehlt, mit denen Sie möglicherweise vertraut sind. Diese Benutzer haben normalerweise (mit Ausnahme der Randfälle, in denen ein Benutzer einen Freund ausdrücklich empfiehlt ) ein sehr ähnliches Netzwerk wie sich selbst. Das heißt, die Anzahl der gemeinsamen Freunde ist hoch. Ich gehe davon aus, dass Twitter bei seinem "Who To Follow" -Mechanismus einen ähnlichen Weg einschlägt.

Stephen Doyle (Igy) , ein Facebook-Mitarbeiter, schlug vor, dass der verwandte Newsfeed, der die EdgeRank-Formel verwendet , darauf hinzudeuten scheint, dass mehr zu schätzen ist, als Freunde wie das Aussehen ähnliche Beiträge sind. Ein anderer Nutzer schlug das Google Rank-System vor.

Facebook gibt die Optimierung des als where anuewede

ue = Affinitätswert zwischen dem betrachtenden Benutzer und dem = Gewicht für diese Kante (Erstellen, Kommentieren, Kommentieren, Markieren usw.) = Zeitabklingfaktor basierend darauf, seit wann die Kante erstellt wurde
we
de

Das Summieren dieser Elemente soll den Rang eines Objekts ergeben, von dem ich annehme, dass er einen Igy-Hinweis enthält. Dies bedeutet, dass für vorgeschlagene Freunde etwas in einem ähnlichen Format verwendet wird.

Ich vermute also, dass auf diese Weise Verbindungen für alle Typen im Allgemeinen über ein Rangsystem hergestellt werden?

phwd
quelle
Als einfachen Ausgangspunkt können Sie ein Empfehlungssystem für Freunde von Freunden verwenden. Das heißt, wenn Sie viele Freunde haben, die Freunde von Person X sind, sollten Sie vielleicht mit Person X befreundet sein.
Joe
1
Es gibt verschiedene Zufallsgraphenmodelle, die versuchen, die Struktur eines echten sozialen Netzwerks zu erfassen. Die Berechnung der Wahrscheinlichkeit einer potenziellen Kante hängt vom verwendeten Modell und den verfügbaren Informationen ab.
Kaveh

Antworten:

7

Sie können sich das soziale Diagramm als Matrix . Ein Ansatz für das Problem besteht darin, zuerst zu berechnen , wodurch alle Pfade der Länge zwei zwischen zwei Akteuren im sozialen Netzwerk angegeben werden. Dies kann als das Gewicht der Verbindung zwischen diesen Freunden von Freunden gesehen werden. Der nächste Schritt besteht darin, die Spalten aus der Zeile von auszuwählen , die der interessierenden Person entsprechen, um die besten Kandidaten für neue Freunde zu finden.MM2M2

Dave Clarke
quelle
1
Dies würde die Anzahl der Pfade zwischen und Person , die dann verwendet werden können, um die Freunde zu ordnen. Es ist grob, gebe ich zu. fip
Dave Clarke
Ich denke, das Problem mit einem Graphen zu modellieren ist sowohl einfacher als auch intuitiver.
MMS
11

Was Sie suchen, ist eine Heuristik. Kein Algorithmus kann sagen, ob zwei Personen, die nicht direkt verbunden sind, Freunde sind oder nicht. Es ist nicht garantiert, dass die Freundschaft / Bekanntschafts-Beziehung transitiv ist (wir können Symmetrie annehmen, aber das könnte im wirklichen Leben sogar eine Strecke sein). Eine gute Heuristik muss daher auf einem Verständnis der Art und Weise basieren, wie Menschen interagieren, und nicht auf einem mathematischen Verständnis der Art von Beziehungsgraphen (obwohl wir die Heuristik in diesen Begriffen quantifizieren müssen).

Freunde von Freunden mit gleicher Wahrscheinlichkeit vorzuschlagen, ist eine relativ billige, aber ungenaue Heuristik. Zum Beispiel hat mein Vater Freunde, aber ich würde nicht sagen, dass ich mit ihnen befreundet bin (obwohl ich wahrscheinlich sagen würde, dass ich mit meinem Vater befreundet bin, um zum Beispiel ein soziales Netzwerk aufzubauen). Eine Person in relativ geringer Entfernung zu haben, macht sie nicht unbedingt zu einem großartigen Kandidaten.

Es scheint im Allgemeinen auch eine schlechte Wahl zu sein, Menschen mit sehr vielen erweiterten Verbindungen zu empfehlen, da dies zu einem exponentiellen Wachstum von Freunden von Menschen führen wird, die früh weiterkommen (die sieben Grade der Trennung von Kevin Bacon sind ein Problem) Beispiel hierfür).

R

  _____
 /     \
a---c   f
|   | /
b   d---e
| \ |
g   h   i

Sagen wir, wir wollen neue Freunde finden für a. a‚s aktuelle Freunde sind b, cund f. Wir bewerten den Netto-Ersatzwiderstand zwischen aund jeden d, e, g, h, und i:

pair   resistance
(a,d)   6/7
(a,e)  13/7
(a,g)   7/4
(a,h)   1/1
(a,i)   inf

Nach dieser Heuristik dist der beste Kandidat Freund, dicht gefolgt von h. gist die nächstbeste Wette, dicht gefolgt von e. ikann von dieser Heuristik niemals ein Freund sein. Es ist wichtig, ob die Ergebnisse dieser Heuristik für echte menschliche soziale Interaktionen repräsentativ sind. Aus rechnerischer Sicht müsste dazu ein Subgraph gefunden werden, der alle Pfade zwischen zwei Individuen enthält (oder interessanterweise eine sinnvoll ausgewählte Verkürzung davon), und dann der äquivalente Widerstand zwischen dem Quellen- und dem Senkenknoten ausgewertet werden.

EDIT: Also, was ist meine soziale Motivation dafür? Nun, dies könnte ein grobes Modell dafür sein, wie schwierig es ist, mit Vermittlern (Freunden) in Kontakt zu treten und anschließend möglicherweise erhebliche Mengen an Informationen zu kommunizieren. In CS-Begriffen (anstelle von physikalischen Begriffen) kann dies als Bandbreite zwischen zwei Knoten in einem Diagramm ausgelegt werden. Erweiterungen dieses Systems würden verschiedene Arten von Verbindungen zwischen Personen mit unterschiedlichen Gewichten (Widerstand, Bandbreite usw.) ermöglichen und wie oben vorgehen.

Patrick87
quelle
10

Es wird viel an diesem Problem gearbeitet, da die Beliebtheit von sozialen Netzwerken zugenommen hat. Das Problem wird in der Regel als "Link Prediction" bezeichnet, und hier und hier finden Sie sehr gute und umfassende Umfragen . Die Methoden reichen von sehr einfach (zB Jaccard-Ähnlichkeit zwischen Knoten) bis sehr komplex (zB Erstellung statistischer Modelle des generativen Verbindungsprozesses). Dies hängt in hohem Maße von den spezifischen Funktionen ab, die in Ihrem Dataset verfügbar sind (z. B. Netzwerkstruktur, Knotenattribute, Kantenattribute usw.). Diese Umfragen geben Ihnen jedoch eine gute Vorstellung davon, wo Sie beginnen sollen.

Nick
quelle
4

Haftungsausschluss: Ich rate hier wild; Ich habe keine Genreforschung gelesen.

Sie können sich ansehen, wie viele Verbindungen zu Knoten sich im Verhältnis zur Anzahl der Verbindungen eines Knotens teilen. Dies ist eine sehr naive (als lokale) Idee, aber hier geht.

NCNN1N2N2N1

|CN1CN2||CN1|α

α[0,1]

Eine andere Idee ist globaler: Bestimmen Sie eine Reihe von Knoten , die der vorliegenden ähnlich sind , und schlagen Sie Verbindungen vor, die viele von ihnen gemeinsam haben. Definieren Sie also die Menge ähnlicher Knoten

SN={M:|CNCM|Nα}

und die plausiblen Vorschläge von

{S:MSN[SM]|SN|β}

α,β[0,1]

SN

Raphael
quelle