一种基于KNN和词嵌入的混合音乐推荐方法、系统及设备技术方案

技术编号:28623381 阅读:33 留言:0更新日期:2021-05-28 16:19
本发明专利技术公开了一种基于KNN和词嵌入的混合音乐推荐方法、系统及设备,方法主要通过KNN算法和word2vec模型中的Skip‑Gram算法,推荐用户所喜爱的歌曲。其方法包括:获取用户的信息及用户喜爱音乐列表;根据用户播放记录计算,得到歌曲播放系数;通过KNN计算歌曲相似度,得到相似歌曲的歌单;使用Skip‑Gram方法,从相似歌单中计算出相似歌曲;最后根据用户的兴趣偏好和歌曲热度,设置兴趣衰减因子和歌曲热度因子,以此来调整推荐权值并完成推荐,从而获取最佳推荐性能;通过KNN算法和word2vec模型的Skip‑Gram算法进行混合推荐,有助于提高推荐准确性;利用兴趣衰减因子和歌曲热度因子,能够依据用户兴趣偏好和歌曲热度的变化,快速地调整要推荐的歌曲,提高推荐的多样性。

【技术实现步骤摘要】
一种基于KNN和词嵌入的混合音乐推荐方法、系统及设备
本专利技术属于计算机技术中的推荐系统领域,具体涉及一种基于KNN和词嵌入的混合音乐推荐方法、系统及设备。
技术介绍
音乐推荐过程中,最主要的目的就是推荐符合用户喜好的音乐。推荐的核心是基于用户的评分数据,进行相似度计算。而现有的音乐软件很少有用户对音乐的直接评分反馈,因此需要采用可行的方式代替评分,进行相似度度量,实现需求的音乐推荐。现有的音乐推荐主要分为两种,一种是用户对歌曲的主动操作,如将歌曲添加至喜欢列表或移除出喜欢列表,根据用户对歌曲的操作进行推荐;另一种是根据用户的歌曲历史收听记录,推荐和收听记录相似的歌曲。前者音乐推荐中,只能初步判断用户对歌曲的偏好,并不能更具体反映出用户对歌曲的进一步偏好;后者音乐推荐中,凭用户的歌曲历史收听记录,不能准确地反映出用户对歌曲的偏好。因此,用户需要提供一种方便准确的推荐方法。
技术实现思路
为了解决现有音乐推荐过程中存在的问题,本专利技术提供一种基于KNN和词嵌入的混合音乐推荐方法,根据用户的现有音乐喜爱列表,使用KNN算法,得到与用户喜爱列表最接近的N个歌单,再根据word2vec算法,在N个歌单中推荐相似的歌曲。为了达到上述目的,本专利技术采用的技术方案为:一种基于KNN和词嵌入的混合音乐推荐方法,具体如下:获取用户信息及歌曲列表;基于所述歌曲列表,获取在一个周期内所述歌曲列表中每一首歌曲的播放次数以及所述歌曲列表中歌曲总播放量,进而得到所述歌曲列表中每一首歌曲的播放系数Lu,i;使用KNN算法计算与每一首歌曲相似度最高的若干首歌曲作为喜爱歌曲集合,遍历曲库中的歌单,获取曲库中包含所述喜爱歌曲集合的歌单,并按照歌单中包含所述喜爱歌曲集合的数量由多到少排序;在每个包含所述喜爱歌曲集合的歌单中使用word2vec的Skip-Gram方法,为歌单中包含所述喜爱歌曲集合中的每首歌求出最相似的top-n首歌曲,所述喜爱歌曲集合中的每首歌曲都得到一个推荐列表;根据用户兴趣的时效性以及歌曲在整个音乐平台的播放热度,对所述最相似的top-n首歌曲的概率进行修正,得到一个修正系数,将所述修正系数引入所述喜爱歌曲集合中的每首歌曲的推荐列表中,得到最终的推荐列表;将用户在一个周期内播放的歌曲历史记录按照时间轴排序,根据时间由近及远给予不同的兴趣衰减因子,时间最近的兴趣衰减因子值为1;根据歌曲在整个音乐平台的播放热度,给定不同的热度推荐因子,歌曲热度越高其热度推荐因子越高,热度推荐因子最高值为1。所述周期为设定周期,所述周期为一年、一个月、一周、三天或一天。所述用户信息包括用户的个人基本信息,所述个人基本信息从其他应用中读取或由用户输入,所述用户信息包括用户的地理位置以及用户输入的情境信息,所述音乐喜爱列表中所填内容是用户自己添加到喜爱列表的歌曲,歌曲信息包括歌曲的演唱歌手、歌曲时长、演唱专辑、演唱风格以及曲目作者。歌曲的播放系数计算方式为:countu,i为一首歌曲在一个周期内的播放量,total为一个周期内播放总曲次。在得到用户对歌曲的播放系数Lu,i后,对于用户u喜爱列表中每一首歌曲,使用KNN算法计算出与该歌曲相似度最高的f首歌曲,并用N(u,mi)表示这f首歌曲的集合,相似度计算方法为:其中Simmn表示歌曲m和歌曲n的相似度,Pmn表示都播放过歌曲m,n的用户集合,和分别表示歌曲m和n的平均播放系数,Lu,m表示用户u对歌曲m的播放系数,Lu.n表示用户u对歌曲n的播放系数。在每个包含所述喜爱歌曲集合的歌单中使用word2vec的Skip-Gram方法,为歌单中包含所述喜爱歌曲集合中的每首歌求出最相似的top-n首歌曲,得到一个歌曲推荐列表,具体如下:确定所述喜爱歌曲集合中的歌曲mi为中心词,i为正整数,i最大值为所述喜爱歌曲集合中的歌曲数量,使用滑动窗口捕获所述喜爱歌曲集合中所述中心词的上下文歌曲集合;在Skip-Gram神经网络的映射层处,对中心词和上下文词进行one-hot编码,所述喜爱歌曲集合中每首歌曲形成S*1的向量,整个歌曲表则表达为S*S的矩阵;通过索引映射,将所述喜爱歌曲集合中每首歌曲映射到T维空间,则所述喜爱歌曲集合中所有的歌曲都映射到矩阵WS×T上,并且矩阵中WS×T的某列与所述喜爱歌曲集合中每首歌曲一一对应;Skip-Gram神经网络的映射层与Skip-Gram神经网络的隐藏层之间组成一个权重矩阵W′,W′是一个S行T列的矩阵;取出做为中心词的歌曲向量Sc,中心词的歌曲向量Sc与权重矩阵W′中的其他上下文歌曲向量做内积运算,得到每首歌曲的计算结果;在Skip-Gram神经网络的输出层处,对得到的S个数字,采用Softmax函数对输出向量进行归一化处理,得到一个N维的概率值Softmax;Softmax是一个经由Softmax函数进行归一化处理获得N维的概率值,每一维都代表一首预测歌曲,其中概率最大的一行为预测出的中心词歌曲。对得到概率最大的预测歌曲进行推荐分数修正,分数修正方法如下:根据用户在周期内播放的歌曲历史记录,按照时间轴排序,根据时间由近及远给予不同的兴趣衰减因子,时间最近的兴趣衰减因子值为1,同时根据歌曲在整个音乐平台的播放热度,给定不同的热度推荐因子,歌曲热度越高其热度推荐因子越高,热度推荐因子最高值为1,根据所述喜爱歌曲集合中的每首歌曲所得的兴趣衰减因子和热度推荐因子,对歌曲的预测歌曲进行推荐分数修正,修正分数公式为:其中,Inti为用户i的兴趣衰减因子,Popm为歌曲m的热度推荐因子,Softmaxmi为歌曲m对用户i的推荐概率值;根据修正后的推荐分数,得到最终的预测歌曲列表并完成推荐。一种基于KNN和词嵌入的混合音乐推荐系统,包括信息获取模块、喜爱歌曲集合获取模块以及推荐列表模块;其中信息获取模块用于获取用户信息及歌曲列表;喜爱歌曲集合获取模块基于所获取的歌曲列表,获取在一个周期内所述歌曲列表中每一首歌曲的播放次数以及所述歌曲列表中歌曲总播放量,进而得到所述歌曲列表中每一首歌曲的播放系数Lu,i;使用KNN算法计算与每一首歌曲相似度最高的若干首歌曲作为喜爱歌曲集合,遍历曲库中的歌单,获取曲库中包含所述喜爱歌曲集合的歌单,并按照歌单中包含所述喜爱歌曲集合的数量由多到少排序;推荐列表模块在每个包含所得到的喜爱歌曲集合的歌单中使用word2vec的Skip-Gram方法,为歌单中包含所述喜爱歌曲集合中的每首歌求出最相似的top-n首歌曲,得到一个歌曲推荐列表。一种计算机设备,包括一个或多个处理器以及存储器,存储器用于存储计算机可执行程序,处理器从存储器中读取部分或全部所述计算机可执行程序并执行,处理器执行部分或全部计算可执行程序时能实现本专利技术所述基于KNN和词嵌入的混合音乐推荐方法。一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时,能实现本本文档来自技高网...

