Wo und wie man in Graph-Einbettungen kommt

Hallo Habr!


Vor drei Jahren habe ich auf der Website von Leonid Zhukov einen Link zum Verlauf der Analyse von Netzwerken durch Yure Leskovek cs224w gesetzt, und jetzt werden wir ihn zusammen mit allen in unserem komfortablen Chat im Kanal # class_cs224w aufnehmen. Unmittelbar nach dem AufwÀrmen mit einem offenen maschinellen Lernkurs , der in wenigen Tagen beginnt.


Bild


Frage: Was lesen sie dort?
Antwort: Moderne Mathematik. Wir zeigen ein Beispiel fĂŒr die Verbesserung des Prozesses der IT-Rekrutierung.


Unter der Katze des Lesers gibt es eine Geschichte darĂŒber, wie diskrete Mathematik einen Projektmanager zu neuronalen Netzen fĂŒhrte, warum ERP- und Produktmanager das Bioinformatik-Magazin lesen sollten, wie die Aufgabe, Verbindungen zu empfehlen, gelöst und gelöst wurde, wer Graph-Einbettungen benötigt und woher sie kamen, sowie die Meinung dazu wie man aufhört, sich bei den Interviews vor Fragen zu BĂ€umen zu fĂŒrchten, und was dies alles kosten kann. Lass uns gehen!


Unser Plan lautet wie folgt:


1) Was ist cs224w
2) Kariert oder reiten
3) Wie bin ich zu all dem gekommen?
4) Warum das Bioinformatik-Magazin lesen?
5) Was ist das Einbetten von Graphen und woher kommt es?
6) ZufÀlliger Kinderwagen in Matrixform
7) Die RĂŒckkehr eines zufĂ€lligen Kinderwagens und die StĂ€rke der Bindungen
8) Der Pfad eines zufÀlligen Vagabunden und die Spitze im Vektor
9) Unsere Tage sind ein zufĂ€lliger Trampel fĂŒr alle und jeden
10) Wie und wo werden solche Daten gespeichert und wo werden sie abgerufen?
11) Was zu fĂŒrchten
12) Notiz an den Spieler


Was ist cs224w


Der Kurs von Yure Leskovek Analysis of Networks sticht in der Galaxie der Bildungsprodukte der FakultĂ€t fĂŒr Computerwissenschaften der Stanford University heraus. Der Unterschied zu den anderen besteht darin, dass das Programm ein sehr breites Spektrum von Themen abdeckt. Es ist die InterdisziplinaritĂ€t, die das Abenteuer zu einer Herausforderung macht. Der Preis ist die universelle Sprache fĂŒr die Beschreibung komplexer Systeme - Graphentheorie, die in zehn Wochen behandelt werden kann.


Bild


Der Kurs kostet sich nicht so viel, öffnet aber das Graduate Certificate- Programm fĂŒr Mining Massive Data Sets , das noch viele Extras enthĂ€lt.


Zweiter im Abenteuer ist Andrew Euns CS229 Machine Learning, fĂŒr das unnötigerweise geworben wird.


Es folgen die massiven CS246 Mining-DatensĂ€tze Jure Leskoveka, in denen diejenigen, die dies wĂŒnschen, eingeladen werden, sich auf MapReduce und Spark auszuruhen.


Chris Manning beendet das Bankett CS276 Information Retrieval und Web Search.


Als Bonus wurden die massiven CS246H Mining-DatensĂ€tze: Hadoop Labs speziell fĂŒr diejenigen entwickelt, die nur wenige waren. Wieder Yure besuchen.


Im Allgemeinen versprechen sie, dass diejenigen, die das Programm bestanden haben, FĂ€higkeiten und Kenntnisse erwerben, die ausreichen, um im Internet nach Informationen zu suchen (ohne Google und andere wie sie).


Fahrt oder Kontrolleure


Es war einmal mein damaliger Leiter und Mentor - STO im ukrainischen Nestlé -, der mir jung und ehrgeizig erklÀrte und versuchte, einen MBA zu einem Star zu machen, die Wahrheit, dass Erfahrung und Wissen auf dem Arbeitsmarkt kaufen und verkaufen und nicht Diplome und Testergebnisse.


Die oben beschriebene Spezialisierung kann online fĂŒr symbolische 18.900 USD abgeschlossen werden.


Im Durchschnitt dauert ein Abenteuer 1-2 Jahre, jedoch nicht lĂ€nger als 3. Um ein Zertifikat zu erhalten, mĂŒssen Sie alle Kurse mit einer Bewertung von mindestens B (3,0) abschließen.


Es gibt noch einen anderen Weg.


Alle Materialien der Kurse von Jure Leskovek werden offen und sehr schnell veröffentlicht. Daher können diejenigen, die dies wĂŒnschen, jederzeit leiden und die Belastung mit den FĂ€higkeiten abstimmen. Besonders begabt empfehle ich den Abenteuermodus "Das ist Stanford, Schatz!" - parallel zum Kurs verlaufen - Videos von Vorlesungen werden innerhalb weniger Tage veröffentlicht, zusĂ€tzliche Literatur ist sofort verfĂŒgbar, Hausaufgaben und Lösungen werden schrittweise geöffnet.


In dieser Saison werden wir nach dem Ende des Open Machine Learning-Kurses auf HabrĂ© , der zum AufwĂ€rmen nĂŒtzlich ist, ein Rennen in der speziellen Kanalklasse # cs_cs224w ods.ai organisieren.


Es wird empfohlen, ĂŒber die folgenden FĂ€higkeiten zu verfĂŒgen:


  • Grundlagen der Computerwissenschaften auf einem Niveau, das ausreicht, um nicht triviale Programme zu schreiben.
  • Grundlagen der Wahrscheinlichkeitstheorie.
  • Grundlagen der linearen Algebra.

Wie bin ich zu all dem gekommen?


Er lebte fĂŒr sich selbst, kĂŒmmerte sich nicht darum. Verwaltete SAP- Implementierungsprojekte. Zuweilen - er war in seiner Hauptspezialisierung als Spieltrainer tĂ€tig - und CRM verdreht die NĂŒsse. Man kann sagen, fast hat niemand berĂŒhrt. Ich war in der Selbstbildung beschĂ€ftigt. Irgendwann entschied ich mich, mich auf den Bereich der GeschĂ€ftstransformation zu spezialisieren (oder organisatorische Änderungen vorzunehmen). Die Analyse von Organisationen vor und nach VerĂ€nderungen ist ein wichtiger Bestandteil dieser Arbeit. Zu wissen, wo und wo man sich Ă€ndert, hilft sehr. Das VerstĂ€ndnis der Beziehungen zwischen Menschen ist ein wesentlicher Erfolgsfaktor. Er verbrachte mehrere Jahre damit, die "weichen" Methoden fĂŒr die Erforschung von Organisationen zu studieren, konnte sich aber immer noch nicht mit der Frage zufrieden geben: "Wer wird wen abholen: der Oberbefehlshaber des Hauptbuchhalters, oder ist sie stĂ€rker als der Rest des Lagerhauses?" Ich habe mich seit mehreren Jahren hintereinander gefragt. Ich suche nach einer Möglichkeit, sicher zu messen.


2014 war ein Wendepunkt, als ich meine TrĂ€ume vom MBA aufgab und Statistik und Informationsmanagement an der neuen UniversitĂ€t von Lissabon (der ersten und jetzt lebenden Telekommunikationsabteilung der bereits bestehenden FakultĂ€t fĂŒr Luft- und Raumfahrtsysteme der Polytechnischen UniversitĂ€t Kiew) als zweithöchste auswĂ€hlte (ich höre das Trommelwirbel). + Kommunikationsabteilung beim MilitĂ€r).


Im ersten Semester der zweiten Magistratur versuchte er die Analyse sozialer Netzwerke - eine der Anwendungen der Graphentheorie. Damals erfuhr ich, dass es Algorithmen gibt, die Probleme lösen, wie zum Beispiel, wer mit jemandem gegen die Implementierung neuer Technologien befreundet sein wird, aber ich wusste es vorher nicht und trocknete meinen Kopf und analysierte die Verbindungen von Menschen in meinem Kopf - es schwillt wirklich an. Es stellte sich zufÀllig heraus, dass die Analyse von Netzwerken nach den ersten Schritten ein kontinuierliches Ausgraben von Daten und maschinellem Lernen ist, entweder mit oder ohne Lehrer.


Anfangs gab es genug Klassiker.


Ich wollte mehr. Um mich mit Einbettungen zu befassen (und Marinka Zhitniks Arbeit auf ihre Aufgaben zu beschrĂ€nken), musste ich mich mit tiefem Lernen befassen, was durch den Deep-Learning-Kurs an den Fingern sehr hilfreich war. Angesichts der Geschwindigkeit, mit der die Leskovek-Gruppe neues Wissen schafft, reicht es aus, ihre Arbeit einfach zu ĂŒberwachen, um Managementaufgaben automatisch zu lösen.


Warum das Bioinformatik-Magazin lesen?


