bannerbanner
Агрегация контента и его обработка. Сборник статей по архитектуре распределенных систем и программной инженерии
Агрегация контента и его обработка. Сборник статей по архитектуре распределенных систем и программной инженерии

Полная версия

Агрегация контента и его обработка. Сборник статей по архитектуре распределенных систем и программной инженерии

Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
1 из 2

Агрегация контента и его обработка

Сборник статей по архитектуре распределенных систем и программной инженерии


Денис Александрович Кирьянов

Переводчик Денис Александрович Кирьянов

Корректор Анастасия Лобанова


© Денис Александрович Кирьянов, 2024

© Денис Александрович Кирьянов, перевод, 2024


ISBN 978-5-0064-3419-6

Создано в интеллектуальной издательской системе Ridero

Термины и определения

В данной книге применяются следующие термины с соответствующими определениями:

Лемматизация (англ. lemmatization) – процесс приведения словоформы к ее словарной форме.

Партиционирование (англ. partitioning) – разделение больших таблиц (исходя из количества записей) в базе данных на маленькие.

Стемминг (англ. stemming) – процесс нахождения основы слова для заданного исходного слова.

Суммаризация (англ. summarization) – процесс выделения краткого содержимого из текста.

Токенизация (англ. tokenization) – процесс разделения текста на составляющие.

Naive Estimator – наивная оценка.

Twitter Topic Fuzzy Fingerprints – нечеткие отпечатки на основе тем сообщений в сети «Twitter».

Перечень сокращений и обозначений

В данной книге применяются следующие сокращения и обозначения:

БД – база данных.

API, АПИ (англ. Application Programming Interface) – аппаратно-программный интерфейс.

DNS (англ. Domain Name System) – система доменных имен.

FOAF (англ. Friend of a Friend) – спецификация для описания пользователя в социальных сетях.

HTML (англ. Hyper Text Markup Language) – язык гипертекстовой разметки.

JSON (англ. JavaScript Object Notation) – текстовый формат обмена данными, основанный на языке программирования JavaScript.

MNA (англ. Matrix-based News Analysis) – метод матричного анализа новостей.

MLE (англ. Maximum Likelihood Estimator) – подход оценки максимального правдоподобия.

MME (англ. Moment Matching Estimator) – метод определения вероятности изменения агрегированных данных.

NLP (англ. Natural Language Processing) – обработка естественного языка.

REST (англ. Representational State Transfer) – архитектурный стиль взаимодействия компонентов распределенного приложения в сети.

RSS (англ. Rich Site Summary) – обогащенная сводка сайта.

SVM (англ. Support Vector Machine) – метод опорных векторов.

TF-IDF (англ. Term Frequency – Inverse Document Frequency) – статистическая мера, используемая для оценки важности слова в контексте документа.

URL (англ. Uniform Resource Locator) – унифицированный указатель ресурса.


XML (англ. Extensible Markup Language) – расширяемый язык разметки.

YML (англ. Yandex Market Language) – стандарт передачи данных маркетплейса компании «Яндекс».

Предисловие

В этой книге представлены три мои статьи, объединенные одной темой: агрегация контента и его обработка. Данные статьи первоначально были опубликованы на английском языке в журнале из перечня ВАК «Программные системы и вычислительные методы» и использовались мной в дальнейшем в качестве основы при написании магистерской диссертации по программной инженерии на тему «Исследование методов построения архитектур агрегаторов информации в сети Интернет».

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

Статьи представлены в полном объеме, без сокращений. Кроме того, в приложении представлены архитектуры систем агрегации информации, дополняющие публикуемые статьи. Для того чтобы сделать иллюстрации читаемыми в черно-белой печати, мне пришлось в статье «Масштабируемая система агрегации, предназначенная для обработки 50 000 RSS-каналов» их переработать, заменив на черно-белые, без потери смысла.

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

Гибридная категориальная экспертная система для использования в агрегации контента

Перевод с английского

Ссылка на оригинальную статью: Kiryanov D. A. Hybrid categorical expert system for use in content aggregation // Software systems and computational methods. 2021. №4. С. 122. DOI: 10.7256/2454—0714.2021.4.37019


Аннотация

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

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

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

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

