Научная статья на тему 'ПРОГРАММНЫЕ ИНСТРУМЕНТЫ И ТЕХНОЛОГИИ АНАЛИЗА ПОТОКА ИНТЕРНЕТ-МЕМОВ'

ПРОГРАММНЫЕ ИНСТРУМЕНТЫ И ТЕХНОЛОГИИ АНАЛИЗА ПОТОКА ИНТЕРНЕТ-МЕМОВ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
224
39
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИНТЕРНЕТ-МЕМ / АНАЛИЗ / МОДЕЛИРОВАНИЕ / ИДЕНТИФИКАЦИЯ / ПРОГНОЗИРОВАНИЕ И УПРАВЛЕНИЕ ПОТОКОМ ИНТЕРНЕТ-МЕМОВ / ТЕХНОЛОГИИ СОЦИАЛЬНО-ПОЛИТИЧЕСКОГО ИСПОЛЬЗОВАНИЯ МЕМОВ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Германчук М. С., Козлова М. Г., Лукьяненко В. А.

Меметика социальных сетей является востребованным разделом научных исследований. Рассматривается проблематика распространения мемов, математическое моделирование процессов распространения, инструментарий социально-политических исследований. Показано, что жизненный цикл потока интернет-мемов и отдельного мема имеет свою специфику и экологию. Задача идентификации реального этапа жизненного цикла (ЖЦ) существенно труднее, чем для экономического ЖЦ предприятия. В общем случае задача является некорректной, зависимой от наличия данных о выделенном потоке мемов в сети. Мониторинг сети для идентификации ЖЦ мема связан с системой запросов, технологией автоматического формирования баз данных (знаний) и последующим использованием ее в прогнозировании на основе вывода по аналогии с использованием нейросетевых подходов. Рассмотрен начальный этап проекта исследований ЖЦ потока интернет-мемов.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SOFTWARE TOOLS AND TECHNOLOGIES FOR ANALYZING THE FLOW OF INTERNET MEMES

Memetics of social networks is a popular section of scientific research. The article deals with the problems of meme distribution, mathematical modeling of distribution processes, and tools for socio-political research. It is shown that the life cycle of a stream of Internet memes and a separate meme has its own specifics and ecology. The task of identifying the real stage of the life cycle (LC) is much more difficult than for the economic LC of the enterprise. In General, the problem is incorrect, depending on the availability of data about the selected meme stream in the network. Network monitoring for the identification of the meme LC is associated with the query system, the technology of automatic database formation (knowledge) and its subsequent use in forecasting based on the conclusion by analogy with the use of neural network approaches. The initial stage of the research project on the flow of Internet memes is considered. Online social network communities act as consumers of information flows that build the “artificial intelligence” of their members. Among different types of information circulating within social networks, of particular interest are Internet Memes (IM). They are presented in a visual, easy to understand image-based form and have a viral spreading pattern. The already developed process of IM flow propagation contributes to the formation of both positive and negative stereotypes. Social and political effects of IM are mild and manageable. The information field is self-organized according to the principle of least resistance in a destructive direction, and a great effort is required to manage such a process. That said, comprehensive interdisciplinary studies aimed at examining the IM flow seem quite relevant and are in high demand. An emerging area of interdisciplinary research called “memetics” makes an impact on algorithms for solving the NP-hard problems of discrete optimization in the form of evolutionary algorithms related to the viral nature of information propagation on the Internet. And vice versa, the methods of studying high-dimensional complex networks together with associated optimization problems are implicated in the analysis of processes occurring in online networks. While it is possible to examine the life cycle of a single meme, its circulation often gives rise to a flow of derivative memes. Depending on the introduced concept of a meaning proximity (analogy, precedence), the calculated flow rates and intensity parameters will be different. Taking into account the probabilistic nature of the process, it is still important to be able to work with a single meme or a small number of memes. Typically, the life cycle is qualitatively displayed as a graph of a function that depends on time, with a characteristic increase, maximum value, period of stabilization and degradation (the function value tends to zero). It is difficult to find out a stage related to the IM flow under examination. The needed parameters can be extracted from a close data set relevant to the analyzed memes as a result of regular monitoring of the process. At the same time, quantitative characteristics must be measured in different parts of a circulation network, which is complicated. As a result, to identify the life cycle of the IM flow, it is necessary to involve expert communities, mathematical modeling, as wells as the Big Data and Data Mining technologies. Based on the logic of dynamic systems, mathematical models of spread of viral diseases, rumors, diffuse processes, etc., require adaptation to networks that change over time. In the simplest-case scenario, it might be sufficient to obtain statistical data on the quantity, frequency, and so on for the flow of tested memes followed by regression and factor analyses. On the other hand, similar to high-dimension dynamical systems, one can expect the presence of channels and jokers - low-dimension models that can qualitatively reflect the ongoing processes of IM propagation. The identification and prediction of the IM flow life cycle are primarily centered on studying the IM effects on the activist youth audience and effective management needed to eliminate possible destructive influences. For example, the life cycle of the IM “cats” would let us study the audience most sensitive to such an influence, and a corresponding cluster of related communities. Of note is that only indirectly measured data would be available for further analysis. The acts of creating and propagating one’s own IM flow must comply with actual legal prohibitions and regulations. Of most interest is to find a prospective test IM, which appears to be quite doable given the contingent nature of meme emergence. That said, studying the IM life cycles is of great importance and implies the creation of relevant tools for accumulating data, analyzing the processes of IM propagation and making a corresponding software product to help process memes in automatic mode. The paper provides the results of the initial stage of work on the project designed to study a spread dynamics of Internet memes. The importance of developing specific tools for collecting, processing and studying the IM life cycle is emphasized. Here we have elaborated a general structure, visualization methods and ways of implementing a software product in the life cycle analysis. For its further development, we intend to implement a neural network approach for the tasks of intellectualized processing of the flow of Internet memes in order to give an estimate of their impact on the audience of Internet communities.