Teambuilding ist keine leichte Aufgabe. Wer nicht mit einem in dasselbe Boot gesetzt werden sollte, ist eines der dringenden Probleme. Besonders wenn die Gesichter neu sind. Und die Gegend ist unbekannt. Und um zu fernen Ufern zu gelangen, braucht man nicht ein Boot, sondern eine ganze Flottille. Unterwegs ist eine enge Interaktion sowohl in Booten als auch zwischen ihnen erforderlich. Übliche Arbeitstage der SAP- Implementierung, an denen der Kunde ein fĂŒr seine Besonderheiten konfiguriertes System aus einer Reihe von Modulen liefern muss und der Projektplan aus Tausenden von Zeilen besteht. FĂŒr all seine Arbeit hat er nie jemanden eingestellt - sie haben immer ein Team zusammengestellt. Sie sind ein Projektmanager, Sie haben Befugnisse und drehen sich um. Irgendwie so. Verdreht.


Lebensbeispiel:

Ich selbst habe nicht interviewt, aber ich habe Timlids dafĂŒr zugewiesen. Und fĂŒr Ressourcen - Nachfrage von mir. Die Integration neuer Teammitglieder liegt ebenfalls in der Verantwortung des Projektmanagers. Ich glaube, dass viele zustimmen werden, dass der Prozess fĂŒr alle Teilnehmer umso angenehmer ist, je besser die Kandidatenliste vorbereitet ist. Wir werden diese Aufgabe im Detail betrachten.


NatĂŒrliche Faulheit erforderlich - finden Sie einen Weg zur Automatisierung. Fand es. Ich teile.


Ein bisschen Managementtheorie. Die Adizes-Methodik basiert auf einem Grundprinzip: Organisationen haben wie lebende Organismen ihren eigenen Lebenszyklus und zeigen vorhersehbare und sich wiederholende Verhaltensmanifestationen wĂ€hrend Wachstum und Alterung. In jeder Phase der Organisationsentwicklung erwartet das Unternehmen eine Reihe spezifischer Probleme. Wie gut das Management des Unternehmens mit ihnen umgeht, wie erfolgreich es die fĂŒr einen gesunden Übergang von Stufe zu Stufe erforderlichen Änderungen vornimmt und den endgĂŒltigen Erfolg oder Misserfolg dieser Organisation bestimmt.


Ich bin seit ungefÀhr zehn Jahren mit den Ideen von Yitzhak Adizes vertraut und stimme in vielerlei Hinsicht zu.


Persönlichkeiten von Mitarbeitern - wie Vitamine - beeinflussen unter bestimmten Bedingungen den Erfolg. Es gibt bekannte Beispiele dafĂŒr, wie erfolgreiche FĂŒhrungskrĂ€fte, die aus einer Branche kamen, in einer anderen gescheitert sind. Es passiert schlimmer. Zum Beispiel hat Marissa Mayer, die eine Google-Suche ausgelöst hat, Yahoo fallen lassen. Warren Buffett sagt, es wĂ€re ihm kaum gelungen, in Bangladesch geboren zu werden. Die Umgebung und die Art der Interaktion darin sind ein wichtiger Faktor.


Es wÀre schön, Komplikationen vor Experimenten an einem lebenden vorherzusagen, oder?


In dieser Übersicht liegt die nĂ€chste Studie von Marinka itnik, die in der Zeitschrift Bioinformatics veröffentlicht wurde. Die Aufgabe, Nebenwirkungen bei kombiniertem Drogenkonsum vorherzusagen, liegt mathematisch nahe am Management. Alles dank der Vielseitigkeit der Grafiksprache. Betrachten wir es genauer.


Bild


Decagon Graph Convolutional Network - ein Tool zur Vorhersage von Verbindungen in multimodalen Netzwerken.


Das Verfahren besteht darin, ein multimodales Diagramm von Protein-Protein-, Arzneimittel-Protein-Wechselwirkungen und Nebenwirkungen aus einer Kombination von Arzneimitteln zu erstellen, bei denen es sich um Arzneimittel-Arzneimittel-Beziehungen handelt, wobei jede der Nebenwirkungen eine Kante eines bestimmten Typs darstellt. Decagon sagt eine bestimmte Art von Nebenwirkung voraus, die im Krankheitsbild auftritt.


Die Abbildung zeigt ein Beispiel eines Diagramms der Nebenwirkungen, die aus Genom- und Populationsdaten erhalten wurden. Insgesamt - 964 verschiedene Arten von Nebenwirkungen (angezeigt durch Rippen vom Typ ri, i = 1, ..., 964). ZusÀtzliche Informationen im Modell werden in Form von Vektoren der Eigenschaften von Proteinen und Arzneimitteln dargestellt.


Bild


FĂŒr das Medikament Ciprofloxacin (Knoten C) spiegeln die hervorgehobenen Nachbarn in der Grafik die Auswirkungen auf vier Proteine ​​und drei andere Medikamente wider. Wir sehen, dass Ciprofloxacin (Knoten C), das gleichzeitig mit Doxycyclin (Knoten D) oder Simvastatin (Knoten S) eingenommen wird, das Risiko einer Nebenwirkung einer Verlangsamung der Herzfrequenz (eine Nebenwirkung wie r2) und einer Kombination mit Mupirocin (M) erhöht - erhöht das Blutungsrisiko des Magen-Darm-Trakts (Nebenwirkungsart r1).


Decagon sagt Assoziationen zwischen Arzneimittelpaaren und Nebenwirkungen (rot dargestellt) voraus, um Nebenwirkungen bei gleichzeitiger Anwendung zu identifizieren, d. H. diese Nebenwirkungen, die mit keinem der Medikamente des Paares separat assoziiert werden können.


Decagon Convolutional Neural Network Graph Architektur:


Bild


Das Modell besteht aus zwei Teilen:


Encoder: Graph Convolutional Network (GCN), das einen Graph empfĂ€ngt und fĂŒr Knoten einbettet,
Decoder: Ein Tensorfaktorisierungsmodell, das diese Einbettungen verwendet, um Nebenwirkungen zu erkennen.


Weitere Informationen finden Sie auf der Projektwebsite oder unten.


Großartig, aber wie kann man das mit Teambuilding verbinden?


Bild


So etwas in der Art .


Hier lohnt es sich, den Granit der Wissenschaft auszugraben, um sich auf dem Ă€hnlich beschriebenen Forschungsgebiet wohl zu fĂŒhlen. Das Graben wird zwar intensiv stattfinden - die Graphentheorie entwickelt sich aktiv weiter. Deshalb ist es die Speerspitze des Fortschritts - nur wenige Menschen fĂŒhlen sich dort wohl.


Um die Details der Funktionsweise von Decagon zu verstehen, werden wir einen Ausflug in die Geschichte machen.


Was ist das Einbetten von Graphen und woher kommt es?


Ich habe in den letzten vier Jahren eine Änderung in der Reihe der fortgeschrittenen Methoden zur Lösung von Problemen bei der Vorhersage von Verbindungen in Diagrammen beobachtet. Das hat Spaß gemacht. Fast wie in einem MĂ€rchen - je weiter, desto schlimmer. Die Evolution folgte dem Weg von der Heuristik, die die Umgebung fĂŒr den oberen Rand des Diagramms bestimmte, zu zufĂ€lligen Kinderwagen, dann erschienen spektrale Methoden (Matrixanalyse) und nun neuronale Netze.


Wir formulieren das Problem der Vorhersage von Beziehungen:

Betrachten Sie ein ungerichtetes Diagramm $ inline $ \ begin {align *} G (V, E) \ end {align *} $ inline $ wo
$ inline $ \ begin {align *} V \ end {align *} $ inline $ - viele Gipfel $ inline $ \ begin {align *} v \ end {align *} $ inline $ ,
$ inline $ \ begin {align *} E \ end {align *} $ inline $ - viele Rippen $ inline $ \ begin {align *} e (u, v) \ end {align *} $ inline $ die Spitzen verbinden $ inline $ \ begin {align *} u \ end {align *} $ inline $ und $ inline $ \ begin {align *} v \ end {align *} $ inline $ .

Wir definieren die Menge aller möglichen Kanten $ inline $ E ^ {\ diamant} $ inline $ seine Macht
$ inline $ \ begin {align *} | E ^ {\ diamant} | & = \ frac {| V | * (| V | - 1)} {2} \\ \ end {align *} $ inline $ wo
$ inline $ \ begin {align *} | V | = n \ end {align *} $ inline $ Ist die Anzahl der Eckpunkte.

Offensichtlich können viele nicht existierende Kanten ausgedrĂŒckt werden als $ inline $ \ begin {align *} \ overline {E} = E ^ {\ diamant} - E \ end {align *} $ inline $ .

Wir gehen davon aus, dass im Set $ inline $ \ begin {align *} \ overline {E} \ end {align *} $ inline $ Es gibt verpasste Links oder Links, die in Zukunft erscheinen werden, und wir möchten sie finden.

Die Lösung besteht darin, eine Funktion zu definieren $ inline $ \ begin {align *} D (u, v) \ end {align *} $ inline $ Der Abstand zwischen den Scheitelpunkten des Diagramms, der die Struktur des Diagramms berĂŒcksichtigt $ inline $ \ begin {align *} G (t_0, t_0 ^ \ star) \ end {align *} $ inline $ ĂŒber einen bestimmten Zeitraum eingestellt $ inline $ \ begin {align *} (t_0, t_0 ^ \ star) \ end {align *} $ inline $ das Auftreten von Kanten vorhersagen $ inline $ \ begin {align *} G (t_1, t_1 ^ \ star) \ end {align *} $ inline $ im Bereich $ inline $ \ begin {align *} (t_1, t_1 ^ \ star) \ end {align *} $ inline $ .


