Мы формулируем визуализацию данных как задачу преобразования последовательности в последовательность.

TL; DR; Мы обучаем модель, которая может принимать набор данных в качестве входных данных и генерировать набор правдоподобных визуализаций в качестве выходных.

У нас есть ранний бумажный черновик, описывающий работу над arxiv, коротким видео, исходным кодом и демо. Отзывы, обсуждения (@vykthur, @serravis) и комментарии приветствуются!

Хотите попробовать обучить аналогичную модель? Мы опубликовали исходный код, использованный в эксперименте.



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

И поэтому нам было интересно узнать о возможности применения достижений, продемонстрированных в этих моделях глубокого обучения, для задачи создания визуализаций. Это ценно, поскольку создание визуализации может занять много времени (выбор того, какой инструмент использовать, какие поля визуализировать, какие преобразования применять и какие взаимодействия поддерживать). Если мы сможем получить модель для выполнения некоторых этих вещей, мы почувствовали, что это может улучшить процесс создания визуализации. Первая проблема была связана с поиском способов сформулировать проблему таким образом, чтобы она стала поддающейся глубокому обучению. Как мы можем научить модель понимать, а затем генерировать визуализацию? Как мы подбираем обучающий набор данных? Собираем ли мы красивые изображения визуализаций + пар данных и тренируемся на них?

К счастью, подобные проблемы, связанные с улучшением авторинга визуализаций, уже рассматривались исследователями в прошлом. Одно из интересных направлений работы связано с усилиями по созданию декларативных языков, кратко описывающих визуализацию и обеспечивающих правильный компромисс между выразительностью и скоростью при создании визуализаций. С помощью этих языков или грамматик вы пишете некоторую компактную текстовую спецификацию, а какой-то движок выполняет тяжелую работу по превращению этого текста в реальные визуализации. Хорошим примером такого декларативного языка является Vega-Lite, созданный замечательными исследователями из Лаборатории интерактивных данных Вашингтонского университета. Для наших экспериментов мы представляем визуализации с использованием спецификаций грамматики Vega-Lite (JSON).

Что мы сделали

Если затем рассматривать визуализации как текстовые спецификации, проблема упрощается до создания группы этих спецификаций, с учетом некоторых входных данных. Итак, нашей следующей задачей было исследовать модели, которые изучают пространство формата спецификации визуализации и, возможно, могут галлюцинировать какие-то новые визуализации? Мы начали наши первые эксперименты, следуя заметкам из блога Карпати - мы сгенерировали спецификации визуализации (данные + спецификация), объединили их и попытались обучить RNN, которая генерирует что-то правдоподобное.

Из этих первых экспериментов мы узнали довольно много о том, насколько хорошо символьные RNN (LSTM) работают в отношении изучения структуры данных, содержащихся во вложенных структурах, таких как спецификация Vega-Lite. Мы обнаружили, что, хотя РНС на основе символов хорошо справляются с этой задачей (по сравнению с РНС на основе слов), их ограничения при моделировании длинных последовательностей и требования к памяти для долговременных последовательностей затрудняют их обучение (неразборчивые токены после нескольких символов, ограниченный прогресс в обучении даже после тысяч шагов, миллионов параметров без предварительной обработки). Кроме того, символьные RNN не обеспечивали конкретного отображения между нашими входными и выходными парами для обучения. Эти проблемы побудили нас подумать о других способах формулировки проблемы - подходах, которые изучают структуру нашего выходного пространства и генерируют новые данные на основе некоторых входных данных. По сути, перевод из спецификации исходных данных в целевую спецификацию визуализации.

Последовательность в модели последовательности

Модели от последовательности к последовательности [1,2,3] способны делать именно это - они принимают некоторый ввод (например, текст на одном языке) и генерируют вывод (например, тот же текст на другом языке). Они с большим успехом применялись для решения таких задач, как языковой перевод, обобщение текста, добавление подписей к изображениям. Также были исследованы вариации моделей от последовательности к последовательностям, которые используют архитектуры кодировщика-декодера, для перевода между формальными языками программирования, программами, специфичными для предметной области и общим синтезом программ.

Данные и обучение

Сначала мы собрали обучающий набор данных (исходная и целевая пары) на основе примеров действительных визуализаций Vega-Lite. Всего было использовано 215 тысяч пар выборок на основе 11 различных наборов данных и 4300 примеров Vega-Lite. См. Документ для получения более подробной информации о том, как данные отбираются и предварительно обрабатываются.

Мы обучаем последовательность в модели последовательности, используя архитектуру и образец кода, предоставленные Britz et al 2017. Модель представляет собой архитектуру кодировщика-декодера с механизмом внимания (более подробную информацию об архитектуре см. В статье Бритца). Мы также выполняем простую нормализацию набора данных, чтобы упростить обучение. Мы заменяем строковые и числовые имена полей на короткие обозначения - str и num в исходной последовательности (наборе данных). Затем аналогичное обратное преобразование (постобработка) реплицируется в целевой последовательности для поддержания согласованности в именах полей. Эти преобразования помогают структурировать процесс обучения за счет уменьшения размера словарного запаса и не позволяют LSTM изучать имена полей (имена полей в обучающем наборе бесполезны для нашей задачи генерации). В свою очередь, мы можем уменьшить общую длину исходной и целевой последовательности, сократить время обучения и уменьшить количество скрытых слоев, которые необходимы модели для схождения.

