Курсовая работа на тему: "Система профилирования пользователей на основе поведенческих логов"

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

Но если вдруг:

Вам нужна качественная учебная работа (контрольная, реферат, курсовая, дипломная, отчет по практике, перевод, эссе, РГР, ВКР, диссертация, шпоры...) с проверкой на плагиат (с высоким % оригинальности) выполненная в самые короткие сроки, с гарантией и бесплатными доработками до самой сдачи/защиты - ОБРАЩАЙТЕСЬ!

Курсовая работа на тему:

"Система профилирования пользователей на основе поведенческихлогов"

Оглавление

Введение                                                                                                        3

1.      Обзор                                                                                                         6

1.1. Поведенческие логи . . . . . . . . . . . . . . . . . . . . . .     8

1.2. Хранение логов . . . . . . . . . . . . . . . . . . . . . . . .    10

1.3. Обработка логов . . . . . . . . . . . . . . . . . . . . . . . .    10

1.4. Сегментирование пользователей . . . . . . . . . . . . . . .    11

2.      Описание подхода                                                                              14

3.      Реализация                                                                                           16

3.1. Сервер  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    16

3.1.1.         Хранение поведенческих логов  . . . . . . . . . . .    17

3.1.2.         Вычисление атрибутов . . . . . . . . . . . . . . . .    18

3.1.3.         Кластеризация профилей   . . . . . . . . . . . . . .    20

3.2. Клиент  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    21

4.      Тестирование                                                                                        23

Заключение                                                                                                26

Список литературы                                                                                 27

Введение

В современном мире благодаря развитию веб-технологий и распро- страненности различных устройств наблюдается стремительный рост популярности веб-сервисов. Люди имеют доступ к многочисленным ис- точникам информации и постоянно находятся в информационном пото- ке. Из-за этого веб-приложениявынуждены всеми силами бороться за удержание внимания пользователя. В частности, стоит отметить медиа веб-сервисы — те, задачей которых являетсяпредоставление доступа к информации в различном виде: текстовом, визуальном и звуковом. При этом количество информации в сети интернет стремительнорастет, и ручной отбор медиаматериалов не представляется возможным. Поэто- му главной задачей медиа веб-сервисов является подбор требуемого ма- териала для каждого пользователя. От качества решения этой задачи напрямую зависит успех сервиса. Примером, иллюстрирующим важ- ность приведеннойвыше задачи, можно привести соревнование, органи- зованное компанией Netflix в 2007 году [23]. Призовой фонд составил $1 млн, а целью являлось улучшениеточности алгоритма рекомендатель- ной системы всего на 10%. Таких результатов удалось достичь лишь на третий год проведения соревнования. Это говорит отом, что крупные компании готовы тратить большое количество ресурсов на улучшение алгоритмов подбора материалов.

Однако для того, чтобы точно подбирать материалы для пользова- телей, необходимо иметь представление о них. Для достижения этой цели важнорезделить пользователей на некоторые группы со схожими атрибутами. Классические методы  сегментирования,  применяющиеся в индустрии, наподобииэмпатических интервью [14] и маркетинговых исследований [25], практически не применимы в сфере подбора медиа- материалов из-за высокой ресурсоемкости,небольшой выборки поль- зователей и плохой масштабируемости. Кроме того, гораздо лучше че- ловека характеризует его поведение и особенновзаимодействие непо- средственно с самими медиафайлами. Информацию о шаблонах пове- дения можно получить, анализируя логи взаимодействияпользователя

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