Eine der ersten Veröffentlichungen , die vorschlug, vom Clustering zur Vorhersage von Beziehungen im Zusammenhang mit der Untersuchung der gemeinsamen Genexpression ĂŒberzugehen, erschien im Jahr 2000 in der Zeitschrift Bioinformatics (wie Sie sich vorstellen können). Bereits 2003 wurde ein Artikel von John Kleinberg mit einem Überblick ĂŒber relevante Methoden zur Lösung des Problems der Vorhersage von Verbindungen in einem sozialen Netzwerk veröffentlicht. Sein Buch " Netzwerke, Menschenmengen und MĂ€rkte: Überlegungen zu einer stark vernetzten Welt " ist ein Lehrbuch, das wĂ€hrend des cs224w-Kurses gelesen werden sollte. Die meisten Kapitel sind im erforderlichen Leseabschnitt aufgefĂŒhrt.


Ein Artikel kann als Wissensscheibe in einem engen Bereich betrachtet werden, wie wir sehen, war zunÀchst die Auswahl an Methoden klein und umfasste:


  • Methoden, die auf Graphnachbarn basieren - und die offensichtlichste davon ist die Anzahl der gemeinsamen Nachbarn.

Wir geben die Definition:

Oben $ inline $ u $ inline $ ist ein Graphnachbar fĂŒr die Spitze $ inline $ v $ inline $ wenn Rippe $ inline $ e (u, v) \ in E $ inline $ .

Wir bezeichnen $ inline $ \ Gamma (u) $ inline $ viele Nachbarn Gipfel $ inline $ u $ inline $ ,

dann der Abstand zwischen den Spitzen $ inline $ u $ inline $ und $ inline $ v $ inline $ kann geschrieben werden als

$ inline $ D_ {CN} (u, v) = \ Gamma (u) \ cap \ Gamma (v) $ inline $ .


Je grĂ¶ĂŸer der Schnittpunkt der Nachbarn zweier Gipfel ist, desto wahrscheinlicher ist intuitiv die Verbindung zwischen ihnen. Beispielsweise treten die meisten neuen Bekanntschaften mit Freunden von Freunden auf.


Fortgeschrittenere Heuristiken - Jacquard-Koeffizient $ inline $ D_J (u, v) = \ frac {\ Gamma (u) \ cap \ Gamma (v)} {\ Gamma (u) \ cup \ Gamma (v)} $ inline $ (die bereits hundert Jahre alt war) und vor kurzem (zu dieser Zeit) die vorgeschlagene Entfernung Adamik / Adar $ inline $ D_ {AA} (u, v) = \ sum_ {x \ in \ Gamma (u) \ cap \ Gamma (v)} \ frac {1} {\ log | \ Gamma (x) |} $ inline $ Entwickeln Sie die Idee durch einfache Transformationen.


  • Methoden, die auf Pfaden entlang eines Diagramms basieren - die Idee ist, dass der kĂŒrzeste Pfad zwischen zwei Scheitelpunkten in einem Diagramm der Wahrscheinlichkeit einer Verbindung zwischen ihnen entspricht - je kĂŒrzer der Pfad, desto höher die Wahrscheinlichkeit. Sie können weiter gehen und nicht nur den kĂŒrzesten Pfad berĂŒcksichtigen, sondern auch alle anderen möglichen Pfade zwischen Spitzenpaaren, z. B. die Pfade wiegen, wie dies bei der Katz-Entfernung der Fall ist. Bereits dann wird die erwartete PfadlĂ€nge eines zufĂ€lligen Vagabunden erwĂ€hnt - der VorlĂ€ufer der Empfehlungsmethode fĂŒr Facebook-Freunde.

SchÀtzen Sie die QualitÀt der Prognose:

  • FĂŒr jedes Eckpunktpaar $ inline $ (u, v) $ inline $ jede nicht vorhandene Rippe $ inline $ e (u, v) \ in \ overline {E} $ inline $ Berechnen Sie die Entfernung $ inline $ D (u, v) $ inline $ in der Grafik $ inline $ G (t_0, t_0 ^ \ star) $ inline $ .
  • Sortieren Sie die Paare $ inline $ (u, v) $ inline $ absteigende Entfernung $ inline $ D (u, v) $ inline $ .
  • Zum Mitnehmen $ inline $ m $ inline $ Paare mit den höchsten Werten ist unsere Prognose.
  • Mal sehen, wie viele der vorhergesagten Kanten in erschienen sind $ inline $ G (t_1, t_1 ^ \ star) $ inline $ .


Es ist wichtig, sich daran zu erinnern, dass die Anzahl der gemeinsamen Nachbarn und der Adamik / Adar-Abstand leistungsstarke Methoden sind, die das grundlegende Niveau der PrognosequalitĂ€t nur fĂŒr die Linkstruktur angeben. Wenn Ihr Empfehlungssystem ein schwĂ€cheres Ergebnis zeigt, stimmt etwas nicht.


Im Allgemeinen sind Diagrammeinbettungen eine Möglichkeit, Diagramme fĂŒr maschinelle Lernaufgaben mithilfe der Transformationsfunktion kompakt darzustellen $ inline $ \ begin {align *} \ phi: G (V, E) \ longmapsto \ mathbb {R} ^ d \ end {align *} $ inline $ .


Wir haben mehrere dieser Funktionen untersucht, die effektivste der ersten. Eine breitere Liste wird in einem Artikel von Kleinberg beschrieben. Wie wir aus der Übersicht sehen können, begannen sie bereits damals, Methoden auf hoher Ebene anzuwenden, wie z. B. Matrixzerlegung, vorlĂ€ufige Clusterbildung und Werkzeuge aus dem Arsenal der Computerlinguistik. Vor fĂŒnfzehn Jahren fing alles gerade erst an. Einbettungen waren eindimensional.


Matrixförmiger Kinderwagen


Der nĂ€chste Meilenstein auf dem Weg zu denselben Graph-Einbettungen war die Entwicklung von Random-Walk-Methoden. Neue Formeln zur Berechnung der Entfernung zu erfinden und zu rechtfertigen, wurde offenbar zu einer Pause. In einigen Anwendungen scheint es, dass Sie sich nur auf den Zufall verlassen und den Landstreichern vertrauen mĂŒssen.


Wir geben die Definition:

Graph Adjazenzmatrix $ inline $ g $ inline $ mit einer endlichen Anzahl von Eckpunkten $ inline $ n $ inline $ (nummeriert von 1 bis $ inline $ n $ inline $ ) Ist eine quadratische Matrix $ inline $ a $ inline $ die GrĂ¶ĂŸe $ inline $ n \ times n $ inline $ in dem der Wert des Elements $ inline $ a_ {ij} $ inline $ gleich dem Gewicht $ inline $ w_ {ij} $ inline $ Rippen $ inline $ e (i, j) $ inline $ .

Hinweis: Hier entfernen wir uns absichtlich von den zuvor verwendeten Scheitelpunktindikatoren $ inline $ u, v $ inline $ und wir werden die der linearen Algebra bekannte Notation verwenden und im Allgemeinen mit Matrizen arbeiten $ inline $ i, j $ inline $ .

Wir veranschaulichen die betrachteten Konzepte:

Lass $ inline $ g $ inline $ - Grafik von vier Eckpunkten $ inline $ \ {A, B, C, D \} $ inline $ durch Rippen verbunden.

Um die Konstruktionen zu vereinfachen, nehmen wir an, dass die Kanten unseres Graphen bidirektional sind, d. H. $ inline $ \ forall e (i, j) \ in E, \ existiert e (j, i) \ in E \ land w_ {ij} = w_ {ji} $ inline $ .

$ inline $ e (A, B), w_ {AB} = 1; \\ e (B, C), w_ {BC} = 2; \\ e (A, C), w_ {AC} = 3; \ \ e (B, C), w_ {BC} = 1. $ inline $

Wir reprĂ€sentieren die SĂ€tze von Kanten: $ inline $ E $ inline $ - in blau und $ inline $ \ overline {E} $ inline $ - in grĂŒn.

Bild

$ inline $ \ begin {align *} A = \ left [\ begin {matrix} 0 & 1 & 3 & 0 \\ 1 & 0 & 2 & 1 \\ 3 & 2 & 0 & 0 \\ 0 & 1 & 0 & 0 \ end {matrix} \ right] \ end {align *} $ inline $


Das Schreiben eines Diagramms in Matrixform eröffnet interessante Möglichkeiten. Um sie zu demonstrieren, werfen Sie einen Blick auf die Arbeit von Sergey Brin und Larry Page und sehen Sie, wie PageRank, ein Algorithmus zum Ranking von Diagrammscheitelpunkten, immer noch ein wichtiger Bestandteil der Google-Suche ist.


PageRank - geprĂ€gt, um die besten Seiten im Internet zu suchen. Eine Seite gilt als gut, wenn sie von anderen guten Seiten geschĂ€tzt (verlinkt) wird. Je mehr Seiten Links dazu enthalten und je höher ihre Bewertung ist, desto höher ist der PageRank fĂŒr eine bestimmte Seite.


