• 5
百亿独角兽Spotify的揽客秘籍:三大内容推荐模型,天天戳中你的心
统计 阅读时间大约7分钟(2610字)

2017-10-27 百亿独角兽Spotify的揽客秘籍:三大内容推荐模型,天天戳中你的心

每到周一,超过一亿的Spotify用户又会迎来全新的音乐推荐列表。

【猎云网(微信号:ilieyun)】10月27日报道 (编译:Timo

这周周一,就像往常的每个周一一样,超过一亿的Spotify用户又会迎来全新的推荐列表。该列表是Spotify中称为Discover Weekly的功能,其中每周一都会汇集30首用户从未听过但却可能爱上的歌曲。

Discover Weekly深知用户的音乐品味,能挖掘用户自己根本想不到自己会喜欢的音乐。接下来让我们对这款神奇的播放列表一探究竟。

图2

由于在推出后受到热捧,Spotify方面如今也将大部分精力转移到了播放清单的算法开发上。

自从Discover Weekly在2015年发布以来,很多发烧友都想知道其背后的工作原理。这里就为你进行简单的解析。

Spotify是如何做到每周都能做到为用户精心挑选30首好歌的呢?我们从其他音乐服务商的音乐推荐出发,借此来对比Spotify到底好在哪儿?

在线音乐数据管理的简要发展历史

大约十年前,Songza首次使用人工数据管理为用户推出音乐推荐列表的服务。“人工数据管理”的意思是一些“音乐专家”团队或者数据管理员根据他们觉得不错的音乐手动创建一些播放列表,然后用户直接听这些列表中的音乐(随后Beats的音乐应用也采用了类似的方式)。人工管理有一定效果,但实在过于简单,毕竟萝卜青菜各有所爱,这种方式不能考虑到成千上万用户不同的喜好。

Pandora也是早期的一款在线音乐播放器,它采用了更为先进的方法,手动给不同的歌曲上标签。他们也有一个团队专门负责听歌,然后为每首音乐选择一些描述词,加上标签。这样,Pandora就能直接筛选标签,为用户创建相似的播放列表。

就在那段时间,麻省理工的媒体实验室诞生了一个研究音乐智能的机构,名叫Echo Nest,他们的音乐个性化方案显然更好。他们采用算法分析音频和音乐中的文字内容,由此便衍生出其他如音乐识别,私人推荐,播放列表创建以及分析等功能。

最后,还有一家公司也采取了不同的方法,那就是Last.fm,他们用的是一种叫协同过滤的方式,效率更快。

大多数在线音乐服务的音乐推荐的原理如上,而Spotify能够如此完美地抓住用户的喜好凭借的是什么呢?

Spotify的三种推荐模型

Spotify其实并没有研发出任何革新的推荐模式,他们做的只是将其他音乐服务商用过的且效果不错的几种方式挑出来混合使用,从而创造出自己强大的音乐发现引擎。

Discover Weekly主要用了这三种推荐模型:

1)协同过滤模型,主要用于分析用户的各种行为。

2)自然语言数据处理模型,主要用于分析文字。

3)音频模型,主要用于分析音轨本身。

模型1:协同过滤

很多人听到“协同”过滤时首先就会想到Netflix,他们是最先采用协同过滤来进行内容推荐的公司之一,他们采用星级评分制度根据用户的喜好来向其他“相似”用户推荐电影或电视剧。该模型在Netflix取得成功后,很快便流行了起来,现在任何人若想做个推荐模型都会首先考虑协同过滤模型。

与Netflix不同,Spotify没有采用用户能直接评分的星级制度。他们用的数据是隐式反馈——比如一首歌曲的收听量,还有一些类似用户是否将歌曲保存至自己的播放列表或者有没有听完后访问歌手信息页面等数据。

而协同过滤到底是什么,具体工作原理如何?以下是一些深入概要。

图6

上图说的是两个人在谈论自己喜欢的歌曲——左边的说他喜欢歌曲P,Q,R和S,右边的说他喜欢Q,R,S还有T。由此协同过滤就可以将这段话解释为:他们有三首共同喜欢的歌曲——Q,R,S,所以他们大概品味相投,可能他们彼此会喜欢对方播放列表中那些自己还没听过的歌。然后系统就建议右边的人听听看P如何,推荐左边的人去听T,就这么简单。

但Spotify又是如何在实际操作中面向几千万用户运用这个概念的呢。很简单,他们用的是Python数据库完成的矩阵数学。

图7

实际上,你看到的这组矩阵无边无际。每一行代表的是Spotify一亿四千万用户的其中之一,每一列就代表着Spotify数据中三千万首歌曲的其中之一。然后,Python数据库开始运行如下这组又长又复杂的矩阵分解公式:

