1.本发明涉及推荐系统与分布式计算的交叉技术领域,具体涉及一种融合内容感知和特征相似度的推荐方法。
背景技术:
2.目前主流的音乐推荐系统是基于协同过滤的,它根据用户的听音乐习惯和与其他用户资料的相似度来预测用户的兴趣。这类方法对歌曲的内容未知,不能推荐无历史记录的新歌,存在冷启动的技术问题,为解决上述技术问题,本发明提供一种融合内容感知和特征相似度的推荐方法。
技术实现要素:
3.本发明的目的在于:为解决背景技术中提出的技术问题,本发明提供一种融合内容感知和特征相似度的推荐方法。
4.本发明为了实现上述目的具体采用以下技术方案:
5.一种融合内容感知和特征相似度的推荐方法,包括以下步骤:
6.步骤一、将原始音频输入音乐分析库essentia中,音乐分析库essentia输出特征fun(有趣)、passionate(激昂的)、sad(沮丧)、happy(欢快)、average loudness(平均响度)、electronic(电子)、音色和音高;
7.步骤二、对步骤一中fun(有趣)、passionate(激昂的)、sad(沮丧)、happy(欢快)、average loudness(平均响度)和electronic(电子)进行主成分分析得到活力程度和欢乐程度,实现特征从六维到二维的降维,得到内容特征z
i
;
8.步骤三、考虑到播放次数数据y∈r
u
×
i
,将其分解为用户偏好矩阵w∈r
k
×
i
的转置矩阵w
t
和项目属性矩阵h∈r
k
×
i
,即有:
9.y=w
t
×
h
10.其中,u表示用户,i表示项目即音乐,y
u,i
表示用户u听过的歌曲i的次数,k表示矩阵分解的范围,k从k(u i)<<ui中计算得到,用以确保降维;
11.步骤四、为了在加权矩阵分解模型中引入音乐本身的内容信息,利用步骤二中得到的内容特征z
i
对步骤三中的项目属性矩阵进行改写,采用改写后的项目属性矩阵和用户偏好矩阵的转置矩阵得到预测矩阵a(w
t
×
h
i
);
12.步骤五、对步骤一中的音色和音高进行相似度计算得到预测矩阵b;
13.步骤六、采用融合因子θ对步骤四中得到的预测矩阵a和步骤五中得到的预测矩阵b进行融合,得到最终的预测结果f
(μ,i)
,其具体表达式为:f
(μ,i)
=θa
(μ,i)
(1
‑
θ)b
(μ,i
)。
14.进一步地,所述步骤二中进行主成分分析得到内容特征的具体步骤为:
15.s1:将特征数据按列组成n行m列矩阵x,其中n为音乐项目数,m为音乐项目属性数;
16.s2:对x的每一行均减去该行的均值,实现对每一行的零均值化处理;
17.s3:计算x的协方差矩阵c,具体计算方式为:其中,矩阵c为矩阵x的协方差矩阵,m为音乐项目属性数,x
t
为x的转置矩阵;
18.s4:计算出协方差矩阵c的特征值及对应的特征向量;
19.s5:将s4中计算得到的特征向量按对应特征值大小从上到下按行排列成矩阵,并取该矩阵的前k行组成矩阵p;
20.s6:根据s1中得到的矩阵x和s5中得到的矩阵p,得到内容特征z
i
=px。
21.进一步地,所述步骤三中用户偏好矩阵w的获得方式为:用户偏好矩阵w由音乐播放次数y
u,i
得到,其中u表示用户,i表示用户u对歌曲播放的次数,只有当用户对歌曲的播放超过设定的播放时间阈值才记为播放了歌曲,否则视为没有播放该歌曲;
22.采用设定的播放时间阈值t对歌曲进行二进制化,即判断用户u是否播放了歌曲i,二进制化的具体公式为:
[0023][0024]
其中,v
u,i
为用户u是否播放音乐i一次,s
i
为用户u播放歌曲i的时长,t为设定的播放时间阈值;
[0025]
通过基于泊松分布或复合泊松分布的精细统计模型,观测数据的生成过程,具体为:
[0026][0027][0028]
其中,c
u,i
为置信度,α=2,∈=10
‑6,r
u,i
为用户偏好矩阵w和项目属性矩阵h加权矩阵分解后预测的结果,表示用户u对歌曲i的喜爱程度
[0029]
进一步地,所述步骤四中采用内容特征z
i
对项目属性进行改写的具体方式为:其中,z
i
∈r
l
是一个维数为l的内容特征向量,φ是该向量与项目属性向量h
i
之间的映射。
[0030]
进一步地,所述映射为线性映射,其具体表达方式为:φ(z
i
)=bz
i
,其中,b∈r
k
×
l
,且b=hz
t
(zz
t
λ
b
i
l
)
‑1,z=(z1,z2,......z
i
),而λ
b
是为了避免矩阵取反时数值问题,在zz
t
的对角线上增加的一个小的偏移量。
[0031]
进一步地,所述步骤五中对音高和音色进行相似性计算的具体方式为采用余弦相似度计算。
[0032]
进一步地,所述步骤五中对音高v1和音色v2进行余弦相似性计算的具体方式为:歌曲i对应一个特征向量a=(v1,v2),歌曲j对应特征向量b=(v1,v2)则有:
[0033]
a
·
b=|a|
·
|b|cosθ
[0034]
两个向量间的余弦值cosθ可通过欧几里德点积公式求出,具体为:
[0035][0036]
本发明的工作原理和有益效果:
[0037]
本发明首先对播放次数数据采用加权矩阵分解模型进行分解,具体地:将其分解为用户偏好矩阵的转置矩阵w
t
和项目(即音乐)属性矩阵h的乘积;同时考虑到项目(音乐)的特性,故在加权矩阵分解中引入了内容信息,具体引入的方式为:采用了对项目属性矩阵h进行重写的方式;重写的具体方式为:采用内容特征z
i
对项目属性矩阵h进行重写得到重写后的项目属性矩阵h
i
,采用用户偏好矩阵的转置矩阵w
t
和重写后的项目属性矩阵h
i
的乘积得到预测矩阵a(w
t
×
h
i
),而内容特征z
i
则通过对项目(音乐)的fun(有趣)、passionate(激昂的)、sad(沮丧)、happy(欢快)、average loudness(平均响度)和electronic(电子)进行pca分析得到;对项目(音乐)的音色和音高两个属性采用余弦相似度计算得到预测矩阵b,取融合因子对得到的预测矩阵a和预测矩阵b进行融合,即可得到推荐值f(μ,i),其具体表达式为f
(μ,i)
=θa
(μ,i)
(1
‑
θ)b
(μ,i)
,本发明可有效的解决推荐过程中的冷启动问题。
附图说明
[0038]
图1是本发明结构原理框图。
具体实施方式
[0039]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
[0040]
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0042]
在本发明实施方式的描述中,需要说明的是,术语“内”、“外”、“上”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0043]
实施例1
[0044]
如图1所示,一种融合内容感知和特征相似度的推荐方法,包括以下步骤:
[0045]
步骤一、将原始音频输入音乐分析库essentia中,音乐分析库essentia输出特征fun(有趣)、passionate(激昂的)、sad(沮丧)、happy(欢快)、average loudness(平均响
度)、electronic(电子)、音色和音高;
[0046]
其中,音乐分析库essentia用于音频分析和基于音频的音乐信息检索的开源c 库,它包含大量可重复使用的算法,可实现音频输入/输出功能、标准数字信号处理块、数据的统计特征以及大量频谱、时间、音调和高级音乐描述符,该库包含在python中,属于现有技术,此处不再赘述;
[0047]
步骤二、对步骤一中fun(有趣)、passionate(激昂的)、sad(沮丧)、happy(欢快)、average loudness(平均响度)和electronic(电子)进行主成分分析得到活力程度和欢乐程度,实现特征从六维到二维的降维,得到内容特征z
i
;
[0048]
其中,活力成都用来描述一首乐曲的活力和强烈程度,如唤醒、平静;欢快程度与感知到的歌曲情感内容(如欢乐、沮丧)有关;
[0049]
步骤三、考虑到播放次数数据y∈r
u
×
i
,将其分解为用户偏好矩阵w∈r
k
×
i
的转置矩阵w
t
和项目属性矩阵h∈r
k
×
i
,即有:
[0050]
y=w
t
×
h
[0051]
其中,u表示用户,i表示项目即音乐,y
u,i
表示用户u听过的歌曲i的次数,k表示矩阵分解的范围,k从k(u i)<<ui中计算得到,用以确保降维,一般情况下k(用户号偏好矩阵w的行数)的选择要比i(项目属性)矩阵的列数小,而采用k(u i)<<ui即可满足k小于i;
[0052]
步骤四、为了在加权矩阵分解模型中引入音乐本身的内容信息,利用步骤二中得到的内容特征z
i
对步骤三中的项目属性矩阵进行改写,采用改写后的项目属性矩阵和用户偏好矩阵的转置矩阵得到预测矩阵a(w
t
×
h
i
);
[0053]
步骤五、对步骤一中的音色和音高进行相似度计算得到预测矩阵b;
[0054]
步骤六、采用融合因子θ对步骤四中得到的预测矩阵a和步骤五中得到的预测矩阵b进行融合,得到最终的预测结果f
(μ,i)
,其具体表达式为:f
(μ,i)
=θa
(μ,i)
(1
‑
θ)b
(μ,i
)。
[0055]
优选地,所述步骤二中进行主成分分析得到内容特征的具体步骤为:
[0056]
s1:将特征数据按列组成n行m列矩阵x,其中n为音乐项目数,m为音乐项目属性数;
[0057]
s2:对x的每一行均减去该行的均值,实现对每一行的零均值化处理;
[0058]
s3:计算x的协方差矩阵c,具体计算方式为:其中,矩阵c为矩阵x的协方差矩阵,m为音乐项目属性数,x
t
为x的转置矩阵;
[0059]
s4:计算出协方差矩阵c的特征值及对应的特征向量;
[0060]
s5:将s4中计算得到的特征向量按对应特征值大小从上到下按行排列成矩阵,并取该矩阵的前k行组成矩阵p;
[0061]
s6:根据s1中得到的矩阵x和s5中得到的矩阵p,得到内容特征z
i
=px。
[0062]
优选地,所述步骤三中用户偏好矩阵w的获得方式为:用户偏好矩阵w即为用户矩阵u对歌曲矩阵i的播放次数,例:用户u对歌曲i播放了3次,则w
u,i
=3,w矩阵本质上为一个统计的结果;用户偏好矩阵w其由音乐播放次数y
u,i
得到,其中u表示用户,i表示用户u对歌曲播放的次数,只有当用户对歌曲的播放超过设定的播放时间阈值才记为播放了歌曲,否则视为没有播放该歌曲;
[0063]
采用设定的播放时间阈值t对歌曲进行二进制化,即判断用户u是否播放了歌曲i,二进制化的具体公式为:
[0064][0065]
其中,v
u,i
用于判断用户u是否播放音乐i一次,s
i
为用户u播放歌曲i的时长,t为设定的播放时间阈值,播放时间超过设定的时间阈值则认为用户u播放了歌曲i一次;
[0066]
通过基于泊松分布或复合泊松分布的精细统计模型,观测数据的生成过程,具体为:
[0067][0068][0069]
其中,c
u,i
为置信度,α=2,∈=10
‑6,r
u,i
为用户偏好矩阵w和项目属性矩阵h加权矩阵分解后预测的结果,表示用户u对歌曲i的喜爱程度
[0070]
优选地,所述步骤四中采用内容特征z
i
对项目属性进行改写的具体方式为:其中,z
i
∈r
l
是一个维数为l的内容特征向量,φ是该向量与项目属性向量h
i
之间的映射。
[0071]
优选地,所述映射为线性映射,其具体表达方式为:φ(z
i
)=bz
i
,其中,b∈r
k
×
l
,且b=hz
t
(zz
t
λ
b
i
l
)
‑1,z=(z1,z2,......z
i
),而λ
b
是为了避免矩阵取反时数值问题,在zz
t
的对角线上增加的一个小的偏移量。
[0072]
优选地,所述步骤五中对音高和音色进行相似性计算的具体方式为采用余弦相似度计算。
[0073]
优选地,所述步骤五中对音高v1和音色v2进行余弦相似性计算的具体方式为:歌曲i对应一个特征向量a=(v1,v2),歌曲j对应特征向量b=(v1,v2)则有:
[0074]
a
·
b=|a|
·
|b|cosθ
[0075]
两个向量间的余弦值cosθ可通过欧几里德点积公式求出,具体为:
[0076][0077]
本发明的工作原理及有益效果如下:
[0078]
本发明首先对播放次数数据采用加权矩阵分解模型进行分解,具体地:将其分解为用户偏好矩阵的转置矩阵w
t
和项目(即音乐)属性矩阵h的乘积;同时考虑到项目(音乐)的特性,故在加权矩阵分解中引入了内容信息,具体引入的方式为:采用了对项目属性矩阵h进行重写的方式;重写的具体方式为:采用内容特征z
i
对项目属性矩阵h进行重写得到重写后的项目属性矩阵h
i
,采用用户偏好矩阵的转置矩阵w
t
和重写后的项目属性矩阵h
i
的乘积得到预测矩阵a(w
t
×
h
i
),而内容特征z
i
则通过对项目(音乐)的fun(有趣)、passionate(激昂的)、sad(沮丧)、happy(欢快)、average loudness(平均响度)和electronic(电子)进行pca分析得到;对项目(音乐)的音色和音高两个属性采用余弦相似度计算得到预测矩阵b,取融合因子对得到的预测矩阵a和预测矩阵b进行融合,即可得到推荐值f(μ,i),其具体
表达式为f
(μ,i)
=θa
(μ,i)
(1
‑
θ)b
(μ,i)
,本发明可有效的解决推荐过程中的冷启动问题。
[0079]
由技术常识可知,本发明可以通过其他的不脱离其精神实质或必要特征的实施方案来实现。因此,上述公开的实施方案,就各方面而言,都只是举例说明,并不是仅有的。所有在本发明范围内或在等同于本发明的范围内的改变均被本发明包含。
转载请注明原文地址:https://doc.8miu.com/read-1719355.html