Для того, чтобы оценить значимость интерпретируемых профилей, стоит упомянуть контекст их использования. В рамках этой работы они будут строиться для пользователей веб-сервиса graphica.ai, кото- рый предлагает людям творческих профессий возможность найти ви- зуально эстетичные изображения длявдохновения. Из-за того, что по- нятия “вдохновение” и “эстетика” очень субъективны, этому сервису крайне необходимо иметь информацию о типовых профиляхпользова- телей для создания качественной рекомендательной системы и продви- жения. Описанные выше ограничения в лице трудно формализуемых понятий иявляются основной причиной интерпретируемости профи- лей: на данный момент только человек способен осознать, а следова- тельно, и сделать выводыотносительно искусства, которое распростра- няет graphica.ai. Это накладывает дополнительные ограничения на ко- личество построенных профилей: человекфизически не способен про- смотреть профиль каждого пользователя. Поэтому необходимо сегмен- тировать пользователей с помощью алгоритмовкластеризации и стро- ить интерпретируемые типовые профили для каждого пользователь- ского сегмента.

 

Постановка задачи

Целью данной работы является реализация системы построения ти- повых профилей пользователей веб-сервиса на основе поведенческих

логов и её интеграция существующую систему graphica.ai.

В ходе работы для достижения описанной цели были поставлены следующие задачи.

  Провести анализ существующих решений и алгоритмов

  Разработать систему построения типовых пользовательских про- филей и клиент для тестирования системы

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

  Провести интеграцию в архитектуру существующей системы graphica.ai

1.       Обзор

Наиболее распространенным решением для описания сегментов поль- зователей является внедрение систем веб аналитики в клиент веб-сервиса, как правило представляющим собой вебсайт. Яркими представителя- ми таких систем являются Яндекс.Метрика [33], Google Analytics [7], Mixpanel [16] и другие. Их преимущество заключается в простоте внед- рения: достаточноразместить небольшой HTML-код на страницах сай- та [32]. Это позволит системе веб аналитики собирать данные о перехо- дах пользователей по этим страницам. Интерфейс таких систем предо- ставляет доступ к агрегированной информации о сегментах пользова- телей — типовым профилям. В числе характеристик, которые можно получить таким образом, находятся географические(Рис. 1) и демо- графические категории (Рис. 2), а также сферы интересов пользовате- лей (Рис. 3), полученные исходя из вебсайтов, которые они посещали.

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

 

Рис. 1: Сегментирование пользователей по их местоположению [7]

 

 

Рис. 2: Сегментирование пользователей по их возрасту [7]

 

 

 

 

 

Рис. 3: Сегментирование пользователей по их интересам [7]

Стоит отметить и более низкоуровневые решения в области веб ана- литики, такие как Google Tag Manager [8], Facebook Pixel [5] и Segment [21]. Они позволяют собирать данные о любых действиях пользователя. Это осуществляется благодаря возможности пометить элементы HTML стра- ницы специальными метками, взаимодействие с которыми собирается автоматически. Однако длярегистрации этого взаимодействия необхо- димо пометить каждый интересующий элемент. Этот процесс может быть весьма трудоемким для крупных веб-сервисов. Кроме того, низ- коуровневыерешения представляют собой только инструмент для сбо- ра поведенческих логов — записей, характеризующих события, которые произошли в процессе взаимодействия пользователя с клиентомвебсер- виса. Таким образом, они не выполняют главную задачу, поставленную

в рамках данной работы: построение типовых профилей.

 

1.1.      Поведенческие логи

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

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

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

Классическим подходом при сборе поведенческих логов является clickstream [19] — поток всех посещенных пользователем URL страниц и формирование упорядоченной по временипоследовательности пере- ходов для каждого пользователя. Главным преимуществом такого под- хода является простота сбора логов и их дальнейшей кластеризации. Это наглядно продемонстрировано при построении рекомендательных систем [15] и аналитики в реальном времени [10]. Помимо этого суще- ствует и более продвинутый подход [1]. В нем кроме переходов поURL страницам собирается также и наличие любой активности на них, что позволяет получить информацию о продолжительности времени фоку- сировки внимания пользователя намедиаматериалах.

