【问题标题】:Similarities based friend recommendation algorithm基于相似度的好友推荐算法
【发布时间】:2020-06-21 07:15:40
【问题描述】:

我正在尝试构建一个朋友推荐算法,每周向用户推荐一个新朋友。假设我有一个数据库

user A
user B
user C
...

他们有一份爱好

user A has interests [hobby1, hobby2, hobby3, etc...]
user B has interests [hobby3, hobby6, hobby8, etc...]
user C has interests [hobby1, hobby3, hobby4, etc...]
...

我如何构建一个算法,以便为每个人挑选一个好的推荐,并且每周都应该有所不同?

第 1 周

user A -> user C [2 hobbies in common]
user B -> user A [1 hobby in common]
user C -> user B [1 hobby in common]
...

第 2 周

user A -> user B [1 hobby in common]
user B -> user C [1 hobby in common]
user C -> user A [2 hobbies in common]
...

由于要求,听起来每周完全随机化所有用户推荐可能很容易。有什么比这个阈值更好的吗?

【问题讨论】:

    标签: algorithm match matching recommendation-engine


    【解决方案1】:

    首先,您需要一个接受 2 个用户(A 和 B)并输出“相似度分数”的函数。最简单的方法是计算共同爱好的数量。 然后找到与A具有最佳“相似度得分”的用户并推荐给A。
    保留一张表格,其中包含已对某个人做出的所有推荐(我们称之为t_recommendations),这样,下次您需要向 A 推荐一个新人时,选择具有最高“相似度得分”的人不在 t_recommendations

    t_recommendations 将包含以下列:

    • recommended_to : 收到推荐的用户 ID
    • recommended:已推荐给recommended_to的用户ID
    • recommendation_date:这个是可选的,但如果你想在一段时间后再次开始推荐人,它可能会很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-08
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-07
      • 2011-11-23
      相关资源
      最近更新 更多