Глубокое погружение в новейшую литературу по прогнозированию временных рядов и то, как вы можете использовать их в своих бизнес-сценариях.

В этом году на Конференции по обработке нейронной информации авторы опубликовали ряд новых статей, посвященных прогнозированию и классификации временных рядов. Здесь я кратко рассмотрю их основные вклады, а также расскажу об их реализации и наших сроках для переноса их в нашу структуру глубокого обучения для прогнозирования временных рядов flow-прогноз.

Фон

Как создатель / сопровождающий фреймворка с открытым исходным кодом и я, и наши основные участники должны постоянно взвешивать время, необходимое для добавления новых моделей и методов, с преимуществами для наших конечных пользователей. При прогнозировании потоков, как структуре, которая служит как предприятиям, так и исследователям, у нас, казалось бы, противоречивая миссия: мы хотим быстро добавить новейшее современное глубокое обучение для исследовательских работ по прогнозированию / классификации временных рядов, одновременно обеспечивая стабильность и легкость. использования, интерпретируемости, устойчивости и надежности для всех наших конечных пользователей (которые часто не знакомы с последними исследованиями или тем, как эффективно использовать их для решения своих бизнес-задач). Другими словами, мы хотим постоянно использовать самые сложные методы, сохраняя при этом простоту использования нашей структуры.

Таким образом, сложно решить, какие документы передать для прогноза потока, одновременно соблюдая баланс других приоритетов. Здесь я разбиваю то, над чем мы работаем, с точки зрения возможных документов для интеграции из Neurips. Конечно, если у кого-то из вас, читателей, есть время и он хочет внести свой вклад в перенос одной из этих статей, мы будем очень признательны. Кроме того, обратите внимание, что эти показания не являются общим показателем того, насколько хороша бумага. Скорее, они представляют собой оценку того, насколько хорошо они впишутся в нашу структуру, исходя из их производительности (включая наборы данных, на которых они были протестированы), сложности переноса, соответствия вариантам использования наших пользователей и скорости.

Сравнительный анализ интерпретируемости глубокого обучения в предсказаниях временных рядов

Ссылка на видео (кстати, я думаю, что ссылки на видео можно увидеть только в том случае, если вы зарегистрировались на конференцию, к сожалению)

Резюме: это интересный документ, в котором обсуждаются общие недостатки глубокого обучения для методов интерпретируемости временных рядов. Авторы описывают, как большинство методов выделения страдают от двух основных проблем: методы выделения часто не работают по нескольким временным шагам; Архитектура модели играет большую роль в качестве методов. Для решения этих проблем авторы разработали фреймворк, называемый изменением масштаба временной значимости (TSR). TSR работает следующим образом:

(a) сначала мы вычисляем оценку актуальности по времени для каждого раза, вычисляя общее изменение значений значимости, если этот временной шаг замаскирован; затем (б) на каждом временном шаге, оценка релевантности которого выше определенного порога, мы вычисляем оценку релевантности функции для каждой функции, вычисляя общее изменение значений значимости, если эта функция замаскирована. Окончательная (время, характеристика) оценка важности - это произведение связанных оценок времени и релевантности функции.

Код / Качество: Авторы предоставляют реализацию своего кода вместе с бумагой. Похоже, что код по большей части построен на Captum, фреймворке на основе PyTorch для интерпретации моделей DL, и это хорошо. Но это определенно потребует значительного количества рефакторинга / стилистических изменений. Я думаю, что это можно сделать примерно за две недели целенаправленной работы и тестирования. Наша структура уже включает Shap, но включение Captum вместе с их методами также может стать отличным расширением.

Актуальность для наших пользователей: Интерпретируемость или ее отсутствие остается, вероятно, одним из наиболее частых критических замечаний, которые я слышу в отношении моделей DL для временных рядов по сравнению с более классическими моделями. Я не могу сказать, сколько раз я слышал (несведущую строку ИМО) «мы бы использовали глубокое обучение, но мы должны иметь возможность объяснять свои решения заинтересованным сторонам. У нас не может быть черного ящика… »Поэтому любая модель, повышающая интерпретируемость, хороша. Точно так же, что касается исследований, я думаю, что поиск лучших визуализаций моделей - это многообещающая область.

Производительность на наборах данных. Авторы используют синтетические наборы данных, в которых они уже знают важные особенности, чтобы оценить качество прогнозов. Кроме того, они пробуют свой метод TSR на нескольких наборах данных реального мира, таких как данные классификации FMRI (последовательность изображений FMRI). Они считают, что TSR работает лучше, чем обычные методы, обеспечивая интерпретируемые / точные карты значимости.