Что касается непосредственно самого формата логов, стоит подроб- нее рассмотреть системы веб аналитики. Яндекс.Метрика [33] позво- ляет обращаться к “счетчику” — регистраторусобытий, привязанному к HTML странице или элементу на ней. С помощью этого обращения можно получить доступ к списку всех событий, которые зафиксиро- вал счетчик. В данном контекстесписок событий представляет собой набор поведенческих логов, каждый из которых содержит множество значений [34]. Несмотря на то, что такой список атрибутов избыточен в рамках поставленной задачи, можно выделить несколько представля- ющих интерес атрибутов.

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

 

1.3.      Обработка логов

  Время возникновения события

  Идентификатор счетчика

  Адрес и заголовок страницы, на которой было зафиксировано со- бытие

1.2.      Хранение логов

Можно выделить два подхода организации хранилища логов: OLTP (Online Transaction Processing) [28] и OLAP (Online Analytical Processing) [27].

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

Задача обработки поведенческих логов заключается в вычислении значений атрибутов, соответствующим пользователям. Атрибуты мож- но разделить на два типа: характеризующие свойстваобъектов, с кото- рыми взаимодействовал пользователь (семантику поведения) и описы- вающие непосредственно само поведение пользователя. Вновь обратим- ся к системам веб аналитики,как самому распространенному аналогу разрабатываемой системы. Google Analytics [7] обладает широким спис- ком характеристик поведения и личности пользователя [9], однако, как ужеотмечалось ранее, не способна характеризовать семантику поведе- ния. Для сервиса graphica.ai это является существенным недостатком, так как свойства изображений, которые просматриваютпользователи, напрямую отражают интересы пользователя. А предпочтения человека играют важную роль в задачах из области маркетинга (продвижение,

налаживание контакта с аудиторией) и рекомендательных систем.

Возникает задача сопоставления изображений и их метаинформа- ции с поведенческими логами для вычисления семантических атрибу- тов. Тут стоит отметить методы сниженияразмерности и, в частно- сти, выделение признаков [24]. Например, использование ансамбля пре- добученных сверточной и сиамской нейронных сетей позволило опи- сывать изображениявектором, таким образом, предоставив возмож- ность использования изображений для уточнения семантики взаимо- действия [30].

Описывать и упрощать можно не только данные о семантике, но и сами поведенческие логи. Это достигается, например, за счет построе- ния последовательностей действий, совершаемыхпользователем за од- ну сессию, а также их сокращением до типовых шаблонов поведения за счет сравнения этих последовательностей [22]. Таким образом предла- гается снизить объем занимаемого пространства на диске при хранении логов.

 

1.4.      Сегментирование пользователей

Конечным результатом работы системы является множество типо- вых профилей. Типовой профиль — набор атрибутов и их значений, соответствующий сегменту пользователей со схожим поведением. Он позволяет описать группу людей набором характеристик. Например, Google Analytics [7] позволяет группировать пользователей по их гео- графическим, демографическим признакам, типу устройства, и множе- ству других характеристик. Однако в рамках данной работы наиболь- ший интерес представляет сегментация пользователей, основываясь на ихповедении.

Здесь можно выделить два подхода. Первый заключается в выявле- нии классов пользователей, например при помощи маркетинговых ис- следований [25] и использовании алгоритмов классификации для пред- сказания класса каждого конкретного пользователя. Похожий подход продемонстрирован в работе по созданию системы рекомендации блюд [18].

Авторы, собрав личные данные пользователей при помощи опроса, вы- делили группы респондентов, основываясь на их культуре, религии, состоянии здоровья и личных предпочтениях.Полученные классы ис- пользовались для определения особых текстовых запросов, характер- ных каждой группе. Это позволило определять класс каждого нового пользователя, исходя из егопоисковых запросов, и использовать про- филь класса для рекомендации определенных блюд (Рис. 4). Главным недостатком такого подхода является трудоемкость процесс выявле- нияклассовпользователей.Помимотого,сложнопровестиэксперимент для определения предпочтений людей в искусстве (предметная область graphica.ai).