Текст научной работы на тему «ПРОГРАММНЫЕ ИНСТРУМЕНТЫ И ТЕХНОЛОГИИ АНАЛИЗА ПОТОКА ИНТЕРНЕТ-МЕМОВ»

УДК: 004.89 MSC2010: 68T27

ПРОГРАММНЫЕ ИНСТРУМЕНТЫ И ТЕХНОЛОГИИ АНАЛИЗА

ПОТОКА ИНТЕРНЕТ-МЕМОВ1 © М. С. Германчук, М. Г. Козлова, В. А. Лукьяненко

Крымский ФЕДЕРАЛЬНЫЙ УНИВЕРсИТЕТ ИМ. В. И. ВЕРНАДСКОГО ТАВРИЧЕСКАЯ АКАДЕМИЯ ФАКУЛЬТЕТ МАТЕМАТИКИ И ИНФОРМАТИКИ

просп. Академика Вернадского, 4, Симферополь, 295007, Российская Федерация e-mail: [email protected], [email protected], [email protected]

Software tools and technologies for analyzing the flow of Internet memes.

Germanchuk M. S., Kozlova M. G., Lukianenko V. A.

Abstract. Memetics of social networks is a popular section of scientific research. The article deals with the problems of meme distribution, mathematical modeling of distribution processes, and tools for socio-political research. It is shown that the life cycle of a stream of Internet memes and a separate meme has its own specifics and ecology. The task of identifying the real stage of the life cycle (LC) is much more difficult than for the economic LC of the enterprise. In General, the problem is incorrect, depending on the availability of data about the selected meme stream in the network. Network monitoring for the identification of the meme LC is associated with the query system, the technology of automatic database formation (knowledge) and its subsequent use in forecasting based on the conclusion by analogy with the use of neural network approaches. The initial stage of the research project on the flow of Internet memes is considered.

Online social network communities act as consumers of information flows that build the "artificial intelligence" of their members. Among different types of information circulating within social networks, of particular interest are Internet Memes (IM). They are presented in a visual, easy to understand image-based form and have a viral spreading pattern. The already developed process of IM flow propagation contributes to the formation of both positive and negative stereotypes. Social and political effects of IM are mild and manageable. The information field is self-organized according to the principle of least resistance in a destructive direction, and a great effort is required to manage such a process. That said, comprehensive interdisciplinary studies aimed at examining the IM flow seem quite relevant and are in high demand. An emerging area of interdisciplinary research called "memetics" makes an impact on algorithms for solving the NP-hard problems of discrete optimization in the form of evolutionary algorithms related to the viral nature of information propagation on the Internet. And vice versa, the methods of studying high-dimensional complex networks together with associated optimization problems are implicated in the analysis of processes occurring in online networks. While it is possible to

Исследование выполнено при финансовой поддержке РФФИ и ЭИСИ в рамках научного проекта № 20-011-31460. (Acknowledgments: The reported study was funded by RFBR and EISR, project number 20-011-31460)

examine the life cycle of a single meme, its circulation often gives rise to a flow of derivative memes. Depending on the introduced concept of a meaning proximity (analogy, precedence), the calculated flow rates and intensity parameters will be different. Taking into account the probabilistic nature of the process, it is still important to be able to work with a single meme or a small number of memes. Typically, the life cycle is qualitatively displayed as a graph of a function that depends on time, with a characteristic increase, maximum value, period of stabilization and degradation (the function value tends to zero). It is difficult to find out a stage related to the IM flow under examination. The needed parameters can be extracted from a close data set relevant to the analyzed memes as a result of regular monitoring of the process. At the same time, quantitative characteristics must be measured in different parts of a circulation network, which is complicated. As a result, to identify the life cycle of the IM flow, it is necessary to involve expert communities, mathematical modeling, as wells as the Big Data and Data Mining technologies. Based on the logic of dynamic systems, mathematical models of spread of viral diseases, rumors, diffuse processes, etc., require adaptation to networks that change over time. In the simplest-case scenario, it might be sufficient to obtain statistical data on the quantity, frequency, and so on for the flow of tested memes followed by regression and factor analyses. On the other hand, similar to high-dimension dynamical systems, one can expect the presence of channels and jokers low-dimension models that can qualitatively reflect the ongoing processes of IM propagation. The identification and prediction of the IM flow life cycle are primarily centered on studying the IM effects on the activist youth audience and effective management needed to eliminate possible destructive influences. For example, the life cycle of the IM "cats" would let us study the audience most sensitive to such an influence, and a corresponding cluster of related communities. Of note is that only indirectly measured data would be available for further analysis. The acts of creating and propagating one's own IM flow must comply with actual legal prohibitions and regulations. Of most interest is to find a prospective test IM, which appears to be quite doable given the contingent nature of meme emergence. That said, studying the IM life cycles is of great importance and implies the creation of relevant tools for accumulating data, analyzing the processes of IM propagation and making a corresponding software product to help process memes in automatic mode.

The paper provides the results of the initial stage of work on the project designed to study a spread dynamics of Internet memes. The importance of developing specific tools for collecting, processing and studying the IM life cycle is emphasized. Here we have elaborated a general structure, visualization methods and ways of implementing a software product in the life cycle analysis. For its further development, we intend to implement a neural network approach for the tasks of intellectualized processing of the flow of Internet memes in order to give an estimate of their impact on the audience of Internet communities.

Keywords: Internet memes; analysis, modeling, identification, forecasting and management of the flow of Internet memes; technologies of socio-political use of memes