Окончательный вердикт. Включение методов повышения интерпретируемости - одна из основных задач нашего проекта. Упрощение объяснения решений модели третьим сторонам и даже предоставление возможности самим инженерам машинного обучения лучше отлаживать модели - насущная проблема. Я считаю, что эта статья - шаг в правильном направлении. Я действительно хотел бы, чтобы это не ограничивалось только классификацией, поскольку мы в первую очередь хранилище прогнозов. Поэтому я не уверен, насколько хорошо их методы применимы для решения проблем прогнозирования. Тем не менее, я думаю, что перенос этого поможет нашему фреймворку. В конце концов, я бы сказал, что это высокий приоритет.

Состязательный разреженный преобразователь для прогнозирования временных рядов

Ссылка на видео (нет)

Резюме: в документе рассматривается проблема накопления ошибок при выполнении многоэтапного прогнозирования (то есть, по сути, это когда мы добавляем собственные выходные данные модели к реальным значениям и используем их для прогнозирования последующих временных шагов). В документе также рассматривается создание более разнообразных прогнозов с несколькими диапазонами значений. Для решения этих проблем автор использует сети GAN. Это одна из первых статей, которые я видел, в которой описывается использование GAN для прогнозирования. Сети GAN используются как метод регуляризации многоэтапных предсказаний временных рядов. Они работают вместе с механизмом рассеянного внимания, который использует функцию активации ent-max вместо Softmax. Это позволяет сети лучше узнавать долгосрочные зависимости по временным шагам и, в частности, какие шаги вообще не важны.

Код / Стиль: здесь находится реализация бумаги. Я не уверен, является ли это официальной реализацией статьи или нет. На первый взгляд качество кода выглядит неплохим. Тем не менее, я все еще думаю, что на данный момент будет много трудностей с полным переносом модели на нашу структуру. Во-первых, нам пришлось бы изменить основной обучающий модуль по прогнозированию потоков, чтобы иметь возможность работать с архитектурами, подобными GAN. В настоящее время наш обучающий модуль предполагает, что у нас есть только одна модель и функция потерь. Для этого потребуется либо добавить блоки if / else, либо создать функцию, которая сопоставляет тип модели с циклом обучения (если мы предполагаем, что многие модели состоят из нескольких потерь).

Актуальность для наших пользователей: большинство наших пользователей заинтересованы в повышении эффективности своих моделей; однако в то же время, даже в области глубокого обучения, предпочтительны более простые модели с меньшим количеством гиперпараметров. Учитывая сложность, связанную с конвергенцией GAN, и тот факт, что многие специалисты по корпоративным данным, вероятно, имеют очень ограниченные знания о GAN, я не вижу, чтобы многие использовали эту модель. Даже в сообществе исследователей временных рядов машинного обучения я не вижу, чтобы такая большая работа строилась непосредственно на архитектуре GAN, за исключением, может быть, использования механизма рассеянного внимания (хотя раньше я ошибался).

Производительность для наборов данных. Модель работает лучше, чем сверточный преобразователь (который, кстати, мы реализовали в прогнозе потока), а также несколько других моделей для наборов данных о трафике и электроэнергии. Я хочу сказать, что авторы не сравнивают напрямую производительность с Temporal Fusion Transformers. Когда вы сравниваете их модель с TFT, их производительность во многих случаях незначительна. Например, когда вы сравниваете TFT с AST по трафику, мы видим, что TFT достиг 0,095 по сравнению с 0,093 +/- 0,01. Кроме того, мне в целом не нравится тенденция публикаций по прогнозированию временных рядов, в которых используются только эти простые одномерные наборы данных временных рядов. Как минимум, назовите вас бумажным AST для одномерного прогнозирования временных рядов, потому что нет результатов, демонстрирующих более широкую применимость.

Окончательный вердикт: Добавить код для обучения, я думаю, будет очень сложно, так как мне придется изменить несколько модулей в Flow-Forecast. Кроме того, общеизвестно, что GAN сложно обучить, и прирост производительности кажется незначительным. Тем не менее, мне действительно нравится идея использовать рассеянное внимание и найти способы исправить сложную ошибку многоэтапных прогнозов. Я мог бы также реализовать рассеянное внимание и позволить людям использовать его как параметр, который можно менять. В целом, я бы сказал, что добавление этой полной модели является относительно низким приоритетом для нашей команды. Однако это не значит, что я не хотел бы, чтобы он был добавлен в репозиторий. Если кто-то заинтересуется портированием, дайте мне знать!