Рис. 4: Структура рекомендательной системы с использованием профи- ля пользователя [18]

Гораздо больший интерес в рамках поставленной задачи представ- ляет второйподход, характерный отсутствием заранее известных клас- сов пользователей. Для сегментирования пользователей применяется класс алгоритмов машинного обучения без учителя. Одним из таких алгоритмов является SOM (Self-organizingmap) [12]. Его преимущество

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

Среди алгоритмов кластеризации стоит также выделить два типа: с фиксированным количеством кластеров и без него. Обзор первого типа произведен в работе [3] в контексте созданиярекомендатель- ных систем. Классический алгоритм k-Means [13] можно использовать для предварительной кластеризации пользователей перед применением SOM. В работе [6] применяетсяалгоритм k-Means для создания микро- сегментов пользователей на основе их характеристик и упорядочивания полученных кластеров. Использование приведенного выше алгоритма призваноснизитьколичествопризнаковвходныхданныхдляSOM,что, в свою очередь, повышает качество и точность сегментирования.

Качество сегментирования сильно колеблется в зависимости от вы- бранного числа кластеров. При этом аудитория сервиса graphica.ai по- стоянно растет, что может приводить к появлению новых сегментов пользователей. Поэтому алгоритмы, способные автоматически опреде- лять число кластеров, вызывают повышенный интерес. Одним из та- ких алгоритмов является Meanshift[26]. Он показывал одни из наибо- лее стабильных результатов в сравнении [2] на разнообразных наборах данных, в том числе и на Statlog — наборе данных с характеристика- ми клиентов банкаи их кредитными рисками [11]. Этот набор данных достаточносильноприближенкданнымзадачисегментированияполь- зователей.

2.      

Описание подхода

Разрабатываемая система собирает, хранит и анализирует поведен- ческие логи дляпостроения типовых профилей, а также предоставляет интерфейс для их получения. Рассмотрим процесс работы такой систе- мы (Рис. 5).

Рис. 5: Процесс работы системы профилирования пользователей

 

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

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

3.       Реализация

Для реализации предлагаемого подхода была разработана система, включающая серверную и клиентскую части (Рис. 6). Подробное опи- сание реализации представлено в секцияхниже.

1.     Предоставление интерфейса для сохраненияповеденческих логов

2.     Предоставление интерфейса доступа к построенным профилям

Поддержка этих функций реализована на языке Python при помощи библиотеки Flask1 и интерфейса REST API. Помимо этого, на сервере содержится служба APScheduler2, которая запускает пересчетпрофи-

 

 

 

3.1.      Сервер

1https://flask.palletsprojects.com/en/1.1.x/ 2https://apscheduler.readthedocs.io/en/stable/

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

Серверная часть приложения (“Profiling System” на Рис. 6) реализу- етзначительную долю процесса работы системы, однако для внешнего использования предлагает всего две функции.

Рис. 6: Диаграмма компонентов системы профилирования пользовате- лей

Что касается построения профилей, по аналогии с процессом (Рис.

5)  , можно выделить несколько модулей:

1.     Хранение поведенческих логов (“Clickhouse Database” на Рис. 6)

2.     Вычисление атрибутов двух типов, приведенных ниже, и их объ- единение для построения профиля каждого пользователя(“Atributes Computer Module” на Рис. 6):

(a)    Атрибуты, характеризующие поведение пользователей

(b)    Атрибуты, характеризующие медиаматериалы, с которыми взаимодействовали пользователи

3.     Кластеризация профилей и вычисление усредненных атрибутов для каждой группы (“Segmentation Module” на Рис. 6)

 

3.1.1.     Хранение поведенческих логов

 

3.1.2.     Вычисление атрибутов