Betrachten Sie die Interpretation der Methode unter Verwendung von Markov-Ketten .


Wir geben eine Definition: Der

Grad eines Scheitelpunkts (Grad) ist die Kraft vieler Nachbarn:



rj=∑i→jridi


,


PageRank


r=Mr


-, ( ).


Wir bezeichnen


,


$$display$$p_i(t+1) = M_{i1}p_1(t) + M_{i2}p_2 + .. . + M_{in}p_n(t)$$display$$


,


p(t+1)=Mp(t)


- ,



.


Bild


"" :


  • .. " " — , — , PageRank . . .
  • — — PageRank . - . Vektor

20 , !


-


rj=∑i→jÎČridi+(1−ÎČ)1n


( , )



M⋆=ÎČM+(1−ÎČ)[1/n]n×n


.


. ?


:

  • ;
  • ;
  • , .


PageRank. , , - , - .


— .



.


, . - ? 2006 .


:

, -


, , . - . , — (, ). , IT- , ( ) — .


, , — , ,


, — .


- , Kaggle Hackerrank, , , (, ).


:


:




80% Pinterest.


,


Weitere Verbesserungen hinzufĂŒgen:

Denken Sie daran, dass die Rippen $ inline $ \ begin {align *} e (i, j) \ in E \ in G \ end {align *} $ inline $ Unsere Grafik hat Gewichte $ inline $ \ begin {align *} w_ {ji} \ end {align *} $ inline $ .

Auf diese Weise können Sie eine gewichtete Matrix angeben $ inline $ \ begin {align *} M ^ w \ end {align *} $ inline $ Übergangswahrscheinlichkeiten:

$ inline $ \ begin {align *} M ^ {w} _ {ij} = \ left \ {\ begin {matrix} \ frac {w_ {ij}} {\ sum_ {j} w_ {ij}} & \ forall i, j \ iff e (i, j) \ in E, \\ 0 & \ forall i, j \ iff e (i, j) \ notin E. \ end {matrix} \ right. \ end {align *} $ inline $

Der Tramp wird nach wie vor versehentlich ÜbergĂ€nge machen, aber es ist nicht mehr gleich wahrscheinlich!


Ein aufmerksamer Leser hat sich bereits gefragt, wie man diese Gewichte misst.


Facebook war 2011 von der gleichen Sache verwirrt. Es war notwendig, ein Empfehlungssystem fĂŒr Freunde von Freunden von Freunden aufzubauen, um die Schaffung neuer Verbindungen zu maximieren. Der erste Schritt bestand darin, ein gewichtetes Diagramm der Verbindungen zwischen Benutzern anhand von Informationen in ihren Profilen und im Interaktionsverlauf (Likes, Nachrichten, gemeinsame Fotos usw.) zu erstellen. Messen Sie irgendwie die Kraft der Freundschaft im Internet.


$$ display $$ w_ {ij} = f ^ w (i, j) = e ^ {- \ sum_ {z} {\ xi_z x_ {ij} [z]}}, $$ display $$


wo $ inline $ \ begin {align *} x_ {ij} \ end {align *} $ inline $ Ist der Vektor der Eigenschaften der Eckpunkte und der sie verbindenden Kanten, d.h. $ inline $ \ begin {align *} x_ {ij} = f ^ {(i)} \ cup f ^ {(j)} \ cup f ^ {e (ij)} \ end {align *} $ inline $ und $ inline $ \ begin {align *} \ xi \ end {align *} $ inline $ Ist der Vektor der Gewichte aus den Daten zu lernen.


Hier wird ein geschulter Leser ein lineares Modell erkennen , und ein unvorbereiteter Leser wird darĂŒber nachdenken, dass es sich lohnt, einen offenen maschinellen Lernkurs zu absolvieren, um sich mit dem Gradientenabstieg zu befassen, mit dem wir die Werte von Gewichten in einem Vektor lernen $ inline $ x_ {ij} $ inline $ - Sie zeigen, wie sich Likes und Nachrichten auf Freundschaften im Internet auswirken.


Warum brauchen wir das alles?


Neben der Tatsache, dass der betrachtete Ansatz es uns ermöglicht, Verbindungen noch besser vorherzusagen, können wir die Regeln fĂŒr eine erfolgreiche Teambildung lernen. Und finden Sie heraus, wonach Sie in Zukunft suchen mĂŒssen.


Erinnern Sie sich an die Bedingungen unserer Übung. Wir beobachten die Entwicklung der Zusammenarbeit (gemeinsame Teilnahme an Wettbewerben) in einer Gruppe von bedingten Datasaentisten in der Zwischenzeit $ inline $ \ begin {align *} (t_0, t_0 ^ \ star) \ end {align *} $ inline $ (zum Beispiel ein Kalendermonat) und wir möchten die Teambildung in dem Intervall vorhersagen $ inline $ \ begin {align *} (t_1, t_1 ^ \ star) \ end {align *} $ inline $ (noch ein Monat). Neben der Teilnahme an Wettbewerben verfolgen wir die Kommunikation in Foren, Kerneln und anderen Themen. Alle gesammelten Informationen werden in einer Matrix gespeichert $ inline $ X ^ {\ star} \ in \ mathbb {R} ^ {(2k + l) \ times | E |} $ inline $ (Ihre Spalten sind Vektoren $ inline $ x_ {ij} $ inline $ , $ inline $ k, l $ inline $ - Dimensionen der Vektoren der Eigenschaften von Eckpunkten und Kanten $ inline $ f ^ {(i)}, f ^ {e (ij)} $ inline $ jeweils) und die Grafik $ inline $ \ begin {align *} G \ end {align *} $ inline $ fĂŒr zwei Zeitintervalle.


Bereiten wir die Daten fĂŒr das maschinelle Lernen vor.


FĂŒr jeden Scheitelpunkt $ inline $ \ begin {align *} i \ end {align *} $ inline $ ::


1) Definieren Sie viele Freunde von Freunden:


$$ Anzeige $$ \ Gamma ^ {fof} (i) = \ bigcup_ {j \ in \ Gamma (i)} \ Gamma (j) - \ Gamma (i) $$ Anzeige $$


2) und Subgraphen konstruieren $ inline $ \ begin {align *} G ^ {fof} (i) \ end {align *} $ inline $ Verbindungen zu Freunden und Freunden von Freunden, $ inline $ \ begin {align *} \ forall e (x, y) \ in E, e (x, y) \ in G ^ {fof} (i) \ iff x, y \ in \ Gamma ^ {fof} (i) \ cup \ Gamma (i) \ end {align *} $ inline $


3) WĂ€hlen Sie den Satz von Eckpunkten aus. $ inline $ \ begin {align *} D_i: \ {d_1, ..., d_k \} \ end {align *} $ inline $ mit wem wir Verbindungen geknĂŒpft haben, sind unsere positiven Beispiele fĂŒr das Lernen,


4) alle nicht zufĂ€lligen Verbindungen aus dem Satz $ inline $ \ begin {align *} \ overline {D_i} = \ Gamma ^ {fof} (i) - D_i \ end {align *} $ inline $ - Dies sind unsere negativen Beispiele fĂŒr das Training.


Bildausrichtung = mitte


Unsere Aufgabe ist es, einen solchen Gewichtsvektor auszuwÀhlen $ inline $ \ begin {align *} \ xi \ end {align *} $ inline $ in denen positive Beispiele aus dem Set $ inline $ \ begin {align *} D_i \ end {align *} $ inline $ erhÀlt einen höheren personalisierten PageRank-Wert im Vergleich zu $ inline $ \ begin {align *} i \ end {align *} $ inline $ als negative Beispiele.


Dazu definieren wir die Verlustfunktion, die wir minimieren:


$$ display $$ L = \ sum_ {i} \ sum_ {d \ in D_i, \ overline {d} \ in \ overline {D_i}} h (r _ {\ overline {d}} - r_ {d}) + \ lambda || \ xi || ^ 2, $$ display $$


wo $ inline $ h (x) = 0 \ iff x <0; h (x) = x ^ 2 \ iff x \ geqslant 0; $ inline $ - Strafe fĂŒr VerstĂ¶ĂŸe gegen die Bestimmungen, $ inline $ \ lambda $ inline $ - Macht $ inline $ L_2 $ inline $ Regularisierung von Gewichten $ inline $ \ xi $ inline $ , $ inline $ r $ inline $ Ist ein Vektor mit Lösungen der Gleichung $ inline $ r = M ^ wr $ inline $ in Bezug auf $ inline $ r $ inline $ fĂŒr eine Untergrafik von Freunden von Freunden eines einzelnen Tops $ inline $ i $ inline $ .


Ein lustiges Detail - der Gradient dieser Funktion wird auf die gleiche Weise wie der PageRank nach der Power-Methode berechnet. Details finden Sie in der 17. Vorlesung der Ausgabe 2014, Folien 9-27.


So sah die Speerspitze des Fortschritts zum Zeitpunkt meiner ersten Bekanntschaft mit dem cs224w-Kurs aus.


ZufÀlliger Kinderwagenweg und Spitze im Vektor


Und dann kam der Triumph der Faulheit!