Вероятностное прогнозирование временных рядов со структурированной формой и временным разнообразием

Ссылка на видео

Резюме. В этом документе рассматривается дилемма, при которой общие функции потерь временных рядов (MSE, RMSE и т. д.) приводят к потенциально точным прогнозам, но не позволяют измерить неопределенность и приводят к распаду модели при сдвиге распределения. С другой стороны, функции потерь, такие как гауссовы или квантильные потери, часто не обеспечивают достаточно узких прогнозов. Чтобы исправить эту проблему, автор использует STRIPE. STRIPE в основном может составлять разнообразный набор потенциальных прогнозов, каждый из которых имеет дополнительное преимущество, заключающееся в большей резкости (т. Е. У вас просто нет большого доверительного интервала). Эта статья написана тем же автором, что и функция DilateLoss, которая уже есть в нашей библиотеке прогнозов потоков.

Производительность на наборах данных. Модель сравнивает себя с вариационным автокодировщиком и DeepAR с точки зрения производительности. В отношении них оболочка модели дает более разнообразные прогнозы. Оболочка модели дополнительно работает лучше с точки зрения DilateLoss и MSE, чем другие методы упаковки модели для синтетических наборов данных и наборов данных о трафике / электричестве. Однако неясно, повысят ли эти методы производительность в сочетании с современными моделями на этих наборах данных.

Актуальность для наших пользователей. У нас уже есть несколько вероятностных методов. Основное преимущество этого, казалось бы, заключается в лучшем диапазоне кандидатов для прогнозов. В зависимости от того, как модель работает с реальными многомерными наборами данных, я мог видеть, что она либо очень полезна, либо вообще бесполезна.

Текущая реализация / качество кода: На веб-сайте есть код, который выглядит довольно похожим на стиль кода DialateLoss. Если я правильно помню, на перенос функции DilateLoss у меня ушло около 3–4 дней. Однако это немного сложнее, поскольку это не функция потерь, а, по сути, оболочка модели. Поэтому на самом деле я не думаю, что смогу перенести его менее чем за одну-две недели.

Окончательный вердикт: я думаю, что это интересный подход, и мне нравится тот факт, что он теоретически не зависит от модели (однако мне нужно изучить, легко ли обернуть с его помощью наши существующие модели). На первый взгляд кажется, что он основан на подходе, основанном на кодировщике-декодере. Поэтому я не уверен, как это будет взаимодействовать с нашими существующими моделями. Однако реализация выглядит довольно простой для работы. Я бы оценил это как средний приоритет. Однако это приятно, но я не знаю, насколько это действительно поможет нашим пользователям.

Резюме. В этом документе описывается изучение причинно-следственных связей в многомерных временных рядах в присутствии ненаблюдаемых переменных (скрытых соучредителей). Предыдущие методы находили неправильную ссылку.

Глубокая реконструкция странных аттракторов по временным рядам

Ссылка на видео

Резюме: это область, с которой я, по общему признанию, не так хорошо знаком, однако я сделаю все возможное, чтобы резюмировать то, что, по моему мнению, описывает автор. В основном автор описывает, как некоторые сложные системы работают во многих измерениях, но у нас есть только их одномерное представление. Например, ЭКГ - это низкоразмерное измерение сердечного ритма. Для решения этой проблемы автор предлагает использовать автокодировщики для создания эффективного многомерного представления системы. Мы надеемся, что это многомерное представление должно примерно имитировать реальную систему.

Производительность на наборах данных: автор исследует свою модель, визуализируя вложения известных аттракторов, а также сравнивая вложения. Они также обнаружили, что их метод регуляризации лучше работает при прогнозировании зашумленных данных временных рядов, чем нерегуляризованные варианты.

Релевантность для наших пользователей. Я не вижу столь значительных мгновенных результатов для наших бизнес-пользователей. По крайней мере, изначально я не думаю, что это улучшило бы производительность модели без значительных настроек. Тем не менее, это может быть полезно для наших пользователей-исследователей, которые могут использовать его для создания более мощных моделей.

Текущая реализация / Качество кода:

Окончательный вердикт. Это интересная работа в более широкой категории анализа временных рядов. Тем не менее, я действительно не знаю, насколько это может напрямую улучшить наши методы прогнозирования. Это может быть потенциально полезно для создания вложений временных рядов, которые затем можно использовать для поиска аналогичных временных рядов для обучения передачи. Он также потенциально может служить еще одним полезным инструментом в нашем наборе инструментов визуализации. Тип регуляризации, который он преследует, также может быть полезен для сочетания с нашими моделями.