Декодирование поиска луча

Чтобы исследовать множество сгенерированных визуализаций, мы используем алгоритм декодирования поиска луча. В отличие от вывода наиболее вероятного (наиболее вероятного) перевода входной последовательности, поиск луча расширяет все возможные следующие шаги во время генерации и сохраняет k наиболее вероятным, где k - указанный пользователем параметр, известный как ширина луча. В отличие от традиционных языковых систем перевода, где поиск лучей применяется в основном для улучшения качества перевода за счет максимизации условных вероятностей сгенерированных последовательностей, мы также исследуем поиск лучей как способ создания разнообразного набора визуализаций-кандидатов путем вывода всех параллельных луч результаты. С помощью поиска лучей мы наблюдаем, как модель генерирует различные графики, исследуя комбинации типов диаграмм и использование нескольких переменных.

Первые результаты

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

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

Как и во многих моделях глубокого обучения, есть многообещающие результаты, а также странности или случаи неудач (например, 5 собак с длинными ногами, 3 кошки с глазами и т. Д.). В нашем случае модель иногда генерирует спецификации, используя несуществующие (фантомные переменные), или применяет преобразования, которые недопустимы во время выполнения, что приводит к пустым графикам. См. Рисунок выше (графики отмечены оранжевым цветом). Наша интуиция подсказывает, что эти проблемы можно решить, расширив наш относительно небольшой набор данных.

Зачем автоматизировать визуализации с помощью глубокого обучения?

Есть несколько причин, по которым мы считаем автоматическое создание визуализаций интересным:

Упрощение создания визуализаций.

Предоставление пользователям с небольшим опытом программирования или без него возможности быстрого создания выразительных визуализаций данных расширяет их возможности и привносит визуализацию данных в их личный рабочий процесс. Для экспертов такие модели, как Data2Vis, также обладают потенциалом для затравки процесса визуализации данных, сокращая время, затрачиваемое на определение синтаксиса языка визуализации и поддерживая итерацию по возможностям визуализации. Эта мотивация перекликается с другими исследовательскими усилиями, которые исследуют подходы к глубокому обучению для генерации и перевода исходного кода (UCBerkeley, Microsoft Research и т. Д.).

Обещание масштаба

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

Выходя за рамки «эвристики»

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

Что дальше

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

Расширение Data2Vis для создания нескольких правдоподобных визуализаций

Data2Vis в настоящее время реализован как модель преобразования последовательности в последовательность и выводит единую спецификацию визуализации для данного набора данных. А теперь разве не здорово обучить модель, которая генерирует несколько действительных визуализаций для данного набора данных? Мы думаем, что да.

Ориентация на дополнительные грамматики

Возможно, обучающие модели, которые могут отображать входные данные на несколько разных языков спецификации визуализации (например, Vega-Lite, ggplot2, D3 и т. Д.). Или перевод визуализаций с одного языка на другой. Это может помочь сделать визуализации более доступными за счет возможности повторного использования спецификации визуализации на разных языках, платформах и системах.

Спецификация естественного языка и визуализации

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

Заключение

В этой статье обсуждаются некоторые идеи и первые результаты, касающиеся автоматического создания визуализаций с использованием последовательностей моделей. Надеюсь, эта работа послужит основой для будущей работы по автоматизированному созданию визуализаций с использованием подходов глубокого обучения. Не стесняйтесь читать статью, чтобы узнать больше, а также поделиться своими мыслями (@vykthur, @serravis)! Мы надеемся в ближайшее время поделиться кодом и обученными моделями.

Подтверждение

Эта работа стала возможной благодаря вкладу многих людей. Спасибо авторам библиотек Vega-Lite, Voyager и за предоставленный пример данных [4], использованных для наших экспериментов. Большое спасибо авторам реализации модели TensorFlow Seq2seq и ​​команде библиотеки TensorFlow - их работа позволила нам узнать о моделях последовательностей и быстро Прототипом наших экспериментов будет мало предыдущего опыта.

использованная литература

[1] Дмитрий Богданау, Кёнхён Чо и Йошуа Бенжио. 2014. Нейронный машинный перевод путем совместного обучения выравниванию и переводу. (сентябрь 2014 г.).

[2] Илья Суцкевер, Ориол Виньялс и Куок В. Ле. 2014. Последовательность обучения с помощью нейронных сетей.

[3] Денни Бритц, Анна Голди, Тханг Луонг и Куок Ле. 2017. Массовое исследование архитектур нейронного машинного перевода.

[4] Хорхе Поко и Джеффри Хир. 2017. Обратное проектирование визуализаций: восстановление визуальных кодировок из изображений диаграмм. Форум компьютерной графики (Proc. EuroVis) (2017).