Spotify是全球最大的正版流媒体音乐服务平台,2008年10月在瑞典首都斯德哥尔摩正式上线。Spotify提供的服务分为免费和付费两种,免费用户在使用Spotify的服务时将被插播一定的广告。而付费用户则没有广告,且可以拥有更好的音质,在移动设备上使用时也可以拥有所有的功能。截止到2015年6月,Spotify已经拥有超过7500万的用户,其中1500万为付费用户。 每个周一,7500万Spotify用户都会收到了一卷新的混音带,这是由Spotify的Discover Weekly通过算法每周向用户专门推荐的播放列表,里面包含了30首歌曲,它带来了非常好的用户体验,感觉像是一个爱好音乐的朋友专门送给用户的礼物。 自动音乐推荐已经不是什么新鲜事,但Spotify似乎可以让用户对个性化推荐的播放列表同时感到新鲜和熟悉。Spotify的这项服务得到了用户广泛欢迎。根据Spotify的消息,自从去年6月份Discover Weekly悄然推出之后,播放列表中的歌曲被播放过17亿次。 下面将对这个过程进行简单的介绍:
Discover Weekly的主要组成部分来自于所有用户。 Spotify首先查看用户创建的20亿个播放列表,每一个列表都反映了用户的偏好。这些用户对于歌曲的选择和分组形成了Discover Weekly推荐的核心。
但Discover Weekly为用户推荐的播放列表要更为复杂。 Spotify针对每个用户的音乐品味,为每个用户创建了一个profile,按照艺术家和音乐流派的不同进行分类,不仅仅是划分为常见的“摇滚”和“说唱”,而是更细粒度的,如“合成器流行乐”和“南方灵魂乐”等等,这些可以通过Echo Nest的技术进行分析,Echo Nest是Spotify在2014年收购的一家音乐分析公司,它通过机器读取音乐网站从而了解到新的专辑,并对音乐进行进一步分析。 用户可能不知道什么是「流行pop」或者其他类型的流派,但Spotify根据用户自己的Spotify收听数据,会告诉用户你原来是一个流行pop音乐的粉丝。
通过Spotify 的算法可以建立20亿个播放列表的数据与用户个人口味之间的联系。 Spotify的工程师在今年早些时候的一个报告中分享了许多的技术细节。他们的方法包括:协同过滤,例如在亚马逊中经常见到的功能“客户谁买了这个item也会买……”,以及自然语言处理,Echo Nest是如何理解音乐博客和播放列表的标题的。公司采用开源软件Kafka来对数据实施实时管理。
Spotify采用了深度学习技术,深度学习是可用于海量数据分析的机器学习技术,能够大大提高Discover Weekly的推荐水平。这项工作由Sander Dieleman构建,Dieleman曾是Spotify的实习生,现在是谷歌的AI子公司DeepMind的研究科学家。 Discover Weekly的首席工程师Edward Newett表示,「我们已经用深度学习和神经网络试验了不同的方法,并且这是Discover Weekly中最重要的功能之一」。
关于Spotify采用深度学习进行音乐推荐的方法,Dieleman和他的同事Aron van den Oord一起在NIPS2013上发表了一篇关于这个推荐系统的文章,题为“Deep content-based music recommendation”。他们试图使用音频信号,通过训练一个回归模型来预测歌曲的隐特征表示,从而解决用户收听偏好预测问题。通过这种方式,即使没有用户行为数据可用,也可以在一个协同过滤空间中预测一首歌曲的特征表示。 这种方法的基本想法是,通过协同过滤模型将用户和歌曲投影到一个共享的低维隐空间中。一首歌曲在空间中的位置编码了所有反映用户偏好的信息。如果两首歌曲在空间中非常靠近,它们可能非常相似。如果一首歌曲与另一个用户非常接近,它对于用户来说可能是个好的推荐(只要他们以前没有听过)。通过分析音频预测一首歌曲在空间中的位置,就能够选择合适的歌曲推荐给一个正确的听众,而不依赖于用户的历史行为数据。 通过使用t-SNE算法可以将模型的预测结果投影到一个低至二维的隐空间中,这个过程的形式化如下图。正如图中看到的结果,相似的歌曲会聚类在一起。Rap音乐主要集中在左上角,然而电子乐歌手主要聚集在底部。 Dieleman表示选择处理这个问题的主要原因是:他相信音乐音频信号的推荐是一个极其复杂的问题,需要很多层次的抽象才有可能实现。他希望网络的连续层次能够逐渐学习到更复杂和不变的特征,以便更好地用于图像分类任务。 Spotify在它们的推荐流水线中已经使用了一堆不同的信息源和算法,Dieleman表示,他的工作的最直接的应用是将它作为一种额外的信息。然而,它也可以被其他算法用来过滤掉推荐中的离群值。例如,协同过滤算法的推荐结果中往往会包括开场曲目,尾奏曲目,翻唱歌曲和混音作品。这些都可以通过使用基于音频的方法被有效过滤掉。 如果你对深度学习、特征学习以及它们在音乐推荐中的应用感兴趣,可以查看得Dieleman的research page,上面有Dieleman在这个领域中所做的一些主要工作。如果你还对Spotify的音乐推荐方法有兴趣,还可以查阅Erik Bernhardsson博客。
Adam Pasick说到,正如许多Spotify Discover用户所表示的,推荐的结果经常让人感觉很神奇,Spotify是如何将上世纪90年代的摇滚乐队Dinosaur Jr. landed 的歌曲加入到播放列表中的? 「我最喜欢的事情之一就是Discover Weekly的怪异」,Ogle表示, 「我们可以建立这样庞大的系统,它提取了数以百万计的用户喜好,自动为用户进行音乐推荐,不需要专门通过人力来解决」。 每周的用户播放列表都不相同,大概反映了用户变化的移动音乐喜好。在一个典型的有30首歌曲的Discover Weekly播放列表中,用户会找到大约15首歌是很喜欢的,10首歌觉得很普通,4首歌是完全不会听,1首是非常痴迷的。 Pasick说到,最近有一天,他到了他最喜欢的一间咖啡馆,音响中传来了非常熟悉的声音。录音带上的许多曲目都是Spotify通过算法为Pasick推荐的,但咖啡馆的音乐都来自于一名乐队乐手Homero的Discover Weekly播放列表,但Homero不在自己的乐队中的时候,会兼职作为一名咖啡师。 Pasick很好奇,Homero和他是怎么得到同样的歌曲列表的?是从20亿个播放列表中,是通过复杂的算法为他俩过滤出相同的结果的吗?Spotify的人工编辑会干预这个过程吗? 有人会说,「哦,我们三个人从Discover Weekly得到了相同的推荐列表,这个列表是有人把它放那的吗?」。 Ogle表示,「答案是肯定的,当其他的Spotify用户在建立自己的播放列表,意味着全世界有很多人由于跟他有相同的音乐文化,就会有相同的播放列表」。 他说,尽管艺术家和他们的唱片公司一再要求,Spotify还是没有使用特定歌曲去刻意建立一个个的播放列表。
Pasick说到,当你在听其他人的Discover Weekly播放列表的时候会感觉有些神奇,就像他那天在咖啡馆遇到的情况一样,这种感觉就好像在哄骗其他的Spotify用户与人分享他们的播放列表。这有点像进行了一个短暂的旅行,既像地理上的,又像是在别人脑海中的。 「当我年轻的时候,经常会有这样的事情,回家后打开CD机,通过所听音乐,发现自己真实的存在」 ,工程师Newett说到,「但现在,你可能会意识到,你曾经以为你是独自一个人在世界上,但现在会感觉不一样,你会发现世界上存在那么一些,至少在音乐爱好上跟你一样」。
目前,Discover Weekly并不完美。Pasick说,他的播放列表中通常包含一两首歌曲是他绝对喜欢的(Dengue Fever 的“Tiger Phone Card”,以及Mar Superstar 的“Lady You Shot Me”),有一半是非常喜欢的(Gregory Porter 的“1960 What?”),还有几个讨厌的歌手(为什么我总是收到这么多Neil Diamond的歌曲?)。 为了确保从Discovery Weekly中获得最喜欢的歌曲,用户可以如何微调他们的结果呢?除了来自其它重要的Spotify用户的一些提示,Spotify还给出一些建议,从非常简单到非常复杂的都有,包括:
大数据杂谈 ID:BigdataTina2016
专注大数据和机器学习, 分享前沿技术,交流深度思考。 关注加入社区! 本文转载自:微信公众账号 - 大数据杂谈,版权归原作者所有! |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|