“谁跟随”算法

时间:2012-05-30 13:14:02

标签: algorithm language-agnostic recommendation-engine graph-algorithm

我想让用户能够查看他们可能感兴趣的个性化用户并可能会关注他们......

我这样想:

- Get all users he is currently following
- Get all followers that they follow
- rank them by total posts they made (DESC), filled up personal information fields
- show 5 of them on each page load

如果用户有关注者,则会显示一条信息消息......

可以使用此算法完成此类功能,还是有更好或更简单的方法来执行此操作?

4 个答案:

答案 0 :(得分:4)

在您的算法中,我想知道为什么您需要根据帖子数量对用户进行排序,这可能与声誉有关?

推荐确实是一个非常大的,开放的话题,也是一个热门的学术研究领域。如果我们正在开展一个实际项目,我认为保持简单和专注是很好的。

我目睹了以下两种非常受欢迎的建议 社交网站。根据我的经验,推荐输出质量很高。在这里,我正在集思广益。希望它有所帮助。

  1. 发现您可能认识的人:推荐“跟随设置”与您的“跟随设置”相交的人。它基于社交网络的“聚类效应”:你朋友的朋友更有可能成为你的朋友。

  2. 根据兴趣推荐人:如果用户可能是名人,公司,机构,新闻媒体等,那么以下建议可能会有用:“关注@Linus的人也会关注@Stallman,@ LinuxDeveloper ,......“。假设您刚刚关注@Linus,推荐@Stallman,@ LinuxDeveloper,首先我们需要找出所有关注@Linus的用户,然后找出他们共同的关注列表,可能按照关注者数量进行排名。这个想法是根据兴趣相关性推荐用户。我们计算并发现高相关性用户,假设用户的下列列表按其兴趣分组。

  3. (我也在想,算法1会发现与你有共同兴趣的人,如果用户可能是名人等等。这可能是某些情况下的首选。)

答案 1 :(得分:2)

你在这里问一个非常开放的问题 - 如何从大集合中挑选少量建议。所以答案是 - 你可以像你想要的那样简单或复杂!最简单的是随机选择一些(并且任何更复杂的算法都能更好地证明它产生比这更好的结果。)你收集所有两跳的用户,然后根据帖子数排名的解决方案,只是有点复杂,然后在另一个极端是世界亚马逊和谷歌使用的复杂算法。公司花了很多精力来构建这类东西 - 你听说过Netflix Prize吗?

答案 2 :(得分:0)

据我了解,您希望关注可以提供有关您的Thema的高质量信息的用户。我们需要一个算法来将此用户作为结果提供给我们,但我如何才能找到这些用户: 拥有许多粉丝的用户是一个不错的选择,但并不总是Twitter中的许多用户只关注其他用户作为尊重或道德。 他/她的twitts与其他用户多次retwitt的用户是一个不错的选择 以及其他用户多次提及他们的用户。 我认为,要找到这些用户,我们应该使用基于链接的分析,例如HITS或Page rank algorithim

答案 3 :(得分:0)

您可能需要考虑不包括关注给定用户的人员。我想可能对你不那么感兴趣,这可能会有问题。但是,您可能非常有兴趣了解更多关于正在关注的人。

您是否正在考虑向用户展示推荐这些人的原因?例如,说你可能对小比利说的话感兴趣,因为他与你的妻子有关系。如果是这样,为了避免激怒用户,可能值得允许他们在某种意义上选择退出。

看起来不像那样,看起来这是向用户推荐某人会感兴趣的一种非常好的方式。我能想到的唯一其他事情也可能有助于找到具有类似兴趣的人,如果您允许用户标记帖子。允许您按类似的兴趣或他们发布的内容查找用户。

另一个你可以研究的问题是找到类似兴趣的用户。例如,如果人a跟随人c,而人b跟随人c,则可能推荐人a到人b。虽然如果你不小心,这似乎可能会导致一些非常冗长的查询。