Update 8.connection_of_user_profiles_in_different_social_networks.md

master
Vladimir Protsenko 3 years ago
parent 978c46a624
commit eff84da80d

@ -2,30 +2,27 @@
[назад](README.md) [назад](README.md)
Обычно пользователи сети Интернет имеют аккаунты сразу в нескольких популярных социальных сетях. При этом каждый из них, как правило, контактирует с одними и теми же людьми в Обычно пользователи сети Интернет имеют аккаунты сразу в нескольких популярных социальных сетях. При этом каждый из них, как правило, контактирует с одними и теми же людьми в различных социальных сетях. Основываясь на гипотезе, что человек состоит в одних и тех же сообществах во всех социальных сетях, которыми пользуется, можно установить связь между профилями разных социальных сетей, находящихся в одном сообществе и с определённой вероятностью предположить, что они принадлежат одному человеку. Данная задача является нетривиальной и имеет немалую практическую ценность.
различных социальных сетях. Основываясь на гипотезе, что человек состоит в одних и тех же сообществах во всех социальныхсетях, которыми пользуется, можно установить связь между
профилями разных социальных сетей, находящихся в одном сообществе и с определённой вероятностью предположить, что они принадлежат одному человеку. Данная задача является Для решения поставленной задачи можно воспользоваться алгоритмом предварительной обработки данных.
нетривиальной и имеет немалую практическую ценность.
## 1. Предобработка
Для решения поставленной задачи можно воспользоваться
алгоритмом предварительной обработки данных: Генерация графа на основе имеющихся данных. Вершины представляют собой сущность “человек” и хранят идентификаторы профилей, принадлежащих конкретному пользователю. Связь между вершинами устанавливается по следующему принципу: две вершины смежны, если связны профили соответствующих социальных сетей. Определим вес ребра между вершинами как
1. Генерация графа на основе имеющихся данных. Вершины представляют собой сущность “человек” и хранят идентификаторы профилей, принадлежащих конкретному пользователю. Связь между вершинами устанавливается по следующему принципу: две вершины смежны, если связны профили соответствующих социальных сетей. Определим вес ребра между вершинами как
```math ```math
w (A, B) = |\{i: i \in [0, n-1] \cup \exist A_i, B_i \cup rel(A_i, B_i)\}|, w (A, B) = |\{i: i \in [0, n-1] \cup \exist A_i, B_i \cup rel(A_i, B_i)\}|,
``` ```
где $`rel(A, B)`$ - функция, которая истина тогда и только тогда, когда профили $`A`$ и $`B`$ взаимосвязаны (установлено отношение дружбы или проявление активности). где $`rel(A, B)`$ - функция, которая истинна тогда и только тогда, когда профили $`A`$ и $`B`$ взаимосвязаны (установлено отношение дружбы или проявление активности).
2. К полученному графу применяется алгоритм машинного обучения Label Propagation, реализованный внутри программного решения GraphX API, который решает задачу кластеризации и К полученному графу применяется алгоритм машинного обучения Label Propagation, реализованный внутри программного решения GraphX API, который решает задачу кластеризации и находит сообщества в графе.
находит сообщества в графе.
3. Для каждого сообщества генерируется RDD (resilient distributed dataset, отказоустойчивый распределенный набор данных) с набором профилей ВКонтакте, Facebook, Instagram и Twitter, которые связаны с одним или несколькими членами исходного сообщества Для каждого сообщества генерируется RDD (resilient distributed dataset, отказоустойчивый распределенный набор данных) с набором профилей ВКонтакте, Facebook, Instagram и Twitter, которые связаны с одним или несколькими членами исходного сообщества
Таким образом, формируется набор данных (dataset), на основе которого мы можем строить предположения о принадлежности группы аккаунтов разных социальных сетей (без явного указания Таким образом, формируется набор данных (dataset), на основе которого мы можем строить предположения о принадлежности группы аккаунтов разных социальных сетей (без явного указания взаимосвязей) одному человеку.
взаимосвязей) одному человеку.
Далее к каждому набору данных из датасета применяется следующая процедура. Далее к каждому набору данных из датасета применяется следующая процедура.
### 1. Построение полного многодольного графа ### 2. Построение полного многодольного графа
Построение полного многодольного графа, в котором хранится информация о профилях социальных сетей и потенциал, характеризующий вероятность их принадлежности одному человеку. Построение полного многодольного графа, в котором хранится информация о профилях социальных сетей и потенциал, характеризующий вероятность их принадлежности одному человеку.
@ -69,11 +66,12 @@ a \leftrightarrow b = \frac{\sum_{i=1}^{len(a)} d[i, fit(i)]}{\min(len(a), len(b
В качестве отрицательных примеров могут использоваться как случайные пары профилей, так и пары, найденные при помощи полнотекстового поиска по разным параметрам (name, username, email, skype). В качестве отрицательных примеров могут использоваться как случайные пары профилей, так и пары, найденные при помощи полнотекстового поиска по разным параметрам (name, username, email, skype).
### 2. Постобработка ### 3. Постобработка
В сгенерированной графе для каждой пары долей выполняется следующий алгоритм В сгенерированной графе для каждой пары долей выполняется следующий алгоритм.
1. Рёбра сортируются в порядке убывания весов; 1. Рёбра сортируются в порядке убывания весов;
2. Удаляются рёбра, вес которых меньше порогового значения или одна из инцидентных вершин уже связана с какой-либо вершиной противоположной доли. 2. Удаляются рёбра, вес которых меньше порогового значения или одна из инцидентных вершин уже связана с какой-либо вершиной противоположной доли.
В результате этих преобразований получается граф, в котором каждая компонента связности представляет собой группу аккаунтов из разных социальных сетей, которые принадлежат одному человеку. В результате этих преобразований получается граф, в котором каждая компонента связности представляет собой группу аккаунтов из разных социальных сетей, которые принадлежат одному человеку.

Loading…
Cancel
Save