【技术保护点】
1.一种基于KNN和词嵌入的混合音乐推荐方法,其特征在于,具体如下:/n获取用户信息及歌曲列表;/n基于所述歌曲列表,获取在一个周期内所述歌曲列表中每一首歌曲的播放次数以及所述歌曲列表中歌曲总播放量,进而得到所述歌曲列表中每一首歌曲的播放系数L

【技术特征摘要】
1.一种基于KNN和词嵌入的混合音乐推荐方法,其特征在于,具体如下:
获取用户信息及歌曲列表;
基于所述歌曲列表,获取在一个周期内所述歌曲列表中每一首歌曲的播放次数以及所述歌曲列表中歌曲总播放量,进而得到所述歌曲列表中每一首歌曲的播放系数Lu,i;使用KNN算法计算与每一首歌曲相似度最高的若干首歌曲作为喜爱歌曲集合,遍历曲库中的歌单,获取曲库中包含所述喜爱歌曲集合的歌单,并按照歌单中包含所述喜爱歌曲集合的数量由多到少排序;
在每个包含所述喜爱歌曲集合的歌单中使用word2vec的Skip-Gram方法,为歌单中包含所述喜爱歌曲集合中的每首歌求出最相似的top-n首歌曲,所述喜爱歌曲集合中的每首歌曲都得到一个推荐列表;
根据用户兴趣的时效性以及歌曲在整个音乐平台的播放热度,对所述最相似的top-n首歌曲的概率进行修正,得到一个修正系数,将所述修正系数引入所述喜爱歌曲集合中的每首歌曲的推荐列表中,得到最终的推荐列表;将用户在一个周期内播放的歌曲历史记录按照时间轴排序,根据时间由近及远给予不同的兴趣衰减因子,时间最近的兴趣衰减因子值为1;根据歌曲在整个音乐平台的播放热度,给定不同的热度推荐因子,歌曲热度越高其热度推荐因子越高,热度推荐因子最高值为1。


