В конце 90-х годов европейскими учеными были предложены термины Web Mining (WM) и Web Analytics (WA), соотносящиеся примерно так же, как Data Mining (DM) и Data Analytics — WM в большей мере относится к формальным методам выделения по заданным шаблонам полезных данных из сырых, а WA ближе к семантике — извлечение полезной информации из данных. Однако в таком контексте эти различия не имеют существенного значения, поэтому, говоря об извлечении полезных сведений из WWW, будем иметь в виду и то и другое.
WM — программное обеспечение, предназначенное для извлечения знаний из данных, обычно из документов и сопровождающих их гиперссылок, из сведений о пользователях и их активности, зафиксированных в разного рода журналах, короче, из всего, что может быть доступно в Сети. Первые публикации на тему WM датируются серединой 90-х годов, когда мирно сосуществовали два подхода — процессный (process-centric view), представляющий WM как последовательность выполняемых задач, и дата-центричный (data-centric view), привязанный к типам данных. В дальнейшем преимущественное распространение получил второй.
Переломным в судьбе WM стал 2008 год, приведший к началу коммерциализации технологий WM, — компания Google предложила сервис Google Flu Trends (GFT), средствами которого удалось, например, предсказывать эпидемии гриппа, что дало основание для неумеренного оптимизма и веры в бесконечные возможности анализа Больших Данных. Однако избранная специалистами Google модель распространения эпидемий оказалась тогда недостаточно достоверной — в ней обнаружились серьезные погрешности, и незамедлительно начался массовый откат. Вполне ожидаемо главным критиком, а скорее стимулятором негатива, оказался не кто иной, как Билл Гейтс, вполне обоснованно видящий в Google своего стратегического конкурента. Весной 2014 года с полярными мнениями относительно потенциала GFT выступили такие мощные журналы, как Science и The Atlantic: первый — «против», второй — «за». Невзирая на авторитет этих изданий, можно сказать, что публичная шумиха выглядит довольно наивно, поскольку речь идет всего лишь об инструменте, который можно применить с тем или иным успехом в зависимости от множества самых разных обстоятельств, благоприятных или нет.
Сегодня под WM понимают совокупность методов автоматического систематического обхода WWW с целью сбора требуемых данных о компаниях и людях для выработки информации и принятия решений. Web Mining отличается от Data Mining масштабом, способом доступа и структурой данных. В традиционном DM обработка базы данных с одним миллионом записей считается большой работой, а в WM даже обработку 10 млн страниц нельзя назвать чем-то выдающимся. DM имеет дело с корпоративными данными, что требует соответствующих полномочий, а в WM обычно используются публичные данные и нет необходимости в правах доступа, но следует соблюдать определенные этические нормы. Хотя краулеры (поисковые программы-роботы), распространяемые поисковыми машинами, создают для сайтов дополнительную нагрузку, администраторы им не противодействуют, поскольку в результате создаются индексы, способствующие увеличению посещаемости. Однако WM не придает сайтам дополнительных качеств, поэтому краулеры должны быть более тактичны. Традиционный DM получает структурированные данные из баз данных, а WM оперирует неструктурированными или квазиструктурированными данными.
Дата-центричность означает акцент WM на работе с тремя источниками информации.
- Данные о действиях пользователей, от журналов серверов (server log) до отслеживания обращений к браузеру (browser activity tracking). Анализируя эти сведения, можно получать обобщенные данные, изучить закономерности поведения групп пользователей и информацию о посетителях сайта. Помимо владельцев браузеров, сбором такого рода данных занимаются сотни специализированных компаний, образуя крупный сегмент бизнеса.
- Веб-графы, описывающие прямые связи между страницами WWW. Математический граф состоит из вершин, соединенных ребрами (дугами в ориентированных графах). В веб-графе вершины — это страницы WWW, а дуги — гиперссылки между ними. По графу устанавливаются связи между страницами, людьми и любыми иными объектами.
- Контент веб-страниц и связанных с ними документов.
Рис. 1. Составные части WM |
Как показано на рис. 1, в WM выделяют три направления: нагрузочный WM, структурный и контентный.
Нагрузочный WM
Паутина становится важным инструментом привлечения клиентов, что делает актуальной оценку качества работы сайта, — этой цели служит нагрузочный WM (Web Usage Mining, WUM), позволяющий обнаружить модели поведения пользователей по их цифровым следам на сайте: пути доступа, посещаемые страницы, лог-записи, регистрационные данные и др. По полученным данным можно, например, создавать рекомендации пользователю по посещению интересных для него страниц, которые остались еще без его внимания. Обычно процедуры WUM состоят из нескольких основных шагов (рис. 2).
Рис. 2. Нагрузочный WM |
Сбор данных (Data Collection). Разнообразные пользовательские данные собираются на серверной и пользовательской сторонах, а также в прокси-серверах. Веб-сервер собирает запросы пользователей и хранит их в журналах, однако достоверность данных в журналах страдает из-за проблемы идентификации сессии (session identification problem), возникающей из-за кэшей, посылающих ответ на запрос без обращения к серверу. Сбор данных на стороне пользователя (Client Side Collection) осуществляется встроенными в браузер агентами (Java-скрипты или Java-апплеты), но теоретически пользователь должен выразить свое согласие на такой способ отслеживания. В этом случае проблема идентификации сессии исключается, тем не менее сохраняется ситуация, когда собранные данные не вполне достоверны. Прокси-сервер получает запросы в том же формате, что и веб-сервер, и может использовать их для обобщенной оценки запросов.
Предобработка (Preprocessing). На этом этапе с помощью разнообразных эвристических алгоритмов выполняется последовательность операций над журналами с целью преобразования потока сырых данных в набор пользовательских досье (профилей). Данные очищаются путем удаления несущественных сведений (для большинства сайтов несущественны медийные файлы, а для распространителей контента именно они представляют наибольшую важность). В процессе очистки учитываются коды состояния HTTP, учитываются только успешные запросы с кодом от 200 до 299. Затем происходит идентификация пользователя (User Identification), в простейшем случае она осуществляется по IP, но и здесь есть множество вспомогательных решений, особенно продуктивно использование формата Extended Log Format. После этого идентифицируется сессия (Session Identification) — анализ набора страниц, посещенных пользователем за визит. Для решения этой задачи создано огромное число эвристических алгоритмов, основанных на времени пребывания на страницах и навигации по сайту. Завершающий этап предобработки — формирование образа (Path Completion) пользователя.
Распознавание образов и анализ (Pattern Discovery and Analysys). Это самый наукоемкий этап WUM, и чаще всего для анализа сессий и посетителей применяются статистические методы (Session and Visitor Analysis). Данные агрегируют по определенным признакам, по дням, по сессиям, по пользователям или доменам, а полученные отчеты содержат сведения о наиболее часто посещаемых страницах, времени пребывания на странице, длине пути по сайту и т. п. Кластерный анализ служит для объединения объектов с общими признаками, что в WUM нужно для сегментации посетителей сайтов и страниц по их посещаемости. Это позволяет объединить в группы пользователей, имеющих общие образы, — например, по демографическим показателям, необходимым для целей адресного маркетинга. Ассоциативный и корреляционный анализ позволяет устанавливать связи между теми или иными явлениями или процессами. Анализ навигационных образов служит для предсказания поведения пользователей, что необходимо, скажем, для размещения рекламы.
Структурный WM
Подходы к структурному WM (Web Structure Mining, WSM) разделяются по используемым данным. Первая категория таких подходов — Web Graph Mining, когда WWW представляется как граф с узлами-страницами и гиперссылками-ребрами. Второй — менее развитый — подход (Deep Web Mining) адресован к скрытому или глубинному WWW (Deep Web). Следует отличать Deep Web от DarkWeb, к последнему относятся либо потерянные, либо вообще не подключенные к Сети страницы. Deep Web состоит из страниц и сайтов, недоступных обычным краулерам, — это могут быть страницы, не связанные гиперссылками с другими, в частности динамически создаваемые по запросам к базам данных, или сайты, доступные только зарегистрированным пользователям. В таких случаях информация, доступная человеку-пользователю, оказывается недоступной роботу — обычно краулеры идут «по поверхности», а значительная часть полезных данных скрыта от них в глубине.
Основное предназначение WSM для подхода Web Graph Mining состоит в обнаружении взаимосвязи между веб-страницами и формировании иерархии гиперссылок. Таким образом WSM обеспечивает заготовку для установления связей между фрагментами информации на сайте, доступа к информации по ключевым словам и контентного WM. Иерархия гиперссылок используется еще для установления с помощью поисковых машин системы гиперссылок, обеспечивающих переход со страниц собственного сайта к внешним сайтам — например, к сайтам конкурентов, где размещена близкая по содержанию информация. Далее связанные страницы можно кластеризовать по логическим связям между одним или более сайтами, принадлежащими партнерам или конкурентам.
К результатам WSM можно применить алгоритмы ранжирования PageRank или HITS (Hyperlink Induced Topic Search), позволяющие найти наиболее значимые страницы, что напоминает подсчет индекса цитирования научных статей. Понимание того, как контент соотносится с рангом страницы, позволяет повышать качество сайта.
Контентный WM
Контентный WM (Web Content Mining, WCM) имеет общие черты с DM и Text Mining (TM), однако методы DM, как и TM, не могут быть непосредственно распространены на WCM, поскольку веб-данные представляют собой смесь квазиструктурированных и неструктурированных данных, в то время как DM ориентирован только на структурированные, а TM — на неструктурированные. За последние несколько лет WCM стал областью активных исследований, и основные сложности здесь вызваны гетерогенностью веб-данных и их низкой структуризацией, затрудняющей выделение целевой информации. Кроме того, в WCM необходимо решать ряд специфических задач: извлечение структурированных данных из веб-страниц с использованием методов машинного обучения и нейронных сетей; формирование процедур унификации форматов представления данных и их интеграции из разных источников; выделение оценок продуктов и услуг в отзывах, размещаемых на форумах, в блогах и чатах. Для отделения содержательной составляющей страниц от служебных и рекламных текстов требуются соответствующие процедуры сегментации.
В WCM для каждого из трех типов данных (структурированные, неструктурированные и квазиструктурированные) используются собственные методы обработки, но независимо от этого почти всегда выполняется процедура перевода данных из формы, предназначенной для чтения человеком, в форму, удобную для обработки компьютером. Такая процедура называется data scraping, или «срезание данных с поверхности». Первые технологии screen scraping применялись сначала на мэйнфреймах и позже на мини-компьютерах для придания диалоговых функций унаследованным программам. Средствами screen scraping можно адаптировать такие программы для поддержки простейших «зеленых» алфавитно-цифровых терминалов и таким образом наладить режим интерактивного взаимодействия. Много лет спустя эта же идея возродилась как Web Scraping — в какой-то степени их работа напоминает индексацию WWW, но ее цель заключается не в составлении индексов, а в преобразовании неструктурированных данных, существующих в формате HTML, в структурированные и сохранении их в базах данных или в электронных таблицах.
Диапазон технологий, используемых для Web Scraping, чрезвычайно широк, но в ряде случаев невозможно обойтись без вмешательства человека, и тогда берут на вооружение классический прием copy-and-paste. Есть еще простой, но эффективный прием, известный как Text grepping, построенный на базе UNIX-утилиты grep. Подобным же образом могут быть использованы средства для работы с регулярными выражениями, имеющиеся, например, в языках программирования Perl и Pyton. Программы разбора HTML используют то обстоятельство, что многие сайты имеют в своем составе страницы, динамически сгенерированные из содержимого структурированных источников (баз данных), и для их создания применяются общие для схожих страниц шаблоны. В таких случаях используют программы-упаковщики (wrapper), которые, наоборот, извлекают содержимое и переводят его в реляционную форму. Создание упаковщиков — непростая задача, решаемая в человеко-машинном режиме, что требует больших трудозатрат на первичную разметку страниц и поддержку разметки на протяжении жизненного цикла данных. Полностью автоматизированная генерация возможна пока только на экспериментальном уровне, а высшим достижением Web Scraping являются анализаторы веб-страниц с элементами искусственного интеллекта на базе систем компьютерного зрения и машинного обучения.
Очевидно, что проще всего выполнять WCM для структурированных данных — здесь достаточно применить служебные процедуры сначала обхода страниц, затем генерации и исполнения упаковщика, а потом можно переходить к анализу содержимого страницы (Page Content Mining). Сложнее с квазиструктурированными данными, обладающими отдельными признаками структуры, но не соответствующими реляционной модели. По этим признакам данные можно преобразовать в структурированные, вот почему их еще называют данными с самоописанием. Проблема работы с квазиструктурированными данными актуализировалась с появлением Интернета, где таких данных много. В качестве общего примера можно привести библиографические данные, где известна форма ссылки, но в ней может быть неопределенное число авторов или еще какие-то нарушения строгого формата. То же самое относится к разного рода персональным данным. Примером квазиструктурированных данных может служить граф просмотра сайта посетителем — именно для такого рода данных характерно переменное число полей, а сами поля при этом могут располагаться в произвольном порядке. Особое внимание такие данные привлекли к себе с появлением «человеко-читаемого» языка XML, имеющего гибкую структуру и текстовой формат обмена JSON (JavaScript Object Notation).
Для работы с квазиструктурированными данными предложены специальные языки класса Web Data Extraction Language, такие как NEXIR ELOG, предназначенные для программ-упаковщиков. С их помощью описывается процедура выделения данных Top Down Extraction, завершающаяся созданием объектной модели данных Object Exchange Model (OEM).
Неструктурированный DM использует методы TM в приложении к специфике WWW и призван облегчить восприятие пользователем больших массивов текстов. Выделяют несколько типов такого рода операций: отслеживание тематики (Topic Tracking) — оценка области интересов пользователя и формирование рекомендаций потенциально интересных ему документов; свертка (Summarization) — создание резюме документов, сокращающего объем необходимого чтения; ранжирование (Categorization) — упорядочение документов и их распределение по заранее определенным категориям; кластеризация (Clustering) — объединение схожих документов в группы; визуализация (Information Visualization) или визуализация данных (Data Visualization) — решение проблемы коммуникации пользователя с данными, и особо здесь интересна визуализация текстов (Text Visualization).
Около дюжины компаний производят сегодня инструменты для WCM в виде традиционных загружаемых коммерческих и свободно-распространяемых программ и облачных сервисов. Визуализация еще не вышла на коммерческий уровень, и все продукты этого класса распространяются свободно.
***
По мере наполнения World Wide Web растет необходимость в средствах для доступа к данным. И хотя задача WM пока еще остается исследовательской, уже появились готовые доступные продукты, помогающие в решении ее отдельных частей.
Леонид Черняк (osmag@osp.ru) — научный редактор, «Открытые системы. СУБД» (Москва).