Es ist bekannt, dass die Theorie der Graphen von Leonard Euler erfunden wurde, als er gelangweilt war, das unlösbare Problem der BrĂŒcken zu lösen, die sich jetzt in Kaliningrad befinden. Anstatt seinen Kopf umsonst zu trocknen, erfand er einen mathematischen Apparat, mit dem er die grundsĂ€tzliche Unmöglichkeit beweisen kann, das RĂ€tsel zu lösen.


In den besten Traditionen der Computerwissenschaften werden wir auch faul sein und uns die Aufgabe stellen, eine Funktion zu finden, die es uns ermöglicht, uns von eindimensionalen Darstellungen von Knoten zu entfernen und zu mehrdimensionalen Eigenschaftsvektoren zu wechseln.


Bild



Hier lernen wir Grapheneinbettungen im modernen Sinne kennen.


Formal wollen wir:

1) Definieren Sie einen Encoder (eine ENC-KonformitÀtsfunktion, die eine Knotentransformation definiert $ inline $ u $ inline $ im Vektor $ inline $ z_u $ inline $ );
2) Bestimmen Sie die Ähnlichkeitsfunktion von Knoten (ein Maß fĂŒr die NĂ€he im Diagramm, das wir auf den Eingang des Encoders anwenden werden);
3) Optimieren Sie die Encoderparameter so, dass:

$$ Anzeige $$ Ähnlichkeit (u, v) \ ca. z_ {v} ^ {T} z_v $$ Anzeige $$

Bild


Wir bemĂŒhen uns sicherzustellen, dass Scheitelpunkte, die im Diagramm eng beieinander liegen, eine enge Darstellung in der Vektorkartierung erhalten. Mit anderen Worten, so dass der Winkel zwischen den beiden erhaltenen Vektoren minimal ist.


Großartig, aber wie kann man diese NĂ€he in der Grafik bestimmen?


Zum Beispiel nehmen wir an, dass das Gewicht der Rippe ein gutes Maß fĂŒr die NĂ€he ist und ungefĂ€hr als gleich dem Skalarprodukt fĂŒr die Einbettung von zwei Knoten angesehen werden kann. Die Verlustfunktion fĂŒr diesen Fall hat folgende Form:


$$ Anzeige $$ L = \ sum _ {(u, v) \ in V \ mal V} || z_ {u} ^ {T} z_v - A_ {u, v} || ^ 2, $$ display $$


es bleibt zu finden (zum Beispiel Gradientenabstieg) die Matrix $ inline $ Z \ in \ mathbb {R} ^ {d \ times | V |} $ inline $ was minimiert $ inline $ L $ inline $ .


Ein alternativer Ansatz besteht darin, die Umgebung zu bestimmen. $ inline $ N (v) $ inline $ denn der Gipfel ist breiter als viele Nachbarn.


Bild


Dies wird uns helfen, um die Grafik herumzugehen. Das erste Projekt, das diesen Ansatz verwendet, ist DeepWalk . Das Wesentliche der Methode ist, dass wir einen Tramp starten, um zufĂ€llig von jedem Scheitelpunkt aus um den Graphen herumzulaufen $ inline $ v $ inline $ und fĂŒttere kurze Sequenzen fester LĂ€nge von Peaks, die wĂ€hrend seines Spaziergangs in word2vec besucht wurden.


Die Intuition hier ist, dass die Wahrscheinlichkeitsverteilung beim Besuch der Eckpunkte des Graphen - ein Potenzgesetz - der Wahrscheinlichkeitsverteilung des Auftretens von Wörtern in menschlichen Sprachen sehr Ă€hnlich ist. Und da word2vec fĂŒr Wörter funktioniert, kann es fĂŒr Grafiken. Wir haben es versucht - es hat funktioniert!


In DeepWalk implementiert ein Tramp einen Markov-Prozess erster Ordnung - von jedem Scheitelpunkt gehen wir zum Nachbarn, entsprechend den Wahrscheinlichkeiten einer gewichteten Adjazenzmatrix $ inline $ M $ inline $ (oder seine Derivate, wie $ inline $ M ^ w $ inline $ ) Wo wir oben angekommen sind, hat keinen Einfluss auf die Wahl des nÀchsten Schritts.


Um den Walk zu implementieren, benötigen Sie einen Pseudozufallszahlengenerator und ein bisschen Algebra . Es ist Zeit, den Block fĂŒr AnfĂŒhrungszeichen fĂŒr den beabsichtigten Zweck zu verwenden.


„Jeder, der mit den arithmetischen Methoden der Erzeugung einverstanden ist, ist natĂŒrlich sĂŒndig. Wie wiederholt gezeigt wurde, gibt es keine Zufallszahl - es gibt nur Methoden zum Erstellen solcher Zahlen, und ein striktes arithmetisches Verfahren ist natĂŒrlich keine solche Methode ... Wir beschĂ€ftigen uns nur mit Rezepten zum Erstellen von Zahlen ... "

- John von Neumann


Es bleibt denjenigen zu raten, die nach einem gerechten Leben streben, das Album „Black and White Noise“ zum Verkauf zu finden - 1995 schrieb George Marsaglia auf die CD eine Reihe von Bytes, die durch Digitalisieren des Rauschens des VerstĂ€rkers wĂ€hrend des Spielens des Rap-KĂŒnstlers empfangen wurden, und benannte es entsprechend.


Die Entwicklung der Methode ist node2vec , in der der Markov-Prozess zweiter Ordnung implementiert ist - wir schauen uns an, woher er stammt, und dies beeinflusst die Wahrscheinlichkeit, die Richtung des nÀchsten Schritts zu wÀhlen. Mal sehen, wie es funktioniert.


Nehmen wir an, wir starten einen Tramp, der von oben um die Grafik herumgeht $ inline $ u $ inline $ neben der Spitze $ inline $ s_1 $ inline $ Spitzen $ inline $ s_2 $ inline $ und $ inline $ w $ inline $ - in zwei Schritten und $ inline $ s_3 $ inline $ - in drei. Nach jedem Schritt können wir eine von drei möglichen Aktionen ausfĂŒhren: 1) nĂ€her an $ inline $ u $ inline $ ;; 2) erkunden Sie die Gipfel in der gleichen Entfernung von $ inline $ u $ inline $ als derjenige, in dem wir jetzt sind; 3) weg von $ inline $ u $ inline $ .


Bild


Diese Strategie wird mit zwei Parametern implementiert:
$ inline $ p $ inline $ - legt die Wahrscheinlichkeit fest, zum vorherigen Scheitelpunkt zurĂŒckzukehren;
$ inline $ q $ inline $ - legt das Gleichgewicht zwischen der Suche in der Breite und der Suche in der Tiefe fest.


Diese Parameter bestimmen die nicht normalisierten Übergangswahrscheinlichkeiten wie folgt:


Nehmen wir an, wir sind an der Spitze $ inline $ w $ inline $ und kam von oben hinein $ inline $ s_1 $ inline $ . FĂŒr Rippe $ inline $ e (w, s_1) $ inline $ wir werden Gewicht zuweisen (nicht normalisierte Wahrscheinlichkeit) $ inline $ 1 / p $ inline $ . FĂŒr Rippe $ inline $ e (w, s_2) $ inline $ - - $ inline $ 1 $ inline $ (wie fĂŒr alle anderen Kanten, die zu Scheitelpunkten mit gleichem Abstand von fĂŒhren $ inline $ u $ inline $ ) FĂŒr das Weggehen von $ inline $ u $ inline $ Rippen $ inline $ e (w, s_3) $ inline $ - - $ inline $ 1 / q $ inline $ .


Dann normalisieren wir die Wahrscheinlichkeiten (so dass die Summe gleich 1 ist) und machen den nÀchsten Schritt.


Wir sind an der Abfolge der besuchten Peaks interessiert - wir senden sie an word2vec ( dieser Artikel hilft Ihnen beim Umgang damit oder an Vorlesung 8 aus dem Deep Learning-Kurs an den Fingern ). Die Auswahl von Strategien fĂŒr den Landstreicher, die zur Lösung spezifischer Probleme optimal sind, ist ein Bereich aktiver Forschung. Zum Beispiel ist node2vec, das wir ĂŒberprĂŒft haben, ein Champion bei der Klassifizierung von Peaks (zum Beispiel bei der Bestimmung der ToxizitĂ€t von Drogen oder des Geschlechts / Alters / der Rasse eines Mitglieds eines sozialen Netzwerks).


Wir werden die Wahrscheinlichkeit des Auftretens von Spitzen auf dem Weg des Vagabunden, die Verlustfunktion, optimieren:


$$ Anzeige $$ L = \ sum_ {u \ in V} \ sum_ {v \ in N_ {R} (u)} -log (P (v | z_u)) $$ Anzeige $$


in seiner expliziten Form eine ziemlich teure Rechenlast


$$ display $$ L = \ sum_ {u \ in V} \ sum_ {v \ in N_ {R} (u)} -log (\ frac {e ^ {z_ {u} ^ {T} z_v}} { \ sum_ {n \ in V} e ^ {z_ {u} ^ {T} z_n}}), $$ display $$


was durch einen Zufall durch negative Probenahme gelöst wird, weil


