Компьютерная конкурентная разведка [Александр Георгиевич Додонов] (pdf) читать онлайн

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

НАЦИОНАЛЬНАЯ АКАДЕМИЯ НАУК УКРАИНЫ
ИНСТИТУТ ПРОБЛЕМ РЕГИСТРАЦИИ ИНФОРМАЦИИ

А.Г. Додонов, Д.В. Ландэ,
В.В. Прищепа, В.Г. Путятин

КОМПЬЮТЕРНАЯ
КОНКУРЕНТНАЯ РАЗВЕДКА

Киев – 2021
2

УДК 004.5
ББК 22.18, 32.81, 60.54
C95
А.Г. Додонов, Д.В. Ландэ, В.В. Прищепа, В.Г. Путятин
Компьютерная конкурентная разведка. – Киев: ТОВ
«Інжиніринг», 2021. – 354 с.
Книга посвящена рассмотрению вопросов компьютерной
конкурентной разведки, разведки в открытых ресурсах сети
Интернет. Компьютерная конкурентная разведка охватывает
автоматизированные процедуры сбора и аналитической обработки информации, которые проводятся с целью поддержки принятия управленческих решений, повышения конкурентоспособности исключительно из открытых источников в
компьютерных сетях – веб-сайтов, блогосферы, социальных
сетей, мессенджеров, баз данных. В книге рассматриваются
различные вопросы информационно-аналитической деятельности в сетевой среде. В качестве теоретических основ компьютерной конкурентной разведки рассматриваются элементы теории информации, анализа социальных сетей, информационного и математического моделирования.
Для широкого круга специалистов в области информационных технологий и безопасности.
Рекомендовано к изданию ученым советом Института проблем регистрации информации НАН Украины
(протокол № 9 от 17 февраля 2021 года)
Рецензенты:
Член-корр. НАН Украины, д.т.н., профессор В.В.Мохор
Д.т.н., профессор А.Я. Матов
Д.ю.н., профессор К.И. Беляков
 А.Г. Додонов, Д.В. Ландэ,
В.В. Прищепа, В.Г. Путятин,
2021

ISBN 978-966-2344-79-0

3

Оглавление
Введение .............................................................................................. 7
1. Конкурентная разведка и OSINT ........................................ 14
1.1. Задачи конкурентной разведки................................. 14
1.2. Особенности компьютерной конкурентной
разведки ........................................................................................ 16
1.3. Проблемы компьютерной
конкурентной
разведки ........................................................................................ 18
1.4. OSINT – разведка по открытым источникам ......... 20
1.4.1. OSINT как дисциплина разведки .......................... 20
1.4.2. Области применения OSINT .................................. 24
1.4.3. Технологии OSINT ....................................................... 26
1.4.4. Международный опыт ............................................. 29
2. Компьютерные технологии конкурентной разведки .. 31
2.1. Поиск информации в Интернете ................................ 37
2.2. Мониторинг информационного пространства...... 44
2.3. Text Mining, Information Extraction ............................ 46
2.4. Модели предметных областей ...................................... 51
2.5. Концепция Big Data.......................................................... 58
2.5.1. Понятие Больших Данных ..................................... 58
2.5.2. Техники больших данных ........................................ 62
2.5.3. Технологии и инструменты больших данных 71
2.6. Математические основы ................................................ 96
4

2.6.1. Временные ряды......................................................... 98
2.6.2. Корреляционный анализ ....................................... 104
2.6.3. Анализ Фурье ............................................................. 109
2.6.4. Вейвлет-анализ ........................................................ 112
2.6.5. Корреляция с шаблоном ........................................ 125
2.6.6. Фрактальный анализ ............................................ 127
2.6.7. Мультифрактальный анализ............................ 137
2.6.8. Сетевые модели ....................................................... 147
2.7. Реализованные технологии конкурентной
разведки ...................................................................................... 164
3. Источники информации ...................................................... 200
3.1. Веб-сайты ........................................................................... 204
3.2. Социальные сети, блоги ................................................ 209
3.2.1. Основные социальные сети ................................. 212
3.2.2. Мониторинг социальных сетей ......................... 216
3.2.3. Анализ социальных сетей .................................... 220
3.3. Глубинный веб, специальные базы данных ......... 222
3.3.1. Понятие «глубинный веб» ...................................... 223
3.3.2. Виды ресурсов глубинного веб ............................. 227
3.3.3. Сервисы работы с глубинным веб..................... 232
3.3.4. Специальные базы данных................................... 233
4. Репутационный анализ ......................................................... 239
4.1. Проблема управления репутацией ........................... 239
4.2. Моделирование репутации в сетях .......................... 244
5

4.3. Рейтингование интернет-ресурсов .......................... 252
5. Правовые вопросы конкурентной разведки................ 262
5.1. Конкурентная разведка в правовом поле ............. 262
5.2. Конкурентная разведка и защита коммерческой
тайны ............................................................................................ 265
5.3. Конкурентная разведка ................................................ 267
и защита персональных данных ........................................ 267
5.4. Конкурентная разведка и защита авторского
права ............................................................................................. 276
6. Противодействие информационным операциям ...... 278
6.1. Информационное влияние, атаки и операции ... 282
6.2. Этапы информационных операций ........................ 285
6.3. Моделирование информационных операций ...... 290
6.4. Выявление информационных операций ............... 303
6.5. Пути противодействия информационным
операциям ................................................................................... 313
6.6. Примеры информационных операций ................... 314
Заключение..................................................................................... 320
Краткий глоссарий ...................................................................... 323
Литература ...................................................................................... 342
Веб-сайты по тематике конкурентной разведки ............ 349
Адреса упоминаемых веб-ресурсов ...................................... 350

6

Введение
Компьютерная
конкурентная
разведка
(Computer
Competitive Intelligence) охватывает процедуры сбора и обработки информации, проводимые с целью поддержки принятия управленческих решений, повышения конкурентоспособности организаций исключительно из открытых источников
из компьютерных сетей, большинство из которых являются
надстроенными над сетью Интернет, так называемыми, оверлейными. Поэтому часто в качестве синонима конкурентной
разведки используется термин интернет-разведка. Таким образом, данная книга фактически посвящена проблематике
конкурентной разведки, но с одним существенным ограничением – все источники информации, необходимые для проведения разведывательной деятельности, являются открытыми
и доступными в компьютерных сетях. Более того, большая
часть инструментария, программ обработки информации,
также свободно доступна через современные компьютерные
сети. В англоязычной литературе такой вид разведки принято
называть разведкой по открытым источникам (Open Sources
INTelligence, OSINT) [Берд, 2007], что также можно считать
синонимом термина ―конкурентная разведка‖. Однако следует отметить, что в зарубежной литературе употребление
OSINT в значительной мере ограничено применением в государственной сфере. Но именно для технологий OSINT создано
наибольшее количество методик, техник и технологий.
Разведывательная информация может быть получена из
официальных источников, других открытых источников,
СМИ, объявлений, рекламы, внутрифирменных, банковских,
правительственных отчетов, баз данных, от экспертов, путем
добывания (сбора), анализа или специальной обработки данных, текстов. Правда, при этом количество разнородных сведений, которые необходимо переработать, чтобы получить
крупицы знаний огромно, а потому в настоящее время конкурентная разведка немыслима без использования специализированных информационных технологий, практического
применения современной концепции больших данных (Big
Data).
По мнению бывшего директора Центрального разведывательного управления США (ЦРУ) Р. Хилленкерта «80 % разве7

