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

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

Ах, персонализация — святой Грааль клиентского опыта! Все об этом говорят, но мало кто действительно знает, как это сделать правильно. И для этого есть веская причина: персонализация — это не упражнение с галочкой. Это сложная задача из-за уникальности каждого пользователя и необходимости уважать его конфиденциальность, одновременно предоставляя персонализированный опыт.

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

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

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

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

Принципы построения графиков

Формально граф определяется набором узлов V и набором ребер E между этими узлами. Обозначим ребро, идущее из одного узла (A) в другой узел (B). Во многих случаях нас будут интересовать только простые графы, где между каждой парой узлов имеется не более одного ребра, между узлом и самим собой нет ребер, и где все ребра ненаправлены.

Удобным способом представления графов является матрица смежности ². Для этого давайте рассмотрим отношения между пользователями (U) и продуктами (P) в сценарии электронной коммерции; мы можем представить наличие ребер как записи в этой матрице:

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

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

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

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

1. Классификация узлов

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

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

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

2. Реляционный вывод

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

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

3. Кластеризация

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

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

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

График намерений пользователя

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

Но как мы определяем намерение и как мы представляем это на нашем графике?

Если пользователь посещает 3 продукта, что мы можем сказать о его намерениях? Или, если тот же пользователь добавляет один товар в корзину, можем ли мы лучше понять его намерения? Что, если вместо оформления заказа она зайдет на страницу «Контакты»?

Намерение пользователя определяется как цель серии действий пользователя ⁵. Маркетологи традиционно работали со стандартным набором намерений, в основном вдохновленным поисковым алгоритмом Google:

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

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

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

Вот почему для путешествий по электронной коммерции мы можем рассматривать следующие типы намерений: (1) целенаправленные намерения; (2) намерения, ориентированные на близость; (3) намерения, ориентированные на показатели. И важно отметить, что мы ожидаем, что пользователи будут проявлять комбинацию намерений, а не только доминирующее.

Чтобы начать представление нашего графа пользовательских намерений, мы можем представить, что каждый пользователь (U) связан со своими сеансами (S), и во время каждого сеанса пользователь взаимодействует с продуктами (P) — каждый со своими атрибутами (A).

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

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

Какой бы сложной ни была диаграмма намерений пользователей, мы можем «сжать» ее до следующей диаграммы:

В формате REST API вы ожидаете что-то вроде /1/users/{identifier}/fetch в ответ:

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

intents.cart_abandonment.probability: 0.5 TO 0.9 AND intents.next_order_value.value >= 50 AND intents.affinities.brand.value = “adidas” AND intents.affinities.brand.probability > 0.5

Приложения

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

1. Поиск

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

2. Рекомендации

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

3. Путешествия

И последнее, но не менее важное: мы можем выйти за рамки поиска на сайте и рекомендовать, корректировать или организовывать пути пользователей в зависимости от их намерений. Что, если наши пользователи не заинтересованы в покупке каких-либо наших товаров, а просто просматривают?

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

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

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

[1] https://deepai.org/publication/graph-neural-networks-for-recommender-systems-challenges-methods-and-directions

[2] https://cs.mcgill.ca/~wlh/comp766/files/chapter1_draft_mar29.pdf

[3] https://www.morganclaypoolpublishers.com/catalog_Orig/samples/9781681739649_sample.pdf

[4] https://alessandro-negro.medium.com/is-a-knowledge-graph-capable-of-capturing-human-knowledge-8521162f06b2

[5] https://www.semrush.com/blog/how-to-use-search-intent-for-your-business/