Seite 1 von 4

Busting Big Data

Verfasst: 4. Mai 2018, 17:32
von fehlgeleitet
Dieser Thread wird mir in den nächsten Wochen dazu dienen, die Grundlagen von Big Data zu erarbeiten und gezielt nach Schwächen dieses Konzeptes zu suchen, dass sich in jeder fünften Stellenanzeige für Technomathematiker findet.
Dabei scheinen die meisten nicht zu bemerken, dass Big Data im wesentlichen auf dem Positivismus zu beruhen scheint, weswegen ich auch der Meinung bin, dass das Konzept beträchtliche Macken haben müßte.

Ersteinmal findet sich unter http://datasciencemasters.org/
ein Onlinekurs für Big Data.

Hab ich mehr oder weniger alles schonmal an der Uni gemacht, vielleicht nicht ganz so ausführlich, die mathematischen Grundlagen sind easy, das Computerzeug ist schon ein bisschen schwerer. Soweit ich es überblicken kann hat es nicht ganz so viel mit Programmieren zu tun, dass ist schonmal gut. Es geht also primär um Theorie.

Hier ein pdf über die Anwendung von Big Data beim google-Algorithmus. Das sind aber wirklich nur die Grundlagen.

Es geht darum, dass google die Webpages und ihre Verweise aufeinander in Form eines Graphen speichert, der wiederum in Form einer Matrix darstellbar ist.

Wenn nun ein User zufällig durchs Internet surfed und Links anklickt, kann man sein Verhalten als Markowkette darstellen. Dabei sind die Knotenpunkte Webpages, die Pfeile haben Wahrscheinlichkeiten, mit denen der User auf Links klickt und zu anderen Seiten wechselt.

Bild

Ziel ist es nun, eine geordnete Liste aller Websites zu erstellen, dem sogenannten Page Rank. Je häufiger andere Websites auf eine Website verweisen, desto höher steht sie im Ranking. Und das färbt dann auch auf die Websites ab, auf die sie verweisen. Damit das nicht ausartet (also Websites sich gegenseitig ins unendliche Steigern), gibt es einen eingebauten Dämpfer.
Nun wird das zufällige Surfen solange iteriert, bis sich sich eine Art Gleichgewicht einstellt, also der Rang der Links von Website zu Website objektiv erkannt ist. Das dieses Gleichgewicht existiert lässt sich mathematisch beweisen. Nun haben wir die Zielmatrix, wir benötigen aber eine geordnete Liste.

Gesucht ist also nun der Eigenvektor mit Eigenwert 1 dieser Matrix (im Bild unten A), dieser ist dann die geordnete Liste, die wir suchen.

Bild

Der Grund ist einfach der, dass der Eigenvektor mit Eigenwert 1 quasi einen neutralen Beoachter wiederspiegelt, der nach einer gleichverteilten Wahrscheinlichkeit Websites ansurfed oder aber auf einer Website die vorhandenen Links mit gleich großer Wahrscheinlichkeit klickt.
Wenn aber dieses Verhalten an den Tag gelegt wird, werden eben die Seiten am schnellsten gefunden, die die meisten Verweise auf sich hat, beziehungsweise Verweise von Verweisen and so on. Genau das repräsentiert ja der PageRank. Dies soll unabhängig von der Startposition des zufälligen Surfers gelten, weswegen wir zuerst das Gleichgewicht ermitteln mußten.

Am Ende gibt es noch ein paar Ideen bezüglich Speicheroptimierung. Google benötigt ein paar Stunden und ein paar Tausend Rechner, um den Page Rank auszurechnen. Das passiert in unregelmäßigen Zeitabständen, zwischendurch sammeln die Crawler die notwendigen Infos.

Die geordnete Liste die letztlich ausgegeben wird muß dann natürlich noch mit dem Suchwort kombiniert werden. Dies ist aber nicht Thema des Skriptes.

Das ist wirklich nur das Grundgerüst, inzwischen gibt es 200 Faktoren anhand derer google Websites bewertet.

edit: fragt ruhig, wenn etwas unklar ist.

Re: Busting Big Data

Verfasst: 7. Mai 2018, 16:31
von fehlgeleitet
So zweiter Eintrag:

Ich habe mich ein wenig mit relationalen Datenbanken beschäftigt. Diese weisen eine ähnliche Algebra auf wie Mengen, mit Ausnahme das es sich um geordnete Listen handelt. Ein Vergleich mit Matrizen und Vektoren ist also naheliegend. Demenstprechend überlegte ich, ob es vielleicht relationale Tensordatenbanken geben könnte, mußte aber feststellen, dass dies nicht mit dem Axiom vereinbar ist, dass Einträge in relationale Datenbanken keine Strukturen aufweisen dürfen, Verschachtelungen sind also nicht möglich.

Ein Tensor ist eine mehrdimensionale Matrix:

Bild

Nun stieß ich darauf, dass neuronale Netze schon die Struktur eines Tensors haben:

Bild

Vor einem Jahr etwa hat google mit Tensorflow eine Opensource machinelearning software rausgebracht, die mit Python(frontend) unc C++(backend) arbeitet.
Der Kernel ist speziell für mathematische Operationen optimiert. Damit kann jeder seine eigene künstliche Intelligenz trainieren.

https://www.tensorflow.org/

Um komplexere Deeplearningprozesse durchzuführen, kann man zu diesem Zwecke bei amazon eine cloud mieten.

Dieser Einführungsartikel empfiehlt um die komplexe Software Einsteigerfreundlicher zu machen diese Phytonlibary: https://keras.io/

Ein weiteres Pythonpackage hilft, das so geschaffene Neuronale Netz zu interpretieren, indem es die Knotenpunkte nach Relevanz gewichtet:
http://heatmapping.org/tutorial/

Die Mathematik dahinter verstehe ich leider nicht auf anhieb, ich glaub ich installier den Kram erstmal und spiel damit rum, vielleicht fällt der Groschen dann ja.

Re: Busting Big Data

Verfasst: 28. Juni 2018, 19:56
von Franz_Nord
Sehr chic das ganze was du da gefunden hast.
Das Hauptproblem bei einem lernenden System ist den Punkt zu finden der entscheidet wie "richtig" ein Ergebnis ist.
Nehmen wir mal Bilderkennung: Was macht einen Apfel zu einem Apfel? Was ein Schwein zu einem Schwein?
Die Antworten sind hierbei sehr verschieden, trotzdem soll das System ein Apfel von einem Schwein unterscheiden können. Ratings von Seiten sind dazu im Vergleich leider trivial (Je mehr Links desto höheres Ranking, HTML wird auf allen Seiten benutzt). Um solche Systeme zu trainieren werden heutzutage gerne Captchas genutzt (Ein paar der Ergebnisse sind dem System bekannt, andere nicht, der Nutzer soll nun bei der genauen Bestimmung helfen; neulich sah ich ein verpixeltes (zensiert da fälschlich für privat gehalten) Bild eines Straßenschilds, ReCaptcha wollte von mir, dass ich das als false positive markiere, tat ich jedoch nicht, haha alsob), neuerdings gibt es ja bei ReCaptcha sogar Bilder mit Rauschen im Hintergrund, eine der Sachen die Bilderkennung nur sehr schwer hinbekommt, Heißt also SIE sind jetzt noch einen Schritt weiter FUCKUP zu errichten. Das Eschaton immanentisiert sich bald.

Wenn das nicht Pyton wäre, würde ich es mir ansehen.

Interessanterweise werden Tensoren (auch Matrizen genannt) fast überall genutzt (Relativistische Systeme in verschiedenen Beschleunigungszuständen, Shaderberechnungen, BigData). Da soll noch einer sagen "den Mathescheiß brauch ich nie wieder". Feldermechanik aus der Physik ist auch nichts anderes als Verwendung von 3D-Arrays von Vektortypen, die Parallel gruseln mich immer wieder.

Re: Busting Big Data

Verfasst: 28. Juni 2018, 21:04
von fehlgeleitet
Franz_Nord hat geschrieben:Sehr chic das ganze was du da gefunden hast.
Das Hauptproblem bei einem lernenden System ist den Punkt zu finden der entscheidet wie "richtig" ein Ergebnis ist.
Nehmen wir mal Bilderkennung: Was macht einen Apfel zu einem Apfel? Was ein Schwein zu einem Schwein?
Die Antworten sind hierbei sehr verschieden, trotzdem soll das System ein Apfel von einem Schwein unterscheiden können. Ratings von Seiten sind dazu im Vergleich leider trivial (Je mehr Links desto höheres Ranking, HTML wird auf allen Seiten benutzt). Um solche Systeme zu trainieren werden heutzutage gerne Captchas genutzt (Ein paar der Ergebnisse sind dem System bekannt, andere nicht, der Nutzer soll nun bei der genauen Bestimmung helfen; neulich sah ich ein verpixeltes (zensiert da fälschlich für privat gehalten) Bild eines Straßenschilds, ReCaptcha wollte von mir, dass ich das als false positive markiere, tat ich jedoch nicht, haha alsob), neuerdings gibt es ja bei ReCaptcha sogar Bilder mit Rauschen im Hintergrund, eine der Sachen die Bilderkennung nur sehr schwer hinbekommt, Heißt also SIE sind jetzt noch einen Schritt weiter FUCKUP zu errichten. Das Eschaton immanentisiert sich bald.
Find ich lustig das die User den Filter trainieren, wenn sie captchaabfragen machen
Franz_Nord hat geschrieben: Wenn das nicht Pyton wäre, würde ich es mir ansehen.

