Spotify算法

Spotify有什么有趣的地方? Spotify一直是音乐行业变革浪潮的一部分,该浪潮极大地影响了人们购买和收听音乐的方式。 但是,我还想深入研究另一个有趣的方面:​​Spotify与社交互动和音乐探索同样重要,因为它是一个简单的流服务。 他们为用户提供了自定义的每周播放列表(使用该服务这一方面的任何人都可以证明他们的播放列表有多么出色和个性化),所以我想知道他们使用什么算法来策划它们。

历史

Spotify是音乐流媒体服务,于2008年在瑞典斯德哥尔摩开发,并于2018年作为公司公开上市。截至2018年,Spotify可访问3500万首歌曲,在全球拥有1.8亿用户,其中8300万用户付费订户。 这是一项免费增值服务,其大多数功能可通过广告免费获得,而其付费服务则删除广告并具有其他功能。

歌曲不只是标签上载。 用户自己可以支付少量费用上传自己的音乐。 我有很多朋友的音乐都在Spotify平台上。 在音乐界,它可以起到一种均衡器的作用(很像iTunes商店的做事方式):您可以像在街上听到好友乐队一样轻松地访问新的Maroon 5专辑。 Spotify的好处是它们的价格都是相同的(按月订购)。 音乐商店仅存有音乐唱片公司提供给他们的东西的日子已经一去不复返了。

每周发现

Discover Weekly是Spotify的一项惊人功能:它是每周向每位付费用户(约8000万)提供30首歌曲的播放列表,并根据他们的特定喜好进行定制。 如果您使用Spotify却还没有收听自己的DW播放列表,请继续尝试一下,然后告诉我这不是出于心理考虑。 播放列表在Spotify用户中大受欢迎,以至于该公司目前正在开发更多基于算法的播放列表。

现在,为用户提供个性化建议的想法并不新鲜:亚马逊的“购买x的客户也可能喜欢y”功能已经存在了很多年。 对于音乐,潘多拉(Pandora)精心策划音乐以追求品味。 Pandora将为每首歌曲提供用户提供的几个属性,然后,听某人的歌曲越多,Pandora就会根据这些特定属性过滤播放列表。 Last.fm会根据与您相似的其他用户来选择个性化曲目。 但是Spotify的算法似乎更加先进和个性化。 因此,让我们弄清楚他们的流程。

三部分算法

Spotify没有使用一种方法来完成他们的建议。 相反,他们使用三部分模型,将其他服务使用的某些算法混合并匹配,以获得更准确的结果。 他们的大部分算法来自音乐情报数据平台The Spotify在2014年收购的EchoNest。EchoNest是麻省理工学院的一项研究衍生产品,开发了用于音乐识别,推荐,播放列表创建和消费者分析的算法。 Spotify使用的三种模型是:

  1. 协同过滤

2.自然语言处理

3.音频模型

让我们看一下每个模型。

协同过滤

协作过滤的基本假设是,如果第1个人对某个问题与第2个人具有相同的意见,那么第1个人与第2个人就另一个问题达成一致的可能性要大于他们随机选择的人。 协作过滤的比较流行的应用之一是Netflix的基于明星的电影系统。 某些用户如何评价某些电影将为Netflix提供有关其他用户可能喜欢该电影的信息。 与Netflix不同,Spotify没有星级系统。 相反,他们的流行度指标是流,以及用户是否访问了艺术家的页面或将歌曲保存到播放列表。

因此,在最一般的级别上,这是协作过滤对建议的工作方式:

人1喜欢歌曲W,X,Y,Z

人2喜欢歌曲V,W,X,Y

因为他们有共同的歌曲W,X和Y,所以Spotify会假设他们是具有相似品味的相似用户。 然后,Spotify向第1个人推荐歌曲V,向第2个人推荐歌曲Z。

听起来很简单。 但是Spotify有数百万的用户在听数百万首歌曲。 他们如何在更大范围内计算? 通过使用Python库创建矩阵,然后运行矩阵分解公式。

X是代表用户口味的用户向量,Y是代表一首歌曲及其属性的歌曲向量。 因此,通过相似度比较和过滤所有用户向量,并且通过相似度比较和过滤所有歌曲向量。 数据由开源软件Kafka管理。 这本身将为用户提供一个相当不错的推荐系统,但是Spotify使用了另外两种模型。

自然语言处理

“自然语言处理NLP )是计算机科学和人工智能领域,与计算机和人类(自然)语言之间的相互作用有关,尤其是如何对计算机进行编程以处理和分析大量自然语言数据。” —我的朋友维基体育

Spotify使用NLP的方式是确定两首音乐的相似性。 Spotify将在网上搜索博客文章和其他音乐文章,以开发有关某些艺术家的言论的数据库。 它专门寻找描述艺术家和歌曲的形容词,以及经常一起提及的艺术家和歌曲。 然后,Spotify用这些词(每个艺术家可能具有数千个描述性词)创建一个数据库,并根据重要性或某人使用该词描述艺术家的可能性对它们进行加权。 然后,Spotify使用这些加权词来确定音乐片段的相似性,以进一步增强其推荐过程。

音频模型

第三个模型分析原始音频数据。 Spotify使用卷积神经网络(与面部识别软件所使用的技术相同)来处理歌曲数据,并为它们提供有关歌曲的特征,例如速度,音量,键和拍号。 这为Spotify提供了额外的数据层,可用于与某些歌曲进行比较和对比。

除了简单地提供更准确的建议外,第三种模型还有其他用途。 分析原始音频数据不会区分艺术家和歌曲的流行程度,也不会区分歌曲的发布时间。 这意味着您的朋友只听了几次的歌曲(没有很多其他听众可以过滤,也没有任何互联网嗡嗡声)仍将从音频角度进行分析。 这样,相对不知名的艺术家和歌曲便会与更多知名艺术家一起被加入“发现每周”播放列表。

资料来源

  • https://qz.com/571007/the-magic-that-makes-spotifys-discover-weekly-playlists-so-damn-good/
  • https://medium.com/s/story/spotifys-discover-weekly-how-machine-learning-finds-your-new-music-19a41ab76efe
  • https://zh.wikipedia.org/wiki/Spotify
  • https://medium.com/@RyanJosephHill/why-spotify-is-one-of-my-favorite-products-93fa4dff850a
  • https://zh.wikipedia.org/wiki/Collaborative_filtering