有关对基于位置的社交网络的帖子源进行排序的评分公式的建议



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

我正试图想出一个公式,为每个帖子的排序打分,并实现以下目标:

  • 首先显示的是高近距和高近距桩(例如d=1公里,a=1小时)
  • 如果一个职位距离很近,但很老(例如d=1公里,a=5天),则稍远的结果(例如d=5公里,a=1小时)排名更高
  • 非常遥远的哨所(例如d=10000,a=1小时)只会比附近非常古老的哨所排名更高(例如d=10km,a=1年)

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

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

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

score=alogd+blogt

(其中较低的分数意味着帖子更相关)。

然而,因为对数对于极小的值会发散到负无穷大,所以对于非常小的值,你需要调整它;你不希望"一年前就在这里"one_answers"地球的另一边,零秒前"被认为比"三十米外,十分钟前"更重要。一种方法是添加一点偏移量,这样你就不会得到非常小的值的对数:

score=alog(d+1)+blog(t+1)

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

最新更新