Краткая история Data Science: от зарубок на столбах до Big Data
Глава из книги «Наука данных. Базовый курс»
Сегодня наука о данных используется практически во всех сферах: вы видите подобранные специально для вас рекламные объявления, рекомендованные на основе ваших предпочтений фильмы и книги, ссылки на предполагаемых друзей в соцсетях, отфильтрованные письма в папке со спамом. «Цех» публикует главу из книги «Наука данных. Базовый курс» Джона Келлехера (John D. Kelleher)и Брендана Тирни (Brendan Tierney), которая выходит в издательстве «Альпина Паблишер».
История термина «наука о данных» начинается в 1990-е гг. Однако области, которые он охватывает, имеют более долгую историю. Одна из них — сбор данных, другая — их анализ. Далее мы рассмотрим, как развивались эти отрасли знаний, а затем опишем, как и почему они сплелись воедино в науке о данных. В этом обзоре будет введено много новых понятий, поскольку он описывает и называет важные технические новшества по мере их возникновения. Для каждого нового термина мы дадим краткое объяснение его значения, однако позже мы еще вернемся ко многим из них и приведем более подробные объяснения. Мы начнем с истории сбора данных, продолжим историей анализа данных и закончим эволюцией науки о данных.
История сбора данных
Первыми из известных нам методов записи данных были зарубки на столбах, вкопанных в землю, чтобы отмечать восходы солнца и узнавать количество дней до солнцестояния. Однако с развитием письменности наша способность фиксировать опыт и события окружающего мира значительно увеличила объем собираемых нами данных. Самая ранняя форма письма была разработана в Месопотамии около 3200 г. до н. э. и использовалась для коммерческого учета. Этот тип учета фиксирует так называемые транзакционные данные. Транзакционные данные включают в себя информацию о событиях, таких как продажа товара, выставление счета, доставка, оплата кредитной картой, страховые требования и т. д. Нетранзакционные данные, например демографические, также имеют долгую историю. Первые известные переписи населения прошли в Древнем Египте около 3000 г. до н. э. Причина, по которой древние правители вкладывали так много усилий и ресурсов в масштабные проекты по сбору данных, заключалась в том, что им нужно было повышать налоги и увеличивать армии. Это согласуется с утверждением Бенджамина Франклина о том, что в жизни есть только две несомненные вещи: смерть и налоги.
В последние 150 лет изобретение компьютера, появление электронных датчиков и оцифровка данных способствовали стремительному росту объемов сбора и хранения данных. Ключевое событие в этой сфере произошло в 1970 г., когда Эдгар Кодд опубликовал статью с описанием реляционной модели данных, которая совершила переворот в том, как именно данные хранятся, индексируются и извлекаются из баз. Реляционная модель позволила извлекать данные из базы путем простых запросов, которые определяли, что нужно пользователю, не требуя от него знания о внутренней структуре данных или о том, где они физически хранятся. Документ Кодда послужил основой для современных баз данных и разработки SQL (языка структурированных запросов), международного стандарта формулировки запросов к базам данных.
Реляционные базы хранят данные в таблицах со структурой из одной строки на объект и одного столбца на атрибут. Такое отображение идеально подходит для хранения данных с четкой структурой, которую можно разложить на базовые атрибуты.
Базы данных — это простая технология, используемая для хранения и извлечения структурированных транзакционных или операционных данных (т. е. генерируемых текущими операциями компании). Но по мере того, как компании росли и автоматизировались, объем и разнообразие данных тоже резко возрастали. В 1990-х гг. стало ясно, что, хотя компании накопили огромные объемы данных, они испытывают трудности с их анализом. Частично проблема была в том, что данные обычно хранились в многочисленных разрозненных базах в рамках одной организации. Другая трудность заключалась в том, что базы были оптимизированы для хранения и извлечения данных — действий, которые характеризуются большими объемами простых операций, таких как SELECT, INSERT, UPDATE и DELETE. Для анализа данных компаниям требовалась технология, которая могла бы объединять и согласовывать данные из разнородных баз и облегчать проведение более сложных аналитических операций. Решение этой бизнес-задачи привело к появлению хранилищ данных. Организация хранилищ данных — это процесс агрегирования и анализа данных для поддержки принятия решений. Основная задача этого процесса — создание хорошо спроектированного централизованного банка данных, который тоже иногда называется хранилищем. В этом смысле хранилище данных является мощным ресурсом науки о данных, с точки зрения которой основное преимущество хранилища данных — это сокращение времени выполнения проекта. Ключевым компонентом любого процесса обработки данных являются сами данные, поэтому неудивительно, что во многих проектах большая часть времени и усилий направляется на поиск, сбор и очистку данных перед анализом. Если в компании есть хранилище данных, то усилия и время, затрачиваемые на подготовку данных, значительно сокращаются.
Тем не менее наука о данных может существовать и без централизованного банка данных. Создание такого банка не ограничивается выгрузкой данных из нескольких операционных баз в одну. Объединение данных из нескольких баз часто требует сложной ручной работы для устранения несоответствий между исходными базами данных.
Извлечение, преобразование и загрузка (ETL) — это термин, используемый для описания стандартных процессов и инструментов для сопоставления, объединения и перемещения данных между базами. Типичные операции, выполняемые в хранилище данных, отличаются от операций в стандартной реляционной базе данных. Для их описания используется термин интерактивная аналитическая обработка (OLAP).
Операции OLAP, как правило, направлены на создание сводок исторических данных и включают сбор данных из нескольких источников. Например, запрос OLAP, выраженный для удобства на естественном языке, может выглядеть так: «Отчет о продажах всех магазинов по регионам и кварталам и разница показателей по сравнению с отчетом за прошлый год». Этот пример показывает, что результат запроса OLAP часто напоминает стандартный бизнес-отчет. По сути, операции OLAP позволяют пользователям распределять, фрагментировать и переворачивать данные в хранилище, а также получать их различные отображения. Операции OLAP работают с отображением данных, называемым кубом данных, который построен поверх хранилища. Куб данных имеет фиксированный, заранее определенный набор измерений, где каждое измерение отображает одну характеристику данных.
Для приведенного выше примера запроса OLAP необходимы следующие измерения куба данных: продажи по магазинам, продажи по регионам и продажи по кварталам. Основное преимущество использования куба данных с фиксированным набором измерений состоит в том, что он ускоряет время отклика операций OLAP. Кроме того, поскольку набор измерений куба данных предварительно запрограммирован в систему OLAP, эти системы могут быть отображены дружественным пользовательским интерфейсом (GUI) для формулирования запросов OLAP. Однако отображение куба данных ограничивает типы анализа набором запросов, которые могут быть сгенерированы только с использованием определенных заранее измерений. Интерфейс запросов SQL сравнительно более гибок. Кроме того, хотя системы OLAP полезны для исследования данных и составления отчетов, они не позволяют моделировать данные или автоматически выявлять в них закономерности.
За последние пару десятилетий наши устройства стали мобильными и подключенными к сети. Многие из нас ежедневно часами сидят в интернете, используя социальные технологии, компьютерные игры, медиаплатформы и поисковые системы. Эти технологические изменения в нашем образе жизни оказали существенное влияние на количество собираемых данных. Подсчитано, что объем данных, собранных за пять тысячелетий с момента изобретения письма до 2003 г., составляет около пяти эксабайт. С 2013 г. люди генерируют и хранят такое же количество данных ежедневно. Однако резко вырос не только объем данных, но и их разнообразие. Достаточно взглянуть на список сегодняшних онлайн-источников данных: электронные письма, блоги, фотографии, твиты, лайки, публикации, веб-поиск, загрузка видео, онлайн-покупки, подкасты и т. д. Также не забудьте о метаданных этих событий, описывающих структуру и свойства необработанных данных, и вы начнете понимать, что называется большими данными.
Большие данные часто описываются по схеме «3V»: экстремальный объем (Volume), разнообразие типов (Variety) и скорость обработки данных (Velocity).
Появление больших данных привело к разработке новых технологий создания баз данных. Базы данных нового поколения часто называют базами NoSQL. Они имеют более простую модель, чем привычные реляционные базы данных, и хранят данные в виде объектов с атрибутами, используя язык представления объектов, такой как JavaScript Object Notation (JSON). Преимущество использования объектного представления данных (по сравнению с моделью на основе реляционной таблицы) состоит в том, что набор атрибутов для каждого объекта заключен в самом объекте, а это открывает дорогу к гибкому отображению данных. Например, один из объектов в базе данных может иметь сокращенный набор атрибутов по сравнению с другими объектами. В структуре реляционной базы данных, напротив, все значения в таблице должны иметь одинаковый набор атрибутов (столбцов). Эта гибкость важна в тех случаях, когда данные (из-за их разнообразия или типа) не раскладываются естественным образом в набор структурированных атрибутов. К примеру, сложно определить набор атрибутов для отображения неформального текста (скажем, твитов) или изображений. Однако, хотя эта гибкость представления позволяет нам собирать и хранить данные в различных форматах, для последующего анализа их все равно приходится структурировать.
Большие данные также привели к появлению новых платформ для их обработки. При работе с большими объемами информации на высоких скоростях может быть полезным с точки зрения вычислений и поддержания скорости распределять данные по нескольким серверам, затем обрабатывать запросы, вычисляя их результаты по частям на каждом из серверов, а затем объединять их в сгенерированный ответ. Такой подход использован в модели MapReduce на платформе Hadoop. В этой модели данные и запросы отображаются на нескольких серверах (распределяются между ними), а затем рассчитанные на них частичные результаты объединяются.
История анализа данных
Статистика — это научная отрасль, которая занимается сбором и анализом данных. Первоначально статистика собирала и анализировала информацию о государстве, такую как демографические данные и экономические показатели. Со временем количество типов данных, к которым применялся статистический анализ, увеличивалось, и сегодня статистика используется для анализа любых типов данных.
Простейшая форма статистического анализа — обобщение набора данных в терминах сводной (описательной) статистики (включая средние значения, такие как среднее арифметическое, или показатели колебаний, такие как диапазон). Однако в XVII–XVIII вв. работы Джероламо Кардано, Блеза Паскаля, Якоба Бернулли, Абрахама де Муавра, Томаса Байеса и Ричарда Прайса заложили основы теории вероятностей, и в течение XIX в. многие статистики начали использовать распределение вероятностей как часть аналитического инструментария. Эти новые достижения в математике позволили выйти за рамки описательной статистики и перейти к статистическому обучению. Пьер-Симон де Лаплас и Карл Фридрих Гаусс — два наиболее видных математика XIX в. Оба они внесли заметный вклад в статистическое обучение и современную науку о данных. Лаплас использовал интуитивные прозрения Томаса Байеса и Ричарда Прайса и превратил их в первую версию того, что мы сейчас называем теоремой Байеса. Гаусс в процессе поиска пропавшей карликовой планеты Цереры разработал метод наименьших квадратов. Этот метод позволяет нам найти наилучшую модель, которая соответствует набору данных, так что ошибка в ее подборе сводится к минимальной сумме квадратов разностей между опорными точками в наборе данных и в модели. Метод наименьших квадратов послужил основой для статистических методов обучения, таких как линейная регрессия и логистическая регрессия, а также для разработки моделей нейронных сетей искусственного интеллекта.
Между 1780 и 1820 гг., примерно в то же время, когда Лаплас и Гаусс вносили свой вклад в статистическое обучение, шотландский инженер Уильям Плейфер изобрел статистические графики и заложил основы современной визуализации данных и поискового анализа данных (EDA). Плейфер изобрел линейный график и комбинированную диаграмму для временных рядов данных, гистограмму, чтобы проиллюстрировать сравнение значений, принадлежащих разным категориям, и круговую диаграмму для наглядного изображения долей.
Преимущество визуализации числовых данных заключается в том, что она позволяет использовать наши мощные зрительные возможности для обобщения, сравнения и интерпретации данных. Следует признать, что визуализировать большие (с множеством опорных точек) или сложные (с множеством атрибутов) наборы данных довольно трудно, но визуализация по-прежнему остается важной составляющей науки о данных. В частности, она помогает ученым рассматривать и понимать данные, с которыми они работают. Визуализация также может быть полезна для презентации результатов проекта. Со времен Плейфера разнообразие видов графического отображения данных неуклонно росло, и сегодня продолжаются разработки новых подходов в области визуализации больших многомерных наборов данных. В частности, не так давно был разработан алгоритм стохастического вложения соседей с t-распределением (t-SNE), который применяется при сокращении многомерных данных до двух или трех измерений, тем самым облегчая их визуализацию.
Развитие теории вероятностей и статистики продолжилось в XX в. Карл Пирсон разработал современные методы проверки гипотез, а Рональд Фишер — статистические методы для многомерного анализа и предложил идею оценки максимального правдоподобия статистических заключений как метод, позво- ляющий делать выводы на основе относительной вероятности событий.
Работа Алана Тьюринга во время Второй мировой войны привела к изобретению компьютера, который оказал исключительно сильное влияние на статистику, позволив совершать существенно более сложные вычисления. В течение 1940-х гг. и в последующие десятилетия были разработаны важные вычислительные модели, которые до сих пор широко применяются в науке о данных.
В 1943 г. Уоррен Мак-Каллок и Уолтер Питтс предложили первую математическую модель нейронной сети. В 1948-м Клод Шеннон опубликовал статью под названием «Математическая теория связи» и тем самым основал теорию информации. В 1951 г. Эвелин Фикс и Джозеф Ходжес предложили модель дискриминантного анализа (который сейчас более известен как теория распознавания образов), ставшую основой современных алгоритмов ближайших соседей. Послевоенное развитие сферы достигло кульминации в 1956 г. с появлением отрасли искусственного интеллекта на семинаре в Дартмутском колледже. Даже на этой ранней стадии ее развития термин «машинное обучение» уже начал использоваться для описания программ, которые давали компьютеру возможность учиться на основе данных. В середине 1960-х гг. были сделаны три важных вклада в машинное обучение. В 1965 г. Нильс Нильсон опубликовал книгу «Обучающиеся машины», в которой показано, как можно использовать нейронные сети для обучения линейных моделей классификации.
Через год Хант, Марин и Стоун разработали систему концептуального обучения, породившую целое семейство алгоритмов, которые, в свою очередь, привели к появлению деревьев решений на основе данных нисходящего порядка. Примерно в то же время независимые исследователи разрабатывали и публиковали ранние версии метода k-средних, который теперь рутинно используется для сегментации клиентских данных.
Область машинного обучения лежит в основе современной науки о данных, поскольку она предоставляет алгоритмы, способные автоматически анализировать большие наборы данных для выявления потенциально интересных и полезных закономерностей. Машинное обучение и сегодня продолжает развиваться и модернизироваться. В число наиболее важных разработок входят ансамблевые методы, прогнозирование в которых осуществляется на основе набора моделей, где каждая модель участвует в каждом из запросов, а также дальнейшее развитие нейронных сетей глубокого обучения, имеющих более трех слоев нейронов. Такие глубокие слои в сети способны обнаруживать и анализировать отображения сложных атрибутов (состоящие из нескольких взаимодействующих входных значений, обработанных более ранними слоями), которые позволяют сети изучать закономерности и обобщать их для всех входных данных. Благодаря своей способности исследовать сложные атрибуты сети глубокого обучения лучше других подходят для многомерных данных — именно они произвели переворот в таких областях, как машинное зрение и обработка естественного языка.
Как уже упоминалось в историческом обзоре баз данных, начало 1970-х гг. ознаменовало приход современной технологии с реляционной моделью данных Эдгара Кодда и последующий взрывной рост генерации данных и их хранения, который в 1990-х гг. привел к развитию хранилищ, а позднее — к возникновению феномена больших данных. Однако еще задолго до появления больших данных, фактически к концу 1980-х — началу 1990-х гг., стала очевидной необходимость в исследованиях, направленных на анализ больших наборов данных. Примерно в то же время появился термин «глубинный анализ данных». Как мы уже отметили, в ответ на это началась разработка хранилищ данных и технологии OLAP. Кроме того, параллельно велись исследования в других областях.
В 1989 г. Григорий Пятецкий-Шапиро провел первый семинар по обнаружению знаний в базах данных (KDD). Следующая цитата из анонса этого семинара дает ясное представление о том, какое внимание на нем уделялось междисциплинарному подходу к проблеме анализа больших баз данных:
в базах данных могут оказаться полезными многие существующие инструменты и методы из различных областей, таких как экспертные системы, машинное обучение, интеллектуальные базы данных, получение знаний и статистика
Фактически термины «KDD» и «глубинный анализ данных» описывают одну и ту же концепцию; различие заключается только в том, что термин «глубинный анализ данных» более распространен в бизнес-сообществах, а «KDD» — в академических кругах. Сегодня эти понятия часто взаимозаменяются, и многие ведущие академические центры используют как одно, так и другое. И это закономерно, ведь главная научная конференция в этой сфере так и называется — Международная конференция по обнаружению знаний и глубинному анализу данных.