CN113220931B - 一种歌单多标签推荐方法、***、设备和存储介质 - Google Patents
一种歌单多标签推荐方法、***、设备和存储介质 Download PDFInfo
- Publication number
- CN113220931B CN113220931B CN202110316152.2A CN202110316152A CN113220931B CN 113220931 B CN113220931 B CN 113220931B CN 202110316152 A CN202110316152 A CN 202110316152A CN 113220931 B CN113220931 B CN 113220931B
- Authority
- CN
- China
- Prior art keywords
- song
- song list
- list
- label
- hash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000003860 storage Methods 0.000 title claims abstract description 13
- 238000012549 training Methods 0.000 claims abstract description 58
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 50
- 238000012360 testing method Methods 0.000 claims abstract description 40
- 238000001914 filtration Methods 0.000 claims abstract description 26
- 238000005065 mining Methods 0.000 claims abstract description 17
- 238000013507 mapping Methods 0.000 claims abstract description 12
- 239000011159 matrix material Substances 0.000 claims description 48
- 230000008569 process Effects 0.000 claims description 26
- 239000013598 vector Substances 0.000 claims description 22
- 238000004364 calculation method Methods 0.000 claims description 21
- 230000006870 function Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 16
- 238000005457 optimization Methods 0.000 claims description 16
- 230000009467 reduction Effects 0.000 claims description 7
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 10
- 238000009826 distribution Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 238000002679 ablation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/65—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/61—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/63—Querying
- G06F16/635—Filtering based on additional data, e.g. user or group profiles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种歌单多标签推荐方法、***、设备和存储介质,将歌单数据分为测试集和训练集,将训练集中的歌曲信息、歌手信息和用户信息分别采用局部敏感哈希算法计算歌曲信息哈希桶、歌手信息哈希桶和用户信息哈希桶;对测试集中的歌曲、歌手和用户信息分别根据相应哈希桶映射,得出相似歌单备选集,计算初始待推荐标签集;对根据训练集中的歌单标签集挖掘,得到标签的关联规则集合,再进行标签重排序,选择排序靠前的前A个标签进行推荐,实现歌单推荐。本发明具有更高的推荐准确性和更低的时间消耗。本发明与当前在线音乐平台所采用的基于协同过滤算法的推荐模型具有更好的兼容性,升级***推荐算法的成本和风险更低,方法简单高效。
Description
技术领域
本发明涉及音乐推荐***领域,具体涉及一种歌单多标签推荐方法、***、设备和存储介质。
背景技术
歌单标签对于改善在线音乐用户的听歌体验,鼓励用户制作个性化歌单方面具有重要作用。受益于大数据技术的发展,人们可以从大量带有专家标签的歌单中隐含地推断出歌单中歌曲的特征。协同过滤算法作为经典的推荐算法,可以帮助人们从大量数据中得出歌单的隐含信息,进而根据目标歌单获取与其相似的其他歌单,然后通过相似歌单集合计算目标歌单可能适用的标签。然而,在大数据时代下的协同过滤算法虽然应用较为广泛,但由于歌单数据的高维稀疏性,传统的协同过滤算法在进行歌单标签推荐时依然存在推荐准确度低,计算复杂度高且无法对新创作歌单进行实时在线推荐标签等问题,使得这种方法很难在实践中得以应用。
发明内容
本发明目的在于提供一种歌单多标签推荐方法、***、设备和存储介质。
为实现上述目的,本发明采用如下的技术方案实现:
一种歌单多标签推荐方法,其特征在于,
将歌单数据分为测试集和训练集,将训练集中的歌曲信息、歌手信息和用户信息分别采用局部敏感哈希算法计算歌曲信息哈希桶、歌手信息哈希桶和用户信息哈希桶;
采用局部敏感哈希算法对测试集中的歌曲、歌手和用户信息分别根据歌曲信息哈希桶、歌手信息哈希桶和用户信息哈希桶进行哈希映射,得出相似歌单备选集;
根据相似歌单备选集和每个歌单的标签相关度权值计算初始待推荐标签集;
通过FP-Growth算法对根据训练集中的歌单标签集挖掘,得到标签的关联规则集合,根据标签的关联规则集合对初始待推荐标签集进行标签重排序,选择排序靠前的前A个标签进行推荐,实现歌单推荐,A为设置值。
本发明进一步的改进在于,具体包括以下步骤:
步骤1:采集歌单数据,将歌单数据分为测试集Ltest和训练集Ltrain,使用Min-Hash算法分别将训练集Ltrain中的歌曲信息、歌手信息和用户信息歌单样本降维至N*K维,生成用户-歌单签名矩阵、歌单-歌手签名矩阵和歌单-歌曲签名矩阵;其中,N为歌单集的数量,K为Min-Hash算法中随机置换哈希函数的个数;
步骤2:将用户-歌单签名矩阵、歌单-歌手签名矩阵和歌单-歌曲签名矩阵进行LSH分桶优化,使相似样本分到同一个哈希桶中,并且对训练集Ltrain中的歌曲信息、歌手信息和用户信息的签名矩阵分别进行LSH分桶优化,得到歌单-歌曲哈希桶、歌单-歌手哈希桶与用户-歌单哈希桶;
步骤3:将测试集Ltest中目标歌单的歌曲信息、歌手信息和用户信息分别经过Min-Hash降维后的签名向量输入到对应的歌单-歌曲哈希桶、歌单-歌手哈希桶与用户-歌单哈希桶中进行相似歌单快速检索,得到目标歌单的相似歌单备选集Simset;
步骤5:通过FP-Growth算法,将训练集Ltrain中的歌单标签组合LTag进行标签关联规则挖掘,得到标签的关联规则集合rulesT;
本发明进一步的改进在于,步骤1中,歌单-歌曲签名矩阵SM通过以下过程生成:
步骤2):初始化k,生成k个不同的随机置换函数hi(x),每个置换函数hi(x)的表示如下:
本发明进一步的改进在于,步骤2中,歌单-歌曲哈希桶具体通过以下过程得到:
步骤1):将歌单-歌曲签名矩阵SM分为b段,每段由r行组成,其中b*r=k;
步骤2):对歌单-歌曲签名矩阵SM的每一列在每段上分别进行哈希分桶,得到若干哈希桶;在任意一段上被分到同一个哈希桶内的歌单认为是相似歌单;
步骤3):计算测试集中的目标歌单所能映射到的哈希桶,则此哈希桶中的歌单作为与目标歌单相似的歌单集,从而得到歌单-歌曲哈希桶;
歌单-歌曲哈希桶SimLM:
SimLM={Li→mj|i∈L,j∈M}
歌单-歌手哈希桶SimLS:
SimLS={Li→sk|i∈L,j∈S}
用户-歌单哈希桶SimLU:
SimLU={uj→Li|i∈L,j∈U}
其中,M表示训练集Ltrain中歌曲集,S表示训练集Ltrain中歌手集,U表示训练集Ltrain中用户集。
本发明进一步的改进在于,步骤4的具体过程如下:
本发明进一步的改进在于,步骤5的具体过程如下:
步骤6.1:构建项头表,构建空FP树,并扫描训练集Ltrain中的歌单标签组合,对每种标签组合进行计数,根据计数结果,删除支持度低于最小支持度min_supp的标签组合得出第一项频繁项集,将其存入项头表,然后按支持度降序排序;
步骤6.2:二次扫描训练集Ltrain中的歌单标签组合,去除非频繁一项集,按支持度降序排序,得到排好序的频繁项集;
步骤6.3:将步骤6.2中的频繁项集依次***FP树中;
步骤6.4:通过项头表,递归挖掘频繁项集,并过滤掉不满足最小置信度min_conf的频繁项集,得出关联规则集合:
其中,rulesT表示标签关联规则集合,d表示挖掘到的关联规则总数,Ri表示第i个关联规则;
支持度通过下式计算:
式中,δ(ti,tj)表示歌单标签组合[ti,tj]在Ltrain中标签组合出现的次数,δ(LTag)表示Ltrain中标签组合的总数;supp(ti→tj)表示这个组合的支持度;
置信度通过下式计算:
式中,δ(ti)表示标签ti的总数,Conf(ti→tj)表示在标签ti出现的前提下,tj标签会出现的概率。
本发明进一步的改进在于,步骤6的具体过程如下:
一种歌单多标签推荐***,包括:
哈希桶计算模块,用于将歌单数据分为测试集和训练集,将训练集中的歌曲信息、歌手信息和用户信息分别采用局部敏感哈希算法计算歌曲信息哈希桶、歌手信息哈希桶和用户信息哈希桶;
哈希映射模块,用于采用局部敏感哈希算法对测试集中的歌曲、歌手和用户信息分别根据歌曲信息哈希桶、歌手信息哈希桶和用户信息哈希桶进行哈希映射,得出相似歌单备选集;
初始待推荐标签集计算模块,用于根据相似歌单备选集和每个歌单的标签相关度权值计算初始待推荐标签集;
标签重排序模块,用于通过FP-Growth算法对根据训练集中的歌单标签集挖掘,得到标签的关联规则集合,根据标签的关联规则集合对初始待推荐标签集进行标签重排序,选择排序靠前的前A个标签进行推荐,实现歌单推荐,A为设置值。
一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器上存储有能在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述的歌单多标签推荐方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求上所述的歌单多标签推荐方法。
本发明和现有技术相比较,具有如下有益效果:
针对传统协同过滤算法在网易云歌单数据中推荐效率低下且推荐准确率不高等问题,提出了引入FP-Growth的基于LSH/Min-Hash的歌单标签推荐方法,其歌单标签推荐过程主要分为三步:首先,使用“标签频率决定权重”的思想对训练集歌单中歌单标签组合属性的权威性进行度量,通过歌单标签组合频率和逆标签频率来体现某一类标签对歌单类别的表达能力,从而解决标签推荐结果由于标签样本分布不均衡而导致的倾向与推荐热门标签的现象。其次,为了能快速的检索出测试集目标歌单的相似歌单备选集,通过Min-Hash算法对歌单数据矩阵做k次哈希运算,将歌单数据映射为N*K维的歌单签名矩阵,达到矩阵压缩与降维的效果。在得到压缩后的签名矩阵基础上,利用LSH算法进行b重哈希,将局部相似的歌单映射到同一个哈希桶中,然后将至少有一次被映射到同一个哈希桶中的歌单作为候选相似对进行相似度计算,从而生成目标歌单的最近邻居集,也即是目标歌单的相似歌单备选集,解决了由于数据规模大而导致的检索相似歌单集效率低的问题。最后,在使用此备选集中的歌单形成标签的初始推荐结果的基础上,再利用FP-Growth的标签隐信息挖掘技术,获取标签高质量的深层隐含关系对初始推荐结果进行重排序,然后选择前A个标签作为目标歌单最终的标签推荐结果,使得此推荐方法的准确性得到提升。本发明能够适应大规模歌单数据的标签推荐任务,具有结构简单,推荐高效的特点。相比于传统的协同过滤方法,本方法还能够为新创建的歌单数据作标签实时推荐的任务,且准确率高、推荐速度快。
附图说明
图1为不同标签及标签组合所含歌单数量的幂律分布图。其中,(a)为标签排名,(b)为标签组合排名。
图2为Top15标签和Top15标签组合所含歌单数量分布图。其中,(a)为单个标签分布,(b)为标签组合分布。
图3为基于改进协同过滤算法的歌单多标签推荐方法的流程图。
图4为使用LSH算法进行分桶优化的歌单签名矩阵示意图。
图5为在不同数据集规模下的推荐用时与推荐准确性的对比图。
图6为本方法(LSH)和传统协同过滤方法(TRAD)在不同优化方式下的对比图。
图7为在两种数据集规模下不同优化方式的对比图。
具体实施方式
下面结合附图对本发明做详细描述。
一种基于改进协同过滤算法的歌单多标签推荐方法,使用抓取到的十万规模网易云音乐歌单数据,将其按照1∶9的比例分为测试集歌单数据Ltest和训练集歌单数据Ltrain。
首先通过Ltrain计算出每个歌单的标签相关度权值,然后将Ltrain中的歌曲信息、歌手信息和用户信息分别使用局部敏感哈希算法计算出歌曲信息哈希桶SimLM、歌手信息哈希桶SimLS和用户信息哈希桶SimLU;
接着使用局部敏感哈希算法对Ltest中的歌曲、歌手和用户信息分别根据哈希桶进行哈希映射,得出相似歌单备选集;
然后根据相似歌单备选集计算出初始待推荐标签集RecT;
最后通过FP-Growth算法对根据训练集中的歌单标签集挖掘,得到标签的关联规则集合,根据标签的关联规则集合对初始待推荐标签集进行标签重排序,选择排序靠前的前A个标签进行推荐,从而实现歌单数据的快速、精准推荐效果。其中,A为设置值,0<A≤73。
具体包括以下步骤:
步骤1.1:首先歌单数据按1∶9分为测试集Ltest和训练集Ltrain,计算出Ltrain的每一个歌单Li的标签组合在整个Ltrain中出现的频率并且计算出歌单Li中的标签ti单独出现在Ltrain中的频率
步骤2:使用Min-Hash算法分别将Ltrain中的歌曲信息、歌手信息和用户信息歌单样本降维至N*K维,生成三种签名矩阵,且N为歌单集的数量,K为Min-Hash算法中随机置换哈希函数的个数;Ltrain中每个歌单Li包含3种类型的数据对象,分别为歌单Li的歌曲集LMi、歌手集LSi和其创建者LUi。
生成歌单-歌曲签名矩阵SM的具体过程如下:
步骤2.2:初始化k,生成k个不同的随机置换函数hi(x),每个置换函数hi(x)的表示如下:
训练集Ltrain中的歌单数据会以与歌单-歌曲签名矩阵相同的方式分别生成歌单-歌手签名矩阵和用户-歌单签名矩阵。
步骤3:将经过降维处理的Ltrain歌单签名矩阵进行LSH分桶优化,使相似样本分到同一个哈希桶(Hash-bucket)中,而不具有相似性的样本能较大概率不被分到同一个哈希桶中,并且对Ltrain中的歌曲信息、歌手信息和用户信息的签名矩阵分别进行LSH分桶优化得到三种不同的哈希桶(Hash-bucket),哈希桶的概念如下:
哈希桶是指在哈希表中具有标识的用于存储经过哈希运算后的对象中的一块区域,若多个对象经过哈希运算后落入同一个桶中,则表明发生了冲突,而此哈希桶中的对象都具有较高的相似性;
具体过程为:
步骤3.1:将歌单-歌曲签名矩阵SM分为b段,每段由r行组成,其中b*r=k;
步骤3.2:对歌单-歌曲签名矩阵SM的每一列即每个歌单的签名向量,在每段上分别进行哈希分桶,得到若干哈希桶;在任意一段上被分到同一个哈希桶内的歌单就认为是相似歌单。
步骤3.3:最终,只需要计算测试集中的目标歌单所能映射到的哈希桶,那么此哈希桶中的歌单就作为与目标歌单相似的歌单集。
步骤3.4:使用步骤3.1至步骤3.3的方式上述生成的歌单-歌曲、歌单-歌手与用户-歌单签名矩阵分别生成对应歌单-歌曲哈希桶、歌单-歌手哈希桶与用户-歌单哈希桶,具体如下:
歌单-歌曲Hash-bucket:
SimLM={Li→mj|i∈L,j∈M}
歌单-歌手Hash-bucket:
SimLS={Li→sk|i∈L,j∈S}
用户-歌单Hash-bucket:
SimLU={uj→Li|i∈L,j∈U}
其中,M表示Ltrain中歌曲集,S表示Ltrain中歌手集,U表示Ltrain中用户集。
步骤4:将Ltest中目标歌单的歌曲信息、歌手信息和用户信息分别经过Min-Hash降维后的签名向量输入到对应的歌单-歌曲哈希桶、歌单-歌手哈希桶与用户-歌单哈希桶中进行相似歌单快速检索,得到目标歌单的相似歌单备选集Simset;
步骤6:通过FP-Growth算法,将训练集Ltrain中的歌单标签组合LTag进行标签关联规则挖掘,得到标签的关联规则集合rulesT;具体过程如下:
通过FP-Growth算法,根据经验设置最小支持度min_supp和最小置信度min_conf阈值,将Ltrain中的歌单标签组合进行标签关联规则挖掘时,删除支持度小于最小支持度的标签组合,再过滤掉置信度小于最小置信度的关联规则集合,最终得到满足阈值的标签关联规则集合rulesT;其中支持度和置信度的计算公式如下;
支持度:
式中,δ(ti,tj)表示歌单标签组合[ti,tj]在Ltrain中标签组合出现的次数,δ(LTag)表示Ltrain中标签组合的总数。supp(ti→tj)表示这个组合的支持度,值越大表示这个组合出现的频率越大,两个标签越相关。
置信度:
式中,δ(ti)表示标签ti的总数,conf(ti→tj)表示在标签ti出现的前提下,tj标签会出现的概率,若置信度为1,表示标签ti出现时,标签tj一定会出现。
步骤6的具体过程如下:
步骤1:构建项头表,构建空FP树,并扫描Ltrain中的歌单标签组合,对每种标签组合进行计数,根据计数结果,删除支持度低于最小支持度min_supp的标签组合得出第一项频繁项集,将其存入项头表,然后按支持度降序排序;
步骤2:二次扫描Ltrain中的歌单标签组合,去除非频繁一项集,按支持度降序排序,得到排好序的频繁项集;
步骤3:将步骤2中的频繁项集依次***FP树中(FP树的祖先节点为排名在前的节点,子孙节点是排名靠后的节点。如果项集有公共祖先,公共节点的计数加一,如果有新节点***FP树,在项头表对应的节点也与新节点进行连接);
步骤4:通过项头表,递归挖掘频繁项集,并过滤掉不满足最小置信度min_conf的频繁项集,得出关联规则集合:
其中,rulesT表示挖掘出的标签关联规则集合,d表示挖掘到的关联规则总数,Ri表示第i个关联规则和该规则的置信度;
具体过程如下:
本发明首先将抓取到的网易云音乐歌单数据按1∶9的比例分为测试集歌单Ltest和训练集歌单Ltrain。使用Ltrain中的歌单集计算出Ltrain每个歌单的标签相关度权值,然后将Ltrain歌单数据进行降维,并进行分桶优化。对Ltest中的目标歌单进行初始标签推荐,最后使用标签的关联规则对标签初始推荐结果进行重排,得到更准确的标签推荐结果,从而实现大规模歌单数据的快速、精准标签推荐。
本发明从歌单数据的规模庞大,高维稀疏且标签分布不均匀等特点出发,将数据的多维信息以及歌单标签组合的分布信息结合起来,通过引入FP-Growth关联规则算法以及基于歌单标签组合频率和逆标签频率的歌单相关度权值计算,以此来提升标签推荐的准确性。通过在协同过滤算法中引入基于Min-Hash的局部敏感哈希算法,极大地提高了相似歌单的检索效率,降低模型的推荐用时。因此,相较于基于传统协同过滤方法的歌单标签推荐模型,本文提出的标签推荐模型的推荐准确性有较大的提升,且得益于推荐模型较低的计算复杂度,使其实现了歌单标签推荐实时性目标。值得注意的是,相比于基于深度学***台所采用的基于协同过滤算法的推荐模型具有更好的兼容性,升级***推荐算法的成本和风险更低。
下面为具体实施例。
实施例1
表1实验数据集
参见图1中(a)与(b)以及图2中的(a)和(b),本发明首先从网易云音乐平台上抓取了10万歌单数据,共有73种不同的标签Tag,有16449种不同的歌单标签组合LTag,并如表1所示,将全量歌单数据按照1∶9的比例分为测试集歌单Ltest和训练集歌单Ltrain。通过对歌单数据集中的标签进行探索发现欧美、流行等标签在整个数据集中具有极大的使用率,而游戏、粤语等这类标签使用率却很低,表现出每种标签在歌单中出现的数量占比具有较大的倾斜性,而不同歌单标签组合所拥有的歌单数量也呈现出很大的倾斜性。在这种情况下,若直接采用传统的协同过滤歌单标签推荐模型,会造成其推荐结果倾向于推荐热门标签的现象,出现即使在目标歌单与其他歌单的相似度就散的比较准确的情况下,其模型的推荐准确性反而不高。因此本发明考虑借鉴“标签频率决定权重”的思想对歌单中的标签组合权威性进行相关度量,通过歌单标签组合频率和逆标签频率来体现某一类标签对歌单类别的表达能力。
具体包括以下步骤:
步骤2:通过歌单标签组合频率和逆标签频率来体现某一类标签对歌单类别的表达能力,其计算公式如下:
式中表示歌单Li的初始权重,分子加1的目的是防止权重为负。具体的,假设对于两个拥有不同标签组合的歌单L1和L2,其歌单标签组合频率为但L1中的标签相对热门,有通过歌单初始权重计算公式可得这样做的合理性在于,L1因为拥有热门标签的积极影响,才使得其歌单标签组合频率与相等,因此需要对热门标签的影响做一定的惩罚,得出较真实的歌单标签组合权重权威值。
图3为本发明的歌单多标签推荐方法流程图,使用歌单权重初始化方式降低热门标签的影响;使用基于FP-Growth的标签关联规则挖掘技术,获取标签高质量的深层隐含关系;通过Min-Hash算法,将高维稀疏的歌单数据映射为低维稠密的歌单签名矩阵,然后在使用LSH算法对歌单进行相似度聚类,并且将其与协同过滤方法结合,从而使其更迅速、更准确的进行歌单标签推荐任务,具体包括以下步骤:
步骤1:首先,通过歌单标签组合频率和逆标签频率对歌单标签权重做初始化,将歌单标签相关度权值引入歌单相似度计算中,用标签-歌单的相关度来反映标签的概率分布。越大,表示歌单Li中的标签组合权威性越高,反之,越小,则歌单Li中的标签组合权威性越低。其计算公式如下:
步骤2:通过训练集Ltrain歌单数据集,使用Min-Hash算法分别计算歌单-歌曲、歌单-歌手和用户-歌单的签名矩阵,然后再使用LSH算法将每种签名矩阵中相似度高的歌单映射到对应的哈希桶中,根据这三种哈希桶实现快速检索出测试集Ltest中目标歌单的相似歌单备选集。其具体检索过程如下:
1)首先采用Min-Hash算法生成训练集Ltrain下三种数据集的签名矩阵,每种签名矩阵的计算方式相同,举例其歌单-歌曲签名矩阵的计算过程如下:
1.2产生k个不同的随机置换函数hi(x),置换函数中的参数ai和bi都是随机数,其值在[1,HASH_PRIME]之间,HASH_PRIME是一个大素数,其置换函数的表示如下:
1.4重复步骤1.2、1.3,直至映射完所有歌单的签名向量,生成签名矩阵SM,其表示如下:
2)然后,如图4再对计算完成的签名矩阵SM做LSH分桶优化,具体过程可分三步:
2.1将签名矩阵SM分为b段,每段由r行组成,其中b*r=k;
2.2、将矩阵中每个签名向量的每段上都进行哈希分桶,能映射到同一个桶中的任意段都作为相似段,则这些段所对应的歌单认为是相似歌单;
2.3、进行目标歌单的相似歌单集检索时,只需计算目标歌单的签名向量所能映射到的哈希桶,那么此桶中的歌单就作为目标歌单的相似歌单备选集。
步骤4:选取前z个最大推荐指标的标签作为目标歌单的初始推荐推荐结果RecT,其表示如下:
步骤5:使用初始推荐结果RecT和通过FP-Growth挖掘出的标签关联规则rulesT对待推荐标签作重排序,其重排序的计算方式为:
相比于传统的协同过滤推荐方法,本发明推荐准确率高,推荐速度快,并且可进行在线实时推荐,方法简单有效。
图5所示为本发明提出的改进协同过滤多标签推荐方法(LSH)和传统协同过滤推荐方法(TRAD)在推荐准确率和推荐效率方面的比较。其推荐方法的效果评估是通过精确率precision和召回率recall计算F1值,使用F1值作为推荐结果的评价指标,以下是其定义:
精确率:
其中,rec_true_num表示推荐正确的标签数,rec_tags_num表示推荐的标签数.精确率越高,则表示推荐正确的标签数占推荐的总标签数的比例越大。
召回率:
其中,test_tags_num表示实际正确的标签数。召回率越高,则表示推荐正确的标签数占实际正确的总标签数的比例越大。
F1值:
F1值作为对精确率precision和召回率recall的加权调和,其综合考虑了两者对模型准确性评价的影响,F1值越高,表示推荐模型的整体准确性越稳定,反之亦然。
表2歌单在线推荐准确性对比结果
表3本发明在歌单在线实时推荐场景下的结果
表4为消融实验具体描述信息
表2和表3所示为本发明和传统协同过滤推荐方法在歌单在线实时推荐场景下的对比结果。表4以及图6-图7所示是为了验证本发明的各项改进方法是否有效,在真实歌单数据上本发明与传统协同过滤方法在未使用或部分使用某项改进方式后的歌单多标签推荐的对比结果。参见表2-表4以及图6-图7,比较的结果说明了本发明所提出的各项改进方式都能极好的提升歌单标签推荐任务的效果,具有更好的推荐准确性和推荐实时性。
在该发明中提出了:1)基于标签组合频率和逆标签频率的歌单相关度权值计算,2)基于LSH/Min-Hash的协同过滤推荐方法,3)基于FP-Growth的标签重排方法。主要解决了传统协同过滤方法在进行歌单标签推荐是存在推荐准确度低、计算复杂度高且无法对新创作的歌单进行实时在线推荐标签的问题。针对推荐效率和在线实时推荐问题,本发明提出了使用基于LSH/Min-Hash的协同过滤歌单推荐方法,使其能根据目标歌单能快速检索出相似歌单备选集,实现了相似歌单的快速查询,在降低算法计算复杂度的同时也支持对新制作歌单的标签在线推荐。针对推荐的准确度提升问题,本发明通过歌单标签组合频率和逆标签频率计算歌单相关度权值,然后使用加权融合策略计算标签待推荐指数,最后再利用计算出的标签关联规则对候选标签组合进行标签重排得到最终的推荐标签。基于网易云音乐真实歌单数据的实验结果表明,该发明在经过权重及关联规则优化后的推荐结果,其推荐评价指标F1值比传统的协同过滤方法有较大幅度提升,且平均运行时间相较于传统协同过滤方法有了极大的改善。
一种歌单多标签推荐***,包括:
哈希桶计算模块,用于将歌单数据分为测试集和训练集,将训练集中的歌曲信息、歌手信息和用户信息分别采用局部敏感哈希算法计算歌曲信息哈希桶、歌手信息哈希桶和用户信息哈希桶;
哈希映射模块,用于采用局部敏感哈希算法对测试集中的歌曲、歌手和用户信息分别根据歌曲信息哈希桶、歌手信息哈希桶和用户信息哈希桶进行哈希映射,得出相似歌单备选集;
初始待推荐标签集计算模块,用于根据相似歌单备选集和每个歌单的标签相关度权值计算初始待推荐标签集;
标签重排序模块,用于通过FP-Growth算法对根据训练集中的歌单标签集挖掘,得到标签的关联规则集合,根据标签的关联规则集合对初始待推荐标签集进行标签重排序,选择排序靠前的前A个标签进行推荐,实现歌单推荐。
一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器上存储有能在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的歌单多标签推荐方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至7中任一项所述的歌单多标签推荐方法。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本发明中,“模块”、“装置”、“***”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地***、分布式***中另一元件交互的,和/或在因特网的网络通过信号与其它***交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (8)
1.一种歌单多标签推荐方法,其特征在于,包括以下步骤:
步骤1:采集歌单数据,将歌单数据分为测试集Ltest和训练集Ltrain,使用Min-Hash算法分别将训练集Ltrain中的歌曲信息、歌手信息和用户信息歌单样本降维至N*K维,生成用户-歌单签名矩阵、歌单-歌手签名矩阵和歌单-歌曲签名矩阵;其中,N为歌单集的数量,K为Min-Hash算法中随机置换哈希函数的个数;
步骤2:将用户-歌单签名矩阵、歌单-歌手签名矩阵和歌单-歌曲签名矩阵进行LSH分桶优化,使相似样本分到同一个哈希桶中,并且对训练集Ltrain中的歌曲信息、歌手信息和用户信息的签名矩阵分别进行LSH分桶优化,得到歌单-歌曲哈希桶、歌单-歌手哈希桶与用户-歌单哈希桶;
步骤3:将测试集Ltest中目标歌单的歌曲信息、歌手信息和用户信息分别经过Min-Hash降维后的签名向量输入到对应的歌单-歌曲哈希桶、歌单-歌手哈希桶与用户-歌单哈希桶中进行相似歌单快速检索,得到目标歌单的相似歌单备选集Simset;
步骤5:通过FP-Growth算法,将训练集Ltrain中的歌单标签组合LTag进行标签关联规则挖掘,得到标签的关联规则集合rulesT;步骤5的具体过程如下:
步骤6.1:构建项头表,构建空FP树,并扫描训练集Ltrain中的歌单标签组合,对每种标签组合进行计数,根据计数结果,删除支持度低于最小支持度min_supp的标签组合得出第一项频繁项集,将其存入项头表,然后按支持度降序排序;
步骤6.2:二次扫描训练集Ltrain中的歌单标签组合,去除非频繁一项集,按支持度降序排序,得到排好序的频繁项集;
步骤6.3:将步骤6.2中的频繁项集依次***FP树中;
步骤6.4:通过项头表,递归挖掘频繁项集,并过滤掉不满足最小置信度min_conf的频繁项集,得出关联规则集合:
其中,rulesT表示标签关联规则集合,d表示挖掘到的关联规则总数,Ri表示第i个关联规则;
支持度通过下式计算:
式中,δ(ti,tj)表示歌单标签组合[ti,tj]在Ltrain中标签组合出现的次数,δ(LTag)表示Ltrain中标签组合的总数;supp(ti→tj)表示这个组合的支持度;
置信度通过下式计算:
式中,δ(ti)表示标签ti的总数,conf(ti→tj)表示在标签ti出现的前提下,tj标签会出现的概率;
2.根据权利要求1所述的一种歌单多标签推荐方法,其特征在于,步骤1中,歌单-歌曲签名矩阵SM通过以下过程生成:
步骤2):初始化k,生成k个不同的随机置换函数hi(x),每个置换函数hi(x)的表示如下:
3.根据权利要求1所述的一种歌单多标签推荐方法,其特征在于,步骤2中,歌单-歌曲哈希桶具体通过以下过程得到:
步骤1):将歌单-歌曲签名矩阵SM分为b段,每段由r行组成,其中b*r=k;
步骤2):对歌单-歌曲签名矩阵SM的每一列在每段上分别进行哈希分桶,得到若干哈希桶;在任意一段上被分到同一个哈希桶内的歌单认为是相似歌单;
步骤3):计算测试集中的目标歌单所能映射到的哈希桶,则此哈希桶中的歌单作为与目标歌单相似的歌单集,从而得到歌单-歌曲哈希桶;
歌单-歌曲哈希桶SimLM:
SimLM={Li→mj|i∈L,j∈M}
歌单-歌手哈希桶SimLS:
SimLS={Li→sk|i∈L,j∈S}
用户-歌单哈希桶SimLU:
SimLU={uj→Li|i∈L,j∈U}
其中,M表示训练集Ltrain中歌曲集,S表示训练集Ltrain中歌手集,U表示训练集Ltrain中用户集。
6.一种歌单多标签推荐***,其特征在于,包括:
签名矩阵生成模块,用于采集歌单数据,将歌单数据分为测试集Ltest和训练集Ltrain,使用Min-Hash算法分别将训练集Ltrain中的歌曲信息、歌手信息和用户信息歌单样本降维至N*K维,生成用户-歌单签名矩阵、歌单-歌手签名矩阵和歌单-歌曲签名矩阵;其中,N为歌单集的数量,K为Min-Hash算法中随机置换哈希函数的个数;
哈希桶优化块,用于将用户-歌单签名矩阵、歌单-歌手签名矩阵和歌单-歌曲签名矩阵进行LSH分桶优化,使相似样本分到同一个哈希桶中,并且对训练集Ltrain中的歌曲信息、歌手信息和用户信息的签名矩阵分别进行LSH分桶优化,得到歌单-歌曲哈希桶、歌单-歌手哈希桶与用户-歌单哈希桶;
签名向量检索模块,用于将测试集Ltest中目标歌单的歌曲信息、歌手信息和用户信息分别经过Min-Hash降维后的签名向量输入到对应的歌单-歌曲哈希桶、歌单-歌手哈希桶与用户-歌单哈希桶中进行相似歌单快速检索,得到目标歌单的相似歌单备选集Simset;
标签关联规则挖掘模块,用于通过FP-Growth算法,将训练集Ltrain中的歌单标签组合LTag进行标签关联规则挖掘,得到标签的关联规则集合rulesT;
7.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器上存储有能在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的歌单多标签推荐方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至5中任一项所述的歌单多标签推荐方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110316152.2A CN113220931B (zh) | 2021-03-24 | 2021-03-24 | 一种歌单多标签推荐方法、***、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110316152.2A CN113220931B (zh) | 2021-03-24 | 2021-03-24 | 一种歌单多标签推荐方法、***、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220931A CN113220931A (zh) | 2021-08-06 |
CN113220931B true CN113220931B (zh) | 2023-01-03 |
Family
ID=77083949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110316152.2A Active CN113220931B (zh) | 2021-03-24 | 2021-03-24 | 一种歌单多标签推荐方法、***、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220931B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227881A (zh) * | 2016-08-04 | 2016-12-14 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及服务器 |
CN108334601A (zh) * | 2018-01-31 | 2018-07-27 | 腾讯音乐娱乐科技(深圳)有限公司 | 基于标签主题模型的歌曲推荐方法、装置及存储介质 |
CN108717442A (zh) * | 2018-05-16 | 2018-10-30 | 成都市极米科技有限公司 | 基于机器学习的相似影视推荐方法 |
CN109102326A (zh) * | 2018-07-15 | 2018-12-28 | 山东工业职业学院 | 一种基于大数据特征分析的云餐饮平台及分析方法 |
CN109299366A (zh) * | 2018-09-28 | 2019-02-01 | 西安交通大学深圳研究院 | 一种基于内容相似度实时计算的网络数据分类推荐*** |
CN109299313A (zh) * | 2018-08-03 | 2019-02-01 | 昆明理工大学 | 一种基于FP-growth的歌曲推荐方法 |
KR20200045310A (ko) * | 2018-10-22 | 2020-05-04 | 삼성에스디에스 주식회사 | 해시태그 기반의 정보 추천 방법 및 이를 수행하기 위한 단말 |
CN111738807A (zh) * | 2020-07-23 | 2020-10-02 | 上海众旦信息科技有限公司 | 用于推荐目标对象的方法、计算设备和计算机存储介质 |
-
2021
- 2021-03-24 CN CN202110316152.2A patent/CN113220931B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227881A (zh) * | 2016-08-04 | 2016-12-14 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及服务器 |
CN108334601A (zh) * | 2018-01-31 | 2018-07-27 | 腾讯音乐娱乐科技(深圳)有限公司 | 基于标签主题模型的歌曲推荐方法、装置及存储介质 |
CN108717442A (zh) * | 2018-05-16 | 2018-10-30 | 成都市极米科技有限公司 | 基于机器学习的相似影视推荐方法 |
CN109102326A (zh) * | 2018-07-15 | 2018-12-28 | 山东工业职业学院 | 一种基于大数据特征分析的云餐饮平台及分析方法 |
CN109299313A (zh) * | 2018-08-03 | 2019-02-01 | 昆明理工大学 | 一种基于FP-growth的歌曲推荐方法 |
CN109299366A (zh) * | 2018-09-28 | 2019-02-01 | 西安交通大学深圳研究院 | 一种基于内容相似度实时计算的网络数据分类推荐*** |
KR20200045310A (ko) * | 2018-10-22 | 2020-05-04 | 삼성에스디에스 주식회사 | 해시태그 기반의 정보 추천 방법 및 이를 수행하기 위한 단말 |
CN111738807A (zh) * | 2020-07-23 | 2020-10-02 | 上海众旦信息科技有限公司 | 用于推荐目标对象的方法、计算设备和计算机存储介质 |
Non-Patent Citations (2)
Title |
---|
"A conceptual framework for building a mobile services" recommendation engine";Ivan Ganchev et al.;《International IEEE Conference on Intelligent Systems》;20161110;全文 * |
"LSH-RTRS:基于局部敏感哈希技术的能耗社区实时推荐***";韩军辉 等;《万方数据知识服务平台》;20180427;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113220931A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102092691B1 (ko) | 웹페이지 트레이닝 방법 및 기기, 그리고 검색 의도 식별 방법 및 기기 | |
CN108804641B (zh) | 一种文本相似度的计算方法、装置、设备和存储介质 | |
CN108363821A (zh) | 一种信息推送方法、装置、终端设备及存储介质 | |
CN105701216B (zh) | 一种信息推送方法及装置 | |
CN102053971B (zh) | 用于面向排序的协同过滤的推荐方法和设备 | |
CN110688474B (zh) | 基于深度学习与链接预测的嵌入表示获得及引文推荐方法 | |
US20070112867A1 (en) | Methods and apparatus for rank-based response set clustering | |
CN108647322B (zh) | 基于词网识别大量Web文本信息相似度的方法 | |
WO2013066929A1 (en) | Method and apparatus of ranking search results, and search method and apparatus | |
CN110929161A (zh) | 一种面向大规模用户的个性化教学资源推荐方法 | |
CN107291895B (zh) | 一种快速的层次化文档查询方法 | |
CN110188197A (zh) | 一种用于标注平台的主动学习方法及装置 | |
CN109933660A (zh) | 面向自然语言形式的基于讲义和Stack Overflow的API信息检索方法 | |
Zhou et al. | Relevance feature mapping for content-based multimedia information retrieval | |
CN110096499A (zh) | 一种基于行为时间序列大数据的用户对象识别方法及*** | |
CN103761286B (zh) | 一种基于用户兴趣的服务资源检索方法 | |
CN106126681B (zh) | 一种增量式流式数据聚类方法及*** | |
CN111078859A (zh) | 一种基于引用次数的作者推荐方法 | |
CN114722086A (zh) | 一种搜索重排模型的确定方法及装置 | |
CN110472659A (zh) | 数据处理方法、装置、计算机可读存储介质和计算机设备 | |
CN102760127B (zh) | 基于扩展文本信息来确定资源类型的方法、装置及设备 | |
CN106294784B (zh) | 资源搜索方法及装置 | |
CN103186650A (zh) | 一种搜索方法和装置 | |
CN113220931B (zh) | 一种歌单多标签推荐方法、***、设备和存储介质 | |
CN115098728A (zh) | 视频检索方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |