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
УДК 004.67
ЭТАПЫ СБОРА И ПРЕДСТАВЛЕНИЯ БОЛЬШИХ ДАННЫХ ДЛЯ ПОСТРОЕНИЯ СОЦИАЛЬНОГО ПРОФИЛЯ ЧЕЛОВЕКА
А.И. Мартышкин, И.И. Сальников, Д.В. Пащенко
Рассматриваются основные этапы и процесс представление больших данных для выборки информации, необходимой для построения социального профиля человека. Анализируются системы и сервисы по сбору данных, в том числе социальных сетей, предлагающие широкий спектр возможностей. Среди них есть достаточно большие системы, а также проекты, помогающие легально собирать информацию. Описаны алгоритмы системы для сбора информации из открытой социальной сети Вконтакте для эффективного решения поставленных задач. В заключении сделаны некоторые выводы по работе.
Ключевые слова: Big Data, Data science, большие данные, программное обеспечение, информационная система, структурированные и неструктурированные данные, социальный профиль человека.
Под обобщающим термином «Большие данные» (Big Data) принято понимать любые наборы данных, довольно большие и сложные для того, чтобы их можно было обработать традиционными средствами работы с данными [1, 2]. Повсеместно и широко применяемые сегодня реляционные системы управления базами данных (РСУБД) давно и признанно считаются универсальным инструментом, но их возможностей сегодня недостаточно, чтобы осуществлять обработку больших данных. В концепцию data science входит использование методов анализа огромных объемов данных и извлечения содержащейся в них полезной информации. Связь между machine learning, data science и большими данными такая же, как например, между сырой нефтью и обрабатывающими ее предприятиями. Большие данные и data science развивались на базе статистики и традиционного управления данными, но в настоящее время являются разными дисциплинами.
617
В свою очередь, термин «Data science» - это наука, основанная на данных, позволяющая использовать теоретические, математические, вычислительные и другие практические методы для изучения и оценки данных. Основная цель заключается в извлечении необходимой или ценной информации, которая может использоваться для нескольких целей, таких как принятие решений, разработка продукта, анализ тенденций и прогнозирование. «Data science» непосредственно связана с большими данными, умение работать с этими технологиями, а также знания в сфере машинного обучения и организации вычислений и построения алгоритмов - это то, что отличает data scientist от обычного статиста [2].
Актуальность темы исследования заключается в том, что сегодня прослеживается вездесущее проникновение информационных технологий в жизнь современного человека, в независимости от его сферы деятельности. Все это несет с собой огромное количество плюсов, которые несомненно положительно сказываются на деятельности человека.
Обычно каждый проект с применением data science проходит несколько этапов или жизненных циклов, от постановки задачи, до ее визуализации или представления готового решения [2]. В статье будет рассмотрен каждый из этих этапов более подробно на примере оптимизации продаж. Наглядная схема процесса data science представлена на рис. 1.
Процесс data science
1 Постановка цели исследования
2. Сбор данных
3. Подготовка данных
4 Исследование данных
5 Моделирование данных
6. Отображение и автоматизация
Рис. 1. Стадии процесса data science
618
Для того чтобы начать работу с данными, нужно выполнить ряд шагов, показанных на рис. 1, а именно:
Задать проблему, определить цель исследования: кто Ваш клиент? Что именно клиент хочет от Вас? И другие вопросы, определяющие проблемы и цели.
Собрать необработанные данные, для решения проблемы: доступны ли эти данные? Если да, то какие части данных полезны? Если нет, то какие данные нам еще нужны? Какие ресурсы (время, деньги, инфраструктура) потребуется для сбора этих данных в удобной и понятной форме?
Подготовить и обработать данные: сначала нужно очистить данные, чтобы преобразовать их в форму, которую можно продолжить анализировать в более удобной форме.
Провести исследование данных: после очистки данных исполнитель должен понимать информацию, содержащуюся на высоком уровне. Какие очевидные тенденции или корреляции видны в данных? Определяется, каковы характеристики высокого уровня и какие из них более значительны, чем другие?
Построить модель данных: это самый главный этап вашего проекта, где нужно применить все технологии для анализа данных.
Покажите результат: визуализируйте то, что получилось в ходе исследования.
Представим более детально стадии процесса data science.
Постановка цели исследования
На данном этапе должно возникать много всевозможных вопросов: Кто такие клиенты, и как их идентифицировать? Как выглядит процесс продажи в настоящее время? Какую информацию необходимо собирать о потенциальных клиентах? Каковы сейчас уровни обслуживания?
Цель разработчика - заглянуть в голову своего клиента и понять, что он хочет. Эти знания станут неоценимы позже, когда будут проанализированы данные и найденная информация. Понимание всех целей и проблем - неотъемлемая часть успеха будущего проекта.
Сбор данных
Для того чтобы начать процесс сбора данных, нужно удостоверится что эти данные существуют, и узнать о том, если ли доступ к ним.
Предположим мы знаем, что большая часть данных клиента, созданных отделом продаж, хранится в программном обеспечении CRM (Customer Relationship Management - управление взаимоотношениями с клиентами) компании и управляется командой Sales Operations. Бэкэнд для инструмента CRM - это база данных SQL с несколькими таблицами. Однако этот инструмент также предоставляет очень удобный веб-интерфейс, возвращающий данные в формате JSON. Но получение данных, даже из готовой базы не всегда является простой задачей. Каждая организация заботится о свой безопасности и конфиденциальности информации, поэтому сотрудник, который занимается работой с данными, должен следить за тем, чтобы не нарушать закон.
619
Подготовка данных
На данном этапе работа с данными не заканчивается, их еще нужно проверить и убедиться в их чистоте. Этот этап зачастую занимает большую часть времени в повседневной работе сотрудника. Каждая допущенная ошибка может быть чревата при дальнейшей работе. Специалист data science анализирует данные в процессе их импорта, подготовки и исследования.
Подготовка подразумевает собой проверку на совпадения, правильность типов данных, а также обнаружение недостающих и поврежденных данных.
Рассмотрим основные дефекты, встречающиеся в данных и требующие устранения. Это в первую очередь ошибки ввода данных, а также избыточные пробелы, расхождения в регистре символов, недопустимые значения, выбросы, отсутствующие значения, отклонение от общих правил, разные единицы измерения, разные уровни агрегирования.
Исследование данных
После извлечения необходимых данных много времени тратится на их подготовку и очистку. Углубленное изучение данных - вот что происходит на этом этапе. Исследование данных должно принести более глубокое их понимание. Для этих целей применяют описательные статистики и простое моделирование. Здесь можно применить различные способы визуализации, от простых диаграмм и графиков, до графов и диаграмм Sankey, пример которой представлен на рис. 2.
Trocknung Eigen- Stützgas 5 MWti (Strom * Wärme) strombedarf & Schmieröl 6l
1.517 MWh
Einspeisung ins Stromnetz
Abnehmer am Netz
HS (W40) 4.838 MWh
Рис. 2. Диаграмма Sankey
Рассмотрим основные приемы визуализации данных. На рис. 3 представлен метод объединения диаграмм, на рис. 4 показан метод наложения диаграмм, а на рис. 5 приведен метод связывания диаграмм, в котором изменения в одной из диаграмм, переносятся в другую.
620
Рис. 3. Метод объединения диаграмм
Рис. 4. Метод наложения диаграмм
0?в 1
€¡7*1 7
0?8 3
О Л
06
Ой
о.г
0.8 О.Я 0.4 0.2 0
■
в 0
*
1 й
4-
08
0.Ё
04
02
е
9
ц 0.05 0.5 0.15 02
О 0.0!) 0.1 0.15 0.2
О 0.05 01 0.15 0.2
Рис. 5. Метод связывания диаграмм
621
Все эти методы имеют форму визуализации, но никто не запрещает на этом этапе применять и другие методы, например, кластеризацию.
Моделирование данных
Этот этап подразумевает использование ранее полученной информации о данных. Здесь применяются методы из области статистики, исследования операций, машинного обучения и т.д. Процесс моделирования состоит из четырех шагов: планирование показателей и выбор модели, исследование модели и получение результатов, проверка адекватности созданной модели, применение отлаженной модели к исследуемым данным.
Отображение и автоматизация
На последней стадии осуществляется представление и визуализация полученных результатов. Это может быть совершенно любая форма представления: обычные отчеты, презентации, инфографики или приложения, главный критерий - наглядность. Автоматизация процесса, в свою очередь, призвана экономить время, т.к. некоторые задачи требуют неоднократного выполнения.
Разработка программного и информационного обеспечения
В качестве предметной области определим проблему найма сотрудника на работу. Найм - процесс, включающий в себя ряд действий, направленных на привлечение кандидатов, обладающих качествами, необходимыми для достижения поставленных организацией целей.
Наличие компетентных сотрудников в компании определяет успешность самой компании. Поэтому проблема найма таких сотрудников как никогда актуальна. В связи с этим далее будет рассматриваться возможность решения данной проблемы методами data science. В качестве основного источника здесь будут выступать социальные сети [3-5]. Информация, которую содержит страница в соцсети, может довольно точно охарактеризовать ее владельца.
Допустим, существует человек, интересующийся IT или программированием. Скорее всего, эта информация может быть отражена на его странице в сети, если таковая имеется. Информацией может быть заполненная строка интересов, список сообществ, в которых состоит человек и его активность в них.
При составлении социального профиля человека можно ограничится минимальными параметрами: фамилия, имя, пол, дата рождения, URL-адрес профиля в социальной сети, характеристика.
Рассмотрим архитектуру предлагаемого решения. Кроме web-приложения, серверная часть системы включает в себя следующие компоненты: планировщик, поисковый робот, служба обработки данных, сервер реляционных баз данных, сервер NoSQL хранилищ данных.
Основная задача, решаемая планировщиком, - это обновление и дополнение социальных профилей кандидатов на должность, уже имеющихся в базе данных, по истечении заданного интервала времени. Этот меха-
622
низм призван поддерживать актуальность данных, в силу того, что социальный профиль кандидата может постоянно изменяться в зависимости от его активности в социальных сетях.
Поисковый робот занимается сбором всей информации, доступной для чтения, и сгенерированной активностью кандидата в социальных сетях. Робот может быть запущен как вручную, из web-интерфейса, так и планировщиком.
Служба обработки данных призвана обрабатывать собранные «сырые» данные. Под обработкой в данном случаем будем понимать процесс очистки (предварительной подготовки) данных и их последующее использование в процессе формирования социального профиля кандидата на вакансию.
Сервер реляционных баз данных. Представляет собой СУБД, на которой расположены две реляционные базы данных: база данных web-приложения (сайта) и база данных поискового робота. База данных web-приложения кроме того, что хранит информацию о зарегистрированных в системе пользователях и их настройках, также хранит информацию о найденных социальных профилях кандидатов на вакансию и критериях их поиска. Данная база используется самим web-приложением, а также службой обработки данных, которая хранит в ней сформированные социальные профили. База данных поискового робота хранит информацию о том, что необходимо искать, и о том где это искать. Данная база используется только поисковым роботом.
Сервер хранилищ представляет собой временное хранилище
необработанных «сырых» данных кандидата на вакансию. Используется поисковым роботом и службой обработки данных. Поисковый робот использует хранилище для размещения в нем всей собираемой информации, нуждающейся в обработке. Служба обработки данных производит предварительную обработку этих данных, после чего формирует на их основе социальный профиль кандидата и помещает его в базу web-приложения. Обработанная информация в силу того, что была преобразована к реляционной форме, теряет свою актуальность и удаляется. Такой тип информации стоит относить к классу темпоральных данных - данных, связанных с некой конкретной временной меткой.
Перейдем к описанию основных функциональных возможностей, доступных пользователю посредством web-интерфейса системы.
В первую очередь, определим категории пользователей системы -это гостевые и зарегистрированные пользователи. Рассмотрим их отличия. Гостевой пользователь имеет существенные ограничения на функциональные возможности информационной системы. Это демонстрационное формирование социального профиля, регистрация в системе, вход в систему.
Зарегистрированный пользователь имеет в своем распоряжении полную функциональность информационной системы. В перспективе можно произвести разделение данной категории пользователей по тарифным планам. Согласно последним могут быть наложены ограничения на
настройки планировщика, объемы обрабатываемой информации, количество кандидатов на вакансию и др. На данном этапе рассмотрим следующие базовые функциональные возможности: выход из системы, демонстрационное формирование социального профиля, управление учетной записью в системе, формирование социального профиля, подбор социальных профилей по имеющемуся социальному профилю; подбор социальных профилей по вручную заданным критериям, просмотр социальных профилей в базе данных, поиск социальных профилей в базе данных.
Рассмотрев функционал web-интерфейса, перейдем к описанию бизнес-логики наиболее важных бизнес-процессов описываемой информационной системы.
Основным бизнес-процессом является формирование социального профиля кандидата на вакансию. Алгоритм принимает на вход идентификатор пользователя социальной сети, после чего производится последовательный вызов следующих операций: сбор открытых данных пользователя, обработка собранных данных, формирование социального профиля. Затем, когда социальный профиль будет полностью сформирован, производится проверка наличия такого профиля в базе данных. В случае если профиль найден, он будет расширен дополнительными данными, в противном случае будет создан новый профиль. Создание и обновление социального профиля сопровождается созданием временных меток. Это позволяет анализировать динамику изменений социального профиля кандидата на вакансию, что может нести в себе немало полезной информации. Данный процесс, в силу того, что используется другими процессами, является базовым для всей информационной системы и никак не выражается напрямую в пользовательском интерфейсе.
Следующие два бизнес-процесса основываются на рассмотренном и имеют взаимосвязь с пользовательским интерфейсом информационной системы. Отличие бизнес-процесса формирования социального профиля по заданному идентификатору человека в социальной сети заключается лишь в отображении искомого социального профиля по окончанию всех операций пользователя системы.
Бизнес-процесс поиска подходящих социальных профилей по введенным критериям или же поиск социальных профилей, схожих с заранее известным социальным профилем. Здесь если производится поиск схожих социальных профилей на вход подается уже имеющийся социальный профиль, в противном случае введенные вручную критерии поиска. Затем, производится получение списка идентификаторов пользователей социальной сети из заранее определенного пользователем источника. После этого, в цикле будет произведен обход данного списка, где для каждого пользователя будет найден его социальный профиль. В результате в случае, если производился поиск социальных профилей, схожих с заданным, будет отображен список схожих социальных профилей, в противном случае -список найденных социальных профилей.
Далее более подробно рассмотрим алгоритм определения схожести социальных профилей. Алгоритм основывается на использовании 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
hash = [-3,-1,3,1,1,1,-1,1];
Шаг 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).
627
Мартышкин Алексей Иванович, канд. техн. наук, доцент, [email protected], Россия, Пенза, Пензенский государственный технологический университет,
Сальников Игорь Иванович, д-р техн. наук, профессор, заведующий кафедрой, [email protected], Россия, Пенза, Пензенский государственный технологический университет,
Пащенко Дмитрий Владимирович, д-р техн. наук, профессор, проректор по научной работе, 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, [email protected], 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