$$ Anzeige $$ Protokoll (\ frac {e ^ {z_ {u} ^ {T} z_v}} {\ sum_ {n \ in V} e ^ {z_ {u} ^ {T} z_n}}) \ ca. log (\ sigma (z_ {u} ^ {T} z_v)) - \ sum_ {i = 1} ^ {k} log (\ sigma (z_ {u} ^ {T} z_ {n_i})), \\ Dabei ist \, \, \, n_i \ sim P_V, \ sigma (x) = \ frac {1} {1 + e ^ {- x}}. $$ display $$


Also haben wir herausgefunden, wie man eine Vektordarstellung der Eckpunkte erhÀlt. Das Ding ist der Hut!


Bild


So bereiten Sie Einbettungen fĂŒr Rippen vor:

Wir mĂŒssen einen Operator definieren, der jedes Scheitelpunktpaar zulĂ€sst $ inline $ u $ inline $ und $ inline $ v $ inline $ Vektordarstellung erstellen $ inline $ z _ {(u, v)} = g (z_u, z_v) $ inline $ , unabhĂ€ngig davon, ob sie im Diagramm verbunden sind. Ein solcher Bediener kann sein:

a) arithmetisches Mittel: $ inline $ [z_u \ oplus z_v] _i = \ frac {z_u (i) + z_v (i)} {2} $ inline $ ;;
b) die Arbeit von Hadamard: $ inline $ [z_u \ odot z_v] _i = z_u (i) * z_v (i) $ inline $ ;;
c) gewichtete L1-Norm: $ inline $ || z_u - z_v || _ {\ overline {1} i} = | z_u (i) - z_v (i) | $ inline $ ;;
d) gewichtete L2-Rate: $ inline $ || z_u - z_v || _ {\ overline {2} i} = | z_u (i) - z_v (i) | ^ 2 $ inline $ .

In Experimenten verhÀlt sich die Arbeit von Hadamard am stetigsten.

Denken Sie fĂŒr alle FĂ€lle an den Satz zum freien Mittagessen:

Kein Algorithmus ist universell - es lohnt sich, mehrere Methoden auszuprobieren.


Die Entwicklung von node2vec ist das OhmNet- Projekt, mit dem Sie mehrere Diagramme zu einer Hierarchie kombinieren und Scheitelpunkteinbettungen fĂŒr verschiedene Hierarchieebenen erstellen können. Es wurde ursprĂŒnglich entwickelt, um die Bindungen zwischen Proteinen in verschiedenen Organen zu modellieren (und sie verhalten sich je nach Standort unterschiedlich).


Bild


Ein kluger Leser wird Ähnlichkeiten mit der Organisationsstruktur und den GeschĂ€ftsprozessen erkennen.


Und wir - wir werden auf ein Beispiel aus dem Bereich der IT-Rekrutierung zurĂŒckkommen - die Auswahl der Personen, die fĂŒr das bereits vorhandene Team am besten geeignet sind. Zuvor haben wir unimodale Diagramme von Beziehungen bedingter Datasaentisten betrachtet, die aus der Geschichte der Interaktion erhalten wurden (im unimodalen Diagramm des Scheitelpunkts und der Verbindung - vom gleichen Typ). In Wirklichkeit ist die Anzahl der sozialen Kreise, in die eine Person aufgenommen werden kann, mehr als eins.


Angenommen, wir haben neben der Geschichte der gemeinsamen Teilnahme an Wettbewerben auch Informationen darĂŒber gesammelt, wie Rechenzentren in unserem gemĂŒtlichen Chat kommuniziert haben. Jetzt haben wir bereits zwei Diagramme von Verbindungen, und OhmNet ist perfekt, um das Problem der Erstellung von Einbettungen aus mehreren Strukturen zu lösen.


Nun - ĂŒber die MĂ€ngel von Methoden, die auf flachen Codierern basieren - gibt es in word2vec nur eine verborgene Schicht, deren Gewichtung die Codierung codiert. Am Ausgang erhalten wir eine Vertex-Vektor-Korrespondenztabelle. Alle diese AnsĂ€tze weisen die folgenden EinschrĂ€nkungen auf:


  • Jeder Scheitelpunkt wird von einem eindeutigen Vektor codiert, und das Modell impliziert keine gemeinsame Nutzung von Parametern.
  • Wir können nur die Scheitelpunkte codieren, die das Modell wĂ€hrend des Trainings gesehen hat. Wir können nichts fĂŒr die neuen Scheitelpunkte tun (außer wie der Encoder erneut trainiert wird).
  • Vertex-Eigenschaftsvektoren werden in keiner Weise berĂŒcksichtigt.

Graph-Faltungsnetzwerke sind frei von den angegebenen MĂ€ngeln. Wir sind im Zehneck!


Unsere Tage sind ein zufĂ€lliger Trampel fĂŒr alle und jeden


In Bezug auf Landstreicher hatte ich das GlĂŒck, meinen ersten Master-Abschluss zu schreiben und ihn 2003 zu verteidigen, aber mit tiefem Training musste ich den klassischen Weg gehen, um herauszufinden, was sich unter der Haube befand. Und dort ist es lustig.


Lassen Sie uns zunĂ€chst sehen, warum die Standardmethoden fĂŒr tiefes Lernen nicht zu den Diagrammen passen.


Grafen sind keine Katzen fĂŒr dich!

Die modernen Deep-Learning-Tools (mehrschichtige, faltungsbezogene und wiederkehrende Netzwerke) sind fĂŒr die Lösung von Problemen mit relativ einfachen Daten - Sequenzen und Gittern - optimiert. Ein Graph ist eine kompliziertere Struktur. Eines der Probleme, die uns daran hindern, die Adjazenzmatrix zu nehmen und an das neuronale Netzwerk zu senden, ist der Isomorphismus .

In unserer SpielzeugsÀule $ inline $ g $ inline $ bestehend aus Eckpunkten $ inline $ \ {A, B, C, D \} $ inline $ , um eine Adjazenzmatrix zu konstruieren $ inline $ a $ inline $ schlugen wir eine End-to-End-Nummerierung vor $ inline $ \ {1,2,3,4 \} $ inline $ . Es ist leicht zu erkennen, dass wir beispielsweise die Eckpunkte unterschiedlich nummerieren können $ inline $ \ {1,3,2,4 \} $ inline $ oder $ inline $ \ {4,1,3,2 \} $ inline $ - jedes Mal, wenn eine neue Adjazenzmatrix desselben Graphen empfangen wird.

$ inline $ \ begin {align *} A = \ left [\ begin {matrix} 0 & 1 & 3 & 0 \\ 1 & 0 & 2 & 1 \\ 3 & 2 & 0 & 0 \\ 0 & 1 & 0 & 0 \ end {matrix} \ right], \, A ^ {\ {1,3,2,4 \}} = \ left [\ begin {matrix} 0 & 3 & 1 & 0 \\ 3 & 0 & 2 & 0 \\ 1 & 2 & 0 & 1 \\ 0 & 0 & 1 & 0 \ end {matrix} \ right], \, A ^ {\ {4,1,3,2 \}} = \ left [\ begin {matrix} 0 & 1 & 2 & 1 \\ 1 & 0 & 0 & 0 \\ 2 & 0 & 0 & 3 \\ 1 & 0 & 3 & 0 \ end {matrix} \ right]. \ end {align *} $ inline $

Bei Siegeln mĂŒsste unser Netzwerk lernen, sie fĂŒr alle möglichen Permutationen von Zeilen und Spalten zu erkennen - das ist ein weiteres Problem. Versuchen Sie als Übung, die Nummerierung der Punkte im Bild unten so zu Ă€ndern, dass Sie eine Katze erhalten, wenn Sie sie in Reihe schalten.

Bild


Das nĂ€chste Problem fĂŒr Graphen mit gewöhnlichen neuronalen Netzen ist die Standardeingabedimension. Wenn wir mit Bildern arbeiten, normalisieren wir immer die GrĂ¶ĂŸe des Bildes, um es an den Netzwerkeingang zu senden - es ist eine feste GrĂ¶ĂŸe. Solche Diagramme funktionieren nicht mit Diagrammen - die Anzahl der Scheitelpunkte kann beliebig sein -, eine weitere Herausforderung besteht darin, die KonnektivitĂ€tsmatrix auf eine bestimmte Dimension zu drĂŒcken, ohne Informationen zu verlieren.


Lösung - Wir werden neue Architekturen erstellen, die von der Struktur der Diagramme inspiriert sind.


Bild


Dazu verwenden wir eine einfache zweistufige Strategie:


  1. FĂŒr jeden Scheitelpunkt erstellen wir einen Berechnungsgraphen unter Verwendung eines Vagabunden.
  2. Wir sammeln und transformieren Informationen ĂŒber Nachbarn.

Denken Sie daran, dass wir die Eigenschaften von Eckpunkten in Vektoren speichern $ inline $ f ^ {(u)} $ inline $ - Matrixspalten $ inline $ X \ in \ mathbb {R} ^ {k \ times | V |} $ inline $ und unsere Aufgabe ist fĂŒr jeden Scheitelpunkt $ inline $ u $ inline $ Sammeln Sie Eigenschaften benachbarter Eckpunkte $ inline $ f ^ {(v \ in N (u))} $ inline $ Einbettungsvektoren zu erhalten $ inline $ z_ {u} $ inline $ . Ein Rechengraph kann eine beliebige Tiefe haben. Betrachten Sie eine zweischichtige Option.


Bild


