Чтобы найти аномалию, спрогнозируйте, что произойдет, и выделите большие отклонения от прогноза. Мы попробовали простую модель: спрогнозировать постоянную скорость ежедневных изменений. То есть разница между третьим и вторым днями такая же, как разница между вторым и первым днем. Пример: возможно, количество пользователей на вашем сайте в первый, второй и третий дни составляет 1000, 1010 и 1020, что означает, что вы добавляете 10 пользователей в день. Если вы добавляете 10 пользователей в день в течение месяца, то в один прекрасный день вы не добавляете ни одного пользователя - это аномалия.

Однако не все ежедневные изменения будут ТОЧНО одинаковыми. Если вы добавите девять пользователей вместо 10, возможно, это просто случайное колебание. Чтобы решить эту проблему, мы используем изменение в прошлом, чтобы предсказать сегодняшнее изменение.

Чтобы получить более подробную информацию, мы взяли ежедневные изменения за последние четыре-шесть недель, предположив, что они были нормально распределенными (т. Е. Колоколообразная кривая), а затем положили сегодняшнее изменение на эту нормальную кривую. Исходя из этого, мы вычислили p-значение, которое, грубо говоря, представляет собой вероятность того, что отклонение от шаблона произошло случайно. Таким образом, изменения с очень низким значением p вряд ли могли произойти случайно. Есть множество тонкостей, которые мы игнорируем при нашем быстром взломе, например множественные сравнения. Мы устанавливаем порог p-значения 0,001, один из тысячи. На практике настоящая аномалия часто выходит за рамки нормы. Мы не хотели, чтобы люди научились игнорировать электронную почту, поэтому мы предпочитали быть уверенными в том, что сообщаем о реальных аномалиях.

Отправка нужным людям

Наша цель состояла в том, чтобы быстро найти и понять аномалии и предпринять все необходимые действия.

Не всем интересен каждый график. Мы думали о том, чтобы разрешить людям подписываться на аномалии на графике, но были обеспокоены, что никто этого не сделает. Жизнь занята, зачем искать работу, когда польза неизвестна? (Помните, это был быстрый взлом.)

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

Вместо этого мы сделали следующее:

  1. Мы помещаем каждый график в группу отчетов (например, в группе «спам» может быть 20 графиков). Мы дали каждой группе отчетов одного владельца, который, по нашему мнению, мог заботиться о данных для группы. Мы запретили команды, потому что легче поговорить с человеком, чем с командой. Вместо того, чтобы спрашивать людей, мы переназначили на основе отзывов, была ли это неправильная группа отчетов или владелец. (Спойлер: это было лишь частично полезно, см. Ниже.)
  2. Мы отправили все аномалии, отсортированные по владельцам, группам и диаграммам, в единый список адресов электронной почты с нашими «мстителями за метрики», людьми по всей компании, заинтересованными в том, как идет бизнес. Чтобы упростить получение более подробной информации, каждая аномалия была связана с графиком, на котором она показана. Один пользователь запросил спарклайны (маленькие строки) в электронном письме, чтобы увидеть их на своем мобильном телефоне. Это было бы здорово, но не в нашем быстром взломе.
  3. Каждый день один из нас просматривал все аномалии (обычно около дюжины) и отвечал на электронное письмо с коротким комментарием: «Сара, вчера это число сильно изменилось. Ты знаешь почему?"

Как мы сделали?

Мы неплохо справились.

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

Примеры аномальных изменений за последние несколько месяцев:

  • Интерес к подписчикам увеличился после того, как мы начали рассылать электронные письма с рекомендуемыми интересами, на которые следует подписаться.
  • Push-уведомления о подписке на доску сломались
  • Регистрация в Google+ изменилась по мере проведения экспериментов.
  • Наше отслеживание сломалось, когда мы выпустили новый опыт репина
  • Наше отслеживание мобильных веб-регистраций изменилось

Эти примеры демонстрируют весь спектр изменений: ожидаемые и неожиданные изменения с точки зрения пользователя и отслеживания.

Как поправиться

Наш однодневный взлом (ну, потребовалось несколько дней) все еще работает 18 месяцев (15 лет в Интернете) спустя, хотя и в разных формах на двух разных наборах данных (Pinalytics версии 1 и 2). Более того, он по-прежнему приносит пользу. Однако есть много способов его улучшить.

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

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

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

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

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

Резюме

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

Дэн Франковски - специалист по анализу данных в группе бизнес-аналитики.

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