首页 存档 技术 查看内容

如何像Spotify一样优雅地向用户推荐个性歌曲?

2018-3-30 13:00 |来自: 互联网 576 0

摘要: Discover Weekly究竟为何能让用户「中毒」般地喜爱,本文将介绍Spotify这一特色功能的算法,体会个性化推荐歌单的神奇之处。 Spotify是全球最大的正版流媒体音乐服务平台,2008年10月在瑞典首都斯德哥尔摩正式上线。 ...

Discover Weekly究竟为何能让用户「中毒」般地喜爱,本文将介绍Spotify这一特色功能的算法,体会个性化推荐歌单的神奇之处。


Spotify是全球最大的正版流媒体音乐服务平台,2008年10月在瑞典首都斯德哥尔摩正式上线。Spotify提供的服务分为免费和付费两种,免费用户在使用Spotify的服务时将被插播一定的广告。而付费用户则没有广告,且可以拥有更好的音质,在移动设备上使用时也可以拥有所有的功能。截止到2015年6月,Spotify已经拥有超过7500万的用户,其中1500万为付费用户。

每个周一,7500万Spotify用户都会收到了一卷新的混音带,这是由Spotify的Discover Weekly通过算法每周向用户专门推荐的播放列表,里面包含了30首歌曲,它带来了非常好的用户体验,感觉像是一个爱好音乐的朋友专门送给用户的礼物

自动音乐推荐已经不是什么新鲜事,但Spotify似乎可以让用户对个性化推荐的播放列表同时感到新鲜和熟悉。Spotify的这项服务得到了用户广泛欢迎。根据Spotify的消息,自从去年6月份Discover Weekly悄然推出之后,播放列表中的歌曲被播放过17亿次。

下面将对这个过程进行简单的介绍:

1、收集所有用户的播放列表

Discover Weekly的主要组成部分来自于所有用户。 Spotify首先查看用户创建的20亿个播放列表,每一个列表都反映了用户的偏好。这些用户对于歌曲的选择和分组形成了Discover Weekly推荐的核心。

2、发现用户自己的收听口味

但Discover Weekly为用户推荐的播放列表要更为复杂。 Spotify针对每个用户的音乐品味,为每个用户创建了一个profile,按照艺术家和音乐流派的不同进行分类,不仅仅是划分为常见的“摇滚”和“说唱”,而是更细粒度的,如“合成器流行乐”和“南方灵魂乐”等等,这些可以通过Echo Nest的技术进行分析,Echo Nest是Spotify在2014年收购的一家音乐分析公司,它通过机器读取音乐网站从而了解到新的专辑,并对音乐进行进一步分析。

用户可能不知道什么是「流行pop」或者其他类型的流派,但Spotify根据用户自己的Spotify收听数据,会告诉用户你原来是一个流行pop音乐的粉丝。

3、通过算法进行集成

通过Spotify 的算法可以建立20亿个播放列表的数据与用户个人口味之间的联系。

Spotify的工程师在今年早些时候的一个报告中分享了许多的技术细节。他们的方法包括:协同过滤,例如在亚马逊中经常见到的功能“客户谁买了这个item也会买……”,以及自然语言处理,Echo Nest是如何理解音乐博客和播放列表的标题的。公司采用开源软件Kafka来对数据实施实时管理。

4、寻找适合用户的音乐

Spotify采用了深度学习技术,深度学习是可用于海量数据分析的机器学习技术,能够大大提高Discover Weekly的推荐水平。这项工作由Sander Dieleman构建,Dieleman曾是Spotify的实习生,现在是谷歌的AI子公司DeepMind的研究科学家。

Discover Weekly的首席工程师Edward Newett表示,「我们已经用深度学习和神经网络试验了不同的方法,并且这是Discover Weekly中最重要的功能之一」。

5、用深度学习预测用户收听兴趣

关于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博客。

6、有点神奇的个性化

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还是没有使用特定歌曲去刻意建立一个个的播放列表。

7、深入别人脑海的旅行

