gpt4 book ai didi

algorithm - 投票系统的用户奖励/业力/声誉算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:03:40 25 4
gpt4 key购买 nike

我打算为我的公告板引入一个投票系统,我正在寻找一种优秀而高效的算法来奖励用户。我正在考虑的投票系统非常简单。让我解释一下。

  • 一个用户发布的每个帖子只能由论坛上的每个其他用户投票赞成或反对一次。用户不能为自己的帖子投票。
  • 赞成票得 1 分,反对票得 2 分(只是为了避免容易的攻击和围攻)。
  • 每隔 X 天,看板上的每个用户都会收到一定数量的 A 积分,用于根据一个简单的公式进行赞成和反对投票:

    A = 5 + AwardUserPerformance();
    Where AwardUserPerformance() is a function that returns a value between 0 and 10 depending on the performance of the user during the past X days.

我可以在 AwardUserPerformance() 函数中使用以下变量来计算用户的表现:

  1. T = 过去 X 天内用户在线花费的时间
  2. P = 用户在过去 X 天内发布的帖子数
  3. V = 在过去 X 天内对用户帖子的反对票和赞成票的总和(例如,如果用户收到 3 票赞成票和 2 票反对票,则 V=1)

我只是想不出一个好的算法来从这些变量中获取 0 到 10 之间的数字。

最佳答案

这不是一个微不足道的问题,我认为您无法获得“完美独特的答案”,因为您想要的功能在很大程度上取决于您希望奖励如何运作。

最明显的方法是找到一种方法将您的每个指标标准化在 0(糟糕)和 1(完美)之间。然后,您可以获得每项措施的 0 到 1 之间的分数,将它们相乘,然后乘以 10,得到一个根据定义介于 0 到 10 之间的数字。时间会相当容易(0 = 没有花时间, 1 = 整个在线时间),另外 2 个需要设置一些最小和最大阈值,截断上面的所有内容。例如:10 个帖子和更多 = 1,0 个帖子 = 0,中间是 n 个帖子/10。

不过这也有问题。首先,由于乘法效应,3 中任何一个为 0 都会使总分变为零。更一般地说,获得高分将变得非常困难,因为任何维度的低分都会严重惩罚总分。然后,设置界限要么是任意的(您决定最小值和最大值是多少),要么有点复杂(例如,您可以根据观察到的用户帖子数来设置最大值,然后选择 90% 的分位数作为最大界限) .这是一个问题的原因是边界将取决于您站点上的事件。如果您从 100 个用户开始,获得 99 个赞成票将非常困难。一旦你达到 100 万用户,这将变得容易得多,奖励系统应该(可能)适应这一点。

除了在普通线性函数之间使用乘法,您还可以使用任何递增函数,将每个度量值映射到 [0; 1].具有递减斜率的函数(如日志)将为适度活跃的用户提供例如“轻松分数”,但获得高分将更加困难。这是我推荐使用 Excel 的其中一种情况,以可视化各种函数会发生什么。

或者,为了避免乘法问题,您可以使用可分离函数,将总分分解为时间分数+帖子分数+投票分数。在那种情况下,您只需要这些函数中的每一个都从 0 开始,并且它们的最大值总和必须为 10。

但是,我认为最好的系统就是简单地使用收到的选票。它可能与其他 2 个相关(不发帖就不能投票,不在线就不能发帖)。

关于algorithm - 投票系统的用户奖励/业力/声誉算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10957621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com