Die Nullschicht ist die Eigenschaft der Eckpunkte, die erste ist eine Zwischenaggregation unter Verwendung einer Funktion (angezeigt durch ein Fragezeichen), die zweite ist die endgĂŒltige Aggregation, die die fĂŒr uns interessanten Einbettungsvektoren erzeugt.


Und was ist in den Kisten?


Im einfachen Fall eine Schicht von Neuronen und NichtlinearitÀt:


$$ display $$ h ^ 0_v = x_v (= f ^ {(v)}); \\ h ^ k_v = \ sigma (W_k \ sum_ {u \ in N (v)} \ frac {h ^ {k-1} _v} {| N (v) |} + B_k h ^ {k-1} _v), \ forall k \ in \ {1, ..., K \}; \\ z_v = h ^ K_v, $$ display $$


wo $ inline $ W_k $ inline $ und $ inline $ B_k $ inline $ - die Gewichte des Modells, die wir durch Gradientenabstieg unter Anwendung einer der betrachteten Verlustfunktionen lernen werden, und $ inline $ \ sigma $ inline $ - NichtlinearitÀt, zum Beispiel RELU: $ inline $ \ sigma (x) = max (0, x) $ inline $ .


Und hier befinden wir uns an einem Scheideweg - je nach Aufgabe können wir:


  • ohne Lehrer zu lernen und eine der zuvor betrachteten Verlustfunktionen zu nutzen - Landstreicher oder das Gewicht der Kanten. Die resultierenden Gewichte werden so optimiert, dass Vektoren Ă€hnlicher Eckpunkte kompakt platziert werden.
  • Beginnen Sie beispielsweise mit einem Lehrer, um das Klassifizierungsproblem zu lösen, und fragen Sie sich, ob das Medikament toxisch ist.

FĂŒr das binĂ€re Klassifizierungsproblem hat die Verlustfunktion die Form:


$$ Anzeige $$ L = \ sum_ {v \ in V} y_v Protokoll (\ Sigma (z_v ^ T \ Theta)) + (1-y_v) Protokoll (1- \ Sigma (z_v ^ T \ Theta)), $ $ display $$


wo $ inline $ y_v $ inline $ - Scheitelpunktklasse $ inline $ v $ inline $ , $ inline $ \ theta $ inline $ Ist der Vektor der Gewichte und $ inline $ \ sigma $ inline $ - NichtlinearitÀt, zum Beispiel ein Sigmoid: $ inline $ \ sigma (x) = \ frac {1} {1 + e ^ {- x}} $ inline $ .


Hier erkennt ein geschulter Leser die Entropie und die logistische Regression, wĂ€hrend ein unvorbereiteter Leser ĂŒber einen offenen Kurs fĂŒr maschinelles Lernen nachdenkt, um sich mit der Klassifizierungsaufgabe , einfachen und fortgeschritteneren Algorithmen zur Lösung (einschließlich GradientenverstĂ€rkung) vertraut zu machen .


Und wir werden weitermachen und ĂŒberlegen, wie GraphSAGE , der Vorbote von Decagon, funktioniert.


Bild


FĂŒr jeden Scheitelpunkt $ inline $ v $ inline $ Wir werden Informationen von Nachbarn sammeln $ inline $ u \ in N (v) $ inline $ und sie selbst.


$$ display $$ h ^ k_v = \ sigma ([W_k \ cdot AGG (\ {h ^ {k-1} _u, \ forall u \ in N (v) \}), B_k h ^ {k-1} _v]), $$ display $$


wo $ inline $ AGG $ inline $ - eine verallgemeinerte Bezeichnung der Aggregationsfunktion - vor allem - differenzierbar.


Mittelwertbildung: Nehmen Sie einen gewichteten Durchschnitt von den Nachbarn


$$ Anzeige $$ AGG = \ sum_ {u \ in N (v)} \ frac {h ^ {k-1} _u} {| N (v) |}. $$ Anzeige $$


Pooling: elementweiser Durchschnitts- / Maximalwert


$$ display $$ AGG = \ gamma (\ {Qh ^ {k-1} _u, \ forall u \ in N (v) \}). $$ display $$


LSTM: SchĂŒtteln Sie die Umgebung (nicht mischen!) Und fĂŒhren Sie LSTM aus


$$ display $$ AGG = LSTM ([h ^ {k-1} _u, \ forall u \ in \ pi (N (v))]). $$ display $$


Pinterest, , PinSAGE .


LSTM ( ). IT-.


:

  • : , — , .
  • , : / , — .


, — . , . , , , . (/) , , , — — , 30 .


.


— (multi-label node
classification task) — . — . () ( — — 42% ). GraphSAGE, , — .


!


, — , , . , .


- , Decagon. , -, -, , -, — ri . . - 964 ( ) .


Bild


— , -, -.


Bild


,


hvk=σ(∑rWrk−1(∑u∈Nr(v)huk−1|Nr(v)||Nr(u)|+hvk−1|Nr(v)|)),



Bild


, .


— , . -.



, :


pruv=p((u,r,v)∈E)=σ(g(u,r,v)),σ(x)=11+e−x.


, (end-to-end) -, : (i)


— - .


— .


— , , : 1) — — ; 2) " , , , " — - . , , , .



— — .


, ( ) , . , , GenBank 1 , , - — , . — , - ( ) , SNAP .


.


Neo4j , (property graph).


Bild


, . , , — (i) -, (ii) , (iii) , — — . .


— :


Bild


DarĂŒber hinaus leistet Neo4j einen Beitrag zur Industrie, indem er die deklarative Cypher- Sprache erstellt , die ein Diagrammmodell mit Eigenschaften implementiert und in einer SQL-Ă€hnlichen Form mit den folgenden Datentypen arbeitet: Eckpunkte, Relationen, WörterbĂŒcher, Listen, Ganzzahlen, Gleitkomma- und BinĂ€rzahlen sowie Saiten. Eine Beispielabfrage, die eine Liste von Filmen mit Nicole Kidman zurĂŒckgibt:


MATCH (nicole:Actor {name: 'Nicole Kidman'})-[:ACTED_IN]->(movie:Movie) WHERE movie.year < $yearParameter RETURN movie 

Mit KrĂŒcken kann Neo4j dazu gebracht werden, im Speicher zu arbeiten.


ErwĂ€hnenswert ist auch Gephi - ein praktisches Tool zum Visualisieren und Anlegen von Grafiken in einer Ebene - das erste Netzwerkanalyse-Tool, das von persönlich getestet wurde. Mit einer Dehnung können wir davon ausgehen, dass es in Gephi möglich ist, ein Diagramm mit den Eigenschaften von Scheitelpunkten und Kanten zu implementieren, obwohl die Arbeit damit nicht sehr praktisch ist und der Satz von Algorithmen fĂŒr die Analyse begrenzt ist. Dies beeintrĂ€chtigt nicht die VorzĂŒge des Pakets - fĂŒr mich steht es an erster Stelle unter den Visualisierungswerkzeugen. Indem Sie das interne GEXF- Speicherformat beherrschen , können Sie beeindruckende Bilder erstellen. Es bietet die Möglichkeit, problemlos ins Web zu exportieren sowie Eigenschaften fĂŒr Scheitelpunkte und Kanten rechtzeitig festzulegen und dadurch komplizierte Animationen zu erhalten. Er erstellte die Routen fĂŒr reisende VerkĂ€ufer aus Verkaufsdaten. Alles dank des Layouts der Diagramme auf der Karte anhand der Koordinaten der Eckpunkte - dem Standardteil des Pakets.


Jetzt fĂŒhre ich den grĂ¶ĂŸten Teil der Forschung analytisch durch und zeichne Bilder im Ziel.


Meine Suche nach Werkzeugen und Methoden zur Datenverarbeitung in komplex verbundenen Systemen geht weiter. Vor drei Jahren habe ich eine Lösung fĂŒr die Arbeit mit multimodalen Graphen gefunden. Die SNAP- Bibliothek von Jure Leskovek ist ein Tool, das er fĂŒr sich selbst entwickelt hat und das bereits viele Dinge gemessen hat. Ich verwende Snap.py - die Version fĂŒr Python (Proxy fĂŒr in C ++ implementierte SNAP-Funktionen) und eine Reihe von ungefĂ€hr dreihundert verfĂŒgbaren Operationen reichen mir in den meisten FĂ€llen aus.


KĂŒrzlich veröffentlichte Marinka Zhitnik MAMBO - eine Reihe von Tools (inside - SNAP) fĂŒr die Arbeit mit multimodalen Netzwerken und ein Tutorial in Form einer Reihe von Jupyter-NotizbĂŒchern mit einer beispielhaften Analyse genetischer Mutationen.


Schließlich gibt es das SAP-HANA-Diagramm - dort in ML, SQL, OpenCypher - alles, was Ihr Herz begehrt.