Введение

Сообщества социальных интернет-сетей являются потребителями потока информации, которая формирует «искусственный интеллект» участников. В соцсетях среди распространенной информации выделаются интернет-мемы (ИМ), которые визуальны, образны, просты для восприятия и имеют вирусный характер распространения. Существует развитый процесс распространения потока ИМ, способствующий формированию как положительных, так и отрицательных стереотипов. Социально-политическое воздействие ИМ является мягким и управляемым. Самоорганизация информационного поля идет по принципу наименьшего сопротивления в деструктивном направлении и необходимы большие усилия для управления таким процессом. Поэтому всесторонние междисциплинарные исследования по изучению потока ИМ являются востребованными и актуальными. Формирующееся направление междисциплинарных исследований под названием «меметика» оказывает влияние на алгоритмы решения ЖР-трудных задач дискретной оптимизации в виде эволюционных алгоритмов, связанных с вирусным характером распространения информации в сети. И наоборот, методы исследования сложных сетей высокой размерности, соответствующие оптимизационные задачи находят отражение в анализе процессов, проходящих в интернет-сетях.

В работе ставится задача анализа жизненного цикла (ЖЦ) потока ИМ или выделенного по запросу мема. Вопросы разнообразных подходов по определению мемов, их классификации, проблематике исследований, а также разработке инструментов извлечения, обработки и анализа ИМ предварительно исследовались в работах [1, 2]. Распознавание изображений мемов, визуализация распространения в сети, аспекты интеллектуализации обработки данных потока мемов рассматривались в работах [3-6], социолого-политические подходы отражены в [7].

Можно рассматривать ЖЦ одного мема, уже существующего, но, как правило, одновременно распространяется поток близких мемов. В зависимости от введенного понятия близости (аналогии, прецедентности) мощность потока и интенсивность будет различной. Отмечая вероятностный характер процесса, необходимо уметь работать с одним мемом или их небольшим количеством. Обычно качественно ЖЦ отображается в виде графика функции, зависящей от времени, с характерным ростом, максимальным значением, периодом стабилизации и деградации (значение функции стремится к нулю). Какому этапу соответствует рассматриваемый поток ИМ, определить трудно. Нужные для этого характеристики могут быть извлечены из близкого набора данных, соответствующих анализируемым мемам в результате регулярного

мониторинга процесса. При этом должны измеряться количественные характеристики в разных частях сети распространения, что затруднительно. Из этого следует, что для идентификации ЖЦ потока ИМ необходимо привлекать экспертное сообщество, математическое моделирование, технологии сбора и обработки больших данных (BigData) и извлечения знаний из таких данных. С точки зрения динамических систем, математические модели распространения вирусных заболеваний, слухов, диффузных процессов и др. требуют адаптации на сети, изменяющийся во времени. В простейшем случае можно ограничиться статистическими данными по количеству, частоте и т. п. потока тестируемых мемов с последующим регрессионным и факторным анализом. С другой стороны, как и для динамических систем большой размерности, можно ожидать наличие русел и джокеров — моделей малой размерности качественно отображающих происходящие процессы распространения ИМ.

Идентификация и прогнозирование ЖЦ потока ИМ прежде всего ориентировано на изучение влияния ИМ на активную молодежную аудиторию и возможность управления для ликвидации деструктивного воздействия. Например, ЖЦ ИМ «котики», позволяет изучать аудиторию, подверженную такому влиянию, а также соответствующий кластер близких сообществ. При этом для изучения, в основном, доступны данные косвенных измерений. Создание и распространение своего потока ИМ сопряжено с юридическими запретами и предписаниями. Наиболее интересно выявление будущего тестового ИМ, что вполне возможно в связи с событийным характером появления мемов. Таким образом, изучение ЖЦ ИМ является актуальной задачей и затрагивает разработку инструментов сбора информации, анализа процесса распространения ИМ и создания соответствующего комплекса программного обеспечения, предназначенного для автоматизированной работы с мемами.

1. ЖИЗНЕННЫЙ цикл ИНТЕРНЕТ-МЕМОВ

Интернет-мем (англ. Internet meme) — информация или фраза, как правило, остроумная или ироническая, часто бессмысленная, спонтанно приобретшая популярность в интернет-среде посредством распространения в Интернете (по электронной почте, в мессенджерах, на форумах, в блогах и др.). Понятие «мем» вошло в употребление в середине первого десятилетия XXI века, применяется в средствах массовой информации, бытовой лексике и общении внутри Интернета. В эпоху Интернета практически все современные мемы становятся автоматически ИМ. Мемами могут считаться как слова и их сочетания, так и изображения. То есть любые аудиальные или визуальные сегменты Интернета, высказывания, картинки или звук, которые имели значение и распространились в сети Интернет.

Новые ИМ появляются постоянно и, спустя некоторое время, исчезают. Основной характеристикой для ИМ является его актуальность: мем появляется в новостных лентах пользователей, его отправляют друг другу в личных сообщениях, его упоминают в неформальной беседе. Жизненный цикл для ИМ составляет: момент его появления, динамика распространения и затем потеря актуальности и завершение использования. Момент появления ИМ тяжело отследить, так как «вирусным» может стать любой контент, даже нескольколетней давности. Показателем актуальности или динамики ИМ могут являться количественные характеристики, часто используемые в социальных сетях или форумах: количество «лайков», «репостов», рейтинг и т. д. Однако, не стоит забывать, что помимо этих характеристик на релевантность ИМ также влияет его употребление пользователями соцсетей, мессенджераим, в блогах и т. д. В этом случае количественные характеристики получить в полной мере не представляется возможным. Затруднительным также является сбор количественных характеристик из соцсетей. Допустим, нужно исследовать определенный ИМ, и для этого будем отслеживать его актуальность, за счет мониторинга количественных характеристик в нескольких соцсетях (ВК, Твиттер, Фейсбук). В этом случае перед нами появляется сразу несколько трудностей.

