如何实现一个简单的音乐推荐系统?——利用欧几里得空间距离算法(向量空间距离)

谁说我不能喝 提交于 2020-02-17 15:26:16

举例如下:音乐推荐的两种推荐方式

第一种:基于相似用户做推荐

如何判断两个用户是相似用户?

我们可以根据两个用户对一些随机的歌曲的喜爱程度进行相似度度量。一个用户对一首歌单曲循环记5分,分享记4分,收藏记3分,搜索记2分,听完记1分,没听过记0分,直接跳过记-1分;

​ 安静 晴天 十年 后来

你 5 3 3 0

小明4 5 2 1

那么你和小明的欧几里得距离就是
(54)2+(35)2+(32)2+(01)2=7 \sqrt{ (5-4)^2+(3-5)^2+(3-2)^2+(0-1)^2} = \sqrt{7}
我们可以这个距离越小说明两个用户喜爱越相似,可以设定一个阈值,达到多少就判定为相似用户,然后把对方喜欢的推给你。

第二种:相似歌曲的推荐

如何判断两个两首歌曲的相似程度?

给它打上标签,比如是伤感的还是愉快的,是摇滚还是民谣,是柔和的还是高亢的等等 ?但是这样需要大量人工进行主观性判断,费时费力结果还不理想,我们可以通过这首歌的喜爱人群进行判断就可以了。

​ 用户A 用户B 用户C 用户D

安静 5 3 0 1

晴天 5 2 -1 1

可以理解为,两首歌的受众人群越相似,那么这两首歌就越相似。
(55)2+(32)2+(0(1))2+(11)2=2 \sqrt{ (5-5)^2+(3-2)^2+(0-(-1))^2+(1-1)^2} = \sqrt{2}
我们可以这个距离越小说明两首歌的受众用户越相似,可以设定一个阈值,达到多少就判定为相似歌曲,然后把相似歌曲推给你。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!