Читать книгу Агрегация контента и его обработка. Сборник статей по архитектуре распределенных систем и программной инженерии - Д. А. Попов, Денис Александрович Шевчук, Денис Александрович Мурзин - Страница 13
Гибридная категориальная экспертная система для использования в агрегации контента
Перевод с английского
7. Предлагаемая система
Оглавление7.1. Архитектура системы
Предлагаемая экспертная система категоризации рассматривается как часть высоконагруженной распределенной системы агрегации контента, агрегирующей текстовые данные различных типов, таких как новости, блоги, объявления о работе, информация о компании (включая отзывы о работе), события (встречи, конференции, выставки и т. д.), и отображает его в удобном для пользователя виде.
Поскольку основной целью этой системы является предоставление релевантного ответа на пользовательский запрос, решение проблемы категоризации агрегированного контента очень актуально. Задача усложняется огромным объемом данных, что подразумевает необходимость обеспечения высокой производительности и масштабируемости работы системы категоризации.
Каждый из агрегированных документов обладает набором свойств, таких как заголовок, дата создания, URL, тип, краткое описание и т. д. Эти свойства используются механизмом на основе правил для категоризации данных в том случае, когда данные, полученные на этапе нейросетевой обработки, недостаточны для принятия конечного решения.
Высокоуровневая архитектура предлагаемой системы показана на рисунке 2.
Рисунок 2. Архитектура экспертной системы категоризации агрегированного контента
Система, показанная на рисунке 2, состоит из кластера загрузчиков контента [100], т. е. веб-краулеров, модуля парсинга контента, модуля классификации, модуля предварительной обработки, классификатора спама, классификатора на основе нечетких отпечатков, классификатора на основе атрибутов и SVM-классификатора.
В системе также имеется тезаурус – база данных со списком слов на разных языках, которые используются в категоризации данных. На каждом этапе система пытается получить метки, соответствующие категориям обрабатываемого контента.
Всю представленную систему можно разделить на две части: первая часть – поиск информации, вторая – ее последующая обработка и категоризация. Эти части будут описаны ниже, уделяя больше внимания части категоризации, поскольку технология агрегирования контента не является основной темой данного исследования.
7.2. Получение информации
Загрузчики контента отвечают за постоянное наполнение системы данными: они отправляют сотни запросов к источникам в Интернете и сохраняют веб-страницы в базу данных хранилища контента.
Парсер контента – это распределенный набор сервисов-парсеров, которые получают на вход агрегированные данные и извлекают из них структурированную информацию в соответствии с бизнес-правилами. Полученные в результате обработанные данные затем сохраняются в БД агрегированного контента. Так же, как и БД с загруженными страницами, БД агрегированного контента является реляционной базой данных (PostgreSQL [101]). В системе повсеместно используется master-slave репликация для обеспечения отказоустойчивости и стабильной работы.
Классификатор извлекает обработанные данные из БД агрегированного контента и добавляет их для последующей обработки в очередь классификации (RabbitMq [102]). Очередь сообщений в данном случае используется для масштабирования нагрузки, т. к. объем обрабатываемой информации очень велик.
7.3. Предварительная обработка
Модуль предварительной обработки автоматически извлекает HTML-данные из очереди сообщений, поступивших на классификацию, и производит дальнейшую предварительную обработку, цель которой – облегчение дальнейшей работы механизма категоризации.
Рисунок 3. Архитектура модуля предварительной обработки
Архитектура модуля предварительной обработки показана на рисунке 3.
Как следует из рисунка 3, архитектура модуля предварительной обработки состоит из отдельных приложений, выполняющих удаление HTML-разметки, приведение к нижнему регистру, удаление стоп-слов, стемминг [103], удаление знаков пунктуации, лемматизацию, а также извлечение ключевых слов с использованием алгоритма TF-IDF [104].
7.4. Классификатор спама
Рассматриваемая система агрегирования контента должна иметь эффективный механизм обнаружения спама и нежелательного контента. Проблема состоит в том, что спам может содержаться в различных типах контента и принимать многочисленные формы: от скрытой рекламы до незаконного контента в статьях, агрегированных комментариях и отзывах. Идентификация и классификация спама является актуальной научно-технической проблемой, которая решается разнообразными способами, включая применение экспертных систем на основе правил, а также систем, базисом которых являются алгоритмы машинного обучения.
Например, в исследовании [105] описан фреймворк для гетерогенного обучения на основе cost-based методов, которые применяются для обнаружения спама в сообщениях Twitter и представляют собой сочетание работы экспертов и алгоритмов машинного обучения, отвечающих за фильтрацию спама в сообщениях.
В статье [106] спам-сообщения были идентифицированы с помощью ИИ на основе алгоритмов глубокого обучения. Исследователи применили шесть моделей обучения и обнаружили, что XGBoost [107] имеет лучшую производительность среди моделей машинного обучения при определении спама.
Классификатор спама, входящий в состав предлагаемой системы, основан на поведенческом методе, описанном в [108], который совмещает подход, основанный на правилах, с нейросетевой обработкой. Данный метод использовался авторами указанного исследования для решения задач обнаружения спама в электронных письмах. Архитектура предлагаемого классификатора спама показана на рисунке 4.
Рисунок 4. Архитектура классификатора спама
Классификатор спама работает следующим образом: при поступлении новой партии агрегированного контента запускается анализ входного текста на предмет наличия внешних ссылок, занесенных в спам-список. При обнаружении совпадений на этом этапе данные считаются спамом и сохраняются в БД со спамом.
Следующим шагом является обработка на основе правил, в которой используются знания предметной области из базы знаний. Если данные определяются как спам, то они снова сохраняются в БД со спамом.
Для выявления спам-поведения предполагается формировать новости, комментарии, блоги и другой агрегированный контент в соответствии с их ключевыми словами, тегами, датой создания, информацией об авторе, внешними ссылками, описаниями изображений и т. п. и представлять эти данные в векторной форме с последующей нейросетевой обработкой, как описано в статье [108].
7.5. Классификатор на основе алгоритма нечетких отпечатков
Весь агрегированный контент должен иметь основные категории, соответствующие общему содержанию смысла. Кроме того, есть более конкретные подкатегории. Например, для категории «Спорт» возможны подкатегории «Хоккей» или «Футбол».
Для этого используется классификатор на основе алгоритма нечетких отпечатков (Fuzzy fingerprints classifier), определяющий основные категории для каждого типа агрегированного контента. Для таких типов контента, как статьи и блоги, которые содержат большое количество текстовых данных, этот модуль применяет алгоритм нечетких отпечатков [109]. В случае комментариев и обзоров, которые менее многословны, используется алгоритм Twitter Topic Fuzzy Fingerprints [93].
Для определения основной категории анализируемого контента создается его отпечаток на основе наборов обучающих данных, содержащих объекты с известной категорией. Созданные отпечатки сохраняются в базу данных PostgreSQL.
Если классификатор получает неоднозначные результаты, в действие вступает механизм, основанный на правилах, который использует логику предметной области, связанную со свойствами анализируемого документа.
7.6. Классификация на основе атрибутов и SVM-классификация
Идея использования классификатора на основе атрибутов была заимствована из конструкции экспертной системы GENIE [94]. Это основанный на правилах процесс, который находит подкатегории обработанных документов в соответствии с их свойствами и на основе основной категории, найденной на предыдущем этапе с помощью классификатора нечетких отпечатков.
На последнем этапе обработки данных используется SVM-классификатор, реализованный на основе метода опорных векторов (support vector machine, SVM) [110, 111]. SVM-классификатор ищет совпадения для извлечения подкатегорий, которые могли быть пропущены классификатором на основе атрибутов.