дывательной информации получается из таких источников
как книги, журналы, научно-технические обзоры, фотографии, коммерческих аналитических отчетов, газет, теле- и радиопередач…».
По другим оценкам, в любой разведке от 35 до 95 % всей
информации добывается из открытых источников. При этом
доля затрат на работу с открытыми источниками, например,
в разведывательном бюджете США, составляет всего лишь
около 1 %.
Известно, что для бизнес-структур 95% полезной информации дает конкурентная разведка, 4,1% информации можно
легально получить из государственных структур. Позволить
себе полноценное проведение бизнес-разведки на рынках
могут только большие компании, однако возможности конкурентной
разведки
доступны
практически
всем
[https://trademaster.ua/articles/312620].
Значимость разведки по открытым источникам отметил
еще президент США Линдон Джонсон (Lyndon Baines
Johnson) 30 июня 1966 г., когда произнес речь на церемонии
принятия присяги директором ЦРУ Ричардом М. Хелмсом
(Richard McGarrah Helms): «Высшие достижения не являются
результатом потихоньку пересказанной тайной информации,
а следуют из терпеливого, ежечасного изучения печатных
источников».
По устоявшемуся ошибочному мнению, вся полезная разведывательная информация добывается из секретных источников агентурным или оперативным путем – на самом деле
это не так. Известное признание адмирала Захариаса – заместителя начальника разведки Военно-морских сил США в годы Второй мировой войны, опровергает это. Так, по его оценке 95 % информации разведка военно-морских сил черпала
из открытых источников, 4 % – из официальных, и только 1 %
– из конфиденциальных источников. Справедливости ради
надо сказать, что часто именно этот один процент является
тем золотым недостающим звеном, который позволяет сложить целостную картину разрозненной мозаики всех разведданных. И если такое соотношение справедливо для военной
разведки, то тем более оно будет правильным для конкурентной разведки для бизнес-структур.
8

В то же время, анализ рассекреченного отчета ЦРУ за
1987 год «Enterprise-Level Computing in Soviet Economy» (SOV
С87-10043) дает представление о том, какой колоссальный
объем данных необходимо было обрабатывать аналитикам.
Для составления отчета постоянно на протяжении года сканировалось 347 открытых источников; для создания сводки
объемом в одну страницу ежедневно обрабатывался информационный массив объемом примерно 7 млн. слов.
Общеизвестно, что основное отличие конкурентной разведки от промышленного шпионажа – это легитимность и
соблюдение этических норм [Дудихин, 2004]. Здесь данное
положение доведено до абсолюта – исключительно все источники информации в этом случае доступны и легальны.
Интернет-разведка, разведка по интернет-источникам,
как, впрочем, и вся конкурентная разведка, представляет
собой особый вид информационно-аналитической работы,
позволяющей
собирать
разностороннюю
бизнес-информацию без применения тех специфических методов оперативно-розыскной деятельности, которые являются исключительной прерогативой правоохранительных органов.
Вместе с тем, методы ведения интернет-разведки, техники и технологии ее проведения весьма близки к используемым
в традиционной разведывательной деятельности спецслужбами.
Применение интернет-разведки в коммерческой компании оправдывается не только соображениями информационной безопасности, но важно и для решения задач менеджмента и маркетинга тем, что обеспечивает:









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

Зыбкая грань между понятиями конкурентная разведка и
промышленный шпионаж, состоит в легитимности, законности методов и средств, используемых в процессе сбора целевой информации [Ландэ, Прищепа, 2007]. Следует отметить
также весьма тонкую разницу между бизнес-разведкой
(Business Intelligence, BI) и конкурентной разведкой. Из публикаций и описаний систем, где упоминаются эти термины,
можно сделать вывод, что бизнес-разведка направлена больше на изучение «внутренней» маркетинговой, финансовой,
экономической информации и информации о клиентах, в то
время как конкурентная разведка чаще охватывает процессы, связанные с добыванием «внешней» информации и знаний непосредственно о конкурентах.
Родоначальником современной бизнес-разведки считается компания Ксерокс (Xerox), столкнувшаяся с конкуренцией
со стороны японских производителей [Прескотт, 2003]. В
начале 70-х годов ХХ века, после выхода японцев на американский рынок, менеджеры Ксерокс заметили, что компания
стала утрачивать позиции на рынке. Ситуацию исправили
изменения, основанные на сборе актуальной информации о
рынке и конкурентах. Ксерокс, благодаря своему японскому
филиалу, создал систему оценки и анализа работы (бенчмаркинг), а затем адаптировал и применил к бизнесу разведывательные технологии. При этом одним из основных условий организации этого процесса было неотступное соблюдение закона, так как репутация компании могла рухнуть гораздо раньше, чем можно было бы воспользоваться экономическими преимуществами промышленного шпионажа. Вскоре
эти методы работы начали применяться и другими американскими компаниями. Затем бизнес-разведка стала применяться в Европе, а в дальнейшем и во всем мире.
Игнорирование
возможностей
бизнес-разведки
на
начальном этапе дорого обходилось даже для крупнейших
компаний [Джилад, 2010]. Так после создания фотоаппарата,
который выдавал готовый снимок, компания Polaroid стала
почивать на лаврах. Когда аналитический отдел компании
представил отчет, в котором указал на перспективы развития
фотоиндустрии и зарождении цифровой эры, руководство
компании назвали эту информацию «футуристической чепу10

хой». Прошло некоторое время и в октябре 2001 года компания Polaroid начала первую процедуру банкротства.
Аналогично в 70-х годах XX века «Большая тройка» американских производителей автомобилей не прореагировала
на появление на рынке японских производителей автомобилей. Однако, сами американцы выбрали небольшие, экономичные и надежные японские автомобили, и американские
корпорации понесли значительные убытки.
Бизнес-разведчики из корпорации Samsung узнали из
открытой прессы, что последний американский завод по производству гитар может закрыться из-за более дешевых корейских инструментов, и американское правительство готовится
защитить своих производителей с помощью таможенных пошлин. Вовремя узнав это, представители Samsung успел ввезти в США большое количество гитар, а в результате введения
ввозных пошлин, еще и поднять цены на этот музыкальный
инструмент.
Сегодняшнее развитие информационных технологий сделало компьютерную конкурентную разведку доступной даже
для относительно небольших компаний, сегодня она распространена на всех уровнях экономики.
На практике понятийная база конкурентной разведки
еще окончательно не сформировалась, пока не делается разницы между терминами «деловая» или «экономическая» разведка, и под конкурентной разведкой ошибочно понимают
весь комплекс мероприятий, связанный с информационноаналитическим обеспечением управления предпринимательскими рисками, выявления угроз, возможностей и других
факторов, влияющих на получение конкурентных преимуществ в бизнесе.
В арсенале тех, кто сегодня полноценно занимается конкурентной разведкой, нет специальной аппаратуры, шпионской техники. Их основной инструмент – компьютер, подключенный к сети Интернет. Деятельность подразделений (служб)
конкурентной разведки компаний все больше основывается
на последних достижениях в области искусственного интеллекта в сочетании с наработками в областях психологии, социологии, экономики.
Ощутимые преимущества, получаемые за счет использования конкурентной разведки, подтверждают результаты
11

опроса, проведенного еще в 1999 г. среди 500 крупнейших
компаний США. Почти 90 % компаний подтвердили, что создали у себя подразделения конкурентной разведки. При этом
затраты корпораций на разведку составляют в среднем 1–
1,5% от оборота и вполне рентабельны [Ландэ, Прищепа,
2007].
В настоящее время создаются многочисленные профессиональные объединения (сообщества) специалистов в области
конкурентной разведки. Наиболее известные из таких сообществ, занимающихся организацией конференций, тренингов, – это Strategic and Competitive Intelligence Professionals,
SCIP в США (www.scip.org) (Рис. 1) и Competia в Канаде
(www.competia.com).

Рис. 1. Фрагмент веб-сайта организации SCIP (www.scip.org)

В Украине известна общественная организация «Общество аналитиков и профессионалов конкурентной разведки»
(https://www.scip.org.ua/). В Украине ведется подготовка
12

специалистов в области конкурентной разведки в Харьковском национальном университете радиоэлектроники, где готовят магистров по специальности «Консолидированная информация».
С началом российской агрессии в отношении Украины
вопросы получения информации из открытых источников и
развенчание фейков приобрели новое значение и актуальность. Это дало старт новым проектам и учебным платформам, целью которых стало формирование и распространение
навыков и умений работать с информацией онлайн, проверять информацию и т.д. Одним из таких проектов стала
OSINT Academy и бесплатный онлайн курс по OSINT (Open
Source Intelligence) Института постиндустриального общества
[OSINT, 2018].
В настоящее время конкурентная разведка не ограничивается изучением конкурентов, а проводит анализ всей среды, окружающей организацию или предприятие. Изучается
политическая обстановка, особенности законодательства,
кадровые перемещения, новые технологии, собственные клиенты и поставщики компании и т.п., подбираются эксперты
по специальным вопросам.

13

1. Конкурентная разведка и OSINT
1.1. Задачи конкурентной разведки
Основными задачами интернет-разведки, как сегмента
конкурентной разведки [Кочергов, 2009], являются:
1. Информационное обеспечение процесса выработки
управленческих решений на стратегическом и тактическом
уровнях;
2. Раннее предупреждение, т.е. привлечение внимание лиц, принимающих решения, к угрозам, которые потенциально могут причинить ущерб бизнесу;
3. Прогноз и предотвращение возможных угроз бизнесу;
4. Выявление (совместно со службой безопасности) попыток конкурентов получить доступ к закрытой информации
компании.
5. Определение благоприятных возможностей для бизнеса;
6. Управление рисками, обеспечение эффективного реагирования компании на быстрые изменения окружающей
среды, интернет-пространства;
7. Промышленная контрразведка, упреждение разведывательной деятельности конкурентов в сетевой среде, аналитическая поддержка службы безопасности компании.
Приведенные выше задачи конкурентной разведки являются ключевыми, они служат достижению фундаментальной цели конкурентной разведки — обеспечить защищенность компании, осознанию того факта, что ее судьба находится в руках лиц принимающих решения, что компания не
станет внезапно жертвой чьих-то враждебных действий.
Кроме того, в рамках компьютерной конкурентной разведки должны быть решены следующие задачи:




сбор и своевременное обеспечение руководства и
бизнес-подразделений компании надежной и всесторонней информацией из сетевых источников о
«внешней» и «внутренней» среде предприятия;
выявление факторов риска, угроз, которые могут
затронуть экономические интересы бизнеса или помешать его нормальному функционированию;
14



выявление новых возможностей и других факторов,
влияющих на получение конкурентных преимуществ;
 усиление благоприятных и локализация неблагоприятных факторов конкурентной среды на деятельность бизнес-структуры;
 выработка прогнозов и рекомендаций по влиянию
конкурентной среды на деятельность бизнесструктуры.
Конкурентная
разведка
становится
современным
направлением исследования поведения конкурентов на рынке, позволяющим создавать модели рынка, его участников,
определения характеристик и оптимизации тактики и стратегии развития субъектов хозяйствования на определенных
рынках. Для решения ее задач требуется использование эффективных приемов работы с информацией и ее элементами.
Информация при этом становится как объектом исследования рынка, так и основой для создания его модели.
Выше сформулированы задачи компьютерной конкурентной разведки, рассчитанные на легитимную деятельность
соответствующих структур. Вся система конкурентной разведки должна позволять руководству компании не только
оперативно реагировать на изменения ситуации на рынках,
но и оценивать дальнейшие возможности своего развития.
Конкурентная разведка обеспечивает переход от традиционного принятия решений на основе недостаточной информации к управлению, основанному на знаниях. При этом она
также обеспечивает снижение рисков, безопасность бизнеса,
а также приобретение конкурентных преимуществ. Современная система конкурентной разведки позволяет не только
осуществлять мониторинг информации, но и моделировать
стратегию конкурентов, выявлять их партнеров, поставщиков, понимать условия сотрудничества.
Основные задачи систем конкурентной разведки заключаются в нахождении и обобщении информации о конкурентах, рынках, товарах, бизнес-тенденциях и операциях по таким основным объектам:


партнеры, акционеры, смежники, союзники, контрагенты, клиенты, конкуренты;
15



объединения компаний, слияния, поглощения, кризисные ситуации и т.п.;
 кадровый состав компании, партнеров, конкурентов и т.д., а также кадровые изменения, их динамика;
 торговый оборот, бюджет и его распределения по
пунктам;
 заключенные договора, соглашения или договоренности.
Интерес при проведении конкурентной разведки вызывает сфера деятельности компаний, сферы их влияния и интересов. Эти знания могут применяться, например, для оказания влияния на позиции партнеров и оппонентов. Большое
значение имеет информация, относящаяся к политике конкурентов, их намерениям, сильным и слабым сторонам, продукции и услугам, ценам, рекламным кампаниям, другим параметрам рынка.

1.2. Особенности
ной разведки

компьютерной

конкурент-

Современные открытые сетевые ресурсы, веб-сайты, социальные сети, видеосервисы, мессенджеры превращается в
настоящее время в основной источник информаци и эффективный инструмент для конкурентной разведки. Они позволяют не только в режиме реального времени отслеживать
действия компаний-конкурентов, но и выявлять последние
тенденции по интересующей тематике. Назовем лишь некоторые способы использования интернет-ресурсов для решения задач конкурентной разведки [Lande, 2019]:
1. Получение новостей по целевой тематике.
Современные сетевые новостные сервисы, такие как
Google News, Yahoo News, UAPort.net, социальные сети типа
Twitter, FaceBook, Reddit позволяют получать новости, отобранные в соответствии с информационными потребностями
пользователей. Например, при использовании социальной
сети Twitter, можно воспользоваться поисковым режимом, и
ввести запрос, например «банкротство». После этого пользователь получит список сообщений, в некоторых случаях снабженных аккаунтами пользователей, чьи сообщения релевант16

ны введенному запросу. Таким образом, можно определить
экспертов, которых можно сгруппировать в соответствии со
своими информационными потребностями. Затем, следуя за
мнением группы экспертов, можно получить достаточно широкий охват проблемы, несколько точек зрения, новые информационные ресурсы.
2. Выявление тенденций.
По выбранным с помощью поисковых возможностей информационным ресурсам (веб-сайтам, социальным сетям и
т.д.) можно вручную или с использованием специальных аналитических инструментов выявлять тенденции в выбранной
сфере.
3. Получение рассылки целевых документов по подписке
(сообщения мессенджеров, электронная почта, СМС).
Многие из новостных агрегаторов и социальных сетей (в
частности, Twitter) предоставляют возможность качественных
персонифицированных периодических рассылок, охватывающих сообщения, комментарии, экспертные каналы.
4. Построение сетей информационных связей, когнитивных карт
Для задач конкурентной разведки важно не только получение целевой информации (сообщений), но и понимание связей, которые обнаруживаются при анализе информации. Важен не только объект анализа, но и связанные с ним информационные ресурсы, профили в социальных сетях, «друзья»,
группы обсуждений и т.п. В некоторых случаях можно посмотреть, кто является подписчиком данных профилей, кто
интересуется той же тематикой и, следовательно, может стать
новым источником для получения целевой информации.
5. Получение ответов на вопросы.
Социальные сети, форумы, блоги можно использовать как
способ получения ответов на конкретные вопросы, в том числе и по вопросам методологии конкурентной разведки. Если
вопрос поставлен корректно, то с большой вероятностью
можно получить ответ на него от других пользователей.
6. Фильтрация «мусора».
Для конкурентной разведки не всегда интересны общеизвестные, зачастую ложные данные и информация (Fake
News), интересные большинству, а ведь именно на такие данные ориентированы социальные сети. При использовании
17

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

1.3. Проблемы
ной разведки

компьютерной

конкурент-

Отметим некоторые проблемы, связанные с компьютерной конкурентной разведкой.
Первой и наиболее существенной проблемой является то,
что колоссальные объемы информации в Интернет, в частности, в социальных сетях, затрудняют поиск и выбор действительно необходимых сведений. Сами по себе необработанные,
необобщенные и непроверенные данные не могут обеспечить
качественную поддержку при принятии решений в области
конкурентной разведки.
В настоящее время поисковыми системами, в частности,
системой Google индексируется свыше триллиона документов,
объемы постоянно растут. Наряду с этим, по словам Эрика
Шмидта (Eric Emerson Schmidt) – председателя совета директоров Google с 2001 по 2011 годы, даже такая мощная поисковая система как Google сможет проиндексировать всю
имеющуюся сегодня информацию лишь примерно через 300
лет.
Традиционные поисковые системы в Интернет отлично
справляются с простыми однократными запросами, однако,
как правило, слабо применимы для нужд конкурентной разведки. По некоторым оценкам [Додонов, 2014], более 97 %
критичной для конкурентной разведки открытой информации невозможно найти с помощью традиционных информационно-посковых систем.
Второй проблемой компьютерной конкурентной разведки
является то, что информация в Интернет имеет динамичный
характер: она размещается, модифицируется и удаляется.
Частичное решение этих проблем возможно при применении
систем контент-мониторинга информационных потоков в
Интернет.
Третья проблема, которую необходимо решить в целях
конкурентной разведки, – автоматическое извлечение понятий из формализованных массивов информации (таблиц, баз
18

данных), а также неструктурированных текстов. Перспективным направлением решения этой проблемы в системах конкурентной разведки является использование технологий
Knowledge Discovery, Data Mining и Text Mining [Ландэ, 2005,
Надо новое], [Печенкин, 2004].
Четвертой проблемой является возможность автоматического выявления неочевидных закономерностей и связей,
зафиксированных в документах. В настоящее время известно
несколько путей решения проблем извлечения понятий из
текстов и выявления их взаимосвязей, как практических, так
и теоретических. Одним из этих путей является построение
матриц и графов связей понятий, моделей предметных областей, когнитивных карт, к которым можно применять соответствующие математические методы. Как правило, узлы
этих графов – коэффициенты, которые пропорциональны
количеству документов, соответствующим исследуемым понятиям.
Пятой проблемой является поиск информации в «скрытом» Интернете, где содержится несравнимо большее количество данных, потенциально интересных для конкурентной
разведки, чем в открытой части сети. Не вся потенциально
открытая «несекретная» информация является хорошо доступной, скорее – наоборот. Добыча необходимой в каждом
конкретном случае информации является сложной задачей.
По мнению экспертов, только порядка 10-15% необходимой
информации имеется в Интернете в готовом виде, остальные
85-90% можно получить в результате сравнения, агрегации и
анализа многочисленных разрозненных данных.
Итак, в Интернет содержится большая часть информации, необходимой для проведения конкурентной разведки,
однако остается открытым вопрос ее нахождения и эффективного использования. Причина – присущие сети Интернет
недостатки [Ландэ, 2005]:






непропорциональный рост уровня информационного шума;
засилье паразитной информации;
слабая структурированность и связность информации;
динамичность информации;
отсутствие целостности информации;
19

 многократное дублирование информации;
 отсутствие возможности смыслового поиска;
 ограниченность доступа к «скрытому» веб.
Несмотря на это возможности Интернета оцениваются
экспертами в области конкурентной разведки достаточно
высоко.

1.4. OSINT – разведка по открытым источникам
1.4.1. OSINT как дисциплина разведки
В качестве одного из синонимов понятия конкурентной
разведки, часто используемого в силовых ведомствах различных государств, используется понятие «разведки по открытым
источникам» OSINT (Open source intelligence). Это одно из
направлений разведки, которое включает в себя поиск, выбор
и добывание разведывательной информации, полученной из
общедоступных источников (не обязательно компьютерных
или сетевых), а также анализ этой информации.
OSINT базируется на двух основных понятиях:


открытый источник – это источник информации,
который предоставляет ее без требования сохранения ее конфиденциальности, т.е. предоставляет информацию, не защищенную от публичного раскрытия. Открытые источники относятся к среде общедоступной информации, и не имеют ограничения в
доступе для физических лиц;
 общедоступная информация – это информация,
опубликованная или размещенная для широкого использования; доступная для общественности.
По утверждениям аналитика ЦРУ Шермана Кента на
1947 год, политики получают из открытых источников до 80
процентов информации, необходимой им для принятия решений в мирное время. Позднее генерал-лейтенант Самуэль
Уилсон, руководителя Разведывательного управления Министерства обороны США в 1976—1977 годах, отмечал, что «90
20

процентов разведданных приходит из открытых источников
и только 10 — за счѐт работы агентуры».
Американский исследователь по вопросам безопасности
Марк М. Ловенталь определяет открытую информацию как
«любую информацию, которая может быть получена из открытых коллекций: все типы СМИ, правительственные отчеты и другие документы, научные исследования и отчеты,
коммерческие поставщики информации, Интернет и т. д.
Основная характеристика открытой информации – это то,
что для ее получения не требуются нелегальных методов сбора
и что она может быть получена с помощью средств, полностью соответствующих авторским правам и коммерческим
условиям поставщиков.
Мировое сообщество все больше использует информацию
из открытых источников в целях решения широкого спектра
задач. Материалы OSINT служат базой для всех методов ведения разведки как накопитель разведывательных данных,
их анализатор и распространитель.
В соответствии с [ATP, 2012] разведка в открытых источниках OSINT является одним из способов ведения разведки,
который вносит значительный вклад при планировании боевых действий, а также предоставляет всю необходимую информацию при их проведении. Также определяется:
1) Разведка в открытых источниках (OSINT) является одним из методов ведения разведки путем сбора информации
из открытых источников, ее анализа, подготовки и своевременного предоставления конечного продукта вышестоящему
руководству в целях решения определенных разведывательных задач.
2) OSINT является методом ведения разведки, разработанным на основе сбора и анализа общедоступной информации,
и не находящимся под непосредственным контролем правительства США. OSINT является результатом систематизированного сбора, обработки и анализа необходимой общедоступной информации.
В частности, роль OSINT при проведении разведки определяется рядом аспектов, среди которых оперативность поступления, объем, качество, ясность, легкость дальнейшего
использования, стоимость получения и т.д. Следующие фак21

торы влияют на процесс планирования и подготовки ведения
OSINT:












Эффективное информационное обеспечение. Большая часть необходимых справочных материалов об
объектах информационных операций добывается из
открытых источников. Это в основном достигается
путем сбора информации из СМИ. Накопление
данных из открытых источников является основной
функцией OSINT.
Релевантность. Доступность, глубина и масштабы
публично доступной информации позволяют находить необходимую информацию без привлечения
специализированных человеческих и технических
средств разведки.
Упрощение процессов добывания данных. OSINT
предоставляет необходимую информацию, исключая потребность в привлечении излишних технических и человеческих методов ведения разведки.
Глубина анализа данных. Являясь официальной частью разведывательного процесса, OSINT позволяет
руководству осуществлять глубокий анализ общедоступной информации в целях принятия соответствующих решений.
Оперативность. Резкое сокращение времени доступа к информации в сети Интернет. Сокращение человеко-часов, связанных с поиском информации,
людей и их взаимоотношений на основе открытых
источников. Быстрое получение ценной оперативной информации. Стремительно меняющаяся обстановка во время кризисов полнее всего отражается в текущих репортажах CNN с места событий.
Объем. Возможность массового мониторинга определенных источников информации, с целью поиска
интересующего контента, людей и событий. Как показывает опыт, грамотно собранные фрагменты
информации из открытых источников в совокупности могут быть эквивалентны или даже более значимы, чем профессиональные разведывательные
отчеты.
22



Качество. По сравнению с отчетами специальных
агентов информация из открытых источников оказывается предпочтительнее уже потому, что лишена
субъективизма, не разбавлена ложью.
 Ясность. Так что если в случае использования OSINT
надежность открытых источников бывает как ясной, так и неясной, то в случае с тайно добытыми
данными степень их надежности всегда вызывает
сомнения.
 Легкость использования. Любые тайны принято
окружать барьерами из грифов секретности, особых
режимов доступа. Что же касается данных OSINT,
то их можно легко передавать в любые заинтересованные инстанции. Возможно проведение комплексного расследования на основании данных из
Интернета
 Стоимость. Стоимость добычи данных в OSINT минимальна, определяется лишь стоимостью используемого сервиса.
В частности, сегодня, предлагаемые для OSINT программно-технологические решения обеспечивают:








сбор данных из социальных сетей, таких как
Facebook, Twitter или Youtube, анализ собранных
данных;
экстрагирование из собранного контента сути событий;
агрегирование информации, полученной из сети
Интернет;
информационное влияние в сети Интернет;
оценку достоверности информации;
мониторинг и распознавание идентичности в сети
Интернет, в том числе с помощью геолокации;
работу с информацией, полученной из невидимых с
помощью традиционных сетевых поисковых систем
сегментов веб-пространства (dark web, hidden web,
deep web).

23

1.4.2. Области применения OSINT
Существует множество применений OSINT, среди которых можно назвать:
Разведка
Открытые источники содержат огромное количество
информации, необходимой и удовлетворяющей требованиям
разведывательных органов, как государственных, так и частных, коммерческих, обеспечивающей понимание объективных и субъективных факторов, связанных, например, с деятельностью конкурентов. При этом, безусловно, для повышения эффективности разведывательной деятельности открытая информация используется в комплексе с другими, в частности, агентурными ресурсами.
Инициатива Американского сообщества разведки по
открытым источникам (известная как National Open Source
Enterprise) выражена Директивой сообщества разведки 301,
которая обнародована директором Национальной разведки
[DNI, 2006]. Директива устанавливает полномочия и обязанности помощника заместителя директора Национальной разведки по открытым источникам (ADDNI/OS), Центра открытых источников DNI и Национального комитета по работе с
открытыми источниками.

OSINT в вооруженных силах
Ниже в качестве примера приведены подразделения вооруженных силы США, которые участвуют в деятельности
OSINT:







Unified Combatant Command;
Defense Intelligence Agency;
National Geospatial-Intelligence Agency;
US Army Foreign Military Studies Office;
EUCOM JAC Molesworth;
Foreign Media Monitoring in Support of Information
Operations, U.S. Strategic Command.

Национальная безопасность
Министерство внутренней безопасности (Department of
Homeland Security) США включает активное разведыватель24

ное подразделение для работы с открытыми источниками. 14
февраля 2007 г. был учрежден «Domestic Open Source
Enterprise» для поддержки департамента OSINT и работы с
государственными, местными и племенными партнерами.

Юстиция
Сообщество правоохранительных органов OSINT применяет разведку по открытым источникам для прогнозирования,
предотвращения, расследования преступлений и преследования преступников, включая террористов. Кроме того, центры
центры обработки информации (Fusion Centers) в США все
чаще используют OSINT для поддержки их разведки и расследований. Такие центры первоначально создавались под эгидой Министерства национальной безопасности (DHS) и Минюста и позволяли обмениваться стратегической информацией между ЦРУ, ФБР, Минoбороны, МЧС, а также локальными
администрациями и т.д.
Примерами успешных правоохранительных органов OSINT
являются Scotland Yard OSINT; Королевская канадская конная полиция (RCMP) OSINT.
Полицейский отдел Нью-Йорка (NYPD) включает подразделение OSINT как отдел шерифа округа Лос-Анджелес, расположенный в Бюро по чрезвычайным операциям и связанный
с Объединенным региональным разведывательным центром
Лос-Анджелеса.
В плане правоохранительной деятельности OSINT может
применяться при борьбе с такими явлениями, как:






Организованная преступность и банды;
Педофилия;
Кража персональных данных и вымогательство;
Отмывание денег;
Преступность в сфере нарушения интеллектуальной
собственности;
 Деятельность экстремистских организаций.
При этом с помощью OSINT обеспечивается выявление вовлеченности и усиление влияния в Интернете:


Идентификация ключевых фигур и активистов;
25











Мониторинг конкурента в режиме реального времени;
Ограничение распространения информации;
Формирование общественного мнения;
Выявление экстремистских организаций;
Риски для общественного транспорта;
Санкции и правовые требования;
Анализ баз данных противников (HME, IED, TTPs);
Геолокация целей;
Поддержка для военных операций.

Кибернетическая безопасность
В рамках OSINT обеспечивается поддержка процессов
обеспечения кибербезопасности, в частности, могут быть даны ответы на такие вопросы из области защиты телекоммуникационных сетей посредством получения информации:





Кто атакует вашу организацию?
Каковы их мотивы?
Как они организованы?
Какие инструменты используют?

Бизнес
OSINT в бизнесе включает в себя коммерческую разведку,
интеллектуальную разведку и бизнес-аналитику, и часто является основной областью практики частных разведывательных агентств.
Предприятия могут использовать информационных брокеров и частных следователей для сбора и анализа соответствующей информации для деловых целей, которые могут
включать в себя средства массовой информации, глубокую
сеть, веб нового поколения и коммерческий контент.

1.4.3. Технологии OSINT
OSINT – это очень разнообразная форма сбора и анализа
информации. При работе OSINT часто следует принимать
меры предосторожности при сборе информации из Интернета. Это может быть сделано в форме использования VPN для
анонимности и незаметного сбора информации, проксисерверов в распределенной сетевой среде. Оценка источни26

ков становится важной для общего процесса сбора и анализа
OSINT. Аналитик OSINT нуждается в интеллектуальном анализе для выявления истинного или ложного процесса, который повлияет на прогнозирование будущего. Наконец, аналитики должны найти использование оценочного анализа для
того, чтобы его результаты можно было включить в готовый
классифицированный, неклассифицированный или запатентованный интеллектуальный продукт.
Сбор информации в OSINT, как правило, отличается от
сбора данных в других разведывательных дисциплинах, где
получение необработанной информации, подлежащей анализу, может быть основной трудностью. В OSINT основной
трудностью является определение релевантных, надежных
источников из огромного количества общедоступной информации.

Этапы OSINT
Процесс OSINT состоит из четырех этапов: планирования, подготовки, сбора и производства конечного материала –
аналитики и четырех основных процессов: анализа, добычи и
накопления разведданных, оценки и распределения по
направлениям. Процесс ведения разведки, также как и процессы подготовки ответных информационных операций (планирование, подготовка, выполнение и подведение итогов),
пересекаются и повторяются в соответствии с требованиями
практики.
Как указано в «Инструкции по ведению разведки в полевых условиях», OSINT повышает эффективность и оказывает поддержку процессу ведения разведки и других операций.
На Рис. 2 представлена типовая схема процесса ведения
OSINT.
Сбор разведданных синхронизируети интегрирует процессы планирования, использования сил и средств, обработки и
распределения элементов системы для поддержки боевых
операций, что является объединенной разведывательной и
оперативной функцией.
После анализа, информация, полученная из различных источников, становится разведданными, которые содержат не27

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

Рис. 2 – Типовая схема процесса ведения OSINT: План  Подготовка  Сбор  Производство. Общие знания разведки.
Оценка. Распространение [APT, 2012]
Установлено, что такие элементы структуры OSINT, как
постоянный поток информации, технические средства, программное обеспечение, безопасность средств коммуникации и
базы данных охватывают средства:






обеспечения доступности разведывательных данных. Обеспечение доступности разведданных является процессом, благодаря которому разведывательные организации активно и быстро получают
доступ к разведданным;
разработки и ведения автоматизированной сети
разведки. Главной задачей является предоставление
информационных систем, которые обеспечивают
связь, совместный анализ и обработку, распространение материалов и создание условий доступности
разведывательных данных;
создания и поддержания доступа. Эта задача влечет
за собой установление, обеспечение и поддержание
доступа к секретным и несекретным программам,
базам данных, сетям, системам и другим Интернет
ресурсам для войск союзных государств, объеди28



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

1.4.4. Международный опыт
Ведение разведки в открытых источниках повышает
эффективность деятельности всего разведывательного сообщества, начиная национальным и заканчивая тактическим
уровнями. Ниже приводится список некоторых организаций,
которые занимаются в США добычей, накоплением, использованием, анализом, распространением информации из открытых источников.



Совет по защите открытых источников (DOSC);
Командование разведки и безопасности ВС США
(INSCOM);
 Служба разведывательной информации Департамента сухопутных войск (DA IIS);
 Директор национальной разведки центра открытых
источников (DNI OSC);
 Академия открытых источников;
 Департамент передовых систем (ASD);
 ФБР;
 Федеральный
научно-исследовательский
отдел
(FRD), библиотека Конгресса.
Наряду с широким применением OSINT в США, приведем еще примеры применения этой технологии в других
странах.
Служба внешней разведки Германии, Федеральная разведывательная служба, также использует преимущества Open
Source Intelligence в подразделениях Abteilung Gesamtlage/FIZ
и Unterstützende Fachdienste (GU).
В Австралии экспертом по открытым источникам является Управление национальных оценок (Office of National
Assessments), которое является одной из разведывательных
29

госструктур. В Великобритании существует информационная
служба BBC Monitoring, сосредоточенная на сборе открыто
доступной информации силами журналистов. Анализом же
собранных в BBC данных занимаются подписчики этого сервиса, в том числе и сотрудники секретных британских спецслужб.

30

2. Компьютерные технологии конкурентной
разведки
Компьютерная конкурентная разведка использует в своем арсенале различные средства, наиболее развитыми из которых
являются
специализированные
информационноаналитические системы. Схема работы типовой информационно-аналитической системы компьютерной конкурентной
разведки (ИАС ККР) приведена на Рис. 3.

Рис. 3 – Схема работы типовой ИАС ККР

Информационно-аналитическая система компьютерной
конкурентной разведки включает следующие компоненты:


комплексы контент-мониторинга информации из
открытых сетей (веб-пространства, социальных, пиринговых сетей и т.п.);
31



средства экстрагирования понятий (компаний, персон, событий и т. п.) из полнотекстовых документов;
 средства выявления и визуализации информационных связей, выявления аномалий, неочевидных закономерностей;
 средства формирования аналитических документов,
которые предоставляются лицам, принимающим
решения (ЛПР).
Содержательная часть, информационная база информационно-аналитической системы конкурентной разведки
формируется комплексом контент-мониторинга. Особенности
современных комплексов контент-мониторинга заключаются
в том, что они должны охватывать огромные объемы информации из динамически возрастающих информационных потоков в сетях при наличии шумовой информации, большой
части слабодоступных ресурсов, так называемого «скрытого
Интернета». В некоторых случаях реализация этого комплекса
может быть передана так называемым «процессорам сбора
данных», компаниям которые занимаются целенаправленным
сбором больших объемов информации из социальных медиа
по требованиям заказчиков.
Формирование базы данных (БД) ИАС ККР происходит
путем подключения к сети Интернет и сбора (по определенным критериям и аккунтамы) информации из определенных
информационных ресурсов (приведенный ниже список может
расширяться):
Веб-сайты;
Блоги:
Twitter;
Livejournal.
Социальные сети:
Facebook;
Instagram;
LinkedIN
Reddit
Medium.
Видеосервисы:
YouTube;
RuTube.
32

Мессенджеры:
Telegram;
Viber.
Кроме того, должна быть предусмотрена возможность
настройки администратором комплекса контент-мониторинга
ИАС ККР модулей автоматического сканирования и первичной обработки, а при необходимости создания служебных
аккаунтов, через которые будет организован доступ к определенным информационным ресурсам.
С помощью комплексов контент-мониторинга в рамках
конкурентной разведки, как правило, решаются следующие
задачи:







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

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






целеуказание, планирование, определение источников информации;
сбор, добывание данных;
обработка разведывательных данных (разведданных) – превращение их в разведывательную информацию;
анализ и синтез разведывательной информации –
превращение ее в знания – выводы, рекомендации,
решения;
доведение информации до конечных потребителей.
33

Следует также отметить некоторые ключевые особенности указанных выше этапов, a именно:
 целеуказание и планирование целесообразно делить
на три уровня – стратегический, тактический и
оперативный;
 на этапе сбора информации крайне важно задействовать как можно большее количество независимых и первичных источников;
 процесс обработки данных предполагает учет, классификацию, отбор, верификацию и оценку добытых
сведений;
 разведовательный цикл, в некоторых случаях может
не требовать глубокой проработки, например, в
условиях ограниченного времени, может быть не
полным и заканчиваться выдачей потребителям не
знаний в виде окончательных выводов, рекомендаций или проектов решений, а просто обработанной
информации в виде информационных справок;
 в разведывательном документе не должно быть ссылок на конфиденциальные источники информации,
поскольку это может привести к их расшифровке;
 выводы и рекомендации должны быть четкими,
краткими и однозначными, а прогнозы носить вероятностный характер;
 доведение информации до конечных потребителей
должно быть в виде, адаптированном к восприятию
заказчика и форме, легко доступной их пониманию
(любопытно заметить, что ЦРУ, например, предоставляло президенту США Р. Рейгану ежедневную
информацию в виде видеофильма, который снимали каждый день, поскольку бывший киноактер воспринимал такую подачу информации более адекватно).
Итак, открытые источники являются наиболее доступным
каналом информации, при их использовании возрастает объективность добываемой информации, однако, резко возрастают трудозатраты на извлечение нужной информации. Следовательно, в компьютерной конкурентной разведке должны
34

применяться специализированные методики и системы. Такие специализированные методики и системы создавались
учеными в интересах спецслужб на протяжении многих лет,
как на Западе, так и в бывшем Советском Союзе. Перевод в
последние 10–20 лет значительного объема мировой информации из бумажного вида в электронный, широкое использование и рост объемов сети Интернет, современные информационные технологии сделали конкурентную разведку в Интернете одним из самых перспективных направлений разведывательной деятельности. Тот факт, что так поступают
практически все спецслужбы мира, лишь подтверждает перспективность этого направления.
Для поиска и сбора информации в компьютерных сетях в
интересах разведки по всему миру используются специальные
мониторинговые системы сбора данных, процессоры сбора
данных, которые используют специальные программные комплексы (на компьютерном сленге их называют «роботами» или
«пауками»). Программа-робот сама обходит по заданному
графику указанные адреса (URL) в сети Интернет, скачивает
с них данные, а затем извлекает из них нужную информацию, используя целый арсенал средств лингвистического, семантического и статистического анализа. Такие программные
комплексы автоматически перехватывают любую поставленную на мониторинг информацию, как только она появится в
доступном сегменте Сети.
При организации компьютерной конкурентной разведки
широкое распространение получило использование направления науки, возникшего на стыке искусственного интеллекта,
статистики и теории баз данных, как Knowledge Discovery
(обнаружение знаний), использующего концепции Data Mining
(глубинный анализ формализованных данных) и Text Mining/Information
Extracting
(глубинный
анализ
текстов/извлечение знаний из информации). Уникальными особенностями этих концепций и технологий является то, что с
их помощью можно добывать из «сырых» данных ранее неизвестные, неочевидные, полезные на практике и доступные
для интерпретации знания, необходимые для принятия решений в различных сферах деятельности. Такие технологии
35

