Сбор данных для машинного обучения: этапы, методики и рекомендации
Все успешные компании постоянно собирают данные. Они отслеживают поведение людей в Интернете, организуют опросы, мониторят отзывы, слушают сигналы от умных устройств, извлекают значимые слова из электронных писем и предпринимают другие шаги для накопления фактов и чисел, помогающих им принимать бизнес-решения. Хотя современный мир изобилует данными, сбор ценной информации включает в себя множество организационных и технических трудностей, которые мы и рассмотрим в этой статье. Особое внимание мы уделим методикам сбора данных и инструментам для аналитики и проектов машинного обучения.
Что такое сбор данных?
Сбор данных — это методическая практика, нацеленная на получение значимой информации с целью построения согласованного и полного датасета для конкретной цели бизнеса, например, для принятия решений, ответов на исследовательские вопросы или стратегического планирования. Это первый и неотъемлемый этап связанных с данными проектов и задач, в том числе и business intelligence, машинного обучения, а также аналитики big data.
Сбор данных играет ключевую роль и в различных этапах управления продуктами, от product discovery до маркетинга продукта. Однако в нём используются методики и процедуры, отличающиеся от применяемых в машинном обучении, а потому это не входит в рамки нашего поста.
Сбор данных как первый этап процесса принятия решений на основе машинного обучения.
В проектах машинного обучения сбор данных предшествует таким этапам, как очистка и предварительная подготовка данных, обучение и тестирование модели, принятие решений на основе результатов работы модели. Стоит отметить, что во многих случаях процесс сбора информации никогда не заканчивается, поскольку вам всегда нужны свежие данные для повторного обучения и совершенствования имеющихся моделей машинного обучения, получения информации о клиентах, анализа текущих рыночных тенденций и так далее.
Сбор данных/интеграция данных/потребление данных
Сбор данных часто путают с потреблением и интеграцией данных, которые тоже являются важными процессами стратегии управления данными. Хотя все эти три процесса связаны с получением, между ними есть чёткие различия.
Сбор данных связан с получением сырых данных из различных источников с целью применения их для анализа и принятия решений. Он включает в себя ручной ввод данных, онлайн-опросы, извлечение данных из документов и баз данных, прослушивание сигналов с датчиков и многое другое.
Интеграция данных происходит на более поздних этапах потока управления данными. Она преобразует коллекции сырых данных, собранных по разным системам, в единую схему и консолидирует их в общий репозиторий. Обычно весь поток полностью автоматизирован и состоит из трёх основных этапов: извлечения (extraction), преобразования (transformation) и загрузки (loading) данных (сокращённо ETL или ELT, в зависимости от порядка операций.)
Конечная цель сбора данных заключается в накоплении всей ценной информации в одном месте, обеспечении её целостности, качества, доступности всей компании и готовности к BI, статическому анализу данных или машинному обучению.
Под потреблением данных (data ingestion) понимается получение данных из множества источников и их перенос в целевую систему без преобразований. То есть это может быть частью интеграции данных или отдельным процессом, нацеленным на перенос информации в её исходном виде.
Данные могут потребляться пакетно, то есть собираться в большие блоки и переноситься с регулярными интервалами или при определённых условиях. Другой подход заключается в потоковом потреблении, когда данные собираются непрерывно в процессе их генерации. Это позволяет выполнять аналитику в реальном времени, применяемую для выявления мошенничества, мониторинга состояния здоровья, анализа рынка акций и других критичных ко времени задач.
И интеграция, и потребление данных требуют создания конвейеров данных — последовательностей автоматизированных операций по перемещению данных из одной системы в другую. Для выполнения этой задачи нужен специалист — дата-инженер или разработчик ETL.
Сбор данных же может выполняться широким спектром специалистов в рамках их повседневных обязанностей под надзором специалистов в предметной сфере и/или дата-саентистов. Давайте рассмотрим основные этапы, из которых он состоит.
Этапы сбора данных
Основная причина сбора данных — это получение ответов на важные вопросы бизнеса. Например, вы хотите узнать, насколько успешен ваш бизнес по сравнению с конкурентами, какой спрос на ваш продукт или услугу ждать через месяц или как повысить удовлетворённость пользователей. Согласно PwC Customer Loyalty Survey 2022, четыре из пяти людей готовы поделиться личной информацией (например, возрастом или датой рождения), чтобы повысить удобство для себя.
Ключевые вопросы для организации сбора данных.
Чёткое формулирование того, что вы хотите узнать — отправная точка начала сбора данных. Дальше вам предстоит сделать следующие шаги.
- Определить, какую информацию вам нужно собирать.
- Найти источники релевантных данных.
- Выбрать способы и инструменты сбора данных.
- Решить, какой объём данных будет достаточным.
- Подготовить технологию хранения данных.
Типы данных: что собирать
Данные находятся повсюду и принимают тысячи форм, например, это могут быть тексты, изображения, таблицы, видео, бумажные и электронные документы. Чтобы не потеряться, попытайтесь на как можно более раннем этапе проекта определить, какая информация критически важна для ответа на ваш вопрос.
Допустим, на практике мы работали с компаниями, делавшими упор на сборе
- комментариев и мнений клиентов для выполнения анализа эмоциональной составляющей и понимания того, как люди воспринимают конкретные услуги;
- подробностей о рейсах, в которые включаются название авиакомпании, время отлёта и прилёта, маршрут, дата полёта, время и дата покупки, цена и другие важные факторы для прогнозирования цен на билеты;
- конкретных подробностей бронирования, например, изменений цен, местоположения и сезонности, чтобы прогнозировать степень заполненности гостиничных номеров; и
- сбором звуков храпа для разработки приложения аудиоанализа паттернов сна.
Ещё один важный аспект — это тип собираемой информации. С точки зрения data science, всевозможные виды данных разделяются на три большие группы: структурированные, слабоструктурированные и неструктурированные.
Ключевые различия между структурированными, слабоструктурированными и неструктурированными данными.
Структурированные данные — это хорошо упорядоченная информация, намеренно помещённая в таблицы со строками и столбцами. Примерами таких данных могут быть списки инвентаризации или электронные таблицы транзакций и их атрибутов, например времени и места покупки, цены, способа оплаты, скидки и так далее. Такие таблицы создают фундамент для business intelligence, традиционного анализа данных и прогнозирования временных последовательностей (если данные связаны с одним и тем же элементом и собираются в разные моменты времени).
Структурированные данные моделируются так, чтобы по ним легко можно было выполнять поиск и они занимали минимальное пространство на накопителях. Они находятся в специальных репозиториях, называемых реляционными или SQL-базами данных, потому что для обработки таблиц и извлечения записей специалисты используют structured query language (SQL).
Слабоструктурированные данные не так строго отформатированы, как табличные, но сохраняют в себе идентифицируемые элементы (тэги и другие маркеры), упрощающие поиск. К этой категории относятся форматы файлов JSON, CSV и XML. Их можно собирать в NoSQL-базы данных наподобие MongoDB или Cassandra.
Неструктурированные данные занимают 80-90% всей сферы данных. Как понятно из названия, они не подходят под традиционные схемы и включают в себя широкий спектр примеров — от текстов и аудиозаписей до сигналов датчиков.
Обычно неструктурированные данные легко получить, но с ними сложно работать. Они требуют много пространства для хранения и сложных, вычислительно затратных методик машинного обучения, например, обработки естественного языка (NLP) или распознавания изображений для обработки. Неудивительно, что используется лишь 0,5% от этого потенциально ценного ресурса. К счастью, ситуация постепенно меняется к лучшему благодаря эволюции инструментов big data и архитектур хранения, способных обрабатывать крупные датасеты вне зависимости от их типа (ниже мы рассмотрим различные типы репозиториев данных).
Источники данных: откуда их собирать
Во время сбора данных информация извлекается из различных источников, которые для компании могут быть внутренними или внешними.
Внутренние источники, также называемые первичными, сохраняют информацию внутри компании, охватывая такие области, как финансы, операции, персонал, взаимодействие с клиентами и поддержку. Примеры внутренних источников данных:
- Система enterprise resource planning (ERP);
- Централизованная система бронирования и система управления собственностью отеля;
- Система управления доходами;
- Система обслуживания пассажиров авиакомпании;
- ПО customer relationship management (CRM);
- Веб-сайт онлайн-торговли компании;
- Кол-центры;
- Системы IIoT, отслеживающие состояние оборудования, и многое другое.
Данные из внутренних источников релевантны вашей компании, поэтому помогают понимать текущие показатели, эффективность операций и предпочтения клиентов, чтобы находить возможности для совершенствования. Но часто их недостаточно для роста бизнеса или охвата новых аудиторий.
Внешние или сторонние источники данных связаны с внешней информации, поступающей от партнёров, конкурентов, из соцсетей, общих исследований рынка, баз данных с публично доступными датасетами и так далее. Факты и значения, генерируемые третьими сторонами, важны для понимания рыночных тенденций, вашей позиции относительно конкурентов и многого другого.
Наш опыт показывает, что для создания точных прогнозов вам совершенно точно нужны и внутренние, и внешние источники. Для создания алгоритма прогнозирования стоимости номеров семейного отеля мы объединили его собственные данные о бронировании с информацией о конкурентах того же размера, расположенных в том же регионе.
Способы и инструменты сбора данных
В течение многих веков люди собирали данные вручную. Даже сегодня, в эпоху ChatGPT, мы всё ещё заполняем бумажные документы и вводим числа и слова в файл Excel для фиксации событий и наблюдений. Однако процессы, в которых задействованы бумажные документы и ручной ввод данных, длительны, трудоёмки и, что хуже сего, подвержены человеческим ошибкам.
Ручной сбор данных всё ещё применим в мелких компаниях, но более крупные склонны отдавать на аутсорс эти монотонные и повторяющиеся задачи или максимально их автоматизировать. Ниже мы рассмотрим наиболее популярные методики упрощения сбора данных.
Извлечение данных при помощи интерфейсов программирования приложений
Application programming interface (API) — это слой ПО, позволяющий программам взаимодействовать друг с другом. Для прямого доступа к своим данным большинство современных платформ раскрывают публичные или приватные API. Благодаря API система может автоматически собирать интересующий вас контент.
В отличие от веб-скрейпинга, подключения к API не представляют юридических трудностей, потому что их нельзя установить без разрешения источника данных, который может накладывать ограничения на количество запросов и типы доступного контента. Также он определяет формат данных, но чаще всего вам придётся иметь дело с файлами JSON, которые обычно используются в современных REST API.
Оптическое распознавание символов
Optical character recognition (OCR) — это технология, распознающая печатный или рукописный текст в отсканированных документах, изображениях PDF и других файлах, а затем преобразующая его в машиночитаемый электронный вид. Она позволяет не только быстро оцифровывать бумажные документы, но и извлекать ценный контент из различных документов, делая его доступным для дальнейшей обработки.
Полнофункциональные системы наподобие ABBYY FineReader PDF и OCR-решения Google используют машинное обучение для анализа структуры документа и распознавания текста вне зависимости от его языка.
Автоматизация процессов
Robotic process automation (RPA) — это тип ПО, предназначенный для выполнения повторяющихся и монотонных повседневных операций, обычно выполняемых людьми. Среди прочего, RPA-боты способны выполнять некоторые действия, связанные со сбором данных, например, открывать электронные письма и вложения, собирать статистику в социальных сетях, извлекать данные из предварительно указанных полей в документах, считывать требуемые данные из баз данных и электронных таблиц, и так далее.
Традиционные RPA-инструменты способны работать только со структурированными и слабоструктурированными данными. Когда необходимо обрабатывать неструктурированные данные (которые, как мы помним, составляют 80-90% потенциально полезного контента), требуются более сложные решения на основе ИИ.
Интеллектуальная обработка документов
Intelligent document processing (IDP) включает в себя:
- OCR для извлечения текста из сканов,
- RPA для выполнения монотонных манипуляций со структурированными и слабоструктурированными данными, и
- методики машинного обучения, в частности, компьютерное зрение и NLP, для классификации документов на основании текстов, изображений или визуальной структуры, извлечения значимой информации, очистки, упорядочивания и разметки неструктурированных данных с целью их подготовки для обучения моделей машинного обучения.
Веб-скрейпинг
Веб-скрейпинг — это автоматизированный способ сбора, фильтрации и структурирования данных с веб-сайтов. Обычно веб-скрейперы или боты обходят множество веб-страниц, собирая цены, подробности о товарах, комментарии пользователей и многое другое.
Стоит заметить, что не каждый вид веб-скрейпинга легален. Вы можете свободно скрейпить собственный веб-сайт и, в большинстве случаев, собирать публично доступные данные в Интернете (если они не скрыты за логином).
Однако некоторые типы данных защищены нормами права. В основном это касается личных данных — фамилий, паспортных данных, контактов, мест, предпочтений в шопинге, видеозаписей людей, политических мнений и так далее. Например, принятый в ЕС закон General Data Protection Regulation (GDPR) применим к любой информации, которую можно использовать для идентификации европейского гражданина.
Кроме того, стоит помнить о том, что многие онлайн-сервисы запрещают скрейпинг. Airbnb не разрешает использовать «любых роботов, пауков, краулеров, скрейперов и других автоматизированных средств или процессов доступа или сбора данных и другого контента, а также любые иные способы взаимодействия с платформой Airbnb Platform для любых целей». Поэтому перед запуском веб-бота следует тщательно изучить правила пользования веб-сайтом.
Также можно собирать данные при помощи веб-форм, современных чат-ботов и других инструментов, или автоматически собирать их с датчиков, IoT-устройств и систем терминалов оплаты. Но как бы то ни было, сбор данных и его методики не могут быть успешными без наличия места для хранения данных.
Объём данных: сколько собирать
Иногда ответ достаточно очевиден. Например, если вы хотите провести анализ месячных или годовых показателей своего гостиничного бизнеса, то в течение заданного периода времени (месяца, года и так далее) собираете важные KPI отеля, например, среднюю стоимость номера и доход на свободный номер.
Но что, если вы не только хотите понять текущее состояние дел, но и спрогнозировать, как ситуация будет развиваться в будущем? Предиктивная аналитика, способная предсказывать, что будет дальше, требует гораздо больше данных, чем дескриптивная аналитика, дающая нам понимание того, что уже произошло.
Конкретный объём сильно зависит от ваших целей и сложности используемого алгоритма. Прогнозировать спрос можно на основании традиционных статистических моделей. Для получения точных результатов рекомендуется собирать данные о продажах в течение не менее двух лет.
При разработке моделей машинного обучения необходимы исторические данные за много лет (самый минимум — за два-три года), дополненные текущей информацией. Суммарно датасеты, подготавливаемые для проектов машинного обучения, насчитывают тысячи примеров данных. Модели глубокого обучения потребляют ещё больше — десятки и сотни тысяч примеров. При обучении на маленьких датасетах они не дадут точных прогнозов.
Просто для справки: для прогнозирования степени заполненности номеров при помощи модели временных последовательностей на основе CNN мы выполняли обучение на исторических данных с 140 тысячами примеров данных. А для проекта анализа эмоциональной составляющей наша команда data science подготовила датасет с отзывами, содержащими 100 тысяч примеров. Однако стоит отметить, что правило «чем больше данных, тем лучше», работает только до определённой точки.
Как когда-то объяснил Александр Кондофуров, ведущий проекты data science в AltexSoft, «Первая тысяча примеров даст вам, например, точность в 70%. Каждая дополнительная тысяча тоже будет давать прирост точности, но с меньшей скоростью. Допустим, при 15 тысячах примеров вы можете достичь 90%, а 150 тысяч дадут 95%. В какой-то момент кривая роста спрямится и после этого добавление новых примеров не будет иметь никакого смысла».
Репозитории данных: где хранить собранные данные
Виды и объёмы собираемых данных определяют выбор репозитория данных. Во многих случаях компаниям нужно комбинировать несколько технологий для адаптации различной информации. Давайте рассмотрим основные варианты, из которых можно выбирать.
Реляционные или нереляционные базы данных
Как мы говорили выше, реляционные или SQL-базы данных предназначены для структурированных или табличных данных. Среди прочего, их стоит выбирать для сбора и хранения финансовых транзакций, списков инвентаризации, предпочтений клиентов, дел сотрудников и подробностей бронирования. Согласно проведённому в 2023 году опросу Stack Overflow, самыми популярными SQL-решениями пока являются PostgreSQL, MySQL, SQLite, и Microsoft SQL Server.
Нереляционные базы данных подходят для видов и структур данных, отличающихся от таблиц. Они более масштабируемы, чем SQL, и способны справляться с бОльшими объёмами данных. В зависимости от поддерживаемого формата данных, репозитории NoSQL могут быть:
- основанными на документах для файлов JSON и имеющих схожую с JSON структуру (MongoDB, Amazon Document DB и Elasticsearch);
- хранилищем данных «ключ-значение», представляющим каждый элемент данных как пару имени или ключа атрибута (гендер, цвет, цена и так далее) и его значения (мужчина, красный $100 и так далее). Самые популярные примеры этого типа — Redis и Amazon DynamoDB;
- столбчатые, упорядочивающие данные в виде наборов столбцов, а не хранящие их в строках, как в SQL-базах данных. Хорошо известными столбчатыми технологиями являются Apache HBase и Apache Cassandra, принадлежащие к экосистеме big data Hadoop;
- графовыми, предназначенными для графовых структур, где примеры данных соединены при помощи определённых связей, как в Neo4J, Amazon Neptune и OrientDB.
Хранилища/витрины/озёра данных
С ростом объёмов и разнообразия данных бизнес сталкивается с потребностью в централизованном месте для сбора и хранения информации. Такой единый репозиторий позволяет компаниям избегать обособленных баз данных, помогает консолидировать контент и делает его доступным различным специалистам организации. Существует две отличающиеся, возможно, даже противоположные архитектуры хранения больших датасетов — хранилище и озеро данных.
Разница между хранилищам, озёрами и витринами данных.
Хранилище данных (data warehouse, DW) — это, по сути, большая реляционная база данных, содержащая структурированные (а иногда слабоструктурированные) данные из всех отделов и служащая в качестве единственного источника истины для всей компании. Для извлечения информации из различных источников и упорядочивания её в единый формат DW используют процесс Extract, Transform, Load (ETL), подготавливая её для аналитики данных и BI.
Более мелкие и простые сегменты DW, предназначенные для одного направления или отдела бизнеса называются витринами данных (data mart). Они позволяют командам быстрее получать доступ к конкретным данным и анализировать их.
Озеро данных (data lake) содержит сырые данные вне зависимости от их структурированности. Эта архитектура подходит в ситуациях, когда организация собирает много информации, но пока не решила, что с ней делать. В отличие от DW, где обычно используется ETL, озёра данных работают с Extract, Load, Transform (ELT) — процессом, обеспечивающим быстрое потребление данных, но не готовящим их для применения в бизнесе.
Относительно новая архитектура под названием data lakehouse — это нечто среднее между хранилищами и озёрами, она объединяет преимущества обоих этих подходов.
Советы по сбору данных
Организуйте команду сбора данных
Хотя при сборе данных могут задействоваться десятки людей из различных отделов или даже за пределами компании, вам определённо нужна команда специалистов для контроля потока сбора данных, решения возникающих проблем, привлечения и обучения новых участников. Важно время от времени проводить проверку процесса, чтобы обеспечить всеобщее понимание ситуации.
Создайте план и установите график сбора данных
Всё перечисленное выше должно преобразоваться в чёткий и краткий план сбора данных. Он будет содержать информацию о сферах ответственности в команде, требования к собираемым данным, релевантные источники данных, применяемые инструменты и методики, а также места хранения информации.
Возможно, вам потребуется постоянный мониторинг каких-то данных, например, финансовых транзакций или статистики предпочтений клиентов. Но если вы проводите конкретную кампанию, например, опрос для определения мнения клиентов о вашем новом продукте, то установите время начала и завершения сбора.
Обеспечьте целостность данных
Целостность данных нужна для проверки качества данных и управления им, полноты и согласованности на каждом этапе жизненного цикла данных. Но всё это начинается с процесса сбора. Вне зависимости от того, выполняется ли он вручную или автоматически, необходимо создать чёткие пошаговые инструкции о том, как проверять вводимые данные, удалять дубликаты данных и создавать резервные копии данных. Время от времени нужно проверять следующие атрибуты собираемых данных:
- атрибутированность — то есть наличие метаданных о том, кто и когда собрал их;
- читаемость или разборчивость;
- своевременность — записаны ли данные в момент их генерации;
- оригинальность; и
- точность, или отсутствие ошибок, верное отражение наблюдений.
Учитывайте безопасность и конфиденциальность данных
Как мы говорили ранее, персональные данные защищаются GDPR и другими законами (например, Consumer Privacy Act штата Калифорния или CCPA). Согласно принципам GDPR, бизнесы должны по возможности работать с анонимными данными. В противном случае они должны сообщать людям, о которых собирается персональная информация, для каких целей она будет использоваться, как долго будет храниться и многое другое (полный список можно посмотреть здесь).
В общем случае рекомендуется собирать только те подробности, которые релевантны заявленной цели. Например, если вы управляете системой аренды автомобилей, то для повседневной работы и аналитики вам могут понадобиться такие данные о клиентах, как адрес, телефонный номер, места поездок и даже информация об инвалидности (данные о здоровье). Однако при этом нет необходимости спрашивать об этническом происхождении или уровне образования.
Разработайте и внедрите политики data governance
Если сбор данных не является единовременным событием, то установите в своей компании политики data governance. Они будут диктовать способы сбора, хранения и обработки данных, а также определять людей, которые должны иметь доступ к этому контенту. Среди прочего, стандарты data governance гарантируют, что задействованные в сборе информации люди будут выполнять его согласованно и следовать одним правилам.
- Сбор данных
- интеграция данных
- потребление данных
- Data Collection
- Structured data
- Semi-structured data
- Unstructured data
- OCR
- RPA
- data governance
- Анализ и проектирование систем
- Data Mining
- Хранение данных
- Машинное обучение
- Data Engineering
Большие данные. Этапы работы с большими данными.
Хочу порассуждать на тему «Больших данных», их применении в проектах и использовании в повседневной жизни, работе и учебе.
Для начала разложим по полочкам само определение «Большие данные», их еще называют «Big data», «Биг дэйта» или «Хьюдж дэйта». Из чего они состоят и откуда берутся? Я буду пользоваться русским вариантом этого термина для простоты.
Определение
«Большие данные» — это некий набор данных, который обрабатывается при помощи специальных программ. Программы позволяют получить на выходе информацию, которую способен понять и обработать человеческий мозг. Это определение не официальное, я его сформулировал сам, поэтому, может быть где-то есть более точное определение, буду рад, если укажешь источники.
В какой момент простые данные становятся большими?
Однозначного ответа на этот вопрос нет, поэтому будем считать, что большими данные становятся тогда, когда их нельзя обработать стандартными офисными программами типа Excel. Но это, конечно, условности. Когда-то для вычисления расчетов в институтах приходилось записываться в очередь, а саму программу расчета приходилось писать сначала на бумаге. И казалось, что это какое-то чудо чудесное. Сейчас такие расчеты можно сделать у себя дома и никуда не записываться.
Думаю, так же случится и с «Большими данными», вернее, уже постепенно случается, благодаря развитию компьютеров и облачных технологий. И понятие «Большие данные» уйдет в архив, а ему на смену придет что-то новое и интересное, вроде «Квантовые данные», которое весело и радостно подхватят СМИ, и все будут им пользоваться. И «Большие данные» вновь станут просто данными.
Тогда что имеют в виду, когда говорят «Мы проанализировали при помощи «Больших данных»?
Это значит, что при принятии решений для конкретного случая были приняты во внимание данные от аналитика, который провел анализ при помощи специальной или специальных программ над конкретным массивом данных. В этом одном простом на первый взгляд предложении может быть заключена работа нескольких десятков, а то и сотен людей. А может быть и одного, все завысит от размера компании.
Основные этапы работы с большими данными
Работу с «Большими данными» можно разбить на пять основных этапов. Это не уникальное разделение, а скорее нормальный, взвешенный подход к работе с данными в принципе.
- Подготовка к сбору данных
- Сбор, преобразование и хранение
- Анализ данных
- Принятие решений и выполнение необходимых работ по результатам принятых решений
- Обратная связь
Подготовка к сбору данных
На этом этапе любая компания организует инфраструктуру и сервисы для того, чтобы создать платформу, на которой будет строиться вся остальная работа с «Большими данными». Надо установить и настроить серверы. Купить или написать программы, которые будут давать возможность правильно записывать, хранить и использовать данные. Обучить персонал или отдать на обучение, чтобы в дальнейшем поддерживать работоспособность всей этой инфраструктуры.
Сбор, преобразование и хранение
Данные в компанию могут поступать из разных источников, как внутренних, так и внешних. Их все необходимо преобразовать в нужный и определенный на первом этапе вид, а затем направить на хранение для последующего анализа. Если все было сделано правильно на первом этапе, то здесь не должно возникнуть трудностей. Если у вас быстро растущая компания, то могут и появиться, конечно. Например, у вас в компании на старте не было оффлайн магазинов, и данные о продажах поступали только от интернет-сайта, а через какое-то время у вас появилась сеть магазинов, данные о продажах в которых необходимо также получать и хранить для последующего анализа.
Анализ данных
Как следует из названия самого этапа, здесь и происходит основной анализ данных: выдвижение гипотез, построение моделей, тестирование уже построенных моделей и много другой интересной работы. Тут хочется написать, что это и есть основной этап, ради которого и затевается работа с «Большими данными», но нет. Работа с большими данными в компании строится не ради самого анализа, а ради того, чтобы при принятии решений можно было опираться на еще один источник данных.
Принятие решений и выполнение необходимых работ по результатам принятых решений
Вот именно ради этого этапа и затевается вся эта движуха с «Большими данными». По результатам принятых решений на основе «Больших данных» инициируются проекты и приступают к их реализации. Это может занимать от нескольких часов, дней, до нескольких лет. Все, как обычно, зависит от отрасли и размеров компании.
Обратная связь
И последний, но не менее важный этап при работе с большими данными — это обратная связь. На этом этапе анализируются результаты выполненных проектов на основе больших данных. Сравнивается «план/факт» и делаются соответствующие выводы о предложенных гипотезах, их реализации и работе. На этом этапе аналитик больших данных получает много полезных инсайтов, которые в дальнейшем можно использовать в работе и выходить на новый цикл работы с большими данными.
В заключении
Сами по себе «Большие данные» ничего не значат. Результат работы с «большими данными» — это не модели и расчеты, а решения, которые могут быть приняты благодаря расчетам и моделям. В работе с «большими данными» очень важна обратная связь от внешнего мира и постоянная корректировка расчетов и моделей с поправкой на эту обратную связь.
Как реализовать систему больших данных
Меня часто спрашивают о «big data» («больших данных»), но чаще всего мне кажется, что мы говорим на разных уровнях абстракции и понимания. Сразу говорить о продуктах, применяя такие слова, как «в режиме реального времени» (real time) или «продвинутая аналитика» (advanced analytics), на мой взгляд, не самая хорошая идея. Поэтому давайте сделаем шаг назад и посмотрим, что большие данные означают с точки зрения использования, а затем включим этот пример в общую картину пригодной к применению инфраструктуры высокого уровня. По мере того, как мы будем проходить через все это, вы, я надеюсь, начнёте видеть общую картину и понимать, как вписываются в неё вписываются такие слова, как «real time» (в режиме реального времени) и «analytics«(аналитика).
Пример использования с точки зрения бизнеса
- Увеличение трафика магазина в торговом центре;
- Увеличение доходов за посещение магазина и за транзакцию.
- Уменьшение процента покупателей, несовершивших покупок.
Что нужно вам?
С технологической точки зрения вы бы обратили внимание на следующее:
- Интеллектуальные (smart) устройства с индивидуальной информацией о местоположении;
- Сбор данных и принятие решений по взаимодействию и аналитике в режиме реального времени;
- Хранение и обработка данных для пакетно-ориентированной аналитики.
В терминах наборов данных вам хотелось бы иметь, по крайней мере, следующее:
- Клиентские профили, привязанные к человеку и связанные с устройством для его идентификации (телефон, карта лояльности и т.п.)
- Достаточно высокая дисперсионность сегментации клиентов, связанная с подробностями поведения покупок и дополнительными сведениями, как-то: использование купонов, покупки из списка предпочитаемых продуктов и следование другим продуктовым рекомендациям.
Компоненты высокого уровня
Схема, показанная на рис. 2, стоит тысячи слов, так как она показывает и инфраструктуру принятия решения в реальном времени, и пакетную обработку данных, модель сгенерированной (аналитика) инфраструктуры.
Рис. 2. Пример инфраструктуры
Первый и, пожалуй, самый важный шаг, а также самая важная часть данных — это идентификация клиента. В данном случае на шаге 1 определяется то, что пользователь смартфона входит в торговый центр. Определив это, мы инициируем поиск на шаге 2а или на шаге 2b в базе данных пользовательских профилей.
Мы обсудим это чуть более позднее, но в общем случае это база данных, использующая индексную структуры, чтобы выполнить быстрый и эффективный поиск. Как только мы найдем реального заказчика, мы переносим его профиль в нашу экспертную систему реальном времени (шаг 3).
Модули экспертной системы (заказное программное обеспечение или COTS (Commercially available Off-The-Shelf)) оценивают заказы и профиль и определяют, какие нужно предпринять действия (например, отправить купон). Все это происходит в режиме реального времени. Имея в виду, что Web-сайты делают нечто подобное в течение нескольких миллисекунд, то наш смарт-центр, вероятно, будет весьма хорош (ОК), если сделает это в течение секунды или около того.
Для создания точных моделей – эти слова также входят шумовой набор модных словечек больших данных (big data buzz) – мы добавляем в систему пакетно-ориентируемую массивно-процессинговую структуру ( a batch-oriented massive-processing farm). Нижняя половина рис. 3 показывает, как мы усиливаем набор компонентов, среди которых Apache Hadoop и распределенная файловая система Apache Hadoop (Apache Hadoop Distributed File System – HDFS), чтобы создать модель поведения покупателя. Как правило, для этого усиливается базу данных (или хранилище данных [DW]). Мы всё сделаем, но ещё мы усилим инфраструктуру, которая предшествует базе данных/хранилищу данных, чтобы получить ещё больше количество данных и иметь возможность непрерывно переоценивать все данные.
Рис.3. Создание модели покупательского поведения
Несколько слов об источниках данных. Одним из ключевых элементов является точка продаж (point-of-sale – POS)данных (в реляционной базе данных), которую вы хотите связать с информацией о клиентах (из вашего Web-хранилища, с сотового телефона или с карты лояльности). На рис. 2 и 3 NoSQL база данных с профилями клиентов показана как веб-хранилище. Очень важно убедиться, что там эти многоканальные данные, полученные с Web-браузера, от покупка, с помощью поиска или социальных медиа-сетей, интегрируются (и дедуплицируются, но это другая тема).
После того, как будет сделана взаимосвязь и интеграция данных, можете выяснить поведение человека. В сущности большие данные позволяют микросегментацию на персональном уровне для каждого из миллионов ваших клиентов!
Конечной целью всего этого является построение высокоточной модели, которая в режиме реального времени размещается в устройстве принятия решений. Цель модели напрямую связана с упомянутыми ранее бизнес-целями. Другими словами, можете ли вы вручить клиенту купон в то время, как клиент находится в торговом центре, что подвигнет клиента зайти в ваш магазин и потратить деньги?
Детализация потоков данных и продуктовые идеи
Далее, как следует реализовать эти положения с реальными продуктами и каков поток данных в рамках этой экосистемы? Ответ приводится в следующих разделах.
Шаг 1: Сбор данных
Для просмотра, сбира и принятия решения по данным, нужно реализовать распределённую систему. Поскольку устройства постоянно продолжают посылать данные, нужно иметь возможность без особых задержек загружать (собирать или запрашивать) данные. Это делают пункты сбора данных, показанные на рис. 4. Они же – место для оценки данных в режиме реального времени. Мы позже вернемся к этим пунктам сбора данных.
Рис. 4. Точки сбора
Данные из точек сбора поступает в кластер Hadoop, который, в нашем случае, представляет собой инженерную систему Oracle Big Data Appliance. В эту систему можно также загрузить другие данные. Социальные каналы (social feeds), показанные на рис. 4, принимают данные, например, от агрегаторов (как правило, это компании) данных, которые сортируется соответствующими хэш-тегами. Затем вы используете лоток (Flume) или стило (Scribe) для загрузки данных в Hadoop.
Шаг 2: Сличение и перемещение данных
Следующим шагом будет добавление данных (социальные каналы, профили пользователей и любые другие данные, необходимые для получения результатов анализа) и начало сличения, интерпретации и понимания данных
Рис.5. Сличение и интерпретация данных
Например, добавить профили пользователей из социальных каналов или добавить данные о местоположении для полного понимания отдельного пользователя и модели, связанной с ним. Как правило, это делается с помощью инструмента Apache Hadoop MapReduce. Профили пользователей загружаются в базу данных Oracle NoSQL в пакетном режиме через интерфейс Hadoop InputFormat и тем самым добавляются в наборы данных MapReduce.
Чтобы совместить все это с данными POS (точка продаж — point-of-sale — POS), управления отношениями с клиентами (CRM) и другими различных видов транзакционными данными, нужно использовать Oracle Big Data Connectors, чтобы эффективно переместить предварительно обработанные, редуцированные данные в базу данных Oracle.
Теперь у вас есть полное представление о данных, которые вы после того можете обработать как с помощью Oracle Exalytics, так и средствами бизнес-аналитики (BI), а также, и это самое интересное, посредством таких инструментов, как data mining (интеллектуальный анализ данных).
Рис. 6. Перемещение редуцированных данных
Шаг 3: Анализ данных
Это последний этап, названный здесь «analyze» (анализ), представляет собой создание моделей интеллектуального анализа (data mining) и статистических моделей (statistical models), которые используются для получения купонов. Эти модели являются настоящими драгоценными камнями в короне, потому что они позволяют принимать решения в режиме реального времени на основе очень точных моделей. Модели составляют коллекцию и применяются в точках принятия решений в реальном времени, что показано в рис. 7.
Рис 7. Анализ Данных
На рис. 7 вы видите, что серая модель (gray model) используется в Expert Engine (экспертный механизм). Эта модель описывает и предсказывает поведение отдельного клиента и, исходя из вычисленных прогнозов, определяет, какие надо предпринять действия.
Заключение
Описанное выше – это взгляд из конца в конец «big data» («большой данные») и решения в реальном времени. Большие данные позволяют использовать огромные объемы данных и вычислительные ресурсы для получения точных моделей. Они также позволяют определить такие виды вещей, которых мы даже не ожидали, для которых создаются более точные модели, а также возникают и реализуются новые идеи, новый бизнес и так далее.
Вы можете реализовать показанное здесь решение, используя инженерную систему Oracle Big Data Appliance. Вам просто нужно найти несколько человек, которые понимают программные модели для создания подобных коронных драгоценностей (crown jewels).
Этапы сбора и представления больших данных для построения социального профиля человека Текст научной статьи по специальности «Компьютерные и информационные науки»
BIG DATA / DATA SCIENCE / БОЛЬШИЕ ДАННЫЕ / ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / ИНФОРМАЦИОННАЯ СИСТЕМА / СТРУКТУРИРОВАННЫЕ И НЕСТРУКТУРИРОВАННЫЕ ДАННЫЕ / СОЦИАЛЬНЫЙ ПРОФИЛЬ ЧЕЛОВЕКА / BIA DATA / LARAE DATA / SOFTWARE / INFORMATION SVSTEM / STRUCTURED AND UNSTRUCTURED DATA / SOCIAL PROFILE OF A PERSON
Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Мартышкин Алексей Иванович, Сальников Игорь Иванович, Пащенко Дмитрий Владимирович
Рассматриваются основные этапы и процесс представление больших данных для выборки информации, необходимой для построения социального профиля человека . Анализируются системы и сервисы по сбору данных, в том числе социальных сетей, предлагающие широкий спектр возможностей. Среди них есть достаточно большие системы, а также проекты, помогающие легально собирать информацию. Описаны алгоритмы системы для сбора информации из открытой социальной сети Вконтакте для эффективного решения поставленных задач. В заключении сделаны некоторые выводы по работе.
i Надоели баннеры? Вы всегда можете отключить рекламу.
Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Мартышкин Алексей Иванович, Сальников Игорь Иванович, Пащенко Дмитрий Владимирович
Исследование процесса идентификации человека в сетях открытого доступа и построения его социального профиля на основе технологий Big data
Использование технологий вig dата для построения социального профиля человека на основе открытых источников информации
Исследование процесса анализа текстовых и мультимедиа данных социального профиля из открытых источников информации
Исследование актуальных способов публикации открытых научных данных в сети
Анализ данных на основе плат формы sql-mapreduce
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.
THE STAGES OF COLLECTION AND PRESENTATION OF BIG DATA TO BUILD A SOCIAL PROFILE OF THE PERSON
The article considers the main staaes and process of presentina \arae data for sam-p\ina the information necessarv for buildina a social profile of a person. Analvzed svstems and services for data collection, includina social networks, offerina a wide ranae of opportunities. Amona them, there are quite larae systems, as well as projects that help to leaallv collect information. The alaorithms of the svstem for collectina information from an open social network Vkontakte for efficient solution of tasks are described. In conclusion, aiven some concl usi ons on the work.
Текст научной работы на тему «Этапы сбора и представления больших данных для построения социального профиля человека»
Key words: parallel computing system, processor module, memory, shared bus, interaction interface, bus width, memory bundle.
Martyshkin Alexey Ivanovich, candidate of technical sciences, docent, alex-ey314@yandex. ru, Russia, Penza, Penza State Technological University,
Kostrov Boris Vasilevich, doctor of technical science, professor, head of chair, kostrov. b. v@evm. rsreu. ru, Russia, Ryazan, Ryazan State Radio Engineering University
ЭТАПЫ СБОРА И ПРЕДСТАВЛЕНИЯ БОЛЬШИХ ДАННЫХ ДЛЯ ПОСТРОЕНИЯ СОЦИАЛЬНОГО ПРОФИЛЯ ЧЕЛОВЕКА
А.И. Мартышкин, И.И. Сальников, Д.В. Пащенко
Рассматриваются основные этапы и процесс представление больших данных для выборки информации, необходимой для построения социального профиля человека. Анализируются системы и сервисы по сбору данных, в том числе социальных сетей, предлагающие широкий спектр возможностей. Среди них есть достаточно большие системы, а также проекты, помогающие легально собирать информацию. Описаны алгоритмы системы для сбора информации из открытой социальной сети Вконтакте для эффективного решения поставленных задач. В заключении сделаны некоторые выводы по работе.
Ключевые слова: Big Data, Data science, большие данные, программное обеспечение, информационная система, структурированные и неструктурированные данные, социальный профиль человека.
Под обобщающим термином «Большие данные» (Big Data) принято понимать любые наборы данных, довольно большие и сложные для того, чтобы их можно было обработать традиционными средствами работы с данными [1, 2]. Повсеместно и широко применяемые сегодня реляционные системы управления базами данных (РСУБД) давно и признанно считаются универсальным инструментом, но их возможностей сегодня недостаточно, чтобы осуществлять обработку больших данных. В концепцию data science входит использование методов анализа огромных объемов данных и извлечения содержащейся в них полезной информации. Связь между machine learning, data science и большими данными такая же, как например, между сырой нефтью и обрабатывающими ее предприятиями. Большие данные и data science развивались на базе статистики и традиционного управления данными, но в настоящее время являются разными дисциплинами.
В свою очередь, термин «Data science» — это наука, основанная на данных, позволяющая использовать теоретические, математические, вычислительные и другие практические методы для изучения и оценки данных. Основная цель заключается в извлечении необходимой или ценной информации, которая может использоваться для нескольких целей, таких как принятие решений, разработка продукта, анализ тенденций и прогнозирование. «Data science» непосредственно связана с большими данными, умение работать с этими технологиями, а также знания в сфере машинного обучения и организации вычислений и построения алгоритмов — это то, что отличает data scientist от обычного статиста [2].
Актуальность темы исследования заключается в том, что сегодня прослеживается вездесущее проникновение информационных технологий в жизнь современного человека, в независимости от его сферы деятельности. Все это несет с собой огромное количество плюсов, которые несомненно положительно сказываются на деятельности человека.
Обычно каждый проект с применением data science проходит несколько этапов или жизненных циклов, от постановки задачи, до ее визуализации или представления готового решения [2]. В статье будет рассмотрен каждый из этих этапов более подробно на примере оптимизации продаж. Наглядная схема процесса data science представлена на рис. 1.
Процесс data science
1 Постановка цели исследования
3. Подготовка данных
4 Исследование данных
5 Моделирование данных
6. Отображение и автоматизация
Рис. 1. Стадии процесса data science
Для того чтобы начать работу с данными, нужно выполнить ряд шагов, показанных на рис. 1, а именно:
Задать проблему, определить цель исследования: кто Ваш клиент? Что именно клиент хочет от Вас? И другие вопросы, определяющие проблемы и цели.
Собрать необработанные данные, для решения проблемы: доступны ли эти данные? Если да, то какие части данных полезны? Если нет, то какие данные нам еще нужны? Какие ресурсы (время, деньги, инфраструктура) потребуется для сбора этих данных в удобной и понятной форме?
Подготовить и обработать данные: сначала нужно очистить данные, чтобы преобразовать их в форму, которую можно продолжить анализировать в более удобной форме.
Провести исследование данных: после очистки данных исполнитель должен понимать информацию, содержащуюся на высоком уровне. Какие очевидные тенденции или корреляции видны в данных? Определяется, каковы характеристики высокого уровня и какие из них более значительны, чем другие?
Построить модель данных: это самый главный этап вашего проекта, где нужно применить все технологии для анализа данных.
Покажите результат: визуализируйте то, что получилось в ходе исследования.
Представим более детально стадии процесса data science.
Постановка цели исследования
На данном этапе должно возникать много всевозможных вопросов: Кто такие клиенты, и как их идентифицировать? Как выглядит процесс продажи в настоящее время? Какую информацию необходимо собирать о потенциальных клиентах? Каковы сейчас уровни обслуживания?
Цель разработчика — заглянуть в голову своего клиента и понять, что он хочет. Эти знания станут неоценимы позже, когда будут проанализированы данные и найденная информация. Понимание всех целей и проблем — неотъемлемая часть успеха будущего проекта.
Для того чтобы начать процесс сбора данных, нужно удостоверится что эти данные существуют, и узнать о том, если ли доступ к ним.
Предположим мы знаем, что большая часть данных клиента, созданных отделом продаж, хранится в программном обеспечении CRM (Customer Relationship Management — управление взаимоотношениями с клиентами) компании и управляется командой Sales Operations. Бэкэнд для инструмента CRM — это база данных SQL с несколькими таблицами. Однако этот инструмент также предоставляет очень удобный веб-интерфейс, возвращающий данные в формате JSON. Но получение данных, даже из готовой базы не всегда является простой задачей. Каждая организация заботится о свой безопасности и конфиденциальности информации, поэтому сотрудник, который занимается работой с данными, должен следить за тем, чтобы не нарушать закон.
На данном этапе работа с данными не заканчивается, их еще нужно проверить и убедиться в их чистоте. Этот этап зачастую занимает большую часть времени в повседневной работе сотрудника. Каждая допущенная ошибка может быть чревата при дальнейшей работе. Специалист data science анализирует данные в процессе их импорта, подготовки и исследования.
Подготовка подразумевает собой проверку на совпадения, правильность типов данных, а также обнаружение недостающих и поврежденных данных.
Рассмотрим основные дефекты, встречающиеся в данных и требующие устранения. Это в первую очередь ошибки ввода данных, а также избыточные пробелы, расхождения в регистре символов, недопустимые значения, выбросы, отсутствующие значения, отклонение от общих правил, разные единицы измерения, разные уровни агрегирования.
После извлечения необходимых данных много времени тратится на их подготовку и очистку. Углубленное изучение данных — вот что происходит на этом этапе. Исследование данных должно принести более глубокое их понимание. Для этих целей применяют описательные статистики и простое моделирование. Здесь можно применить различные способы визуализации, от простых диаграмм и графиков, до графов и диаграмм Sankey, пример которой представлен на рис. 2.
Trocknung Eigen- Stützgas 5 MWti (Strom * Wärme) strombedarf & Schmieröl 6l
Einspeisung ins Stromnetz
Abnehmer am Netz
HS (W40) 4.838 MWh
Рис. 2. Диаграмма Sankey
Рассмотрим основные приемы визуализации данных. На рис. 3 представлен метод объединения диаграмм, на рис. 4 показан метод наложения диаграмм, а на рис. 5 приведен метод связывания диаграмм, в котором изменения в одной из диаграмм, переносятся в другую.
Рис. 3. Метод объединения диаграмм
Рис. 4. Метод наложения диаграмм
ц 0.05 0.5 0.15 02
О 0.05 01 0.15 0.2
Рис. 5. Метод связывания диаграмм
Все эти методы имеют форму визуализации, но никто не запрещает на этом этапе применять и другие методы, например, кластеризацию.
Этот этап подразумевает использование ранее полученной информации о данных. Здесь применяются методы из области статистики, исследования операций, машинного обучения и т.д. Процесс моделирования состоит из четырех шагов: планирование показателей и выбор модели, исследование модели и получение результатов, проверка адекватности созданной модели, применение отлаженной модели к исследуемым данным.
Отображение и автоматизация
На последней стадии осуществляется представление и визуализация полученных результатов. Это может быть совершенно любая форма представления: обычные отчеты, презентации, инфографики или приложения, главный критерий — наглядность. Автоматизация процесса, в свою очередь, призвана экономить время, т.к. некоторые задачи требуют неоднократного выполнения.
Разработка программного и информационного обеспечения
В качестве предметной области определим проблему найма сотрудника на работу. Найм — процесс, включающий в себя ряд действий, направленных на привлечение кандидатов, обладающих качествами, необходимыми для достижения поставленных организацией целей.
Наличие компетентных сотрудников в компании определяет успешность самой компании. Поэтому проблема найма таких сотрудников как никогда актуальна. В связи с этим далее будет рассматриваться возможность решения данной проблемы методами data science. В качестве основного источника здесь будут выступать социальные сети [3-5]. Информация, которую содержит страница в соцсети, может довольно точно охарактеризовать ее владельца.
Допустим, существует человек, интересующийся IT или программированием. Скорее всего, эта информация может быть отражена на его странице в сети, если таковая имеется. Информацией может быть заполненная строка интересов, список сообществ, в которых состоит человек и его активность в них.
При составлении социального профиля человека можно ограничится минимальными параметрами: фамилия, имя, пол, дата рождения, URL-адрес профиля в социальной сети, характеристика.
Рассмотрим архитектуру предлагаемого решения. Кроме web-приложения, серверная часть системы включает в себя следующие компоненты: планировщик, поисковый робот, служба обработки данных, сервер реляционных баз данных, сервер NoSQL хранилищ данных.
Основная задача, решаемая планировщиком, — это обновление и дополнение социальных профилей кандидатов на должность, уже имеющихся в базе данных, по истечении заданного интервала времени. Этот меха-
низм призван поддерживать актуальность данных, в силу того, что социальный профиль кандидата может постоянно изменяться в зависимости от его активности в социальных сетях.
Поисковый робот занимается сбором всей информации, доступной для чтения, и сгенерированной активностью кандидата в социальных сетях. Робот может быть запущен как вручную, из web-интерфейса, так и планировщиком.
Служба обработки данных призвана обрабатывать собранные «сырые» данные. Под обработкой в данном случаем будем понимать процесс очистки (предварительной подготовки) данных и их последующее использование в процессе формирования социального профиля кандидата на вакансию.
Сервер реляционных баз данных. Представляет собой СУБД, на которой расположены две реляционные базы данных: база данных web-приложения (сайта) и база данных поискового робота. База данных web-приложения кроме того, что хранит информацию о зарегистрированных в системе пользователях и их настройках, также хранит информацию о найденных социальных профилях кандидатов на вакансию и критериях их поиска. Данная база используется самим web-приложением, а также службой обработки данных, которая хранит в ней сформированные социальные профили. База данных поискового робота хранит информацию о том, что необходимо искать, и о том где это искать. Данная база используется только поисковым роботом.
Сервер хранилищ представляет собой временное хранилище
необработанных «сырых» данных кандидата на вакансию. Используется поисковым роботом и службой обработки данных. Поисковый робот использует хранилище для размещения в нем всей собираемой информации, нуждающейся в обработке. Служба обработки данных производит предварительную обработку этих данных, после чего формирует на их основе социальный профиль кандидата и помещает его в базу web-приложения. Обработанная информация в силу того, что была преобразована к реляционной форме, теряет свою актуальность и удаляется. Такой тип информации стоит относить к классу темпоральных данных — данных, связанных с некой конкретной временной меткой.
Перейдем к описанию основных функциональных возможностей, доступных пользователю посредством web-интерфейса системы.
В первую очередь, определим категории пользователей системы -это гостевые и зарегистрированные пользователи. Рассмотрим их отличия. Гостевой пользователь имеет существенные ограничения на функциональные возможности информационной системы. Это демонстрационное формирование социального профиля, регистрация в системе, вход в систему.
Зарегистрированный пользователь имеет в своем распоряжении полную функциональность информационной системы. В перспективе можно произвести разделение данной категории пользователей по тарифным планам. Согласно последним могут быть наложены ограничения на
настройки планировщика, объемы обрабатываемой информации, количество кандидатов на вакансию и др. На данном этапе рассмотрим следующие базовые функциональные возможности: выход из системы, демонстрационное формирование социального профиля, управление учетной записью в системе, формирование социального профиля, подбор социальных профилей по имеющемуся социальному профилю; подбор социальных профилей по вручную заданным критериям, просмотр социальных профилей в базе данных, поиск социальных профилей в базе данных.
Рассмотрев функционал web-интерфейса, перейдем к описанию бизнес-логики наиболее важных бизнес-процессов описываемой информационной системы.
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
Основным бизнес-процессом является формирование социального профиля кандидата на вакансию. Алгоритм принимает на вход идентификатор пользователя социальной сети, после чего производится последовательный вызов следующих операций: сбор открытых данных пользователя, обработка собранных данных, формирование социального профиля. Затем, когда социальный профиль будет полностью сформирован, производится проверка наличия такого профиля в базе данных. В случае если профиль найден, он будет расширен дополнительными данными, в противном случае будет создан новый профиль. Создание и обновление социального профиля сопровождается созданием временных меток. Это позволяет анализировать динамику изменений социального профиля кандидата на вакансию, что может нести в себе немало полезной информации. Данный процесс, в силу того, что используется другими процессами, является базовым для всей информационной системы и никак не выражается напрямую в пользовательском интерфейсе.
Следующие два бизнес-процесса основываются на рассмотренном и имеют взаимосвязь с пользовательским интерфейсом информационной системы. Отличие бизнес-процесса формирования социального профиля по заданному идентификатору человека в социальной сети заключается лишь в отображении искомого социального профиля по окончанию всех операций пользователя системы.
Бизнес-процесс поиска подходящих социальных профилей по введенным критериям или же поиск социальных профилей, схожих с заранее известным социальным профилем. Здесь если производится поиск схожих социальных профилей на вход подается уже имеющийся социальный профиль, в противном случае введенные вручную критерии поиска. Затем, производится получение списка идентификаторов пользователей социальной сети из заранее определенного пользователем источника. После этого, в цикле будет произведен обход данного списка, где для каждого пользователя будет найден его социальный профиль. В результате в случае, если производился поиск социальных профилей, схожих с заданным, будет отображен список схожих социальных профилей, в противном случае -список найденных социальных профилей.
Далее более подробно рассмотрим алгоритм определения схожести социальных профилей. Алгоритм основывается на использовании LSH (Locality-sensitive hashing) функции [6]. LSH-функция — функция, целью которой является максимизация вероятности возникновения коллизии схожих аргументов функции. Иными словами, незначительное изменение аргумента функции должно приводить к незначительному изменению результата функции хеширования. В нашем случае воспользуемся алгоритмом SimHash — это алгоритм хеширования, преобразующий текст в список значений, в итоге представляющий собой его сигнатуру. Возвращаемым значением функции SimHash является список битов, состоящий из нулей и единиц. Рассмотрим алгоритм на конкретном примере. Шаг 1. Необходимо определить размер хеша.
Шаг 2. Далее нужно создать массив целых чисел, заполненный нулями, с размером, равным длине хеша в битах. var hash = [0, 0, 0, 0, 0, 0, 0, 0].
Шаг 3. Необходимо разбить документ на слова, затем для каждого слова вычисляют значение хеша при помощи любого из известных алгоритмов (md5, shal) [7]. Причем, длина всех полученных значений должна быть одинаковой и равняться заранее определенному размеру. var word = [«алгоритм», «поиск», «профиль»]; var wordHash = [01111001, 00110101, 00101110]. Шаг 4. Для каждого бита полученного хеша увеличиваем соответствующий ему элемент массива на единицу в случае, если исходный бит равен 1, и уменьшаем в противном случае. 01111001 00110101 00101110
Шаг 5. На основе полученного массива генерируется результат хеширования следующим образом: если элемент массива больше нуля, то соответствующий бит результирующего хеша выставляем в единицу, иначе в ноль.
hash = [0, 0, 1, 1, 1, 1, 0, 1];
Такие хеши используются для определения схожести текстовых документов. Однако и в нашем случае им можно найти применение. Так, социальный профиль каждого из кандидатов на вакансию будет закодирован в виде текста, для которого будет вычислена идентифицирующая сигнатура.
Чтобы определить степень схожести двух сигнатур, нужно найти число отличающихся позиций и вычислить отношение совпадающих позиций к длине.
00111101 XOR 00111000 = 00000101 similarity = 6/8 = 0,75
В данном примере сигнатуры схожи на 75 %.
Далее стоит привести краткий обзор технологий, которые могут найти свое применение при реализации данной информационной системы. Необходимо отметить, что в случае если объем обрабатываемых данных будет достаточно большим, есть смысл использовать коммерческие инструментарии, например, инструментарий, предоставляемый компанией IBM и имеющий в своем арсенале технологии решающие многие из поставленных задач.
Для реализации web-приложения предлагается использовать следующие языки, технологии и фреймворки: HTML, CSS, JavaScript, Bootstrap, Angular, C#, .NET Framework, ASP.NET MVC 5, Entity Framework. Т.к. поиск будет осуществляться в том числе и в социальных сетях, а как известно последние зачастую предоставляют API, то стоит взять во внимание, что поисковый робот должен не только осуществлять разбор web-страниц, но и уметь взаимодействовать с социальными сетями через их API [S]. Для этого можно взять и доработать многопоточный поисковый робот Abot [9, 10], написанный на языке программирования C# и имеющий открытый исходный код.
Для обработки данных можно разработать как свой собственный компонент системы, так и использовать фреймворк Apache Spark [11]. Apache Spark — программный комплекс с открытым исходным кодом для реализации распределенной обработки неструктурированных и слабоструктурированных данных, входящий в экосистему проектов Hadoop. В отличие от классического обработчика из ядра Hadoop [12], реализующий двухуровневую концепцию MapReduce с дисковым хранилищем, использует специализированные примитивы для рекуррентной обработки в оперативной памяти, благодаря чему позволяет получать значительный выигрыш в скорости работы для некоторых классов задач, в частности, возможность многократного доступа к загруженным в память пользовательским данным, а также делает библиотеку привлекательной для алгоритмов машинного обучения.
В качестве СУБД для реляционных БД предлагается использовать SQL Server т.к. web-приложение и поисковый робот имеют язык реализации C#. В качестве дополнения стоит отметить, что для взаимодействия .NET приложений с базами данных можно использовать ОРМ Entity Framework. Для хранения неструктурированных данных предлагается использовать Apache Hadoop.
Подводя итог всего вышесказанного можно с уверенностью сказать, что разработка информационной системы подбора компетентных сотрудников имеет право на существование и будет востребована на рынке программного обеспечения.
1. Новые методы работы с большими данными: победные стратегии управления в бизнес-аналитике: научно-практический сборник/под ред. А.В. Шмида. М.: ПАЛЬМИРА, 2016. 528 с.
2. Силен Д., Мейсман А., Али. Основы Data Science и Big Data. Python и наука о данных М.СПб.: Издательский Дом «Питер», 2017. 336 c.
3. Губанов Д. А., Новиков Д. А., Чхартишвили А.Г. Социальные сети: модели информационного влияния, управления и противоборства. М.: Изд-во физико-математической литературы, 2010. 228 c.
4. Бершадская Е.Г., Назиров Р.Р. Проблемы сбора и представления неструктурированной информации из открытых источников // Современные методы и средства обработки пространственно-временных сигналов: Сборник статей XVI Всероссийской научно-технической конференции / под ред. И.И. Сальникова. 2018. С. 64-68.
5. Базенков Н.И., Губанов Д. А. Обзор информационных систем анализа социальных сетей // Управление большими системами, 2013. 41. С. 357-394.
6. У компании есть еще похожие вакансии [Электронный ресурс] // У компании есть еще похожие вакансии / Блог компании SuperJob.ru / Хабр. URL: https://habr.com/company/superjob/blog/325014/ (дата обращения: 05.09.2018).
7. Сравнение SHA-1 и MD5 [Электронный ресурс] // НОУ ИНТУИТ | Лекция | Хэш-функции. URL: http://www.intuit.ru/studies/courses/ 14248/ 1285/lecture/24209?page=4 (дата обращения: 03.09.2018).
8. Запросы к API | Разработчикам [Электронный ресурс] // Запросы к API | Разработчикам | ВКонтакте. URL: https://vk.com/dev/api requests (дата обращения: 01.09.2018).
9. Self-Exploration of the City [Электронный ресурс] // З SPACED. Data by Moscow Urban Forum — issuu. URL: http://issuu.com/mosurbanforum/ docs/eng-uf 354-373 data tm (дата обращения: 01.09.2018).
10. Abot [Электронный ресурс] // GitHub — sjdirect/abot: C# web crawler built for speed and flexibility. Please star this project! +1. Contact me with exciting opportunities. URL: https://github.com/sjdirect/abot (дата обращения: 04.09.2018).
11. Apache Spark [Электронный ресурс] // Apache Spark™ — Unified Analytics Engine for Big Data. URL: http://spark.apache.org/ (дата обращения: 04.09.2018).
12. Hadoop [Электронный ресурс] // A Apache Hadoop. URL: http: //hadoop. apache. org/ (дата обращения: 04.09.2018).
Мартышкин Алексей Иванович, канд. техн. наук, доцент, alexey314@yandex.ru, Россия, Пенза, Пензенский государственный технологический университет,
Сальников Игорь Иванович, д-р техн. наук, профессор, заведующий кафедрой, iis@penzgtu.ru, Россия, Пенза, Пензенский государственный технологический университет,
Пащенко Дмитрий Владимирович, д-р техн. наук, профессор, проректор по научной работе, dmitry.pashchenko@,gmail. com, Россия, Пенза, Пензенский государственный технологический университет
THE STAGES OF COLLECTION AND PRESENTATION OF BIG DATA TO BUILD A SOCIAL PROFILE OF THE PERSON
A.I. Martyshkin, I.I. Salnikov, D. V. Pashchenko
The article considers the main stages and process of presenting large data for sampling the information necessary for building a social profile of a person. Analyzed systems and services for data collection, including social networks, offering a wide range of opportunities. Among them, there are quite large systems, as well as projects that help to legally collect information. The algorithms of the system for collecting information from an open social network Vkontakte for efficient solution of tasks are described. In conclusion, given some conclusions on the work.
Key words: Big Data, Data science, large data, software, information system, structured and unstructured data, social profile of a person.
Martyshkin Alexey Ivanovich, candidate of technical sciences, docent, alex-ey314@yandex. ru, Russia, Penza, Penza State Technological University,
Salnikov Igor Ivanovich, doctor of technical sciences, professor, head of chair, iis@penzgtu.ru, Russia, Penza, Penza State Technological University,
Pashchenko Dmitrii Vladimirovich, doctor of technical sciences, professor, vice-rector for research, dmitry.pashchenko@,gmail. com, Russia, Penza, Penza State Technological University