使用图嵌入识别社交用户

数据挖掘 word2vec 图表 词嵌入 社会网络分析
2022-02-16 09:59:24

我有一个社交网络,我想找出图中社交最多的人。在典型的图形实验中,这可以使用不同的网络特征来完成。

然而,我最近遇到了图嵌入,并且想知道我的问题是否可以使用图嵌入来解决。

如果是这样,请让我知道我该怎么做?

1个回答

这个问题可以有很多方法来回答,但这是我的想法:

让我们假设一个非常常见的例子,facebook。

  • 很幼稚的感觉

朋友的数量等于这个人的“社交能力”。在图上下文中,具有更多度的节点将被认为在图中是强连接的。但是我们当然知道这根本不是定义社会性的好方法。

  • 每个人的观点

问自己一个问题,您何时喜欢或评论某人的帖子或照片?答案很可能是当你和那个人有良好的条件或友谊或关系时。因此,通过这种方法,您可以说帖子中点赞/评论数量多的人比点赞/评论少的人更具社交性。

现在,谈到您的问题,这取决于您如何定义“社交”,因为我也可以说,与具有相似兴趣的成员数量最多的社区具有相似兴趣的人最具社交性。因此,假设我们有一个 facebook 图,并且您想要测量顶点的社交性,您需要利用边缘信息,这也只是两个人之间共享的喜欢/评论/消息。您可以将此边缘数据转换为某种数字来表示该边缘的强度。此外,在 facebook 场景中,任何两个节点(人)之间都存在有向边,因为一个人可能会喜欢/评论/给另一个人发消息,但反之亦然。因此,您可以在 Facebook 图表中使用更多种类的数据/信息。

然后正如本文中回答的那样,嵌入将为您提供整个图/子图的表示。因此,在这种情况下,您需要顶点嵌入,以便您可以分别表示每个顶点并相互比较。

一种方法是使用deepwalk并获得基于拓扑的向量嵌入(您需要对其进行一些修改,因为原始方法仅适用于无向图)。然后你可以形成另一个向量,如 [1050, 300, 500, 2, ...] 其中每个元素将是某种数字,表示总喜欢数、总评论数、朋友数、消息频率、频率喜欢等等。然后你可以训练一个神经网络,它基本上输出一个介于 1-5 之间的数字,1 是最不社交的,5 是最社交的。因此,通过这种方式,您可以利用向量嵌入。

这是我能想到的一种方法。如果您有任何其他想法,请分享。