Во-первых, распознавание ИМ среди остального контента. Классификация изображения на предмет наличия в нем искомого мема является не тривиальной задачей. Распознавание ИМ в аудио и видео материалах соответственно представляется очень трудозатратным, почти невозможным.

Во-вторых, отслеживание ИМ во всех группах, каналах или темах является слишком сложной задачей мониторинга и последующей обработки. Причиной этому служит большое число, перечисленных выше, путей распространения информации в социальных сетях. Количество групп в социальных сетях превышает сотни тысяч. Анализ содержимого всех этих каналов распространения ИМ не представляется возможным. Исследование ЖЦ ИМ существенно упростилось бы в рамках системы тотального сбора, обработки и прогноза всего интернет-контента.

2. Математическая модель вирусного характера распространения ИМ среди пользователей социальных сетей

Рассмотрим простую математическую информационную модель динамики распространения ИМ среди пользователей сети. Такая модель позволяет оценить уровень необходимой входной информации и дать качественную и грубую количественную оценку прогнозных результатов количества новых потребителей (и распространителей) выбранных ИМ в зависимости от уже активных потребителей ИМ.

Пусть N — потенциальное число потребителей ИМ (Ж >> 1). Через х(Ь) обозначим число пораженных ИМ в момент времени ¿, а через у(Ь) — число еще не получивших и не среагировавших на распространяемый х(Ь) сообществом ИМ. То есть х(Ь) + у(Ь) = N. Число возможных участников за промежуток ДЬ пропорционально числу контактов между уже активными потребителями х(Ь) и потенциальными у(¿), т. е. приращение Дх = ах(Ь)у(Ь)^, где а — коэффициент пропорциональности. Переходя к пределу для приращения Дх = х(Ь + ДЬ) — х(Ь) при ДЬ ^ 0 получим уравнение

х = ахШ — х),

(1)

х(^о) = хо

Решение задачи Коши (1) получим в виде

x(t) =

N - x0(1 - eaN(i-i<0) (N - x0)e-aN(i-i<0 + x0' Заметим, что lim x(t) = N. Найдем скорость изменения скорости распростране-

ния ИМ:

х(Ь) = а;т(Ж — 2х) = а2х(Ж — х)(Ж — 2х). В ноль может обращаться только третий множитель

N — 2х = 0 ^ (Ж — х0)е-а^(4-4о) — х0 = 0. Откуда следует, что

1 , N — х0\ .. / 1 N — х0

х > 0 при Ь 6 0, ¿0 +--1п- и х < 0 при Ь 6 1 -1п-,

\ аN х0 ) \аN х0

Следовательно, скорость х роста интереса к ИМ возрастает до момента ¿* = 1п М-Хо, а затем убывает. Параметр ¿* необходим для разработки системы управления динамикой распространения ИМ.

По отношению к различным потокам ИМ сообщество распадается на кластеры по интересам (в том числе деструктивным и конструктивным). Для каждого из со-

обществ, состоящих из N (г = 1,п) участников ^ = ^ можно выписать свою

г=1

задачу Коши (1) для хД£), Ь^, х^, а^.

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

известным текущим является некорретной. Деструктивные участники распространения ИМ, как правило, пересекаются с игровыми компьютерно зависимыми участниками сети. Если для игровой зависимости существуют программы, осуществляющие профилактику, диагностику и лечение, то идентификация пользователей, попадающих под вирусное заражение деструктивными ИМ не проводится. Игровая зависимость поддерживается постоянным обновлением игр, а жизненный цикл ИМ — вбросом новых мемов. График кривой ЖЦ ИМ может быть представлен в виде линейной комбинации логистических кривых (решений задачи Коши (1)), если есть исходная информация. Фактический интерес представляют только активные периоды.

Для сбора информации о жизненном цикле мема необходима информация об его актуальности на протяжении некоторого временного интервала. Одним из способов получения этой информации является выдача поискового сервиса, так как поисковые сервисы приоритезируют актуальную информацию. Несмотря на то, что результаты поиска могут не являться самыми новыми, они дают возможность составить реальную картину распространения мемов в сети интернет. Поэтому для получения выборки мемов используются результаты поиска Google search.

Так как Google search является вебсайтом и не имеет открытого API для получения информации, появляется важная задача по извлечению информации из вебстраниц. Можно извлекать информацию вручную, что работает на небольших объёмах данных, либо автоматизировать данный процесс, что позволяет извлекать большие объёмы информации с сайтов.

Процесс извлечения структурированной полезной информации с сайта называется парсингом (parsing), а инструменты для реализации данного процесса — парсе-рами (parsers). Как правило, сайты разрабатываются с учётом того, что считывать информацию с их страниц будет человек. Но формат представленных данных, понятный человеку, зачастую не столь понятен программным средствам. Кроме того, структура представляемых данных варьируется от сайта к сайту, поэтому не существует универсального средства для извлечения информации.

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

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

Процесс извлечения информации может быть простым: загрузить URL, считать информацию и отдать получателю; а может быть и сложным: авторизоваться в системе, сконструировать запрос по информации из заголовков и значений JavaScript-переменных на странице, имя которых может меняться с каждым запросом, а JS-код находиться в минифицированном или обфусцированном виде. Если в первом случае всё достаточно просто, то во втором, чтобы за разумное время разработать парсер, стоит прибегнуть к использованию headless-браузеров (без графического интерфейса) с поддержкой сценариев вроде PhantomJS по извлечению данных для оптимизации времени на изучение того, как сайт взаимодействует с бэкендом. Также для этих целей можно прибегнуть к Selenium WebDriver с одним из реальных браузеров.