Interessanterweise werden Tensoren (auch Matrizen genannt) fast überall genutzt (Relativistische Systeme in verschiedenen Beschleunigungszuständen, Shaderberechnungen, BigData). Da soll noch einer sagen "den Mathescheiß brauch ich nie wieder". Feldermechanik aus der Physik ist auch nichts anderes als Verwendung von 3D-Arrays von Vektortypen, die Parallel gruseln mich immer wieder.
Tensoren sind die allgemeinere Version der Matrix. Also ein Skalar ist nen Tensor mit der Dimension 0, nen Vektor ist nen Tensor mit Dimension 1 und ne Matrix hat Dimension 2. Tensoren kommen außerhalb von MINT Fächern an der Uni eigentlich nicht vor, normalerweise kommt man mit Matrizen hin.

Auch interessant zu dem Thema: Gammelfred Transhumanismus

Re: Busting Big Data

Verfasst: 29. Juni 2018, 21:10
von Franz_Nord
fehlgeleitet hat geschrieben: Tensoren sind die allgemeinere Version der Matrix. Also ein Skalar ist nen Tensor mit der Dimension 0, nen Vektor ist nen Tensor mit Dimension 1 und ne Matrix hat Dimension 2. Tensoren kommen außerhalb von MINT Fächern an der Uni eigentlich nicht vor, normalerweise kommt man mit Matrizen hin.
Also sind Tensoren Arrays ._. warum wollen Mathematiker immer so kompliziert sein.
Funktionieren Tensoren mit nicht-Ganzzahl oder negativen Dimensionen?
fehlgeleitet hat geschrieben: Auch interessant zu dem Thema: Gammelfred Transhumanismus
Bin noch dabei mich durch alles durchzukämpfen.

Re: Busting Big Data

Verfasst: 29. Juni 2018, 21:23
von Bwana Honolulu
Franz_Nord hat geschrieben:Also sind Tensoren Arrays
:brain: :
Andrew D. Hwang hat geschrieben:Tensor : Multidimensional array :: Linear transformation : Matrix.

The short of it is, tensors and multidimensional arrays are different types of object; the first is a type of function, the second is a data structure suitable for representing a tensor in a coordinate system.
Hätte mich sonst auch gewundert. XD

Re: Busting Big Data

Verfasst: 29. Juni 2018, 23:29
von fehlgeleitet
Bwana Honolulu hat geschrieben:
Franz_Nord hat geschrieben:Also sind Tensoren Arrays
:brain: :
Andrew D. Hwang hat geschrieben:Tensor : Multidimensional array :: Linear transformation : Matrix.

The short of it is, tensors and multidimensional arrays are different types of object; the first is a type of function, the second is a data structure suitable for representing a tensor in a coordinate system.
Hätte mich sonst auch gewundert. XD
Sorry, dass ist falsch.

Natürlich ist ein multidimensionaler Array ein Tensor. Eine Matrix kann eine lineare Tranformation repräsentieren, genauso wie ein Multidimensionaler Array.

Re: Busting Big Data

Verfasst: 30. Juni 2018, 00:16
von Franz_Nord
Bwana Honolulu hat geschrieben:
Franz_Nord hat geschrieben:Also sind Tensoren Arrays
:brain: :
Andrew D. Hwang hat geschrieben:Tensor : Multidimensional array :: Linear transformation : Matrix.

The short of it is, tensors and multidimensional arrays are different types of object; the first is a type of function, the second is a data structure suitable for representing a tensor in a coordinate system.
Hätte mich sonst auch gewundert. XD
Halt Stop!
Der Datentyp des Arrays kann auch eine Funktion sein, sonst wäre das doch zu einfach. Funktionale Programmierung mit Multidimensionalen Arrays!

Re: Busting Big Data

Verfasst: 30. Juni 2018, 13:47
von Bwana Honolulu
fehlgeleitet hat geschrieben:Sorry, dass ist falsch.
OK. Ich bin ja nicht der Mathemat hier, hab' aber halt jetzt an mehreren Stellen gelesen, daß ein multidimensionales Array als Darstellungsform eines Tensors dienen kann, aber eben kein Tensor ist. Hab' das so als The map is not the territory-Ding verstanden, aber ich hab' da halt auch nicht wirklich die Ahnung, kann das nur nachschlagen. :kp:

Re: Busting Big Data

Verfasst: 30. Juni 2018, 22:43
von fehlgeleitet
Bwana Honolulu hat geschrieben:
fehlgeleitet hat geschrieben:Sorry, dass ist falsch.
OK. Ich bin ja nicht der Mathemat hier, hab' aber halt jetzt an mehreren Stellen gelesen, daß ein multidimensionales Array als Darstellungsform eines Tensors dienen kann, aber eben kein Tensor ist. Hab' das so als The map is not the territory-Ding verstanden, aber ich hab' da halt auch nicht wirklich die Ahnung, kann das nur nachschlagen. :kp:
ich bin hammerschwerbesoffen und kann mich kaum konzentrieren, aber Darstellungsform und Identität sind in der Mathematik meist dasselbe.