Алгоритм потоковой передачи
В информатике , потоковые алгоритмы — это алгоритмы обработки потоков данных в которых входные данные представлены как последовательность элементов и могут быть проверены всего за несколько проходов, обычно за один . Эти алгоритмы предназначены для работы с ограниченной памятью, обычно логарифмической по размеру потока и/или максимальному значению в потоке, а также могут иметь ограниченное время обработки каждого элемента.
В результате этих ограничений алгоритмы потоковой передачи часто выдают приблизительные ответы на основе сводки или «эскиза» потока данных.
История
[ редактировать ]Хотя алгоритмы потоковой передачи уже изучались Манро и Патерсоном. [ 1 ] еще в 1978 году, а также Филипп Флажоле и Дж. Найджел Мартин в 1982/83 году, [ 2 ] Область потоковых алгоритмов была впервые формализована и популяризирована в статье 1996 года Ноги Алона , Йосси Матиаса и Марио Сегеди . [ 3 ] За эту статью авторы позже получили премию Гёделя в 2005 году «за основополагающий вклад в алгоритмы потоковой передачи». С тех пор был проведен большой объем работ, посвященных алгоритмам потоковой передачи данных, которые охватывают широкий спектр областей информатики, таких как теория, базы данных, сети и обработка естественного языка.
Полупотоковые алгоритмы были представлены в 2005 году как упрощенная версия потоковых алгоритмов для графов. [ 4 ] в котором разрешенное пространство линейно по числу вершин n , но только логарифмично по числу ребер m . Это расслабление все еще имеет смысл для плотных графов и может решить интересные проблемы (например, связность), которые неразрешимы в космос.
Модели
[ редактировать ]Модель потока данных
[ редактировать ]В модели потока данных некоторые или все входные данные представлены как конечная последовательность целых чисел (из некоторой конечной области), которая обычно недоступна для произвольного доступа , а вместо этого поступает по одному в «потоке». [ 5 ] Если поток имеет длину n и размер домена m , алгоритмы обычно ограничены использованием пространства, логарифмического по m и n . Обычно они могут совершить лишь небольшое постоянное число проходов над потоком, иногда только один . [ 6 ]
Модели турникетов и кассовых аппаратов
[ редактировать ]Большая часть потоковой литературы посвящена вычислению статистики по распределения частот, которые слишком велики для сохранения. Для этого класса проблемы, есть вектор (инициализируется нулевым вектором ), для которого обновления представлены в потоке. Целью этих алгоритмов является вычисление функции занимает значительно меньше места, чем он взял бы представлять именно так. Есть два распространенные модели обновления таких потоков, называемые «кассовым аппаратом» и модели «турникеты». [ 7 ]
В модели кассового аппарата каждое обновление имеет вид , так что увеличивается на некоторое положительное целое число . Примечательным частным случаем является случай, когда (разрешены только вставки единиц).
В модели турникета каждое обновление имеет вид , так что увеличивается на некоторое (возможно, отрицательное) целое число . В модели «строгого турникета» нет в любой момент может быть меньше нуля.
Модель с раздвижным окном
[ редактировать ]В нескольких статьях также рассматривается модель «скользящего окна». [ нужна ссылка ] В этой модели интересующая функция — вычисления в окне фиксированного размера в транслировать. По мере продвижения потока элементы из конца окна сняты с рассмотрения, пока новинки из потока займут свое место место.
Помимо вышеперечисленных проблем, связанных с частотой, существуют и другие типы проблем. также были изучены. Многие графические задачи решаются в настройке где матрица смежности или список смежности графа передаются в потоковом режиме какой-то неизвестный порядок. Есть также некоторые проблемы, которые очень зависят по порядку потока (т. е. асимметричные функции), такие как подсчет количество инверсий в потоке и нахождение самой длинной возрастающей подпоследовательность. [ нужна ссылка ]
Оценка
[ редактировать ]Производительность алгоритма, работающего с потоками данных, измеряется тремя основными факторами:
- Число проходов, которые алгоритм должен выполнить над потоком.
- Доступная память.
- Время работы алгоритма.
Эти алгоритмы имеют много общего с онлайн-алгоритмами, поскольку оба требуют принятия решений до того, как будут доступны все данные, но они не идентичны. Алгоритмы потоков данных имеют ограниченную доступную память, но они могут иметь возможность откладывать действие до прибытия группы точек, в то время как онлайн-алгоритмы должны предпринимать действия сразу после прибытия каждой точки.
Если алгоритм является аппроксимационным, то точность ответа является еще одним ключевым фактором. Точность часто определяют как аппроксимация означает, что алгоритм достигает ошибки менее с вероятностью .
Приложения
[ редактировать ]Алгоритмы потоковой передачи имеют несколько приложений в сети, например мониторинг сетевых соединений на предмет потоков слонов , подсчет количества отдельные потоки, оценивая распределение размеров потоков и т. д. на. [ 8 ] У них также есть приложения в базы данных, такие как оценка размера соединения [ нужна ссылка ] .
Некоторые проблемы с потоковой передачей
[ редактировать ]Частотные моменты
[ редактировать ]k - й частотный момент набора частот определяется как .
Первый момент это просто сумма частот (т.е. общее количество). Второй момент полезен для расчета статистических свойств данных, таких как коэффициент Джини. вариаций. определяется как частота наиболее часто встречающихся элементов.
Фундаментальная статья Алона, Матиаса и Сегеди посвящена проблеме оценки частотных моментов. [ нужна ссылка ]
Расчет частотных моментов
[ редактировать ]Прямой подход к нахождению частотных моментов требует ведения регистра m i для всех различных элементов a i ∈ (1,2,3,4,..., N ), что требует как минимум памяти порядка . [ 3 ] Но у нас есть ограничения по пространству, и нам нужен алгоритм, который выполняет вычисления в гораздо меньшем объеме памяти. Этого можно достичь, используя приближения вместо точных значений. Алгоритм, который вычисляет ( δ )-аппроксимацию Fk ε , где F’k , — ( ε,δ )- приблизительное значение F k . [ 9 ] Где ε — параметр аппроксимации, а δ — доверительный параметр. [ 10 ]
Вычисление F 0 (отдельные элементы в потоке данных)
[ редактировать ]Алгоритм FM-эскиза
[ редактировать ]Флажоле и др. в [ 2 ] представил вероятностный метод подсчета, вдохновленный статьей Роберта Морриса . [ 11 ] Моррис в своей статье говорит, что если отбросить требование точности, счетчик n можно заменить счетчиком log n, который может храниться в log log n бит. [ 12 ] Флажоле и др. в [ 2 ] улучшил этот метод, используя хеш-функцию h, которая, как предполагается, равномерно распределяет элемент в хеш-пространстве (двоичная строка длины L ).
Пусть bit( y,k ) представляет k-й бит в двоичном представлении y
Позволять представляет позицию наименьшего двоичном представлении y значащий 1-бит в с подходящим соглашением для .
Пусть A — последовательность потока данных длиной M , мощность которой необходимо определить. Пусть BITMAP [0... L − 1] —
хеш-пространство, в котором ρ ( хеш-значения записываются ). Приведенный ниже алгоритм затем определяет приблизительную мощность A .
Procedure FM-Sketch: for i in 0 to L − 1 do BITMAP[i] := 0 end for for x in A: do Index := ρ(hash(x)) if BITMAP[index] = 0 then BITMAP[index] := 1 end if end for B := Position of left most 0 bit of BITMAP[] return 2 ^ B
есть N Если в потоке данных различных элементов.
- Для тогда BITMAP [ i ] заведомо равен 0
- Для тогда BITMAP [ i ] заведомо равен 1
- Для тогда BITMAP [ i ] представляет собой набор из 0 и 1
K -алгоритм минимального значения
[ редактировать ]Предыдущий алгоритм описывает первую попытку аппроксимировать F 0 в потоке данных Флажоле и Мартина. Их алгоритм выбирает случайную хеш-функцию , которая, по их предположению, равномерно распределяет хэш-значения в хеш-пространстве.
Бар-Йосеф и др. в [ 10 ] представил алгоритм k-минимального значения для определения количества различных элементов в потоке данных. Они использовали аналогичную хэш-функцию h , которую можно нормализовать к [0,1] как . Но они установили ограничение на количество значений в хеш-пространстве. Значение t принимается порядка (т.е. меньшее значение аппроксимации ε требует большего t ). Алгоритм KMV сохраняет только t в хэш-пространстве наименьших значений хеш-функции. После того, как все m значений потока прибыли, используется для расчета . То есть в почти однородном хэш-пространстве они ожидают, что по крайней мере t элементов будут меньше .
Procedure 2 K-Minimum Value Initialize first t values of KMV for a in a1 to an do if h(a) < Max(KMV) then Remove Max(KMV) from KMV set Insert h(a) to KMV end if end for return t/Max(KMV)
Анализ сложности КМВ
[ редактировать ]Алгоритм KMV может быть реализован в пространство битов памяти. Каждое значение хеш-функции требует пространства порядка биты памяти. Есть хэш-значения заказа . Время доступа можно сократить, если хранить значения хэша t в двоичном дереве. Таким образом, временная сложность будет уменьшена до .
Расчет F k
[ редактировать ]Алон и др. оценивает F k путем определения случайных величин, которые можно вычислить в заданном пространстве и времени. [ 3 ] Ожидаемое значение случайных величин дает приблизительное значение F k .
Предположим, что длина последовательности m известна заранее. Затем создайте случайную величину X следующим образом:
- Выберите p как случайный член последовательности A с индексом p ,
- Позволять , представляет количество вхождений l в члены последовательности A, за p следующие .
- Случайная величина .
Предположим, что S 1 имеет порядок и S 2 имеют порядок . Алгоритм принимает S 2 случайную величину и выводит медиану . Где Y i — среднее значение X ij , где 1 ≤ j ≤ S 1 .
Теперь вычислим математическое ожидание случайной величины E ( X ) .
Сложность F k
[ редактировать ]Из алгоритма расчета F k, обсуждавшегося выше, мы видим, что каждая случайная величина X хранит значения a p и r . Итак, для вычисления X нам нужно сохранить только биты log( n ) для хранения и p биты ( n ) log для хранения r . Общее количество случайной величины X будет равно .
Следовательно, общая пространственная сложность алгоритма имеет порядок
Упрощенный подход к расчету F 2
[ редактировать ]Предыдущий алгоритм вычисляет в порядке биты памяти. Алон и др. в [ 3 ] упростил этот алгоритм, используя четырехкратную независимую случайную величину со значениями, сопоставленными с .
Это еще больше снижает сложность расчета. к
Частые элементы
[ редактировать ]В модели потока данных проблема с частыми элементами состоит в том, чтобы вывести набор элементов, которые составляют больше, чем некоторая фиксированная часть потока. Особым случаем является проблема большинства , которая заключается в определении того, составляет ли какое-либо значение большую часть потока.
Более формально, зафиксируйте некоторую положительную константу c > 1, пусть длина потока равна m и пусть f i обозначает частоту значения i в потоке. Проблема с частыми элементами состоит в том, чтобы вывести набор { i | f i > m/c }. [ 13 ]
Некоторые известные алгоритмы:
- Алгоритм большинства голосов Бойера-Мура
- Эскиз Граф-Мин
- Подсчет с потерями
- Многоступенчатые фильтры Блума
- Алгоритм сильных нападающих Мисры – Гриса
- Резюме Мисры – Гриса
Обнаружение событий
[ редактировать ]Обнаружение событий в потоках данных часто выполняется с использованием алгоритма с сильными нападающими, как указано выше: наиболее частые элементы и их частота определяются с помощью одного из этих алгоритмов, затем наибольшее увеличение по сравнению с предыдущим моментом времени сообщается как тенденция. Этот подход можно усовершенствовать, используя для нормализации экспоненциально взвешенные скользящие средние и дисперсию. [ 14 ]
Подсчет отдельных элементов
[ редактировать ]Подсчет количества различных элементов в потоке (иногда называемый F 0 момент) — еще одна хорошо изученная проблема. Первый алгоритм для него был предложен Флажоле и Мартином. В 2010 году Дэниел Кейн , Джелани Нельсон и Дэвид Вудрафф нашли асимптотически оптимальный алгоритм для этой задачи. [ 15 ] Он использует O ( ε 2 + log d ) пространство с O (1) наихудшим временем обновления и отчета, а также универсальными хэш-функциями и r -независимым хэш-семейством, где r = Ω(log(1/ ε ) / log log(1/ ε )) .
Энтропия
[ редактировать ](Эмпирическая) энтропия набора частот является определяется как , где .
Онлайн обучение
[ редактировать ]Изучите модель (например, классификатор ) за один проход по обучающему набору.
Нижние границы
[ редактировать ]Нижние границы были вычислены для многих задач потоковой передачи данных. которые были изучены. На сегодняшний день наиболее распространенный метод вычислений эти нижние границы используют сложность связи . [ нужна ссылка ]
См. также
[ редактировать ]- Интеллектуальный анализ потока данных
- Кластеризация потоков данных
- Онлайн-алгоритм
- Потоковая обработка
- Последовательный алгоритм
Примечания
[ редактировать ]- ^ Манро, Дж. Ян; Патерсон, Майк (1978). «Отбор и сортировка при ограниченном хранении». 19-й ежегодный симпозиум по основам информатики, Анн-Арбор, Мичиган, США, 16–18 октября 1978 г. Компьютерное общество IEEE. стр. 253–258. дои : 10.1109/SFCS.1978.32 .
- ^ Перейти обратно: а б с Flajolet & Martin (1985)
- ^ Перейти обратно: а б с д Алон, Матиас и Сегеди (1996)
- ^ Фейгенбаум, Джоан; Сампат, Каннан (2005). «О задачах на графах в полупотоковой модели» . Теоретическая информатика . 348 (2): 207–216. дои : 10.1016/j.tcs.2005.09.013 .
- ^ Бэбкок, Брайан; Бабу, Шивнатх; Датар, Маюр; Мотвани, Раджив; Видом, Дженнифер (2002). «Модели и проблемы в системах потоков данных». Материалы двадцать первого симпозиума ACM SIGMOD-SIGACT-SIGART по принципам систем баз данных . ПОДС '02. Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 1–16. CiteSeerX 10.1.1.138.190 . дои : 10.1145/543613.543615 . ISBN 978-1581135077 . S2CID 2071130 .
- ^ Бар-Йосеф, Зив; Джайрам, Т.С.; Кумар, Рави; Сивакумар, Д.; Тревизан, Лука (13 сентября 2002 г.). «Подсчет различных элементов в потоке данных». Методы рандомизации и аппроксимации в информатике . Конспекты лекций по информатике. Том. 2483. Шпрингер, Берлин, Гейдельберг. стр. 1–10. CiteSeerX 10.1.1.12.6276 . дои : 10.1007/3-540-45726-7_1 . ISBN 978-3540457268 . S2CID 4684185 .
- ^ Гилберт и др. (2001)
- ^ Сюй (2007)
- ^ Индик, Петр; Вудрафф, Дэвид (1 января 2005 г.). «Оптимальные аппроксимации частотных моментов потоков данных». Материалы тридцать седьмого ежегодного симпозиума ACM по теории вычислений . СТОК '05. Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 202–208. дои : 10.1145/1060590.1060621 . ISBN 978-1-58113-960-0 . S2CID 7911758 .
- ^ Перейти обратно: а б Бар-Йосеф, Зив; Джайрам, Т.С.; Кумар, Рави; Сивакумар, Д.; Тревизан, Лука (13 сентября 2002 г.). Ролим, Хосе ДП; Вадхан, Салил (ред.). Подсчет различных элементов в потоке данных . Конспекты лекций по информатике. Шпрингер Берлин Гейдельберг. стр. 1–10. CiteSeerX 10.1.1.12.6276 . дои : 10.1007/3-540-45726-7_1 . ISBN 978-3-540-44147-2 . S2CID 4684185 .
- ^ Моррис (1978)
- ^ Флажоле, Филипп (1 марта 1985 г.). «Приблизительный подсчет: подробный анализ». БИТ Численная математика . 25 (1): 113–134. CiteSeerX 10.1.1.64.5320 . дои : 10.1007/BF01934993 . ISSN 0006-3835 . S2CID 2809103 .
- ^ Кормод, Грэм (2014). «Сводки Мисры-Гриса». В Као, Мин-Ян (ред.). Энциклопедия алгоритмов . Спрингер США. стр. 1–5. дои : 10.1007/978-3-642-27848-8_572-1 . ISBN 9783642278488 .
- ^ Шуберт, Э.; Вейлер, М.; Кригель, HP (2014). SigniTrend: масштабируемое обнаружение возникающих тем в текстовых потоках с помощью хэшированных порогов значимости . Материалы 20-й международной конференции ACM SIGKDD по обнаружению знаний и интеллектуальному анализу данных - KDD '14. стр. 871–880. дои : 10.1145/2623330.2623740 . ISBN 9781450329569 .
- ^ Кейн, Нельсон и Вудрафф (2010)
Ссылки
[ редактировать ]- Алон, Нога ; Матиас, Йоси ; Сегеди, Марио (1999), «Пространственная сложность аппроксимации частотных моментов», Journal of Computer and System Sciences , 58 (1): 137–147, doi : 10.1006/jcss.1997.1545 , ISSN 0022-0000 . Впервые опубликовано как Алон, Нога; Матиас, Йоси; Сегеди, Марио (1996), «Пространственная сложность аппроксимации частотных моментов», Труды 28-го симпозиума ACM по теории вычислений (STOC 1996) , стр. 20–29, CiteSeerX 10.1.1.131.4984 , doi : 10.1145/ 237814.237823 , ISBN 978-0-89791-785-8 , S2CID 1627911 .
- Бэбкок, Брайан; Бабу, Шивнатх; Датар, Маюр; Мотвани, Раджив ; Уидом, Дженнифер (2002), «Модели и проблемы в системах потоков данных», Материалы 21-го симпозиума ACM SIGMOD-SIGACT-SIGART по принципам систем баз данных (PODS 2002) (PDF) , стр. 1–16, CiteSeerX 10.1. 1.138.190 , номер doi : 10.1145/543613.543615 , ISBN 978-1581135077 , S2CID 2071130 , заархивировано из оригинала (PDF) 9 июля 2017 г. , получено 15 июля 2013 г.
- Гилберт, AC ; Котидис, Ю.; Мутукришнан, С .; Штраус, MJ (2001), «Просмотр вейвлетов в потоках: однопроходные сводки для приблизительных агрегатных запросов» (PDF) , Материалы Международной конференции по очень большим базам данных : 79–88 .
- Кейн, Дэниел М.; Нельсон, Джелани; Вудрафф, Дэвид П. (2010). «Оптимальный алгоритм решения задачи о различных элементах». Материалы двадцать девятого симпозиума ACM SIGMOD-SIGACT-SIGART по принципам систем баз данных . ПОДС '10. Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 41–52. CiteSeerX 10.1.1.164.142 . дои : 10.1145/1807085.1807094 . ISBN 978-1-4503-0033-9 . S2CID 10006932 . .
- Карп, РМ ; Пападимитриу, Швейцария ; Шенкер, С. (2003), «Простой алгоритм поиска частых элементов в потоках и пакетах», Транзакции ACM в системах баз данных , 28 (1): 51–55, CiteSeerX 10.1.1.116.8530 , doi : 10.1145/762471.762473 , S2CID 952840 .
- Лалл, Эшвин; Секар, Вьяс; Огихара, Мицунори; Сюй, Цзюнь; Чжан, Хуэй (2006), «Алгоритмы потоковой передачи данных для оценки энтропии сетевого трафика», Материалы совместной международной конференции по измерению и моделированию компьютерных систем (ACM SIGMETRICS 2006) (PDF) , стр. 145, doi : 10.1145/1140277.1140295 , hdl : 1802/2537 , ISBN 978-1595933195 , S2CID 240982 [ постоянная мертвая ссылка ] .
- Сюй, Цзюнь (Джим) (2007), Учебное пособие по потоковой передаче сетевых данных (PDF) .
- Хит Д., Касиф С., Косараджу Р., Зальцберг С., Салливан Г., «Изучение вложенных концепций с ограниченным хранилищем», Труды IJCAI'91, Материалы 12-й международной совместной конференции по искусственному интеллекту - Том 2, страницы 777–782, Morgan Kaufmann Publishers Inc. Сан-Франциско, Калифорния, США © 1991 г.
- Моррис, Роберт (1978), «Подсчет большого количества событий в маленьких регистрах», Communications of the ACM , 21 (10): 840–842, doi : 10.1145/359619.359627 , S2CID 36226357 .