图8

完成分解后,我们就有了两个向量,分别是X和Y。X是某个用户的向量,代表某个用户的音乐品味,Y就是音乐向量,代表某一首歌曲的相关信息。

图9

现在我们有一亿四千万的用户向量和三千万个音乐向量。这些向量中的内容是一些数字,看上去毫无意义,实则作用巨大。

要找到两个品味相似的用户,协同过滤就会对用户向量进行比较,最终找出他们。对于音乐向量也是一个道理,比较不同歌曲的向量,就能找到相似风格的歌曲。

协同过滤已经很强大了,但Spotify还可以做得更好,因此他们又加入了NLP引擎。

模型2:自然语言数据处理(NLP)

Spotify的第二种推荐模型时自然语言数据处理模型。该模型的源数据,顾名思义就是文字——比如元数据追踪,新的文章、博文,以及互联网相关的其他一些文字信息。

自然语言数据处理,是计算机理解人类语言的一种能力,该能力的运用往往需要通过情感分析的API接口,它本身就是一块有待进一步开发的领域。

NLP背后的机制超出了本文的讨论范围,但简单原理是这样的:Spotify在网络上不断记录一些关于音乐的博文和文章,看看人们对于某个音乐人或某首歌曲的评论如何,描述这些歌曲使用最频繁的形容词是什么,同时文字中有没有提及其他歌手或歌曲。

Spotify具体是如何处理这些文字数据的我们不得而知,但我们可以试着参考Echo Nest之前是怎么操作的。他们将数据集中成“文化向量”和“主要关键词”。每位音乐人和每首歌曲都有上千条关键词,每天都会更新。每个关键词都能联系到很多相关信息,由此可得描述信息是有多么重要(简单说,就是用户搜索相关关键词的可能性)。

图11

然后,跟协同过滤很相似,NLP模型用这些关键词和重要信息创建某个歌曲的代表向量,这个向量就能用来甄别两首不同歌曲的相似性。

模型3:原生音频模型

看到这里,你可能会想,通过前两个模型就已经能够采集足够多的信息了,为什么还要费力去分析音频呢?

首先,增加第三个模型能提高推荐服务的准确性是毋庸置疑的。但事实上,这个模型还有一个作用是前两个模型无法比拟的,那就是它可以更顾及新歌。

比如,你一个朋友自娱自乐写了首歌并且在Spotify发布了。可能只有五十个收听,所及几乎无法使用协同过滤,在网上也还找不到相关信息,NLP也无法发挥作用。而原生音频模型却可以一视同仁,如此一来,你朋友的新歌也有可能会和其他top榜单的歌曲一起被推到别人的播放列表里!

现在来看一下该模型的原理,处理这些看似抽象的音频数据用的其实是卷积神经网络。卷积神经网络用的其实是和脸部识别一样的技术。而Spotify则将原来的像素替换成了音频数据。以下是神经网络架构的一个例子。

图12

该卷积神经网络有四个卷积层,如图所示,由左边较粗的条形和右边三个相对窄的条形组成。输入数据是音频帧数的时频,然后将他们相连以形成频谱图。音频的各帧经过这些卷积层,在经过最后一个卷积层时,你能看到一个叫“全面时序集中”层(global temporal pooling),这里会集中整个时间轴的资源,有效地计算出整首歌中已获取特征的数据。

处理完后,神经网络就能输出对整首歌的理解,包括像拍号,音调,风格,节奏和音量等特征。以下是对一段Daft Punk的“Around the World”这首歌中三十秒摘录的分析数据。

图14

最终,对于歌曲几个关键特点的分析让Spotify更好筛选相似的歌曲。

当然,三种推荐模型都与Spotify更大的企业生态系统连结,包括大量的数据储存和Hadoop集群来改变推荐服务的规模,使得这些引擎能在面临巨大的矩阵,无穷无尽的音乐网文和众多音频文档下也照样能完美运行。

1、猎云网原创文章未经授权转载必究,如需转载请联系官方微信号进行授权。
2、转载时须在文章头部明确注明出处、保留官方微信、作者和原文超链接。如转自猎云网(微信号:lieyunjingxuan
)字样。
3、猎云网报道中所涉及的融资金额均由创业公司提供,仅供参考,猎云网不对真实性背书。
4、联系猎云,请加微信号:jinjilei
相关阅读
推荐阅读
{{item.author_display_name}}
{{item.author_display_name}}
{{item.author_user_occu}}
{{item.author_user_sign}}
×