对于用户 u 和用户 v ,我们可以用共同好友比例计算他们的相似度:
下面的代码实现了这种相似度:
w out(u,v) 公式中 out(u) 是在社交网络图中用户 u 指向的其他好友的集合。我们也可以定义 in(u)是在社交网络图中指向用户 u 的用户的集合。在无向社交网络图中, out(u) 和 in(u) 是相同的集合。但在微博这种有向社交网络中,这两个集合就不同了,因此也可以通过 in(u) 定义另一种相似度:
这两种相似度的定义有着不同的含义。如果用户u 关注了用户 v ,那么 v 就属于 out(u) ,而 u 就属于 in(v) 。因此,w out (u ,v )越大表示用户 u 和 v 关注的用户集合重合度越大,而w in (u ,v )越大表示关注用户 u 和关注用户 v 的用户的集合重合度越大。
前面两种相似度都是对称的,也就是w in(u,v)=w in(v,u),w out(u,v)=w out(v,u)。同时,我们还可以定义第三种有向的相似度: