Алгоритм измерения сходства между двумя временными последовательностями, которые могут различаться по скорости
В анализе временных рядов динамическое искажение времени ( DTW ) — это алгоритм для измерения сходства между двумя временными последовательностями, которые могут различаться по скорости. Например, сходство в ходьбе может быть обнаружено с помощью DTW, даже если один человек шел быстрее другого, или если в ходе наблюдения были ускорения и замедления. DTW применялся к временным последовательностям видео-, аудио- и графических данных — действительно, любые данные, которые можно превратить в одномерную последовательность, можно проанализировать с помощью DTW. Хорошо известным применением было автоматическое распознавание речи , чтобы справиться с разной скоростью речи. Другие приложения включают распознавание говорящего и онлайн- распознавание подписи . Его также можно использовать в приложениях частичного сопоставления форм .
В общем случае DTW — это метод, который вычисляет оптимальное соответствие между двумя заданными последовательностями (например, временными рядами ) с определенными ограничениями и правилами:
Каждый индекс из первой последовательности должен быть сопоставлен с одним или несколькими индексами из другой последовательности, и наоборот.
Первый индекс из первой последовательности должен совпадать с первым индексом из другой последовательности (но это не обязательно должно быть его единственное совпадение)
Последний индекс из первой последовательности должен совпадать с последним индексом из другой последовательности (но это не обязательно должно быть его единственное совпадение)
Отображение индексов из первой последовательности в индексы из другой последовательности должно быть монотонно возрастающим, и наоборот, т.е. если есть индексы из первой последовательности, то не должно быть двух индексов в другой последовательности, таких, что индекс сопоставляется с индексом , а индекс сопоставляется с индексом , и наоборот.
Мы можем построить каждое соответствие между последовательностями и как путь в матрице от до , так что каждый шаг является одним из . В этой формулировке мы видим, что число возможных соответствий равно числу Деланнуа .
Оптимальным соответствием называется соответствие, удовлетворяющее всем ограничениям и правилам и имеющее минимальную стоимость, где стоимость вычисляется как сумма абсолютных разностей между значениями каждой сопоставленной пары индексов.
Последовательности «искажаются» нелинейно во временном измерении, чтобы определить меру их сходства независимо от определенных нелинейных изменений во временном измерении. Этот метод выравнивания последовательностей часто используется в классификации временных рядов. Хотя DTW измеряет величину, подобную расстоянию между двумя заданными последовательностями, он не гарантирует выполнение неравенства треугольника .
В дополнение к мере сходства между двумя последовательностями (создается так называемый "путь деформации"), путем деформации в соответствии с этим путем два сигнала могут быть выровнены во времени. Сигнал с исходным набором точек X (исходный), Y (исходный) преобразуется в X (деформированный), Y (деформированный). Это находит применение в генетической последовательности и аудиосинхронизации. В связанной технике последовательности с различной скоростью могут быть усреднены с использованием этой техники, см. раздел усредненной последовательности.
Этот пример иллюстрирует реализацию алгоритма динамического изменения времени, когда две последовательности s и t являются строками дискретных символов. Для двух символов x и y — d(x, y)это расстояние между символами, например d(x, y)= .
int DTWDistance(s: массив [1..n], t: массив [1..m]) { DTW := массив [0..n, 0..m] для i := 0 до n для j := 0 до m DTW[i, j] := бесконечность DTW[0, 0] := 0 для i := 1 до n для j := 1 до m стоимость := d(s[i], t[j]) DTW[i, j] := стоимость + минимум(DTW[i-1, j ], // вставка DTW[i , j-1], // удаление DTW[i-1, j-1]) // совпадение вернуть DTW[n, m]}
где DTW[i, j]— расстояние между s[1:i]и t[1:j]с наилучшим выравниванием.
Иногда мы хотим добавить ограничение локальности. То есть, мы требуем, чтобы если s[i]сопоставляется с t[j], то не было больше w , параметра окна.
Мы можем легко изменить приведенный выше алгоритм, добавив ограничение локальности (различияотмечено). Однако приведенная выше модификация работает только если не больше w , т. е. конечная точка находится в пределах длины окна от диагонали. Чтобы алгоритм заработал, параметр окна w должен быть адаптирован так, чтобы (см. строку, отмеченную (*) в коде).
int DTWDistance(s: массив [1..n], t: массив [1..m], ж: цел.) { DTW := массив [0..n, 0..m] w := макс(w, абс(нм))// адаптировать размер окна (*) для i := 0 до n для j:= 0 до m DTW[i, j] := бесконечность DTW[0, 0] := 0 для i := 1 до n для j := max(1, iw) до min(m, i+w) DTW[i, j] := 0 для i := 1 до n для j :=макс(1, iw) до мин(m, i+w) стоимость := d(s[i], t[j]) DTW[i, j] := стоимость + минимум(DTW[i-1, j ], // вставка DTW[i , j-1], // удаление DTW[i-1, j-1]) // совпадение вернуть DTW[n, m]}
Свойства деформации
Алгоритм DTW производит дискретное сопоставление между существующими элементами одной серии с другой. Другими словами, он не допускает масштабирования по времени сегментов внутри последовательности. Другие методы допускают непрерывное искажение. Например, Correlation Optimized Warping (COW) делит последовательность на однородные сегменты, которые масштабируются по времени с помощью линейной интерполяции, чтобы произвести наилучшее сопоставление искажения. Масштабирование сегмента приводит к потенциальному созданию новых элементов путем масштабирования сегментов по времени либо вниз, либо вверх, и, таким образом, производит более чувствительное искажение, чем дискретное сопоставление необработанных элементов DTW.
Сложность
Временная сложность алгоритма DTW равна , где и — длины двух входных последовательностей. 50-летняя квадратичная временная граница была нарушена в 2016 году: алгоритм Голда и Шарира позволяет вычислять DTW во времени и пространстве для двух входных последовательностей длины . [2]
Этот алгоритм также можно адаптировать к последовательностям разной длины. Несмотря на это улучшение, было показано, что строго субквадратичное время выполнения формы для некоторых не может существовать, если только гипотеза строгого экспоненциального времени не опровергается. [3] [4]
В то время как алгоритм динамического программирования для DTW требует места в наивной реализации, потребление пространства можно сократить, используя алгоритм Хиршберга .
Быстрые вычисления
Быстрые методы вычисления DTW включают PrunedDTW, [5] SparseDTW, [6] FastDTW, [7] и MultiscaleDTW. [8] [9]
Распространенную задачу — поиск схожих временных рядов — можно ускорить, используя нижние границы, такие как LB_Keogh, [10] LB_Improved, [11] или LB_Petitjean. [12] Однако алгоритм раннего отказа и сокращения DTW снижает степень ускорения, которую обеспечивает нижняя граница, а иногда и делает ее неэффективной.
В исследовании Ван и др. сообщили о немного лучших результатах с нижней границей LB_Improved, чем с границей LB_Keogh, и обнаружили, что другие методы были неэффективны. [13] После этого исследования была разработана граница LB_Enhanced, которая всегда точнее, чем LB_Keogh, а также более эффективна для вычислений. [14] LB_Petitjean — самая точная из известных нижних границ, которая может быть вычислена за линейное время. [12]
Средняя последовательность
Усреднение для динамического искажения времени — это проблема поиска средней последовательности для набора последовательностей. NLAAF [15] — точный метод усреднения двух последовательностей с использованием DTW. Для более чем двух последовательностей проблема связана с одним из множественных выравниваний и требует эвристики. DBA [16] в настоящее время является эталонным методом усреднения набора последовательностей в соответствии с DTW. COMASA [17] эффективно рандомизирует поиск средней последовательности, используя DBA в качестве локального процесса оптимизации.
Контролируемое обучение
Классификатор ближайшего соседа может достичь высочайшей производительности при использовании динамического искажения времени в качестве меры расстояния. [18]
Динамическое искривление времени Amerced
Amerced Dynamic Time Warping (ADTW) — это вариант DTW, разработанный для лучшего контроля допустимости DTW в допускаемых им выравниваниях. [19] Окна, которые классический DTW использует для ограничения выравниваний, вводят ступенчатую функцию. Любое искривление пути разрешено в пределах окна и никакое за его пределами. Напротив, ADTW использует аддитивный штраф, который налагается каждый раз, когда путь искривляется. Разрешено любое количество искривлений, но каждое действие искривления влечет за собой прямой штраф. ADTW значительно превосходит DTW с оконным методом при применении в качестве классификатора ближайшего соседа на наборе эталонных задач классификации временных рядов. [19]
Альтернативные подходы
В функциональном анализе данных временные ряды рассматриваются как дискретизации гладких (дифференцируемых) функций времени. Рассматривая наблюдаемые выборки как гладкие функции, можно использовать непрерывную математику для анализа данных. [20] Гладкость и монотонность функций деформации времени могут быть получены, например, путем интегрирования изменяющейся во времени радиальной базисной функции , таким образом, являясь одномерным диффеоморфизмом . [21] Оптимальные нелинейные функции деформации времени вычисляются путем минимизации меры расстояния набора функций до их деформированного среднего. Члены штрафа за шероховатость для функций деформации могут быть добавлены, например, путем ограничения размера их кривизны. Результирующие функции деформации являются гладкими, что облегчает дальнейшую обработку. Этот подход успешно применялся для анализа шаблонов и изменчивости речевых движений. [22] [23]
Другим связанным подходом являются скрытые марковские модели (HMM), и было показано, что алгоритм Витерби, используемый для поиска наиболее вероятного пути через HMM, эквивалентен стохастическому DTW. [24] [25] [26]
DTW и связанные с ними методы деформации обычно используются в качестве этапов предварительной или последующей обработки в анализе данных. Если наблюдаемые последовательности содержат как случайные вариации в своих значениях, форме наблюдаемых последовательностей, так и случайное временное несоответствие, деформация может переобучиться шуму, что приведет к смещенным результатам. Одновременная формулировка модели со случайными вариациями в обоих значениях (вертикальная) и временной параметризацией (горизонтальная) является примером нелинейной модели со смешанными эффектами . [27] В анализе движения человека было показано, что одновременное нелинейное моделирование со смешанными эффектами дает превосходные результаты по сравнению с DTW. [28]
Программное обеспечение с открытым исходным кодом
Библиотека tempo C++ с привязками Python реализует Early Abandoned и Pruned DTW, а также Early Abandoned и Pruned ADTW и нижние границы DTW LB_Keogh, LB_Enhanced и LB_Webb.
Библиотека Java UltraFastMPSearch реализует алгоритм UltraFastWWSearch [29] для быстрой настройки окна деформации.
Библиотека lbimproved C++ реализует алгоритмы быстрого поиска ближайшего соседа под лицензией GNU General Public License (GPL). Она также обеспечивает реализацию динамического искажения времени на C++, а также различные нижние границы.
Библиотека FastDTW представляет собой реализацию DTW на Java и реализацию FastDTW, которая обеспечивает оптимальные или близкие к оптимальным выравнивания с O ( N ) по времени и памяти, в отличие от требования O ( N 2 ) для стандартного алгоритма DTW. FastDTW использует многоуровневый подход, который рекурсивно проецирует решение из более грубого разрешения и уточняет спроецированное решение.
Форк FastDTW (Java) опубликован в Maven Central.
time-series-classification (Java) пакет для классификации временных рядов с использованием DTW в Weka.
Пакет DTW предоставляет пакеты Python (dtw-python) и R (dtw) с полным охватом членов семейства алгоритмов DTW, включая различные правила рекурсии (также называемые шаблонами шагов), ограничения и сопоставление подстрок.
Библиотека Python mlpy реализует DTW.
Библиотека Python pydtw реализует манхэттенские и евклидовы меры DTW, включая нижние границы LB_Keogh.
Библиотека cudadtw C++/CUDA реализует выравнивание подпоследовательностей DTW с евклидовым вкусом и z -нормализованного евклидового расстояния, аналогично популярному UCR-Suite на ускорителях с поддержкой CUDA.
Библиотека машинного обучения JavaML реализует DTW.
Библиотека ndtw C# реализует DTW с различными опциями.
Sketch-a-Char использует Greedy DTW (реализован на JavaScript) как часть программы классификатора символов LaTeX.
MatchBox реализует DTW для сопоставления мел-частотных кепстральных коэффициентов аудиосигналов.
Набор инструментов распознавания жестов в реальном времени GRT C++ реализует DTW.
Программный пакет PyHubs реализует классификаторы DTW и ближайшего соседа, а также их расширения (классификаторы, учитывающие хабы).
Библиотека Python simpledtw реализует классический алгоритм динамического программирования O ( NM ) и базируется на Numpy. Она поддерживает значения любой размерности, а также использует пользовательские функции норм для расстояний. Она лицензирована по лицензии MIT.
Библиотека Python tslearn реализует DTW в контексте временных рядов.
Библиотека cuTWED CUDA Python реализует современный улучшенный метод Time Warp Edit Distance, используя только линейную память с феноменальным ускорением.
DynamicAxisWarping.jl — это реализация DTW на Julia и связанных алгоритмов, таких как FastDTW, SoftDTW, GeneralDTW и DTW barycenters.
Multi_DTW реализует DTW для сопоставления двух одномерных массивов или двухмерных речевых файлов (двумерный массив).
Приложения
Распознавание устной речи
Из-за разной скорости речи возникает нелинейная флуктуация в речевой модели по отношению к оси времени, которую необходимо устранить. [30] Сопоставление DP — это алгоритм сопоставления шаблонов, основанный на динамическом программировании (DP) , который использует эффект нормализации времени, где флуктуации на оси времени моделируются с использованием нелинейной функции деформации времени. Рассматривая любые два речевых шаблона, мы можем избавиться от их временных различий, деформируя ось времени одного так, чтобы достичь максимального совпадения с другим. Более того, если функции деформации разрешено принимать любое возможное значение, то между словами, принадлежащими к разным категориям, можно провести очень мало [ уточнить ] различий. Таким образом, чтобы усилить различие между словами, принадлежащими к разным категориям, были наложены ограничения на наклон функции деформации.
Анализ корреляционной мощности
Нестабильные часы используются для преодоления наивного анализа мощности . Для противодействия этой защите используется несколько методов, одним из которых является динамическое искажение времени.
Финансы и эконометрика
Динамическое изменение времени используется в финансах и эконометрике для оценки качества прогноза по сравнению с реальными данными. [31] [32] [33]
^ Олсен, Н. Л.; Маркуссен, Б.; Ракет, Л. Л. (2018), «Одновременный вывод для невыровненных многомерных функциональных данных», Журнал Королевского статистического общества, Серия C , 67 (5): 1147–76, arXiv : 1606.03295 , doi : 10.1111/rssc.12276, S2CID 88515233
^ Голд, Омер; Шарир, Миха (2018). «Динамическое искривление времени и геометрическое расстояние редактирования: преодоление квадратичного барьера». Труды ACM по алгоритмам . 14 (4). doi : 10.1145/3230734. S2CID 52070903.
^ Брингманн, Карл; Кюннеманн, Марвин (2015). «Квадратичные условные нижние границы для задач со строками и динамическое искривление времени». 56-й ежегодный симпозиум IEEE по основам компьютерной науки 2015 г. стр. 79–97. arXiv : 1502.01063 . doi :10.1109/FOCS.2015.15. ISBN978-1-4673-8191-8. S2CID 1308171.
^ Аббуд, Амир; Бэкурс, Артурс; Уильямс, Вирджиния Василевска (2015). «Результаты жестких испытаний на прочность для LCS и других мер сходства последовательностей». 56-й ежегодный симпозиум IEEE по основам компьютерной науки 2015 г. стр. 59–78. doi :10.1109/FOCS.2015.14. ISBN978-1-4673-8191-8. S2CID 16094517.
^ Сильва, ДФ, Батиста, GEAPA (2015). Ускорение расчета матрицы динамического деформирования времени по всем парам.
^
Аль-Наймат, Г., Чавла, С., Тахери, Дж. (2012). SparseDTW: новый подход к ускорению динамического искажения времени.
^ Стэн Сальвадор, Филип Чан, FastDTW: На пути к точному динамическому деформированию времени в линейном времени и пространстве. Семинар KDD по добыче временных и последовательных данных, стр. 70–80, 2004.
^ Мейнард Мюллер, Хеннинг Маттес и Франк Курт (2006). Эффективный многомасштабный подход к аудиосинхронизации. Труды Международной конференции по поиску музыкальной информации (ISMIR), стр. 192—197.
^ Томас Претцлих, Джонатан Дриджер и Мейнард Мюллер (2016). Динамическое деформирование времени с ограничением памяти в нескольких масштабах. Труды Международной конференции IEEE по акустике, речи и обработке сигналов (ICASSP), стр. 569—573.
^ Keogh, E.; Ratanamahatana, CA (2005). «Точная индексация динамического искажения времени». Knowledge and Information Systems . 7 (3): 358–386. doi :10.1007/s10115-004-0154-9. S2CID 207056701.
^ Лемир, Д. (2009). «Быстрое извлечение с нижней границей динамического деформирования времени в два прохода». Распознавание образов . 42 (9): 2169–2180. arXiv : 0811.3301 . doi : 10.1016/j.patcog.2008.11.030. S2CID 8658213.
^ ab Webb, Geoffrey I.; Petitjean, Francois (2021). "Tight bottom bounds for Dynamic Time Warping". Распознавание образов . 115 : 107895. arXiv : 2102.07076 . doi : 10.1016/j.patcog.2021.107895. S2CID 231925247.
^ Ван, Сяоюэ и др. (2010). «Экспериментальное сравнение методов представления и мер расстояния для данных временных рядов». Data Mining and Knowledge Discovery . 2010 : 1–35. arXiv : 1012.2789 .
^ Тан, Чанг Вэй; Петижан, Франсуа; Уэбб, Джеффри И. (2019). «Эластичные полосы поперек пути: новая структура и метод нижней границы DTW». Труды Международной конференции SIAM 2019 года по интеллектуальному анализу данных . С. 522–530. arXiv : 1808.09617 . doi :10.1137/1.9781611975673.59. ISBN978-1-61197-567-3. S2CID 52120426.
^ Гупта, Л.; Молфесе, Д.Л.; Таммана, Р.; Симос, П.Г. (1996). «Нелинейное выравнивание и усреднение для оценки вызванного потенциала». Труды IEEE по биомедицинской инженерии . 43 (4): 348–356. doi :10.1109/10.486255. PMID 8626184. S2CID 28688330.
^ ab Petitjean, FO; Ketterlin, A.; Gançarski, P. (2011). "Метод глобального усреднения для динамического изменения времени с приложениями к кластеризации". Pattern Recognition . 44 (3): 678. doi :10.1016/j.patcog.2010.09.013.
^ Petitjean, FO; Gançarski, P. (2012). «Обобщение набора временных рядов путем усреднения: от последовательности Штейнера до компактного множественного выравнивания». Теоретическая информатика . 414 : 76–91. doi : 10.1016/j.tcs.2011.09.029 .
^ Дин, Хуэй; Трайчевски, Гоце; Шейерманн, Питер; Ванг, Сяоюэ; Кеог, Имонн (2008). «Запрос и извлечение данных временных рядов: экспериментальное сравнение представлений и мер расстояния». Proc. VLDB Endow . 1 (2): 1542–1552. doi : 10.14778/1454159.1454226 .
^ ab Herrmann, Matthieu; Webb, Geoffrey I. (2023). "Amercing: интуитивное и эффективное ограничение для динамического изменения времени". Распознавание образов . 137 : 109333. doi : 10.1016/j.patcog.2023.109333. S2CID 256182457.
^ Lucero, JC; Munhall, KG; Gracco, VG; Ramsay, JO (1997). «О регистрации времени и формировании паттернов речевых движений». Журнал исследований речи, языка и слуха . 40 (5): 1111–1117. doi :10.1044/jslhr.4005.1111. PMID 9328881.
^ Durrleman, S; Pennec, X.; Trouvé, A.; Braga, J.; Gerig, G. & Ayache, N. (2013). «На пути к комплексной структуре пространственно-временного статистического анализа данных о продольной форме». International Journal of Computer Vision . 103 (1): 22–59. doi :10.1007/s11263-012-0592-x. PMC 3744347 . PMID 23956495.
^ Howell, P.; Anderson, A.; Lucero, JC (2010). «Речемоторный тайминг и беглость». В Maassen, B.; van Lieshout, P. (ред.). Речемоторный контроль: новые разработки в фундаментальных и прикладных исследованиях . Oxford University Press. стр. 215–225. ISBN978-0199235797.
^ Koenig, Laura L.; Lucero, Jorge C.; Perlman, Elizabeth (2008). «Изменчивость речевого производства во фрикативных звуках у детей и взрослых: результаты анализа функциональных данных». Журнал акустического общества Америки . 124 (5): 3158–3170. Bibcode : 2008ASAJ..124.3158K. doi : 10.1121/1.2981639. ISSN 0001-4966. PMC 2677351. PMID 19045800 .
^ Накагава, Сейити; Наканиши, Хиробуми (1988-01-01). «Независимое от говорящего распознавание согласных английских и японских слов методом стохастической динамической деформации времени». IETE Journal of Research . 34 (1): 87–95. doi :10.1080/03772063.1988.11436710. ISSN 0377-2063.
^ Фанг, Чуньшэн. «От динамического искажения времени (DTW) к скрытой марковской модели (HMM)» (PDF) .
^ Juang, BH (сентябрь 1984 г.). «О скрытой марковской модели и динамическом искажении времени для распознавания речи #x2014; унифицированный взгляд». AT&T Bell Laboratories Technical Journal . 63 (7): 1213–1243. doi :10.1002/j.1538-7305.1984.tb00034.x. ISSN 0748-612X. S2CID 8461145.
^ Ракет ЛЛ, Соммер С, Маркуссен Б (2014). «Нелинейная модель смешанных эффектов для одновременного сглаживания и регистрации функциональных данных». Pattern Recognition Letters . 38 : 1–7. doi :10.1016/j.patrec.2013.10.018.
^ Raket LL, Grimme B, Schöner G, Igel C, Markussen B (2016). «Разделение времени, условий движения и индивидуальных различий в анализе движения человека». PLOS Computational Biology . 12 (9): e1005092. arXiv : 1601.02775 . Bibcode : 2016PLSCB..12E5092R. doi : 10.1371/journal.pcbi.1005092 . PMC 5033575. PMID 27657545 .
^ Тан, Чанг Вэй; Херрманн, Матье; Уэбб, Джеффри И. (2021). «Оптимизация сверхбыстрого окна деформации для динамической деформации времени» (PDF) . Международная конференция IEEE по интеллектуальному анализу данных (ICDM) 2021 г. стр. 589–598. doi :10.1109/ICDM51629.2021.00070. ISBN978-1-6654-2398-4. S2CID 246291550.
^ Сакое, Хироаки; Чиба, Сейби (1978). «Оптимизация алгоритма динамического программирования для распознавания устных слов». Труды IEEE по акустике, речи и обработке сигналов . 26 (1): 43–49. doi :10.1109/tassp.1978.1163055. S2CID 17900407.
^ Мастроени, Лоретта; Маццокколи, Алессандро; Куарезима, Грета; Велуччи, Пьерлуиджи (01.02.2021). «Разъединение и восстановление связи в эталонных ценах на сырую нефть: исследование закономерностей сходства». Energy Economics . 94 : 105036. doi : 10.1016/j.eneco.2020.105036. ISSN 0140-9883. S2CID 230536868.
^ Орландо, Джузеппе; Буфало, Микеле (10.12.2021). «Моделирование всплесков и регуляризация хаоса в кредитном риске с помощью детерминированной нелинейной модели». Finance Research Letters . 47 : 102599. doi : 10.1016/j.frl.2021.102599. ISSN 1544-6123.
Дальнейшее чтение
Павел Сенин, Обзор алгоритма динамической деформации времени
Винцюк, Т.К. (1968). «Речевая дискриминация с помощью динамического программирования». Кибернетика . 4 : 81–88.
Sakoe, H.; Chiba (1978). «Оптимизация алгоритма динамического программирования для распознавания устных слов». IEEE Transactions on Acoustics, Speech, and Signal Processing . 26 (1): 43–49. doi :10.1109/tassp.1978.1163055. S2CID 17900407.
Майерс, CS; Рабинер, LR (1981). «Сравнительное исследование нескольких динамических алгоритмов временной деформации для распознавания связанных слов». Bell System Technical Journal . 60 (7): 1389–1409. doi :10.1002/j.1538-7305.1981.tb00272.x. ISSN 0005-8580. S2CID 12857347.
Рабинер, Лоуренс; Хуан, Бинг-Хван (1993). "Глава 4: Методы сравнения образов". Основы распознавания речи . Энглвуд Клиффс, Нью-Джерси: PTR Prentice Hall. ISBN 978-0-13-015157-5.
Мюллер, Мейнард (2007). Динамическое искривление времени. В книге «Информационный поиск для музыки и движения», глава 4, страницы 69-84 (PDF) . Springer. doi :10.1007/978-3-540-74048-3. ISBN 978-3-540-74047-6.
Рактанманон, Танавин (сентябрь 2013 г.). «Решение проблем временных рядов больших данных: добыча триллионов подпоследовательностей временных рядов при динамическом искажении времени». Труды ACM по обнаружению знаний из данных . 7 (3): 10:1–10:31. doi :10.1145/2513092.2500489. PMC 6790126. PMID 31607834 .