Статьи Бикамеральный разум, или куда ушли Боги Pololu 3pi

Моделирование поведения для составления списка рекомендуемых к использованию сайтов

Андрей Орлов  2010-05-11 18:48

Недавно одна известная компания на ровном месте столкнулись с кризисной ситуацией: сотрудники увлеклись доступом к интернет настолько, что использовали его на сумму, сопоставимую с фондом заработной платы. Решение было найдено быстро: дешевый нелимитированные канал, предоставляемый компанией Yota (простите за невольную рекламу). Но, несмотря на то, что Yota честно отрабатывает свои деньги, это решение оказалось началом дороги в ад: снижение скорости доступа в 30 раз привело к конфликтам и неосознаному саботажу со стороны сотрудников: раз работать стало трудно, то стоит ли работать вообще?

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

Тогда появилась идея составить "модель сотрудника", и жестко допросить ее о пристрастиях.

Как работает автоматический классификатор трафика

Как работает автоматический классификатор трафика

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

Такой инструмент ощутимо расширяет возможность применения экспертных оценок: в самом деле, основная проблема экспертной оценки в ее трудоемкости и субъективности. Типичная попытка экспертной оценки административно-командным способом выглядит так: пользователи сети загоняются в нечеловеческие условия работы в виде 100-бодового канала и у кабинета начальника вскоре появляется разъяренная толпа с заявлениями: "сайты nalog и garant медленно открываются и мы не можем работать". Хотя имена названы, ценность этого списка сомнительна: пользователи не осознают какие инструменты им действительно полезны, и на прямой вопрос просто называют имена раскрученных брендов. На самом деле оказывается, что эти сайты используются редко и покрывают ничтожную часть рабочих потребностей: зайдет иногда уставший от годового отчета главбух, окинет тоскливым взором законодательные просторы и пойдет куда глаза глядят - подставлять новые цифры в прошлогодний отчет.

Список сайтов бесполезных составить несколько проще: достаточно просмотреть логи посещаемости и отобрать явное говно, не относящееся к работе: мамба, в контакте и одноклассники. Высокая посещаемость таких ресурсов позволяет легко их обнаружить, но маскирует основную часть бесполезного трафика, приходящегося на большое число редко посещаемых ресурсов типа гипотетического сайта yuzhnye_devushki.

Поэтому результат такого напряженного и рискованного труда окажется не слишком впечатляющим:

Всего в неделю пользователи посещают сайтов 5000
  • из них "сильно необходимых для работы"
20
  • из них "совершенно бесполезных сайтов"
50

В конечном счете можно заключить, что таким командно-административным методом цель посещения основной массы (4930) сайтов установить не удалось и реализуемость разделения трафика оказывается под сомнением.

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

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

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

Всего в неделю пользователи посещают сайтов 5000
  • из них признано представляющими интерес для работы
500
  • из них признано бесполезными
4000

Оценка оставшихся 500 сайтов оказалась невозможна из-за статистической неполноты модели.

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

Замечания об использовании и реализации

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

Небольшой сетевой бэкграунд

Чтобы поиздеваться над пользователями сети, нужно освоить следующий список технологий:

  • Динамическая настройка роутинга командой ip route и аналогичными (сетевые администраторы хорошо с этим знакомы);
  • Для ограничения скорости передачи данных ("шейпер"), можно использовать HTB и CBQ;
  • Настройка роутинга в зависимости от таких необычных параметров как исходящий адрес, порт или протокол настраивается при помощи полисинга (линуксоидам поможет iproute2 и iptables mark, остальным лучше обратится к местному авторитету);
  • Анализаторы протокола: tcpdump, urlsnarf, wireshark и другие - позволяют просматривать транзитный трафик.

Помните, за использование некоторых из этих технологий можно получить в морду :)

Сложности с роботами

Существенной проблемой при анализе поведения пользователя оказалось разделение трафика, порожденного непосредственно действиями человека от трафика, порожденного различной автоматикой: автоматической загрузкой страниц, регулярным сканированием rss-лент, загрузкой обновлений и прочей деятельностью кремниевых мозгов. Современные технологии Web 2.0 также представляют серьезную проблему, так как создают промежуточный слой между действиями пользователя и реакцией сети, сильно искажающий результаты.

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

Заключение

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

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

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

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

Особую благодарность хочется высказать компании Yota, деятельность которой позволяет создать дешевый нелимитированный канал где угодно в МСК.

Эпицентр Zope3 Учат тут DreamBot Репозиторий Статистика Редакторам
Официальный сайт Zope3 Московская группа изучения реактивного движения The Dream Bot Site