基于向量空间音乐推荐系统实现方法.pdfVIP

基于向量空间音乐推荐系统实现方法.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

讲堂数据结构与算法之美文章详情

47|向量空间:如何实现一个简单的音乐推荐系统?

2019-01-14

47|向量空间:如何实现一个简单的音乐推荐系统?

朗读人:修阳08′23′′|7.69M

很多人都喜爱听歌,以前我们用MP3听歌,现在直接通过音乐App就能听歌。而且,各

种音乐App的功能越来越强大,不仅可以自己选歌听,还可以根据你听歌的口味偏好,给你推

荐可能会喜爱的音乐,而且有时候,推荐的音乐还非常适合你的口味,甚至会惊艳到你!如此智

能的一个功能,你知道它是怎么实现的吗?

算法解析

实际上,要解决这个问题,并不需要特别高深的理论。解决思路的思想非常简单、直白,用

两句话就能总结出来。

找到跟你口味偏好相似的用户,把他们爱听的歌曲推荐给你;

找出跟你喜爱的歌曲特征相似的歌曲,把这些歌曲推荐给你。

接下来,我就分别讲解一下这两种思路的具体实现方法。

1.基于相似用户做推荐

如何找到跟你口味偏好相似的用户呢?或者说如何定义口味偏好相似呢?实际上,思路也很简

单,我们把跟你听类似歌曲的人,看做口味相似的用户。你可以看我下面画的这个图。我

用“1”表示“喜爱”,用“0”笼统地表示“不意见”。从图中我们可以看出,你跟小明

共同喜爱的歌曲最多,有5首。于是,我们就可以说,小明跟你的口味非常相似。

我们只需要遍历所有的用户,对比每个用户跟你共同喜爱的歌曲个数,并且设置一个阈值,如果

你和某个用户共同喜爱的歌曲个数超过这个阈值,我们就把这个用户看作跟你口味相似的用户,

把这个用户喜爱但你还没听过的歌曲,推荐给你。

不过,刚刚的这个解决方案中有一个问题,我们如何知道用户喜爱哪首歌曲呢?也就是说,如何

定义用户对某首歌曲的喜爱程度呢?

实际上,我们可以通过用户的行为,来定义这个喜爱程度。我们给每个行为定义一个得分,得分

越高表示喜爱程度越高。

还是刚刚那个例子,我们如果把每个人对每首歌曲的喜爱程度表示出来,就是下面这个样子。图

中,某个人对某首歌曲是否喜爱,我们不再用“1”或者“0”来表示,而是对应一个具体的分

值。

有了这样一个用户对歌曲的喜爱程度的对应表,如何来判断两个用户是否口味相似呢?

显然,我们不能再像之前那样,采用简单的计数来统计两个用户之间的相似度。还记得我们之前

讲字符串相似度度量时,提到的编辑距离吗?这里的相似度度量,我们可以使用另外一个距离,

那就是欧几里得距离(Euclideandistance)。欧几里得距离是用来计算两个向量之间的距离

的。这个概念中有两个,向量和距离,我来给你解释一下。

一是一条线,我们用1,2,3……这样单个的数,来表示一中的某个位置;二维空

间是一个面,我们用(1,3)(4,2)(2,2)……这样的两个数,来表示二中的某个

位置;三是一个立体空间,我们用(1,3,5)(3,1,7)(2,4,3)……这样的三个

数,来表示三中的某个位置。一维、二维、三维应该都不难理解,那更高维中的某个位置

该如何表示呢?

类比一维、二维、三维的表示方法,K中的某个位置,我们可以写作($X_{1}$,

$X_{2}$,$X_{3}$,…,$X_{K}$)。这种表示方法就是向量(vector)。我们知道,二维、三

中,两个位置之间有距离的概念,类比到高纬空间,同样也有距离的概念,这就是我们说

的两个向量之间的距离。

那如何计算两个向量之间的距离呢?我们还是可以类比到二维、三中距离的计算方法。通

过类比,我们就可以得到两个向量之间距离的计算。这个计算就是欧几里得距离的计算

我们把每个用户对所有歌曲的喜爱程度,都用一个向量表示。我们计算出两个向量之间的欧几里

得距离,作为两个用户的口味相似程度的度量。从图中的计算可以看出,小明与你的欧几里得距

离距离最小,也就是说,你俩在高

文档评论(0)

153****4985 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档