网易云音乐的随机算法是不是有问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
plp
V2EX    程序员

网易云音乐的随机算法是不是有问题

  •  
  •   plp 2022-03-06 19:52:36 +08:00 5392 次点击
    这是一个创建于 1376 天前的主题,其中的信息可能已经有所发展或是发生改变。
    重度网易云音乐用户 日常使用随机顺序重复性很高 以至于后来听歌都能猜出来下一个随机歌曲
    34 条回复    2022-03-08 17:18:30 +08:00
    saka1zd
        1
    saka1zd  
       2022-03-06 19:58:38 +08:00
    +1
    jiezhi
        2
    jiezhi  
       2022-03-06 19:59:09 +08:00
    猜测:可能总数一定的情况下的随机值固定了,歌单增减歌曲试试呢
    eason1874
        3
    eason1874  
       2022-03-06 20:10:27 +08:00
    因为随机也是有序的

    你以为的随机:打乱顺序
    实际上的随机:根据你近期的播放习惯,列出权重,选取你比较大概率喜欢的一部分歌曲,排序
    QKgf555H87Fp0cth
        4
    QKgf555H87Fp0cth  
       2022-03-06 20:12:28 +08:00
    一旦听日语就一直推日语
    marcosteam
        5
    marcosteam  
       2022-03-06 20:17:01 +08:00 via Android   2
    @likunyan 那是推荐算法,不是随机算法
    misaka19000
        6
    misaka19000  
       2022-03-06 20:26:35 +08:00   1
    是的,应该不是随机下一首歌,而是先生成一个随机排序,之后根据这个随机排序来播放
    Kinnice
        7
    Kinnice  
       2022-03-06 20:3:22 +08:00
    听歌都能猜出来下一个随机歌曲,是人接近 ai 了,还是 ai 接近人了呢
    imsgj
        8
    imsgj  
       2022-03-06 20:33:44 +08:00
    我也这么觉得,甚至有一次前一首歌刚放完,我感觉下一首歌是什么我都哼出来了,结果真是那一首
    LeeReamond
        9
    LeeReamond  
       2022-03-06 21:53:09 +08:00
    QQ 在过去也有类似情况,不知道是否有改善,很多年不听歌了。一个需求方面的原因是,比如随机到 xx 歌曲,用户听完突然还想再听一遍,它点上一曲要能回到上一曲,而不是随机出来一个什么其他的(同理,有时候上两曲 /上三曲),那么实现上一个可以想到的简单处理方法就是随机时预先固定一个随机序列,序列内部顺序固定。
    joyyu
        10
    joyyu  
       2022-03-06 21:54:45 +08:00
    早有这个感觉了,经常发现有些歌在歌单里躺了好久了,愣是随机不到;有些歌就天天随机给我,听得都想取消红心了
    kingfalse
        11
    kingfalse  
       2022-03-07 00:08:17 +08:00 via Android   4
    随机有问题不假,心动模式才是真脑残,推的什么乱七八糟,而且总是默认心动模式,ctm
    ProjectSky
        12
    ProjectSky  
       2022-03-07 00:34:58 +08:00
    喜好比较固定,现在随机 FM 和每日推荐基本都是重复的音乐了
    Zien
        13
    Zien  
       2022-03-07 00:46:25 +08:00 via iPhone
    现在 shuffle 都不是 random ,古早时代好像 Spotify 是真随机,后来改成根据偏好加权的 shuffle 了。
    SeasonG
        14
    SeasonG  
       2022-03-07 05:38:41 +08:00   1
    就目前的技术而言,本来就不存在真正的随机,都是伪随机分布
    Mutoo
        15
    Mutoo  
       2022-03-07 06:55:23 +08:00   1
    「推荐文章」目前 Spotify 在使用的随机算法介绍
    https://medium.com/immensity/how-spotifys-shuffle-algorithm-works-19e963e75171
    3country
        16
    3country  
       2022-03-07 09:08:59 +08:00
    原来不止我一个人这么认为。。。
    iovekkk
        17
    iovekkk  
       2022-03-07 09:23:48 +08:00
    感觉也比 qq 音乐随机算法好
    之前用 qq 音乐,三十多首歌随机之后,有一首歌在十几二十分钟内播了两次
    Nich0la5
        18
    Nich0la5  
       2022-03-07 09:55:05 +08:00
    我随机的歌单有 4000 首 太大了完全没感觉到
    x1aoYao
        19
    x1aoYao  
       2022-03-07 10:00:06 +08:00
    之前用网易云的时候(大概到 2021 年仍未修复),歌曲列表排序都是错的,简直离谱。
    jadehare
        20
    jadehare  
       2022-03-07 10:37:11 +08:00
    @Zien #13 以前有个听歌的软件支持乱序,这样每次听这个歌单都是一样的顺序接着听不会重复。现在这种每次换个歌单就重新 shuffle 还经常重复听一首歌难受的一批
    wu67
        21
    wu67  
       2022-03-07 10:59:03 +08:00
    实际上是根据整个媒体库随机打乱出一个固定的顺序, 然后按这个顺序播放. 所以听多几次就能记住下一首是什么了...

    目前常见的随机就这么几种.
    上面这是一种.
    第 2 是瞎写的随机, 套 API 那种, 常见与一些 mp3/4 音乐播放器(实体), 很大概率会出现在短时间内播放同几首歌的情况.
    第 3 是那种抄现成随机算法的. 具体表现应该是在整个媒体库列表中选择几个位置, 然后在这几个位置周围随机选歌播放. 直接体现就是: 例如, 刚放了曲目 3 和 7, 然后会随机出 2 、6 、1 、8 、9 这种...

    可能还有其他的, 不过我没怎么鼓捣了...随缘.
    toma77
        22
    toma77  
       2022-03-07 11:06:20 +08:00   1
    每天随机好几遍八爷的 Loser 给我听。。
    mercury233
        23
    mercury233  
       2022-03-07 11:40:33 +08:00   1
    @SeasonG 没想到这里也能看到这种懂哥言论,计算机的伪随机只要实现方法合理,可以做到和所谓的真随机相同水平的统计学特性,缺陷主要在密码学上。说人话就是伪随机一样可以随机分布。但具体到音乐播放器,有人就觉得真随机不好(参见楼上发的那个目前 Spotify 在使用的随机算法介绍),所以产品经理会故意设计出不是真随机的算法。游戏抽奖往往也是一样。
    CokeMine
        24
    CokeMine  
       2022-03-07 12:53:05 +08:00 via Android
    我的测试是:第一次播放的歌曲确定。如果整个歌单没有变化,随机出来的播放顺序应该是确定的。

    因为每次第一次播放总会偏好想听的那一首www
    learnshare
        25
    learnshare  
       2022-03-07 13:52:02 +08:00
    是的,很多年都是这个风格
    随机算法比较差,也没测试过概率是否平均
    zeusgeohot
        26
    zeusgeohot  
       2022-03-07 14:04:49 +08:00
    已弃用网易云音乐,用 Apple Music 了哦。感觉苹果的版权还是要多一些
    cxh116
        27
    cxh116  
       2022-03-07 14:14:44 +08:00 via Android
    这些都不是问题,什么时候播放列表能支持大于 1k 首歌了?
    dany813
        28
    dany813  
       2022-03-07 14:18:05 +08:00
    听歌 没版权,真是蛋疼啊
    unclemcz
        29
    unclemcz  
       2022-03-07 15:25:55 +08:00
    想吐槽网易云很久了,个人 FM 功能推荐的歌精准度在不同时间段都是不一样的。
    早上推荐的歌都是符合预期的闽南语和粤语歌,晚上开始就瞎推一堆乱七八糟的“新式”流行乐,即使不断的点不喜欢也没用。
    HOMO114514
        30
    HOMO114514  
       2022-03-07 18:24:06 +08:00
    不是随机,是乱序。
    dousha99
        31
    dousha99  
       2022-03-07 19:28:10 +08:00
    之前在大学里的时候高强度听网易云(没课的时候就在社团听歌写代码),然后我发现 FM 推的歌曲会逐渐出现环,基本上连着听三四个小时就会出现连续几首已经听过的歌曲。一旦今日出现过这种现象,这种现象在今天发生的概率会越来越高,直到今天过去。

    基于这个现象,只能猜测 FM 推荐序列是一个加权随机游走,每天有一个不同的游走起点。

    * * *

    读题之后好像发现不太是关于推荐的。

    在一个已知的列表内进行「符合人类想象」的随机,最朴素的方法是洗牌算法打乱这个列表,然后依次播放。不过这样的话,应该不会出现能预测下一首是什么这样的情况;那么必须怀疑网易云根据你的喜好为各个歌曲加权后打乱,权重高的更贴近列表顶部。或许通过一点小手段去对抗这种行为,比如从歌单靠近底部的位置点击开始播放,或者切换不同的歌单。

    * * *

    其实推荐算法何尝不是一种在一个巨大的列表之内的随机 ; )
    abc8678
        32
    abc8678  
       2022-03-07 23:23:48 +08:00 via Android
    网易云不清楚,我听酷狗。写的是随机,感受是被个性化推荐了。虽然都是本地歌,但频率有区别,有些歌经常听,有些歌很久都不听,有些歌听完后还想听就主动倒回来听……这些似乎都已经记录在案了,然后个性化推荐了。另外,我听的歌的语言很杂,但随机的下一首往往还是同种语言的歌,应该按语言也分过类的
    abc8678
        33
    abc8678  
       2022-03-07 23:27:19 +08:00 via Android
    @eason1874 好像是安卓 4 的时代就开始这样做了,按照播放习惯选随机
    Explr
        34
    Explr  
       2022-03-08 17:18:30 +08:00 via iPhone
    我觉着这个问题如果确认了解决起来还是很方便的。用密码学库的伪随机数 API 应该能生成足够随机的随机序列。在用户本地跑也不用考虑强伪随机数算法的额外开销。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2710 人在线   最高记录 6679       Select Language/a>
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms
    UTC 15:00 PVG 23:00 LAX 07:00 JFK 10:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86