применялись в основном в специальными службами. Одним
из первых рассекреченных подобных комплексов стала
французская система «TAIGA» (Traitement Automatique de
l’Information Geopolitique d’Actualite – автоматическая система
обработки актуальной геополитической информации) [Доронин, 2003]. Этот программный комплекс на протяжении 11
лет использовался в интересах французской разведки, после
чего был заменен более современным, рассекречен и разрешен к коммерческому использованию. Новый более совершенный комплекс Noemic, поставленный на вооружение
французской разведки, способен обрабатывать информацию
со скоростью более 1 миллиарда знаков в секунду. Американский аналог этих программных комплексов Topic, что в переводе значит «Тема», также уже рассекречен и передан для
коммерческого использования.
Аналогичные аналитические системы создавались в бывшем СССР, в частности в России. Достаточно вспомнить такие известные системы ФАПСИ, как «Барометр», «Эльбрус».
Они занимались обработкой российской и зарубежной прессой, статистической и оперативной информацией.
Создание и использование таких систем продолжается.
Так, например, система Radian 6 (www.radian6.com) предназначена для отслеживания в реальном времени упоминаний в
социальных сетях брендов с учетом тональности и для участия в происходящих обсуждениях. Другая система – Alterian
SM2, позволяет также отслеживать упоминания брендов, а
также локализовать места обсуждений и определять демографические характеристики пользователей социальных сетей.
По состоянию на 2021 год ведущими системами являются
ActivTrak, ChartMogul, Cluvio, Databox, Matomo Analytics,
Metabase, Tableau (https://blog.capterra.com/top-8-free-andopen-source-business-intelligence-software/). В Украине также
созданы
и
развиваются
десятки
информационноаналитических систем конкурентной разведки, речь о которых пойдет ниже.
На первый взгляд может показаться, что все перечисленные примеры – это системы, которые либо используются государственными структурами, либо слишком дороги, чтобы их
36

могли использовать «среднестатистические» компании. На
самом деле все не совсем так. На современном рынке представлен целый ряд, как западных коммерческих продуктов,
так и отечественных продуктов, способных в том или ином
объеме выполнять подобные задачи в интересах конкурентной разведки коммерческих структур.

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








средства поиска информации на отдельных сайтах;
подборки ссылок, каталоги;
поисковые системы;
метапоисковые системы;
системы мониторинга и контент-анализа;
экстракторы объектов, событий и фактов;
системы Knowledge Discovery, Data Mining, Text Mining;
 специализированные системы конкурентной разведки;
 интегрированные системы.
Все каталоги, поисковые системы и метапоисковые системы являются веб-сайтами со специализированными базами данных, в которых хранится информация о других вебсайтах и документах, хранящихся на них. По запросу к таким
системам выдается список гиперссылок, а иногда и краткое
описание документов (сниппеты). Как правило, поиск может
производиться по ключевым словам и фразам. Активизируя
37

на гиперссылку, найденную в результате запроса, пользователь попадает на оригинал документа. Естественно, что если
документ со временем изменился или веб-сайт прекратил свое
существование, то и первоначально заиндексированный поисковой системой документ через некоторое время может
быть не найден.
Основное отличие поисковых систем от каталогов – наличие автоматического «робота», постоянно сканирующего вебпространство и накапливающего новую информацию в индексных файлах базы данных. В каталоги информация как
правило заносится вручную – либо владельцами сайтов, либо
обслуживающим персоналом самих каталогов. Пользование
такими системами, как правило, бесплатное.
Метапоисковые системы являются системами, интегрирующими результаты поиска разными поисковым системам.
Так как отдельные поисковые системы различным образом
индексируют различные сегменты Сети, то, естественно, и
результат поиска с помощью метапоисковой системы будет
более полным, чем с помощью одной отдельно взятой поисковой системы. Вторым поисковым преимуществом таких систем является то, что одним запросом обеспечивается поиск
во многих поисковых системах, не требуя многочисленных
повторений одного и того же запроса.
Системы мониторинга обеспечивают регулярный поиск и
«скачивание» информации по заданным темам и с заданных
сайтов, а также анализ содержания «скачанных» документов.
Такие системы, как правило, обладают развитым языком запросов, что позволяет существенно детализировать и конкретизировать запросы по сравнению с обычными поисковыми
системами. Кроме того, такие системы хранят в своих базах
данных полные тексты исходных документов, что обеспечивает сохранность этих документов во времени и возможность
их обработки и контент-анализа, как в текущем времени, так
и в ретроспективе. Существенным преимуществом таких систем является также то, что сложные запросы, состоящие из
десятков или сотен поисковых слов и выражений, однажды
составленные аналитиком-экспертом, могут быть сохранены в
виде каталогизированного запроса или рубрики и в дальнейшем вызываться автоматически или вручную из сохраненного списка для проведения поиска или анализа.
38

С помощью контент-анализа такие системы позволяют
устанавливать пересекающиеся связи между темами, понятиями и объектами, поставленными на мониторинг, выявлять
эмоциональную окраску документов, проводить анализ динамики появления во времени тех или иных документов, проводить сравнительный анализ информационной активности по
различным тематикам и многое другое.
Если мониторинговые системы как системы фильтрации
могут выделять из информационного потока известные объекты, то экстракторы объектов, событий и фактов умеют выделять из потока информации объекты, неизвестные заранее,
события или факты, которые лишь соответствуют определенному заранее типу, например, географические понятия, персоны, структуры и организации, события (дорожнотранспортные происшествия, катастрофы, международные
встречи). При этом факты могут классифицироваться как
обычные или необычные. Примером обычного факта в данном случае можно считать выезд автомобилей за черту города, а примером необычного факта – выезд за ту же городскую
черту автомобиля без номерных знаков.
Системы типа Knowledge Discovery, технологии Data
Mining и Text Mining, умеют выявлять новые знания и закономерности. Такая система, например, может самостоятельно, без участия человека, сделать вывод о факте знакомства
между людьми, основываясь на имеющихся в системе данных
об окончании ими одной и той же школы и одного итого же
класса в одном и том же населенном пункте. Правда, сами
правила, по которым такая система делает выводы, все-таки
создаются и задаются пока что людьми.
Специализированные системы для конкурентной разведки могут включать в себя одно или несколько из перечисленных выше поисковых средств, приспособленных под эти специфические задачи. Кроме того, потребности конкурентной
разведки предполагают использование в качестве источников
информации, кроме полнотекстовых документов, еще и доступных в сети Интернет баз данных, собственных, принадлежащих компании, документов, таблиц и баз данных, а также формализованных и неформализованных документов и
БД, добытых из других источников.
39

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


единое информационное пространство взаимосвязанных концептов – объектов и фактов независимо
от типа их источников или контента;
 сохранение связей концептов с релевантными данными и источниками информации;
 исторически-пространственная модель банка данных системы, которая предполагает наличие у всех
объектов учета атрибутов времени и места.
Справедливости ради следует отметить, что, согласно отчетам Fuld’s Intellgence Software Report, известных коммерческих версий полноценных интегрированных систем, позволяющих решать весь комплекс задач конкурентной разведки,
пока не существует, по крайней мере, на Западе.
По мнению эксперта в области разведки А. Масаловича,
из 23 видов поисковых задач, интересующих аналитика
спецслужб традиционные поисковые системы удовлетворительно решают лишь одну. Поисковые системы отлично
40

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


выдача поисковых систем либо перегружена тысячами бесполезных ссылок, либо наоборот недостаточна;
 информация в сети Интернет не хранится долго, необходимую информацию, присутствующую на целевом сайте месяц назад, сегодня можно там не обнаружить;
 поисковая система не сохраняет просмотренные
аналитиком ссылки и ему каждый раз приходиться
начинать рутинную работу с нуля после вынужденного перерыва;
 поисковая система не всегда отличает действительно важную информацию от информационного шума;
 поисковая система не всегда способна обобщать или
сравнивать информацию по смыслу или другим содержательным критериям;
 поисковые системы не охватывают некоторые вебресурсы или отдельные виды информации (например, информацию из баз данных), а некоторые вебресурсы, наоборот, всегда показываются на первых
страницах выдачи, хотя их содержание не интересно авторам запросов;
 поисковые системы могут выполнять поиск информации только по непосредственно введенному запросу и не всегда могут повторять их автоматически в заданное время без участия пользователя.
По оценкам экспертов [Кузнецов, 2006] значительную
часть критичной для бизнеса информации из сети Интернет
41

невозможно найти с помощью традиционных информационно-поисковых систем. Точнее сетевые информационнопоисковые системы не в полной мере справляются с задачами
конкурентной разведки. Поэтому разрабатываются специализированные системы, ориентированные на задачи сетевой
аналитики, конкурентной разведки. Список таких общедоступных
систем,
например,
приведен
по
адресу
(http://hrazvedka.ru/category/poisk_soft). Приведем описание
некоторых из них:
Website-Finder (www.softpedia.com) – программа, которая
дает возможность поиска веб-сайтов, плохо индексируемых
поисковой системой Google. Для каждого запроса выдается 30
результатов. Программа проста в использовании, есть бесплатна версия.
Global
Supplier
Directory
by
Solusource
(www.worldindustrialreporter.com/solusource) – веб-интерфейс
для конкурентной разведки от компании Thomas. Позволяет
найти информацию, имеющуюся в ретроспективных базах
данных Thomas (охват – более 100 лет) по компаниям, продуктам и отраслям.
dtSearch (www.dtsearch.com) – поисковая программа,
позволяющая обрабатывать терабайты текста, как на локальном диске, так и в сетевом окружении. Поддерживает статические и динамические данные. Позволяет искать во всех
форматах MS Office.
InfoNgen (www.infongen.com) – агрегатор, охватывающий
в режиме просмотра свыше 35 тысяч онлайновых источников, легко настраиваемый на уникальные темы. Объединяет
мониторинг, фильтрацию и агрегацию информации по запросам конкретного пользователя. Предоставляет информацию
на восьми языках, обеспечивает перевод на английский язык.
Sentinel Vizualizer (www.fmsasg.com) – одна из лучших в
мире программ по визуализации связей и отношений Sentinel Vizualizer.
Web Content Extractor (newprosoft.com) – ―Web Content
Extractor‖ является наиболее мощным, простым в использовании программное обеспечение извлечения данных из вебсайтов.
Screen-Scraper (screen-scraper.com) – позволяет автоматически извлекать всю информацию с веб-страниц, скачи42

вать подавляющее большинство форматов файлов, автоматически вводить данные в различные формы. Работает под всеми основными платформами, имеет полнофункциональную
бесплатную и очень мощные профессиональные версии.
Attackindex (attackindex.com) – система, позволяющая
дать ответы на вопросы: ведется ли против пользователя информационная атака или произошел естественный всплеск
интереса к событию; когда началась информ операция,
насколько она интенсивна и масштабна; какие сайты и аккаунты в соцсетях используются для атаки; кто стал инициатором информационной операции и как связаны еѐ участники
(Рис. 4).

Рис. 4 – Фрагмент страницы сайта Attack Index (attackindex.com)

Photoinvestigator (photoinvestigator.co) – сервис для извлечения метаданных и другой информации из фотографий.
Visual.ly (visual.ly) – система поиска инфографики в вебпространстве.
CIRadar (www.ciradar.com/Competitive-Analysis.aspx) –
коммерческая англоязычная система поиска информации для
43

конкурентной разведки в «глубинном» веб. Реализована как
веб-сервис.

2.2. Мониторинг информационного пространства
Современные методы контент-мониторинга – это адаптация классических методов контент-анализа и глубинного анализа текстов (Text Mining) к условиям формирования и развития динамических информационных массивов, например,
потоков информации из сети Интернет. Первая типовая задача контент-мониторинга – построение диаграмм динамики
появления понятий (отражения событий) во времени.
На примере рынка нефтепродуктов рассмотрим, как из
массивов текстовой информации из сети Интернет могут
быть выявлены документы, содержащие максимальное количество ценовой информации по данному рынку.
Рассмотрим, как в
системе
контент-мониторинга
InfoStream [Григорьев, 2007] отслеживаются публикации, относящиеся к российско-украинскому газовому кризису 2008–
2009 годов. Для этого был составлен запрос «газов~криз &
geo.UA», введенный через веб-интерфейс системы.
На появившейся после отработки запроса диаграмме
видно, что пик кризиса пришелся на середину января 2009
года (Рис. 5) и был связан с подписанием соответствующего
договора в Кремле и реакцией на это Секретариата Президента Украины (Рис. 6).
Кроме того, можно перейти в режим «Сюжеты», в котором
предусмотрена кластеризация результатов поиска с учетом
весовых критериев, что позволяет выдавать пользователю
лишь наиболее весомые цепочки документов. Поэтому обеспечивается достаточно высокий уровень соответствия выдаваемых документов и потребности, выраженной запросом.
Для получения списка основных сюжетов, относящихся к
рынку нефтепродуктов, был введен запрос «(нефтепродукт|бензин) & цены», который уточнялся специальными
признаками «numb.medium|numb.large», означающие в системе InfoStream средний или высокий уровень присутствия в
документах цифровой информации (Рис. 7). После этого достаточно перейти в режим просмотра и проанализировать
документы, ссылки на которые выданы системой (Рис. 8).
44

Рис. 5 – Диаграмма динамики понятия во времени

Рис. 6 – Основная сюжетная цепочка по запросу

45

Рис. 7 – Фрагмент цепочки основных сюжетов

Рис. 8 – Документ с ценовой информацией

2.3. Text Mining, Information Extraction
Задача, которую необходимо постоянно решать при проведении конкурентной разведки – автоматическое извлечение
46

понятий и фактов из формализованных массивов информации (таблиц, БД) и неструктурированных текстов, представленных в веб-пространстве, выявление глубинных связей
между отдельными понятиями. Для этого предполагается использование в системах конкурентной разведки технологий
Knowledge discovery, концепции глубинного анализа данных и
текстов (Data Mining, Text Mining).
Важная задача технологии Text Mining связана с извлечением из текста его характерных элементов или свойств, которые могут использоваться в качестве метаданных документа,
ключевых слов, аннотаций. Другая задача заключается в отнесении документа к некоторым категориям из заданной заранее схемы классификации. Text Mining также обеспечивает
новый уровень семантического поиска документов.
Согласно сложившейся в настоящее время методологии, к
основным элементам Text Mining относятся [Ландэ и др.,
2009]:
классификация
(Classification),
кластеризация
(Clustering), построение семантических сетей, извлечение
фактов,
понятий (Feature Extraction),
реферирование
(Summarization), ответы на запросы (Question Answering), тематическое индексирование (Thematic Indexing) и поиск по
ключевым словам (Keyword Searching). Также в некоторых
случаях этот набор дополняется средствами поддержки и создания таксономии (Taxonomies), тезаурусов (Thesauri) и онтологий (Ontology).
При классификации текстов используются статистические корреляции для создания правил размещения документов в определенные категории. Задача классификации – это
классическая задача распознавания, где по некоторой контрольной выборке система относит новый объект к той или
иной категории. Особенность же концепции Text Mining заключается в том, что количество объектов и их атрибутов
могут быть очень большими – предусматривается применение
интеллектуальных механизмов оптимизации процесса классификации.
Кластеризация базируется на признаках документов,
применении лингвистических и математических методов без
использования заданных заранее категорий. Результатом кластеризации может быть таксономия или визуальная карта,
которая обеспечивает эффективный охват больших объемов
47

данных. Кластеризация в Text Mining рассматривается как
процесс выделения компактных подгрупп объектов с близкими свойствами. Средства кластеризации позволяют находить
признаки и разделять объекты по подгруппам на базе этих
признаков. Кластеризация, как правило, предшествует классификации, поскольку позволяет определить группы объектов.
При построении семантических сетей предполагается
анализ связей между понятиями, экстрагируемыми из документов. Понятиям соответствует появление определенных
дескрипторов (ключевых фраз) в документах. Связи между
понятиями могут устанавливаться в простейшем случае путем
учета статистики их совместного упоминания в различных
документах.
Извлечение или экстрагирование фактов (понятий) предназначено для получения некоторых фактов из текста с целью
улучшения классификации, поиска, кластеризации и построения семантических сетей.
Автоматическое
реферирование
(Automatic
Text
Summarization) [Хан, 2000] – это составление кратких изложений материалов, аннотаций или дайджестов, т.е. извлечение наиболее важных сведений из одного или нескольких документов и генерация на их основе лаконичных, понятных и
информационно наполненных отчетов.
На основе методов автоматического реферирования возможно формирование поисковых образов документов. По
автоматически построенным аннотациям больших текстов –
поисковым образам документов – может проводиться поиск,
характеризуемый высокой точностью (естественно, за счет
полноты). В некоторых случаях вместо поиска в полных
текстах массива больших по размеру документов оказывается
целесообразным поиск в массиве специально созданных аннотаций. Хотя поисковые образы документов часто оказываются образованиями, лишь отдаленно напоминающими исходный текст, не всегда воспринимаемый человеком, но за
счет вхождения наиболее весомых ключевых слов и фраз, они
помогают приводить к вполне адекватным результатам при
проведении полнотекстового поиска.
Уникальными особенностями концепции и технологий
Text Mining, является то, что с их помощью можно извлекать
48

из «сырых» данных неочевидные, полезные на практике и
доступные для интерпретации знания, необходимые для принятия решений в различных сферах деятельности, в том числе в области экономической конкуренции.
На современном рынке представлен целый ряд, как западных продуктов, так и систем производства постсоветских
стран, способных в той или иной объеме осуществлять глубокий анализ текстов.
В последнее время все основные западные бренды, специализирующиеся на разработке информационных хранилищ
и баз данных, корпоративных систем управления расширили
свои линейки продуктов системами или модулями Text
Mining. О наличии таких модулей заявляют SAP, Oracle, SAS,
IBM и другие компании.
Процесс конкурентной разведки можно рассматривать
как построение сети из исследуемых объектов и связей меду
ними. Результаты должны представлять собой аналитическую
информацию, которая может быть использована для принятия решений. Аналитическая информация может быть представлена в виде наглядных схем – семантических сетей, дайджестов, наборов сюжетных линий, взаимосвязей ключевых
понятий, компаний, лиц, технологий и т.п.
Задачи конкурентной разведки породили спрос на специальные информационные технологии, обеспечивающие
возможность извлечения и обработки необходимой информации, что в свою очередь вызвало поток предложений систем
со стороны разработчиков программного обеспечения.
Сегодня решать задачи конкурентной разведки на основе
информации из сети Интернет помогают общедоступные и
специальные программы и сервисы, например, в последнее
время приобрели популярность так называемые «персонализированные разведпорталы», способные отбирать информацию по самым узким, специфическим вопросам и темам и
предоставлять ее заказчикам.
В настоящее время декларированы технологии и системы
«компьютерной конкурентной разведки», идея которых заключается в автоматизации и ускорении процессов извлечения необходимой для конкурентной борьбы информации из
открытых источников и ее аналитической обработки.
49

При ведении конкурентной разведки находят все более
широкое применение новые направления науки и технологий,
получившие названия: «управления знаниями» (Knowledge
Management) и «обнаружение знаний в базах данных»
(Knowledge Discovery in Databases) или иначе, Data и Text
Mining – «глубинный анализ данных или текстов».
Если системы управления знаниями реализуют идею сбора и накопления всей доступной информации, как из внутренних, так и из внешних источников, то Data и Text Mining,
как уже было показано, позволяют выявлять неочевидные
закономерности в данных или текстах – так называемые латентные (скрытые) знания. В целом эти технологии еще определяют как процесс обнаружения в «сырых» данных ранее
неизвестных, но полезных знаний, необходимых для принятия
решений. Системы этого класса позволяют осуществлять анализ больших массивов документов и формировать предметные указатели понятий и тем, освещенных в этих документах.
Характерная задача конкурентной разведки, обычно
включаемая в системы Text Mining – это нахождение исключений, то есть поиск объектов, которые своими характеристиками сильно выделяются из общей массы.
Еще один класс важных задач, решаемых в рамках технологии Text Mining – это моделирование данных, ситуационный и сценарный анализ, а также прогноз [Ланде, Фурашев,
2012].
Для обработки и интерпретации результатов Text Mining
большое значение имеет визуализация. Часто руководитель
компании не всегда адекватно воспринимает предлагаемую
ему аналитическую информацию, особенно если она не
вполне совпадает с его пониманием ситуации. В связи с этим
служба конкурентной разведки должна стремиться представлять информацию в виде, адаптированном к индивидуальному восприятию заказчика.
Визуализация обычно используется как средство представления контента всего массива документов, а также для
реализации навигации по семантическим сетям при исследовании, как отдельных документов, так и их классов.

50

2.4. Модели предметных областей
Важной задачей конкурентной разведки является выявление неочевидных закономерностей и связей из текстов вебстраниц и выявление их взаимосвязей, построение матриц и
графов взаимосвязей.
Существующие доступные фактографические базы данных структурированной информации не всегда могут прийти
на помощь эксперту-аналитику. Для оперативного определения фактов и сущностей, моделирования информационных
связей между ними наиболее перспективным подходом оказывается учет информации, знаний, которые содержатся в
неструктурированных текстовых документах, в частности, в
Интернет.
Сегодня, когда практически у всех заинтересованных
пользователей уже накоплен большой опыт работы с традиционными информационно-поисковыми системами, оказалось
очевидным, что факты или понятия, которые ищутся с помощью таких систем, сами по себе зачастую бессмысленны.
Например, если пользователя интересуют информационные
связи Ощадбанка с другими банками или частными лицами,
то он не знает, какие банки или фамилии ему указать в запросе, а все документы, содержащие слово «Ощадбанк», указать физически невозможно. В таких случаях информационные связи, количество которых выходит за рамки статистического фона, как правило, отражают реальность.
Интерпретируют обычно не сами понятия или факты, а
взаимосвязи между ними. Важным оказывается не столько
исследование самих понятий, сколько исследование их взаимосвязи. Известно, что именно взаимосвязь способствует пониманию мотивационно-целевых особенностей, то есть пользователя интересует не понятие само по себе, а понятие в
окружении, чтобы сразу иметь представление о предметной
области, при необходимости направить уточняющий поиск в
нужном направлении. Подобные решения, реализованные в
виде «информационных портретов», содержащих опорные
слова, используются в таких системах, как InfoStream (infostream.ua), CyberAggregator.
База данных практически любой традиционной информационно-поисковой системы может рассматриваться в виде
графа, вершинами которого выступают объекты – термы,
51

понятия, дескрипторы и др., а ребрами – их связи. Вместе с
тем, основа поиска в этих случаях – поиск вершин, то есть
поиск объектов. Поиск по взаимосвязям, ребрам, кажется на
первый взгляд менее эффективным. Действительно, если
предположить, что в графе N вершин, то число ребер теоретически может составлять N(N – 1)/2, то есть, если предположить, что вершин всего 100 тыс., то ребер может оказаться
около 5 млрд., что соответствует достаточно большой базе
данных даже по современным понятиям. Вместе с тем, если в
качестве вершин графа использовать такие понятия, как
имена людей и названия компаний из новостных документов,
то оказывается, что соответствующая матрица инцидентности оказывается очень разреженной. Измерения показали,
что при количестве отдельных понятий, извлеченных из 5
млн. новостных документов, равном примерно N = 1,5 млн.,
количество связей составило всего лишь v = 4 млн.
Кроме того, как показали эксперименты, распределение
степеней вершин (степень вершины – количество исходящих
из нее ребер) в подобных графах – степенное, что свидетельствует о, так называемой, безмасштабности, то есть о том,
что многие характеристики (в частности, соотношение количества вершин и ребер), должно оставаться на одном уровне.
Поэтому в качестве основы построения базы данных связей
оказывается технически возможным использование ребер
рассматриваемого графа – связей между отдельными понятиями.
В качестве массивов документальной информации для
такой системы могут использоваться данные, поступающие от
систем контент-мониторинга, таких как InfoStream, Webscan
или «Яндекс.Новости» а также результаты мониторинга специализированных веб-служб, таких как базы данных биографий людей, организаций, служб трудоустройства и т.п.
Информационные взаимосвязи между понятиями выявляются путем обработки документальных массивов и, могут
храниться в специальной базе данных. Набор понятий, используемый при построении базы данных связей, формируется путем экстрагирования данных из доступного пользователю текстового массива, что придает системе целостность.
В корпоративной информационной инфраструктуре база
данных связей может использоваться различным образом,
52

например, отдельно, либо ее возможности могут быть дополнены возможностями существующих полнотекстовых и/или
фактографических баз данных (Рис. 9). При этом основным
результатом работы является построение так называемых
«карт связей», а в качестве побочного эффекта, реализующего
«режим доказательства», может рассматриваться извлечение
самих документов как источников связей.

Рис. 9 – Место базы данных связей понятий
в информационной инфраструктуре

При проектировании баз данных связей используются
перспективные решения в области создания информационноаналитических систем, в частности, теория и технологии глубинного анализа тестов – Text Mining, в том числе методы
экстрагирования информации (Information Extraction), технологии баз данных сверхбольших объемов (Big Data), концепция «сложных сетей» (Complex Networks).
В рамках теории сложных сетей изучаются характеристики, связанные с топологией сетей, но и статистические
феномены, распределение весов отдельных вершин (в каче53

стве которых можно рассматривать сущности, понятия, факты) и ребер, эффекты протекания и проводимости в сетях и
т.п.
На Рис. 10 схематически представлены возможные технологические этапы формирования базы данных связей [Ландэ,
Брайчевский, 2010].
С помощью программы-робота осуществляется сканирование выбранных веб-ресурсов, содержащих информацию,
относящуюся к объектам исследований.
После этого осуществляется экстрагирование необходимых пользователям понятий, например, наименований брендов, компаний, электронных адресов и т.п.

Рис. 10 – Схема формирования базы данныхсвязей

Отобранные понятия и соответствующие отношения между ними загружаются в базу данных связей, которая также
содержит ссылки на документы-первоисточники. Средства
экстрагирования понятий, как правило, ориентированы на
обработку документов, сканируемых из сети Интернет, представленных на различных языках.
54

Предложенный подход к поиску, естественно, влечет за
собой некоторые особенности в реализации архитектуры базы
данных связей понятий. В настоящее время наиболее популярной платформой для такой базы данных является графовая СУБД Neo4j. Кроме того, архитектура базы данных связей
должна быть ориентирована на такие возможные применения, как выявление неявных связей (не выявленных явно
комплексом экстрагирования понятий), поиск отдельных объектов, а также взаимосвязь с существующими фактографическими базами данных.
Можно назвать несколько систем, в которых частично реализован данный подход:
PolyAnalyst (www.megaputer.ru) – позволяет решать проблемы прогнозирования, классификации, группирования
объектов, проводить анализ связей, многомерный анализ и
интерактивное создание отчетов. Система PolyAnalyst (и ее
компонента – система TextAnalyst) обеспечивает лингвистический и семантический анализ текста, выявление сущности,
визуализацию связей, систематизацию документов, резюмирование и обработку запросов на естественном языке;
Sap Businessobjects Text Analysis (https://www.
sap.com/sapbusinessobjects) – программа, позволяющая извлекать информацию о десятках типах объектов и событий,
включая людей, географические названия (топонимы), компании, даты, денежные суммы, email-адреса и выявлять связи между ними;
Neticle
Text
Analysis
(https://neticle.com/
textanalysisapi/) – технология извлечения информации из неструктурированных текстов. Она позволяет выявлять информацию, содержащуюся в неструктурированном тексте и превращать ее в структурированные данные, имеющие связи,
которые могут быть проанализированы.
Вариант такой системы в настоящее время реализован и
используется в качестве компоненты системы конкурентной
разведки X-SCIF украинской компании «Информационная
корпоративная служба», которая позволяет пользователю в
онлайн-режиме получать карты связей для выбранных объектов и помогает интерпретировать результаты. Предусматривается, что пользователь вводит в качестве запроса объект.
Запрос направляется к базе данных связей, откуда выбира55

ются соответствующие ему фрагменты – карты связей (уровень детализации и временная ретроспектива должны указываться параметрически).
После выявления релевантных объектов и связей выполняются процедуры их автоматической группировки (кластеризации) и визуализации, результаты предъявляются пользователю в виде карт связей, которые представляются в виде
динамических (чаще всего, Java-диаграмм) графов связей.
В частности, в системе конкурентной разведки X-SCIF
граф связей строится с помощью апплетов Java и представляет собой графический объект, который содержит в своем
составе узлы и ребра. Каждый элемент графа связей имеет
контекстное меню, которое является дополнительным элементом управления в интерфейсе пользователя (Рис. 11).

Рис. 11 – Граф информационных связей понятия «Сбербанк России»

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

перемещение всего графа; перемещение объекта; изменение
конфигурации; подсветка связей выбранного узла и т.п.
На рис. 11 приведен пример использования базы данных
связей, случай, когда пользователя интересуют информационные связи Сбербанка России по состоянию на 2011 год.
Разумеется, для соответствующего запроса может быть выявлено множество различных связей, но при этом существует
простой и надежный критерий ранжирования результатов,
состоящий в отсечении статистического фона. В рассматриваемом случае, задав соответствующий запрос можно получить граф наиболее связанных со Сбербанком России объектов (персон и компаний). И если нахождение фамилий руководителей банка (председателя правления, первого заместителя председателя правления и руководителя дочернего банка) является достаточно очевидным результатом, то связи
между отдельными банками позволили выявить (после обращения к документам-первоисточникам) неочевидные на первый взгляд факты, например, то, что УкрСиббанк и
УкрСоцбанк являлись банками-партнерами.
Представленный подход может рассматриваться как основа построения так называемых «вертикальных» (предметноориентированных) информационно-поисковых систем, в которых изначально решены вопросы оперативности, отсеивания информационного шума. Рассматриваемая реализация
имеет свойство масштабирования по трем параметрам: объему баз данных, составу понятий, которые используются, и по
инфраструктурному окружению.
Анализируя связи в сети, можно определить многие неочевидные свойства, например, выявить наличие кластеров,
определить их состав, различия в связности внутри и между
кластерами, идентифицировать ключевые элементы, которые
связывают кластеры между собой и т.п. Серьезным препятствием при анализе является неполнота информации о связях
между отдельными узлами сети. Вместе с тем сегодня уже
существуют алгоритмы, с помощью которых становится возможным с высокой вероятностью восстановить отсутствующие фрагменты связей. Даже не имея полного описания информационной сети, можно получать репрезентативную выборку «реальных» связей и по ней достроить всю сеть. Пред57

ставленный подход реализует связующее звено между полнотекстовыми и фактографическими базами данных.

2.5. Концепция Big Data
2.5.1. Понятие Больших Данных
Термин Big Data появился как новый термин и логотип в
редакционной статье Клиффорда Линча, редактора журнала
Nature 3 сентября 2008 года, который посвятил целый специальный выпуск одного из самых знаменитых журналов теме ―что могут значить для современной науки наборы больших данных‖. В настоящее время этот термин уже прижился
и достиг пика своего использования. Здесь слово ―большие‖
было связано не столько с каким-то количеством, а с качественной оценкой. Время подтвердило справедливость выделения больших данных как отдельного феномена. Сегодня,
согласно исследованиям агентства Gartner термин Big Data
уже перешугнуло пик знаменитого гартнеровского Hype Cycle.
На Рис. 12 приведена статистика запросив пользователей к
системе Google по словосочетанию ―Big Data‖ (сервис Google
Trends, https://trends.google.com/).

Рис. 12 – Динамика запросов ―Big Data‖
58

В 2012 году в статье [Boyd, 2012] Даны Бойд и Кэт Крауфорд было сформулировано определение Big Data как культурного, технологического и научного феномена, включающего в себя: 1) Технология: максимизация вычислительно
мощности и сложности алгоритмов для сбора, анализа, связывания и сравнения огромных наборов данных. 2) Анализ:
изображение огромных наборов данных чтобы идентифицировать паттерны для того, чтобы делать экономические, социальные технические и юридические утверждения. 3) Мифология: всеобщая уверенность, что огромные наборы данных представляют более высокую форму знаний и сведений,
которые могут генерировать озарения, которые ранее были
невозможны и с ореолом верности, объективности и точности.
Согласно этому определению, большие данные – это термин, обозначающий множество наборов данных столь объемных и сложных, что делает невозможным применение
имеющихся традиционных инструментов управления базами
данных и приложений для их обработки. Проблему представляют сбор, очистка, хранение, поиск, доступ, передача, анализ и визуализация таких наборов как целостной сущности, а
не локальных фрагментов. В качестве определяющих характеристик для больших данных отмечают «три V»: объѐм (англ.
volume, в смысле величины физического объѐма), скорость
(англ. Velocity, означающее в данном контексте скорость
прироста и необходимость высокоскоростной обработки и
получения результатов), многообразие (англ. variety, в смысле
возможности одновременной обработки различных типов
структурированных и полуструктурированных данных). Ведущей характеристикой здесь является объем данных, который должен быть рассмотрен в аспекте приложений.
Почему объем данных превратился в проблему? По мере
того как компьютеры становились быстрее, а размер памяти
больше, рос и объем данных. На самом деле, рост данных даже опережал рост быстродействия компьютеров, а лишь немногие алгоритмы линейно масштабируются с ростом входных
данных. Короче говоря, данные растут быстрее, чем наша
способность их обрабатывать. Таким образом, объем данных
растет быстрее, чем обрабатывающие мощности. Отсюда вытекает ряд следствий.
59



