Finden Sie das Alter des VK-Benutzers heraus oder was der soziale Graph sonst noch sagen kann

"Sag mir, wer dein Freund ist und ich werde dir sagen, wer du bist."
Euripides 480-406 v e.

Lange Zeit betrachtete ich API VK wie eine Katze in einer Waschmaschine - ich war hypnotisiert von der Möglichkeit, in einem der größten sozialen Netzwerke, das viele Bereiche unseres Lebens durchdrang, Nachforschungen anzustellen. Und wenn eine Frage geboren wurde, ist es möglich, sein Alter anhand des sozialen Kreises eines Benutzers eines sozialen Netzwerks zu bestimmen?




Für diejenigen, die das verborgene Alter kennenlernen wollten, gab es vorher einen kleinen Hack. Sie müssen nur die Suche nach Personen verwenden, enge Parameter angeben, damit das gewünschte Profil in den SERP fällt, und dann die binäre Suche verwenden, um den Altersbereich zu bestimmen. Oder es stellt sich heraus, dass die Kontaktinformationen plötzlich das Jahr des Abschlusses anzeigen. Und Sie müssen keine Skripte schreiben. Das verborgene Alter und die indirekten Informationen können jedoch verzerrt sein, und vor allem geht es in dem Artikel immer noch nicht darum, wie man mehr persönliche Informationen erhält. Der Artikel schlägt vor, einen der Aspekte des sozialen Graphen zu analysieren.

Eines der ersten Dinge, die bei der Betrachtung von Profilverbindungen in den Sinn kommen: Sehen wir uns das Alter von Klassenkameraden und Klassenkameraden an. In der überwiegenden Mehrheit wird dieser Benutzer ein Alter von + - 1 Jahr haben. Dafür dank universeller Sekundarschulbildung. Es gibt nur eine Einschränkung: Klassenkameraden identifizieren. Je mehr Zeit vom Abschluss vergeht, desto mehr beginnen wir, uns in fleckigeren Kreisen zu drehen. Schulfreunde scheinen in einem früheren Leben zu sein, und jetzt gehören sie fast unmerklich zu einer großen Anzahl neuer Freunde. Ist es für Profile von Menschen im reifen Alter möglich, irgendwie zu verstehen, welchen Strom sie studiert haben und daher ungefähr das Alter?

Betrachten wir also die Aufgabe, das Alter eines Benutzers zu bestimmen, als eine Untergruppe von Klassenkameraden und Klassenkameraden. Das heißt, wir gingen davon aus, dass er bei Freunden eine bestimmte Anzahl von Klassenkameraden hat, deren Alter ungefähr dem Alter des Profils entspricht. Natürlich gibt es Ausnahmen, aber sie sind selten. Eine Person geht 10 Jahre lang von Glocke zu Glocke zur Schule. In dieser Zeit wurden viele intersoziale Kontakte geknüpft. Kurz gesagt, jeder kennt sich, während die Altersverteilung in diesem sozialen Gewirr minimal ist. Wenn sich eine Person in Zukunft in der Regel anderen Gruppen anschließt, ist die Altersverteilung in diesen Gruppen erheblich, egal ob es sich um Arbeit, sportliche Aktivitäten oder einen Interessenverein handelt. Basierend auf diesem Unterschied werden wir versuchen, die notwendigen sozialen Gruppen zu identifizieren.

Schauen wir uns eines der VK-Profile mit vielen Freunden an. Wir erhalten die Freundesliste des Benutzers mithilfe der Abfrage "friends.get". Wir werden Profile nur mit dem angegebenen Alter berücksichtigen und sie in Form eines Histogramms pro Jahr auf der Zeitachse platzieren. Es gibt eine leichte Nuance, wie man viele Freunde in jährliche Intervalle aufteilt. Schließlich wollen wir sicherstellen, dass Klassenkameraden in ein Intervall eintreten und sich nicht auf zwei benachbarte verteilen. Es wurde experimentell festgestellt, dass das Brechen des Jahres im Herbst am besten ist und dass Benutzer mit Geburtsdaten in der gelben Jahreszeit sofort in zwei benachbarte Intervalle eintreten. Das heißt, 15-Monats-Intervalle von September bis November werden in Schritten von 12 Monaten erhalten.