Предложенный модуль определения спама основан на адаптировании поведенческого алгоритма определения спама в электронных письмах, предложенный модуль определения основных категорий контента использует два вида алгоритмов на основе нечетких отпечатков: Fuzzy Fingerprints и Twitter Topic Fuzzy Fingerprints, который изначально использовался для категоризации сообщений в социальной сети Twitter. Работа модулей, определяющих подкатегорию на основе ключевых слов, происходит во взаимодействии с базой данных – словарем (тезаурус). Последний классификатор использует алгоритм опорных векторов для конечного определения подкатегорий.


Ключевые слова: экспертная система, алгоритм нечетких отпечатков, агрегация контента, нейронная сеть, категоризация контента, инженерия знаний, метод опорных векторов, TF-IDF, CLIPS, идентификация спама.

Введение

Современная наука и промышленность немыслимы без использования компьютерных технологий. За последние 50 лет уровень информационного и интеллектуального обеспечения различных технологий чрезвычайно возрос [1]. Объем получаемой информации настолько велик, что человеку, даже специалисту, разобраться с ней очень сложно. Для его восприятия и обработки необходима особая интеллектуальная поддержка.

Поэтому экспертные системы и системы поддержки принятия решений находят свое применение в различных областях экономики, медицины и науки [2]. Экспертную систему можно определить как компьютерную систему, предназначенную для решения сложных задач путем эмуляции процесса принятия решений людьми-экспертами [3].

Экспертные системы возникли как значимый практический результат применения и развития искусственного интеллекта, т. е. совокупности научных дисциплин, изучающих методы решения задач интеллектуального (творческого) характера с использованием компьютеров [4]. Первые экспертные системы были разработаны в конце 60-х годов прошлого века и предназначались для создания искусственного сверхразума в некоторых предметных областях [5].

В начале своего развития экспертные системы реализовывались с использованием специализированных языков программирования, таких как Lisp и Prolog [6]. Некоторые из подобных систем активно используются и сегодня. Примером такой системы является DENDRAL [7], целью которой является создание органических молекулярных графов нециклических изомеров (написана на Lisp). Еще одним хорошим примером является PROSPECTOR II [8], который успешно использовался при поиске месторождений полезных ископаемых.

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

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

Эта статья структурирована следующим образом. В главе 1 представлен обзор преимуществ экспертных систем. Глава 2 содержит основные недостатки экспертных систем. В главе 3 описана архитектура экспертной системы в ее общем представлении. Классификация экспертных систем представлена в главе 4. В главе 5 представлен обзор инструментов создания экспертных систем. Примеры экспертных систем, выполняющих задачи категоризации, перечислены в главе 6. В главе 7 объясняется архитектура предлагаемой системы. Наконец, выводы приведены в главе 8.

1. Преимущества экспертных систем

В современном понимании экспертная система – это разновидность искусственного интеллекта (ИИ), т. е. совокупность программ, выполняющих функции человека-эксперта при решении задач из конкретной предметной области [10, с. 203]. И одно из важнейших отличий экспертных систем от других систем с искусственным интеллектом заключается в том, что экспертная система моделирует механизм мышления человека применительно к решению задач в данной проблемной области, а не бизнес-логику.

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

Одним из главных преимуществ экспертных систем является производительность. В основном подобные системы обрабатывают данные объектов реального мира, а такие операции обычно требуют значительного человеческого опыта, т. е. экспертизы. Хорошо спроектированные экспертные системы находят решение за разумное время, которое как минимум не хуже того, с которым ту же задачу может решить специалист в данной предметной области. Это означает, что экспертные системы продуктивны и их мощь выражается посредством качественного понимания областей задач [11, с. 74].

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

В исследовании [12] отмечается весьма положительное влияние экспертных систем на совершенствование контрольного аудита в электронных системах бухгалтерского учета, что проявлялось в упрощении процесса разделения работ и обязанностей. Кроме того, подчеркивается влияние экспертных систем на улучшение управления доступом к подобным системам за счет увеличения вероятности правильной обработки и удостоверения подлинности входных данных. Кроме того, был отмечен положительный эффект от внедрения экспертных систем с точки зрения повышения уровня безопасности и защиты данных, а также улучшения контроля над системной документацией, разработкой и обслуживанием.