Некоторые методы и приемы, хорошо зарекомендовавшие себя в прошлом, теперь нуждаются в пересмотре или замене, потому что не масштабируются
на современный объем данных.
 Алгоритмы не могут предполагать, что все исходные
данные умещаются в оперативной памяти.
 Управление данными само по себе становится нетривиальной задачей.
 Применение кластеров или многоядерных процессоров становится необходимостью, а не роскошью.
Современность демонстрирует нам примеры чудовищных размеров генерируемых сегодня оцифрованных данных.
Как утверждают гиганты ИТ индустрии (ЕМС, Cisco, IBM,
Google) в 2012 году в мире было сгенерировано 2 зетабайта (2
* 1021) или 2 тысячи экзабайтов или 2 тысячи миллиардов
гигабайтов информации, а в 2020 году эта величина достигнет 35 зетабайтов. Источниками этой лавины данных являются многочисленные цифровые устройства, концентрирующие и направляющие в бездонные просторы Интернета продукцию человеческого разума – твиты, посты в фэйсбуке и в
контакте, запросы в поисковые системы, и т.п., а также данные от сенсоров и контроллеров миллионов устройств, которые измеряют температуру и влажность, состояние дорог и
кондиционеров и много другого, что сегодня объединяется
термином ―Интернет вещей‖ IOT (Internet of Things). Однако
этому препятствует не только проблема количества – объем
данных первая ―V‖. Для больших данных, как было уже отмечено важна вторая ―V‖- скорость. Результаты
обработки
больших данных должны быть получены за время, определяемое решаемой с их помощью проблемы. Это даст возможность превратить аналитику больших данных из инструмента, отвечающего на вопрос ―кто виноват?‖, характерного для
традиционных систем аналитики, в инструмент для получения ответов ―что делать?‖. Аналитик в этом случае из врача
патологоанатома превращается в терапевта. Скорость доступа к данным, скорость их процессинга является важным
критерием качества технологий, входящих в большие данные.
Наконец третья ―V‖ – разнообразие данных говорит о
том, что большие данные должны эффективно обрабатываться независимо от их структурированности. Здесь приня60

то выделять три основных вида данных по степени их структурированности.
Первый уровень – это привычные структурированные
данные, которые могут быть представлены отделимыми и
заранее определенными полями, в которых находятся биты,
имеющие различную семантику. Например, все таблицы
имеют в определенном поле заданной длины заголовки, в
другом заранее заданном поле – один из фактов, в другом
поле – другой из фактов, определяющих числовые или текстовые значения семантических переменных, содержащихся в
заголовках.
Структурированные данные хорошо хранить в реляционных базах данных и управлять такими данными удобно,
используя специальный язык SQL – Structured
Query
Language. Несмотря на свою распространенность такие данные определяют только в 10 % от всего объема сгенерированных данных.
Второй
уровень

это
полуструктурированные
(semistructured) данные. Данные такого типа имеют структурные разделители, но не могут быть представлены в виде
таблицы из-за отсутствия части атрибутов у разных данных.
Примером таких данных могут служить файлы в формате
SGML – Standard Generalized Markup Language или BibTex в
которых нет определенной схемы хранения данных, но семантический смысл различных элементов данных может быть
определен по анализу самого файла. Иногда такие данные
определяют как допускающие самоописание. Многие данные
хранящиеся в Web относятся к
полуструктурированным,
данные библиографических описаний публикаций, научные
данные.
Наконец, неструктурированные данные, которые по
определению не могут подойти под ранее описанные виды. В
них входят тексты, записанные символами различных языков, записи звуков, неподвижные изображения, видеофайлы,
сообщения электронной почты, твиты, презентации и другая
бизнес-информация вне выгрузок баз данных. Считается,
что от 80 до 90 процентов всех данных в организациях относятся к неструктурированным данным. Нередко к неструктурированным относят и введенные выше полуструктурированные данные. Иногда шкалу разнообразия расширяют,
61

используя целую шкалу от структурированных данных к полностью неструктурированным. Будем считать
показатель
вариативности данных нулевым для полностью неструктурированных данных и возрастающим до единицы для хорошо
структурированных из реляционных баз. По мнению участников Всемирного экономического форума 2012 года в Давосе, те, кто оседлает тему интеллектуального анализа больших данных, станут хозяевами информационного пространства. Этой теме был посвящен специальный доклад на Форуме
«Большие данные – большое влияние». Ключевой вывод доклада – цифровые активы становятся не менее значимым
экономическим активом, чем золото или валюта. Исследования,
проведенные
профессором
Бринйолфсоном
(E.Brynjolfsson) и двумя его коллегами в 2012 году, показали,
что анализ и прогнозирование на основе больших данных
берется на вооружение корпоративной Америкой. Они изучили 179 крупных компаний и обнаружили, что те из них, кто
взял в последние год- полтора на вооружение интеллектуальный анализ больших данных получил немедленное улучшение
экономических показателей на 5-6%. В настоящее время потребности общества делают необходимым появление специалистов по большим данным в форме отдельной профессии.
Название этой профессии Data Scientist – исследователь данных. В США произвели оценку потребностей в специалистах
такой профессии и пришли к выводу, что уже в 2018 году в
США будет нехватка исследователей данных в количестве
190 000 человек! Известный журнал Harvard Business Review
так озаглавил один из своих выпусков: ―Data Scientist: The
Sexiest Job Of the 21st Century‖ – исследователь данных – самая привлекательная работа 21 столетия.

2.5.2. Техники больших данных
Сначала перечислим те функциональные операции над
данными, методы их хранения и обработки. Разумеется, этот
список не исчерпывает всего многообразия динамично развивающихся техник, однако позволяет увидеть, что можно
делать с большими данными для достижения целей, стоящих
перед исследователем.
 Консолидация данных;
 Классификация, кластеризація;
62




Машинное обучение;
Визуализация.

Консолидация данных
Этот целый набор техник, направленных на извлечение
данных из разных источников, обеспечение их качества, преобразования в единый формат и загрузку в хранилище данных – ―аналитическую песочницу‖ (analytic sandbox) или «озеро данных» (data lake). Техники консолидации данных различаются по виду аналитики выполняемой системой :
 Пакетная аналитика (batch oriented);
 Аналитика реального времени (real time oriented);
 Гибридная аналитика (hybrid).