Одной из особенностью хранения поведенческих логов в рамках по- ставленной задачи (“Clickhouse Database” на Рис. 6) является совме- щение принципов систем OLTP (Online TransactionProcessing) и OLAP (Online Analytical Processing). Набор входящих на сервер поведенче- ских логов представляет собой непрерывный поток записей, который необходимо сохранять. Обработкатакого поведения характерна OLTP системам. Однако огромное количество таких записей может негативно сказаться на скорости выполнения аналитических запросов к большо- му подмножеству записей, которыми являются запросы, формирующие атрибуты пользователей.

Этим критериям соответствует СУБД Clickhouse в силу того, что она фокусируется на принципах OLAP систем. Ее колоночная структу- ра позволяет выполнять аналитические запросы быстрееаналогов[17

хранить данные с высокой степенью сжатия [31], что позволяет снизить размер расходов веб-сервиса на содержание системы профилирования. Кроме этого, команда graphica.ai обладает опытомиспользования дан- ной СУБД, что положительно скажется на поддержке системы про- филирования. Что касается сохранения потока логов, Clickhouse име- ет возможность создавать буферныетаблицы [29], которые хранятся в оперативной памяти. Благодаря этому имеется возможность вставлять входящие логи в буферную таблицу и при наступлении некоторого со- бытия (например,заполнения оперативной памяти или с временным интервалом) производить вставку большого количества записей в ос- новную таблицу. У такого подхода есть существенный недостаток: в случае отключения сервера базы данных теряются все записи из бу- ферной таблицы. Однако в силу высокой стабильности облачных серве- ров [4], вероятность отключения базы данныхневелика. При этом из-за того, что профили формируются по логам за большой промежуток вре- мени, возможная потеря нескольких секунд логирования практически не влияет на результат.

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

Большая часть логики вычисления атрибутов содержится в множе- стве представлений и SQL запросов (“Database Interface” на Рис. 6): это позволяет по максимуму использовать производительность коло- ночной СУБД. Построение профилей для каждого пользователя можно разделить на два этапа. Сначала логи обобщаются до предопределен- ных шаблоновповедения, содержащих длительность взаимодействия. Примеры такого обощения приведены ниже.

  Несколько событий прокрутки страницы объединяются в одно

  Клик по изображению и любое другое последующее событие на

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

  Наведение мыши на объект и уведение мыши с объекта обобщают- ся до события наведения на протяжении определенного времени

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

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

  Интенсивность прокрутки

  Доля обратной прокрутки

  Количество времени, проведенное в сервисе

  Среднее время просмотра изображения

  Количество просмотренных изображений

  Среднее число сессий в неделю

  Средняя продолжительность сессии

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

  Название изображения

  Дата загрузки

  Автор

  Список категорий, к которым относится изображение

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

  Наиболее любимые категории

  Любимый автор

  Широта интереса по категориям

  Широта интереса по авторам

Набор атрибутов и их значений для каждого пользователя объеди- няется в один набор данных (таблицу), формируя, таким образом, мно- жество профилей для каждого пользователя. Ниже приведен пример профилей для пользователей “А”, “Б”, “В”. Количество атрибутов со- кращено с 16 до 3 для удобствадемонстрации.

 

3.1.3.     Кластеризация профилей

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

В силу отсутствия заранее известных классов пользователей невоз- можно оценить модель с помощью внешних метрик, поскольку они ос- нованы на сравнении результата кластеризации саприори известным разделением на классы. При этом небольшое количество пользовате- лей сервиса graphica.ai приводит к неточным оценкам с использовани- ем внутренних мер: алгоритм,показывающий хорошие результаты на небольшом объеме данных может оказаться неэффективным с ростом пользовательской базы. Поэтому было принято решение полагаться на мнениеэкспертов — маркетологов и дизайнеров — для оценки качества модели. С ростом числа пользователей могут появляться новые сег- менты пользователей. Это накладывает ограничения наалгоритм кла- стеризации: он должен уметь адаптироваться к изменяющемуся числу кластеров. С этой задачей прекрасно справляется MeanShift [26]. Бла- годаря автоматическому подбору количества кластеров, он позволит показывать стабильные результаты с увеличением числа пользовате- лей [2]. Помимо этого, он способен выделять объекты, значительно от- личающиеся отосновной массы. В рамках системы профилирования это позволит выявлять пользователей с аномальным поведением. Была использована реализация этого алгоритма из инструментарияScikit- learn. С ее помощью множество профили пользователей разбивается на кластеры, после чего из центров кластеров формируются типовые про- фили пользователей. При этом сохраняется полный наборатрибутов, характеризующий каждого пользователя, а их значения вычисляются с помощью усреднения характеристик пользователей, принадлежащих одному кластеру.

 

3.2.      Клиент

Для сбора поведенческих логов и тестирования системы профилиро- вания был разработан клиент при помощи библиотеки React3 и сервер, моделирующий сервер graphica.ai при помощи Django4. Этотклиент

3https://reactjs.org/ 4https://www.djangoproject.com/

призван воспроизвести взаимодействие пользователя с медиаматериа- лами в клиенте веб-сервиса graphica.ai, от которого и исходил запрос на создание инструмента для создания профилей.Основная задача те- стового клиента — обеспечение сбора поведенческих логов. Эта потреб- ность реализована при помощи обработки JavaScript событий и интер- фейса REST API.

Регистрируются следующие виды событий.

  Наведение мыши на изображение

  Уведение мыши с изображения

  Прокрутка страницы

  Клик по изображения

При этом собирается информация, которая формирует пользова- тельский лог.

  Идентификатор пользователя

  Тип объекта, с которым произошло взаимодействие

  Идентификатор объекта

  Вид события

  Значение, генерируемое событием (например, степень прокрутки страницы)

  Время возникновения события

Наконец, пользовательские логи отправляются клиентом на сервер при помощи библиотеки Axios5 и интерфейса REST API для дальней- шей обработки.

 

 

 

 

5https://github.com/axios/axios

4.           Тестирование

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

Было приглашено 17 людей, которым предложили воспользовать- ся клиентом сервиса для просмотра изображений. В качестве клиента выступал описанный в предыдущем разделетестовый клиент, который производил сбор поведенческих логов и их отправку на сервер системы профилирования. В результате работы системы 17 пользователей были разделены на 4 сегмента идля них были построены типовые профили (Рис. 7). Для каждого сегмента были дополнительно подсчитаны уров- ни внимательности, вовлеченности и опыта исходя из их атрибутов. Они приведены в таблице под Рис. 7.

 

Рис. 7: Часть типовых профилей построенных в результате эксперимен- та

 

 

Система выделила две группы (1 и 2) с крайне низкой продолжи- тельностью сессии (Рис. 8). Они разделены между собой прежде всего по количеству времени, проведенному за просмотромкаталога карти- нок: пользователь из группы 2 потратил в сервисе довольно много вре- мени, в отличие от группы 1 — те ушли очень быстро (Рис. 9). Отсюда вытекает более высокий уровеньвнимательности группы 2.

па 3, с более узкой областью интересов и группа 0 с меньшей продолжи- тельностью сессии (Рис. 10). Таким образом получилось сделать вывод, чтопользователи из группы 3 сильнее вовлечены (дольше и больше просматривают изображения) и опытны (сфокусированы на меньшем количестве категорий).

Рис. 8: Сегменты пользователей Рис. 9: Сегменты пользователей Средиоставшихся пользователей были выделены две группы: груп-

 

Рис. 10: Сегменты пользователей

 

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

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

Заключение

В результате работы были выполнены следующие задачи.

  Проведен анализ существующих решений и алгоритмов

  Разработана система построения типовых пользователь- ских профилей и клиент для тестирования системы

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

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

  Проведена интеграция в архитектуру существующей си- стемы graphica.ai

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

Список литературы

[1]     Beyond clicks: Dwell time for personalization / Xing Yi, Liangjie Hong, Erheng Zhong et al. // RecSys 2014 - Proceedings ofthe 8th ACM Conference on Recommender Systems. 2014. 10. P. 113–120.

[2]     Chakraborty Tanmoy. EC3: Combining Clustering and Classification for Ensemble Learning // CoRR. 2017. Vol. abs/1708.08591. 1708.08591.

[3]     Comparison   of   Collaborative     Filtering    Algorithms: Limitations of  Current Techniques and  Proposals  for Scalable,  High-Performance   Recommender   Systems   / Fidel   Cacheda,   Víctor   Carneiro,    Diego   Fernández, Vreixo  Formoso  //   ACM   Trans.  Web–   2011. Feb.  –    Vol.   5,   no.    1.  Access mode: https:

[4]     Digitalocean. 2018 // DigitalOcean. 2018. Ре- жим доступа: https://www.digitalocean.com/ docs/platform/droplet-policies/ (дата обращения: 15.05.2020).

[5]     Facebook. Facebook Pixel // Facebook for Business. Режим доступа: https://www.facebook.com/business/learn/facebook-ads-pixel (дата обращения: 09.12.2019).

[6]     Goncarovs Pavels. Using Data Analytics for Customers Segmentation: Experimental Study at a Financial Institution. 2018. 10. P. 1–5.

[7]     Google. Google Analytics // Google Analytics. Ре- жим доступа: https://analytics.google.com/ analytics/web/provision/#/provision (дата обра- щения: 09.12.2019).

[8]     Google. Tag Manager overview // Google Tag Manager. Режим доступа: https://support.google.com/ tagmanager/answer/6102821?hl=en (дата обращения: 09.12.2019).

[9]     Google. Параметры и показатели // Справка — Google Analytics. Режим доступа: https://support.google.com/analytics/answer/1033861 (дата обраще- ния: 18.05.2020).

[10]     Hanamanthrao Ramanna, Thejaswini S. Real-time clickstream data analytics and visualization // 2017 2nd IEEE International Conference on Recent Trends in Electronics, Information Communication Technology (RTEICT). 2017. P. 2139–2144.

[11]     Hofmann Professor Dr. Hans. Statlog (German Credit Data) Data Set // UCI. Machine Learning Repository. Режим   доступа:  https://archive.ics.uci.edu/ml/ datasets/statlog+(german+credit+data) (дата обра- щения:09.12.2019).

[12]     Kohonen  Teuvo.   Self-Organization    and   Associative Memory / T. Kohonen. 1984. 01.

[13]     Li Youguo, Wu Haiyan. A Clustering Method Based on K-Means Algorithm // Physics Procedia. 2012. 12. Vol. 25. P.1104–1109.

[14]    Messier    Stacey.   Design   Thinking:   What    is    an Empathy  Interview?  //   Medium. –  2017. –  Jan.

Режим   доступа:  https://medium.com/@StaceyDyer/

design-thinking-what-is-an-empathy-interview-25f71bd496d7

(дата обращения: 09.12.2019).

[15]    Ming He Xiaofei Wu Jiuling Zhang Ruihai Dong. UP-TreeRec: Building Dynamic User Profiles Tree for News Recommendation // China Communications.

2019. –  Vol.  16,  no.  4. –   P.    219. –  Access  mode: http://www.cic-chinacommunications.cn/EN/ abstract/article_890.shtml.

[16]     Mixpanel. Product and User Behavioral Analytics for Mobile, Web, More // Mixpanel. Режим доступа: https://mixpanel.com/ (дата обращения: 09.12.2019).

[17]     Monakhov Andrey. ClickHouse vs Amazon RedShift Benchmark  //  Altinity. –  2017. –  Режим  досту-  па: https://www.altinity.com/blog/2017/6/20/ clickhouse-vs-redshift (дата обращения: 15.05.2020).

[18]     Nazer  Ahmed, Helmy Tarek, Al-Mulhem Muhammed. User’s Profile Ontology-based Semantic Framework for Personalized  Food  and  Nutrition Recommendation  // Procedia Computer Science. 2014. 12. Vol. 32. P. 101–108.

[19]     Patterns  and  Sequences:  Interactive    Exploration   of Clickstreamsto  Understand  Common Visitor  Paths  / ZhichengLiu, Yang Wang, Mira Dontcheva et al. // IEEE Transactions on Visualization and Computer Graphics. 2016. 01. Vol. 23. P. 1–1.

[20]     Scalable parallel SOM learning for web user profiles / Lukas  Vojacek,  Jiří   Dvorský,  Kateřina   Slaninová, Jan Martinovic// International Conference on Intelligent Systems Design and Applications, ISDA. 2014. 10. P. 283–288.

[21]     Segment. Customer Data Infrastructure (CDI) // Segment. Режим доступа: https://segment.com/ (дата обращения: 09.12.2019).

[22]     Slaninová Kateřina. User behavioural patterns and reduced user profiles extracted from log files // International Conference on Intelligent Systems Design and Applications, ISDA. 2014. 10. P. 289–294.

[23]     Wikipedia. Netflix Prize // Википедия, свободная эн- циклопедия. 2007. Режим доступа: https://en. wikipedia.org/wiki/Netflix_Prize (дата обращения: 08.12.2019).

[24]     Wikipedia. Feature extraction // Википедия, свободная энциклопедия. 2019. Режим доступа: https://en.wikipedia.org/wiki/Feature_extraction (дата обра- щения: 08.12.2019).

[25]     Wikipedia. Marketing research // Википедия, свобод- ная энциклопедия. 2019. Режим доступа: https://en.wikipedia.org/wiki/Marketing_research (дата об- ращения: 09.12.2019).

[26]     Wikipedia.  Mean  shift  //  Википедия,  свобод-  ная энциклопедия. 2020. Режим доступа: https://en.wikipedia.org/wiki/Mean_shift (дата обращения: 19.05.2020).

[27]     Wikipedia. Online analytical processing // Википедия, свободная  энциклопедия. 2020. –  Режим  доступа: https://en.wikipedia.org/wiki/Online_analytical_ processing (дата обращения: 20.05.2020).

[28]     Wikipedia. Online transaction processing // Вики- педия, свободная энциклопедия. 2020. Режим доступа: https://en.wikipedia.org/wiki/Online_ transaction_processing (дата обращения: 20.05.2020).

[29]     Yandex. Buffer // Clickhouse. 2020. Режим до- ступа: https://clickhouse.tech/docs/en/engines/ table-engines/special/buffer/ (дата обращения: 15.05.2020).

[30]     Yang Longqi, Hsieh Andy, Estrin Deborah. Beyond Classification: Latent User Interests Profiling from Visual Contents Analysis. 2015. 12.

[31]     team Altinity. Compression in ClickHouse // Altinity. 2017. Режим доступа: https://www.altinity.com/blog/2017/11/21/compression-in-clickhouse (дата обращения: 15.05.2020).

[32]     Яндекс. Как создать и установить счетчик // Мет- рика. Помощь. –  Режим  доступа: https://yandex.ru/support/metrica/general/creating-counter.html (дата обращения: 18.05.2020).

[33]     Яндекс. О сервисе // Метрика. Помощь. Режим до- ступа: https://yandex.ru/support/metrica/ (дата об- ращения: 09.12.2019).

[34]     Яндекс. Описание типа log request // Метрика. Помощь. Режим доступа: https://yandex.ru/dev/metrika/doc/api2/logs/fields/hits-docpage/ (дата обращения: 18.05.2020).