Подводя итог преимуществам использования экспертных систем, среди них можно выделить следующие [11, с. 80—81]:

1. повышенная доступность и надежность: доступ к экспертным знаниям возможен с любого компьютера, и система всегда своевременно дает ответы на поставленные вопросы;

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

3. объяснение: экспертные системы всегда описывают, как была решена проблема;

4. быстрый ответ: экспертные системы работают быстро и способны решить проблему в режиме реального времени;

5. снижение стоимости: стоимость экспертизы для каждого пользователя значительно снижается.

2. Недостатки экспертных систем

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

Еще одной проблемой при использовании экспертных систем является представление экспертных знаний в форме, понятной системе. Известно также, что приобретение знаний может быть очень дорогим и трудоемким, если проводить его правильно [13, с. 79].

Время, необходимое для составления базы знаний, варьируется от случая к случаю, но может легко составлять от 50 до 100 человеко-недель. Также стоит отметить, что подготовительный этап, включающий первоначальную настройку, технико-экономическое обоснование (ТЭО) и выбор программной оболочки, может занять дополнительно от 15 до 25 человеко-недель [14, с. 165—166].

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

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

Еще одним недостатком является то, что часть знаний в экспертных системах (обычно менее 10 процентов) ускользает от стандартных схем представления и требует специальных исправлений. Такие исправления создают риск аудита и угрозу безопасности, поскольку они дают возможность скрыть знания, которые могут привести к необычному или дисфункциональному поведению [15, с. 9].

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

Доказательства эффективности экспертных систем в медицине неоднозначны. Хотя в некоторых исследованиях отмечалось, что экспертные системы улучшили работу поставщиков медицинских услуг и лечение пациентов, результаты других исследований были менее оптимистичны в отношении их воздействия, требуя дополнительных доказательств для демонстрации экономической эффективности систем подобного вида [13, с. 92]. Например, экспертные системы оказались плохо применимы для плановых медицинских консультаций, где они могут использоваться только как дополнительное средство помощи для врачей, предоставляя им необходимые для постановки диагноза данные о пациентах [17].

Резюмируя недостатки использования экспертных систем [11, с. 81], выделим следующие:

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

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

3. экспертная система может выбрать наиболее неподходящий метод решения той или иной задачи;

4. проблемы этики использования любых форм ИИ в настоящее время очень актуальны;

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

3. Архитектура экспертной системы в общем представлении

В общем виде экспертная система включает в себя следующие компоненты: базу знаний, механизм логического вывода, подсистему объяснений, подсистему приобретения знаний и интерфейс пользователя. Общая архитектура экспертной системы представлена на рисунке 1 [11, с. 75].


Рисунок 1. Архитектура экспертной системы


Высокоуровневую архитектуру экспертной системы, показанную на рисунке 1, можно объяснить следующим образом [11, с. 75—76]:

1. В базе знаний хранятся факты для обработки. Это информация о предметной области, введенная экспертами.

2. Механизм логического вывода – это интерпретатор правил, он обрабатывает текущую повестку, состоящую из списка запросов для выполнения.

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

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

5. Интерфейс пользователя переводит правила из внутреннего представления в понятный пользователю вид.

4. Классификация экспертных систем

Экспертные системы принято разделять на четыре класса по принципу их работы, включая экспертные системы на основе правил, фреймов, нечеткой логики и нейронных сетей [10, с. 203].


4.1. Экспертные системы, основанные на правилах

Системы, основанные на правилах, преобразуют знания человека-эксперта в формат, подходящий для использования в автоматизированной системе с использованием набора утверждений, т. е. фактов, и набора правил, воплощающих эти знания [18, 19]. Правила задаются в форме ЕСЛИ – ТО. Подобные экспертные системы очень популярны в медицине [20—27]. В исследовании [28] описан унифицированный фреймворк для построения подобных экспертных систем, в котором формализуются операции генерации, упрощения и представления правил.


4.2. Экспертные системы, основанные на фреймах