Спектральная нейронная сеть с временным графом для многомерного прогнозирования временных рядов

Ссылка на видео

Резюме. В этом документе представлена ​​довольно новая тенденция использования графических нейронных сетей для моделирования взаимодействий между многомерными временными рядами. Нейронная сеть Spectral Temporal Graph (STGNN) утверждает, что является первой моделью, которая точно изучает внутрисерийные и межсерийные корреляции в спектральной области. Основным компонентом модели является использование графического преобразования Фурье для фиксации межсерийных корреляций. Модель также кажется хорошей для изучения пространственных зависимостей и корреляций без заранее определенной топологии. Например, в отношении COVID модель хорошо учитывает межстрановые корреляции. Это также кажется верным для наборов данных прогнозирования трафика и электроэнергии.

Текущая реализация / качество кода. Насколько я могу судить, в настоящее время реализация этого документа не реализована. Ни поиск в Google, ни поиск авторов на GitHub ничего не нашли.

Актуальность для наших пользователей. Модели, которые хорошо работают со сложными наборами данных реального мира, всегда ценны для наших конечных пользователей. Тот факт, что здесь он хорошо справляется с изучением сложных многомерных пространственно-временных зависимостей, заставляет меня думать, что это было бы отличным дополнением к нашей библиотеке. Однако у меня есть один вопрос: как он обрабатывает многомерные данные из разных мест. Например, я считаю, что используемые ими наборы данных по электричеству, COVID и другим в основном одномерны, но они используют несколько мест. В то время как многие данные, которые мы прогнозируем, и прогнозы компаний будут больше похожи, скажем, на (цель, temoporal_feat1, temporal_feat2, location).

Эффективность для наборов данных. Модель хорошо работает с широким спектром многомерных наборов данных временных рядов. Как ни странно, они не сравнивают результаты ни с бумагой Temporal Fusion Transformer, ни с бумагой Convolution Transformer. Вместо этого они в основном сравнивают результаты с другими GNN. Вдобавок, по непонятным мне причинам, огромное количество документов, похоже, сообщает результаты в терминах квантильных потерь, тогда как в этой статье они представлены в терминах MAPE и MSE. Это затрудняет сравнение их результатов даже на одних и тех же наборах данных. Однако, основываясь на результатах исследований абляции, я считаю, что модель работала хорошо, и предполагаю, что она была бы лучше, чем некоторые другие статьи, если бы у нас были показатели для их сравнения.

Окончательный вердикт: это определенно статья, которую я хотел бы добавить в какой-то момент. Однако отсутствие кода и отсутствие у нашей команды опыта работы с моделями свертки графов усложняют задачу. Тем не менее, нам, возможно, потребуется сравнить его с некоторыми из наших собственных предстоящих исследований, поэтому мы можем попытаться реализовать его в любом случае в ближайшее время. А пока я бы посчитал это предметом среднего приоритета. Я действительно надеюсь иметь по крайней мере несколько моделей на основе GNN в прогнозе потока к февралю или марту (надеюсь, это будет одна).

STLnet: многомерные рекуррентные нейронные сети с принудительной временной логикой

Ссылка на видео

Резюме: подходы к прогнозированию временных рядов, основанные на машинном обучении, иногда не работают и дают нелепые значения. Например, когда я делал прогноз речного стока и в конце у меня не было активации RELU, я часто вижу, что модель предсказывает отрицательные значения (даже если отрицательный речной сток невозможен). Аналогичным образом модель для прогнозирования мощности электростанции может прогнозировать, что электростанция производит больше энергии, чем возможно, или модель прогнозирования дорожного движения, прогнозирующая больший объем трафика, чем может поместиться на дорогах. Чтобы решить эту проблему, авторы создают нейронную сеть с логической привязкой.

Качество кода: мне пока не удалось найти код для этой модели. Я думаю, что реализовать это с нуля будет непросто. Общий алгоритм состоит из нескольких шагов, и я не думаю, что он будет хорошо работать с циклом обучения. Поэтому, вероятно, потребуется отдельный цикл обучения и класс, которые мы будем реализовывать.

Производительность для наборов данных. Авторы считают, что их модель лучше работает с набором данных о качестве воздуха, как с точки зрения RMSE, так и с точки зрения количества нарушений временной логики.