FĂŒr SAP HANA ist die Tatsache, dass das Graben wahrscheinlich zu gut strukturierten Transaktionsdaten aus ERP fĂŒhrt, wĂ€hrend reine Daten viel wert sind. Ein weiteres Plus - leistungsstarke Tools zum Auffinden von Subgraphen anhand vorgegebener Muster - eine nĂŒtzliche und schwierige Aufgabe, deren Implementierung in anderen Paketen spezielle Programme nicht erfĂŒllt und verwendet hat . Eine kostenlose Lizenz fĂŒr den Entwickler bietet eine 1-GB-Datenbank - gerade genug, um mit ausreichend großen Netzwerken zu spielen. Ein lustiger Aufruf - eine Reihe von sofort einsatzbereiten Analysealgorithmen - ist klein. PageRank muss unabhĂ€ngig implementiert werden. Dazu mĂŒssen Sie GraphScript , eine neue Programmiersprache, beherrschen, aber das ist eine Kleinigkeit. Wie mein Ruderslalomtrainer sagte, fĂŒr den Meister - es ist Staub!


Nun erfahren Sie, woher Sie die Daten beziehen, um daraus Diagramme zu erstellen. Ein paar Ideen:


  • Öffentliche Repositories der UniversitĂ€t: Stanford - General and Biomedical , Colorado ;
  • Kombinieren Sie den Projektplan mit der Organisationsstruktur und dem Risikoregister.
  • Identifizieren Sie die Beziehung zwischen Produktstruktur, Technologie und BenutzerwĂŒnschen.
  • FĂŒhren Sie eine soziografische Studie in einem Team durch.
  • Überlegen Sie sich etwas Eigenes, inspiriert von den cs224w-Kursprojekten des letzten Jahres.

Was zu fĂŒrchten


Wir können sagen, dass hier die letzte Warnung vor den mit dieser Partei verbundenen Risiken sein wird.


Bild


Wie Sie wissen, meine Damen und Herren, besteht das Ziel des Programms darin, den Stand der Dinge an der Spitze einer sehr produktiven und großzĂŒgig finanzierten Forschungsgruppe widerzuspiegeln. Dies ist wie in Leningrad , nur in Bezug auf die moderne Mathematik. Mögliche Nebenwirkungen:


  1. Mahn-KrĂŒger , modifiziert, ohne die Euphorie eines AnfĂ€ngers und ein Plateau der Exzellenz. Leskovek versucht aufzuholen.
  2. Langeweile in einer Provinz am Meer. Von den 400 Teilnehmern des Kurses, die den Apparat erhielten, ließen sie mich ein Projekt schreiben und die PrĂŒfung in der ersten Sitzung wĂ€hrend meines zweiten Masterstudiengangs bestehen. Die Anzahl betrug eineinhalb. Die LehrkrĂ€fte in ihren ForschungsaktivitĂ€ten sind auf der Ebene der ModularitĂ€ts- und ZentralitĂ€tsmaßnahmen geblieben. Auf Mitaps ĂŒber Python und Daten ist auch traurig. Im Allgemeinen habe ich Sie gewarnt, wenn Sie nicht wissen, wie Sie sich unterhalten sollen.
  3. Stolz auf einen slawischen Akzent in der englischen Sprache.

Memo wiedergeben


Hallo Reproduzent!


In dem Abenteuer, das Jura Leskovek uns gegeben hat, brauchen Sie Freizeit. Der Kurs besteht aus 20 Vorlesungen, vier Hausaufgaben, von denen jede empfohlen wird, etwa 20 Stunden zuzuweisen, empfohlener Literatur sowie einer umfangreichen Liste zusÀtzlicher Materialien, die es ermöglichen, einen ersten Eindruck vom Stand der Dinge zu gewinnen, der bei allen behandelten Themen an vorderster Front steht.


Um die Aufgaben zu erledigen, wird dringend empfohlen, die SNAP-Bibliothek zu verwenden (in gewissem Sinne kann der gesamte Kurs als Überblick ĂŒber seine Funktionen betrachtet werden).


Außerdem können Sie versuchen, Ihr eigenes Projekt zu implementieren oder ein Tutorial zu einem Thema zu schreiben, das Ihnen gefĂ€llt.


Zusammenfassung der Vorlesungen 2017:

1. EinfĂŒhrung und Diagrammstruktur
Die Netzwerkanalyse ist eine universelle Sprache zur Beschreibung komplexer Systeme und jetzt ist es an der Zeit, sich damit zu befassen. Der Kurs konzentriert sich auf drei Bereiche: Netzwerkeigenschaften, Modelle und Algorithmen. Beginnen wir mit der Darstellung von Objekten: Knoten, Kanten und deren Organisation.


2. World Wide Web und Random Graph Model
Wir werden lernen, warum das Internet wie ein Schmetterling ist, und uns mit dem Konzept stark verwandter Komponenten vertraut machen. So messen Sie Netzwerke - grundlegende Eigenschaften: Gradverteilung der Knoten, PfadlÀnge und Clustering-Koeffizient. Und lernen Sie das Modell des zufÀlligen Grafen Erdos-Rainey kennen.


3. Das PhÀnomen der kleinen Welt
Wir messen die Haupteigenschaften eines Zufallsgraphen. Vergleichen Sie es mit realen Netzwerken. Sprechen wir ĂŒber die Anzahl der Erdosh und wie klein die Welt ist. Erinnern Sie sich an Stanley Milgram und ungefĂ€hr sechs HandschlĂ€ge. Schließlich beschreiben wir alles, was mathematisch geschieht (das Watts-Strogatz-Modell).


4. Dezentrale Suche in der kleinen Welt und Piercing-Netzwerke
So navigieren Sie in einem verteilten Netzwerk. Und wie Torrents funktionieren. Alles zusammen - Eigenschaften, Modelle und Algorithmen.


5. Anwendungen zur Analyse sozialer Netzwerke
Maßnahmen der ZentralitĂ€t. Menschen im Internet - wie jemand wen bewertet. Der Effekt der Ähnlichkeit. Status Theorie des strukturellen Gleichgewichts.


6. Netzwerke mit mehrdeutigen Kanten
Netzwerkbilanz. Gegenseitige Vorlieben und Status. Wie man die Trolle fĂŒttert.


7. Kaskaden: entscheidungsbasierte Modelle
Verbreitung in Netzwerken: Verbreitung von Innovationen, Netzwerkeffekten, Epidemien. Kollektives Aktionsmodell. Entscheidungen und Spieltheorie in Netzwerken.


8. Kaskaden: probabilistische Modelle der Informationsverbreitung
ZufÀllige baumbasierte epidemische Ausbreitungsmodelle. Die Ausbreitung von Wunden. UnabhÀngige Kaskaden. Die Mechanismen des viralen Marketings. Wir simulieren die Wechselwirkungen zwischen Infektionen.


9. Einfluss maximieren
So erstellen Sie große Kaskaden. Wie schwierig ist die Aufgabe im Allgemeinen? Die Ergebnisse der Experimente.


10. Erkennung einer Infektion
Was haben Ansteckung und Nachrichten gemeinsam? Wie man mit den interessantesten Schritt hÀlt. Und wo die Sensoren in der Wasserversorgung platziert werden sollen.


11. Studienrecht und bevorzugte Zugehörigkeit
Netzwerkwachstumsprozess. Skaleninvariante Netzwerke. Mathematik der Energieverteilungsfunktion. Folgen: NetzwerkstabilitÀt. Das bevorzugte Beitrittsmodell - die Reichen werden reicher.


12. Wachsende Netzwerkmodelle
SchwÀnze messen: exponentiell versus exponentiell. Die Entwicklung sozialer Netzwerke. All dies aus der Vogelperspektive.


13. Kronecker-Diagramme
Wir setzen den Flug fort. Waldbrandmodell. Rekursive Graphengenerierung. Stochastische Kronecker-Graphen. Experimente mit realen Netzwerken.


14. Linkanalyse: HITS und PageRank
Wie organisiere ich das Internet? Hubs und Behörden. Der Fund von Sergey Brin und Larry Page. Betrunkener Landstreicher mit Teleport. Empfehlungen geben - Pinterest erleben.


15. Die StÀrke schwacher Bindungen und der Gemeinschaftsstruktur in Netzwerken
Triaden und Informationsströme. Wie kann man Communities hervorheben? Die Hirvan-Newman-Methode. ModularitÀt.


16. Community Discovery: Spektrales Clustering
Willkommensmatrix! Suchen Sie nach dem optimalen Abschnitt. Motive (Graflets). Nahrungsketten. Genexpression.


17. Biologische Netzwerke
Proteinwechselwirkungen. Identifizierung von Ketten schmerzhafter Reaktionen. Bestimmung molekularer Eigenschaften wie Proteinfunktionen in Zellen. Was machen Gene? Wir haben VerknĂŒpfungen erstellt.


18. Crossover-Netzwerke
Verschiedene soziale Kreise. Von Clustern zu sich ĂŒberschneidenden Gemeinschaften.


19. Studiendarstellungen studieren
Die automatische Feature-Bildung ist nur ein Fest fĂŒr die Faulen. Diagrammeinbettungen. Node2vec. Von einzelnen Graphen bis zu komplexen hierarchischen Strukturen - OhmNet.


20. Netzwerke: ein paar Spaß
Lebenszyklus eines abstrakten Community-Teilnehmers. Und wie man das Verhalten der Community mit Abzeichen verwaltet.


Ich denke, nach dem Eintauchen in die Graphentheorie werden Fragen zu BÀumen nicht mehr beÀngstigend sein. Dies ist jedoch nur die Meinung eines Amateurs, der noch nie in seinem Leben die Position eines Entwicklers eingenommen hat, der nicht interviewt wurde.

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


All Articles