Объемы данных, генерируемых бизнесом, государственными и научными учреждениями, сегодня растут невиданными темпами, происходит буквально информационный потоп. Например, только транзакционные базы Walmart, согласно оценкам, содержат больше 2,5 Пбайт сведений о покупателях, телеметрии корпоративных сетей и оборудования, а также о тенденциях рынка. Американские беспилотные самолеты за 2009 год сделали в Афганистане и Ираке видеозаписи общей продолжительностью примерно 24 года. В 2010 году Большой адронный коллайдер выдал 13 Пбайт данных. Кроме всего этого, беспрецедентными темпами растут объемы данных, поступающих от датчиков, из социальных сетей, от мобильных устройств, навигаторов и т. п. При этом данные становятся все более взаимосвязанными: например, сеть Facebook практически вся взаимосоединена — 99,91% пользователей косвенно или напрямую связаны друг с другом.
Рост и разнообразие информации оказывают сильное влияние на методы обработки и интерпретации новых знаний, а поскольку большая часть данных поступает из Интернета и хранится в нем, то одна из важнейших задач сегодня — определиться, как дальше развивать технологии, чтобы иметь возможность доступа к Большим Данным, их сбора, анализа и принятия решений. Для высокоскоростного анализа больших объемов информации нужно слаженное взаимодействие между самими потоками данных и вычислительной инфраструктурой.
Социальные сети и аналитика развиваются в сответствии со многими парадигмами, зародившимися благодаря Интернету, в том числе облакам и ИТ-сервисам. Сегодня большинство социальных сетей объединяет людей со схожими интересами, и в ближайшем будущем такие сети начнут охватывать и другие объекты: программные компоненты, веб-сервисы, источники данных и рабочие процессы. Что более важно, взаимодействие между людьми и неживыми артефактами позволяет серьезно повысить продуктивность труда специалистов по анализу данных. Аналитическая обработка Больших Данных позволяет накапливать знания, выявлять закономерности и вырабатывать оптимальные методы. Реальный пример: после террористического акта на Бостонском марафоне 2013 года обширные наборы сообщений, снимков и видеозаписей из социальных сетей были классифицированы и проанализированы с помощью высокопроизводительных систем, что в конечном итоге помогло выявить устроителей теракта. Таким образом, облака предоставили вычислительные мощности для решения задачи, а результативность работы автоматизированных средств аналитики была улучшена благодаря информации от участников социальных сетей.
Взаимодействие участников социальной сети можно представить в виде цикла взаимного усиления, в котором люди создают непрерывный поток информации, размещаемой в репозитории взаимосвязанных данных; индивидуумы или организации анализируют эти данные с помощью децентрализованных облаков и взаимосвязанных компьютеров; а результатом анализа становятся знания, впоследствии передаваемые людям. Как видно из рис. 1, эта система непрерывно развивается, как и знания, рождающиеся в результате взаимодействия. Покажем далее, что взаимодействие компьютеров и людей открывает последним новые способы интерпретации взаимосвязанных данных. Именно благодаря этому пересечение социальных сетей с облаками можно рассматривать для решения задач анализа Больших Данных.
Рис. 1. Цикл взаимного усиления. Взаимосвязанные люди генерируют поток данных, анализируемый взаимосвязанными компьютерами, а знания, извлекаемые в результате этого анализа, передаются снова людям |
Взаимосвязанные люди: социальные сети и Большие Данные
Сайты социальных сетей, таких как Twitter, Facebook, LinkedIn, YouTube и Wikipedia, объединяют огромные популяции пользователей и сохраняют экзабайты информации, связанной с их повседневным взаимодействием. Основные исследовательские задачи можно распределить по ряду предметных областей.
«Живые» социальные сети
Еще с 1920-х годов социологи начали изучать группы взаимосвязанных людей и межличностные отношения в них. В ходе этих исследований предпринимались попытки систематизировать силу связей и определить роль доверия в сетях. Моделирование социальных сетей выполняется путем сбора данных и анализа выборок, посредством построения блочных и диффузионных моделей, а также методом анализа поступающих данных и данных длительного наблюдения. Измерения включают в себя централизованные оценки поведения групп, анализ межсетевого взаимодействия и анализ соответствий.
Теория сложных сетей
Некоторые из методов анализа сетей применяют математики, но их больше интересуют количественные характеристики структуры сети, а социальное поведение оценивается исходя из анализа схемы соединений между узлами сети. Учитывая, что структура сложных сетей неоднородна и динамически развивается со временем, основное направление исследований — это разработка надежных математических методов оценки сетей, состоящих из миллионов узлов. Математики и физики нередко используют знания, полученные в ходе изучения биологических систем, важным методом изучения поведения которых является анализ протяженности маршрутов и кластерный анализ сетевой структуры. В базовой форме социальные сети можно представить в виде графов, а более сложные топографии представляют в виде взвешенных, степенных, пространственных сетей или случайных графов. Один из общепринятых подходов к управлению такими сетями — разбиение графа спектральным способом, когда определяется минимальное количество ребер между двумя группами вершин. Для сетей с неизвестным заранее количеством сообществ эффективен метод иерархической кластеризации — разбиение узлов на кластеры в зависимости от степени связности. Есть также методы кластерного анализа, основанные на поиске наибольшей дистанции между узлами.
Информационные и социальные сети
Специалисты по информатике, опираясь на теории социальных и сложных сетей, ведут исследования в области сетевых сред, выполняющих роль информационных систем. Активно изучается фундаментальный вопрос о сходстве социальных сетей Интернета с коллективным поведением людей в реальных ситуациях. Для этого применяются комбинированные методы, заимствованные из социологии и математики. Например, метод анализа веб-графов опирается на традиционные методы анализа сетей, но с учетом особенностей Всемирной паутины.
Социальные сети как Большие Данные
Изучение социальных сетей превращается в задачу обработки Больших Данных, когда бизнес-руководителям или специалистам по информационным системам нужно прогнозировать поведение участников сообщества, чтобы добиться повышения эффективности маркетинга или продаж. У многих социальных сайтов имеется от 10 до 200 млн пользователей, поэтому стержнем большинства исследований является работа с выборками данных. Оптимальным, хотя и сильно затратным по времени, было бы извлечение знания из всего среза данных, что для Больших Данных, характеризуемых тремя «V»(volume, velocity, variety — объем, скорость, многообразие), нереально. Уже в конце 2011 года у Facebook было 721 млн пользователей и 68,7 млрд ребер-связей между «друзьями». Если говорить о скорости наполнения, то Twitter и Facebook генерируют 7 Тбайт и 10 Тбайт соответственно ежедневно. Но эти данные нередко нужно обрабатывать буквально со скоростью мысли. Например, 11 ноября 2012 года на TaoBao, крупнейшей розничной онлайн-площадке Китая, прошла распродажа, в течение которой было совершено 100 млн покупок, а пиковый темп продаж достиг 205 тыс. транзакций в минуту. Что же до многообразия — данные сегодня поступают из самых разных источников, от камер наблюдения, спутников и твитов до всевозможных сенсоров и электросчетчиков.
Взаимосвязанные компьютеры: развитие горизонтально масштабируемых систем
Колоссальный объем генерируемых данных и потребность экономично их хранить и обрабатывать вынуждают организации широко применять для этих задач горизонтально масштабируемые системы — кластеры серверов стандартной архитектуры без совместно используемых ресурсов (памяти, систем хранения и т. п.), связанные по протоколу TCP/IP и использующие параллельную модель распределенных вычислений, например MapReduce. Облака — предоставление по требованию горизонтально масштабируемых вычислительных ресурсов с оплатой по мере использования — являются идеальным инструментом организации обработки Больших Данных. Например, сервис Netflix хранит фильмы и сериалы, а Dropbox — файлы пользователей в Amazon Simple Storage Service. Сайт локального поиска Yelp пользуется не только облаком хранения Amazon, но и сервисом Amazon Elastic MapReduce для анализа пользовательского поведения. Похожие возможности предоставляют Microsoft Windows Azure и IBM SmartCloud Enterprise+. Молодые компании (например, Cloudera, Hortonworks и MapR Technologies) разрабатывают как коммерческое ПО, так и решения на базе проекта Apache Hadoop.
В последние годы горизонтально масштабируемые хранилища данных на базе систем NoSQL быстро набирают популярность как решения для обслуживания крупномасштабных интернет-приложений. Среди таких хранилищ есть как коммерческие системы (Amazon DynamoDB, Google BigTable и PNUTS от Yahoo), так и системы с открытым кодом (Cassandra, HBase и MongoDB). Обычно эти хранилища предоставляют более скромные, в сравнении с реляционными СУБД, интерфейсы программирования (реализующие лишь операции создания, чтения, обновления и удаления) и ориентированы прежде всего на масштабируемость, гибкость и работу на стандартном оборудовании. Такие платформы особенно хороши для приложений, выполняющих относительно простые операции, но нуждающихся в гарантированно быстром отклике при масштабировании до больших размеров. Гибкость схем и эластичность, свойственные системам NoSQL, лишают их ограничений, присущих реляционным СУБД, но при этом приходится жертвовать частью гарантий ACID (Atomicity — атомарность, Consistency — согласованность, Isolation — изоляция, Durability — долговечность хранения). Соответственно, при реализации систем, обрабатывающих Большие Данные, возникают определенные сложности.
Модели данных и высокоуровневые абстракции
Реляционные модели данных и SQL создают уровень абстракции между базой данных и приложением — SQL позволяет составить запрос на понятном языке, а механизм исполнения оптимизирует его и автоматически ставит в очередь для запуска. Для анализа Больших Данных подобных решений нет. Хранилище на базе NoSQL поддерживает различные структуры данных (документ, граф, строка-столбец, пара «ключ — значение»), с которыми пользователю приходится работать напрямую. Программисту нужно знать физическую организацию данных и для манипуляций с ними пользоваться интерфейсами программирования, причем уникальными для каждого хранилища. В последнее время предпринимаются попытки создавать уровни SQL поверх NoSQL, но без абстрактной модели данных. Подобные проекты разрозненны, и каждый зависит от конкретной низкоуровневой технологии.
Инкрементальная обработка и приблизительный результат
Выполнить требование по обработке больших объемов данных с высокой скоростью непросто — в систему стремительно поступает огромное количество данных, и теми же темпами должны происходить и анализ, и интерпретация. В традиционном бизнес-анализе транзакционные данные вначале обрабатываются в системе оперативной обработки транзакций (OnLine Transaction Processing, OLTP), а затем в пакетном режиме передаются механизму извлечения, преобразования и загрузки (Extract — Transform — Load, ETL). В конечном счете данные загружаются в хранилище для оперативной аналитической обработки (OnLine Analytical Processing, OLAP), где происходит извлечение ценных для бизнеса знаний. При использовании цепочки OLTP — ETL — OLAP оперативность приносится в жертву точности, поскольку между поступлением данных и извлечением знаний проходит довольно много времени.
В некоторых системах Больших Данных, например в механизмах распознавания финансовых мошенничеств и автоматизации маркетинга, длительные задержки недопустимы. Появившаяся недавно парадигма поточных вычислений подразумевает непрерывную обработку потоковых данных — например, лент социальных СМИ или журналов работы оборудования. Поточные вычисления — это шаг к аналитике реального времени, сопряженный со своими сложностями, и одна из них состоит в балансировке между построением модели обработки и просмотром потоков в реальном времени. С одной стороны, накопленные исторические данные помогают построить статистическую модель для управления потоковой обработкой — например, определиться, за какими именно показателями надо следить и какие выбрать пороговые значения. С другой, вновь поступившие данные из потока должны использоваться для подстройки этой модели, чтобы она отражала последние тенденции. Важнейшим элементом этой балансировки является механизм инкрементальной обработки данных и подстройки модели.
Еще одно возможное решение проблемы объема и скорости — выдавать оперативные, но приблизительные результаты на запросы, либо приоритизировать различные запросы, выделяя им разный объем ресурсов. В этом случае возможны различные уровни согласованности данных: одни результаты будут точными, но медленными, другие — приблизительными, но быстрыми.
NoSQL, масштабируемый SQL и NewSQL
Для преодоления трудностей обработки Больших Данных создатели систем NoSQL ослабляют ограничения ACID, реализуют свободно масштабируемые решения с базовыми функциями СУБД, а затем постепенно добавляют особенности, присущие реляционным системам, например поддержку индексации и транзакций. Эту тенденцию можно наблюдать на примере эволюции Google BigTable в Spanner.
Разработчики реляционных СУБД, в свою очередь, меняют архитектуру для расширения масштабирования путем создания среды без разделения ресурсов. Добавляются механизмы автоматического секционирования и масштабирования данных, а также возможность пожертвовать согласованностью ради быстродействия. Есть также так называемые проекты NewSQL, в рамках которых предпринимаются попытки модернизировать архитектуру реляционной СУБД, чтобы обеспечить ей масштабируемость и быстродействие NoSQL с сохранением гарантий ACID, присущих традиционным одноузловым базам данных.
Взаимосвязанные данные: новая работа для облаков и социальных сетей
Как показали исследования, пользователи социальных сетей заходят на соответствующие сайты главным образом для того, чтобы обозначить и показать сеть своих контактов, уже существующих в реальном мире. Другими словами, там обычно не пытаются наладить связь с незнакомцами, а общаются с людьми, которые уже входят в прямую или расширенную физическую социальную сеть человека. Таким образом, между участниками онлайн-сети уже предположительно есть определенный уровень доверия плюс что-то общее: работа, увлечение, политические взгляды и т. п. Эта особенность создает новые возможности, в том числе по выработке политик безопасности, опирающихся на уже имеющиеся доверительные отношения, для организации обмена данными и ресурсами в пределах сетей людей со схожими интересами, а также для оптимизации анализа данных с опорой на то, что участники сети предположительно имеют общие интересы и потому делают похожие запросы. Наконец, можно пользоваться суждениями социально связанных людей для построения систем оценки репутации сервисов. «Облака» связей в социальных сетях, таким образом, открывают широкое поле для исследований.
Совместное предоставление и использование ресурсов
Социальные сети могут применяться для организации совместного предоставления и использования ресурсов. Известные примеры — системы распределенных вычислений с добровольным участием, такие как ныне неактивная Storage@home и проекты на платформе BOINC (Berkeley Open Infrastructure for Network Computing), когда принадлежащие отдельным пользователям вычислительные ресурсы объединяются и предоставляются в обмен на доступ к другим ресурсам. Подобные проекты не всегда выживают, поскольку для них характерно отсутствие гарантий надежности и качества обслуживания. Социальный аспект состоит в возможности для пользователей зарабатывать себе репутацию в зависимости от уровня достоверности (надежности) своих ресурсов.
Локальность ссылок в облаке
Объемы данных, циркулирующих в облаке, создают сложности при их аналитической обработке. С целью ускорения анализа можно использовать социальные группы для выполнения вычислений, кэширования результатов и обмена данными в пределах круга взаимосвязанных пользователей. Участники этого круга предположительно заинтересованы в изучении одних и тех же закономерностей, поэтому вычисления будут обладать высокой локальностью ссылок, что поможет увеличить быстродействие.
Аналитика с сохранением конфиденциальности
Cоциальные связи можно использовать для статистического анализа с сохранением приватности (differential privacy), обеспечив максимальную точность ответов на запросы к статистическим базам данных, но сведя к минимуму шансы идентификации личностей. В социальной системе приватность может определяться по-иному, чем в традиционных системах. Например, требование о соблюдении приватности можно ослаблять в зависимости от количества соединений между группами участников социального графа. Методы differential privacy придется доработать для случаев, когда нужно оперативно обрабатывать поток данных, имеющих отношение к социальным взаимосвязям.
Междоменная аналитика
Собирая данные из множества социальных сетей, можно выполнять их корреляционный анализ. Учитывая, что словари разных сетей варьируются, на этапе предварительной обработки данных придется установить соответствие между словарями разных доменов. Например, глоссарий Twitter содержит такие понятия, как «читатель» (follower) и «твит», в Facebook есть «друзья» и «статусы», в Google Plus — «круги» и «тусовки» (hangouts). Для междоменного анализа данных понадобится составить единую онтологию, отражающую различия и сходство терминологий и определяющую взаимоотношения между терминами в масштабе всей сети.
«Социализация» политик контроля доступа
При объединении социальных сетей с облаками неизбежно придется рассмотреть проблему безопасности. Для регулирования доступа к облачным ресурсам нужны будут пользовательские группы, роли и политики. Процесс регулирования может опираться на социальные взаимосвязи: используя их, можно создать эволюционирующую систему контроля доступа, которая будет автоматически адаптироваться при добавлении, удалении пользователей или изменении их взаимосвязей. В одном исследовании предлагалось использовать семантическую разметку для выяснения взаимоотношений между пользователями и ресурсами. По этим связям можно судить о наличии доверительных отношений и использовать полученные сведения при составлении политик контроля доступа. Поскольку облачные ресурсы, как правило, динамичны, необходимы правила назначения прав доступа, автоматически адаптирующиеся по мере появления новых ресурсов и подключения новых пользователей к социальной сети. При этом с зарождением новых данных в облаке правила доступа к ним могут генерироваться с использованием схем мгновенной классификации. На рис. 2 изображена подобная сеть в виде социального графа с политиками безопасности и пользовательскими группами — новые пользователи по мере присоединения к сети автоматически распределяются по группам в зависимости от своих социальных связей.
Рис. 2. Группы, роли и политики безопасности в социальном графе. Новых пользователей, присоединяющихся к сети, можно автоматически распределять по группам в зависимости от их социальных связей |
Механизмы оценки репутации сервиса
Преимущества облаков проявляются, когда ПО реализовано в виде сервисов, которые можно комбинировать в облаке в зависимости от задачи пользователя. Автоматическое обнаружение и компоновку сервисов можно осуществлять, руководствуясь их репутацией. При этом репутация сервиса оценивается по отзывам пользователей и реальным показателям результативности работы. Таким образом, репутация сервиса — это функция качества предоставляемого им обслуживания, определяемого по журналу операций и оценкам, выставляемым пользовательским сообществом.
Разработчики схем компоновки сложных сервисов предлагают использовать репутацию в качестве одного из критериев выбора компонентов. Обращение к социальному аспекту в общем случае позволило бы улучшить подобные схемы. Пример — сайт бронирования туров, комбинирующий и вызывающий различные сервисы для поиска оптимальных цен на авиабилеты. Воспользовавшись социальными функциями, можно эффективно оценивать репутацию сервисов по мнениям участников сообщества — такой оценке можно доверять, исходя из предположения, что пользователи из одной группы будут иметь схожие интересы. Например, какие-то сообщества будут больше внимания обращать на цену, чем на продолжительность полета, другие — на скорость реагирования сервиса, чем на качество выдаваемого им результата. Соответственно, репутация, подсчитанная «социально», — это более точная мерка удовлетворенности пользовательского сообщества работой сервиса.
Классификация социальных сетей
Успех Facebook и LinkedIn показывает, что технологии World Wide Web не только способствуют развитию социальных сетей, но и сами могут благодаря им развиваться. Такие сети, предназначенные для широкой публики, а особенно для научного сообщества, меняют принципы общения и работы пользователей. Все социальные сети можно классифицировать по двум критериям: уровню массовости и способности к решению задач. По первому критерию сети могут быть либо общего назначения, либо предназначенными для конкретных целей. По второму — информативными либо исполнительными (то есть способными выполнять некие вычисления). Эта классификация применима как к научным, так и к обычным сетям.
Информативность и исполнительность
Если рассматривать социальные сети с точки зрения их способности выполнять вычислительные задачи, то есть четкая граница между информативными и исполнительными системами.
Социальные сети общего назначения имеют признаки и той и другой.
- Информативные. Социальные сети общего назначения, такие как Facebook и LinkedIn, используются для общения и взаимодействия. Например, научные ассоциации ACM и IEEE создали свои сообщества и в Facebook, и в LinkedIn. Участники подобных сообществ сообщают в них о прогрессе в своих исследованиях, ищут работу и налаживают контакты.
- Исполнительные. Помимо информативных соцсетей существует множество сайтов, предоставляющих открытые, ориентированные на взаимодействие платформы для поиска веб-сервисов, готовых коллажей (mashup) и т. п. К этой категории относятся ProgrammableWeb, онлайн-сообщество для публикации Web-API и коллажей, а также сервис Amazon Elastic Compute Cloud.
- Социальные сети для исследователей, в свою очередь, как правило, обладают и информативностью, и исполнительными способностями.
- Информативные. Для ученых существует немало социальных сетей — например, CiteULike и Nature Network. Узлами таких сетей являются авторы, публикации и цитаты — соответственно, эти сервисы позволяют выяснять связи между учеными, докладами и темами исследований. Есть и сайты для отдельных сообществ, например для биологов или врачей.
- Информативно-исполнительные. Многие сайты не просто объединяют специалистов, но и позволяют делиться данными, методологиями проведения экспериментов и результатами. OpenWetWare — пример такого сайта для биологов.
- Исполнительные. Некоторые социальные сети для исследователей ориентированы специально на вычисления, позволяя обмениваться исполняемыми компонентами. Например, сайт myExperiment предлагает модерируемый реестр готовых потоков работ и платформу их исполнения; а nanoHub представляет собой портал нанотехнологических исследований, на котором есть не только пользовательские группы, но также документация и инструменты моделирования.
На рис. 3 перечислены социальные сети для ученых. Каждая размещена в соответствии со своим относительным уровнем массовости (ось x) и исполнительной способностью (ось y). Увидеть, насколько исследования в области Больших Данных пересекаются с исследованиями в сфере облачных вычислений, можно с помощью рис. 4. Изображенное на нем облако слов сгенерировано по вышедшим за последние два года научным докладам, посвященным облакам и Большим Данным. Видно, что внимание научного сообщества привлекают, в частности, проблемы управления ресурсами и быстродействия, а среди технологий чаще других упоминаются MapReduce и Hadoop. Появляются исследования, касающиеся облачных технологий применительно к проблемам энергетики. Примечательно, что социальные сети и мобильные устройства, несмотря на их популярность в обществе, вниманием ученых не пользуются.
***
Социальные взаимодействия между людьми изучаются достаточно широко — в социологии, математике, физике и компьютерных науках. Между тем скоординированная обработка огромных масс цифровой информации при участии обширных пользовательских групп способствует более быстрому развитию методов интерпретации данных и обогащению копилки знаний. Анализ Больших Данных с помощью социальных сетей дает массу возможностей. Инженеры смогут создать новые распределенные системы анализа данных, в которых пользователям будет предоставляться доступ к определенным подмножествам наборов Больших Данных, а также информация о ходе обработки в целом. Такие системы позволят одновременно делиться вычислительными ресурсами настольных систем, серверов и мобильных телефонов. Анализ Больших Данных в социальных облаках нельзя выполнять методом проб и ошибок — необходима оперативная обработка. Соответственно, нужно разрабатывать новые методики, позволяющие принимать прогнозные аналитические решения. Данные будут размещаться не в стандартных реляционных СУБД, а в обширных распределенных хранилищах. Понадобятся новые всеобъемлющие межсетевые, межоблачные модели данных, оптимизирующие быстродействие, исходя из распределения информации и пользователей. В то время как традиционные системы контроля доступа, такие как Active Directory, основаны на каталогах древовидной структуры, в социально связанном мире политики безопасности должны опираться на социальные взаимоотношения, представленные в виде графов. Появится потребность в высокой степени автоматизации настройки политик безопасности в целях защиты аккаунтов и личной информации пользователей, а также сохранения приватности.
Вэй Тан (wtan@us.ibm.com) — научный сотрудник, исследовательский центр IBM им. Т. Ватсона, Брайан Блейк (m.brian.blake@miami.edu) — профессор информатики, электронного машиностроения и генетики человека, Университет Майами, Иман Салех (iman@miami.edu) — научный работник, Университет Майами, Шахрам Дустдар (dustdar@dsg.tuwien.ac.at) — профессор, Институт информационных систем, Венский технический университет.