7

我想知道如何根据用户与他人的联系找到用户帐户之间的有趣关系,例如连接最多或最有价值的用户。

下面我有我使用的两个表。一个拥有所有用户,另一个拥有他们关注的用户的密钥。

User
{
    id,
    name
}

Follows {
    user_id -> user.id,
    following_id -> user.id
}

我在寻找什么类型的算法?

假设不重要的人很少或没有追随者,我怎样才能找到图表中心的人?我认为他们会很重要,因为他们有重要的人跟随他们。

更新

正如 David 和 Steve 所指出的,给定的节点有多接近,哪些节点形成子社区,以及哪些用户的联系最紧密,这些都是可以从该模式中提取的有用数据的示例。

由于现在许多站点都使用这种“追随者”设计,因此我开始赏金,希望获得一些可能对各种各样的人有用的可靠的 SQL 或编程语言实现。

值得注意的是,虽然某些算法的结果令人着迷,但其他算法(例如查找相关节点)对我们网站的用户来说是有价值的,因为我们可以向他们推荐东西。

4

1 回答 1

10

如果您只关注链接,请尝试这些流行的中心性度量(假设 G 是图表):

  1. 度数:节点i的度数定义为ki /( N -1),其中ki是节点i的链接数,N是节点总数。更高的学位意味着重要。
  2. 接近度:节点i的接近度定义为 ( N -1)/(Σ_( j ∈G ) dij ),其中dij是节点i和节点j之间的距离。这强调了一个节点与社交网络中所有其他节点的距离。
  3. 介数:介数定义为 (Σ_( j < k ∈G) njk(i) / njk ) / (( N -1)( N -2)),其中njk表示节点jk之间的最短路径数,以及njk(i)是通过节点i运行的这些路径的数量。节点i的介数较高意味着节点i可能是一个很好的中心,任何其他两个节点之间有许多连接需要通过节点i

仅通过链接信息即可轻松计算上述度量,您可以使用这些中心性度​​量中的一种或多种来找出社交网络中的重要节点。无论如何,根据“重要”的定义,您可能需要其他不同的措施。

于 2012-01-15T20:01:37.633 回答