oX ist das Alter der Benutzer, oY ist die Anzahl der Benutzer, die in ein bestimmtes Intervall fallen.

Wir beobachten ein Fünfjahresplateau mit einer maximalen jährlichen Anzahl von Freunden. Es ist überhaupt nicht offensichtlich, in diesem Fünfjahreszeitraum eine Gruppe von Gleichaltrigen zu finden. In Wahrheit ist ein solches Bild nicht typisch. Häufiger hebt sich das Geburtsjahr von Klassenkameraden / Klassenkameraden durch eine größere Anzahl von Freunden von den anderen ab. Aber lassen Sie uns in einem schwierigen Fall für jeden Benutzer das Verhältnis der Freundschaften innerhalb der Jahresgruppe zur Anzahl der Verbindungen mit anderen Freunden des ursprünglichen Benutzers ermitteln, für die wir das Alter bestimmen. dann mitteln wir diesen Indikator für jedes Jahr. Wir nennen dies den normalisierten Konnektivitätskoeffizienten.

oX ist das Alter der Benutzer, oY ist der normalisierte Konnektivitätskoeffizient für ein bestimmtes Intervall.

Das Bild hat sich geändert, und die Führer haben ein einziges Jahr. Ein Team mit einem einheitlichen Alter hat einen großen Anteil daran, daher haben wir das Recht zu erwarten, dass der Benutzer ein ähnliches Alter hat, da er Teil davon ist. Aber was ist, wenn eine Person in diesem Kollektiv eine besondere Rolle spielt, zum Beispiel kein Klassenkamerad, sondern ein Lehrer? In der Tat kann es für Lehrer / Ausbilder Untergruppen mit einer hohen Verbindungsdichte in einem engen Altersintervall geben. Zum Teil kann dieser Fall behandelt werden, wenn bei der Auswahl einer Gruppe nicht die höchste Konnektivität, sondern das höchste Alter unter Gruppen mit einer ausreichend großen Konnektivität vorliegt. Mit anderen Worten, verwenden Sie die Logik, dass eine Person auf ihrem Lebensweg zuerst ein gewöhnlicher Schüler sein muss und erst dann in „Teams mit einem einheitlichen Alter“ eine herausragende Rolle spielt.

Eine detailliertere Beschreibung und einige Formeln
Express numerisch auf dem Graph-Phänomen erkannt. F0 bezeichne die Gruppe von Freunden des Benutzers, für den das Alter berechnet wird. Fi - viele Freunde jeden Profils. Fi, y ist die Gruppe von Profilfreunden mit einem bestimmten Geburtsdatum im jährlichen Intervall y. Dann ist i, y die Verbindung des Profils i im Intervall :

Ci,y= frac|F0 capFi,y||F0 capFi|


y ist der nicht normalisierte Konnektivitätskoeffizient im Intervall y für alle Profile:

Cy= sumiF0,yCi,y


Und schließlich das gewünschte Geburtsjahr:

 DeclareMathOperator argmaxargmaxJahr von geburt= argmaxy( fracCy|F0,y|):Cy geq0.7 maxy inY(Cy)



Es gab auch eine Idee zu überlegen, zu welchem ​​Typ diese oder jene Verbindung gehört. Wenn die Art der Verbindung Schul- oder Universitätsfreunde sind, dann betrachten Sie sie mit erhöhtem Gewicht. Und wenn die Art des Kollegen, der Verwandten und alles andere, dann berücksichtigen Sie solche Beziehungen im Allgemeinen nicht. Wenn Sie jedoch Anforderungen verwenden, die solche Informationen herunterladen, erhöht sich die Wartezeit um den Faktor 5. Darüber hinaus ist die Angabe des Verbindungstyps keine gängige Praxis. Daher wurde beschlossen, solche Informationen nur für Profile mit wenigen Freunden anzufordern.