3. Структура программного комплекса обработки

ИНТЕРНЕТ-МЕМОВ

Основной задачей работы явилась разработка кроссплатформенного комплекса программного обеспечения (ПО), со следующим функционалом:

1) автоматическое или ручное добавление изображений (мемов);

2) хранение изображений;

3) добавление тэгов для изображений;

4) агрегация изображений по тэгам;

5) добавление изображениям временных отметок.

3.1. Структура серверной части. Серверная часть программного комплекса имеет модульную структуру (каждый из модулей при необходимости может быть заменен, без затрагивания остальных) и состоит из следующих компонентов:

1. Веб сервер - Tagrun Server.

2. База данных.

3. Сервис хранения файлов.

4. Сервис хэширования изображений.

5. Программа автоматического сбора информации - Centaur.

TagRun Server отвечает за обработку веб запросов (REST API) и связь всех остальных компонентов (кроме Centaur) в единый комплекс. Для хранения информации об изображениях, мониторинговых запросах, результатах мониторинга, а также тэгах и временных отметках необходима база данных. Так как между объектами хранения существует значительное количество взаимосвязей, имеет смысл использовать реляционную базу данных. Однако, база данных обеспечивает хранение только

Рис. 1. Структура серверной части

информации об объектах и их связях, но не обеспечивает хранение файлов изображений. Поэтому необходим сервис хранения для загружаемых файлов. Для определения схожести изображений (нахождения дубликатов) необходимо особым образом хэшировать эти изображения. Эту задачу на себя берет сервис хэширования изображений.

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

3.2. Структура базы данных. В базе данных определены следующие сущности: ObservedQueries (Мониторинговые запросы), SearchTimeStamps (Даты поиска), Images (Изображения), Tags (Тэги), WebResources (Ссылки на веб ресурсы), QuerySearchResults (Результаты поиска по запросу), ImageSearchResults (Результаты обратного поиска по изображению) и FilterPresets (Шаблоны фильтров).

Таблица ObservedQueries содержит в себе информацию о поисковых запросах, которые используются для мониторинга. В неё входят следующие столбцы:

• Id - уникальный идентификатор мониторингового запроса;

• Text - текст запроса;

• Updatelnterval - интервал выполнения запроса (может принимать следующие значения: 1 - ежедневно, 2 - еженедельно, 3 - ежемесячно);

• Active - означает, происходит ли мониторинг по данному запросу (1 - происходит, 2 - приостановлен);

• Part и Total - обозначают процесс выполнения текущего мониторинга.

Рис. 2. Структура базы данных

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

В таблице Images находится информация о собранных в процессе мониторинга изображениях. В таблице представлены следующие столбцы:

• Id - уникальный идентификатор изображения;

• Width - ширина изображения;

• Height - высота изображения;

• Path - идентификатор, для получения файла изображения из файлового сервиса;

• Hash - хэш изображения;

• OriginId - идентификатор из таблицы WebResources, содерижт ссылку на оригинал изображения;

• Через таблицу ImageTags осуществляется связь многие-ко-многим с таблицей тэгов.

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

Таблица WebResources хранит информацию об ресурсе в интернете, где размещено изображение. В неё входят следующие столбцы:

• Id - идентификатор веб ресурса;

• Header - заголовок страницы, на которой размещено изображение;

• Source - ссылка на изображение;

• SourcePage - ссылка на страницу, содержащую изображение;

• Domen - домен веб ресурса, на котором размещено изображение.

В таблице QuerySearchResults содержатся результаты мониторинга поискового запроса за определенную дату. В таблице представлены следующие столбцы:

• Id - идентификатор результата поиска;

• ApproxCount - примерное количество результатов по поисковому запросу (информация, предоставленная поисковиком);

• QueryId - идентификатор поискового запроса, по которому происходил мониторинг;

• TimestampId - идентификатор даты мониторинга;

• Через таблицу QuerySearchResultImages осуществляется связь многие-ко-многим с таблицей Images. Эта связь означает, что в результате этого мониторинга были получены связанные изображения;

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

• Id - уникальный идентификатор результатов поиска по изображению;

• ApproxCount - примерное количество результатов по поисковому запросу (информация, предоставленная поисковиком);

• ImageId - идентификатор изображения, по которому происходил поиск;

• TimestampId - идентификатор даты мониторинга;

• Через таблицу ImageWebResources осуществляется связь многие-ко-многим с таблицей WebResources. Эта связь означает, что в результате этого мониторинга были получены связанные ссылки на веб-ресурсы.

Таблица FilterPresets нужна для хранения шаблонов фильтра, которые можно сохранить и загрузить при использовании веб-приложения. Содержит идентификатор, название и содержание шаблона.

3.3. Сервис хеширования изображений. При сборе изображений важным аспектом является нахождение одинаковых или схожих изображений. При этом для сопоставления изображений между собой нужно учитывать именно визуальную составляющую, а не размер или байтовое содержание файла. Поэтому традиционные способы хэширования файлов (такие как md5, sha2 или crc) для этого не подходят.

Для определения схожести изображений используется следующий алгоритм хэширования:

1. Происходит сжатие изображения до определённого размера N х N пикселей (например, 8 х 8).

2. В полученном изображение уменьшается глубина цвета до определенного K бит (например, 1 бит - черно-белое изображение).

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

4. Теперь можно сравнивать полученные хэши между собой используя определенную метрику, которая гарантирует близость минимально отличных друг от друга хэшэй (например, расстояние Хэмминга).

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

