Как Узнать Больше О Своих Пользователях? Применение Data Mining В Рейтинге Mail.ru



Как узнать больше о своих пользователях? Применение Data Mining в рейтинге Mail.Ru

Любой интернет-проект можно сделать лучше.

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

Или нет? И вообще, что это за люди? Молодой или постаревший? Богатый или, скорее, наоборот? Из Москвы? Санкт-Петербург? Сан - Франциско, Калифорния? И почему, в конце концов, те сотни теплых одеял, которые вы купили еще в мае, пылятся на складе, а футболки с октокоутами разлетаются как горячие пирожки? Проект поможет вам получить ответы Рейтинг Мейл.

Ру .

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

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

Допустим, вы ведете блог об автомобилях и размещаете рекламу предложений дорогих автосалонов.

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

Для Оки.

Откуда Рейтинг получает данные? Если нужно узнать пол пользователя, используются регистрационные данные Почты Mail.Ru (пользователей, обманывающих при регистрации немало) и профилей из социальных сетей.

Вам нужно узнать город - ИП в помощь.

Определить, имеет ли данный пользователь высокий доход или нет, гораздо сложнее.

Для начала нам понадобится обучающий набор.

Получить такую выборку вполне реально — можно использовать результаты соцопросов, панельных исследований или данные дружественных проектов.

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

И идентификатор Рейтинга Mail.Ru. Последнее особенно важно, поскольку мы будем моделировать поведение пользователей из выборки, используя данные Рейтинга.

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

Задача: На обучающей выборке, содержащей около миллиона пользователей с известной категорией индивидуального дохода, разработать модель, позволяющую на основе данных Рейтинга спрогнозировать, к какой из пяти категорий относится новый немаркированный пользователь: 1 - с низким доходом, 2 - ниже среднего.

доход, 3 - средний доход, 4 - доход выше среднего, 5 - высокий доход. Входные данные - журнал посещений страниц.

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

Данные о каждом посещении собираются счетчиком и отправляются на сервер, где сохраняются в виде журнала.

Каждому посещению (синоним: попадание) в журнале соответствует одна строка.

Например, на картинке ниже первая строка соответствует посещению сайта hi-tech.mail.ru пользователем A21CE около полудня 9 апреля, а вторая строка соответствует посещению сайта horo.mail.ru. .



Как узнать больше о своих пользователях? Применение Data Mining в рейтинге Mail.Ru

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

Для иллюстрации идеи на картинке показаны радары распределения пользователей нескольких сайтов по категориям доходов.



Как узнать больше о своих пользователях? Применение Data Mining в рейтинге Mail.Ru

(кликабельно) Предыдущее распределение отмечено синей областью — например, доля пользователей с меньшим доходом равна 0,39, а доля пользователей с высоким доходом — 0,08. На левом графике видно, что для посетителей сайта hi-tech.mail.ru это соотношение иное: почти 12% пользователей этого сайта богаты, а доля бедных меньше, чем в общей популяции.

Для сайта rabota.mail.ru ситуация противоположная: среди ищущих работу доля бедных больше, чем «обычно».

Для многих других сайтов ситуация аналогичная — например, сайты авиакомпаний чаще посещают богатые пользователи, а кредиты обычно ищут более бедные пользователи.

Таким образом, знание того, какие сайты посещает пользователь, позволяет сделать обоснованные предположения о категории дохода.

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

Подведем промежуточные итоги.

План действий такой: мы анализируем посещаемые пользователем сайты и другую доступную информацию и делаем обоснованное предположение о категории дохода.

Звучит просто.

Но есть проблема: ручной анализ невозможен из-за большого количества пользователей.

Десятки миллионов.

А размер сжатого журнала достигает 500МБ в минуту.

Без интеллектуального анализа данных не обойтись.

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

Этот этап является самым важным и в то же время самым трудоемким.

Мы извлекаем функции из полуструктурированного журнала посещений страниц.

На рисунке показаны ежедневные журналы трех реальных пользователей.

По горизонтальной оси показаны минуты суток (0–1439), а по вертикальной оси — секунды соответствующей минуты (0–59).

Каждый пункт — это посещение сайта.

Для наглядности сайты показаны разными цветами.

Пользователя на верхнем графике в основном интересуют знакомства (красные метки соответствуют популярному сервису знакомств) и компьютерное оборудование (синие и зеленые метки).

Причем основная активность происходит ночью (кто-нибудь узнает себя?).

Второй пользователь тоже не против познакомиться (зеленые хиты), но в рабочее время.

Третий тратит на это нерабочее время – вечер и предположительно обеденный перерыв.



Как узнать больше о своих пользователях? Применение Data Mining в рейтинге Mail.Ru

(кликабельно) Хотя представленные пользователи имеют схожий интерес к знакомствам, модель поведения различна: различаются периоды активности, количество и частота заходов.

Чтобы сгладить эту разницу, в веб-майнинге принято разбивать поток обращений пользователей на сессии — интервалы непрерывной активности в Интернете.

Существует множество подходов к распределению сеансов; мы остановились на следующих простых правилах: (1) два хита относятся к одному сеансу, если интервал между ними не превышает 20 минут. (2) сеанс длится 20 минут после последнего попадания На графиках сессии наших пользователей выделены серым цветом.

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

Каждая строка в этой матрице соответствует пользователю, каждый столбец — функции.

Хабр не резиновый, поэтому здесь я остановлюсь на самом простом варианте, который мы используем: каждый знак — это слово, извлеченное из URL посещенной страницы.