При пакетной аналитике периодически производится
выгрузка данных из различных источников, данные анализируются на наличие сбойных фрагментов, шума и производится их фильтрация. При выполнении аналитики реального
времени данные производятся источниками непрерывно и
образуют набор потоков данных. Анализ этих потоков и своевременное получение результатов в заданном темпе требуют
обеспечить асинхронное получение данных в виде некоторых
сообщений и маршрутизировать эти сообщения в нужные
процессинговые узлы для обработки. Для гибридной аналитики как правило сообщения данных должны быть не только
маршрутизированы на процессинг, но и интегрированы в
аналитическую песочницу для дальнейшей обработки по результатам накопления данных за значительные интервалы
времени. Данные, полученные в результате консолидации,
должны соответствовать определенным критериям качества.
Качество данных - это критерий, определяющий полноту,
точность, актуальность и возможность интерпретации данных. Данные могут быть высокого и низкого качества. Данные высокого качества - это полные, точные, актуальные
данные, которые поддаются интерпретации. Такие данные
обеспечивают получение качественного результата: знаний,
которые смогут поддерживать процесс принятия решений.
овокупность процессов, определяющих консолидацию, называют ETL – Extraction-Transformation-Loading (ИзвлечениеПреобразование-Загрузка). В приложения бизнес-аналитики
в процессы ETL включались весьма сложные преобразования
63

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

ты. Слова разного веса при визуализации имеют различную
разметку, а значит разное представление на экране. Одни
слова выглядят больше других. Этот тип визуализации помогает исследователю очень быстро ухватить основные мысли
текста.
Визуализация кластеров
Одной из часто используемых визуализаций является
визуализация кластеров. Кластерами называют группы в
чем-то схожих или близких по свойствам объектов. Алгоритмы кластеризации, т.е. разбиение множества объектов на
группы, мы рассмотрим ниже, а здесь покажем только как
может быть визуализирована их работа. Большинство визуализаторов поддерживает алгоритмы кластеризации и способно разделять данные на кластеры. Обычно для визуального
представления кластеров для объектов из разных кластеров
используются контрастные цвета.
Визуализация ассоциаций
Визуализация ассоциаций демонстрирует частоту, с которой те или иные элементы появляются вместе в наборе
данных, за счет чего определяется структура организации
данных (например, речь может идти о том, какие продукты
часто продаются вместе). Также возможна визуализация информации о силе ассоциации данных.
Визуализация гипотез
Визуализация гипотез позволяет показывать выявленные закономерности, подтверждающие выдвигаемые гипотезы. Представление информации в различных визуализаторах
отличается. Например, если строки круговых 3D-диаграмм
отображают признаки, использованные классификатором, то
каждая круговая диаграмма отражает вероятность того, что
величина признака или диапазон значений подходят для
классификации. На рисунке 2.10, представленном ниже,
анализируется зарплата работающего населения США. Визуализатор отражает атрибуты, которые могут влиять на классификацию по зарплате. Атрибуты представлены рядами
круговых трехмерных диаграмм. Высота круговой диаграммы (цилиндра) показывает количество записей в данной ка65

тегории; цвет показывает, что зарплата больше или меньше
50 тыс. долл. На каждый атрибут может быть несколько круговых диаграмм, например, для обозначения пола (мужской/женский) имеется две диаграммы, а для возраста — восемь диаграмм. Их количество зависит от количества закономерностей, выявленных визуализатором.
Визуализация деревьев решений
Визуализация деревьев решений позволяет представить
иерархически организованную информацию в виде ландшафта и обозревать все множество данных или их часть в виде
узлов и ветвей. Ландшафт может быть как двумерным, так и
трехмерным. Количественные и реляционные характеристики
данных делаются видимыми с помощью иерархически соединенных узлов.
Классификация
Техника классификации является одной из базовых методик интеллектуального анализа больших данных. Ее нередко используют при построении модели аналитических систем
наряду с еще одной техникой - кластеризацией. Классификация - это распределение объектов (наблюдений, событий)
исследования по заранее известным классам на основании
сходства признаков. В отличие от классификации кластеризация производит распределение объектов (наблюдений, событий) по неизвестным заранее классам. Классификация
производится в соответствии с принципами машинного обучения с учителем (Supervised Machine Learning). Для проведения классификации с помощью математических методов
необходимо иметь формальное описание объекта, которым
можно оперировать, используя математический аппарат классификации. Каждый объект (запись базы данных) должен
содержать информацию о некоторых признаках объекта.
Процесс классификации, как правило, сводится к следующим шагам.
1. Набор исходных данных (или выборку данных) разбивают на два множества: обучающее и тестовое. Обучающее
множество - множество, которое включает данные, использующиеся для конструирования модели. Множество содержит входные и выходные (целевые) значения примеров. Вы66

ходные значения предназначены для обучения модели. Тестовое множество также содержит входные и выходные значения примеров. Здесь выходные значения используются для
проверки модели.
2. Каждый объект набора данных относится к одному
предопределенному классу. На этом этапе используется обучающее множество, на нем происходит конструирование
модели. Полученная модель представляется классификационными правилами, деревом решений или математическими
формулами.
3. Производится оценка правильности модели. Известные значения из тестового множества сравниваются с результатами использования полученной модели. Вычисляется
уровень точности - процент правильно классифицированных
объектов в тестовом множестве.
Кластеризация
Техника кластеризации является подходом к классификации данных в случае, когда заранее неизвестно, к какому
классу должен быть отнесен любой из имеющихся объектов.
Кластеризация осуществляется автоматическим нахождением групп, на которые должны быть разбиты анализируемые
объекты. Такой процесс может рассматриваться как машинное обучение без учителя
(Unsupervised Machine Learning).
Известно более 100 разных алгоритмов
Машинное обучение
Термин «машинное обучение», скорее всего, встречался
вам не раз. Хотя его нередко используют как синоним искусственного интеллекта, на самом деле машинное обучение – это
один из его элементов. При этом оба понятия родились в Массачусетском технологическом институте в конце 1950-х годов.
Машинное обучение (machine learning, ML) — класс методов искусственного интеллекта, характерной чертой которых является не прямое решение задачи, а обучение в процессе применения решений множества сходных задач. Для
построения
таких
методов
используются
средства математической статистики, численных методов, методов
оптимизации, теории вероятностей, теории графов, различные техники работы с данными в цифровой форме.
67

Различают два типа обучения:
Обучение по прецедентам, или индуктивное обучение,
основано
на
выявлении эмпирических
закономерностей в данных.
Дедуктивное
обучение предполагает
формализацию
знаний экспертов и их перенос в компьютер в виде базы знаний.
Дедуктивное обучение принято относить к области экспертных систем, поэтому термины машинное обучение и обучение по прецедентам можно считать синонимами.
Многие методы индуктивного обучения разрабатывались как альтернатива классическим статистическим подходам. Многие методы тесно связаны с извлечением информации ( information
extraction, information
retrieval), интеллектуальным анализом данных (data mining).
В отличие от традиционного ПО, которое прекрасно
справляется с выполнением инструкций, но не способно к
импровизации, системы машинного обучения по сути программируют сами себя, самостоятельно разрабатывая инструкции путем обобщения известных сведений.
Классический пример – распознавание образов. Покажите системе машинного обучения достаточное количество
снимков собак с пометкой «собака», а также кошек, деревьев
и других объектов, помеченных «не собака», и она со временем начнет хорошо отличать собак. И для этого ей не нужно
будет объяснять, как именно те выглядят.
Обучение с учителем и без
Упомянутый вид машинного обучения называется обучением с учителем. Это значит, что кто-то познакомил алгоритм с огромным объемом учебных данных, просматривая
результаты и корректируя настройки до тех пор, пока не была
достигнута нужная точность классификации данных, которые система еще не «видела». Это то же самое, что нажимать
кнопку «не спам» в почтовой программе, когда фильтр случайно перехватывает нужное вам сообщение. Чем чаще вы
это делаете, тем точнее становится фильтр.
Типичные задачи обучения с учителем – классификация
и прогнозирование (или регрессионный анализ). Распознава68

ние спама и образов – задачи классификации, а прогнозирование котировок акций – классический пример регрессии.
При обучении без учителя система просматривает гигантские объемы данных, запоминая, как выглядят «нормальные» данные, чтобы получить возможность распознавать
аномалии и скрытые закономерности. Обучение без учителя
полезно, когда вы точно не знаете, что именно ищете, – в
этом случае систему можно заставить вам помочь.
Системы обучения без учителя могут обнаруживать закономерности в огромных объемах данных гораздо быстрее,
чем люди. Именно поэтому банки используют их для выявления мошеннических операций, маркетологи – для идентификации клиентов со схожими атрибутами, а ПО безопасности –
для распознавания вредоносной активности в сети.
Примеры задач обучения без учителя – кластеризация и
поиск правил ассоциации. Первая применяется, в частности,
для сегментации клиентов, а на поиске правил ассоциации
основаны механизмы выдачи рекомендаций.
Способы машинного обучения
Раздел машинного обучения, с одной стороны, образовался в результате разделения науки о нейронных сетях на
методы обучения сетей и виды топологий их архитектуры, с
другой стороны — вобрал в себя методы математической статистики. Указанные ниже способы машинного обучения исходят из случая использования нейросетей, хотя существуют
и другие методы, использующие понятие обучающей выборки — например, дискриминантный анализ, оперирующий
обобщѐнной дисперсией и ковариацией наблюдаемой статистики, или байесовские классификаторы. Базовые виды нейросетей, такие как перцептрон и многослойный перцептрон (а
также их модификации), могут обучаться как с учителем, так
и без учителя, с подкреплением и самоорганизацией. Но некоторые нейросети и большинство статистических методов
можно отнести только к одному из способов обучения. Поэтому, если нужно классифицировать методы машинного обучения в зависимости от способа обучения, будет некорректным
относить нейросети к определенному виду, правильнее было
бы типизировать алгоритмы обучения нейронных сетей.
69



Обучение с учителем — для каждого прецедента задаѐтся пара «ситуация, требуемое решение».
 Обучение без учителя — для каждого прецедента задаѐтся только «ситуация», требуется сгруппировать объекты в кластеры, используя данные о попарном сходстве объектов, и/или понизить размерность данных.
 Активное обучение — отличается тем, что обучаемый
алгоритм имеет возможность самостоятельно назначать следующую исследуемую ситуацию, на которой
станет известен верный ответ.
 Обучение с частичным привлечением учителя (semisupervised learning) — для части прецедентов задается
пара «ситуация, требуемое решение», а для части —
только «ситуация».
 Трансдуктивное обучение — обучение с частичным
привлечением учителя, когда прогноз предполагается
делать только для прецедентов из тестовой выборки.
 Многозадачное обучение (multi-task learning) — одновременное обучение группе взаимосвязанных задач,
для каждой из которых задаются свои пары «ситуация,
требуемое решение».
 Многовариантное обучение (multiple-instance learning)
– обучение, когда прецеденты могут быть объединены
в группы, в каждой из которых для всех прецедентов
имеется «ситуация», но только для одного из них (причем, неизвестно какого) имеется пара «ситуация, требуемое решение»
 Бустинг (boosting — улучшение) — это процедура последовательного построения композиции алгоритмов
машинного обучения, когда каждый следующий алгоритм стремится компенсировать недостатки композиции всех предыдущих алгоритмов.
 Байесовская сеть.
Алгоритмы машинного обучения нуждаются в данных, в
как можно большем количестве данных из как можно более
широкого набора источников. Чем больше они "питаются"
этими данными, тем "умнее" становятся и тем больше их потенциал при принятии решений. И облака дают эти большие
данные.
70

Большие данные сулят нам найти много ценного в процессе цифровой трансформации, в то время как облако предлагает строительные блоки для этого процесса. Машинное
обучение, в свою очередь, стало первым по-настоящему промышленным инструментом для масштабного освоения этих
новых ценностей. Привлекательность машинного обучения в
том, что возможности его использования практически безграничны. Оно может применяться везде, где важен быстрый
анализ данных, и оказать просто-таки революционный эффект там, где важно выявлять тенденции или аномалии в
обширных наборах данных — от клинических исследований
до сферы безопасности и контроля за соблюдением стандартов.
Ограничения машинного обучения
Каждая система машинного обучения создает собственную схему связей, представляя собой нечто вроде черного
ящика. Вы не сможете путем инженерного анализа выяснить,
как именно выполняется классификация, но это и не имеет
значения, главное, чтобы работало.
Однако система машинного обучения хороша лишь настолько, насколько точны учебные данные: если подать ей на
вход «мусор», то и результат будет соответствующим. При неправильном обучении или слишком малом размере обучающей выборки алгоритм может выдавать неверные результаты.

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

сокой параллелизацией вычислений и распределенным хранением данных. Несмотря на потребность значительной вычислительной мощности и памяти, как правило, развертывание программных продуктов больших данных производится
на кластерах из компьютеров среднего или даже низкого
класса (commodity computers). Это позволяет масштабировать системы больших данных без привлечения существенных затрат. В последнее время для развертывания систем
больших данных все шире применяются облачные сервисы
(cloud computing services). В случае имплементации системы
в облаке узлы вычислительного кластера реализуются на виртуальных машинах облачной инфраструктуры и гибко адаптируются к задаче, снижая затраты на использование. Это
служит дополнительным фактором, привлекающим многих
разработчиков строить системы больших данных на облачных
платформах.
Наиболее популярной технологией больших данных,
считающейся де-факто стандартом для построения систем
аналитики, работающих в пакетном режиме, является совокупность решений и программных библиотек, объединенных
под названием Hadoop. Если большие данные поступают в
виде высокоскоростных потоков и реагирование системы
должно происходить с малой задержкой, то вместо пакетной
аналитики применяется аналитика реального времени. Здесь
пока не возникло де-факто стандартных подходов и из наиболее популярных мы рассмотрим технологию под названием
Storm.
Apache Hadoop
Под названием Hadoop сообщество Apache продвигает
технологию, основанную на использовании специальной инфраструктуры для параллельной обработки больших объемов
данных. Hadoop обеспечивает среду для функционального
программирования задач, автоматического распараллеливания работ, смещения вычислительной нагрузки к данным.
Hadoop создал Дуг Каттинг — создатель Apache Lucene, широко используемой библиотеки текстового поиска. Hadoop
происходит от Apache Nutch — системы вебпоиска с открытым кодом, которая сама по себе являлась частью проекта
Lucene.
72

Проект Nutch был запущен в 2002 году. Работоспособный обходчик и поисковая система появились очень быстро.
Однако разработчики поняли, что их архитектура не будет
масштабироваться на миллиарды веб-страниц. Помощь пришла в 2003 году, когда была опубликована статья с описанием архитектуры GFS (Google File System) — распределенной
файловой системы, которая использовалась в реальных проектах Google2 [Ghemawat, 2003].
В 2004 году была опубликована статья, в которой компания Google представила миру технологию MapReduce [Dean,
2004]. В начале 2005 года у разработчиков Nutch появилась
работоспособная реализация MapReduce на базе Nutch, а к
середине года все основные алгоритмы Nutch были адаптированы для использования MapReduce и NDFS. Возможности
применения NDFS и реализации MapReduce в Nutch выходили далеко за рамки поиска, и в феврале 2006 года был образован независимый подпроект Lucene, получивший название
Hadoop. Примерно в то же время Дуг Каттинг поступил в
компанию Yahoo!, которая предоставила группу и ресурсы
для превращения Hadoop в систему, работающую в вебмасштабах (см. далее врезку «Hadoop в Yahoo!»). Результаты
были продемонстрированы в феврале 2008 года, когда компания Yahoo! объявила, что используемый ею поисковый индекс был сгенерирован 10000-ядерным кластером Hadoop
[Yahoo, 2008].
История Hadoop непосредственно связана с разработкой
Google File System (2003 год) и затем реализацией технологии
MapReduce (2004 год). На основе этих компонент в 2005 году
появилось приложение поиска информации Apache Nutch,
которое на
следующий год дало дорогу проекту Apache
Hadoop.
Хотя Hadoop чаще всего ассоциируется с MapReduce и
распределенной файловой системой (HDFS, ранее называвшейся NDFS), этим термином часто обозначают целое семейство взаимосвязанных проектов, объединенных инфраструктурой распределенных вычислений и крупномасштабной обработки данных. Все базовые проекты, рассматриваемые в
книге, ведутся фондом Apache Software Foundation, предоставляющим поддержку сообщества проектов с открытым кодом
— включая исходный HTTP-сервер, от которого произошло
73

