Теоретические аспекты построения самообучающихся и самонастраивающихся веб-ориентированных систем
Invite pending
Введение
Современные системы, предназначенные для работы в сетях Internet/Intranet (веб-ориентированные системы), в большинстве своем обладают продуманной архитектурой и интуитивно понятным пользовательским интерфейсом. Однако, чем больше и сложнее функционал данных систем, тем больше они зависят от необходимости их периодического обслуживания IT-специалистами. В крупных компаниях, где имеется соответствующий штат специалистов, это не является проблемой; в небольших компаниях данный вопрос так же не стоит, поскольку в большинстве своем веб-ориентированные системы в таких компаний ограничиваются одним Интернет-сайтом, который к тому же обновляется крайне редко. Однако компании среднего уровня, активно использующие как Интернет-сайт, так и различного рода внутрикорпоративные локальные системы, но не имеющие возможности держать постоянный штат соответствующих IT-специалистов, вынуждены пользоваться услугами фрилансеров. Это не всегда положительно влияет на качество конечного продукта и может вызвать негативные отзывы не только о работе конкретного исполнителя, но и о компании, осуществлявшей первоначальную разработку системы.
В рамках данной статьи ограничим рассмотрение веб-ориентированных приложений веб-сайтами, построенными на основе систем управления наполнением контента (CMS, Content Management System).
Компании — потребители CMS
На рисунке 1 представлен график, наглядно демонстрирующий распределение должностных обязанностей по поддержанию веб-сайта в компаниях c общим числом сотрудников от 30 до 50 человек. Эти и все последующие статистические данные, если иное не указано отдельно, получены на основании собственных исследований компании «СкайЛаб» и могут содержать долю статистической погрешности, вызванную относительно небольшим числом респондентов (15 компаний).