Pasick说到,当你在听其他人的Discover Weekly播放列表的时候会感觉有些神奇,就像他那天在咖啡馆遇到的情况一样,这种感觉就好像在哄骗其他的Spotify用户与人分享他们的播放列表。这有点像进行了一个短暂的旅行,既像地理上的,又像是在别人脑海中的。

「当我年轻的时候,经常会有这样的事情,回家后打开CD机,通过所听音乐,发现自己真实的存在」 ,工程师Newett说到,「但现在,你可能会意识到,你曾经以为你是独自一个人在世界上,但现在会感觉不一样,你会发现世界上存在那么一些,至少在音乐爱好上跟你一样」。

8、使用Discover Weekly的专业技巧

目前,Discover Weekly并不完美。Pasick说,他的播放列表中通常包含一两首歌曲是他绝对喜欢的(Dengue Fever 的“Tiger Phone Card”,以及Mar Superstar 的“Lady You Shot Me”),有一半是非常喜欢的(Gregory Porter 的“1960 What?”),还有几个讨厌的歌手(为什么我总是收到这么多Neil Diamond的歌曲?)。

为了确保从Discovery Weekly中获得最喜欢的歌曲,用户可以如何微调他们的结果呢?除了来自其它重要的Spotify用户的一些提示,Spotify还给出一些建议,从非常简单到非常复杂的都有,包括:

  • 添加你喜欢的歌曲到播放列表或Spotify库。如果你保存一首歌曲到你的播放列表或到Spotify库,然后开始定期地调整它,它会真正影响Spotify对你的理解」,Ogle表示。

  • 跳过你不喜欢的歌曲。如果一首歌曲在前30秒内就被用户pass掉了,Discover Weekly算法将给这首歌曲和相应的歌手一个「thumbs-down」。

  • 听听新的歌手和他们的音乐。「如果我们给你推荐一些东西,你通过点击歌手,开始查看他们的唱片,并同时加入到播放列表中」,Ogle说,「你在Discover Weekly之外浏览得越多,就越有可能影响我们为你做的推荐」。

  • 耐心一点。该算法在设计中会忽略新的收听行为中一些迅速地、突然出现的峰值,因为许多人分享他们的Spotify登录,因此任何新的收听活动可能不会导致你的播放列表的立刻变化。

  • 如果你不想Spotify注意到你的行为,可以使用「私密模式」。Newett
    表示,「也许你不想让别人知道你的偏好,我们会按照这种『私密模式』,而不跟踪你的曲目播放」。Spotify会忽视你在Discovery Weekly中收听的歌曲。「同时,我们还有一些担忧,比如,如果我只听DiscoveryWeekly,会不会出现蛇吞尾巴的现象?」,Newett说。

  • 将一些歌曲风格过滤掉。Ogle说,Spotify确实对哪些用户可能想要哪些歌曲做了一些编辑决策,因此有年幼小孩的父母不会从The Wiggles获得一百万首歌曲,圣诞歌曲在12月25日之后将大大消失,在大多数情况下,我们试图为它们设置一个护栏,但同时也不是绝对的,因为Spotify保留了用户作为人的自主权利,我们应该尽量尊重。

  • 音乐心灵感应的实验。为了更加深入了解Spotify的推荐,最好的方式是收听其他人的Discovery Weekly播放列表。有一个很有品位的朋友吗?问他分享一个他的播放列表的链接。默认情况下是专有的,但能够被用户分享。

  • 用IFTTT保存weekly播放列表。Discover Weekly的一个缺点是,播放列表每周一会被擦拭干净。你可以手动地将歌曲保存到另一个播放列表中,也可以使用免费的IFTTT服务自动保存你的weekly播放列表到一个单独的存档播放列表。

  • 使用Spotify的「广播」功能。如果你想听到一些新的声音,并且绝对不能等到周一,右击Discovery Weekly,选择「Start Playlist Radio」,Discovery Weekly服务将按照你的weekly播放列表,尽最大努力提供一个与其相似的无穷列表。

大数据杂谈

ID:BigdataTina2016


▲长按二维码识别关注

专注大数据和机器学习,

分享前沿技术,交流深度思考。

关注加入社区!

本文转载自:微信公众账号 - 大数据杂谈,版权归原作者所有!

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部