首页 > 解决方案 > 对基于位置的社交网络的帖子供稿进行排序的评分公式的建议

问题描述

我正在构建一个基于位置的社交网络应用程序。这个想法是允许用户发布并与附近的人互动。该应用程序的主要供稿将根据它们的接近度(d = 帖子发布的距离)和新近度(a = 发布的时间)来显示帖子。

我正在尝试提出一个公式,该公式将为每个帖子评分以进行排序并实现以下目标:

我们正试图在看到足够本地化的东西既相关又新鲜之间取得平衡。虽然算法解决方案是可能的,但此时我们正在寻找一个公式来对帖子进行评分和排序。寻找合适的评分公式的建议。

标签: algorithmsortingformula

解决方案


一个好的公式几乎肯定会有一些需要调整的任意参数。(要了解原因,请注意无论距离以米为单位(其中 500 是一个非常小的值)或公里(其中 500 是一个非常大的值),您都希望得到相同的结果。)

对于中到大的值,我的直觉是你需要一个对数刻度;1 公里和 2 公里之间的差异似乎与 100 公里和 200 公里之间的差异非常相似(而不是 100 公里和 101 公里之间的差异),3 天和 6 天之间的差异似乎与差异非常相似30 天和 60 天之间(而不是 30 天和 31 天之间的差异)。这意味着类似

分数 = a log d + b log t

(分数越低意味着帖子更相关)。

但是,由于对数对于极小的值会发散到负无穷大,因此您需要针对非常小的值进行调整;您不希望“就在这里,一年前”和“地球的另一边,0 秒前”被认为比“30 米外,十分钟前”更相关。一种方法是添加一点偏移量,这样您就不会采用非常小的值的对数:

分数 = a log( d +1) + b log( t +1)

我相信你会发现随着时间的推移你必须做更多的调整。我很想听听你的想法!


推荐阅读