2.根据权利要求1所述的基于KNN和词嵌入的混合音乐推荐方法,其特征在于,所述周期为设定周期,所述周期为一年、一个月、一周、三天或一天。


3.根据权利要求1所述的基于KNN和词嵌入的混合音乐推荐方法,其特征在于,所述用户信息包括用户的个人基本信息,所述个人基本信息从其他应用中读取或由用户输入,所述用户信息包括用户的地理位置以及用户输入的情境信息,所述音乐喜爱列表中所填内容是用户自己添加到喜爱列表的歌曲,歌曲信息包括歌曲的演唱歌手、歌曲时长、演唱专辑、演唱风格以及曲目作者。


4.根据权利要求1所述的基于KNN和词嵌入的混合音乐推荐方法,其特征在于,歌曲的播放系数计算方式为:



countu,i为一首歌曲在一个周期内的播放量,total为一个周期内播放总曲次;
在得到用户对歌曲的播放系数Lu,i后,对于用户u喜爱列表中每一首歌曲,使用KNN算法计算出与该歌曲相似度最高的f首歌曲,并用N(u,mi)表示这f首歌曲的集合,相似度计算方法为:



其中Simmn表示歌曲m和歌曲n的相似度,Pmn表示都播放过歌曲m,n的用户集合,和分别表示歌曲m和n的平均播放系数,Lu,m表示用户u对歌曲m的播放系数,Lu.n表示用户u对歌曲n的播放系数。


5.根据权利要求1所述的基于KNN和词嵌入的混合音乐推荐方法,其特征在于,在每个包含所述喜爱歌曲集合的歌单中使用word2vec的Skip-Gram方法,为歌单中包含所述喜爱歌曲集合中的每首歌求出最相似的top-n首歌曲,得到一个歌曲推荐列表,具体如下:
确定所述喜爱歌曲集合中的歌曲mi为中心词,i为正整数,i最大值为所述喜爱歌曲集合中的歌曲数量,使用滑动窗口捕获所述喜爱歌曲集合中所述中心词的上下文歌曲集合;
在Skip-Gram神经网络的映射层处,对中心词和上下文词进行o...

【专利技术属性】
技术研发人员:黄昭范理涛
申请(专利权)人:陕西师范大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1