Наверное, многие из вас знают о том, что в продуктах Solar webProxy и Solar addVisor поддерживается функциональность категоризации веб-ресурсов (webCat). Но многие ли из вас знают о том, что же из себя представляет этот, казалось бы, «очевидный» из названия процесс? В этой статье расскажем о том, что такое категоризация, в целом, из каких этапов состоит, с какими проблемами и сложностями вынуждает нас сталкиваться в процессе разработки механизма и почему-же все не так просто, как кажется…
Двигаясь от общего к частному, постараемся понятным языком дать определение категоризации (классификации) веб-ресурсов – фактически, это подход к присвоению категории веб-странице на основе ее контентного содержимого, глобальной целью которого является достижение максимальной точности и максимального покрытия ресурсов сети Интернет. Тем не менее, за этим подходом кроется множество деталей.
Что из себя представляют категории и откуда они берутся
Категоризация содержимого веб-сайтов, как таковая, зародилась изначально в коммерческих целях, а именно – в контексте продвижения рекламы в сети Интернет.
Бюро интерактивной рекламы (Interactive Advertising Bureay, IAB) – американская рекламная бизнес-организация, разрабатывающая отраслевые стандарты, занимающаяся исследованиями в медийном пространстве и оказывающая юридическую поддержку индустрии онлайн-рекламы, создала «стандарт», список категорий (более 400 категорий с несколькими уровнями классификации), который предоставил рекламодателям возможность выбирать, как и где должна отображаться их реклама. Вслед за рекламной индустрией, категоризацию стали активно интегрировать в продукты информационной безопасности (контентная фильтрация доступа в Интернет), а также в решения по учету/контролю рабочего времени. Важно отметить, что для первого случая (контентная фильтрация), категоризатор не является непосредственным механизмом принятия решений о предоставлении/блокировке доступа, а лишь информирует специалистов, ответственных за выработку политик фильтрации пользовательского трафика, о потенциальном содержимом веб-ресурсов, находящихся в соответствующих категориях.
В общем понимании категория – это ни что иное, как группа определенных объединяющих контент (содержимое) веб-страницы критериев, однозначно характеризующих тематику посещаемого сайта (например, «Новостные сайты» или «Музыка, видео»). При этом, наличие стандарта IAB не ограничивает разработчиков решений в формировании собственных справочников категорий, а скорее является отправной точкой для выработки частных методик классификации, целесообразность которых напрямую зависит от области применения категоризаторов.
В разрезе обеспечения информационной безопасности, тайм-менеджмента глубокая детализация является избыточной. На настоящий момент основные игроки рынка (webCat, iAdmin, SkyDNS, Symantec Bluecoat, Cisco Umbrella и др.), поддерживающие возможности категоризации, как правило, ограничиваются 60-120 категориями.
Ни для кого не секрет, что контент, размещаемый на одном сайте в сети Интернет, может содержать в себе и новостные публикации, и рецепты приготовления «Шарлотки», и предоставлять возможность смотреть мультфильмы. В этих условиях мы, как специалисты, уже сталкиваемся с первой проблематикой именуемой «параллельной категоризацией», когда ресурсу присваивается от двух и более категорий. Например, для пользователей решений контентной фильтрации эта особенность может вызвать критичные затруднения в части формирования политик доступа в сеть Интернет, и в данной ситуации разработчики могут лишь дать рекомендации по приоритизации правил и формированию частных исключений, поскольку категоризатор, по существу, выполняет только информирующую функцию.
Формирование справочника и выработка методики отнесения веб-ресурсов к той или иной категории – одна из первостепенных и нетривиальных задач при разработке решения по категоризации веб-ресурсов, непосредственно влияющая на будущую точность и качество классификации. Главная цель – добиться недвусмысленности категории, как для человеческого понимания, так и для понимания алгоритмами машинного обучения, которые ответственны за автоматизацию большего количества этапов всего процесса классификации.
Ввиду вышеописанного специалисты, решающие задачу формирования справочника, должны обладать экспертными знаниями в области:
· контент-менеджмента,
· data-science,
· организации бизнес-процессов
· информационной безопасности.
Из чего же состоит сама категоризация веб-ресурсов?
На 31 декабря 2022, по информации SimilarWeb, Интернет насчитывал более 1.97 миллиардов веб-сайтов, их количество растет, и все они требуют категоризации. Говорить об исключительно человеческом ресурсе категорирования не приходится по понятным причинам.
Современный процесс категоризации предполагает наличие алгоритмов Machine Learning – обученных моделей, способных на основании определенных признаков присваивать анализируемому контенту веб-ресурса соответствующую категорию. Но как, когда и в каком виде искусственный интеллект получает этот контент…?
Этапы процесса категоризации
1. Резолвинг
Несмотря на почти бесчисленное количество веб-сайтов, достаточно и тех, которые уже недоступны. Прежде всего, при включении адреса в процесс категоризации, сайт проверяется на доступность – для этого должен быть предусмотрен специальный модуль DNS резолва, в результате работы которого до следующего этапа будут доходить только те веб-ресурсы, ответ об актуальности домена которых приходит с DNS сервера.
2. Проверка на вредоносное содержимое
Если домен актуален, то адрес веб-ресурса должен сравниваться с базами вредоносных, фишинговых, скомпрометированных доменов (в некоторых решениях механизмы анализа на предмет наличия вредоносного ПО встроены в сам категоризатор). Если вредоносный контент обнаружен, по умолчанию таким доменам должна присваиваться соответствующая категория.
3. Краулинг – сбор содержимого веб-страницы
Если же вредоносный контент не обнаружен, то адрес веб-ресурса передается в модуль, отвечающий за сбор контента для последующей его очистки и категоризации – краулер (в некоторых случаях – ферма краулеров). Его задача – в автоматическом режиме посещать сайты и собирать все содержимое, встречаемое в заголовках страницы.
Основная сложность заключается во встроенных в браузеры постоянно совершенствующихся механизмах защиты от ботов, которым, фактически краулер и является. Обход подобных блокировок вынуждает нас, как специалистов, находить наиболее оптимальные методы, использовать алгоритмы, полностью имитирующие деятельность человека в браузере – открытие приложения, ввод адреса веб-ресурса в строке поиска с клавиатуры, нажатия мыши. Гарантировать на 100%, что вы не поймаете блок невозможно, ввиду чего, в некоторых случаях вместо информативного контента, результатом сбора может являться строка (пример очищенного контента по результатам прохождения 4 этапа):
![](https://habrastorage.org/getpro/habr/upload_files/cfd/15d/76a/cfd15d76a1c7089fc833410e02442abc.png)
Очевидно, что для подобных ситуаций и, в целом, ситуаций, связанных с недостаточностью контента, например, когда на веб-странице вообще нет текста или его количество – десять бессвязных слов, никак не способствующих определению категории (что является обратной стороной проблематики избыточности, описанной выше) искусственный интеллект не применим, требуется дополнительная аналитика, и категоризация веб-сайтов осуществляется вручную контент-менеджерами – это нормально.
Результат сбора содержимого заголовков веб-страниц краулером содержит множество метаинформации и требует очистки, прежде чем попасть в модель искусственного интеллекта (ИИ).
![](https://habrastorage.org/getpro/habr/upload_files/501/2fc/53e/5012fc53e375fbdca49d4eedd4e38e3d.png)
На данном этапе возникает новая проблематика – оптимальные для последующей категоризации методы парсинга и очистки данных.
4. Очистка
Поиск методов парсинга и очистки текста, как правило, процесс непрерывный ввиду изменчивости контента. Глобально задача сводится к определению тегов html, из которых необходимо извлекать значимую информацию, а также к установке приоритета извлечения для получения достаточного количества наиболее значимого текста для классификации. Например, на текущий момент в webCat, осуществляется очистка текста от спецсимволов, чисел, ссылок и др., а контент извлекается в порядке приоритета из заголовков: description, h1, h2, span, p, div. Достаточным считается количество контента до 50 слов. Оптимальность данного метода определяется в связке с результатами обработки контента моделью ИИ и корректностью, присвоенной ею категории веб-ресурсу. Данный этап всегда сопровождается научно-исследовательскими работами в области data-science и зависит от применяемых алгоритмов машинного обучения.
4.1. Контентно-зависимые и контентно-независимые категории
В разделе, где мы рассказывали о формировании справочника, была подсвечена проблематика разнородности содержимого веб-ресурсов. Для некоторых подобных сайтов действительно есть соответствующие самостоятельные категории, например, «Порталы» или «Форумы и блоги». Но… что, если в момент краулинга контент такой страницы описывал принципы ухода за шиншиллой? К какой категории должен быть отнесен моделью ИИ веб-ресурс?.. Так появляется еще одна важная проблематика, ставящая под угрозу точность категоризации – градация категорий на контентно-зависимые и контентно-независимые. С первыми все достаточно прозрачно, например, веб-сайт предоставляет рецепты для здорового питания, тогда ему правильно будет присвоить две категории «Еда, напитки, гурманство» и «Здоровье». А вот со вторыми вопрос сводится уже не к анализу контента, а скорее к анализу структуры веб-ресурса. Как научить модель понимать, что форум – это форум, а не отдельно «Авто, мото» или «Мода и стиль»? В этом случае методы парсинга и очистки будут отличны, требуют дополнительных исследований и, в том числе, интеграции нескольких моделей искусственного интеллекта.
5. Модель категоризации ИИ
В этой статье опустим этап выбора оптимальной модели категорирования, поскольку, в целом, любой из них должна решаться одна задача – корректная классификация контента. По ссылке https://habr.com/ru/companies/solarsecurity/articles/690556/ вы можете ознакомиться с технологией BERT, применяемой в категоризаторе webCat на данный момент. «На данный момент» по причине того, что проводятся научно-исследовательские работы по поиску новых моделей, в том числе поддерживающих мультиязычность, которые мы можем интегрировать в нашу систему для достижения наиболее эффективной классификации.
5.1. Обучение
Прежде чем запустить категоризацию (скоринг), модель необходимо обучить на качественной выборке. Сбор датасетов – длительная и трудоемкая работа по ручному поиску однозначно подходящих к описанию и критериям категории веб-сайтов, которая при малом количестве ресурсов команды может затягиваться на месяцы. В процессе сбора обучающих выборок часто выявляются коллизии справочников, недостаточность и даже избыточность категорий (например, смежных «Семья, дети» и «Сайты для детей»). Обучающая выборка должна содержать достаточное количество ресурсов (часть из них идет на обучение, часть – на проверочное тестирование), разнопланово отражающих одну и ту же тематику веб-сайтов для конкретной категории (желательно от 500-1000 ресурсов на 1 категорию). Процесс невозможен без участия команды аналитиков и экспертов контент-менеджмента и требует периодичности запуска с целью повышения точности классификации.
Помимо сбора обучающей выборки аналитиками прорабатывается методика оценки точности классификации модели, содержащей множество параметров, таких как точность, полнота, средние и медианные показатели.
По результатам обучения неизбежно тестирование модели на ранее неизвестной тестирующей выборке. Вслед за тестированием требуется ручная валидация результатов на предмет корректности присвоенной категории, а также вынесение подробного заключения о проблемных категориях. В случае, если результаты неудовлетворительны, проводятся дополнительные научно-исследовательские работы, заново формируются обучающие выборки, и процесс обучения запускается повторно до тех пор, пока удовлетворительные показатели качества не будут достигнуты.
5.2. Промышленная эксплуатация
Кратко – в рамках промышленной эксплуатации точность классификации модели ИИ не должна быть ниже 85-90%.
Разработчики решений понимают, что достигнуть показателей 100% невозможно ввиду особенностей человеческого восприятия контента и восприятия того же контента алгоритмами ML. Многие представители на рынке категоризаторов, обходя эти формулировки, заявляют о определенной сегментной ориентированности – например, SkyDNS и ЦАИР активно продвигают свои решения для образовательных учреждений, что наталкивает на мысль о том, что вендоры лучше всего работают с чувствительной запрещенной информацией. Symantec BlueCoat, Palo Alto и Cisco Umbrella – ориентированы на борьбу с угрозами информационной безопасности, ввиду чего данные категории также достигают показателей близких к 100% точности, более того, за счет интегрируемых в них сторонних аналитических инструментов экосистемы.
6. Мастер-база
Результаты категоризации веб-ресурсов агрегируются в единой эталонной базе категоризатора, хранятся в виде «домен – категория». В рамках интеграции базы категоризатора в другие продукты должна поддерживаться, так называемая, косвенная категоризация (например, если для домена vk.com есть отдельная запись в базе с категорией «Социальные сети», а для поддомена m.vk.com – нет, при обращении к ресурсу m.vk.com, он должен категоризироваться как «Социальные сети»).
С целью поддержания актуальности и точности базы раскатегоризированных ресурсов, в соответствии с best practice ежеквартально должна осуществляться полная перекатегоризация всего содержимого базы с прохождением через все вышеперечисленные этапы. Эта необходимость обуславливается, во-первых, регулярной изменчивостью содержимого веб-ресурсов, а во-вторых, тем, что доступный сегодня сайт, завтра может быть уже недоступен к посещению…
Интеграция компонентов категоризатора
Конечно, модули категоризатора могут существовать по отдельности, и запуск каждого из них может быть инициирован вручную, но какое же это тогда «прод» решение? Каждый компонент системы должен функционировать последовательно друг за другом, стремясь к снижению потребности участия человека, и только тогда его можно назвать полноценным категоризатором.
Исходя из описанного выше подведем краткий итог о том, из чего состоит категоризатор (безотносительно решений, в которые он может быть интегрирован):
1. Однозначный справочник категорий веб-ресурсов
2. Модуль приема логов клиентов (в случае интеграции)
3. Модуль очистки адреса веб-ресурса (опционален для случаев, когда категоризатор поддерживает классификацию по URL, но, чаще всего, категоризация осуществляется по домену)
4. Модуль DNS резолва – проверка адреса на доступность
5. Проверка по встроенным/внешним базам вредоносных ресурсов
a. Встроенные механизмы анализа контента на предмет наличия вредоносного содержимого (опционально)
6. Модуль Краулинга – сбор содержимого веб-страниц
7. Гибкий модуль очистки и парсинга контента
8. Гибкий модуль скоринга – модель ИИ
9. Мастер-база, поддерживающая косвенную категоризацию
А как насчет webCat?
Исторически webCat появился в Solar webProxy как база данных sqlite с хэшированными веб-ресурсами и категориями, набранными из разных конкурентных решений без проверок и тестирований на предмет качества. Помимо доменов в базу попало большое количество «мусора»:
· строки, не являющиеся доменными именами
· URLs и ip-адреса, категоризация которых не поддерживается на настоящий момент в продукте
· ресурсы с поддоменом www (избыточно при поддержке косвенной категоризации)
· «мертвые сайты»
Несмотря на длительное существование базы webCat, доставшейся нынешней команде «по наследству», до середины 2022 года об искусственном интеллекте, а тем более о полнофункциональной системе webCat, речи не шло. Долгое время команда webCat занималась поиском и сопоставлением доменов из внешних источников (таких, как Alexa 1M, Top Cisco Umbrella) с имевшейся базой с целью вскрытия ее содержимого. На настоящий момент база вскрыта на 100% и очищена от мусора (за исключением «мертвых сайтов» - работа с ними производится непрерывно ввиду причин, обозначенных в п.6 «Мастер-база»).
На протяжении полугода формировалось видение движения в сторону разработки продуктового решения. Для достижения этих амбициозных целей мы нарабатываем собственный домен экспертизы в направлении категорирования, которое не так ярко освещается на отечественном рынке. На сегодняшний день разработана функционально-архитектурная схема единой системы, которую мы стремимся создать.
На настоящий момент команда webCat активно работает над оптимизацией справочника категорий, выработкой методики категорирования веб-ресурсов, созданием модулей очистки, парсинга и скоринга SmartCat и над увеличением точности модели ИИ. Сейчас она достигает 69%. В скором времени планируем задействовать SmartCat в задаче по актуализации текущего содержимого базы категоризатора по категориям с точностью выше 75%, а в дальнейшем для организации единого автоматизированного процесса категорирования веб-ресурсов с непрерывным наполнением базы webCat.
В виду того, что webCat уже сегодня находится в активной промышленной эксплуатации, мы стараемся продолжать наполнять базу новыми ресурсами, а также вручную выверять ее наполнение.