название. С расширением экосистемы Hadoop появляются
новые проекты, не обязательно находящиеся под управлением Apache, но предоставляющие дополнительные функции
Hadoop или образующие абстракции более высокого уровня
на основе базовой функциональности. 42 Глава 1. Знакомство
с Hadoop Ниже кратко перечислены проекты Hadoop, рассмотренные в книге. Common — набор компонентов и интерфейсов для распределенных файловых систем и общего ввода/вывода (сериализация, Java RPC, структуры данных). Avro
— система сериализации для выполнениях эффективных межъязыковых вызовов RPC и долгосрочного хранения данных.
MapReduce — модель распределенной обработки данных и
исполнительная среда, работающая на больших кластерах
типовых машин. HDFS — распределенная файловая система,
работающая на больших кластерах стандартных машин. Pig
— язык управления потоком данных и исполнительная среда
для анализа очень больших наборов данных. Pig работает в
HDFS и кластерах MapReduce. Hive — распределенное хранилище данных. Hive управляет данными, хранимыми в HDFS,
и предоставляет язык запросов на базе SQL (которые преобразуются ядром времени выполнения в задания MapReduce)
для работы с этим данными. HBase — распределенная столбцово-ориентированная база данных. HBase использует HDFS
для организации хранения данных и поддерживает как пакетные вычисления с использованием MapReduce, так и точечные запросы (произвольное чтение данных). ZooKeeper — распределенный координационный сервис высокой доступности. ZooKeeper предоставляет примитивы, которые могут использоваться для построения распределенных приложений
(например, распределенные блокировки). Sqoop — инструмент эффективной массовой пересылки данных между структурированными хранилищами (такими, как реляционные
базы данных) и HDFS. Oozie — сервис запуска и планирования заданий Hadoop (включая задания MapReduce, Pig, Hive и
Sqoop jobs)
Hadoop состоит из четырех функциональных частей:

Hadoop Common;

Hadoop HDFS;

Hadoop MapReduce;

Hadoop YARN.
74

Hadoop Common – это набор библиотек и утилит, необходимых для нормального функционирования технологии. В
его состав входит специализированный упрощѐнный интерпретатор командной строки.
Когда набор данных перерастает емкость одной физической машины, его приходится распределять по нескольким
разным машинам. Файловые системы, управляющие хранением данных в сети, называются распределенными файловыми системами. Поскольку они работают в сетевой среде,
проектировщику приходится учитывать все сложности сетевого программирования, поэтому распределенные файловые
системы сложнее обычных дисковых файловых систем. Например, одна из самых серьезных проблем — сделать так,
чтобы файловая система переживала сбои отдельных узлов
без потери данных. Hadoop поставляется с распределенной
файловой системой, которая называется HDFS (Hadoop
Distributed Filesystem). Иногда — в старой документации или
конфигурациях или в неформальном общении — также
встречается сокращение «DFS»; оно означает то же самое.
HDFS — основная файловая система Hadoop, которой посвящена эта глава, но в Hadoop также реализована абстракция
обобщенной файловой системы, и мы попутно рассмотрим
интеграцию Hadoop с другими системами хранения данных
(например, локальной файловой системой и Amazon S3).
HDFS (Hadoop Distributed File System) – это распределенная файловая система для хранения данных на множестве машин в больших объемах. Проектировалась так, чтобы
обеспечивать:

Надежное хранение данных на дешевом

ненадежном оборудовании;

Высокую пропускную способность чтения-записи;

Потоковый доступ к данным;

Упрощенную модель согласованности;

Архитектуру аналогичную Google File System.
Файловая система HDFS спроектирована для хранения
очень больших файлов с потоковой схемой доступа к данным
в кластерах обычных машин [Shvachko, 2010]. Рассмотрим
это утверждение более подробно. Очень большие файлы Под
«очень большими» в этом контексте подразумеваются файлы,
размер которых составляет сотни мегабайт, гигабайт и тера75

байт. Сейчас существуют кластеры Hadoop, в которых хранятся петабайты даннях [Scaling, 2008].
Потоковый доступ к данным В основу HDFS заложена
концепция однократной записи/многократного чтения как
самая эффективная схема обработки данных. Набор данных
обычно генерируется или копируется из источника, после чего с ним выполняются различные аналитические операции. В
каждой операции задействуется большая часть набора данных (или весь набор), поэтому время чтения всего набора
данных важнее задержки чтения первой записи. Обычное
оборудование Hadoop не требует дорогостоящего оборудования высокой надежности. Система спроектирована для работы на стандартном оборудовании (общедоступное оборудование, которое может быть приобретено у многих фирм)3 с достаточно высокой вероятностью отказа отдельных узлов в кластере (по крайней мере, для больших кластеров).
Технология HDFS спроектирована таким образом, чтобы
в случае отказа система продолжала работу без скольконибудь заметного прерывания. Также следует выделить области применения, для которых в настоящее время HDFS подходит не лучшим образом (при том, что в будущем ситуация
может измениться): Быстрый доступ к данным Приложения,
требующие доступа к данным с минимальной задержкой (в
диапазоне десятков миллисекунд), плохо сочетаются сHDFS.
Напомним, что система HDFS оптимизирована для обеспечения высокой пропускной способности передачи данных, за
которую приходится расплачиваться замедлением доступа.
HBase (глава 13) в настоящее время лучше подходит для организации доступа к данным с минимальной задержкой.
Многочисленные мелкие файлы Так как узел имен хранит метаданные файловой системы в памяти, предел количества файлов в файловой системе определяется объемом памяти узла имен. Как показывает опыт, каждый файл, каталог и
блок занимают около 150 байт. Таким образом, например,
если у вас имеется миллион файлов, каждый из которых занимает один блок, для хранения информации потребуется не
менее 300 Мбайт памяти. Хранение миллионов файлов еще
приемлемо, но миллиарды файлов уже выходят за пределы
возможностей современного оборудования1 . Множественные
источники записи, произвольные модификации файлов За76

пись в файлы HDFS может выполняться только одним источником. Запись всегда осуществляется в конец файла. Поддержка множественных источников записи или модификации с
произвольным смещением в файле отсутствует. (Может быть,
эти возможности будут поддерживаться в будущем, но, скорее всего, они будут относительно неэффективными).
В основе архитектуры HDFS лежат узлы хранения – серверы стандартной архитектуры, на внутренних дисках которых хранятся данные. Для всех данных используется единое
адресное пространство. При этом обеспечивается параллельный ввод-вывод информации с разных узлов. Таким образом,
гарантируется высокая пропускная способность системы.
HDFS оперирует на двух уровнях: пространства имѐн
(Namespace) и хранения
блоков данных (Block Storage
Service). Пространство имѐн поддерживается центральным
узлом имѐн (Namenode), хранящим метаданные файловой
системы и метаинформацию о распределении блоков файлов.
Многочисленные узлы данных (Datanode) непосредственно хранят файлы. Узел имѐн отвечает за обработку операций файловой системы— открытие и закрытие файлов,
манипуляция с каталогами и т.п. Узлы данных отрабатывают
операции по записи и чтению данных. Узел имѐн и узлы данных снабжаются веб-серверами, отображающими текущий
статус и позволяющими просматривать содержимое файловой системы.
У HDFS нет POSIX-совместимости. Не работают Unixкоманды ls, cp и т.п. Для монтирования HDFS в Linux ОС
необходимы специальные инструменты, например, HDFSFuse. Файлы поблочно распределяются между узлами. Все
блоки в HDFS (кроме последнего блока файла) имеют одинаковый размер – от 64 до 256 Мб.
Для обеспечения устойчивости к отказам серверов, каждый блок может быть продублирован на нескольких узлах.
Коэффициент репликации (количество узлов, на которых
должен быть размещѐн каждый блок) определяется в настройках файла. Файлы в HDFS могут быть записаны лишь
однажды (модификация не поддерживается), а запись в
файл в одно время может вести только один процесс. Таким
простым образом реализуется согласованность данных.
77

Hadoop MapReduce
MapReduce — модель программирования, ориентированная на обработку данных. Эта модель проста, но не настолько, чтобы в ее контексте нельзя было реализовать полезные
программы.
Hadoop
позволяет
запускать
программы
MapReduce, написанные на разных языках; в этой главе мы
рассмотрим одну и ту же программу, написанную на языках
Java, Ruby, Python и C++. Но самое важное заключается в
том, что программы MapReduce параллельны по своей природе, а следовательно, крупномасштабный анализ данных становится доступным для всех, у кого в распоряжении имеется
достаточно компьютеров. Достоинства MapReduce в полной
мере проявляются в работе с большими наборами данных,
так что начнем с рассмотрения одного из таких наборов.
Hadoop MapReduce – это наиболее популярная программная реализация модели параллельной обработки больших
объемов данных путем разделения на независимые задачи,
решаемые функциями Map и Reduce. Алгоритм MapReduce
получает на вход 3 аргумента: исходную коллекцию данных,
Map функцию, Reduce функцию, и возвращает результирующую коллекцию данных.
Исходными коллекциями данных являются наборы записей специального вида,
Это структура данных типа
Ключ,Значение (KEY, VALUE). Пользователю необходимо задать функции обработки Map и Reduce. Алгоритм сам заботится о сортировке данных, запуске функций обработки, повторном исполнении упавших транзакций и много чем еще.
Результирующая коллекция состоит из результатов анализа в
легко интерпретируемом виде. Работа алгоритма MapReduce
состоит из трех основных этапов: Map, Group и Reduce. В
качестве первого этапа над каждым элементом исходной
коллекции выполняется Map функция. Как правило, она
принимает на вход одну запись вида (KEY, VALUE), и возвращает по ней некоторое количество новых записей (KEY1,
VALUE1), (KEY2, VALUE2), ..., т.е. преобразует входную пару
{ключ: значение} в набор промежуточных пар. Также эта функция играет роль фильтра — если для данной пары никаких
промежуточных значений возвращать не нужно, функция
возвращает пустой список.
78

Можно сказать, что обязанность Map функции конвертировать элементы исходной коллекции в ноль или несколько
экземпляров объектов {ключ: значение}.
На втором этапе (Group) алгоритм сортирует все пары
{ключ: значение}и создает новые экземпляры объектов, сгруппированные по ключу. Операция группирования выполняется внутри алгоритма MapReduce и пользователем не задается. Функция Reduce возвращает экземпляры объекта {ключ:
свернутое значение}, которые включается в результирующую
коллекцию.
Для примера, рассмотрим упрощенный вариант задачи,
стоящей перед поисковыми системами. Допустим, у нас есть
база данных страниц в Интернете, и мы хотим, сколько раз
ссылаются на каждую страницу. Пусть есть страница
first.com со ссылками на first.com, second.com, third.com,
страница second.com с двумя ссылками на first.com и страница third.com, на которой нет ссылок вообще.
Чтобы иметь единый формат исходной коллекции данных, определим вид каждой сохраненной страницы как (KEY
= URL, VALUE = TEXT). Результаты легко интерпретируются.
В качестве базового языка написания функций используется Java. Для программирования существует популярный
Hadoop плагин в Eclipse. Но можно обойтись и без него: утилиты Hadoop streaming позволяют использовать в качестве
Map и Reduce любой исполняемый файл, работающий со стандартным вводом-выводом операционной системы (например, утилиты командной оболочки UNIX, скрипты Python,
Ruby и т.д.), есть также SWIG-совместимый прикладной интерфейс программирования Hadoop pipes на C++. Кроме того,
в состав дистрибутивов Hadoop входят реализации различных обработчиков, наиболее часто используемых в распределѐнной обработке.
Особенностью Hadoop является перемещение вычислений как можно ближе к данным. Поэтому пользовательские
задачи запускаются на том узле, который содержит данные
для обработки. По окончанию фазы Map происходит перемещение промежуточных списков данных для обработки функцией Reduce. Заметим здесь, что кроме Hadoop существуют
разные имплементации MapReduce. Изначально MapReduce
был реализован компанией Google. Позднее появились другие
79

реализации алгоритма. Развитием MapReduce от Google стал
проект с открытым исходным кодом - MySpace Qizmt MySpace’s Open Source Mapreduce Framework. Другой известной версией алгоритма является та, что реализована в системе MongoDB
Hadoop YARN (Yet Another Resource Negotiator ) – платформа управления ресурсами системы, ответственная за распределение вычислительных ресурсов серверов и расписание выполнения пользовательских задач.
В первых версиях Hadoop MapReduce включал планировщик заданий JobTracker, начиная с версии 2.0 (2013 г.) эта
функция перенесена в YARN. В ней модуль
Hadoop
MapReduce реализован поверх YARN. Программные интерфейсы по большей части сохранены, однако полной обратной
совместимости нет.
YARN иногда называют кластерной операционной системой. Это обусловлено тем, что платформа ведает интерфейсом между аппаратными ресурсами и различными приложениями, использующими вычислительные мощности. Основой YARN является логически самостоятельный демон —
планировщик ресурсов (ResourceManager), абстрагирующий
все вычислительные ресурсы кластера и управляющий их
предоставлением приложениям распределѐнной обработки.
Ему подотчетны многочисленные менеджеры узлов (Node
Manager), ответственные за отслеживание текущего статуса и
нагрузки отдельных серверов.
Работать под управлением YARN могут как MapReduceпрограммы, так и любые другие распределѐнные приложения, поддерживающие соответствующие программные интерфейсы. YARN обеспечивает возможность параллельного выполнения нескольких различных задач в рамках системы серверов.
Разработчику распределѐнного приложения необходимо
реализовать специальный класс управления приложением
(AppMaster), который отвечает за координацию заданий в
рамках тех ресурсов, которые предоставит планировщик
ресурсов. Планировщик ресурсов отвечает за создание экземпляров класса управления приложением и взаимодействия с
ними через сетевой протокол.
80

На основе Hadoop создан целый ряд продуктов для обработки данных. Вот список лишь наиболее популярных из
них:
 Pig – высокоуровневый язык потоков данных для
параллельного программирования;
 HBase – распределенная база данных, которая обеспечивает хранение больших таблиц;
 Cassandra – устойчивая к ошибкам, децентрализованная база данных;
 Hive – хранилище данных c функциями объединения данных и бистрого поиска;
 Mahout – библиотека методов машинного обучения
и извлечения знаний.
Hadoop является очень динамично развивающейся технологией. Поэтому наиболее свежую информацию рекомендуется
получать
в
Интернете
на
сайте
http://hadoop.apache.org/ .
Storm – система потоковой обработки
Storm является бесплатной технологией и программной
реализацией распределенной вычислительной системы реального времени [15]. Эта система позволяет строить надежную обработку неограниченных потоков данных подобно
тому как Hadoop делает это с пакетной обработкой. Storm
применяется для аналитики реального времени, онлайнового
машинного обучения, непрерывных вычислений, распределенных ETL и других операций с потоками больших данных.
Storm может интегрироваться с технологиями очередей
и баз данных, которые уже используются и не зависит от
языка программирования. Основой Storm являются Storm
топологии и Storm кластер. Кластер является объектом, подобным Hadoop кластеру, а вместо запуска MapReduce job здесь
запускаются Storm topologies. Jobs и Topologies имеют ключевое различие – первые в нормальном режиме завершают
работу, а вторые обрабатывают сообщения всегда. В Storm
кластере имеется два типа узлов master node и worker nodes
(рисунок 2.28). На master node запускается демон называемый Nimbus, который подобен JobTracker в Hadoop. Nimbus
ответственнен за распределение кода по рабочим узлам клас81

тера, распределение задач по машинам и запуск и остановку
рабочих процессов. Каждый рабочий процесс выполняет подмножество топологии. Работающая топология состоит из
многих рабочих процессов, распределенных по многим машинам. Каждый рабочий узел (worker node) имеет демон под
названием Supervisor. Этот модуль слушает все процессы на
своей машине и запускает и останавливает их по инициативе Nimbus. Координация между Nimbus и всеми Supervisor
производится через специальный кластер,
называемый
Zookeeper. Этот кластер также хранит на своем дисковом
пространстве состояние всех процессов, что позволяет восстанавливать после сбоя отдельно любую машину рабочего
кластера. Чтобы выполнить вычисления в реальном времени
на Storm нужно создать топологию (topologies) – граф вычислений. Каждый узел в топологии содержит логику процессинга и линк между узлами, показывающий как данные должны
быть переданы между узлами.
Основной абстракцией в Storm является поток (stream).
Потоком называется
неограниченная последовательность
кортежей (tuples). Источники потоков данных для обработки
представляются в топологии абстракцией, называемой spout,
а обработчики потоков, которые могут выполнять функции,
фильтровать потоки, агрегировать или объединять потоки
данных, взаимодействовать с базами данных называются
bolt.
Стек Elastic
За последние несколько лет появились различные системы для хранения и обработки больших массивов данных.
Среди них можно выделить проекты экосистемы Hadoop, некоторые базы данных (БД) NoSQL, а также поисковые и аналитические системы наподобие Elasticsearch. Hadoop и любая
база данных NoSQL имеют свои преимущества и области
применения.
Elastic Stack — обширная экосистема компонентов, которые служат для поиска и обработки данных. Основные
компоненты Elastic Stack — это Kibana, Logstash, Beats, XPack и Elasticsearch. Ядром Elastic Stack выступает поисковая система Elasticsearch, которая предоставляет возможности для хранения, поиска и обработки данных. Утилита
82

