“你可能知道” - 社交网络中的建议

时间:2015-03-27 21:44:08

标签: social-networking

我有三个主要模特。用户,照片和关系。

关系模型由两个字段= from_user,to_user组成。当userA(from_user)跟随UserB(to_user)时,我想显示与userB类似的其他帐户到userA。 userA将更倾向于关注与userB类似的帐户。我应该采用什么方法来获得类似帐户的列表?

我能立即想到的第一个例子是Instagram&在您关注用户后立即显示类似帐户的Twitter我想也许他们展示的建​​议账户是多组交叉的结果。

在UserB的所有“跟随”关注者之间进行设置交叉可能是一种可能的解决方案。这将生成一个集合,显示UserB的关注者遵循的所有常见用户。当这个集合呈现给userA时,userA也可能倾向于关注此集合上的人,因为userB的粉丝也跟随他们。我的逻辑是,用户B的粉丝可能会有共同的兴趣。这种共同兴趣可能是他们首先关注用户B的原因之一。 userB的关注者很可能也会关注类似于userB的其他帐户。

我开始考虑这个问题的原因完全是因为我前几天Quora发现了一个问题。

一位用户提到:

1。你关注的人跟随的人。我对Twitter的绝大部分用途都是让媒体人知道他们正在做什么。大多数建议都是他们遵循的帐户。

2。匹配的电子邮件。你认识的人上传了他们的地址簿或电子邮件活动以进行“挖掘”,你就在列表中。 LinkedIn真的好像喜欢这个,因为大多数建议都是我实际上并不知道的人,但我几年前通过电子邮件与他们进行了短暂的互动。

正如你们有些人所说,这可能是一个开放式的问题,但我决定在堆栈上给它一个破解,看看你们有些人已经采用了其他实现。如果这个问题不适合堆栈溢出,请帮我将它指向某个地方,也许是另一个堆栈交换社区。

谢谢

2 个答案:

答案 0 :(得分:0)

通过互联网搜索后,我意识到Facebook有一个非常好的资源,如何让他们的“你可能知道的人”和#34;列表:

https://www.facebook.com/help/501283333222485/

我认为我有一个很好的起点。谢谢大家的帮助。

答案 1 :(得分:0)

也许你应该使用Strongly Connected Components的图论理论。您的模型可以被认为是有向图,其中顶点对应于用户,边是“跟随”关系。

Strongly connected components

观察上图。如果“用户b”跟在“用户c”之后,推荐“用户d和h”是合理的,这些用户与“用户c”位于同一个强连接组件中。

Tim Roughgarden在Coursera的“算法导论”课程中提出了这种方法(如answer所述)。

你可以使用类似的方法与其他类型的定向或无向关系,如“与...一起研究”,“与...合作”等,以找到最有可能“相似”的用户。