Релевантность для наших пользователей: Это определенно актуально для наших пользователей, поскольку во многих случаях реальные проблемы прогнозирования ограничиваются определенными значениями. Поэтому обучение модели следованию этим простым логическим ограничениям было бы очень полезным. Это, вероятно, также повысит надежность модели, поскольку тогда модели будут выдавать менее проблемные значения. Мне особенно нравится, как кажется, что алгоритм работает независимо от модели.

Окончательный вердикт: мне нравятся ограничения, которые накладывает этот документ, и он демонстрирует хорошие результаты в реальном мире. Я определенно думаю, что это может пригодиться в нашем репозитории. Однако, если я не найду реализацию, я не думаю, что мы скоро добавим ее просто из-за сложности алгоритма.

Дифференциальные уравнения с нейронным управлением для нерегулярных временных рядов

Ссылка на видео

Резюме: авторы вводят модель дифференциального уравнения, управляемую нейронами. Это помогает решить проблему с дифференциальными уравнениями, когда уравнение определяется начальным условием, однако впоследствии оно не учитывается на новых данных. Авторы используют эту новую управляемую модель difffeq для эффективного прогнозирования временных рядов со многими пропущенными значениями. Эта структура позволяет модели учиться намного лучше, чем RNN, когда многие значения отсутствуют.

Качество кода: авторы предоставляют код для Neural ODE в библиотеке NeuralODE, которая доступна здесь. Поскольку это сама библиотека, качество кода довольно высокое. При прогнозировании потока наша цель на некоторое время состояла в том, чтобы создать мост, который позволяет пользователям использовать модели из библиотеки NeuralODE в нашей структуре. Однако это оказалось сложным как с точки зрения структуры кода, так и с точки зрения теоретического понимания. Я думаю, что, вероятно, самый простой способ сделать это - иметь общие классы-оболочки, которые можно было бы использовать либо для ODE, либо для STRIPE. Однако я предполагаю, что это займет много времени, чтобы внедрить и протестировать, вероятно, по крайней мере, 3-4 недели.

Производительность на наборах данных: Модель обеспечивает превосходную производительность по сравнению с методами на основе RNN на наборах данных CharacterTractors, PhysioNet sepsis prediction и Speech Commands. Что я нашел особенно впечатляющим, так это то, что в задаче прогнозирования сепсиса PhysioNet соблюдается только около 10,3% значений, но при этом достигается AUC 0,88. Точно так же модель превосходит GRU-ODE-Bayes и несколько других моделей по этим разнообразным наборам данных.

Актуальность для наших пользователей. Во многих реальных данных отсутствуют значения. Например, в наших прогнозах стока иногда могут отсутствовать данные за несколько недель из-за неисправности станции. Данные EHR - еще одна важная область, в которой постоянно отсутствуют данные. Поэтому поиск моделей, которые хорошо работают с этими данными, имеет решающее значение. Кроме того, я думаю, что модели на основе Neural ODE могут работать лучше в случае сдвига домена, поскольку уже существует общее уравнение.

Окончательный вердикт. Это надежный документ, имеющий отношение к нашему репо. Я бы оценил это как элемент со средним приоритетом и надеюсь, что он будет перенесен в прогноз потока к летним месяцам.

Другое исследование, возможно, релевантное исследование

Конечно, на такой большой конференции, как Neurips, я не могу дать подробное описание каждой статьи, связанной с временными рядами. Ниже приведены некоторые другие статьи по теме, на которые у меня не было времени более чем бегло взглянуть.

Нормализация фильтров Калмана для многомерного анализа временных рядов

В этой статье описывается использование фильтра Калмана вместе с глубоким обучением. У меня еще не было времени прочитать статью, но она выглядит как еще один хороший пример модели синтеза.

Глубокие фильтры частиц Рао-Блэквеллиза для прогнозирования временных рядов

Я бы назвал эту статью гибридной классической моделью временных рядов / глубокого обучения. К сожалению, я ничего не знаю ни о классической модели, ни о том, как она работает. Так что я не буду сейчас комментировать это дальше. Не стесняйтесь взглянуть, если вам интересно.

Заключение

В заключение, есть много интересных статей, которые посвящены анализу временных рядов, прогнозированию и классификации из Neurips 2020. Мы надеемся включить немало из этих статей в течение следующих нескольких месяцев и, надеюсь, большинство из них в течение в следующем году. Кроме того, мы будем внимательно следить за ICLR 2021, чтобы добавить других потенциальных кандидатов. Обязательно следите за нашим репозиторием на GitHub, следите за обновлениями в Твиттере или, еще лучше, помогите внести свой вклад.