有没有人觉得网易云的随机算法音乐算法很用心

网易云音乐的歌单推荐算法是怎样的?
【不是广告党,但我却成为网易云音乐的的重度患者,不管是黑红的用户界面,还是高质量音乐质量都用起来很舒服。我喜欢听歌,几乎每周不低于15小时,但其实听得不是特别多,并没有经常刻意地去搜歌名,所以曲目数量我并不是很在乎。但是比起其它,网音给我推荐的歌单几乎次次惊艳,而且大多都没听过,或者好久以前听过早就忘记了名字,或者之前不知道在哪听过 只是知道其中一部分旋律,根本不知道名字,等等,听起来整个人大有提升。 —————————————————————————————————— 问题来了,我想知道网音的歌单推荐是网音项目团队精心挑选制作的,还是众多音乐达人的推荐?即:歌单是网音官方提供,还是UGC?才有如此对口味的歌单推荐?求研究过的大神给出详细解答。】
这里我想给大家介绍另外一种推荐系统,这种算法叫做潜在因子(Latent
Factor)算法。这种算法是在NetFlix(没错,就是用大数据捧火《纸牌屋》的那家公司)的推荐算法竞赛中获奖的算法,最早被应用于电影推荐中。这种算法在实际应用中比现在排名第一的
所介绍的算法误差(RMSE)会小不少,效率更高。我下面仅利用基础的矩阵知识来介绍下这种算法。这种算法的思想是这样:每个用户(user)都有自己的偏好,比如A喜欢带有小清新的、吉他伴奏的、王菲等元素(latent factor),如果一首歌(item)带有这些元素,那么就将这首歌推荐给该用户,也就是用元素去连接用户和音乐。每个人对不同的元素偏好不同,而每首歌包含的元素也不一样。我们希望能找到这样两个矩阵:一,用户-潜在因子矩阵Q,表示不同的用户对于不用元素的偏好程度,1代表很喜欢,0代表不喜欢。比如下面这样:二,潜在因子-音乐矩阵P,表示每种音乐含有各种元素的成分,比如下表中,音乐A是一个偏小清新的音乐,含有小清新这个Latent Factor的成分是0.9,重口味的成分是0.1,优雅的成分是0.2……利用这两个矩阵,我们能得出张三对音乐A的喜欢程度是:张三对小清新的偏好*音乐A含有小清新的成分+对重口味的偏好*音乐A含有重口味的成分+对优雅的偏好*音乐A含有优雅的成分+……即:0.6*0.9+0.8*0.1+0.1*0.2+0.1*0.4+0.7*0=0.69每个用户对每首歌都这样计算可以得到不同用户对不同歌曲的评分矩阵。(注,这里的破浪线表示的是估计的评分,接下来我们还会用到不带波浪线的R表示实际的评分):因此我们队张三推荐四首歌中得分最高的B,对李四推荐得分最高的C,王五推荐B。如果用矩阵表示即为:下面问题来了,这个潜在因子(latent factor)是怎么得到的呢?由于面对海量的让用户自己给音乐分类并告诉我们自己的偏好系数显然是不现实的,事实上我们能获得的数据只有用户行为数据。我们沿用 的量化标准:单曲循环=5, 分享=4, 收藏=3, 主动播放=2 , 听完=1, 跳过=-2 , 拉黑=-5,在分析时能获得的实际评分矩阵R,也就是输入矩阵大概是这个样子:事实上这是个非常非常稀疏的矩阵,因为大部分用户只听过全部音乐中很少一部分。如何利用这个矩阵去找潜在因子呢?这里主要应用到的是矩阵的UV分解。也就是将上面的评分矩阵分解为两个低维度的矩阵,用Q和P两个矩阵的乘积去估计实际的评分矩阵,而且我们希望估计的评分矩阵事实上这是个非常非常稀疏的矩阵,因为大部分用户只听过全部音乐中很少一部分。如何利用这个矩阵去找潜在因子呢?这里主要应用到的是矩阵的UV分解。也就是将上面的评分矩阵分解为两个低维度的矩阵,用Q和P两个矩阵的乘积去估计实际的评分矩阵,而且我们希望估计的评分矩阵和实际的评分矩阵不要相差太多,也就是求解下面的目标函数:这里涉及到最优化理论,在实际应用中,往往还要在后面加上2范数的罚项,然后利用梯度下降法就可以求得这P,Q两个矩阵的估计值。这里我们就不展开说了。例如我们上面给出的那个例子可以分解成为这样两个矩阵:这两个矩阵相乘就可以得到估计的得分矩阵:这两个矩阵相乘就可以得到估计的得分矩阵:将用户已经听过的音乐剔除后,选择分数最高音乐的推荐给用户即可(红体字)。将用户已经听过的音乐剔除后,选择分数最高音乐的推荐给用户即可(红体字)。在这个例子里面用户7和用户8有强的相似性:从推荐的结果来看,正好推荐的是对方评分较高的音乐:从推荐的结果来看,正好推荐的是对方评分较高的音乐:
这就是amazon发明的“喜欢这个商品的人,也喜欢某某”算法。其核心是数学中的“多维空间中两个向量夹角的余弦公式”,当初我的确是被这算法惊艳到了。============= 更新 =============================不好意思,之前说的有误,特来更正兼补充。“商品推荐”系统的算法(
)分两大类,第一类,以人为本,先找到与你相似的人,然后看看他们买了什么你没有买的东西。这类算法最经典的实现就是“多维空间中两个向量夹角的余弦公式”;第二类, 以物为本直接建立各商品之间的相似度关系矩阵。这类算法中最经典是'斜率=1' ()。amazon发明了暴力简化的第二类算法,‘买了这个商品的人,也买了xxx’。我们先来看看第一类,最大的问题如何判断并量化两人的相似性,思路是这样 -- 例子:有3首歌放在那里,《最炫民族风》,《晴天》,《Hero》。A君,收藏了《最炫民族风》,而遇到《晴天》,《Hero》则总是跳过;B君,经常单曲循环《最炫民族风》,《晴天》会播放完,《Hero》则拉黑了C君,拉黑了《最炫民族风》,而《晴天》《Hero》都收藏了。我们都看出来了,A,B二位品味接近,C和他们很不一样。那么问题来了,说A,B相似,到底有多相似,如何量化?我们把三首歌想象成三维空间的三个维度,《最炫民族风》是x轴,《晴天》是y轴,《Hero》是z轴,对每首歌的喜欢程度即该维度上的坐标,并且对喜欢程度做量化(比如: 单曲循环=5, 分享=4, 收藏=3, 主动播放=2 ,
跳过=-1 , 拉黑=-5 )。那么每个人的总体口味就是一个向量,A君是 (3,-1,-1),B君是(5,1,-5),C君是(-5,3,3)。
(抱歉我不会画立体图)我们可以用向量夹角的余弦值来表示两个向量的相似程度, 0度角(表示两人完全一致)的余弦是1, 180%角(表示两人截然相反)的余弦是-1。根据余弦公式,
夹角余弦 = 向量点积/ (向量长度的叉积) =
( x1x2 + y1y2 + z1z2) / (
跟号(x1平方+y1平方+z1平方 ) x
跟号(x2平方+y2平方+z2平方 ) )可见 A君B君夹角的余弦是0.81 , A君C君夹角的余弦是 -0.97 ,公式诚不欺我也。以上是三维(三首歌)的情况,如法炮制N维N首歌的情况都是一样的。假设我们选取一百首种子歌曲,算出了各君之间的相似值,那么当我们发现A君还喜欢听的《小苹果》B君居然没听过,相信大家都知道该怎么和B君推荐了吧。第一类以人为本推荐算法的好处我想已经很清楚了,那就是精准!代价是运算量很大,而且对于新来的人(听得少,动作少),也不太好使,所以人们又发明了第二类算法。假设我们对新来的D君,只知道她喜欢最炫民族风,那么问题来了,给她推荐啥好咯?如图,推荐《晴天》!呵呵,第二类算法的好处大家也看出来了,简单粗暴好操作(也适合map-reduce),可精度差了点。所以,各家网站真正的推荐算法,是他们在综合上述两类算法的基础上,各自研制并且不断地改进调节的,外人不得而知! ^_^===
再补充 ===多谢 @刘彦彬 给了一个非常专业的评论 ,不贴出来可惜了。“这个只能说是理论基础。歌曲不考虑热门冷门,同时不考虑用户数和歌曲数计算复杂度的话第一一天内离线数据计算不完的(当然网易云音乐用户量小全量暴力计算当我没说),实际应用起来复杂很多了。现在的推荐系统并不存在一种算法通吃,除了算法上的问题,还需要考虑基础数据的影响因素,比如两张歌单有多少歌曲重合,歌单的质量是怎么样的。” 我上一帖也说了,'向量夹角余弦' 解决的是‘量化顾客口味相似度’的问题(是最经典的解法,也有别的解法),不是有了它就能轻易实现第一类算法的,难处在后面咯。我不是干‘CF/算法/数据挖掘/互联网’的,只是几年前偶尔瞄到过这方面文章被惊艳了一下,见到这题就随口抖了个机灵,然后被评论区几位带板凳来的朋友给推上来了 ^_^既然大家都这么有兴趣,我在来抛块砖,说说‘有了理论基础之后咋整’的思(nao3)考(dong4)。继续第一类算法的话题,目标“每日歌曲推荐”(其实题主感兴趣的是这个吧,旁边‘根据你喜欢的xxx推荐的yyy歌单’我觉得不咋样)。首先就是如何定维度。
直接用‘歌’当维度是不行的,第一是太多了算不过来,第二维度数一直猛涨也不是个事。用‘歌单’或者‘专辑’,‘演唱/演奏者’呢?也有类似的困难。说到这里大家应该都意识到了,咱不是还有‘tag’嘛!云音乐初期,tag是可以由大家自己填的,我记得我填过‘莫扎特’,‘钢协’,‘交响’这样的tag,现在都不见了吧。一段时间之后,tag无法自填了,只能从云音乐给的tag lib中选,这肯定有原因的。我的推测就是,他们需要用tag来当作维度,所以不希望tag数经常变化。第一阶段,他们需要搜集用户的输入来做出tag lib,第二阶段,他们构建了多维度空间,就不希望再动维度了,因此关闭了自填tag的功能。假设就用tag做为维度,那么第二个难处在于,维度上的'刻度'必须有正有负才好使,用户没有机会直接表达对tag的好恶(不能收藏,播放,跳过一个tag),如何定刻度呢。我认为每一首歌背后是有其所属tags这个属性的,这个属性在UI上看不到很可能是因为比较容易引起口水。歌往往隶属于很多歌单,而那些歌单都是有tags的,根据那些歌单的播放数收藏数分享数可以决定其'权威性',取'权威性'高的歌单的tag,就可以得到每首歌的tag属性。然后用户在表达对一首首歌的好恶的时候,其实就不知不觉地影响了他在相应维度上的刻度。假设维度和刻度都这样解决,那么我们可以对每个用户做出‘口味向量’了,接下来的难处是,啥时候算/如何保存‘用户相似性’?所有用户两两算一下相似性,存为一个NxN的矩阵,这种事情不是闹这玩的。其实到了这一步,不考虑‘以人为本’,直接根据我喜欢的tag,从各tag里挑一些人气高的,或者蹿升快的歌来推荐也算是能交差了。不过那样的话,就容易同质化,也就不易让用户‘惊艳’了。让我们继续沿着第一类算法的思路琢磨琢磨。多维度空间还有一大好处是,有‘像限’这种的概念,比如我们可以粗暴地假设,和我同一个像限的人,就是和我‘相似’的人,如果因为维度太多,或者初期用户太少等原因找不到同像限的人, 还可以去‘相邻’的像限找嘛。OK,假设我们根据tag以及自己的像限,找到了一批和自己‘气味相投’的人。再丛这批人中,选几个‘和我夹角余弦’最大(再综合一下个人名声比如星标,粉丝数,和我的互动度等,更好)的人,从他们听过而我没听过的歌中,再选一批 他们喜欢,或者他们新听到,新收藏,或者总人气高的等等,就可以说是“根据我的口味生成”的“每日歌曲推荐”了。以上内容,均是臆测,如果雷同,纯属巧合 ^_^
感觉 @邰原朗 的回答的确给出了CF和Item-based Similarity的很浅显解释,的确也是大多“个性化推荐系统(Personalized Recommendations System)“所使用的算法,但是感觉有点离题和缺乏深度,no offense。网易内部怎么做到这么好的推荐?在知乎上面问几乎不会得到正确答案的吧,我的答案只是从我的经验出发: “如果设计产品的话,我会这样思考”。一个优秀的推荐系统不仅仅是个性化算法这么简单 -- 基础的也好,fancy的也好 -- 一个完整的推荐系统体系怎能不提及官方团队推荐(Editorial)、UGC(User-Generated Content)和热门推荐(Top Seller/Trending)的协作呢?相似度矩阵(Similarity Matrix):大家提的各种算法里面,几乎都是基于相似度的吧 -- 无论是CF还是Content based产生的相似度,前者需要用户的行为数据,后者需要歌曲的元数据(metadata),比如旋律、Tag等等。具体算法就不再复述了,属于计算机科学的基础内容,很多人都说过了,实现起来简单。虽然很多人给出了沙盒的数据,但是这些数据实在是太好了,虽然不知网易数据的“质”和“量”如何,但是应该不至于这么好(?)。所以,凭单一的方法真的大丈夫吗?我们先从Similarity的问题说起:大多数用户一开始会先从自己熟悉的歌曲开始,然后一般都会给出非常相关的推荐,比如你听周杰伦的任何歌曲,他的其他热门歌曲肯定都会非常相关,比如周杰伦的《晴天》,周杰伦的《游园会》,周杰伦的《七里香》,也不失为一个好的推荐。但是你会发现全都是周杰伦,单调死了。全是周杰伦的理由很简单,因为很多用户都连着听下去呀,听完一首周杰伦到下一首周杰伦,听完这个专辑听下个专辑。如果你往后再翻翻,估计还能找到别歌手的歌曲,但是请记着:你的屏幕就这么大,坑就这么多,再好的推荐不能在考前的位置被用户看到和消费到终归也还是扯淡。现在我们来尝试解决这个问题,我们先来做个简单的多样化过滤,我们限制来自同一个歌手的推荐数量,这样后面更多歌手的歌去被推上来了,很好。现在又一个的问题来了,陈奕迅这时候发新砖了,用户一下子蜂拥去听他的新砖了,包括周杰伦的一众拥趸们也跑去观望了一下,这样的情况持续了一个多月,这下好了,用户看到的推荐里面现在几乎都能看到陈奕迅的这些歌了,尽管他这的歌跟周杰伦的歌原本不至于这么相关。而且由于这个效应,更多的人从推荐里面点进去了听陈奕迅的这些歌,造成了一个恶性循环,使得你的Similarity以为他们真的相关,这时候其他真正相关的优质推荐却被挤压到后面了。我们来尝试解决这个问题,最简单的莫过于是计算相似度的时候过滤掉“过于”热门的歌曲了,把这些歌曲推后吧,感觉问题应该也能解决了。现在一波未平一波又起,假设现在一个非常优秀的Indie歌手,唱的歌也好有周杰伦的早年的范,反正就是非常相关,周杰伦的歌迷肯定会喜欢那种(对不起实在不熟悉国内歌手,幸亏不是做的这行,这位迷一样的歌手大家请自行脑补)。这位迷一样的歌手刚出道,宣传力度不大,也只有少数几个地方能听到他的歌曲,只有被小数的几个周杰伦迷给发掘出来了,现在问题来了,我们该如何使得这个歌手被发掘出来呢?这个基本上与上一个问题相反,这是冷门的优秀推荐很难被发掘。这时候我们可以用点归一化(Normalization)的小伎俩微调一下。值得一提的是,归一化更能给解决一下上一个提及的太过热门的问题,类似tf-idf(–idf)。可以说怎样做Normalization才是各大厂家的杀手锏吧,虽然都可能大同小异,但是不同行业还是需要细分。先别歇下,更多的问题将要来袭:Similarity的确是非常natural的推荐算法,事实上当数据足够大、足够干净和精确的时候,Simialrity是很难被打败的。但是设想如果是网易音乐发展初期,没有很多用户数据的情况下呢?又如果是网易音乐急速扩张时期,用户数据很多但是很sparse的时候呢?又从用户角度切入,设想是一个刚加入的新用户,并没有其它用户数据来源来提供推荐的情况下呢?这些冷启动问题,又该如何解决呢?难道就应该放弃这些用户?可能我们可以做更多的Trick来调整我们的算法,也可以去尝试更fancy的其他算法,尝试去做Hybrid、fused的系统,但是首先,产品的研发周期会变长,开发投入变大,系统变复杂维护的消耗更大,然后更糟糕的是因为进展缓慢,用户一直看的就是不咋地的推荐,用户开始流失,数据更加稀疏,最后导致恶性循环。可以移步参考
的答案(),描述的是multi-tenancy和纯Similarity的其他问题。工程师的尊严并不是钻牛角尖:...而是拿出creative的思维来跳出盒子,尝试通过别的途径来解决这些问题。我们先从做一个首页显示热门榜单开始,这是一个非常容易实现的功能,计数、排序、简单分类:中国、欧美、日本和韩国,按流派也行:流行、摇滚、古典,甚至按年龄段或者群体,不外乎是几个数据库搜索的事情。但是这些热门排行榜却作用非凡,用户可以从中发现当前的大趋势(Trending),比如说,现在张杰比周杰伦风头要盛,听听张杰的看看怎样。由此榜单也能帮助用户发现他本来兴趣圈以外的东西。这么容易实现的功能,却也可以带来不少的好处,属于“low hanging fruit”,没有不摘的理由。然后我们来聘请一批专业的媒体编辑员,让他们根据我们歌曲库里的内容,生成比较专业的榜单,比如:“高逼格小清新”,“喧嚣中,不妨试的调调” 还有 “被遗忘的经典华语女声”。用过其它的歌曲软件的人估计对这个也不陌生,比如说虾米。这个也能很大程度上帮助用户发现兴趣圈以外的东西,而且由专业人员生成的歌单,更有目的性,比如说你喜欢苏打绿是因为“小清新”,那么在“小清新”的歌单里的,就是一大批高质量的,对你而言非常优秀的推荐了。这样的功能也能很快组织和实现起来,好处也是大大的。最后,看到了知乎的威力以后,我们考虑做UGC。从做一个简单的UGC功能开始,我们现在另开一个数据库,允许用户保存自己的歌单,并在个人主页推荐这些歌单。同时我们在主页中定期置顶一些访问量较大的歌单。功能上非常容易实现。UGC所激发的用户潜能可以使得用户产生与专业编辑员质量相当的、甚至更高的歌单。功能上的实现实在是再简单不过,效果更是不言而喻。这时候我们的很大一部分问题得到解决,就算是我们的Similarity所产生的推荐并不是那么好的时候,我们的用户并不会由此而失去发现音乐的途径。听歌的人多了,用户保持engaging,老用户们持续产生高质量的数据,我们之前的个性化推荐算法也能有更好数据来调整参数,从而产生更好的音乐推荐,更好好的用户群体也能推动热门榜单与UGC的发展,进入良性循环。我希望我阐述清楚了一个好的推荐系统“生态圈”的重要性,算法牛逼的当然有,再牛逼的都有,但是你总要trade-off,总会有不足。现实中,估计很少问题被是“一条路走到黑”地,“简单暴力”地方法解决的吧。现在再来回顾题主的问题:“网音给我推荐的歌单几乎次次惊艳,而且大多都没听过,或者好久以前听过早就忘记了名字,或者之前不知道在哪听过 只是知道其中一部分旋律,根本不知道名字,等等,听起来整个人逼格大有提升。”"我想知道网音的歌单推荐是网音项目团队精心挑选制作的,还是众多音乐达人的推荐?即:歌单是网音官方提供,还是UGC?才有如此对口味的歌单推荐?"我的猜测(因为我永远不知道答案)是:都有。我感觉题主描述的就是一个成熟的推荐系统生态圈共同作用的结果,刚刚去看了一下网易云音乐的界面(所幸暂时还没有地区限制),的确也是有这些功能的。() 题主得到的高逼格推荐,很可能就是最早来源于一个名为“高逼格小清新”专业编辑推荐歌单,有效地引导了兴趣相投的用户去发现这些音乐,大多跟你有相似品味的人都听过并感觉不错,最后还经过fancy算法“沉淀”、“发酵”,产生了很好的相似度,从而生成了了这么优秀的推荐并推送了给了题主。然后题主来知乎发了个帖子,大家被“惊艳”到了,更多的新用户加入,perfect!最后,如果真的有这么多用户都觉得网易云音乐的推荐都非常“惊艳”的话,那这个产品就实在是太成功了,特别是考虑到“众口难调”的音乐领域。
最近研读了下「集体智慧编程」,书中提供了完整的推荐算法介绍。个人参照其中,并模拟网易云音乐的情景来举些例子(全文所有数据虚构,仅供参考)。在详细介绍推荐算法前,要提一下协作型过滤(Collaborative Filtering)的概念:协作型过滤算法会通过对一大部分人进行搜索,从中发现与我们品味相近的一小部分人。算法会对这些人所偏爱的其他内容进行考查,并将它们组合起来构造出一个经过排名的推荐列表。有许多方法来帮助我们确定哪些人与自己的品味更加相近,在本文中我们将提到两种方法来实现这个目的,基于用户的协作型过滤和基于物品的协作型过滤。我们先从更易理解的基于用户的协作型过滤开始。基于用户的协作型过滤的流程至少包括以下四个步骤:建立评价规则搜集用户偏好寻找相近的用户推荐歌曲1.建立评价规则下图是我随意做的一个评价规则。评价规则应该根据明确的用户行为来建立。需要特别注意的是,这个评价规则是可以随着开发者收集到数据和侧重点的不同进行变更(当然不能频繁变更)。需要特别注意的是,这个评价规则是可以随着开发者收集到数据和侧重点的不同进行变更(当然不能频繁变更)。2.搜集用户偏好根据评价规则,我们可以得到每个用户和该用户相关的每首歌的一个得分。 下图也是我随意造的数据。3.寻找相近的用户常用的计算相似度评价值的体系有两种:欧几里得距离和皮尔逊相关度。欧几里得距离非常直观。我们以经过人们一致评价的物品为坐标轴,然后将参与评价的人绘制到图上,并考查他们彼此间距离的远近,如下图:(用R简单地画一下,莫吐槽太丑)(用R简单地画一下,莫吐槽太丑)再次强调,欧几里得距离评价的核心是距离,这与票数第一名答案()中用角度余弦值来评价有本质区别。相比欧几里得距离,皮尔逊相关度评价是一种相对复杂一些的方法。它通过计算两组数据与某一直线拟合程度的相关系数,来判断两个对象的兴趣相似度。虽然皮尔逊相关度评价比欧几里得距离评价的计算公式更复杂一些,但是它在数据不是很规范的时候(比如对甲乙做比较,甲的用户偏好评分普遍高,乙则相反,用欧几里得距离评价的结果通常南辕北辙)往往能给出更好的结果。我们以做对比的两者分别为坐标轴,在图中标出两者对共同音乐的评分情况。如下图所示。根据周杰伦和那英的用户偏好,《真的爱你》分别得分为3分和3分,因此《真的爱你》定位在图的(3,3)处。图中的虚线是最佳拟合线(本例中我采用的是OLS模型。绘制原理简言之,就是让这条线尽可能地靠近图上所有的数据点)。如果两位用户对所有歌曲的偏好情况都相同,那么这条直线将成为对角线,并且会与图上所有的数据点相交,从而得到一个结果为1的李响相关度评价。第一幅偏好空间的相关系数较低,下面是一个相关系数较高的例子。采用皮尔逊相关度评价的一个明显好处是,它修正了“夸大分值(grade inflation)”的情况。在第二幅偏好空间中,虽然汪峰总是倾向于给出比周杰伦更高的分值,但最终的虚线几乎是拟合的,这是因为他们两者有着相对近似的偏好。而皮尔逊相关度评价的结果是否就是我们想要的结果,取决于具体的应用场景。4.推荐歌曲接下来系统要做的就是,为用户郑昊提供歌曲推荐。我们当然可以查找与郑昊品味最相近的人,从他所喜欢的歌曲中找出一首郑昊可能还未接触过的歌曲。不过,这样的做法未免太随意了。目前最通用的做法是,通过一个经过加权的评价值来为歌曲打分,评分结果即排名结果。为此,我们需要取得所有其他用户的分数,借此得到相关系数后,再乘以他们与相关歌曲的分数,求和之后再除以对应的相关系数总计,便能获得一个我们需要的评价值。在下表中我们给出了具体的做法。「相关系数」一列来自于皮尔逊相关度评价。「歌名」对应各用户的得分来自评价规则处理后的结果。将前两者一一对应相乘,便是「歌N*相关系数」的值。如此一来,相比于与我们不相近的人,那些与我们相近的人将会对整体评价值拥有更多的贡献。总计一行给出了所有加权评价值的总和。我们可以用总计值来计算歌曲排名,但是我们还需要考虑到,这样人数会对一首歌的得分产生正相关影响。为了避免这一问题,我们需要将总计除以相关系数总计。相关系数总计等于所有对这首歌曲有影响的用户的相关系数之和。表中最后一行就是我们所需要的结果。接下来,我们来介绍基于物品的协作型过滤。如果将基于用户的协作型过滤简述成如下形式:网易云音乐用户甲-&偏好相近用户-&相关歌曲-&推荐列表。那么基于物品的协作型过滤也可以简述成如下形式:1.歌曲A-&相关用户-&相关歌曲-&推荐列表;2.网易云音乐用户甲-&偏好歌曲-&推荐列表。步骤1是对任意一歌曲进行数据抓取,找到相关用户和这些用户的偏好数据,再去得到相关歌曲信息,获取与该歌曲相近的最优推荐。由于与用户无关,所以步骤1可以安排在网络流量不是很大的时候进行,或者在独立于主应用之外的另一台计算机上单独进行。这里的歌曲A可能是任一一首歌。步骤1承担了大部分的运算工作。步骤2在用户甲有相关需求时发生,通过获取用户甲的偏好歌曲和步骤1的结果,就能找到给用户甲的歌曲推荐。
最近几天刚好在做网易云的推荐歌单分析。说一点自己的看法吧。
熟悉网易云的人都知道,歌单的推荐有两种,第一种是推送是每日推荐歌曲,第二种是推送歌单组合。一、每日歌曲推荐:
好吧这里应该有结论:
网易云的推荐算法基础是基于协同过滤,极大可能有通过标签二次过滤。
推荐系统分析的行为有播放、下载、收藏歌曲。可能存在行为叠加。
对用户不完整播放的行为不敏感,这个应该算是缺点吧。
总的来说,推得还算准确。但是推荐算法不算太先进。大家觉得准确,可能是由于网易云使用的用户人群属性较单一,对于推荐算法来说这样的人群是十分理想的。,有兴趣可以去参考下QQ音乐的推荐系统,在对用户行为的分析上,会更完善。
推荐的依据,官方声称的是由试听记录、收藏歌曲、收藏歌手进行推荐的。而事实上,能产生用户兴趣的行为,可能会包括:试听歌曲、收藏歌曲、收藏歌手、收藏专辑/歌单、搜索、关注用户、下载歌曲。所以新建了些空白样本在网易云的web端做了个测试。
可以看出,网易收集的用户行为有包括:试听、喜欢、下载。官方声称的根据歌手推荐没有返回结果。
而当中,有试听的情况,推荐系统的反应是最好的,有推荐歌曲的入口跟推荐的歌单。而下载及收藏歌曲其次,没有推荐入口放出,但是用url访问地址,有推荐的歌曲。所以可以试试判定在行为分析上,网易云的权重是:试听
这有点不符合常理,因为普遍觉得喜欢跟下载,是一种更强烈能反应出用户兴趣的行为。所以截包分析了一下,发现在每次播放结束后,会向服务器传递一个行为记录。当中会对用户兴趣产生影响的有:是否完整播放及播放的时长,歌曲的来源。所以觉得,在推荐行为里面可能的权重为(按用户操作的成本):
下载+播放 & 喜欢+播放 & 搜索+播放 & 播放 & 下载 & 喜欢
然后,再来看一下有推荐结果的行为:
目测第二天的数据是没上传到给服务器,或者推荐的算法权重判断上,对某些歌曲的播放次数会比是否最近播放更优先。
再看一组播放数据:
这次可以确定,用户2第二天的数据是没上传成功了。推荐系统对是否最近播放的反应很敏感,对主动中止播放这个行为不敏感。这里应有吐槽,因为切歌算是一种用户主动不喜欢的行为,理想的推荐结果,应为全部都是纯音乐。
最后纯喜欢/下载的用户,推荐的歌曲还算准确。但是4个用户的结果加起来,感觉在推荐出来的歌曲风格上十分单一。所以怀疑,推荐系统运转先是基于协同过滤,然后可能存在标签矫正的机制。也有可能是通过歌手这个纬度的矫正,因为这样的成本没标签高。二、歌单推荐:
歌单推荐相对于歌曲推荐算法会简单很多。主要的逻辑会有:
可能喜欢的歌曲,是经过试听记录去判定的,多次听一首歌,推荐系统就会判定你可能喜欢这首歌。
其实歌曲,都可以分解成一个很大的标签集的(粤语、摇滚、快歌…),能归类进一个歌单里面,直接通过单曲去索引歌单,对用户兴趣的命中率也很高。QQ的专辑推荐也还是基于这个。
准不准的结论不好给,推荐给我的歌单,其实在自己常用帐号还是偶尔能发现不错的。起码比QQ的好了。
首先,推荐算法有三种常用的基本套路1、基于内容的推荐(content-based filtering)。 引用
的解释,是音乐信息检索的领域,学术上一般content-based是特指音频内容本身的,主要涉及feature extraction,专辑、歌手和歌词等基于text或tags的因素,通常用来与content相结合来提高检索效率的。2、基于协同过滤推荐(collaboration filtering)。基于广义的排行榜行和热门排行进行推荐。3、社会化推荐(social recommendation)。基于关系的推荐。推荐系统能实施起来的两大前提,1)信息过载;2)需求不明确(明确需求请找搜索引擎)。2011年的Recsys大会专门邀请了Pandora的研究人员对音乐推荐进行了演讲。演讲人总结了音乐推荐的如下特点。物品空间大 物品数很多,物品空间很大,这主要是相对于书和电影而言。消费每首歌的代价很小 对于在线音乐来说,音乐都是免费的,不需要付费。物品种类丰富 音乐种类丰富,有很多的流派。听一首歌耗时很少 听一首音乐的时间成本很低,不太浪费用户的时间,而且用户大都把音乐作为背景声音,同时进行其他工作。物品重用率很高 每首歌用户会听很多遍,这和其他物品不同,比如用户不会反复看一个电影,不会反复买一本书。用户充满激情 用户很有激情,一个用户会听很多首歌。上下文相关 用户的口味很受当时上下文的影响,这里的上下文主要包括用户当时的心情(比如沮丧的时候喜欢听励志的歌曲)和所处情境(比如睡觉前喜欢听轻音乐)。次序很重要 用户听音乐一般是按照一定的次序一首一首地听。很多播放列表资源 很多用户都会创建很多个人播放列表。不需要用户全神贯注 音乐不需要用户全神贯注地听,很多用户将音乐作为背景声音。高度社会化 用户听音乐的行为具有很强的社会化特性,比如我们会和好友分享自己喜欢的音乐。上面这些特点决定了音乐是一种非常适合用来推荐的物品。Pandora背后的音乐推荐算法主要来自于一个叫做音乐基因工程的项目。这个项目起始于日,它的成员包括音乐家和对音乐有兴趣的工程师。Pandora的算法主要基于内容,其音乐家和研究人员亲自听了上万首来自不同歌手的歌,然后对歌曲的不同特性(比如旋律、节奏、编曲和歌词等)进行标注,这些标注被称为音乐的基因。然后,Pandora会根据专家标注的基因计算歌曲的相似度,并给用户推荐和他之前喜欢的音乐在基因上相似的其他音乐。Last.fm于2002年在英国成立。Last.fm记录了所有用户的听歌记录以及用户对歌曲的反馈,在这一基础上计算出不同用户在歌曲上的喜好相似度,从而给用户推荐和他有相似听歌爱好的其他用户喜欢的歌曲。同时,Last.fm也建立了一个社交网络,让用户能够和其他用户建立联系,同时也能让用户给好友推荐自己喜欢的歌曲。和Pandora相比,Last.fm没有使用专家标注,而是主要利用用户行为计算歌曲的相似度。--------------------------分割线:以上科普源自项亮的《推荐系统实践》-----------------------目前大部分做推荐的应用推荐逻辑应该都是多种逻辑并行。编辑推荐和用户推荐的歌曲一般会有专门的版块展示。个性化推荐理论上来讲都是通过算法直接从大库里面由程序产出的。1)冷启动的时候基于热度的推荐会比较多,推荐流行热点音乐总是不会错的。2)在用户使用一段时间,用户行为达到一定样本量以后,程序开始通过内容和社交关系逻辑产出内容,并且与热门内容按照一定比例推送给用户。用户所有的行为(包括下载/喜欢,评论,播放完成度,播放次数等等)都会以不同的权重呈现在后续的推荐逻辑中。至于准确不准确,合不合口味这个事情,与推荐算法的关系其实是不大的。做内容推荐的关键是内容质量是否过关。也就是音乐库里面对不同歌曲,不同歌手的音乐基因标记的是否正确,是否够专业,我觉得Jing.FM是近两年相对专业一些的个性化电台。
…我们用的真的不是同一个软件,最近一周都没有听到中意的歌------------------------------------------------------------------------------------------更新,才注意到这张图,我用网易云音乐有两个月要知道,这136首歌大约有70首是我自己搜出来标注的,也就是我平均听19首歌才能喜欢一首,19这个数字不太吓人,但是最近一周都没有中意的,这个就不太好了要知道,这136首歌大约有70首是我自己搜出来标注的,也就是我平均听19首歌才能喜欢一首,19这个数字不太吓人,但是最近一周都没有中意的,这个就不太好了---------------------------------------------------------------------------------------------数据
回笼觉教主:
先说下冷启动,冷启动问题就是解决新用户,新歌曲的推荐问题.一个新用户过来,网站对其一无所知,如何进行推荐,一首新歌,在用户数据的积累上也是一片空白,应该把它推荐给谁.对音乐网站来说,这几个问题都不算是大问题,特别是itembase的算法,只要一有行为,就会有推荐产生,作为音乐本身,经过一小段时间的积累,就会在数据上有相似的音乐产生音乐是个难以琢磨的东西,但是还是可以从一些描述中看出端倪,用一些人工的维度进行区分,比如歌手,比如语言,比如风格.网易在冷启动问题上,我猜测也使用了决策树的方式对各个音乐的标签进行筛选,通过分裂最大熵的标签来筛选用户的初始口味.什么叫最大墒?笼统的说,现在有这么几个标签,快歌,重金属,轻音乐.我只能问你一个问题,然后就需要对你进行推荐,也就是说,哪个标签可以最快速的切分用户?假设我们有10w首歌曲,有快歌标签的有5w首,重金属有2w首,轻音乐有1w首.那么我第一个问题就是"你喜欢挺快歌吗?"这样的划分就是墒最大的划分,如果还能再问一个问题,假设在快歌里有1w首是重金属,1k的轻音乐,那么下一个问题就是你喜欢重金属吗?以此类推,如果都是2分问题的话,5个问题就可以把用户分成32类,平均下来每一类就是3.125%,算是很细致的了.有了初始化的测试,就可以按照标签来进行推荐了.那我们再来搞清楚一个问题,y do we use tag to recommend?当我们描述一道菜的时候,会用一大堆的形容词,比如说辣的,甜的,脆的,软的.像初恋一样的,这些都是从食物里提取出来的特征,用来描述一道菜是什么样子的.音乐也是一样,,快歌,重金属,轻音乐都是tag,用来描述一首歌曲.有了tag就可以把一首歌进行抽象,不然计算机怎么知道这首歌到底是一首什么歌呢?(还有一种方法就是进行音乐指纹的提取,这又是另一种思路了),那么在计算机看来呢,每一首歌就是一堆tag的向量,such as 我的滑板鞋的tag 假设是 (作者,曲风,时长,热门程度,等等等),tag的生成可以是用户ugc标记,也可以由编辑在上传歌曲的时候标记上,这些问题都不大.tag怎么用?用了tag之后,计算机就能描述一首音乐了,于是你就去听了几首歌,这时候,歌曲本身是含有tag的,这些tag就可以描述你,那么余弦也好,皮尔逊也好,一大堆相似度算法就可以用上了,通过tag中介,就可以计算听者和听者的相似度,歌和歌的相似度,也可以直接用tag进行推荐当然这个是非常之粗糙的,但是用来作冷启动还是不错的.再让我们想一想,描述一首音乐一定要使用tag吗?还有什么可以作为维度来描述这首音乐的?答案就是人,所有的人都是音乐的一首维度,我的滑板鞋子的维度就是(丁磊喜欢,马云不喜欢,罗永浩没听过),反过来,音乐也是人的维度丁磊(我的滑板鞋,你的滑板鞋,他的滑板鞋),这样一来,省掉了一大堆编辑tag的时间,同时增加的是运算量,处理的方式和用tag是类似的.在一个用户有了一定的行为之后,我们用他听的歌来描述他,而不是抽取的tag来描述他,这样在原来的基础上更近了一步,但是这样和真是的情况相比如何呢?可以试着来回答一个问题:Why do you listen to this song?A回答,因为是孙燕姿唱的,B回答,音乐是慢歌,C回答,因为不好听我想回答是千奇百怪的,而这些正是用户听一首歌的真正原因,这是不是和tag又有点相似?好像饶了一圈又回来了,不得不承认,听某一首歌曲的人会有很多原因,但是往往原因不太多,就像很多人会去看罗永浩的微博,但是原因往往五花八门,为老罗洗地的有,黑的有,还有根本不知道他是什么东西的也有.使用tag有2个很重要的毛病,一个是维度有限,因为都是人工创造的,不能覆盖所有的情况,有可能漏掉很重要的维度,第二个毛病是维度的权重没办法定义,就像去老罗的微博,洗地的权重,黑的权重,其他人的权重又是多少,这些都是tag没办法给出的.假设我们有一个办法可以找到事实背后的隐含变量,那么一切都会迎刃而解矩阵分解降维的方法就可以完美的解决这个问题,把用户和音乐分配到各个维度上,假设是1000个,那么这时相当于有1000个标签,但是这些标签不是人工打上去的,而是降维降出来的,所谓降维,原来我们把每个用户作为一个维度去描述一首歌,现在把这些用户合并合并,抽象抽象,选择其中的共性,降到1000维,并且这1000维都是有各自的权重的,举个例子,我的滑板鞋子(走掉30%,有趣30%,励志20%),就变成这样了,最为关键的一点在于,这样出来,用户和音乐的维度被统一了,这个就超级屌了,原来的推荐要么是计算人与人之间的相似度,再过度到音乐,或者是通过音乐之间的相似度,进行类比推荐,矩阵分解可以从人通过隐藏维度直接到音乐,并且隐藏维度的权值都是可以算出来的,简直逆天了.再换一个思路来看这个问题,我是一个网站的所有者,我并不知道你为什么去听一首音乐,我是一个观察者,我看了太多的人的歌单,几百万的,几千万,甚至是每天几亿的流水,如果有在商场卖过东西的人一定有这种体会,什么样子的搭配是经常出现的,一个老道的销售人员就是被每天的流水给磨练出来的,买烟的人,配一个打火机应该是个常见的搭配,每天烟和打火机一起结账的情景不断的锻炼着一个销售人员,那么从中也可以获取有用的信息.so,thats create a super Music editor也就是说把每天的音乐流水给我们创造出来的超级音乐编辑看,看看他能记住什么.用神经网络的方法就可以来制作这个东西了.我们构造一个神经网络,所有的人都在对他进行训练,神经网络就像一个结账人员,把所有人的歌单都看在眼里,经常一起出现的音乐,就会触动那根特殊的神经,并进行强化,那么当你听取了几首歌之后,我们的超级编辑就会根据你触动的神经,推荐同样触动了这些神经的歌曲啦~具体网易用到哪些算法,我也看不出来,不过我想万变不离其宗吧
我们肯定用的不是同一个软件,每天早上打开看一眼推荐歌单,然后默默地自己去找歌单听了。。。。
小明养了一条狗,此为背景。推荐算法1:小明喜欢吃肉,狗喜欢吃肉。但狗还喜欢吃屎。此时,系统要不要把屎推荐给小明呢?推荐算法2:狗买了肉,还买了屎。接着,小明买了肉,此时系统发现,买了肉的狗,还买了屎。此时,系统要不要把屎推荐给小明?推荐算法3:狗买了屎。由于狗住在小明房子里,和小明是同一个IP。小明购物时,系统发现这个IP曾经买过屎,因此,系统要不要把屎推荐给小明?推荐算法4:狗的电脑坏了,借用小明的账号买了屎。从此以后,小明浏览的网页中,只要包含某宝或某东的广告时,就会发现这些广告都在一个劲儿地推荐屎。呵呵。最喜欢给这些自以为是耍小聪明的所谓算法、数据挖掘们打脸了,小脸们被打地啪啪响。
呵呵,我就是那种机器猜不中啊,好寂寞怎么办
同时用虾米和网云的重度使用者表示,虾米的推荐才叫厉害!网云的基本没多少喜欢的。
算法啥的我不懂,所以这方面还请大神解答。
讲点自己的体验:市面上一些主流的播放软件大多数都陆陆续续地用过,排除那些个XX音乐还有前面某些童鞋说的落网,我个人觉得知乎上现在用的主流音乐软件是以下三个:
网易云,豆瓣,虾米
这三者都有所谓的推荐歌单功能,根据我个人的主观体验,豆瓣的算法最粗,应该是按照音乐里的大类来进行推荐的,比如我听了一首董小姐,豆瓣会有一定的几率推荐我听在人民广场吃炸鸡,但是这两者风格又相差很大,但是由于都被分在了民谣之下,所以。。。
民谣还好但是摇滚就差太多了。________________________________________________________________虾米的每日推荐歌单系列是我个人比较喜欢的【终于露出主观婊的本质了呵呵呵】,其实不难看出,虾米也是按照类的相似度来进行计算然后推荐歌给你的,但虾米的类会分的细致的多,然后再加上你喜欢的歌手的所属大类,【具体的肯定还要复杂的多】比如我听了一首wonderwall,它就会给我推荐一系列的OASIS,BLUR,PULP等英伦摇滚分类下的歌,如果我再听了一些JB,也许下次我会听到COLDPLAY【这样黑真的好么。。我只是开个玩笑大家不要当真】。
有时候它也会给我带来一些惊喜,比如去年在虾米不经意的听到了八哥的嗓音,然后就欲罢不能啊嗷嗷嗷,总之在虾米每次推荐的歌单里我都能发现一点小惊喜。
BUT虾米的随机推荐有一个硬伤就是每次打开的都不一样啊,真的是随机的!!有时候手一滑等待你的又是新的一份歌单啊有木有!!对于我这种手滑党真是一件忧伤的事啊,工程师请听到我的声音好嘛!
【这特么写的都像虾米的软文了,欢迎支付宝】—————————————————————————————————————
下面说网易云。用网易云的时间短,也就大半年左右的时间。
我和网易云邂逅的经历是这样的:年初的时候我入了一个IPAD,然后想找一个APP听歌,然后我理所当然的想到了虾米,但是虾米没有ipad客户端啊,用XX音乐什么的又觉得太low【装B遭雷劈啊】,然后我的眼神又不经意的落在了去年音乐节顺回来的网易云徽章上,然后又想起了丁磊养猪的新闻。。【泥垢了】总之,我最后在平板上成功的装上了网易云。
都说了这么多废话了,我直接跳到网易云推荐的歌单部分吧。网易云每日推荐的歌单数量不多,但是刚好,不会产生听太多听腻的感觉,每天就只有20几首哦,听完了就没有了哦,赶快来听哦╭(╯ε╰)╮
而另两个则是想听多少听多少。
另外来谈谈听感。网易的歌单我觉得是最保守的,之所以有人会觉得网易云推荐的歌单非常准,那是因为这个歌单里有一大半都是你自己最近刚听过的歌,只不过换了这个歌手的另一首歌给你,就比如我自己最近常听小鼓,第二天网易云的歌单里就会有25%小鼓的歌,然后剩下的是你再往前一段时日里被标的喜欢歌手的类似,再加上些你自己也不知道什么时候标记的红心歌曲,然后剩下的是一些一般普通人都不会特别讨厌的打榜热歌,比如I'm yours 之类的大神曲儿。。所以你说这样的一份歌单能不对你胃口嘛?
当然了,从听感来说这份歌单还是很舒服的,但是局限性也是同样不可避免的。
但是网易云在人性化这方面做的还是很不错的,一些小编做的专题(在这里私心推荐下空虚小编,萌萌哒的妹纸),音乐人的专访,包括资源的更新及时度和稀有度【李志的脑残粉你们都懂的,但是现在虾米也有李志了。。另外我还在网易找到过蔣勋的全集,这个是其他网站都没有的,我很喜欢】,UI的美观度等等,都足以使我对网易云的好感不断上升。。
但是从个性化歌单本身来说,网易云在这块做的并不够好。
【当然也可能是我听的歌不够多╭(╯^╰)╮】
纯属个人感受,
答的有点偏题,看心情更新【主要是一些证据更新,包括歌单截图等】
另外看在我手机打了那么多字的份上给个赞好么【暴露骗赞党本质】,么么哒╭(╯ε╰)╮以上
与题无关网易豆瓣的都试过,不行。尤其是网易,用了半年后第一次试私人电台就推了一首我最最最讨厌的韩语歌,迅速跳过,没想到网易很不死心地又来了四首韩语歌,之后就再也没用过了。其实国外有开放api的推荐算法,
spotify的radio功能应该就是用的它的数据。最厉害的还是pandora,在那里听歌几乎是不用切歌的,听一天都没问题,拿个小本子刷刷刷地记歌名就行。lastfm的数据是最强大的,但是推荐反而比不上前两个,现在也消亡了。怎么弄的完全不懂,估计也不会让外人弄懂。
某天一打开就给我推荐了【脑残游记】这首歌,我也好想好想问一下程序员匹配的是什么字段
这个背后有个多大的团队在推送啊,能是简单一两句能说清楚网易云音乐也不会异军突起了!!!
不谈算法,找个轻松的思路,把握住听音乐过程中的 人,歌单,歌曲,歌手 这几个实体基本上就能了解这几个推荐位的推荐逻辑了。这个临时找的二部图可以代表用户和音乐(用户和歌手,或歌单和歌曲等简单关系)的关系,可以扩展往右扩展。最直接的推荐就是通过和你有共同相连节点来扩展你可能的感兴趣的歌曲了。在推荐系统的初期中,实体 就够用。可以看到 下面三个推荐位置就是寻找相似歌单(根据包含歌曲就ok了)。每日推荐就是根据你最近播放偏好从用户-歌手,歌手-歌曲,歌曲-歌曲等二部图中找到相关的就ok啦。上面的fm,显然是每日推荐坑位不够咯,可以给重度用户更多的推荐增加惊喜。
不知道你是听什么歌的,我就是不满意它的听歌识曲和推荐才果断主用虾米的。
梦梦不那么梦梦:
我觉得这算法不科学我一个喜欢李志的 你给我推送马啪啪和好妹妹?
ocean Jin:
提出这个算法的应用的professor在 我们学校数学系,200几年提出的,其实上述答主的算法核心就是很简单的矩阵运算一点都不高打上,大家不要被忽悠,上课老师讲了一会大家都懂了。用的就是这本书只是想到这个应用场景比较牛逼,而且大多数的高票答案都直说了一点点,根本没说全。降维的比如无解方程的最优解这个算法只是数据处理的第一步后头还有好多步骤。这个算法只是数据处理的第一步后头还有好多步骤。while我也不会后面的步骤,只是听老师说故事了。================================professor说过,当时有家公司,我忘了是那一家 设置了奖金 100w 美金,哪个研究小组或者个人能提供最好的数据算法,就是类似淘宝推荐商品, 云音乐推荐歌曲,可以拿到100万美金,几乎所有的人都想到用这个算法开头。可是这真的只是第一步,后面还有好多很玛法的东西,总之最后有三个研究组被选中,好像是3;3;4 分的100w美金。professor那个组拿到了30w。这个算法巨复杂无比,光是有解没解,啥时候用最优解,单列数据量不够大咋办,数据量太大,矩阵过大必须降维,如何处理小数,blabla一大坨,不过具体方法是啥professor没讲,光是吹牛了。
作为同样是音频行业搞精准化的产品经理,稍微帮你理一下推荐歌单简单的相关推荐思路,理论上简单复现不难。首先是精准化推荐的几个数据前提:1.网易收集了用户每日播放的声音记录。2.网易收集了用户关注的用户、点赞、评论、下载的声音、分享的声音/歌单、收藏的歌单。3.用户在网易云音乐上有持续行为,网易数据团队背后有模型计算你对歌曲和歌单的评价值。4.网易的歌曲属于一个或多个歌单然后是精准推荐的几个基础方法,下面只指出歌单推荐的可行方法:1.contend-based,基于内容的推荐。这个比较简单,每首歌单拥有语种、场景、风格、情感、主题多种tag,如果你仔细观察的话,会发现基本上网易推送给你的歌单或者推荐歌单都有1个或者多个tag;利用你平时对歌单的播放倾向性、收藏歌单倾向性不难获得你对特定几个tag的倾向性,这种情况下推荐特定几个tag或者组合的歌单基本都能满足你基本需求。实际上这种偏向性也可以成为你用户标签的基础。在新闻领域运用tf-idf弄出文章关键词然后给你推荐其实也是类似的方法,当然背后还有词义间的关系算法。实际上,包含的声音所属的专辑的tag,歌手的tag也可以一并继承使用。这套实际也就是国外pandora用的打标签推荐方法。2.协同过滤亚马逊和电商用滥的方法了,item-based,利用用户收听歌单的行为计算歌单之间的相似度,推荐给你你喜欢的歌单相似的歌单 / user-based, 利用用户收听歌单行为计算用户之间的相似度,推荐给你和你相似的用户喜欢的歌单3.利用用户数据进行用户分群和内容分群,然后对于初始用户利用决策树,提供几个歌曲进行口味调试,自动将你划定到预定的几个分类群去,然后按照分类群的用户风格进行推送。4.利用喜欢歌曲、收藏歌手与歌单的关系进行相关推荐,比较简单粗暴的方法。歌单中包含了你喜欢的歌曲,同时有一部分你没听过的歌曲,由于歌单是用户按照某种逻辑编辑在一起的,其可能符合你的要求。简单抛砖引玉而已,如有错误请不吝指出精准化推荐不是单纯的技术问题,需要一直进行产品迭代。像网易私人FM、每日推荐歌曲实际都属于精准化推荐产品,但是背后的逻辑处理其实是基于一些基础算法基础上的不断调整。实际技术开发重点和体验重点都有所不同。相对而言,机器推荐的歌曲还是要基于用户本身的行为为基础。在这种情况下,如果你属于大量收听广泛类型的内容,和你类似的用户太少,你喜欢听的内容太小众,都有可能使得推荐出来的东西不怎么符合你口味。在这种情况下,鼓励大家过段从索取者向分享者转化,你可能就是你代表的用户的推荐的基础数据源啊!
看广告费吧
今天网易云音乐给我推荐了降央卓玛,郑源,乌兰托娅,韩红的歌曲,我听了感觉都挺好的。这些歌手在我眼中并不高贵冷艳,因此以前我是肯定不会主动去听的。看来网易云音乐比我更了解我啊。
给歌打标签,给用户打标签,然后匹配就好
浪味没有仙:
我就想问问客服 我就是收藏了一个 贴膜歌为什么之后给我推荐的歌单 都如此多娇让我不禁跟着音乐 扭动摇摆了起来贴 贴 贴膜boy
热歌榜最基本的马太效应都没有消除,“see you again”起码在前三名排了4个月,听的想吐做的这样糙,还有脸搞个毛的推荐算法
我第一次开始使用云音乐完全是因为他们的UI,后来真心觉得这不只是一款好看的APP,也是一款真心好用的APP。。。再次印证了网易在精品APP方面的实力。。。。(我不是相关利益者,只是一个手机重度患者而已)
想多了各位。。。你平时听的大多数歌在“蓝调”标签下,推荐给你的曲目也大多来自“蓝调”,而不是复杂的运算推断你的爱好范围。楼上数据党们都读书读傻了么
前几天组内分享,碰巧轮到在网易云音乐做推荐算法的同学。听了分享后,我的感受是,网易云音乐的推荐算法虽然和其他各种FM有类似之处,但是仍然有几个地方做的很有想象力。1. 冷启动如果你使用微博账号登陆的,将会从你的微博信息为你生成个性化的初始歌单,让你有种眼前一亮的感觉。因此初期口碑极好,极大地降低了用户获取成本。2. 歌单的设计用户喜欢一个口味歌曲,是否就要一个劲的拼命给用户只推送这种歌曲?网易云音乐的歌单推荐采取了更加温和、适度的做法。第一,歌单长度至多二十首,求精不求多;第二,在保证音乐口味方向大体一致的前提下,将各种风格上略有不同的歌曲合理组合,和春晚的节目编排是一个道理,不单调的组合可以有效降低用户对于节目的厌烦感。3. 推荐理由在个性化推荐区域,都会有“根据根据你喜欢的单曲XXX推荐”的字样。据说在算法、数据都不变的情况下,只是加上这一行理由说明,就可以让用户留存率提高10%。写的这些似乎和算法没什么关系,不过一个好的推荐系统大体是4/3/2/1的分配,4分在UI,3分在产品设计,2分在数据质量,1分在算法。以上。
试试 Pandora 你会发现神奇的世界,连广告都那么耐听。
我压根没关注网易云音乐,偏偏在知乎经常能看到网易云音乐的软广告。
目前最高的答案把协同过滤推荐算法倒是说得很多。但是!!作为科普,只把推荐算法中的一种讲那么多,又不够浅显,搞得外行看得似是而非又不明觉厉,内行看得有失偏颇又啰里啰嗦……真是简直了∑(O_O;) 我试着说得简单一点。推荐系统可以粗暴地分为两大问题:1.依据什么原理推荐;2.这种原理要怎么来算(这部分主要就是解决效率和精确度了)对第一个问题,以云音乐的应用情境来说,可能的有:1. 您的口味和用户{Ui}是相似的,用户{Ui}喜欢而您没播放过的,可推荐;(第一的答案就拆这儿了)2. 歌曲X和歌曲{Si}是相似的,您喜欢X,未播放的{Si}可推荐;3. 您喜欢某歌手,某歌手类别下评价高,且未播放过的可推荐;4. 您喜欢New Age类型音乐,一般喜欢NewAge的会同样喜欢民谣,民谣类下评价高且未播放过的可推荐……………还有其他类似的很多想法,可以开脑洞发挥,具体云音乐用的是哪些,不一定。这时就会涉及到很多具体问题了,怎么「定义」用户的喜好;怎么衡量两个用户的喜好是相似的(第一个答案只讲了一种计算方式Orz);怎么确定喜欢类型A的就能喜欢类型B…………随便哪一个小问题拆开了都是一篇论文_(:з」∠)_临近考试木时间再展开了,希望能有更好的回答。这样讲有没有比较易懂&全面ヽ(???)?(大雾)( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)
玻尔兹曼脑:
看到有很多人大笔墨在写这个算法如何如何,我就想说,自己去百度,四个字,协同过滤。
我也给小编发了私信,一个建议,可是没人回复。郁闷
软文吧我错了,这两天因为好奇,也因为抱着人是善良的观点,尝试了网易云音乐,尼玛,打脸了,推荐的歌曲 确实 比豆瓣,虾米什么的要更适合我的口味,关键我才收藏了10首歌曲,这个学习推荐的效果 明显 是目前音乐app中用过的最好的题主,我错了求大号,我关注你
Sugr宋少鹏:
很多互联网音乐产品都是科技圈的产品经理在做,网易云音乐是音乐圈资深人才主导的,出品自然不同。Enjoy it!
一步错步步错,心血来潮下载一个纯音乐,然后就无穷无尽得推送冷门得纯音乐,感觉我佛网易云音乐已经被我玩坏了
常用的三个:规则推荐模型(代表:Apriori算法)、协同过滤模型(代表:K最近邻居算法)还有基于内容的推荐(即根据标签呀、类目呀、属性呀 BALALALA)。赞同最多的那个说的是协同过滤。上面三个展开一种就很长,然后我也不甚了解。如果你想去感受推荐系统,去Amazon和Netflix注册账户,玩玩就了然了
谢邀( 是我加的特效)先说结论:1.找准用户方向(算法支持);2.人工建立推荐库(人为操作)-----------以下正文----------网易云音乐最近越来越受到大众的追捧,众人纷纷表示“私人fm推荐的音乐十分好听”——我也这样认为=_=那为什么推荐的音乐能如此牛逼?首先最重要的应该是对用户行为进行分析的算法。我个人不太了解算法,不过看了大神们的解答后,发现潜在因子,相似度矩阵,多维空间定位,这三种算法似乎都符合网易所需。但无论如何,网易云在最后所需要得出的结论是“A用户喜欢X,Y,Z类音乐”(插,个人猜测网易云里面没有“不喜欢某某”这个算法,解决办法是放大“喜欢某某”的效果)在这之后,到推荐的环节了。对所有歌曲进行一个分类,用户A喜欢X类就推荐X类音乐?我喜欢民谣,你难道第一首就推荐《咬x歌》给我,这样真的好吗,对吧对吧大神们(-_-?)要这样,网易根本不能让微信封杀它,评论平台也只能是下一个“黄易”。怎么办?怎么推荐好歌曲?网易应该用的是最原始但最有效的方法——人为建立推荐库。首先人为找出真正的好歌,对歌曲进行分类,用的应该是层次分析法(Analytic Hierarchy Process)(例子:《Sad Angel》大分类属于X=抒情类,Y=纯音乐,细分类x=节奏型,y=钢琴)最后通过权重对A用户的推荐曲目进行分配。各种算法都不是我知道的东西啊各位大爷,饶了我吧(逃…找证据了哟:在你玩网易云音乐一段时间后,你可以在评论区发现如下的评论。只要你随便逛逛私人fm或每日推荐,都可以发现踪迹。网易云建立前期到开放公测这个阶段大多数是旋律吸引人的,偏向“文艺范”,rock类只放经典,电音少,节奏类音乐为钢琴加鼓点的经典组合,绝大多数是符合大众口味的曲子;公测一段时间后,用户开始稳定增长时,开始推荐民谣类音乐,以此让用户有一种“高大上”的感觉,符合用户的价值需求。虽然是臆测,但还是觉得网易好厉害。注:1.本答案的关注点在于网易云音乐推荐库的问题,并不是实打实的算法。2.权重分析方面的答案已十分完善,这里就不贴了。(其实是贴不了好吗!知乎你的客户端能再牛逼一点不!加不了highlight,引用不了文字……唉,算了)3.其实嘛,我写好这篇东西已经有两三个月了,只不过我一直以为我已经把它放上了知乎……4.谢谢。
电脑借弟弟玩了一下午,然后它就天天给我推荐tfboys的歌,直到我拉黑了tfboys所有的歌,这场噩梦才结束
反正我是不敢胡乱收藏歌曲了
ling alba:
要哭了,题主您那是多年调教的结果吧?虾米豆瓣多年调教也能这样!不信…您重开一个网易云账号新调教一回昂?自从虾米转网易云,天天在纠结推荐歌单…今天我喜欢了一首啥歌,明天推荐歌单全变成那个类型(*≧m≦*)明明我已经喜欢了三个类型的歌总共达到了三十多首,还是喜欢啥新歌全部出啥推荐歌单(*≧m≦*)推荐歌单就不能出个“更多”咩,三个位置明显不够啊!推荐歌曲风格是乱的,不过所有播放器都是乱的…强迫症没救。
额,排名第一的答案有些不对吧,Collaborative Filtering并非来自Amazon,而是Tapestry,之后被用在GroupLens上。Amazon提出的算法是item-to-item()。其本质就是把原来协同过滤算法的“用户-项目”评分矩阵简单地表示成0-1矩阵,即买了就是1,没买就是0,然后再用余弦相似度计算项目之间的相似度。
那么问题来了,面对数百万的用户,逐一比较他们向量的夹角效率也太低了吧。。如何建立索引来快速寻找夹角相近的向量呢?
人气最高的答案说的也太浅显了,只能给小白做做科普,真实情况下根本不适用。工业界的推荐系统,有规则有模型,更少不了人工。至于具体怎么做的,用了什么模型和策略,只能坐等内部人士来答疑解惑了。
兰佩路基鲁鲁修:
先提一句,我分析的推荐是“私人fm”功能
首先,作为一个所谓逼格较高(也就是爱听外国各类摇滚)的中二病患者,在使用私人fm时,网易云简直抓住了我的心,各种coldplay、fall out boy、nightwish这些给我推荐,顺带还有一些比较热门的英文歌曲,比如“what are words”、“free loop”这类大多数人耳熟能详,却不知道歌名的歌,还有便是一些类似国内民谣或者小众音乐团队(比如万青、扭机、丢过车这些)
这些歌对于我这种自视“逼格”甚高的人来说简直不可抵抗,再看到底下999+的评论,瞬间觉得屌爆了,自己很有品位……
网易云大法好啊,推荐的全是我爱的
直到有一天我把他推荐给基友……
基友只用电脑端,电脑上也没有本地歌曲,没有登帐号,从来都是打游戏时打开私人fm听,也不切歌,都等他直接放完
然后,我就发现他这种完全没有任何分析算法条件的私人fm和我的私人fm相似度挺高的……
然后我才发现,私人fm最爱推荐的就是评论999+的英文歌,因为很多人听英文歌听了之后都不知道名字,然后突然在网易云又听到了,瞬间就会觉得网易云屌爆了,根据自己的口味推荐了这些曾经爱过的歌。
实际上只是一个穷举罢了
我喜欢猫,所以我爱吃鱼。哦酱。
我喜欢猫,所以我爱吃鱼。哦酱。
推荐一本书,吴军博士的数学之美,看完就知道billboard和amazon是怎么自动分类信息和推送消息的
跟云音乐的内置的音乐圈里的曲库君聊天她会很认真回复你的… 这么认真的软件想推荐几个你喜欢听的歌还不容易?
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动}

我要回帖

更多关于 随机算法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信