Kibana, которую также называют окном в Elastic Stack, является отличным средством визуализации и пользовательским
интерфейсом для Elastic Stack. Компоненты Logstash и Beats
позволяют передавать данные в Elastic Stack. X-Pack предоставляет мощный функционал: можно настраивать мониторинг, добавлять различные уведомления, устанавливать параметры безопасности для подготовки вашей системы к эксплуатации. Поскольку Elasticsearch является ядром Elastic
Stack
Elasticsearch — высокомасштабируемая распределенная
поисковая система полнотекстового поиска и анализа данных, работающая в режиме реального времени. Утилита позволяет хранить, искать и анализировать большие объемы
данных. Обычно используется в качестве базового механизма/технологии, помогая приложениям со сложными функциями поиска. Elasticsearch представляет собой основной компонент Elastic Stack.
Elasticsearch как сердце Elastic Stack играет основную
роль в поиске и анализе данных. Она построена на уникальной технологии — Apache Lucene. Благодаря этому
Elasticsearch в корне отличается от традиционных решений
для реляционных баз данных или NoSQL. Ниже перечислены
основные преимущества использования Elasticsearch в качестве хранилища данных:
 неструктурированность,
документоориентированность;
 возможность поиска;
 возможность анализа данных;
 поддержка пользовательских библиотек и REST API;
 легкое управление и масштабирование;
 работа в псевдореальном времени;
 высокая скорость работы;
 устойчивость к ошибкам и сбоям.
Обзор компонентов Elastic Stack
Некоторые компоненты универсальны, их можно применять без Elastic Stack или других инструментов.

83

Elasticsearch
Elasticsearch хранит все ваши данные, предоставляет
возможности поиска и анализа в масштабируемом виде. Мы
уже рассматривали преимущества и причины использования
Elasticsearch. Вы можете работать с Elasticsearch без какихлибо других компонентов, чтобы оснастить свое приложение
инструментами для поиска и анализа данных.
Чтобы работать с реляционными базами данных, нужно
разбираться в таких понятиях, как строки, столбцы, таблицы
и схемы. Elasticsearch и другие хранилища, ориентированные
на документы, работают по иному принципу. Система
Elasticsearch имеет четкую ориентацию на документы. Лучше
всего для нее подходят JSON-документы. Они организованы с
помощью различных типов и индексов. Далее мы рассмотрим
ключевые понятия Elasticsearch:
 индекс;
 тип;
 документ;
 кластер;
 узел;
 шарды и копии;
 разметку и типы данных;
 обратный индекс.
Индекс — это контейнер, который в Elasticsearch хранит документы одного типа и управляет ими. Индекс может
содержать документы одного типа,
Индексы в Elasticsearch приблизительно аналогичны по
структуре базе данных в реляционных базах данных. Продолжая аналогию, тип в Elasticsearch соответствует таблице, а
документ — записи в ней.
Тип
Типы помогают логически группировать или организовывать однотипные документы по индексам.
Обычно документы с наиболее распространенным набором полей группируются под одним типом. Elasticsearch не
требует наличия структуры, позволяя вам хранить любые документы JSON с любым набором полей под одним типом. На
практике следует избегать смешивания разных сведений в
84

одном типе, таких как «клиенты» и «продукты». Имеет смысл
хранить их в разных типах и с разными индексами.
Документ
Как уже было сказано, JSON-документы лучше всего
подходят для использования в Elasticsearch. Документ состоит из нескольких полей и является базовой единицей информации, хранимой в Elasticsearch. Например, у вас может
быть документ, соответствующий одному продукту, одному
клиенту или одной позиции заказа.
Документы содержат несколько полей. В документах
JSON каждое поле имеет определенный тип. В примере с каталогом продуктов, который мы видели ранее, были поля sku,
title, description, price и др. Каждое поле и его значение можно увидеть как пару «ключ — значение» в документе, где ключ
— это имя поля, а значение — значение поля.
Узел
Elasticsearch — распределенная система. Она состоит из
множества процессов, запущенных на разных устройствах в
сети и взаимодействующих с другими процессами. В главе 1
мы скачали, установили и запустили Elasticsearch. Таким образом мы запустили так называемый единичный узел кластера Elasticsearch.
Узел Elasticsearch — это единичный сервер системы, который может быть частью большого кластера узлов. Он участвует в индексировании, поиске и выполнении других операций,
поддерживаемых
Elasticsearch.
Каждому
узлу
Elasticsearch в момент запуска присваиваются уникальный
идентификатор и имя.
Каждому узлу Elasticsearch соответствует основной
конфигурационный файл, который находится в подкаталоге
настроек. Формат файла YML (полное название — YAML Ain’t
Markup Language). Вы можете использовать этот файл для
изменения значений по умолчанию, таких как имя узла, порты, имя кластера.
На базовом уровне узел соответствует одному запущенному процессу Elastic-search. Он отвечает за управление соответствующей ему частью данных.
85

Кластер
Кластер содержит один или несколько индексов и отвечает за выполнение таких операций, как поиск, индексирование и агрегации. Кластер формируется одним или несколькими узлами. Любой узел Elasticsearch всегда является частью
кластера, даже если это кластер единичного узла. По умолчанию каждый узел пытается присоединиться к кластеру с именем Elasticsearch. Если вы запускаете несколько узлов внутри
одной сети без изменения параметра cluster.name в файле
config/elasticsearch.yml, они автоматически объединяются в
кластер.
Кластер состоит из нескольких узлов, каждый из которых отвечает за хранение своей части данных и управление
ею. Один кластер может хранить один или несколько индексов. Индекс логически группирует разные типы документов.
Шарды и копии
Шарды помогают распределить индекс по кластеру. Они
распределяют документы из одного индекса по различным
узлам. Объем информации, который может храниться в одном узле, ограничивается дисковым пространством, оперативной памятью и вычислительными возможностями этого узла.
Шарды помогают распределять данные одного индекса по
всему кластеру и тем самым оптимизировать ресурсы кластера.
Процесс разделения данных по шардам называется шардированием. Это неотъемлемая часть Elasticsearch, необходимая для масштабируемой и параллельной работы с выполнением оптимизации:
 дискового пространства по разным узлам кластера;
 вычислительной мощности по разным узлам кластера.
Распределенные системы наподобие Elasticsearch приспособлены к работе даже при неполадках оборудования. Для
этого предусмотрены реплики шардов, или копии. Каждый
шард индекса может быть настроен таким образом, чтобы у
него было некоторое количество копий или не было ни одной.
Реплики шардов — это дополнительные копии оригинального
или первичного шарда для обеспечения высокого уровня доступности данных.
86

Разметка и типы данных
Elasticsearch — неструктурированная система, благодаря чему в ней можно хранить документы с любым количеством полей и типов полей. В реальности данные никогда не
бывают абсолютно бесструктурными. Всегда есть некий набор полей, общий для всех документов этого типа. Фактически типы внутри индексов должны создаваться на основе общих полей. Обычно один тип документов внутри индекса содержит несколько общих полей.
Типы данных
Elasticsearch поддерживает широкий набор типов данных для различных сценариев хранения текстовых данных,
чисел, булевых, бинарных объектов, массивов, объектов, вложенных типов, геоточек, геоформ и многих других специализированных типов данных, например адресов IPv4 и IPv6. В
документе каждое поле имеет ассоциированный тип данных.
Logstash
Утилита Logstash помогает централизовать данные, связанные с событиями, такие как сведения из файлов регистрации (логов), разные показатели (метрики) или любые другие
данные в любом формате. Она может выполнить обработку
данных до того, как сформировать нужную вам выборку. Это
ключевой компонент Elastic Stack, который используется для
сбора и обработки ваших контейнеров данных.
Logstash — компонент на стороне сервера. Его цель —
выполнить сбор данных из обширного количества источников
ввода в масштабируемом виде, обработать информацию и
отправить ее по месту назначения. По умолчанию преобразованная информация поступает в Elasticsearch, но вы можете
выбрать один из многих других вариантов вывода. Архитектура Logstash основана на плагинах и легко расширяется.
Поддерживаются три вида плагинов: ввода, фильтрации и
вывода.
Kibana
Kibana — инструмент визуализации для Elastic Stack,
который поможет вам наглядно представить данные в
Elasticsearch. Его также часто называют окном в Elastic
Stack. В Kibana предлагается множество вариантов визуали87

заций, таких как гистограмма, карта, линейные графики,
временные ряды и др. Вы можете создавать визуализации
буквально парой щелчков кнопкой мыши и исследовать свои
данные в интерактивном виде. Кроме того, есть возможность
создавать красивые панели управления, состоящие из различных визуализаций, делиться ими, а также получать высококачественные отчеты.
В Kibana также предусмотрены инструменты для управления и разработки. Вы можете управлять настройками XPack для обеспечения безопасности в Elastic Stack, а с помощью инструментов разработчика создавать и тестировать
запросы REST API.
Kibana Console представляет собой удобный редактор,
который поддерживает функцию автозавершения и форматирования запросов во время их написания.
Что такое REST API? REST означает Representational
State Transfer. Это архитектурный стиль для взаимодействия
систем друг с другом. REST развивался вместе с протоколом
HTTP, и почти все системы, основанные на REST, используют
HTTP как свой протокол. HTTP поддерживает различные методы: GET, POST, PUT, DELETE, HEAD и др. Например, GET
предназначен для получения или поиска чего-либо, POST используется для создания нового ресурса, PUT может применяться для создания или обновления существующего ресурса,
а DELETE — для безвозвратного удаления.
Elastic Cloud
Elastic Cloud — это облачный сервис по управлению
компонентами Elastic Stack, предоставляемый компанией
Elastic (https://www.elastic.co/) — автором и разработчиком
Elasticsearch и других компонентов Elastic Stack. Все компоненты продукта (помимо X-Pack и Elastic Cloud) созданы на
базе открытого исходного кода. Компания Elastic обслуживает все компоненты Elastic Stack, проводит тренинги, выполняет разработку и предоставляет облачные сервисы.
Помимо Elastic Cloud, есть и другие облачные решения,
доступные для Elastic-search, например Amazon Web Services
(AWS). Основное преимущество Elastic Cloud в том, что он
создан и обслуживается авторами Elasticsearch и других компонентов Elastic Stack.
88

Как вы можете видеть, Elasticsearch и Elastic Stack можно использовать для широкого спектра задач. Elastic Stack
— это платформа с расширенным набором инструментов для
создания комплексных решений поиска и аналитики. Она
подходит
для
разработчиков,
архитекторов,
бизнесаналитиков и системных администраторов. Вполне возможно
создать решение на базе Elastic Stack, почти не прибегая к
написанию кода, исключительно за счет изменения конфигурации. В то же время система Elasticsearch очень гибкая,
следовательно, разработчики и программисты могут строить
мощные приложения благодаря обширной поддержке языков
программирования и REST API.
Sphinxsearch
Еще одна полнотекстовая поисковая система для больших данных – Sphinxsearch.
Sphinxsearch (от SQL Phrase Index) распространяется по
лицензии GNU GPL либо, для версий 3.0+ без исходных кодов.
Отличительной особенностью является высокая скорость индексации и поиска, а также интеграция с существующими
СУБД (MySQL, PostgreSQL) и API для распространѐнных языков веб-программирования (официально поддерживаются PHP, Python, Java; существуют реализованные сообществом API для Perl, Ruby, .NET и C++).
Официальный сайт системы – http://sphinxsearch.com/.
Система Sphinxsearch обладает такими особенностями:

Высокая скорость индексации (до 10-15 МБ/сек на
каждое процессорное ядро);

Высокая скорость поиска (до 150—250 запросов в
секунду на каждое процессорное ядро с 1 000 000
документов);

Большая масштабируемость (крупнейший известный кластер индексирует до 3 000 000 000 документов и поддерживает более 50 миллионов запросов
в день);

Поддержка распределенного поиска;

Поддержка нескольких полей полнотекстового поиска в документе (до 32 по умолчанию);

89







Поддержка нескольких дополнительных атрибутов
для каждого документа (то есть группы, временные
метки и т. д.);
Поддержка однобайтовых кодировок и UTF-8;
Поддержка морфологического поиска — имеются
встроенные модули для английского, русского и чешского языков; доступны модули для французского,
испанского, португальского, итальянского, румынского, немецкого, голландского, шведского, норвежского, датского, финского, венгерского языков;
Нативная
поддержка
существующих
СУБД
PostgreSQL и MySQL, поддержка ODBC совместимых баз данных (MS SQL, Oracle и т. д.).

В 2017 году команда Manticore Software сделала
форк Sphinxsearch 2.3.2, который назвали Manticore Search.
По словам разработчиков, менеджмент системы Sphinxsearch
не справлялся с сопровождением системы, а именно, не исправлялись обнаруженные ошибки, не реализовывались объявленные возможности, диалог пользователей с разработчиками
Sphinxsearch был затруднен. Sphinx версии 3 уже можно воспринимать как проприетарное решение для ограниченного
круга пользователей. Фактически новая версия системы
(Manticore Search) решила монгие из этих проблем, в том
числе, обеспечена поддержка кода в целом, организовано
современнное взаимодействие с пользователями Sphinxsearch
и Manticore, реализаованы такие возможности, присущие, в
частности, Elasticsearch: репликация, auto id, JSON інтерфейс, возможность создать/удалить индекс на лету, наличие
хранилища документов, развитых real-time индексов.
Neo4j
Neo4j — графовая система управления базами данных с открытым исходным кодом, языке Java, с поддержкой
транзакции (ACID). По состоянию на 2015 год считается самой распространѐнной графовой СУБД [Робинсон, 2016]. Разработчик — американская компания Neo Technology, разработка ведѐтся с 2003 года.
Данные хранит в собственном формате, специализированно приспособленном для представления графовой инфор90

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











graph database, графовая база данных — база данных построенная на графах — узлах и связях между
ними
Cypher — язык для написания запросов к базе данных Neo4j (примерно, как SQL в MYSQL)
node, нода — объект в базе данных, узел графа. Количество узлов ограниченно 2 в степени 35 ~ 34
биллиона
node label, метка ноды — используется как условный «тип ноды». Например, ноды типа movie могут
быть связанны с нодами типа actor. Метки нод —
регистрозависимые, причем *Cypher не выдает
ошибок, если набрать не в том регистре название.
relation, связь — связь между двумя нодами, ребро
графа. Количество связей ограниченно 2 в степени
35 ~ 34 биллиона
relation identirfier, тип связи — в Neo4j у связей.
Максимальное количество типов связей 32767
properties, свойства ноды — набор данных, которые
можно назначить ноде. Например, если нода — это
товар, то в свойствах ноды можно хранить id товара из базы MySQL
node ID, ID нода — уникальный идентификатор ноды. По умолчанию, при просмотрах результата отображается именно этот ID.
91

Сохранение данных в Neo4j
Файл nodestore.db содержит определенный размер записей, содержащих информацию о ноде:
1. Метка, которая показывает, запись активна;
2. Указатель на первое отношение, которое содержит
данная нода;
3. Указатель на первую свойство, которое содержит
данная нода.
Нода не содержит собственного идентификатора. Так
как каждая запись в nodestore.db занимает одинаковое количество места, можно рассчитать указатель на ноду.
Файл relationshipstore.db также содержит записи одинакового размера, которые описывают отношения, но они состоят из следующих элементов:
1. Метка, которая показывает, запись активна;
2. Указатель на ноду, которая содержит это отношение;
3. Указатель на ноду, к которой это отношение направлено;
4. Вид отношения;
5. Указатель на отношение, которое стоит впереди (в
пределах данной ноды);
6. Указатель на отношение, которое стоит сзади (в пределах данной ноды);
7. Указатель на отношение, которое стоит впереди (в
пределах Ноды, в которой это отношение направлено);
8. Указатель на отношение, которое стоит сзади (в пределах Ноды, в которой это отношение направлено);
9. Указатель на первое свойство данного отношения.
Как модель данных выбран ориентированый граф
свойств:

Содержит узлы (nodes) и связи (relationships).

Узлы имеют свойства (properties). Узлы можно рассматривать как документы, содержащие свойства
в виде пар ключ-значение.

Узлы могут быть обозначены одной или несколькими метками (labels). Метки группируют узлы,
указывая роль, которую они играют в наборе данных.
92

Одному узлу можно приписывать несколько меток (поскольку узлы могут играть несколько разных ролей в разных
доменах). Связи связывают узлы и структурируют граф. Связи именуемые (всегда имеют одно имя) и направлены (всегда
имеют направление, начальный и конечный узлы).Связи также могут содержать свойства. Это позволяет ввести дополнительные метаданные в графу алгоритмы, добавить дополнительную семантику связям, ограничивать запросы в режиме
реального времени.
Основные транзакционные возможности — поддержка ACID и соответствие спецификациям JTA, JTS и XA. Интерфейс программирования приложений для СУБД реализован
для
многих
языков
программирования,
включая Java, Python, Clojure, Ruby, PHP, также реализовано API в
стиле REST. Расширить программный интерфейс можно как с
помощью серверных плагинов, так и с помощью неуправляемых расширений (unmanaged extensions); плагины могут добавлять новые ресурсы к REST-интерфейсу для конечных
пользователей, а расширения позволяют получить полный
контроль над программным интерфейсом, и могут содержать
произвольный код, поэтому их следует использовать с осторожностью.
В СУБД используется Cypher — декларативная язык запросов к графам. Синтаксис этого языка похож на синтаксис
SQL. Поддерживаются операции по созданию, выборки, обновления, удаления данных. Cypher описывает графы, используя спецификацию по образцу — используется простая форма ASCII-графики, пользователь рисует часть графа, его интересует, с помощью ASCII символов; вершины берутся в скобки, их метки прописываются после «:»; для создания нескольких узлов их следует перечислить через »,«; связи отражаются стрелками (-> и