27 июня 2017
6566
19 мин
3.58
Применение искусственного интеллекта для фильтрации массовых email-рассылок
Что такое искусственный интеллект?
Хороший вопрос. Искусственный интеллект можно определить как научную дисциплину, которая занимается моделированием разумного поведения. Это определение имеет один существенный недостаток - понятие интеллекта трудно объяснить. Вряд ли кто-то сможет дать интеллекту довольно конкретное определение для оценки предположительно разумной компьютерной программы и одновременно отражающее жизнеспособность и сложность человеческого разума.
Одно из наиболее разработанных (и теоретически, и практически) направлений искусственного интеллекта - машинное обучение. Это класс методов искусственного интеллекта, характерной чертой которых является не прямое решение задачи, а способность к обучению в процессе применения решений множества сходных задач. Рассмотрим на примере спам-фильтров. Современные спам-фильтры, котрыми пользуются в Google, Yahoo, Ukr.net и другие почтовики - это сложные системы, но основная идея в их разработке проста. Надо сначала научить компьютер классифицировать письма как спам или не спам, а потом применять разработанный фильтр на практике.
Основную идею обучения тоже несложно понять. Сначала письма формализуют по каким-то параметрам (наличие/ отсутствие тех или иных слов в письме, тема письма и т.п.), причем для каждого конкретного письма известно является ли оно спамом или нет. Потом компьютер обучают разбивать письма по этим параметрам на две категории. Чем тщательнее выбираются параметры по которым производится обучение, тем лучше будет результат и точнее будет работать классификатор. Опять же точность классификации напрямую зависит от объема данных на которых производят обучение - чем больше примеров, тем точнее правила классфикации вырабатывает компьютер.
Есть много разнообразных алгоритмов, которые можно применить для обучения - это тоже влияет на результат. Чтобы практически собрать все воедино и заставить это работать нужно владеть специальными навыками и опытом, но основные идеи может понять каждый.
Допустим, мы разработали алгоритм классификации писем и обучили его на релевантном количестве примеров. Как же компьютер определяет является спамом новое письмо, которое не было использовано для обучения? Оказывается, все что он делает в этом случае - определяет вероятность того, что письмо есть спамом или нет. Чем выше вероятность, тем более уверенны мы можем быть в результате. Но чтобы отнести письмо к той или иной категории нужно выбрать определенный вероятностный барьер, выше которого мы будем определять письма как спам. Выбор этого барьера - непростая задача. Она решается для каждого конкретного алгоритма классификации индивидуально учитывая особенности данных, постановки задачи, ожидаемого результата и т.п.
Следует помнить, как хорош алгоритм не был бы, он все равно будет допускать некоторые погрешности в классификации. Определение точности алгоритма - обязательная задача, которая должна быть решена в ходе разработки любой системы искусственного интеллекта.
Какие фильтры мы используем в eSputnik Intelligence?
Теперь, когда мы разобрались с понятиями машинного обучения и классификатора, можно перейти к описанию алгоритмов классификации пользователей, которые мы применяем в системе eSputnik Intelligence для фильтрации массовых email-рассылок.
Для определения отправлять конкретному пользователю письмо или нет, мы используем всю предыдущую историю действий пользователя. При этом мы разработали несколько различных алгоритмов, базируясь на идеях широко известного RFM-анализа. Наши алгоритмы работают на таких наборах метрик:
- Общие количественные показатели включают: общее число полученных пользователем писем в рамках данной рассылки, общее время жизни клиента и т.п.
- Частота открытия писем. Чтобы учесть динамику поведения пользователя в его клиентской истории, выделяем несколько различных частот, которые учитывают как усредненные показатели так и поведенченские паттерны в разные периоды времени. Например, мы используем такие показатели:
- общая частота открытия писем пользователем в рамках данной рассылки
- частота открытия за последние N полученных писем (например 30 и 10)
- частота прочтения писем по будням и по выходным и т.п.
- Последние активные действия клиента. Сюда время до последнего (релевантного) открытия, совершал ли открытия и переходы пользователь за последние несколько дней (например, последнюю неделю) и т.п.
Базируясь на таких параметрах удается построить довольно эффективные алгоритмы классификации активности пользователей и предсказать откроет или нет пользователь данное конкретное письмо перед его рассылкой. Особенности массовых рассылок таковы, что показатели прочтения писем обычно не очень высоки. Всегда намного больше тех пользователей, которые не прочтут письмо, по сравнению с теми, которые таки прочтут, и, тем более, перейдут по ссылке. Поэтому гораздо проще и эффективнее выделять группу пользователей, которые с большой вероятностью не прочтут письмо. Здесь стоит определиться, что мы понимаем под "большой вероятностью".
Эффективный email-маркетинг с eSputnik
От выбора вероятностного барьера зависит как размер группы пользователей, которых алгоритм будет рекомендовать исключить из конкретной рассылки и применить к ним реактивацию, так величина допускаемой при этом ошибки. Под ошибкой мы будем понимать ситуацию, когда рекомендуется не отправлять письмо пользователю из-за малой вероятности его открытия, но тем не менее пользователь его открывает. Вообще, в математической статистике принято использовать 95% и 99% вероятностные барьеры. Мы посмотрим как будут изменятся результаты применения разработанных нами фильтров от выбора барьера в диапазоне от 95% до 99%. Когда мы говорим, что вероятностный барьер равен 98%, то имеем ввиду, что будем фильтровать всех пользователей, для которых вероятность непрочтения конкретного письма в рамках данной рассылки превышает 98%.
Какие результаты мы получаем?
Мы постараемся ответить на три основных вопроса:
- Какую ошибку допускают разработанные нами фильтры?
- Какую часть данных можно дополнительно отфильтровать по сравнению с традиционно используемым правилом "90 дней"?
- Какую часть потенциальных открытий мы все же потеряем, используя наши алгоритмы?
Ответ на первый из поставленных нами вопросов дает следующий график.
Мы видим, что точность классификации зависит от выбора уровня вероятностного барьера, повышаясь при его увеличении. Это логично, так как чем выше вероятность, с которой мы хотим определять пользователей, которые не прочтут очередное письмо, тем меньшее количество таких пользователей будет находить алгоритм, а значит и меньше будет ошибчно проклассифицированных пользователей.
Под ошибкой классификации мы понимаем тот случай, когда алгоритм относит пользователя к маловероятным к прочтению, тогда как на самом деле пользователь откроет письмо (возможно, чтобы отписаться). Например, при барьере в 95% мы будем допускать ошибку классификации в 1,2%. Это означает, что среди той группы клиентов, которым мы не будем рекомендовать отправлять письмо ~ 1,2% пользователей его откроют, то есть в этой группе пользователей можно ожидать коэффициент прочтения писем на уровне 1,2%.
Как мы видим из графика, ошибка классификации для высокого уровня барьера (99% и выше) невелика и составляет меньше половины процента.
Второй вопрос: какую же часть пользователей можно дополнительно отфильтровать используя наши методы? Это зависит от специфики клиентской базы и других факторов, и может колебаться в значительных пределах. Например, при выборе уровня вероятности в 95% можно получить рекомендацию к исключению из рассылки от 30% до 50% тех пользователей, которые совершали какие-то активные действия в течение последних 90 дней. Аналогично при барьере в 99% этот показатель может колебаться от 5% до 10% и выше.
Ответ на третий вопрос напрямую зависит от того, какой результат мы получаем при ответе на второй вопрос. В целом, можно сказать, что мы будем терять в открытиях обратно пропорционально выбору вероятностного барьера. Иными словами, если мы выбираем барьер в 99%, то при этом потеряем в открытиях где-то на 1%, а вот если уменьшим барьер до 95%, то точно потеряем процентов 5, но может быть и больше (7-8).
Таким образом, чем выше мы выбираем вероятностный барьер, тем меньше будет потерь в прочтениях и переходах, при этом меньшую часть пользователей мы отбросим, и наоборот. Какую стратегию следует выбрать - это индивидуальный вопрос, который может быть решен только с учетом всех факторов. Описанная нами технология работы классификаторов, основанных на применении алгоритмов искусственного интеллекта, дает, по крайней мере, качественную картину того, на что вы можете расчитывать применяя подобные технологии для своих целей.
Если вы хотите более подробно ознакомиться с технической стороной наших алгоритмов - читайте статью "Прогнозирование активности пользователей с алгоритмом Machine Learning и языка R" в нашем блоге.