3.4. Автоматический сбор информации. Для обеспечения мониторинга необходимо с заданным интервалом производить сбор информации и сохранять полученные результаты. Эту функцию обеспечивает Centaur, который запускается отдельно от веб сервера каждый день в определенное время. После получения списка запросов мониторинга от сервера, Centaur определяет, по каким из них нужно производить поиск в данный момент (запрос должен быть активным и с момента последнего мониторинга должно пройти время, соответствующее интервалу мониторинга этого запроса). Далее работа состоит из двух этапов. На первом этапе с каждым из запросов выполняется следующий алгоритм:

1. Создается новый результат мониторинга.

2. Выполняется поиск по тексту запроса в поисковике.

3. Берутся результаты поиска из раздела изображения.

4. По каждому из этих изображений:

4.1. Загрузить изображение на сервер,

4.2. Если изображение новое, получить тэги этого изображения используя поисковик и загрузить на сервер,

4.3. Добавить изображение к результату мониторинга,

4.4. Добавить изображение в список для второго этапа,

4.5. Обновить прогресс мониторинга.

После того, как результаты поисковых запросов обработаны, Centaur переходит ко второму этапу работы. На этом этапе с каждым из сохраненных на первом этапе изображений осуществляется следующий алгоритм:

Рис. 3. Схема сбора данных по поисковому запросу

1. Создать новый результат поиска по изображению

2. Выполить обратный поиск по изображению в поисковике

3. Взять результаты поиска из раздела изображения

4. По каждому из этих результатов:

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

4.2. Обновить прогресс мониторинга.

Стоит отметить, что поисковики не приветствуют их использование для автоматического сбора информации и стараются пресечь подобное использование. Чаще всего, если пользователь поисковика замечен в подозрительной активности ему ограничивают доступ к поисковику на определенное время. Для того, чтобы избежать подобного Centaur использует простые, но тем не менее, эффективные способы маскировки под обычного пользователя. В них входят: замена заголовка User-Agent в запросе и ограничение на количество запросов в определенный промежуток времени. Экспериментальным путем установлено, что для того, чтобы не вызвать подозрения у поисковика google нужно совершать не более чем один запрос в 5 секунд. Стоит отметить, что это также снижает скорость работы программы, так как на полную обработку одного поискового запроса уходит 5GG-6GG запросов к поисковику, а значит примерно час реального времени.

4. Жизненный цикл mema

Рассмотрим задачу исследования жизненного цикла мема. Чтобы автоматизировать получение результатов поисковой выдачи из Google необходимо учитывать основные принципы взаимодействия с интернет сервисами, к которым и относится Google search. При создании интернет сервиса разработчик или компания принимает решение по созданию программного интерфейса (API) для того, чтобы сторонние разработчики своих проектов могли легко и удобно использовать их сервис. К сожалению, Google search не имеет публично доступного API, поэтому результаты поиска будем получать из HTML страниц. Этот подход лежит в части работы программы:

Создать поисковой запрос для Google Получить HTML-страницу результатов

Извлечь информацию об изображениях

Создание web-запроса и получение результата в виде изображений, используя современные программные средства, не сложно, необходимо использовать следующий url запрос: https://www.google.com/search?q=Query&tbm=isch,

где вместо Query нужно подставить искомый запрос, например «мем».

Более сложную задачу представляет непосредственное извлечение информации из изображений. Для этого используются основные способы создания web-страниц, применяемые в современном интернет пространстве. Первый подразумевает генерацию страниц на стороне сервера и последующую отправку их клиенту (web-браузеру). Это более старый способ генерации страниц, предполагающий больший объем данных для передачи, используется, например, в php. Второй, более современный способ, состоит в создании минимальной html-страницы на сервере и загрузки на неё данных от клиента при помощи дополнительных запросов. Этот способ позволяет сэкономить трафик и ускорить время загрузки страниц. Google search использует модифицированную версию первого способа. При запросе клиенту возвращается наполовину заполненный HTML документ, часть информации в котором дополняется при помощи javascript.

После анализа результата запросов было установлено, что основная информации об изображениях (ссылка на само изображение и страницу, откуда оно получено) находится в конце документа в виде javascript-объекта, который используется в дальнейшем для отображения элементов страницы.

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

Взять содержимое тэг script Отделить объект с данными

Взять в нем нужный массив Выбрать информацию об изображениях

Таким образом, извлекаетсяинформация обо всех изображениях по поисковому запросу. Далее отслеживаются количественные показатели пребывания выделенного мема (потока ИМ) в информационном пространстве сообществ.

Рассмотрим реализацию технологии исследования ЖЦ мемов с помощью разработанного веб-приложения. В рамках совместной с социологами Крымского федерального университета научно-исследовательской работы с целью исследования ЖЦ ИМ и построения системы соцопросов была выбрана контрольная выборка изображений из сети интернет. Предварительная подготовка имеющихся данных с помощью разработанного программного обеспечения для:

— группировка ИМ экспертной группой по определенным признакам;

— выборка ИМ по заданным признакам;

— создание, сохранение и выполнение экспертных запросов в виде выражений математической логики для выборки ИМ;

— выделение областей на изображении ИМ с возможностью задания признаков этой области.