Например, уже знакомый нам кусок журнала:

Как узнать больше о своих пользователях? Применение Data Mining в рейтинге Mail.Ru

преобразуется в следующую матрицу:

передовые технологии почта хоро пример
A21CE 1 2 2 0
B0BB1 0 1 0 1
Значением характеристики для конкретного пользователя в данном случае является количество пользовательских сессий, в которых данная характеристика встречалась.

В принципе, значение признака можно преобразовать в двоичную форму с использованием порогового значения или применить один из многих вариантов взвешивания, например ИДФ .

Эксперименты показывают, что любая из этих нормировок приводит к улучшению качества модели.

Мы остановились на бинаризации.

Выбор функции Не все знаки одинаково полезны.

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

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

При анализе особенностей мы используем следующие соображения: (1) характеристика должна давать статистически достоверные оценки.

Для проверки они используются, например полиномиальные тесты (2) знак должен быть информативным.

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

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

Судя по всему, быть ИТ-специалистом довольно прибыльно.

К категории бедных больше подходят характеристики, связанные с низкоквалифицированной работой («продавец-консультант», «без опыта»).



Как узнать больше о своих пользователях? Применение Data Mining в рейтинге Mail.Ru

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

Ээлемент этой матрицы х[я, j] это вес дж -й признак я -й пользователь.

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

Для каждой обучающей выборки строится отдельная модель, после чего все модели объединяются.

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

Поэтому используются реализации алгоритмов обучения, способные работать с разреженными матрицами.

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

Во-первых, кросс-энтропия естественным образом возникает при достаточно общих предположениях, в частности, когда распределение р(х | класс) принадлежит к экспоненциальному семейству распределений (подробности можно найти в книге «Распознавание образов и машинное обучение» // К.

Бишоп и машинное обучение: вероятностная перспектива // К.

Мерфи).

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

В-третьих, сериализация модели сводится к простому хранению вектора весов, следовательно, хранимая модель занимает всего O(количество признаков) памяти.

В-четвертых, применение модели требует лишь быстрого расчета функции решения.

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

Окончательный прогноз делается на основе голосования ансамбля.

Для оценки качества классификации в наших задачах основной метрикой является Affinity (чаще называемая Lift).

Эта метрика показывает, насколько наша модель лучше случайной.

Например, рассмотрим категорию богатых пользователей.

Доля таких пользователей в общей популяции составляет 7%.

Если наша модель при приемлемом покрытии (Recall) дает точность (Precision), равную 21%, то Affinity рассчитывается как Affinity = 0,21/0,07 = 3,0. В этом случае отзыв настраивается так, чтобы выходное распределение пользователей по категориям примерно совпадало с входным.

В таблице показаны метрики перекрестной проверки построенной модели.

Видно, что модель дает очень хорошие результаты.

Сорт Оригинальный дистрибутив Результирующее распределение Точность Отзывать Близость
1 69720 (0.125) 18609 (0.033) 0.281 0.075 2.245
2 223358 (0.400) 274519 (0.492) 0.492 0.605 1.229
3 134024 (0.240) 93075 (0.167) 0.316 0.220 1.317
4 91448 (0.164) 118506 (0.212) 0.246 0.319 1.502
5 39353 (0.071) 53194 (0.095) 0.233 0.315 3.301
Рассмотрим подробнее результаты классификации.

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

Не страшно присвоить «богатому» пользователю категорию «выше среднего»; совсем другое дело назвать его «бедным».

На рисунке показана карта Affinity, сравнивающая прогнозируемые и фактические категории пользователей.

Значение каждой ячейки рассчитывается как:

Как узнать больше о своих пользователях? Применение Data Mining в рейтинге Mail.Ru

Другими словами, доля пользователей я категории среди тех, которые мы предсказали как дж , разделенное на долю пользователей я категории населения.

Таким образом, на диагонали у нас есть Precision/TrueFraction = Affinity. Идеальный классификатор дает ненулевые значения элементов такой матрицы только на диагонали.

На рисунке видно, что в нашем случае соседние категории могут смешиваться (3 «квадрата»: богатые – выше среднего, средние – выше среднего, бедные – ниже среднего), но доля грубых ошибок достаточно мала.

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

Отметим также, что лучше всего определяются крайности – богатые и бедные, и хуже всего – категория среднего.

Это удачно, потому что именно крайности обычно интересуют бизнес (кто моя аудитория – эконом или премиум?).



Как узнать больше о своих пользователях? Применение Data Mining в рейтинге Mail.Ru

Последний шаг в этом процессе — применить модель к непомеченным пользователям.

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

Окончательная проверка качества модели осуществляется на основе данных о пользователях, участвующих в панельном исследовании.

Категория прогнозируемого дохода записывается в файл cookie рейтинга.

Счетчики считывают эти файлы cookie и рассчитывают статистику для вашего сервиса.

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

Задача закрыта.

Последние мысли В статье на примере задачи определения категории дохода я описал подход, используемый для решения задач классификации пользователей проекта «Рейтинг Mail.Ru».

Обзорный формат статьи не позволил мне углубиться в технические детали, например, в тонкости реализации тех или иных этапов процесса (в основном на Hadoop).

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

.

Это немного разные истории, оставим их для будущих публикаций.

Теги: #Большие данные #mail.ru #машинное обучение #Интеллектуальный анализ данных #рейтинг mail.ru

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.