Обзор семинара «Анализ поведения пользователей: сегментируем активность»

27

28 марта исследователь-разработчик из Яндекса Юрий Устиновский рассказал о сегментировании пользовательской активности в сети. Семинар прошел в московском офисе Яндекса и транслировался онлайн и в Твиттере по хештегу #yascience. Видео лекции будет доступно на следующей неделе на странице трансляции.

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

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

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

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

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

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

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

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

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

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

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

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

Попарная классификация ― это определение, с одной ли целью пользователь посетил пару страниц. Кластеризация ― это разделение полученных данных на связанные части.

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

Веб-страницы можно классифицировать по 4 группам факторов: URL, текстовые данные, особенности сессий, общий контекст.

Кластеризация веб-страниц может происходить в режиме реального времени или после завершения дневной сессии.

Кластеризация улучшает классификацию данных: точность классификатора выше при использовании метода Greedy merging.

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

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

Второй метод ― определение максимального правдоподобия всех страниц.

Третий метод ― разбить активность для целого дня и объединить текущий набор документов в кластеры.

И последним методом объединяем существующие кластеры.

Юрий отметил, что самым эффективным пока показал себя первый алгоритм.

Из факторов можно выделить десять лучших (в очках):

  1. Время между d1 и d2 ― 1
  2. LCS (длина общей сессии) ― 0,58
  3. LCS/length(URL1) ― 0,40
  4. LCS/length(URL2) ― 0,40
  5. # страниц между d1 и d2 ― 0,33
  6. Триграммное совпадение URL ― 0,32
  7. Контекстный LCS/length(URL1) ― 0,32
  8. Один хост ― 0,22
  9. Контекстный LCS/length(URL2) ― 0,20
  10. Контекстный LCS ― 0,20

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

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

Анализ был проведен на основании 220 браузерных логических сессий. Для обучения классификатора использована 151 тысяча пар (78 тысяч ― из одной сессии, 73 тысячи ― из разных сессий). Средняя длина логической сессии определена в 12 страниц, среднее число логических сессий ― 4,4.

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

Вопрос: Вы проводили классификацию по четырем группам факторов. А не пробовали ли вы ввести факторы на основе самого пользователя, например, по специфике запросов? Например, сессия IT-шника может быть длиннее, чем 12 страниц, и логических сессий будет явно больше.

Юрий Устиновский: Нет, мы такого не делали, но я думаю, что пользовательский фактор сильно улучшит качество работы алгоритма.

Вопрос: Как давно проводится исследование, и можно ли уже говорить о каких-то тенденциях и закономерностях?

Юрий Устиновский: Исследование проводилось с конца 2012 года, и больше замеров не производилось, алгоритм не переобучали.

Вопрос: Какую еще можно получить информацию о том, что пользователь делал на странице? Что еще планируете учитывать? И чего вы добиваетесь, какие задачи сможете решать, разделив сессии?

Юрий Устиновский: Про взаимодействие со страницей есть разные данные ― переходы по ссылкам, скроллинг, переходы по вкладкам. Данное исследование ― об обработке сырых данных для дальнейшего использования. Если говорить о применимости, то вот пример. Есть портал. И мы хотим определить, как на нем себя ведет пользователь. Мы хотим понять, нравится ли ему. Пользователь приходит и уходит. И можно определить, почему он уходит: потому, что не нашел ответ по своему запросу и устал искать, или потому, что нашел то, что ему было нужно.