宜春生活网 | 宜春本地通 | 宜春影讯 | 宜春公交 | 宜春地图 | 宜春天气 | 宜春商圈 | 宜春连锁品牌 | 宜春小区 | 电影 | 明星
城市生活网
宜春
切换城市
宜春生活网 > 宜春本地新闻 > 这套神奇的算法,比网易云音乐更懂你

这套神奇的算法,比网易云音乐更懂你

原标题:这套神奇的算法,比网易云音乐更懂你

随着网易云音乐的听歌报告刷屏,音乐软件背后的个性化推荐算法用开始被大家热议。作为全球最大的正版流媒体音乐服务平台Spotify,就拥有一个可以针对7500万流媒体服务用户的个性化播放列表——Discover Weekly,它可以收听习惯以及用户的喜好,并在每周一花上两个小时来做一个 “新的发现和深度清理”的更新。今天这位来自纽约时报的数据侠Sophia Ciocca,就为我们揭开了这个深度个性化推荐服务,之所以“深得人心”的秘密。

本文转自公众号数问数据科学社区

每周一,超过1亿的Spotify用户都会发现有一张全新的播放列表在等待着他们。歌单里的30首歌,你完全没有听过,但是很可能会非常喜欢。这就是Discover Weekly,它就是这么神奇。

我本人就是Spotify的超级粉丝,且由其爱Discover Weekly。为什么呢?因为它让我感觉自己被关注了。它比任何人都了解我的音乐品味,超过了所有我生活中认识的任何一个人。每周它都能满足我的耳朵,因为它能为我找到我自己无法找到,或者我根本不知道自己会喜欢的歌。

对于那些在生活中与音乐隔绝的人,请允许我介绍一下我的最好的虚拟朋友:

事实证明,并不是只有我对“Discover Weekly”着迷 - 整个用户群都为之疯狂。这甚至使得Spotify彻底重新考虑其发展重心,将更多资源投入到基于算法的播放列表中。

自“Discover Weekly”在2015年推出以来,我一直非常好奇它是如何工作的(加上我Spotify的一个女粉丝,所以有时我喜欢假装我在Spotify工作,还会去研究他们的产品)。经过三个星期的疯狂搜索之后,我非常感激终于得以一瞥幕后的真相。

言归正传,Spotify是如何神奇地为每个人每周选择30首歌呢?它的秘诀在哪?那么现在,就让我们先去看看其他音乐服务公司是如何推荐音乐的,然后再看看Spotify是如何做得更好的。

早在2000年的时候,Songza用人工推荐率先打开了在线音乐推荐的大门。“人工推荐”(manual curation)的意思是指由一些“音乐专家”或者其他音乐推荐人把那些他们认为好听的歌放在到播放列表里,然后让大家去听他们的播放列表。

这样的做法更加符合Curation这个词的原意,因为curator这个词原本在英文里,就是指那些在艺术馆或博物馆中的管理员,负责给大家整理和介绍艺术品。(后来,Beats Music也采用了这种策略。)

人工推荐虽然表现不错,但它需要手动操作并且过于简单,因此它无法考虑到每个听众个人音乐品味的细微差别。

像Songza一样,Pandora也是音乐推荐领域的元老之一。它采用了稍微更高级一些的方法人工标记歌曲属性。当人们听完各种音乐后会对每首歌选择一些描述性的词,然后给这些歌加上标签。然后Pandora的程序再把这些标签相同的歌做成歌单,于是就产生了一张拥有相似风格歌曲的歌单了。

大约在同一时间,一个名叫“The Echo Nest”的智能音乐代理在麻省理工学院的媒体实验室中诞生了,它采用了在当时非常先进的个性化音乐推荐方法。The Echo Nest使用了算法去分析音乐的音频和文字内容,它可以做到音乐识别,个性化推荐,创建音乐列表,而且还能分析。

最后,Last.fm采取了另外一种方法,这种方法至今依然存在,它就是协同过滤(collaborative filtering)。讲完历史,让我们回到现在。

如果上述就是其他音乐推荐服务的工作方式,那么Spotify是怎么推荐音乐的呢?

是什么使它能够比别的产品更加准确地挠到用户的痒痒肉呢?

Spotify的三种音乐推荐模型

Spotify并不是使用了某种革命性的推荐模型,实际上,他们是把其他推荐服务的各种好方法混在一起使用,最终创造了他们独特而强大的挖掘引擎。

协同过滤(Collaborative Filtering),也就是最早被Last.fm使用过的,它通过分析你的行为和别的用户的行为来工作。

声音模型(Raw Audio Model),通过分析原始的音轨文件来工作。

那么就让我们来看看这些推荐模型是如何工作的吧!

推荐模型1:协同过滤

首先,先来点背景介绍:当很多人听到这个“协同过滤”这个词的第一反应就是Netflix,总所周知Netflix是首批使用协同过滤来强化他们推荐系统的公司。他们使用用户对电影的星级评价来帮助他们决定应该推荐什么电影给“相似”的用户。

当Netflix获得巨大成功之后,这种用法得以快速传播。所以现在通常被认为是推荐模型的起点。

不同的是,Spotify并没有像Netflix那样让用户给音乐进行星级评价,而是隐性反馈(implicit feedback)。这其中包括许多播放数据,首当其冲的是播放次数(stream counts),也包括这首歌是否被添加到歌单,或者用户是否有访问歌手的页面等等。

那但协同过滤在哪里呢?它又是如何在Spotify上工作的呢?下面的这幅图很好的把这个复杂的问题概括到了一个简单的对话中:

这图里发生了什么呢?这两个家伙中的每一个都有一些自己喜欢的歌,左边的那个人喜欢P,Q,R和S;右边的那个人喜欢Q,R,S和T。

协同过滤看到这些数据之后会认为:

“既然这样。你们两个有三首共同喜欢的歌Q,R和 S,所以你们可能是类似的用户。因此,你们很可能会喜欢对方喜欢的,但是你没听过的歌。

因此右边的人可能会喜欢P,左边的人可能会喜欢T。非常简单的逻辑,对吧?

但Spotify在实践中如何实际使用这个概念来给数以百万用户推荐歌曲的呢?要知道这些推荐是基于其他数以千万的用户喜好来推荐的。

答案就是矩阵运算,用Python库来实现!

上图的矩阵只是一个例子。实际上,真正的矩阵是巨大无比的。每一行代表了1.4亿Spotify用户中的一个用户(如果你也是Spotify用户,那么其中有一条就代表了你);每一列代表了Spotify数据库中3000万首歌中的一首。

然后,Python库就会运行这个又长又复杂的矩阵分解公式:

点击阅读完整原文
本新闻转载自:搜狐科技 | 作者:搜狐科技
城市生活网
CopyRight(C) 2003-2024, IECITY.COM All Rights Reserved.  沪ICP备06053553号-3