本发明属于机器学习、推荐系统以及文本分类领域,具体涉及一种基于自适应cnn和半监督自训练模型的音乐分类方法。
背景技术:
随着网络技术的飞速发展,在线音乐规模不断扩大,互联网上可供用户选择的音乐呈指数级增长。对于音乐而言,情感是最为本质的特征,然而大部分音乐对于情感的分类不明确,导致了对音乐分类不够细致,而且用户喜好的音乐类型可能包含多种音乐风格,导致待分类音乐规模较大,音乐分类难度大,使得用户难以找到自己喜欢的音乐。因此,在进行音乐进行分类的过程中,除了需要先对音乐歌词本身进行向量转换,还需要对其中隐含的情感特征进行抽取,以便能从音乐本身提取到足够的特征。
由于音乐歌词中包含了作者赋予音乐的情感,罗基敏等人认为音乐与歌词之间存在互动关系,歌词对于人们不仅有听觉上的美感还有情感的共鸣。目前,文本分类已经广泛应用于垃圾邮件判定,为图文视频打标签,电商评论分析等多个研究领域。在音乐领域中,也有一些研究提出了使用机器学习算法来对音乐进行一级分类,zhu等人提出利用支持向量机的方法对音乐进行分类;zhen等人提出利用前向神经网络对音乐进行分类;jia等人提出利用lstm对歌词提取时序特征,进而实现对歌曲的分类。目前,对于音乐的分类是基于歌词本身,尚未挖掘歌词中包含的深层次的情感属性,且将两部分结合起来的模型。与此同时,监督的分类算法需要有大量的标签数据,然而在海量的数据中,获得大量的标签数据需要大量的人工,且依靠人为方式划分音乐风格存在很多弊端,如分类效率低、音乐风格归属判断困难大等问题。
技术实现要素:
为解决以上现有技术存在的问题,本发明提出了一种基于自适应cnn和半监督自训练模型的音乐分类方法,该方法包括:
s1:获取歌曲的歌词数据,将获取的歌词数据输入到数据库的列表中;
s2:采用预训练的bert模型对列表中的歌词数据进行处理,转化为句子向量;
s3:采用dutir中文情绪识别模型提取列表中歌词数据的情感,得到情感特征向量;
s4:将句子向量和情感特征向量进行拼接,得到拼接向量;
s5:将拼接向量输入到训练好的自适应cnn模型中进行初步分类,得到初步分类结果;
s6:将初步分类结果输入到半监督自训练模型进行精细分类,得到精细划分标签;
s7:根据精细划分标签对输入的音乐数据进行精细分类。
优选的,对自适应cnn模型进行训练的过程包括:
步骤1:获取歌曲库中的歌曲数据,对各首歌曲数据进行预处理,得到模型训练样本集;
步骤2:将训练样本集中的拼接向量输入到自适应cnn模型的attention层,提取拼接向量的关键信息;
步骤3:将拼接向量输入到自适应cnn模型的卷积层提取关键信息的主要特征;主要特征的获取包括采用不同大小的卷积核分别提取关键信息的不同的特征和隐藏特征,将所有提取的不同特征和隐藏特征进行融合,得到主要特征;
步骤4:将主要特征输入到最大池化层降低特征维度,得到初步分类结果,完成自适应cnn模型的训练。
进一步的,对各首歌曲数据进行预处理包括提取各首歌曲的歌词,构建歌词列表;采用bert模型将歌词列表中的数据转化为句子向量;提取列表中歌词数据的情感特征向量;将句子向量和情感特征向量进行拼接,得到训练集。
进一步的,在attention层提取关键信息的公式为:
进一步的,得到主要特征的公式为:
优选的,半监督自训练模型包括三个不同的分类器;对半监督自训练模型处理数据的过程包括:
步骤1:将所有的初步分类结果进行集合,得到初步分类样本集;将初步分类样本集分成三个初步分类样本子集;
步骤2:将三个初步分类样本子集分别输入到三个不同的分类器中进行初步训练,得到三种分类结果;
步骤3:通过三种分类结果判断输入的数据分类是否完善,直到所有的初步分类样本集中的数据处理完,则停止模型的训练。
进一步的,对三个分类器进行初步训练的公式为:
out=[outhavelevel2,outhaven′tleve]
outhavelevel=[o-input1,o-input2,o-input3]
o-input1→classifier1
o-input2→classifier2
o-input3→classifier3
进一步的,三个分类器的输出结果包括:
进一步的,判断最终得到的输入的数据分类是否完善的结果包括:
若三个分类器的结果相同,则输出分类结果;
若其中两个分类器的结果相同,第三个分类器的结果不同,则将相同两个分类器的训练结果存储在第三个分类器的训练集的末尾,继续训练,直到结果相同为止;
若三个分类器的结果都不同,则将所有的词条数据重新放入未训练的数据集中,直到所有的数据都训练完成。
本发明采用基于注意力机制的监督深度学习模型对整体音乐进行粗分类,首先本发明利用bert将歌词转化为向量,bert充分考虑了歌词中的时序关系;然后利用dutir中文情绪识别工具对歌词进行情感向量提取;本发明采用基于协同训练的半监督算法对初步分类的结果进行精细划分,使用户能准确的查找到自己喜欢的音乐,节约了用户的时间,提高了查找的精准度。
附图说明
图1是本发明实施例提供的总方法流程图;
图2是本发明内容提供的模型示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在不付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了实现更精确音乐分类,本发明提出挖掘深层次的音乐特征,在预处理阶段置入音乐本身的特征以及歌词包含的情感特征,并将预处理过后的特征置入注意力层,将提取的特征置入卷积神经网络中。在预处理阶段将用户能直观看到的音乐歌词,在考虑歌词上下文的情况下转化为向量,并在此基础上加入歌词的情感特征,将两者融合的特征作为输入矩阵。在预处理过后引入注意力机制,从输入矩阵中选择对当前分类而说更关键的信息。
一种基于自适应cnn和半监督自训练模型的音乐分类方法,如图1所示,该方法包括:
s1:获取歌曲的歌词数据,将获取的歌词数据输入到数据库的列表中;
s2:采用预训练的bert模型对列表中的歌词数据进行处理,转化为句子向量;
s3:采用dutir中文情绪识别模型提取列表中歌词数据的情感,得到情感特征向量;
s4:将句子向量和情感特征向量进行拼接,得到拼接向量;
s5:将拼接向量输入到训练好的自适应cnn模型中初步分类,得到初步分类结果;
s6:将初步分类结果输入到半监督自训练模型进行精细分类,得到精细划分标签;
s7:根据精细划分标签对输入的音乐数据进行精细分类。
获取的歌曲库中的歌曲数据包括以一个音乐平台的57992首歌为例,其中41256首歌带有一级标签,在41256首歌带有一级标签中有21532首带有二级标签的歌;通过41256首待标签的歌曲将剩下的16732首未带标签的歌实现精细分类。在进行精细分类时,需要将待分类的数据划分为12个一级分类,每个一级分类下有16个二级分类。
对数据进行预处理的过程包括:
步骤1-a:将爬取的57992首歌曲的歌词数据置入列表,然后将列表中的数据输入到预训练的bert模型中,转化为句子向量;转换的句子向量为:
其中,sseq表示歌词列表,wi表示第i首歌的歌词数据,
步骤1-b:采用dutir中文情绪识别模型提取歌词中的情感特征;具体的表达式为:
e1=dutir2(s1)
e2=dutir7(s1)
e3=dutir21(s1)
s2=[e1,e2,e3]
由于dutir有三种不同的情绪分类方式,分别分为2维、7维、21维,将数据处理过后将所有的情绪分类的结果拼接起来组成30维的歌词情感向量。s2设置为30×256维的向量。
步骤1-c:将句子向量和情感特征向量进行拼接,得到拼接向量,将拼接向量进行集合,得到样本训练集。向量拼接的公式为:
sinput=[s1,s2]
其中,sinput是31×256的矩阵。
步骤2:将训练样本集中的拼接向量输入到自适应cnn模型的attention层,提取拼接向量的关键信息;提取关键信息的具体公式为:
q=w1×sinput
k=w2×sinput
v=w3×sinput
其中,q,k,v表示对拼接向量的不同权重的表示,即q表示第一情感特征向量权重,k表示第二情感特征向量权重、v表示第三情感特征向量权重,dk表示拼接向量的维度,softmax表示对括号中的所用进行softmax操作,kt表示k的转置。w1、w2、w3为根据拼接向量sinput设计的不同的权重矩阵,均为256×64的矩阵,w1主要针对转化的歌词向量,w2、w3主要针对提取的情感特征。dk为拼接向量sinput的维度,256。输出的scon的维度为31×256。
步骤3:将拼接向量输入到自适应cnn模型的卷积层提取关键信息的主要特征;主要特征的获取包括采用不同大小的卷积核分别提取关键信息的不同的特征和隐藏特征,将所有提取的不同特征和隐藏特征进行融合,得到主要特征。具体的公式为:
v=[c4,c5,c6]
其中,
步骤4:将主要特征输入到最大池化层降低特征维度,得到初步分类结果。
步骤4-1:利用最大池化层降低特征维度,其公式为:
vpooling=max_pooling(v)
其中,max_pooling(.)表示最大池化层,v表示。
步骤4-2:将经过池化的特征输入到全连接层中,并用relu函数作为激活函数,得到第一特征v1,并将第一特征输入到第二个全连接层中进行运算。其公式为:
v1=f1(vpooling*w1 b1)
其中,v1表示第一次全连接的结果,f1表示激活函数,w1表示权重矩阵,b1表示偏置函数。
步骤4-3:将全连接层连接softmax层,通过softmax层输出一个最具有代表性的一级分类。一级分类结果为:
out=softmax(v1*w2 b2)
其中,w2表示权重矩阵,b2表示偏置函数。
将一级分类结果输入到半监督自训练模型中进行精细划分。
优选的,本发明的二级分类总数至少包含1个半监督自训练模型。
本实施例中选取的二级分类总数为16个半监督自训练模型,即:
training-model1,training-model2,...,training-model16
半监督自训练模型包括三个不同的分类器。半监督自训练模型为:
training-modeli=[classifier1,classifier2,classifier3]
其中,classifier1表示第一分类器,classifier2表示第二分类器,classifier3表示第三分类器。
如图2所示,对半监督自训练模型进行训练的过程包括:
步骤1:将初步分类结果分成三份;
步骤2::将三份初步分类结果分别输入到三个不同的分类器中进行初步训练,得到三种分类结果;
对三个分类器进行初步训练的公式为:
out=[outhavelevel2,outha′tleve]
outhavlevel2=[o-input1,o-input2,o-input3]
o-input1→classifier1
o-input2→classifier2
o-input3→classifier3
其中,outhaven′tleve表示没有打标签的数据,outhavelevel2表示打标签的数据,o-input1表示,classifier1表示第一分类器,classifier2表示第二分类器,classifier3表示第三分类器。
三个分类器的输出结果包括:
其中,outhaven′tle表示没有打标签的数据,result1表示第一分类器的输出结果,result2表示第二分类器的输出结果,result3表示第三分类器的输出结果。
步骤3:通过三种分类结果判断最终得到的输入的数据分类是否完善,直到所有的训练数据处理完,则完成模型的训练。
判断最终得到的输入的数据分类是否完善的结果包括:
若三个分类器的结果相同,则输出分类结果;
ifresult1=result2=result3:
output→result1
若其中两个分类器的结果相同,第三个分类器的结果不同,则将相同两个分类器的训练结果存储在第三个分类器的训练集的末尾,继续训练,直到结果相同为止;
elifresult1=result2!=result3:
若三个分类器的结果都不同,则将所有的词条数据重新放入未训练的数据集中,直到所有的数据都训练完成。
elifresult1!=result2!=result3:
直到outhave′tlevel2中的数据全部输出。
以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种基于自适应cnn和半监督自训练模型的音乐分类方法,其特征在在于,包括:
s1:获取歌曲的歌词数据,将获取的歌词数据输入到数据库的列表中;
s2:采用预训练的bert模型对列表中的歌词数据进行处理,转化为句子向量;
s3:采用dutir中文情绪识别模型提取列表中歌词数据的情感,得到情感特征向量;
s4:将句子向量和情感特征向量进行拼接,得到拼接向量;
s5:将拼接向量输入到训练好的自适应cnn模型中进行初步分类,得到初步分类结果;
s6:将初步分类结果输入到半监督自训练模型进行精细分类,得到精细划分标签;
s7:根据精细划分标签对输入的音乐数据进行精细分类。
2.根据权利要求1所述的一种基于自适应cnn和半监督自训练模型的音乐分类方法,其特征在在于,对自适应cnn模型进行训练的过程包括:
步骤1:获取歌曲库中的歌曲数据,对各首歌曲数据进行预处理,得到模型训练样本集;
步骤2:将训练样本集中的拼接向量输入到自适应cnn模型的attention层,提取拼接向量的关键信息;
步骤3:将拼接向量输入到自适应cnn模型的卷积层提取关键信息的主要特征;主要特征的获取包括采用不同大小的卷积核分别提取关键信息的不同的特征和隐藏特征,将所有提取的不同特征和隐藏特征进行融合,得到主要特征;
步骤4:将主要特征输入到最大池化层降低特征维度,得到初步分类结果。
3.根据权利要求2所述的一种基于自适应cnn和半监督自训练模型的音乐分类方法,其特征在在于,对各首歌曲数据进行预处理包括提取各首歌曲的歌词,构建歌词列表;采用bert模型将歌词列表中的数据转化为句子向量;提取列表中歌词数据的情感特征向量;将句子向量和情感特征向量进行拼接,得到训练集。
4.根据权利要求2所述的一种基于自适应cnn和半监督自训练模型的音乐分类方法,其特征在在于,在attention层提取关键信息的公式为:
其中,q,k,v分别表示对拼接向量的不同权重的表示,dk表示拼接向量的维度,softmax表示对括号中的所用进行softmax操作,kt表示k的转置。
5.根据权利要求2所述的一种基于自适应cnn和半监督自训练模型的音乐分类方法,其特征在在于,得到主要特征的公式为:
其中,
6.根据权利要求1所述的一种基于自适应cnn和半监督自训练模型的音乐分类方法,其特征在在于,半监督自训练模型包括三个不同的分类器;半监督自训练模型处理数据的过程包括:
步骤1:将所有的初步分类结果进行集合,得到初步分类样本集;将初步分类样本集分成三个初步分类样本子集;
步骤2::将三个初步分类样本子集分别输入到三个不同的分类器中进行初步训练,得到三种分类结果;
步骤3:通过三种分类结果判断输入的数据分类是否完善,直到所有的初步分类样本集中的数据处理完,则停止模型的训练。
7.根据权利要求6所述的一种基于自适应cnn和半监督自训练模型的音乐分类方法,其特征在在于,对三个分类器进行初步训练的公式为:
out=[outhavelevel,outhaven′tlev]
outhavelevel=[o-input1,o-input2,o-input3]
o-input1→classifier1
o-input2→classifier2
o-input3→classifier3
其中,outhaven′tlev表示没有打标签的数据,outhavelevel2表示打标签的数据,o-input1表示第一分类器输入的样本数据,o-input2表示第二分类器输入的样本数,o-input3表示第三分类器输入的样本数据,classifier1表示第一分类器,classifier2表示第二分类器,classifier3表示第三分类器。
8.根据权利要求6所述的一种基于自适应cnn和半监督自训练模型的音乐分类方法,其特征在在于,三个分类器的输出结果包括:
其中,outhave′tlevel2表示没有打标签的数据,classifier1表示第一分类器,classifier2表示第二分类器,classifier3表示第三分类器,result1表示第一分类器的输出结果,result2表示第二分类器的输出结果,result3表示第三分类器的输出结果。
9.根据权利要求6所述的一种基于自适应cnn和半监督自训练模型的音乐分类方法,其特征在在于,判断最终得到的输入的数据分类是否完善的结果包括:
若三个分类器的结果相同,则输出分类结果;
若其中两个分类器的结果相同,第三个分类器的结果不同,则将相同两个分类器的训练结果存储在第三个分类器的训练集的末尾,继续训练,直到结果相同为止;
若三个分类器的结果都不同,则将所有的词条数据重新放入未训练的数据集中,直到所有的数据都训练完成。
技术总结