Aus dem obigen Algorithmus ergeben sich die natürlichen Grenzen der Anwendbarkeit des Ansatzes zur Bestimmung des Alters. Wenn der Benutzer während seiner Schulzeit nicht unter Nostalgie leidet und keine Freunde seiner Klassenkameraden / Klassenkameraden hat, müssen wir eine andere Methode anwenden.

Wie wäre es, dieses Chaos im Geschäft zu versuchen? In der VK-Gruppe „Wahrsagerin des Zeitalters“ wurde ein Comic-Service implementiert. Dort verliert ein freundlicher Bot an Alter, wenn Sie mit dem oben genannten Algorithmus einen Link auf ein nicht geschlossenes VK-Profil setzen.

Wie ist der Service aufgebaut?
Das erste Glied in der Arbeit des Wahrsagers ist der Nachrichtenmechanismus der VK-Gruppe. In den Gruppeneinstellungen ist die Rückruf-API mit ihrem eigenen Server verbunden. Wählen Sie als gesendete Ereignistypen "Eingehende Nachricht" aus. Auf diese Weise wird die Gruppennachricht zu einer Anforderung auf unserem Server. Wenn Sie nicht wie ich mit dem Frontend befreundet sind, ist dies eine super Option. Anschließend wird vom Server aus die VK-API mit users.get-Anforderungen für das betreffende Profil und friends.get für Freunde des Profils mit einem bekannten Geburtsdatum aufgerufen. Ihre Implementierung erfordert Zugriffstoken-VK-Anwendungen. Ich habe keine Anfragen verwendet, für die eine Bestätigung der Benutzerrechte erforderlich ist, um keine Personen mit Anfragen nach Zugriffsberechtigungen zu laden. Nachdem die Berechnung des geschätzten Alters vorgenommen wurde, wird eine Antwort auf die Anfrage der Gruppe gebildet, und der Wahrsager-Benutzer sieht die Antwort in den Dialogen. Billig und fröhlich.

Was die Verbesserung des Algorithmus selbst angeht, hindert Sie nichts daran, noch weiter zu gehen, einen Trainingsdatensatz aus Profilen mit einem bestimmten Alter zu sammeln und ein Regressionsmodell zu trainieren, das beispielsweise auf einer Adjazenzmatrix eines Altersdiagramms unter Profilfreunden basiert. Ich bin sicher, dass bei einer ausreichend großen Stichprobe die Ergebnisse genauer sind als die Heuristiken. Wie ich oben erwähnt habe, war ich neugierig, die Grundidee zu überprüfen, daher habe ich nicht vor, diese Richtung zu entwickeln.

Abschließend möchte ich auf den Aspekt der Ethik eingehen. Meiner Meinung nach befindet sich die „Wahrsagerin des Zeitalters“ an der Grenze des Privatlebens, überschreitet diese aber immer noch nicht, da sie offene Daten für die Analyse verwendet. Daher funktioniert der Dienst für Benutzer mit einem versteckten Profil nicht.

Es besteht das Gefühl, dass alle Arten von „Wahrsagern des Alters“, wie Suchmaschinen, SearchFace nur die ersten Anzeichen einer sozial transparenten Welt sind. In gewissem Maße kann dies als Rückkehr zu den Grundlagen bezeichnet werden. Der Mensch existierte lange Zeit in kleinen Gesellschaften, in denen sich alle in Sichtweite befanden. Ein offener Ruf war ein wesentlicher Bestandteil des Mechanismus der sozialen Regulierung. Ja, neue Tools werden es nach und nach ermöglichen, die sozialen Interaktionen einer Person in voller Sicht wieder herzustellen, nur jetzt auf globaler Ebene. Ja, wie jedes Werkzeug kann es zum Nachteil eingesetzt werden. Muss ich sie allen zugänglich machen? Weiß nicht. Ich bin mir jedoch sicher, dass sich das Gleichgewicht zum konstruktiven Einsatz definitiv nicht verschieben wird, wenn solche Tools nur einem begrenzten Personenkreis zur Verfügung stehen.

Source: https://habr.com/ru/post/de447992/


All Articles