Фреймовые экспертные системы [29—32] функционируют на основе так называемых фреймов, представляющих собой развитую структуру данных, содержащую концептуальную информацию: именование понятия, возможные значения каждого из атрибутов, а также информацию о процедурах для обработки целевых задач. Фреймовые системы могут решать более сложные задачи по сравнению с экспертными системами, основанными на правилах [10, с. 203—204], и часто комбинируются с последними, образуя, таким образом, мощную систему для решения сложных задач [33].


4.3. Экспертные системы на основе нечеткой логики

Экспертные системы на основе нечеткой логики [34—40] построены на основе теории нечетких множеств, которая используется в процессе принятия решений. Такие системы обладают высокой надежностью и способны выполнять предварительные и эвристические рассуждения [10, с. 204].

Цель экспертных систем на основе нечеткой логики – предоставить простой способ работы в среде с высоким уровнем неопределенности. Если допускается, что сделанные экспертной системой выводы не будут точными, и при этом принимается в расчет определенная погрешность, то в таких случаях использование нечеткой логики может быть очень эффективным [41].


4.4. Экспертные системы на основе нейронных сетей

Экспертные системы на основе нейросетей, как следует из названия, используют нейронные сети для построения базы правил на основе примеров, приведенных человеком-экспертом. Экспертная система на основе нейронной сети со временем увеличивает знания, представленные в ее связях, обучаясь на примерах [42].

Подход на основе нейронных сетей может быть применен в том случае, когда трудно определить, является ли база знаний правильной, последовательной или неполной. Это также применимо в ситуациях, когда трудно получить соответствующий требованиям поставленной задачи набор правил от экспертов-людей [43].

Несмотря на то что нейронные сети изначально не были предназначены для создания экспертных систем [42], этот подход активно используется в настоящее время в связи с бурным развитием алгоритмов машинного обучения [10, с. 204].

При построении экспертных систем с использованием нейросетевого подхода могут использоваться различные алгоритмы и типы нейронных сетей. Например, в статье [44] показано, как алгоритм прямого распространения ошибки (feedforward backpropagation) [45] можно использовать для прогнозирования температуры корпуса печи. В работе [46] описана экспертная система видеонаблюдения на основе рекуррентной нейронной сети (RNN) [47] и сети долгой краткосрочной памяти (LSTM) [48]. В исследовании [49] была предложена экспертная система на основе нейронной сети обобщенной регрессии (GRNN) [50] для диагностики заболевания, вызванного вирусом гепатита В.

5. Инструментарий для создания экспертных систем

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


5.1. Exsys Corvid

Exsys Corvid [51] уже много лет является одной из самых популярных коммерческих оболочек и активно используется до сих пор. Он включает в себя инструменты для программной отладки и тестирования, а также редактирования и модификации знаний и данных. Система логического вывода (Corvid Inference Engine), написанная на Java, позволяет решать сложные задачи с использованием правил ЕСЛИ – ТО.

Экспертные системы автоматизации знаний на основе Exsys Corvid нашли свое широкое применение в самых разных областях, таких как медицина, техническое обслуживание, управление человеческими ресурсами, госсектор, энергетика и т. д. [52]. Использование Exsys Corvid в качестве инструмента разработки для реализации экспертных систем описано в статьях [53—56].


5.2. CLIPS

CLIPS [57] – хорошо известный программный инструмент для построения экспертных систем на основе правил. Он написан на языке программирования C и использует прямую цепочку логического вывода (forward chaining). В настоящее время CLIPS активно используется в многочисленных современных проектах, таких как разработка экспертной системы для выбора тоннелепроходческой машины [58], прототипирование экспертных систем на основе правил [59], а также в реализации цифрового фитнес-тренера [60].


5.3. Java Expert System Shell (JESS)

Java Expert System Shell (JESS) – это еще одна популярная оболочка для создания экспертных систем. Данная оболочка является интерпретатором языка программирования Jess и может использоваться в консольных и графических приложениях. С архитектурной точки зрения система JESS основана на продукционной модели представления знаний (production system) и выполняет программы, основанные на правилах [61].

JESS успешно использовалась во многих проектах, включая интерактивную голосовую систему [62], обнаружение семантических веб-сервисов [63], анализ рисков безопасности [64], создание виртуальной лабораторной платформы [65], и многих других проектах.

На страницу:
1 из 2