一种基于哈希词典和深度网络的音乐推荐方法

未命名 10-25 阅读:117 评论:0


1.本发明涉及一种音乐数据分类和推荐算法,利用哈希词典和深度学习网络自动的将音乐推荐给所属类别的用户。


背景技术:

2.深度学习与数字时代同步发展,数字时代带来了各种形式和来自世界各个地区的数据爆炸。这些数据被简单地称为大数据,其来源包括社交媒体、互联网搜索引擎、电子商务平台和在线电影院等。这种巨大的数据很容易获得,并且可以通过云计算等技术应用进行共享。
3.然而,这些数据通常是非结构化的,非常庞大,人类可能需要几十年的时间来理解它并提取相关信息。
4.传统的音乐推荐方法往往只是简单的把用户分成几类,并根据不同分类进行推荐。对于日益庞大的网络大数据本身,在音乐推荐中,简单的分类已无法满足人们更为个性化的需求,是庞大的音乐数据无法被很好的识别和分类。


技术实现要素:

5.发明目的:针对现有技术中存在的问题与不足,本发明提供一种基于哈希词典和深度网络的音乐推荐方法。
6.技术方案:一种基于哈希词典和深度网络的音乐推荐方法,对于一首歌曲,其预定的类别或风格已经有其先验的风格分类,一首歌曲能包含多种类型风格。
7.能通过计算机统计确定音乐的分类或类别,设用户听取某个音乐时间为t分钟,总共有n首歌,听取时间分别为t1,t2,..,tn分钟,得到一个矩阵b,其中元素b
i,j
=tj,代表用户i听取歌曲j的时长为tj分钟;矩阵b用于统计计算,可以根据听取时间的大小比较出用户听取时间最多的某类型歌曲。
8.在后面的推荐中,我们可以按需求向用户推荐某类型的一首或几首歌曲,按听取时长的大小表示用户对歌曲的偏好程度。
9.在推荐某类型歌曲时,需要明确推荐歌曲的类别;歌曲中包含了文字数据形式的歌词,提取歌词词干和标题后在lda程序得到诗歌主题类型,不同词语的主题一定存在,我们只需比较每个单词的主题概率并求出最大的即可,这样每一首歌曲都有唯一的诗歌主题类型;从上述的统计矩阵b得出听取时长最多的某类型歌曲,结果保存于哈希表中。
10.哈希表或哈希图是一种数据结构,它将标识符或键(主题、文字)与值(类型)联系起来。散列函数用于将键变成一个相对较小的整数,即散列,作为一个数组的索引。
11.在一个定义良好的哈希表中,每次查找的平均成本与表中存储的元素数量无关。在一般的编程和程序中,哈希表经常作为曾经计算过的数值的缓存,以节省相对昂贵的重复计算。
12.如果所有的键在编译或初始化时都是已知的,而且它们的基数是合理的小,那么
就可以创建一个完美哈希表,其中不会有碰撞,因为每个键都有一个唯一的索引。与最小完美哈希表相反的是,查找数组包含间隙或多个条目。
13.对歌词的词干部分和主题部分进行散列,以映射例如在某一特定诗词风格类型。在应用哈希表之前,需要输入一个数据库以进行正确的映射,手工建立一个哈希表,通过输入大量的诗歌文字人工分成不同的类别。或者也可以使用机器分类的方法,无监督或半监督的环境进行文字和诗的分类,常见的主题分类方法包括有k-means,lda等含参和不含参变量的方法。持续性的大量输入各种类型的诗歌,增加生成的哈希表库和位库,包含了逆向分析某些少数歌词的类别和所属风格完美知识,也可以被认为是一种完美的散列。
14.在建立词典过程中,可能面临语言的问题,通常大部分外文诗歌都包含英语版本,可以翻译成中文,但最好是直接建立英文的联系。这样就面临下面的问题
15.如果歌词只包含了中文,那么对应的英文属不属于模型,一个可能的解决方案是包含2种文本,既保留中文的也保留对应英文的,以保证最大限度的准确性。
16.诗词所属的类别有多种分类方法,一种是直接人工进行分类,但面对越来越多的诗歌数量和数据,这里使用机器进行自动分类,随着输入的文字诗词越来越多,将得到一个更为准确的分类和判别。
17.这里使用lda模型对诗词文档进行分类,训练lda模型,使用训练好的lda模型对歌曲进行分类,输入歌曲歌词特征,输出歌曲类别。lda是一个dirichlet概率问题,符合多项式分布的共轭先验概率分布。因此正如lda贝叶斯网络结构中所描述的,在lda模型中一篇文档生成的方式如下:
18.从狄利克雷分布α中取样生成文档i的主题分布θi19.从主题的多项式分布θi中取样生成文档i第j个词的主题z
i,j
20.从狄利克雷分布β中取样生成主题z
i,j
的词语的多项式分布φ
zi,j
21.从词语的多项式分布φ
zi,j
中采样最终生成词语w
i,j
22.词语的lda模型,会按照上述狄利克雷的两种分布最终形成一个主题-词语的概率图表;图表中的竖行包含了所有的主题(设为k数),横行是某个词语表示该主题的概率。这样一个图表,我们可以查询词语的概率大小,后面在歌曲的歌词中,我们比较所有词语的主题概率,记录最大的那个概率作为歌词的诗歌主题,记为l表示(和w区分)。
[0023][0024]
最终p(wi|α,β)结果是最大似然概率,可以通过吉布斯采样等方法估计出模型中的参数。
[0025]
最终的概率图表根据不同的数据库,语料库会有不同;理论上,一个好的诗词数据库能够给出相对完备的主题-词语概率图表,这些主题数据也会用于后面训练神经网络。
[0026]
最后,对于一首歌曲,把采样、频率、不同频段、和声,输入深度网络f中,并通过bp算法训练仿射函数参数a和b,以使深度网络f的最终输出w和实际差值最小化。
[0027]
一种计算机设备,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行上述计算机程序时实现如上所述的基于哈希词典和深度网络的音乐推荐方法。
[0028]
一种计算机可读存储介质,该计算机可读存储介质存储有执行如上所述的基于哈希词典和深度网络的音乐推荐方法的计算机程序。
[0029]
有益效果:利用深度学习网络往往能做出非常准确的判断和结果,本发明结合了新型深度网络的潜力,旨在提出一种新的更有效,更准确,更便捷的音乐推荐方法。
[0030]
深度学习是目前发展和应用最快的一个领域之一,其准确性较以往的计算机方法有了很大的提高,并且可以进化出各种不同的类型,保存也更方便,可以模拟各种不同的过程和应用。诗歌哈希词典也因为大数据成为可能,得益于自然语言处理和人工智能的数据信息,翻译更加准确。本发明可应用于音乐推荐和社群集合算法等诸多领域,具有广泛的应用前景。
附图说明
[0031]
图1是本发明实施例的诗歌哈希词典流程示意图;
[0032]
图2是本发明实施例的基于诗歌哈希词典和深度学习网络的音乐推荐流程示意图。
具体实施方式
[0033]
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本技术所附权利要求所限定的范围。
[0034]
一种基于哈希词典和深度网络的音乐推荐方法,对于一首歌曲,其预定的类别或风格已经有其先验的风格分类,一首歌曲能包含多种类型风格;
[0035]
通过计算机统计确定音乐的分类或类别,设用户听取某个音乐时间为t分钟,总共有n首歌,听取时间分别为t1,t2,..,tn分钟,得到一个矩阵b,其中元素b
i,j
=tj,代表用户i听取歌曲j的时长为tj分钟;矩阵b用于统计计算,根据听取时间的大小比较出用户听取时间最多的某类型歌曲。
[0036]
在推荐某类型歌曲时,需要明确推荐歌曲的类别;歌曲中包含了歌词文字数据,提取歌词文字数据的词干和主题后在哈希表中查得其所属类别。
[0037]
对歌词的词干部分和主题部分进行散列,以映歌曲类型;在应用哈希表之前,需要输入一个数据库以进行正确的映射,建立一个哈希表,通过输入大量的诗歌文字人工分成不同的类别;或者使用机器分类的方法,无监督或半监督的环境进行文字和诗的分类。
[0038]
使用lda模型对诗词文档进行分类,训练lda模型,使用训练好的lda模型对歌曲进行分类,输入歌曲歌词特征,输出歌曲类别。
[0039]
深度学习的函数往往具有f(v)=l(r(l(r(

(lv))的形式,其中v是输入向量。这是仿射函数lv=av+b的一部分,非线性函数relu再继续作用于lv向量上。矩阵a和误差向量b被称为函数f的学习参数。这里a和b需要从数据集中学习到正确的参数,才能得到合适的输出f(v)。如此,f函数可以被应用于新的数据样本,并且a和b的系数正确学习到的话,输出f(v)即使对于陌生的输入数据也将得到正确的输出。更多的网络层数一般将会得到更好的输出结果f(v)。
[0040]
一般来说,f(x,v)的结果和输入v向量和参数x(所有的a和b)相关。输出v1=relu
(a1v+b1)是第一步的结果,并作为网络第一个隐藏层(hidden layer)的输入。整个网络的输入从输入向量v开始到w=f(v)结束。对于中间的任意层其结构lk(v
k-1
)=akv
k-1
+bk。
[0041]
所有的系数x通过深度网络的全局优化算法来学习到:选择这样的系数ak和bk以使损失函数最小化。损失函数是单个数据样本误差的累积和,通常用误差的平方来统计‖f(v)-true output||2,一般损失函数也可以用其他函数来代替。
[0042]
对于一个整体的网络,通常工作流程是:输入训练样本v=v0。输出得到的是分类w=f(v)。对于期望的网络,w将会得到正确的分类1到k。网络的深度取决于隐藏层的数量。隐藏层对于输出结果的正确性有决定性的影响。通常,系数a
i,j
和bj的数量远远大于样本数据v。
[0043]
基于哈希词典和深度网络的音乐推荐方法,既可以根据训练语料库进行lda模型估计,也可以对新的、未见过的文档进行主题分布推断。该模型还可以用新的文档进行更新,以便进行在线训练。
[0044]
该方法是(1)流式的:培训文件可以按顺序进来,不需要随机访问。(2)在恒定的内存中运行,与文档数量有关:训练语料库的大小不影响内存占用,可以处理大于ram的语料库。(3)分布式:利用机器集群(如果有的话)来加快模型的估计速度。
[0045]
步骤301,把诗歌数据库转换为bow格式用于训练;
[0046]
步骤302,使用上述数据库中样本训练lda模型;
[0047]
步骤303,保存一个模型到磁盘,或重新加载一个预先训练好的模型;
[0048]
通过对新的语料库进行增量训练来更新模型,其中具体参数可以调节和优化。然后建立哈希表,步骤如下:哈希表是一种根据关键码去寻找值的数据映射结构,该结构通过把关键码映射的位置去寻找存放值的地方。就比如查字典。如果想获取“按”字得详细信息,这过程就是键码映射,在公式里面,就是通过key去查找。其中,关键字“key”,f(key)就是字典索引,也就是哈希函数。查找或者插入的情况在大多数情况下可以达到o(1),时间主要花在计算hash上。最坏得情况就是hash值全都映射到同一个地址上,这是哈希表就退化成链表,查找的时间复杂度就变成o(n),但是这种情况比较少,一般不会出现。本发明使用了英文中文两种不同的哈希表,已解决语言不统一的问题,对于外文的诗词库,使用自然语言翻译成英文统一处理。
[0049]
步骤304,计算歌词的分类l,使用302生成的主题-词语的概率图表;这是一个诗词数据库按照lda模型自动生成的图表,其中的竖行包含了所有的主题(设为k数),横行是某个词语表示该主题的概率。这样一个图表,我们可以查询词语的概率大小,在歌曲的歌词中,我们比较所有词语的主题概率,记录最大的那个概率作为歌词的诗歌主题,记为l表示。
[0050]
步骤305,计算歌曲音乐风格或类别w,可以是人工或自动的,这里我们使用人工手动标记好歌曲类别w。再根据步骤304诗歌主题l,这样每一首歌都有了自己的w-l类型。这个新型的w-l类型,根据统计矩阵b能够排序得到听取时长大小,我们把听取时长最高的那首歌曲存储在哈希表中,使用h(w,l)就可以在o(1)时间内找到。
[0051]
步骤306,将304步骤和305步骤得到的歌词分类l和歌曲类别w,作为网络的训练样本,输入数据如下:
[0052]
output={wj,lj},用于接下来的网络训练。
[0053]
步骤307,采样音乐声音数据特征,作为网络的输入v,网络的预期输出结果为上述
得到的{wj,lj},训练网络参数a直到数据误差小到一定程度。
[0054]
步骤308,对于一首新的歌曲,把声音数据特征输入上述已经训练好的深度网络中,得到输出新的值w和l。
[0055]
步骤309,根据上述网络的分类值w和l推荐给喜欢这一类别的不同用户中。
[0056]
最后正确的得到了歌词的类型,以及音乐的类型,分别记为l和w,把所有歌曲的采样数据,频率特征等信息汇总到网络输入端,通过bp反向传播算法,使输出值最优化接近l和w的值,等到训练足够多的数据后,保存下网络,然后对于一首新的歌曲,仍然把所有特征重新输入到网络中,假设网络学习到准确的内部参数,将得到歌曲正确的分类和类别。但是神经网络的样本输入和参数调节会影响最终的网络表现性能,有时差别很大,不过这超出了本发明的讨论范围。样本的数据有来自诗词数据库的lda模型计算结果,通常越大的数据库资料泛化能力也就越强,错误的可能性也越小。据此,就可以根据这个预估w,l值进行推荐。推荐可以是w类别或l类别中随机的一首歌,也可以统计同一类别受欢迎的排名,推荐最受欢迎的一首或几首歌曲。
[0057]
对于包含全部数据的矩阵b
mn
是一个很大的矩阵,通过lda方法训练出的歌词主题l和人工标记好的歌曲分类w,通过计算b矩阵保存在哈希词典中。哈希词典h(w,l)存储了推荐的歌曲,按照歌曲类别和歌词属于的诗歌主题分类好,后续我们只要通过神经网络的黑盒输入,就能正确得到新的歌曲的w和l数据。然后按照词典的已经存储好的数据推荐相似歌曲,这部分减少了人工的干预,以及人工编辑歌曲的类型和主题,减少了的工作,自动按照神经网络的输出和哈希词典,推荐出很多不同的歌曲。
[0058]
显然,本领域的技术人员应该明白,上述的本发明实施例的基于哈希词典和深度网络的音乐推荐方法各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
[0059]
本发明提供了歌曲自动推荐方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。

技术特征:
1.一种基于哈希词典和深度网络的音乐推荐方法,其特征在于,对于一首歌曲,其预定的类别或风格已经有其先验的风格分类,一首歌曲能包含多种类型风格;通过计算机统计确定音乐的分类或类别,设用户听取某个音乐时间为t分钟,总共有n首歌,听取时间分别为t1,t2,..,t
n
分钟,得到一个矩阵b,其中元素b
i,j
=t
j
,代表用户i听取歌曲j的时长为t
j
分钟;矩阵b用于统计计算,根据听取时间的大小比较出用户听取时间最多的某类型歌曲。2.根据权利要求1所述的基于哈希词典和深度网络的音乐推荐方法,其特征在于,在推荐某类型歌曲时,需要明确推荐歌曲的类别;歌曲中包含了歌词文字数据,提取歌词文字数据的词干和标题后由lda程序给出对应诗歌主题类别,由上述矩阵b计算出推荐的类型歌曲,结果保存于哈希表中。3.根据权利要求1所述的基于哈希词典和深度网络的音乐推荐方法,其特征在于,对歌词的词干部分和主题部分进行散列,以映歌曲类型;在应用哈希表之前,需要输入一个数据库以进行正确的映射,建立一个哈希表,通过输入大量的诗歌文字人工分成不同的类别;或者使用机器分类的方法,无监督或半监督的环境进行文字和诗的分类。4.根据权利要求1所述的基于哈希词典和深度网络的音乐推荐方法,其特征在于,使用lda模型对诗词文档进行分类,训练lda模型,使用训练好的lda模型对歌曲进行分类,输入歌曲歌词特征,输出歌曲类别。5.根据权利要求1所述的基于哈希词典和深度网络的音乐推荐方法,其特征在于,对于一首歌曲,把采样、频率、不同频段、和声,输入深度网络f中,并通过bp算法训练仿射函数参数a和b,以使深度网络f的最终输出w和实际差值最小化。6.一种计算机设备,其特征在于:该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行上述计算机程序时实现如权利要求1-4中任一项所述的基于哈希词典和深度网络的音乐推荐方法。7.一种计算机可读存储介质,其特征在于:该计算机可读存储介质存储有执行如权利要求1-4中任一项所述的基于哈希词典和深度网络的音乐推荐方法的计算机程序。

技术总结
本发明公开一种基于哈希词典和深度网络的音乐推荐方法,对于一首歌曲,其预定的类别或风格已经有其先验的风格分类,一首歌曲能包含多种类型风格;通过计算机统计确定音乐的分类或类别,设用户听取某个音乐时间为t分钟,总共有N首歌,听取时间分别为t1,t2,..,t


技术研发人员:俞扬 赵勐
受保护的技术使用者:南京大学
技术研发日:2023.07.25
技术公布日:2023/10/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