从用户的关注者计算用户的重要性或“中介中心性”?

时间:2012-01-14 02:55:58

标签: php data-mining rdbms graph-databases

我想知道如何在用户帐户之间找到有趣的关系,例如最关联或最有价值的用户,基于他们与他人的关系。

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

User
{
    id,
    name
}

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

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

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

更新

正如大卫和史蒂夫指出的那样,给定节点的接近程度,子社区形成的节点以及连接最多的用户都是可以从此模式中提取的有用数据的示例。

由于现在许多网站都使用了这种“跟随者”设计,因此我希望获得一些可能对各种各样的人有用的可靠的SQL或编程语言实现。[/ p>

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

1 个答案:

答案 0 :(得分:10)

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

  1. :节点 i 的度数定义为 ki /( N -1),其中< em> ki 是节点 i 的链接数, N 是节点的总数。更高的学位意味着重要。
  2. 贴近度:节点 i 的贴近度定义为( N -1)/(Σ_( j ∈G) dij ),其中 dij 是节点 i 和节点 j 之间的距离。这强调了节点与社交网络中所有其他节点的距离。
  3. 介于:介于(Σ_( j &lt; k ∈G) njk(i)之间/ njk )/(( N -1)( N -2)),其中 njk 表示数字节点 j k 之间的最短路径, njk(i)是通过节点 i 的这些路径的数量。节点 i 的中间性更高意味着节点 i 可能是一个很好的中心,任何其他两个节点之间有许多连接需要通过节点 i
  4. 上述度量可以通过链接信息轻松计算,您可以使用其中一个或组合更多这些中心度量来找出社交网络中的重要节点。无论如何,根据“重要”的定义,您可能需要采取其他不同的措施。