Какой самый известный алгоритм перекрестного сопоставления событий для пользователя? - PullRequest
1 голос
/ 27 сентября 2019

Вопрос

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

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

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

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

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

Пример

events = [
    {uid1:1,uid2:'uid2'},
    {uid1:1},
    {uid3:'uid3'}
]

После применения алгоритма к этим данным, я ожидаю, что он выдаст следующий вывод

users = {
    {1, 'uid2', None}: [{uid1:1,uid2:'uid2'}, {uid1:1}],
    {None, None, 'uid3'}: [{uid3:'uid3'}] 
}

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

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

1 Ответ

0 голосов
/ 27 сентября 2019

Это звучит для меня как Связанные компоненты двудольного графа, образованного отношением события к UID.Это дискретное решение.

Если более одного пользователя могут создавать события с одним и тем же UID, как у другого, то UID не соответствуют пользователям, а представляют собой комбинации пользователей, и для восстановления пользователей потребуетсясделать вывод о некотором типе модели.Подобно тому, как LDA выводит темы из матрицы термина документа.Кроме здесь это пользователи из матрицы event-uid.

...