基于播放量、跳过率与评分的歌单选曲算法有效性问询
歌单选曲方案可行性分析与优化建议
这个方案的核心思路(结合多维度指标计算得分+补充冷门优质曲)方向是对的,但部分细节需要调整才能更好满足需求:
一、现有公式的问题与优化
原公式:
score = popularity * ( 1 - skip_freq/max_skips ) * rating
存在两个关键缺陷:
- 跳过率计算逻辑错误:
max_skips是全局总跳过次数,无法反映单首歌的实际跳过比例。正确的跳过率应该是单首歌的跳过次数除以播放次数,即skip_freq/popularity,这样才能公平衡量每首歌的用户接受度。 - 播放量权重失衡:直接用绝对值
popularity会让热门歌的得分碾压冷门优质曲,哪怕冷门歌评分高、跳过率低,也很难进入前50。建议对播放量做对数转换,比如:
score = log(popularity + 1) * (1 - skip_freq/popularity) * rating
(+1是避免播放量为0时的对数错误)
二、选曲流程的优化建议
- 避免热门歌垄断前50:单纯按得分排序,热门歌依然会占据绝大多数席位。建议先做分层选曲:
- 把歌曲按播放量分为热门组(比如播放量前20%)和冷门组(播放量后30%)
- 从热门组选得分前30首,冷门组选得分前20首,组成初始50首
- 明确“补充曲”的筛选标准:随机插入不能太随意,必须量化门槛:
- 播放量低:比如低于全站歌曲播放量均值的30%
- 跳过率低:比如跳过率≤10%
- 评分不低:比如评分≥4分
从符合条件的曲库中随机选10首插入,保证补充曲的质量符合用户口味
三、方案调整后的效果
调整后既能保留用户熟悉的优质热门曲,又能稳定挖掘到符合用户听歌偏好的冷门潜力曲,同时通过(1 - 跳过率)的权重自然排除了频繁被跳过的歌曲,完全满足你的需求。
内容的提问来源于stack exchange,提问作者Tim Gabrikowski
相关产品推荐
相关产品推荐