Приложение FrontEnd написано на языке TypeScript, который является расширением языка JavaScript. Использование чистого JavaScript в больших приложениях повышает сложность разработки программного обеспечение, так как этот язык программирования обладает динамической типизацией и из-за этого во время исполнения кода могут возникать непредвиденные ошибки. TypeScript отличается от JavaScript возможностью явного статического назначения типов, поддержкой использования полноценных классов (как в традиционных объектно-ориентированных языках), а также поддержкой подключения модулей, что призвано повысить скорость разработки, облегчить читаемость, рефакторинг и повторное использование кода, помочь осуществлять поиск ошибок на этапе разработки и компиляции. В конечном итоге TypeScript компилируется в JavaScript и может быть выполнен, как в браузере, так и на платформе NodeJS [https://nodejs.org/en/].

Для создания UI выбрана библиотека ReactJS [https://ru.reactjs.org/], которая позволяет создавать графические пользовательские интерфейсы для веб-приложений. Для работы с Document Object Model (DOM) в React используется Virtual DOM — виртуальное дерево элементов веб-страницы. При изменении в Virtual DOM автоматически изменяется DOM в браузере так, чтобы он соответствовал Virtual DOM. React позволяет разрабатывать интерфейсы, используя компоненто-ориентированное программирование. В основе React лежат компоненты, которые являются самостоятельными, неиспользуемыми блоками, каждый из которых обладает своим собственным состоянием и функциональностью.

Для управления состоянием приложения выбрана библиотека Redux, которая позиционируется как предсказуемый контейнер состояния (state) для JavaScript приложений. React.js в связке с Redux на клиентской стороне позволяет создать MVC архитектуру приложения. MVC (model, view, contrnller/модель-представление-контроллер) архитектура предполагает, что модель — это единственный источник истины и все состояние хранится там. Представления — это производные модели, которые должны быть синхронизированы, когда модель изменяет свое состояние. Приложение, написанное на связке React + Redux, является недетерминированным конечным автоматом.

Для роутинга приложения (маршрутизация внутри приложения на стороне клиента) используется React.Router. Роутер определяет, какое представление нужно отобразить пользователю. Благодаря роутеру, удалось сделать приложение одностра-ничным (single page application, SPA). Это значит, что веб-приложение использует один HTML-документ и реализует взаимодействие с клиентом при помощи динамической подгрузки стилей и скриптов. Преимуществом SPA является то, что они

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

Сборка интерфейса осуществляется при помощи системы сборки JavaScript модулей webpack. Задачей webpack является сборка из JavaScript модулей, CSS и HTML файлов единого пакета веб-приложения.

Также используется Babel.js, который преобразует код, написанный на JavaScript последнего стандарта (в проекте используется ECMAScript 6) в JavaScript старого стандарта для поддержки старыми браузерами.

Для задания стилей элементов на странице используется библиотека Bootstrap 4, разработанная компанией Twitter. Она упрощает задание стилей страницы, так как можно не писать кастомный CSS код, а использовать уже заготовленные классы для разметки.

Приложение работает с сущностями:

Area — область, выделенная на изображении — класс, содержащий информацию об области. Он хранит id картинки в базе, id области в базе, ее координаты и размер области, а также список тэгов, относящихся к ней.

Tag — сущность тэга, объект с полем id тэга в базе и его именем.

Imageinfo — основная сущность, объединяющая другие атомарные сущности. Является представлением изображения в приложении, агрегирует в себе id, параметры ширины и высоты изображения, дату его загрузки на сервер, массив с областями картинки, массив с тэгами, относящимися к самой картинке и url — ее расположение в файловой системе сервера.

Query — логическое выражение для выборки изображений из базы данных, т. е. представляет структуру в формате JSON, в виде дерева, где у каждого элемента есть тип (логический оператор или операнд), текстовое значение и массив дочерних элементов.

Компоненты приложения:

TagSuggestSelect — предложения по тэгам из базы данных.

TList — список передаваемых в него сущностей, выведенных в столбик.

QueryBlockSuggestSelect — предложения для выбора элементов визуального представления запроса для выборки изображений.

QueryBlock — блок визуального представления экспертного запроса.

Modal — всплывающее окно, которое перекрывает основной контент страницы.

ImageStrip — блок, который отображает картинки в виде «плиточек».

Результат поиска И фильтрации Найдено 30 мемов

Рис. 4. Отображение картинок в виде «плиточек» (ImageStrip)

ImageDetails — блок, в котором отображается информация об изображении, а также происходит основная работа с изображением.

ColoredRect — блок, в котором происходит работа с областями картинки.

Создание новой области происходит при помощи drag-n-drop. В основе блока лежит компонент React-konva (HTML5 canvas), приспособленный для работы с react и его data-flow.

Представления. Пользовательский интерфейс разделен на три представления, каждый из которых отвечает за свою часть функционала приложения. Первое представление — это форма загрузки изображений на сервер. Позволяет загружать. Пользователь нажимает на кнопку «Выберите файл» и выбирает изображение, расположенное на своем локальном хранилище. Файл записывается в state компонента. После нажатия на кнопку «Загрузить изображение» вызывается action uploadlmage и изображение отправляется на сервер для хранения. Второй экран — основное окно для работы с загруженными изображениями. Крайняя левая колонка представляет из себя блок TList. В этой колонке можно удалять теги и производить фильтрацию изображений по определенному тэгу. Также присутствует кнопка отображения всех изображений, независимо от их тэгов.

Средняя колонка это компонент ImageStrip. При нажатии на изображение происходит выбор изображения и отрисовка крайнего правого компонента ImageDetails с данными о выбранном изображении.

Третий экран — это страница запросов и состоит из трех блоков: TList, ImageStrip, и QueryBlock. Здесь осуществляются операции с запросами, такие как: создание, сохранение и поиск изображений по заданному запросу. Программно-аппаратная часть сервиса (Back-end) реализована на языке C#, в качестве системы управления базой данных используется MsSQL.

Ключевой сущностью в приложении является информация об изображении, которая хранится в таблице Images, которая связана с таблицей Areas связью один-ко-многим и с таблицей Tags связью многие-ко-многим. Также таблица Areas связана с таблицей Tags связью многие-ко-многим.

Контроллеры. API состоит из трех контроллеров, каждый из которых отвечает за работу со своей сущностью. Каждый контроллер разделен на эндпоинты, каждый из которых выполняет свою задачу в зависимости от метода HTTP запроса и URL, на который был сделан запрос. Практически все эндпоинты возвращают данные клиенту в формате JSON, но есть эндпоинты, возвращающие пользователю файлы, расположенные на сервере.

5. Визуализация модели жизненного цикла интернет-мемов

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

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

Рис. 5. Визуализация с неделями

На графике рис. 6 видна динамика популярности трех ИМ. По оси обозначены временные отметки. В данном случае используем недели для наглядности. Также есть возможность использовать в качестве временных промежутков месяца, однако, из-за короткого промежутка сбора информации этот график не обладает большой информативностью.

2020.3 2020.4 2020.5 2020.6

-о- #45 -»-#57 -о-#3082

Рис. 6. Визуализация с месяцами

Прогнозирование жизненного цикла ИМ осуществляется на основе накопленных данных, представленных на рис. 5, 6. Для достоверности получаемых прогнозов необходимо накопить достаточную базу данных по ИМ, выявить характерные классы кривых ЖЦ. Прогноз осуществляется по разработанному ранее алгоритму для ЖЦ предприятия (на основе экономических статистических данных) с использованием метода главных компонент и вывода по аналогии.

Заключение

В работе представлен этап реализации проекта по комплексному изучению процесса распространения интернет-мемов. Показана необходимость разработки инструментов сбора, обработки и изучения жизненного цикла ИМ. Представлена структура программного продукта, его визуализация и применение для анализа ЖЦ. Дальнейшее развитие предполагает применение нейросетевого подхода для задач интел-лектуализированной обработки потока интернет-мемов с целью оценки влияния на аудиторию интернет-сообществ.

Авторы выражают благодарность Т. О. Габриеляну за участие в постановке задач, П. А. Гуржий и О. О. Макарову за активное участие в разработке программного комплекса.

СПИСОК ЛИТЕРАТУРЫ

1. Германчук, М. С. Проблематика моделирования процессов распространения интернет-мемов / М. С. Германчук, М. Г. Козлова, В. А. Лукьяненко // Анализ, моделирование, управление, развитие социально-экономических систем: сборник научных трудов XII Международной школы-симпозиума АМУР-2018, Симферополь-Судак, 14-27 сентября 2018 / Под общей редакцией А. В. Сигала. — Симферополь: ИП Корниенко А. А., 2018. — C. 136-139.

GERMANCHUK, M. S., KOZLOVA, M. G. & LUKIANENKO, V. A. (2018) Modelling of Internet memes. Analysis, Modeling, Management, Development of Socio-Economic Systems: XII Collection of Scientific Works of the International School-Symposium AMUR-2018, Simferopol-Sudak, 14-27 September 2018. / Edited by A. V. Segala. p. 136-139.

2. Германчук, М. С. Разработка инструментария обработки и анализа потока интернет-мемов / М. С. Германчук, М. Г. Козлова, В. А. Лукьяненко, А. Е. Пивовар // Сборник научных трудов Всероссийской научно-практической конференции МИКМО-2019 и Таврической научной школы-конференции студентов и молодых специалистов по математике и информатике / Под ред. В. А. Лу-кьяненко. — Симферополь: ИП Корниенко А. А., 2019. — 1. — C. 121-127.

GERMANCHUK, M. S., KOZLOVA, M. G., LUKIANENKO, V. A. & PIVOVAR, A. E. (2019) Development of Internet Meme Flow Analysis and Processing Toolkit. Collection of scientific works of the All-Russian Scientific and Practical Conference MIKMO-2019 and the Tauri Scientific School-Conference of students and young specialists in mathematics and informatics. / Ad ed. B. A. Lukyanenko (1). p. 121-127.

3. Германчук, М. С. Распознавание, анализ и визуализация интернет-мемов / М. С. Германчук, М. Г. Козлова // Математические методы распознавания образов: Тезисы докладов 19-й Всероссийской конференции с международным участием, г. Москва 2019 г. — М.: Российская академия наук, 2019. — C. 351-355.

GERMANCHUK, M. S. & KOZLOVA, M. G. (2019) Recognition, analysis and visualization of Internet memes. Mathematical methods of pattern recognition: Theses of the reports of the 19th All-Russian Conference with international participation. Moscow. p. 351-355.

4. Германчук, М. С. Особенности разработки интеллектуальной системы обработки потока интернет-мемов / М. С. Германчук, М. Г. Козлова, В. А. Лукьяненко // В сб. «Дистанционные образовательные технологии», Материалы IV Всероссийской научно-практической конференции (с международным участием) / Ответственный редактор В. Н. Таран. — Симферополь, 2019. — C. 258-265. GERMANCHUK, M. S., KOZLOVA, M. G. & LUKIANENKO, V. A. (2019) Features of Intelligent Internet Meme Flow Processing System Development. «Distance Educational Technologies», Materials IV of the All-Russian Scientific and Practical Conference (with international participation). / Responsible Editor V. N. Taran. p. 258-265.

5. Германчук, М. С. Интеллектуализация обработки данных потока интернет-мемов / М. С. Германчук, М. Г. Козлова, В. А. Лукьяненко // Материалы III Международной научной конференции «Осенние математические чтения в Адыгее». — Майкоп: изд-во АГУ, 2019. — C. 139-143.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

GERMANCHUK, M. S., KOZLOVA, M. G. & LUKIANENKO, V. A. (2019) Intelligent Processing of Internet Meme Stream Data. Materials of the 3rd International Scientific Conference «Autumn Mathematical Readings in Adygea». Mykop: from AGU. p. 139-143.

i Надоели баннеры? Вы всегда можете отключить рекламу.