Streaming -Algorithmus
Im Informatik, Streaming -Algorithmen sind Algorithmen für die Verarbeitung Datenströme in dem der Eingang als dargestellt wird Reihenfolge von Gegenständen und kann nur in wenigen Pässen untersucht werden (normalerweise nur einer). In den meisten Modellen haben diese Algorithmen Zugriff auf einen begrenzten Speicher (im Allgemeinen logarithmisch in der Größe und/oder dem Maximalwert im Strom). Sie können auch eine begrenzte Verarbeitungszeit pro Gegenstand haben.
Diese Einschränkungen können bedeuten, dass ein Algorithmus eine ungefähre Antwort auf der Grundlage einer Zusammenfassung oder "Skizze" des Datenstroms erzeugt.
Geschichte
Obwohl Streaming -Algorithmen bereits von Munro und Paterson untersucht worden waren[1] bereits 1978 sowie Philippe Flajolet und G. Nigel Martin 1982/83,[2] Das Gebiet der Streaming -Algorithmen wurde erstmals in einem Artikel von 1996 von 1996 formalisiert und populär gemacht Noga Alon, Yossi Matias, und Mario Szegedy.[3] Für dieses Papier gewannen die Autoren später die Gödel -Preis 2005 "für ihren grundlegenden Beitrag zu Streaming -Algorithmen". Seitdem gab es eine große Arbeit, die sich um Datenstroming -Algorithmen konzentriert, die ein vielfältiges Spektrum von Informatikbereichen wie Theorie, Datenbanken, Netzwerk und Verarbeitung natürlicher Sprache umfassen.
Semi-Streaming-Algorithmen wurden 2005 als Entspannung von Streaming-Algorithmen für Graphen eingeführt.[4] in dem der zulässige Raum in der Anzahl der Eckpunkte linear ist n, aber nur logarithmisch in der Anzahl der Kanten m. Diese Entspannung ist für dichte Graphen immer noch von Bedeutung und kann interessante Probleme (wie die Konnektivität) lösen, die unlöslich sind Platz.
Modelle
Datenstrommodell
Im Datenstrommodell werden einige oder alle Eingaben als endliche Abfolge von Ganzzahlen (aus einer endlichen Domäne) dargestellt, die im Allgemeinen nicht verfügbar ist Zufallszugriff, kommt aber stattdessen einzeln in einem "Stream" an.[5] Wenn der Strom Länge hat n Und die Domäne hat die Größe mAlgorithmen sind im Allgemeinen eingeschränkt, um Platz zu verwenden, das ist logarithmisch in m und n. Sie können im Allgemeinen nur eine kleine ständige Anzahl von Pässen über den Strom machen, manchmal gerade gerecht eines.[6]
Dreh- und Registrierungsmodelle
Ein Großteil der Streaming -Literatur befasst sich mit Computerstatistiken zu Frequenzverteilungen, die zu groß sind, um gespeichert zu werden. Für diese Klasse von Problemen gibt es einen Vektor (initialisiert an den Nullvektor ) Das hat Aktualisierungen in einem Stream vorgestellt. Das Ziel dieser Algorithmen ist es, Funktionen von zu berechnen Nutzbar weniger Platz zu nutzen, als es brauchen würde, um darzustellen genau. Es gibt zwei gemeinsame Modelle für die Aktualisierung solcher Streams, die als "Registrierkasse" und "Drehstil" -Modelle bezeichnet werden.[7]
Im Speichermodell befindet sich jedes Update aus dem Formular , so dass wird durch eine positive Ganzzahl erhöht . Ein bemerkenswerter Sonderfall ist wann (Es sind nur Einheiteneinfügungen gestattet).
Im Drehkreuzmodell befindet sich jedes Update aus dem Formular , so dass wird durch eine (möglicherweise negative) Ganzzahl erhöht . Im Modell "Strict Drehs", nein kann zu irgendeinem Zeitpunkt weniger als Null sein.
Schiebefenstermodell
Mehrere Papiere betrachten auch das Modell "Schiebfenster". In diesem Modell ist die Funktion des Interesses das Berechnen eines Fensters mit fester Größe im Stream. Im Verlauf des Streams werden Elemente vom Ende des Fensters aus der Prüfung entfernt, während neue Elemente aus dem Stream ihren Platz einnehmen.
Neben den oben genannten frequenzbasierten Problemen wurden auch einige andere Arten von Problemen untersucht. Viele Diagrammprobleme werden in der Einstellung gelöst, wo die Adjazenzmatrix oder der Adjazenzliste der Grafik wird in einer unbekannten Reihenfolge gestreamt. Es gibt auch einige Probleme, die sehr von der Reihenfolge des Stroms abhängen (d. H. Asymmetrische Funktionen), wie z.
Auswertung
Die Leistung eines Algorithmus, der auf Datenströmen arbeitet, wird an drei grundlegenden Faktoren gemessen:
- Die Anzahl der übergeht der Algorithmus muss über den Strom versehen.
- Der verfügbare Speicher.
- Die Laufzeit des Algorithmus.
Diese Algorithmen haben viele Ähnlichkeiten mit Online -Algorithmen Da beide Entscheidungen treffen müssen, bevor alle Daten verfügbar sind, aber nicht identisch sind. Datenstromalgorithmen haben nur einen begrenzten Speicher, aber sie können Maßnahmen möglicherweise aufschieben, bis eine Gruppe von Punkten ankommt, während Online -Algorithmen Maßnahmen ergreifen müssen, sobald jeder Punkt ankommt.
Wenn der Algorithmus ein Annäherungsalgorithmus ist, ist die Genauigkeit der Antwort ein weiterer Schlüsselfaktor. Die Genauigkeit wird oft als als angegeben Annäherung, was bedeutet, dass der Algorithmus einen Fehler von weniger als erreicht mit Wahrscheinlichkeit .
Anwendungen
Streaming -Algorithmen haben mehrere Anwendungen in Networking wie Überwachungsnetzwerkverbindungen für ElefantenströmeZählen der Anzahl verschiedener Strömungen, Schätzung der Verteilung der Flussgrößen usw.[8] Sie haben auch Anwendungen in Datenbanken, z. B. die Schätzung der Größe von a beitreten.
Einige Streaming -Probleme
Frequenzmomente
Das kTH Frequenzmoment einer Reihe von Frequenzen ist definiert als .
Der erste Moment ist einfach die Summe der Frequenzen (d. H. Die Gesamtzahl). Der zweite Moment ist nützlich für die Berechnung statistischer Eigenschaften der Daten, wie z. Gini-Koeffizient Variation. ist definiert als die Frequenz der häufigsten Elemente.
Das Samenpapier von Alon, Matias und Szegedy befassten sich mit dem Problem der Schätzung der Frequenzmomente.
Berechnung der Frequenzmomente
Ein direkter Ansatz, um die Frequenzmomente zu finden, erfordert die Wartung eines Registers mi Für alle unterschiedlichen Elemente ai ∈ (1,2,3,4, ...,N) Dies erfordert mindestens Speicher der Ordnung .[3] Wir haben jedoch Platzeinschränkungen und benötigen einen Algorithmus, der in einem viel niedrigeren Speicher berechnet wird. Dies kann durch die Verwendung von Approximationen anstelle von genauen Werten erreicht werden. Ein Algorithmus, der eine berechnet (ε, δ) Annäherung von Fk, wo F'k ist der (ε, δ)- angenäherter Wert von Fk.[9] Wo ε ist der Annäherungsparameter und δ ist der Vertrauensparameter.[10]
Berechnung F0 (Unterschiedliche Elemente in einem Datastream)
FM-Sketch-Algorithmus
Flajolet et al. in [2] eingeführte probabilistische Zählmethode, die von einem Papier von inspiriert wurde Robert Morris.[11] Morris in seiner Zeitung sagt, wenn das Erfordernis der Genauigkeit fallen gelassen wird, ein Zähler n kann durch einen Zähler ersetzt werden Protokoll n das kann in gespeichert werden Protokollprotokoll n Bits.[12] Flajolet et al. in [2] verbesserte diese Methode mit einer Hash -Funktion h Es wird angenommen L).
Lassen bisschen(y, k) repräsentieren das KTH -Bit in der binären Darstellung von y
Lassen repräsentiert die Position des am wenigsten signifikanten 1-Bit in der binären Darstellung von yi mit einer geeigneten Konvention für .
Lassen A Seien Sie die Abfolge des Datenstroms der Länge M deren Kardinalität muss bestimmt werden. Lassen BITMAP [0 ...L - 1] der
Hash -Raum, wo der ρ(Hadervalues) sind aufgenommen. Der folgende Algorithmus bestimmt dann die ungefähre Kardinalität von A.
Prozedur fm-sketch: für i in 0 bis l-1 do bitmap [i]: = 0 ende für x in a: do index: = ρ (Hash (x)) Wenn bitmap [index] = 0 dann Bitmap [INDEX) ]: = 1 Ende, wenn Ende für b: = Position der linken meisten 0 Bit Bitmap [] zurücks 2 ^ B
Wenn es gibt N Unterschiedliche Elemente in einem Datenstrom.
- Zum dann BITMAP[i] ist sicherlich 0
- Zum dann BITMAP[i] ist sicher 1 1
- Zum dann BITMAP[i] ist ein Rand der 0er und eines 1er
K-Minimum -Wertalgorithmus
Der vorherige Algorithmus beschreibt den ersten Versuch, ungefähr zu approximieren F0 im Datenstrom von Flajolet und Martin. Ihr Algorithmus wählt eine zufällige Hash -Funktion aus, die sie annehmen, die Hash -Werte im Hash -Raum einheitlich zu verteilen.
Bar-Yossef et al. in [10] eingeführter K-Minimum-Wert-Algorithmus zur Bestimmung der Anzahl verschiedener Elemente im Datenstrom. Sie verwendeten eine ähnliche Hash -Funktion h die auf [0,1] als normalisiert werden können . Aber sie haben ein Grenze festgelegt t zur Anzahl der Werte im Hash -Raum. Der Wert von t wird von der Bestellung angenommen (d. h. weniger Annäherungswerte ε erfordert mehr t). Der KMV -Algorithmus hält nur t-Smallest Hash -Werte im Hash -Raum. Immerhin m Werte des Streams sind angekommen, wird zur Berechnung verwendet. Das heißt, in einem nahezu einheitlichen Hash-Raum erwarten sie mindestens Mist t Elemente weniger als sein .
Verfahren 2 K-Minimum-Wert initialisieren Sie die ersten t-Werte von kmv für a in a1 bis ein do if h (a) <max (kmv), entfernen T/Max (KMV)
Komplexitätsanalyse von KMV
Der KMV -Algorithmus kann in implementiert werden Speicherplatz Platz. Jeder Hash -Wert erfordert Platz der Ordnung Speicherbits. Es gibt Hash -Werte der Reihenfolge . Die Zugangszeit kann reduziert werden, wenn wir die speichern t Hash -Werte in einem binären Baum. Somit wird die zeitliche Komplexität auf reduziert auf .
Berechnung Fk
Alon et al. Schätzungen Fk durch Definieren von zufälligen Variablen, die innerhalb von gegebenem Raum und Zeit berechnet werden können.[3] Der erwartete Wert von Zufallsvariablen ergibt den ungefähren Wert von Fk.
Nehmen Sie die Länge der Sequenz an m ist im Voraus bekannt. Erstellen Sie dann eine zufällige Variable X folgendermaßen:
- Auswählen ap ein zufälliges Mitglied der Sequenz sein A mit Index at p,
- Lassen , repräsentiert die Anzahl der Vorkommen von l Innerhalb der Mitglieder der Sequenz A folgen ap.
- Zufällige Variable .
Davon ausgehen S1 bestellen und S2 bestellen . Algorithmus nimmt S2 zufällige Variable und gibt den Median aus . Wo Yi ist der Durchschnitt von Xij wobei 1 ≤ j ≤ S1.
Berechnen Sie nun die Erwartung einer zufälligen Variablen E(X).
Komplexität von Fk
Vom Algorithmus zu berechnen Fk oben diskutiert werden wir sehen, dass jede zufällige Variable X speichert Wert von ap und r. Also, um zu berechnen X Wir müssen nur aufrechterhalten Protokoll(n) Bits zum Aufbewahren ap und Protokoll(n) Bits zum Aufbewahren r. Gesamtzahl der Zufallsvariablen X wird sein .
Daher ist die Gesamtraumkomplexität, die der Algorithmus nimmt
Einfacherer Ansatz zur Berechnung F2
Der vorherige Algorithmus berechnet in der Reihenfolge der Speicherbits. Alon et al. in [3] vereinfacht diesen Algorithmus mithilfe einer vierzweigen unabhängigen Zufallsvariablen mit zugeordneten Werten .
Dies reduziert die Berechnung der Komplexität weiter zu
Häufige Elemente
Im Datenstrommodell die häufiges Elementproblem ist, eine Reihe von Elementen auszugeben, die mehr als einen festen Anteil des Streams darstellen. Ein Sonderfall ist der Mehrheitsproblem, was bedeutet, ob ein Wert einen Großteil des Stroms darstellt oder nicht.
Führen Sie formell eine positive Konstante fest, c > 1, lass die Länge des Stroms sein m, und lass fi bezeichnen die Wertfrequenz i im Strom. Das Problem der häufigen Elemente besteht darin, die auszugeben einstellen { i | fi > m/c}.[13]
Einige bemerkenswerte Algorithmen sind:
- Boyer -Moore -Mehrheitsstimmenalgorithmus
- Graf-min-Skizze
- Verlustbezählung
- Mehrstufig Blütefilter
- MISRA -GRIES -Zusammenfassung
Ereigniserkennung
Das Erkennen von Ereignissen in Datenströmen erfolgt häufig unter Verwendung eines schweren Hitter -Algorithmus wie oben aufgeführt: Die häufigsten Elemente und ihre Frequenz werden unter Verwendung eines dieser Algorithmen bestimmt, dann wird die größte Erhöhung gegenüber dem vorherigen Zeitpunkt als Trend angegeben. Dieser Ansatz kann durch Verwendung exponentiell gewichteter Verfeinerung verfeinert werden Gleitende Mittelwerte und Varianz für die Normalisierung.[14]
Verschiedene Elemente zählen
Zählen Sie die Anzahl der unterschiedlichen Elemente in einem Strom (manchmal als das genanntF0 Moment) ist ein weiteres Problem, das gut untersucht wurde. Der erste Algorithmus dafür wurde von Flajolet und Martin vorgeschlagen. In 2010, Daniel Kane, Jelani Nelson Und David Woodruff fand einen asymptotisch optimalen Algorithmus für dieses Problem.[15] Es verwendet O(ε2 + log d) Raum, mit O(1) Worst-Case-Update- und Berichtszeiten sowie universelle Hash-Funktionen und a r-Se unabhängige Hashfamilie wo r = Ω (log (1//ε) / Protokollprotokoll (1 / /ε)).
Entropie
Die (empirische) Entropie einer Reihe von Frequenzen ist definiert als , wo .
Online lernen
Lernen Sie ein Modell (z. B. a Klassifikator) durch einen einzigen Pass über ein Trainingssatz.
Untergrenzen
Für viele untersuchte Probleme mit dem Datenstreaming wurden untere Grenzen berechnet. Bei weitem die häufigste Technik für die Berechnung dieser unteren Grenzen verwendet Kommunikationskomplexität.
Siehe auch
- Datenstromabbau
- Data stream clustering
- Online -Algorithmus
- Stream -Verarbeitung
- Sequentieller Algorithmus
Anmerkungen
- ^ Munro, J. Ian; Paterson, Mike (1978). "Auswahl und Sortierung mit begrenztem Speicher". 19. jährliches Symposium für Stiftungen von Informatik, Ann Arbor, Michigan, USA, 16. bis 18. Oktober 1978. IEEE Computer Society. S. 253–258. doi:10.1109/sfcs.1978.32.
- ^ a b c Flajolet & Martin (1985)
- ^ a b c d Alon, Matias & Szegedy (1996)
- ^ Feigenbaum, Joan; Sampath, Kannan (2005). "Bei Diagrammproblemen in einem halbstreaming Modell". Theoretische Informatik. 348 (2): 207–216. doi:10.1016/j.tcs.2005.09.013.
- ^ Babcock, Brian; Babu, Shivnath; Datar, Mayur; Motwani, Rajeev; Widom, Jennifer (2002). Modelle und Probleme in Datenstromsystemen. Verfahren des einundzwanzigsten ACM-Sigmod-Sigact-Sigart-Symposiums über Prinzipien von Datenbanksystemen. Pods '02. New York, NY, USA: ACM. S. 1–16. Citeseerx 10.1.1.138.190. doi:10.1145/543613.543615. ISBN 978-1581135077. S2CID 2071130.
- ^ Bar-Yossef, ZIV; Jayram, T. S.; Kumar, Ravi; Sivakumar, D.; Trevisan, Luca (2002-09-13). Zählen Sie unterschiedliche Elemente in einem Datenstrom. Randomisierung und Approximationstechniken in der Informatik. Vorlesungsnotizen in Informatik. Springer, Berlin, Heidelberg. S. 1–10. Citeseerx 10.1.1.12.6276. doi:10.1007/3-540-45726-7_1. ISBN 978-3540457268.
- ^ Gilbert et al. (2001)
- ^ Xu (2007)
- ^ Indyk, Piotr; Woodruff, David (2005-01-01). Optimale Näherungen der Frequenzmomente von Datenströmen. Verfahren des siebenunddreißigjährigen jährlichen ACM-Symposiums zur Theorie des Computers. STOC '05. New York, NY, USA: ACM. S. 202–208. doi:10.1145/1060590.1060621. ISBN 978-1-58113-960-0. S2CID 7911758.
- ^ a b Bar-Yossef, ZIV; Jayram, T. S.; Kumar, Ravi; Sivakumar, D.; Trevisan, Luca (2002-09-13). Rolim, José D. P.; Vadhan, Salil (Hrsg.). Zählen Sie unterschiedliche Elemente in einem Datenstrom. Vorlesungsnotizen in Informatik. Springer Berlin Heidelberg. S. 1–10. Citeseerx 10.1.1.12.6276. doi:10.1007/3-540-45726-7_1. ISBN 978-3-540-44147-2.
- ^ Morris (1978)
- ^ Flajolet, Philippe (1985-03-01). "Ungefähre Zählung: Eine detaillierte Analyse". Bit numerische Mathematik. 25 (1): 113–134. Citeseerx 10.1.1.64.5320. doi:10.1007/bf01934993. ISSN 0006-3835. S2CID 2809103.
- ^ Cormod, Graham (2014). "Misra-GRIES-Zusammenfassungen". In Kao, Ming-Yang (Hrsg.). Enzyklopädie von Algorithmen. Springer uns. S. 1–5. doi:10.1007/978-3-642-27848-8_572-1. ISBN 9783642278488.
- ^ Schubert, E.; Weiler, M.; Kriegel, H. P. (2014). Signitrend: skalierbare Erkennung neuer Themen in Textströmen durch Hashed -Signifikanzschwellenwerte. Proceedings der 20. ACM Sigkdd Internationalen Konferenz über Wissensdedeckung und Data Mining - KDD '14. S. 871–880. doi:10.1145/2623330.2623740. ISBN 9781450329569.
- ^ Kane, Nelson & Woodruff (2010)
Verweise
- Alon, Noga; Matias, Yossi; Szegedy, Mario (1999), "Die Raumkomplexität der Annäherung der Frequenzmomente", Journal of Computer and System Sciences, 58 (1): 137–147, doi:10.1006/jcs.1997.1545, ISSN 0022-0000. Zuerst veröffentlicht als Alon, Noga; Matias, Yossi; Szegedy, Mario (1996), "Die Raumkomplexität der Annäherung an die Frequenzmomente", Verfahren des 28. ACM -Symposiums über die Computertheorie (STOC 1996), S. 20–29, Citeseerx 10.1.1.131.4984, doi:10.1145/237814.237823, ISBN 978-0-89791-785-8, S2CID 1627911.
- Babcock, Brian; Babu, Shivnath; Datar, Mayur; Motwani, Rajeev; Widom, Jennifer (2002), "Modelle und Probleme in Datenstromsystemen", Verfahren des 21. ACM Sigmod-Sigact-Sigart-Symposiums über Prinzipien von Datenbanksystemen (Pods 2002) (PDF), S. 1–16, Citeseerx 10.1.1.138.190, doi:10.1145/543613.543615, ISBN 978-1581135077, S2CID 2071130.
- Gilbert, A. C.; Kotidis, Y.; Muthukrishnan, S.; Strauss, M. J. (2001), "Surfenwavelets in Streams: Ein-Pass-Zusammenfassungen für ungefähre Gesamtfragen" (PDF), Verfahren der Internationalen Konferenz über sehr große Datenbasis: 79–88.
- Kane, Daniel M.; Nelson, Jelani; Woodruff, David P. (2010). "Ein optimaler Algorithmus für das Problem mit unterschiedlichen Elementen". Verfahren des neunundzwanzigsten ACM-Sigmod-Sigact-Sigart-Symposiums über Prinzipien von Datenbanksystemen. Pods '10. New York, NY, USA: ACM. S. 41–52. Citeseerx 10.1.1.164.142. doi:10.1145/1807085.1807094. ISBN 978-1-4503-0033-9. S2CID 10006932..
- Karp, R. M.; Papadimitriou, C. H.; Shenker, S. (2003), "Ein einfacher Algorithmus zum Auffinden häufiger Elemente in Bächen und Taschen", ACM -Transaktionen auf Datenbanksystemen, 28 (1): 51–55, Citeseerx 10.1.1.116.8530, doi:10.1145/762471.762473, S2CID 952840.
- Lall, Ashwin; Sekar, Vyas; Ogihara, Mitsunori; Xu, jun; Zhang, Hui (2006), "Datenstreaming -Algorithmen zur Schätzung der Entropie des Netzwerkverkehrs", Verfahren der gemeinsamen internationalen Konferenz über Messung und Modellierung von Computersystemen (ACM Sigmetrics 2006) (PDF), p. 145, doi:10.1145/1140277.1140295, HDL:1802/2537, ISBN 978-1595933195, S2CID 240982[Permanent Dead Link].
- Xu, Jun (Jim) (2007), Ein Tutorial zum Streaming von Netzwerkdaten (PDF).
- Heath, D., Kasif, S., Kosaraju, R., Salzberg, S., Sullivan, G., "Lernen verschachtelte Konzepte mit begrenzter Lagerung", Proceeding Ijcai'91 Proceedings der 12. Internationalen gemeinsamen Konferenz über künstliche Intelligenz - Band - Band - Band - Volumen 2, Seiten 777-782, Morgan Kaufmann Publishers Inc. San Francisco, CA, USA © 1991
- Morris, Robert (1978), "zählen eine große Anzahl von Ereignissen in kleinen Registern", Kommunikation der ACM, 21 (10): 840–842, doi:10.1145/359619.359627, S2CID 36226357.