Рисунок 1. Распределение должностных обязанностей по поддержанию веб-сайта в компаниях среднего уровня.
Из графика видно, что 73% опрошенных компаний доверяют текущую поддержку работоспособности сайта сотрудникам, для которых данные обязанности являются не основными. Как следствие – наличие ошибок в работе сайта. Выделим несколько проблем, которые возникают в случаи, если с сайтом компании работает непрофильный специалист:
1. Поля «description» и «keywords» переносятся без изменений от страницы к странице. По статистике, такая ситуация наблюдается примерно у 60% проанализированных сайтов.
2. Повышенная опасность получения несанкционированного доступа к административному интерфейсу сайта посторонними лицами. Опрос показал, что многие сотрудники не считают, что пароль на доступ к сайту следует тщательно хранить.
С целью устранения подобных ошибок логичным является разработка интеллектуальных систем, способных подсказывать пользователю необходимые действия, а в некоторых случаях и выполнять эти действия за него. Безусловно, эта идея не нова и отдельные элементы интеллектуальных систем уже имеют практическое воплощение в ряде CMS. Поэтому целью данной статьи является обобщение имеющихся наработок и рассмотрение возможности их реализации в едином модуле, в задачу которого будет входить анализ действий пользователя и поиск оптимального режима «партнерского сотрудничества» человека и машины.
Можно выделить три направления применения интеллектуальных систем подобного типа:
1. Своевременная, полная и не избыточная помощь в работе с интерфейсом административной части CMS.
2. Дополнение и корректировка действий пользователя, если такие действия будут восприниматься системой как ошибочные.
3. Адаптация клиентской части CMS в зависимости от воздействия со стороны посетителей ресурса.
Понятие самообучающихся систем
Введем определение самообучающейся системы.
В основе самообучающейся системы лежит алгоритм функционирования, которой вырабатывается и совершенствуется в процессе самообучения. Этот процесс сводится к «пробам» и «ошибкам». Система выполняет пробные изменения алгоритма и одновременно контролирует результаты этих изменений. Если результаты благоприятны с точки зрения целей управления, то изменения продолжаются в том же направлении до достижения наилучших результатов либо до начала ухудшения процесса управления.
Самообучающиеся системы принято связывать с системами, построенными на основе нейросетевых алгоритмов, однако некоторые элементы могут быть реализованы и с применением классической булевой логики.
В процессе функционирования и самообучения перед интеллектуальной CMS встает следующий ряд задач:
1. определение момента, когда системе необходимо совершить те или иные действия (задача определения момента воздействия);
2. анализ правильности определения момента воздействия;
3. отработка соответствующего ситуации алгоритма воздействия;
4. анализ результатов воздействия.
Cистема имеет два контура обратной связи: первый, связанный с самим фактом необходимости воздействия и второй — с результатом данного воздействия. В случае, если результат работы системы не совпал с ожидаемым, контуры обратной связи вносят корректировки в работу системы, направленные на снижение вероятности возникновения ошибок. Математически данные операции могут быть описаны методом последовательного приближения.
Рассмотрим каждый из этапов подробнее.
Задача определения момента воздействия
Одним из источников принятия решения для данной задачи могут быть статистические данные об операциях, совершаемых пользователем.
Так, например, в 80% случаев, если пользователь совершает круговые движения курсором мыши по экрану, это свидетельствует о том, что он не знает, куда ему необходимо нажать или что необходимо сделать. В случае, если пользователь выбрал, по его мнению, правильный вариант, указатель мыши колеблется или совершает круговые движения вокруг выбранной кнопки. Это самый подходящий момент, чтобы в той или иной форме подсказать пользователю, что же он получит в результате своих действий.
Стоит отметить, что действия, совершаемые пользователем в момент принятия решения, варьируются в зависимости от личностных особенностей конкретного человека. Поэтому система в процессе самообучения должна изучать своего пользователя и отмечать свойственные только ему особенности. В перспективе, система, «хорошо знающая» своего пользователя, сможет обнаружить факт использования аккаунта пользователя другим человеком и, при необходимости, заблокировать данного пользователя с подозрением на взлом. Данный вид идентификации пользователя представляется одним из самых надежных, поскольку он основан на анализе индивидуальной моторики человека.
Анализ данных о перемещении указателя мыши технически может быть реализован с помощью методов классический булевой логики, однако более правильным представляется реализация этой задачи с использованием нейронных сетей, в частности сети Хебба, предназначенной для распознавания образов. В качестве входного образа предполагается использовать уникальный рисунок, создаваемый указателем мыши во время перемещения по текущей странице.
Еще одним источником принятия решения для данной задачи может служить априорная информация о необходимых действиях пользователя. Так, например, если пользователь не заполняет поля «description» и «keywords», то система запускает процедуру генерации данных полей, используя в качестве исходной информации основной контент страницы. То есть, суть данной операции сводится к сравнению действий совершенных пользователем с массивом эталонных действий.
Анализ правильности определения момента воздействия
Анализ правильности определения момента воздействия сводится к отслеживанию реакции пользователя на начало данного воздействия. Если пользователь не прервал работу системы — считается, что момент выбран правильно. В противном случае, по цепи обратной связи передается сигнал о необходимости пересмотра параметров, расцениваемых как потенциально требующие вмешательства системы.
Отработка соответствующего ситуации алгоритма воздействия
В рамках данной статьи практические аспекты разработки и функционирования алгоритмов воздействия затрагиваться не будут, поскольку каждый из них является объектом отдельного изучения и может послужить основой для отдельной статьи.
Сформулируем общие критерии, которым должны соответствовать данные алгоритмы:
1. адаптивность — способность алгоритмов видоизменяться в зависимости от внешних факторов;
2. автономность — каждый алгоритм должен быть независим от других модулей и алгоритмов системы.
Необходимость введения критерия адаптивности следует из идеологии построения самообучающихся систем как гибких и легко настраиваемых механизмов. Введение критерия автономности необходимо с целью исключения перекрестных связей между элементами системы, что необходимо для исключения воздействия ошибок обучения одного алгоритма на другие элементы системы.
Анализ результатов воздействия
Второй контур обратной связи, в общем случаи, должен возвращать степень соответствия результата оказанного системой воздействия с реально необходимым и ожидаемым результатом. На основании полученной информации о степени соответствия рассчитывается массив коэффициентов, которые затем передаются в исполняемый алгоритм. Таким образом, за n-ое число итераций произойдет последовательное приближение массива коэффициентов к оптимальному для решения конкретной задачи значению.
Заключение
В рамках данной статьи были представлены общие положения теории построения самообучающихся и самонастраивающихся систем. Данный вопрос, безусловно, требует более подробного изучения и практического тестирования на базе современных CMS и иных веб-ориентированных приложений.
Развитие интеллектуальных систем является общей тенденций для всего рынка программного обеспечения; поскольку веб-оринтированные системы с каждым годом получают все большее распространение, они должны быть открыты для всех возможных инноваций. Большим шагом в этом направлении станет развитие веб-оринтированных систем, построенных на основе передовых нейросетевых технологий.