背景;
我正在寻找一种根据听众反馈来计算一段音频得分的方法。每次用户收听该曲目时,他们必须投票,如果他们喜欢,简单的是或否。然后每个曲目都有一个分数,基于是和否的数量。
此外,我想在31天的过程中统一衰减每次投票的价值,因此在这段时间后,其值为0并且不会影响总体总分。
我发现了很多基于reddit和黑客新闻排名算法的讨论,但这些似乎会使总得分衰减,而不是个人投票本身。根据最初投票的时间,每次投票都有不同的衰减量。
任何人都可以帮助或推荐一些材料来查看吗?
由于
答案 0 :(得分:1)
您可以将其建模为“是”= 1.0且“否”= 0.0。 然后,在投票后的第n天投票的值=(31-n)/ 31。如果n> 1,则进一步调节这个条件31,然后将其设置为0。 希望这能回答你的问题。
答案 1 :(得分:1)
你想要降级的加速度是多少?常见的是对数,因为它易于实现。得分为1表示喜欢,-1表示不喜欢。然后,当将喜欢/不喜欢加起来时,除以投票后的天数。在第1天,投票的绝对值为1.在第2天,它将是1/2。在第3天,它将值为1/3等等......在第31天,它将值为1/31(0.03)。
对数降级的问题是它很快就会下降。您可以使用许多其他方法,例如乘以log(11-d),其中第一天d = 1,第二天2,依此类推。它只允许11天的降解。 log(31-d)允许31天。您需要确保不要尝试执行log(0)或log(-x)。
整个模型的另一个问题是如何处理只有旧票的东西。如果什么东西只有喜欢,但所有的喜欢都是旧的怎么办?它会注册为不太喜欢,因为所有的喜欢都已降级。