基于深度神经网络的音乐 推荐系统设计与实现(源码+万字报告+讲解)(支持资料、图片参考_相关定制)

前 言
21世纪是信息化时代,随着信息技术和网络技术的发展,与人们的日常生活早已建立了离不开的联系。对网络音乐服务来说,不管是音乐下载服务,或者是网络音乐电台服务,都需要用到优秀的内容推荐系统去辅助整个系统。个性化音乐推荐系统是目前最流行的应用方法之一。
现有的基于内容的音乐推荐系统通常采用两阶段的方法。他们首先提取传统的音频内容特征,如梅尔频率倒谱系数(1),然后预测用户偏好。然而,这些传统的特性最初不是为音乐推荐而设计的,不能捕捉音频中的所有相关信息,从而限制推荐性能。基于深度信任的新模型网络和概率图模型,我们统一进入一个自动化的过程,同时学习。从音频内容的特点,并提出个性化的建议。与现有的基于深度学习的模型,我们的模型优于他们在暖启动不依赖协同过滤(CF)的冷启动阶段。然后,我们提出了一种有效的混合方法无缝集成自动学习的功能,我们的混合方法不仅大大改善了CF的性能,也优于传统的基于特征的混合方法。
本系统在基于内容的音乐推荐部分采用了Google开源框架Tensorflow的CNN模型,
音乐系统的实现基于Django(后台服务器端)+Layui(前端模板框架)+Mysql数据库+Redis缓存数据库,在基于用户的协同过滤部分采用了有关矩阵相似度之间的计算方程。

(1)梅尔频率倒谱系数 (Mel-Frequency Cepstral Coefficients,MFCCs)就是组成梅尔频率倒谱的系数。他们派生自音频片段的倒谱(cepstrum)表示(anonlinear”spectrun-of-a-spectrum”)。倒谱和梅尔频率倒谱的区别在于,梅尔频率倒谱的频带划分是在梅尔刻度上等距划分的,它比用于正常的对数倒频谱中的线性间隔的频带更能近似人类的听觉系统。这种频率弯曲可以更好的表示声音,例如音频压缩。

第一章 绪 论
本章首先介绍了论文的研究背景,其次简单介绍了本文所做的主要内容,在本章的最后介绍了论文的组织结构。
1.1 论文研究背景
近年来,在互联网大数据发展日益高涨的今天,各种应用开始使用推荐算法,如新闻推荐类的今日头条,短视频类的抖音、快手,网易云音乐的私人FM(调频广播),荔枝FM的推荐,传统视频网站的爱奇艺,bilibili等,都开始使用推荐算法使得自己所拥有的或者说是面向的用户群体更为广泛,而全自动化、优良的推荐算法使得相关工作人员摆脱了原有的手工设置权重,提高了工作效率。在过去,一款没有内容推荐的APP所有人打开都是一样的,但是现如今所有的APP每个人打开所得到的推荐内容是不一样的,无论是新闻系的今日头条,还是短视频系列的所有APP,以及推荐算法和推荐系统的出现,使得有一股隐形的力量在挖掘用户留下的各种显示和隐式反馈,如观看记录,评分纪录,浏览历史等等,根据用户的停留时间,点击频率,来挖掘出用户的特征及个人喜好,从而推荐的内容和信息便会主动地迎合用户,达到用户的理想需求。
在过去的相关推荐里音乐推荐往往是由基于内容的音乐推荐算法作为推荐主体,或者是以CF(协同过滤)推荐算法作为推荐主体实现的,在这个推荐过程中往往有一些不足。
最初的音乐推荐是基于MFCCs的两阶段推荐,第一阶段为提取音乐特征,第二步则由特征推荐用户,但是MFCCs并不能完美的表达出所有的音乐特征,包括音乐的作者、音乐的类型、音乐的语种等等,换言之,根据频谱所做到的仅仅是将音频部分几乎完全拟合,或者是说音频矩阵距离较短的一批次音乐划分为一个类型,且不论不同时间长度的音乐会有什么影响,相同的音频真的可以给用户带来优良的体验吗?并不是,音乐是分类型的,例如常见的摇滚,HIPHOP,雷鬼,纯音乐,亦或是分类更为详尽的电影原声、游戏原声等,这些音乐类型属于音乐的高级属性。一个用户喜欢A类型的音乐(例如HIPHOP),一款基于内容的推荐算法便会一直推荐hiphop的歌曲,这样是不合理的,所以人工的设置权重的方法应运而生,但是非自动化的推荐方法永远是不合理且不实时的,所以在这样的背景下,提出了一种基于内容与用户协同过滤的混合推荐方法。

1.2 音乐推荐算法描述
音乐是互联网中的重要组成部分,目前的音乐网站或者媒体中拥有数以千万计的音乐,假如用户要自己收听每一首音乐来判断自己喜欢不喜欢这首音乐,且不谈用户能不能听完这么多音乐,如果每首音乐都要听完才能判断自己是否喜欢这首音乐的话,那么会有越来越少的用户去选择新歌,去听一些自己没有听过的音乐。推荐算法正是为解决此类问题而产生的。
目前市面上电影推荐算法数不胜数,但大多数应用的还是协同过滤算法,基于用户或者基于内容、评分等等,根据关键词过滤掉无关信息,然后把结果返回给用户。网易云音乐作为国内最大的音乐媒体,每天处理海量的新用户与新歌新专辑的信息,它所使用的是混合推荐算法,并且加入了深度学习,介于网易云平台拥有的大量使用人群,所以他的数据集是丰富多样但充满噪点的,网易云音乐的推荐算法种类繁多,基于音乐内容部分有同类型的歌曲推荐,基于用户本身属性的协同过滤我们可以看到很多评论区下方会有置顶的同城评论,这是因为网易云音乐在处理一个数据量较为稀疏的用户时使用到了基于用户所在地的协同过滤推荐,即相似的用户属性则给用户带来相似的推荐。当然了,推荐算法非常的多,但是想要找到一种适合的算法确实有一定的难度,每种算法都有一定的优缺点,有各自的局限领域,这样推荐算法的选择就成了一个难题,设计者往往需要测试多种算法,了解它的原理及概念,最后再逐一筛选找到最适合的那一个或多个算法。具体的音乐推荐算法将在第二章中详细介绍。
1.3 论文的内容和意义
论文的主要内容有:
1、对现有的音乐推荐算法做深入的了解,总结分析他们的优点与缺点,并对他们的不足进行分析,为我们设计音乐推荐算法做下基础
2、搭建基于神经网络的内容部分的音乐推荐算法并利用Google开源框架Tensorflow对神经网络进行训练
3、基于已有的数据集进行拆分,获得测试集与训练集并对获得的推荐方法进行评测。
本文在训练方向选用机器学习的开源库Tflearn(基于Google框架TensorFlow),在音乐频谱分析方向选用了Linux的Sox应用以及python的eyed3库。
1.4 论文的组织架构
全文共分六章,各章的内容安排如下:
第一章:绪论,本章主要介绍课题项目背景,开发目标和意义。
第二章:推荐算法简介,对现在大多数的推荐算法进行介绍。
第三章:基于内容的音乐推荐部分,主要是对音乐推荐系统的功能需求的详细分析。
第四章:混合算法的设计与实现,主要是介绍基于音乐内容的部分与用户协同过滤相结合的系统权重训练。
第五章:系统实现,主要介绍了系统的主要页面和部分功能。
第六章:总结与展望,对课题进行总结,并对以后的改进进行展望。

第二章 推荐算法简介
2.1 音乐推荐的方法
本文以推荐算法的发展路途,将推荐算法分为传统的推荐算法和非传统的推荐算法。传统的推荐算法有基于内容推荐、协同过滤推荐、基于知识推荐、基于效用推荐、基于关联规则推荐、组合推荐等等,以下对部分进行介绍:
2.1.1 基于内容的音乐推荐方法
基于内容部分(Content-Based Recommendations CB)的音乐推荐算法是一个最为经典的音乐推荐算法,其原理就是对物品进行相似度计算,由用户过去感兴趣的商品进行依据相似度高低排序的商品推荐。
在音乐推荐的领域中也是绝大多数音乐推荐算法所使用的方法,常见的标签内容信息由艺术家,发行时间,流派,播放时长等构成,简单的推荐算法往往由单一label实现推荐过程,例如给用户推荐多首同艺术家的歌曲,或是同属一个流派的 音乐。这样的推荐过程带来的效果是不合理的,当然了处理过程有很多种优化方法, 例如进行数据归一化处理,权衡各个不同指标之间的权重。除此以外还有muti-labels多特征推荐,例如Cyril Laurier[1]提出的将音乐基于标签进行分类方法,将音乐划分为几个比较大的类,通过各个不同的label实现音乐本身与类之间的映射关系。
上文中提到过的MFCCs就是其中一种,通常是以音乐音频本身之间的相似度计算通过聚类将音乐文件进行分类,从而进行的同批次推荐方法。
2.1.2 基于用户协同过滤的推荐方法
协同过滤算法(Collaborative Filtering Recommendation)是推荐系统领域中使用最早最经典和可行性最好的算法之一,基于用户本身或是用户行为的推荐算法原理大多相似,即计算不同用户之间的相似度问题,在处理单一用户数据的时候可以通过所处地域,所受教育程度,性别等特征将用户进行简单划分,这可以用于处理协同过滤中会遇到的冷启动或者是稀疏性问题,基于用户行为的推荐算法大多由用户收听历史和决策行为影响。稀疏性问题是协同过滤无法避免遇到的问题,数据集的极端往往会造成推荐结果糟糕的情况,所以要解决这些问题需要认真考虑。

图2.1 协同过滤的推荐过程
2.1.3 混合推荐算法
由于各种推荐方法都有优缺点,所以在实际中,组合推荐(Hybrid Recommendation)经常被采用。在现有系统中最常见的做法是基于内容与基于协同过滤的混合推荐算法。最简单的做法就是分别用基于内容的方法和协同过滤推荐方法去产生一个推荐预测结果,然后用某方法组合其结果。,组合推荐一个最重要原则就是通过组合后要能避免或弥补各自推荐技术的弱点。常见的组合方式有以下几种:
变换(Switch):根据问题背景和实际情况或要求决定变换采用不同的推荐技术。
加权(Weight):加权多种推荐技术结果。
混合(Mixed):同时采用多种推荐技术给出多种推荐结果为用户提供参考。
特征组合(Feature combination):组合来自不同推荐数据源的特征被另一种推荐算法所采用。

图2.2 推荐算法优缺点
2.2 音乐推荐的指标
1.平均误差MAE(Mean Absolute Error )
平均绝对误差 MAE是对推荐算法质量评价的标准之一 ,它通过计算预测评分与真实评价数 据上的差别来衡量推荐结果的准确性。MAE的值越小 ,推荐准确性越高。假设预测的用户评分集合表示为{P1,…PN},对应 的实际用户评分集合为 {q1,…qN} ,则MAE的计算公式为

2.准确率与召回率(Precision & Recall)
准确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。其中精度是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率;召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率。
以下为定义:
1.Precision Rate = 提取出的正确信息条数/提取出的信息条数
2.Recall Rate = 提取出的正确信息条数/样本中的信息条数
3.F1 = Precision Rate * Recall Rate * 2/(Precision Rate + Recall Rate) (F1即为正确率和召回率的调和平均值)。
其中Precision Rate与Recall Rate两者取值在0和1之间,越接近1,查准率或查全率就越高。
R(u):对用户u推荐的N个物品的集合。​
T(u):数据集中用户u真实评分过的物品集合。

2.3 本章小结
本章主要介绍了以往比较流行的一些传统推荐算法,并分析总结了它们的优缺点,简单介绍了新的推荐算法的原理和一些常用的评价指标,为课题的研究准备了一些基础知识,下章将进行基于神经网络的推荐算法设计。

第三章 基于神经网络的内容推荐算法的设计
3.1 数据集及预处理
3.1.1 数据集的选择
在音乐领域的机器学习有注明的数据集MillionSongDataset,是一个由The Echo Nest提供的数据集,分析labels的过程是由众多音乐学者进行人工的判断,所以在音乐的判断过程极为准确,且在数据调用及分析方向提供了众多强有力的接口,所以在最初的数据集选择中我选择了它。

图3.1 MillionSong DataSet
在使用MillionSongDataSet提供的与正文数据集同样结构,包含社交关系,用户播放历史的1G轻量级数据集作为本次实验的数据集之后,数据的众多影响因子可以自行的选择,例如有关社交亦或是地域所带来的影响,但是在发现数据集没有对语种进行区别而大多数数据近乎全为英文的时候,个人考虑到现有的互联网开放资源似乎也可以做到一个简单的这样的数据集,所以依靠爬虫以歌单为个体对某音乐平台的数据进行了获取。
基础的数据集设计理念是由以下几个部分构成的,歌单本身作为一个单位,歌单的labels,歌单的热度(综合评论数与收听人数)歌单本身包含大量的歌曲,歌曲有以下属性:ID(唯一编号), 歌词(可以做词频统计并为音乐系统的实现做基础),歌曲的labels(以矩阵形式表明歌曲的各个参数的属性),歌曲的热度,歌曲的语种,歌曲的作者,歌曲所属专辑,歌曲的相册封面。
而歌单本身在某音乐平台的评论中可以提取相应的词频从而获得歌单的关键词,即作为labels存在,另外在本系统中,采取了以歌单模拟用户的方法, 即一个歌单代表了一个用户,这是因为在某音乐平台中有一个设计理念,即用户所喜欢的歌曲和用户所创建的歌单本质上的类都是歌单,所以在爬虫的过程中,绝大多数歌单即是用户喜欢的音乐,那么在歌单处理的过程中变会生成另一组用户数据。用户数据由以下属性组成:用户的所处地,用户的收听历史,用户的特征偏爱矩阵。
在本次实验中采取了如下图所示的数据结构:

图3.2 歌单爬取结果
由该表单中的数据进行提取分析便可以得到我们的音乐部分数据集:
用户: 用户ID, 用户收听历史, 用户年龄,用户性别,用户所在地区。
歌曲: 歌曲ID, 歌曲曲风, 歌曲名称, 艺术家, 歌词。
评分数据则由歌单组成,其中对于用户单曲循环的音乐评分为5分,用户所喜欢的音乐评分为4分,用户正常听完的歌曲为3分,用户进行切歌的歌曲为2分,用户选择不在喜欢的歌曲为1分。
3.1.2 音频读取与分析
在音频文件的分析软件中,选择了Linux平台下的Sox软件,可以将一首音乐的众多tips展示给用户。

表3.1 Sox音频部分属性列表

Samples read: 20889600
Length (seconds): 236.843537
Scaled by: 2147483647
Maximum amplitude: 0.996857
Minimum amplitude: -0.993195
Midline amplitude: 0.001831
Mean norm: 0.084509
Mean amplitude: 0
RMS amplitude: 0.119258
Maximum delta: 0.729645
Minimum delta: 0
Mean delta: 0.058931
RMS delta: 0.0806
Rough frequency: 4743
Volume adjustment: 1.003

在拥有了Sox之后我们再使用语言集成的eyed3库,基于Sox平台的音频分析库,eyed3库可以通过对音频文件的读取提取出音频的包含艺术家或是曲风众多属性,在eyed中可以将音乐的频谱输出为一个一维矩阵,也就是一个数组形式,例如:

图3.3 某音乐文件频谱
输出的一维矩阵表现为[2180404, 2180403, 2001415…]一个长为140万位的数组,接下来就是对音频文件的分析。
首先需要将音乐文件分解成两块部分,一块为标签部分,一块为音频频谱部分。标签部分包含了所属专辑,专辑艺术家,创作时间,时长,流派等等属性,而频谱部分则表现为图3.1.1的样式。接下来需要对音乐文件做一个分类的过程,首先在我们下载的批量音乐中,只有一半的数据在tips里是拥有Genre属性的,即为流派或者是类别,我们需要对这部分做一个划分,其中70%作为我们的训练集,30%作为我们的测试集。对数据进行划分之后便需要开始构造一个神经网络模型。
3.2 卷积神经网络
卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 它包括卷积层(convolutional layer)和池化层(pooling layer)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1129618.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

零基础搭建人体解析服务:M2FP WebUI界面操作全攻略

零基础搭建人体解析服务:M2FP WebUI界面操作全攻略 🌟 为什么需要多人人体解析? 在计算机视觉领域,人体解析(Human Parsing) 是语义分割的一个精细化分支,目标是将图像中的人体分解为多个具有明…

六大主流CRM品牌深度横评:从销售跟踪到打单的全流程能力对比

在数字化销售时代,CRM系统已从“客户信息存储工具”进化为“销售全流程引擎”。企业选择CRM的核心诉求,是通过系统能力优化“线索-跟踪-报价-签约-打单”全链路效率,最终提升转化率与客户 Lifetime Value(LTV)。本文选…

首个智能指令自动优化系统:剑桥大学让AI自己学会写更好的指令

随着人工智能技术的飞速发展,如何让AI更好地理解和执行人类指令已成为一个关键挑战。最近,剑桥大学语言技术实验室的韩周、邢晨万等研究人员,联合牛津大学机器学习研究团队,在2025年12月发表了一项突破性研究成果。这项名为"…

基于用户情感分析的音乐个性化推荐研究(源码+万字报告+讲解)(支持资料、图片参考_相关定制)

目 录 摘要 2 Abstract. 3 一、引言 3 (一)研究背景 3 (二)研究意义 4 二、文献综述 5 (一)用户情感分析 5 (二)个性化推荐 5 三、基于用户情感分析的音乐个性化推荐模型 6 &#xf…

轻量模型新标杆:CSANMT在精度与速度间找到平衡点

轻量模型新标杆:CSANMT在精度与速度间找到平衡点 🌐 AI 智能中英翻译服务(WebUI API) 随着全球化进程的加速,高质量、低延迟的机器翻译需求日益增长。尤其是在跨语言交流、内容本地化和智能客服等场景中,中…

制造业数据采集系统选型指南:从技术挑战到架构实践

在当今竞争激烈的全球市场中,制造业正面临着前所未有的转型压力。随着工业4.0、智能制造和工业互联网概念的深入,数据已成为新的生产要素,而数据采集作为数据价值链的起点,其重要性不言而喻。然而,许多制造企业在推进数…

`mapfile`命令详解:Bash中高效的文本至数组转换工具

mapfile是Bashshell中一个功能强大的内置命令,专为将标准输入或文件内容按行读取到数组而设计。该命令亦可通过别名readarray调用,两者功能完全一致。它为Shell脚本开发者提供了一种高效、简洁的文本处理方式,有效规避了传统基于循环的读取方…

对比测试:M2FP与U-Net在多人场景下的分割精度差异分析

对比测试:M2FP与U-Net在多人场景下的分割精度差异分析 📌 引言:为何需要高精度的多人人体解析? 随着智能安防、虚拟试衣、动作捕捉和人机交互等应用的快速发展,多人场景下的人体语义分割已成为计算机视觉领域的重要研究…

悉尼大学团队破解AI画图“文化失明“之谜

这项由悉尼大学史传成、南京理工大学李尚泽等研究团队完成的研究于2025年11月发表在计算机视觉领域的顶级学术期刊上,论文编号为arXiv:2511.17282。有兴趣深入了解的读者可以通过该编号查询完整论文。当你用中文告诉AI"画一座传统建筑"时,你期…

解读 SQL 累加计算:从传统方法到窗口函数

累加计算是数据分析中的常见需求,例如累计销售额、累计访问量、累计收益等场景。在 SQL 中,存在多种实现累加计算的方法,本文将系统解析各类实现方式及其适用场景。一、基础数据准备首先创建一张销售记录表示例:sql创建销售记录表…

虚拟主播技术揭秘:M2FP如何实现精准面部捕捉?

虚拟主播技术揭秘:M2FP如何实现精准面部捕捉? 在虚拟主播、数字人直播、AR互动等前沿应用场景中,高精度的面部与人体解析技术是实现沉浸式体验的核心基础。传统的动作捕捉系统依赖昂贵硬件和标记点,而现代AI驱动的方案正逐步实现“…

M2FP模型源码解读:理解语义分割核心算法

M2FP模型源码解读:理解语义分割核心算法 📌 引言:从多人人体解析看语义分割的工程落地挑战 在计算机视觉领域,语义分割(Semantic Segmentation)是实现像素级图像理解的核心任务之一。与目标检测不同&…

Markdown数学公式翻译:特殊符号的保护策略

Markdown数学公式翻译:特殊符号的保护策略 🌐 AI 智能中英翻译服务 (WebUI API) 项目背景与技术挑战 在现代科研、工程文档和学术写作中,Markdown 已成为内容表达的标准格式之一。它简洁、可读性强,并天然支持嵌入 LaTeX 数学公式…

M2FP文档详解:从启动到调用的全流程操作手册

M2FP文档详解:从启动到调用的全流程操作手册 🧩 M2FP 多人人体解析服务简介 在计算机视觉领域,人体解析(Human Parsing) 是一项关键任务,旨在对图像中的人体进行像素级语义分割,识别出如头发、面…

上海交大团队重磅突破:让AI大模型推理速度提升24倍的神奇技术

这项由上海交通大学计算机科学与工程学院的徐嘉鸣、潘嘉毅、王汉臻、周永康、叶建才等研究人员,以及清华大学的王瑜教授、无问芯穹公司的戴国浩教授共同完成的研究,发表于2025年的国际顶级会议论文中。这项名为"SpeContext"的技术突破&#xf…

其实申请TC并不难

在我们申请交易证书(TC)时,需遵循一系列要求以确保流程顺利。 以下几点关键注意事项基于最新实践整理。资质匹配:SC证书有效机构一致,买家认证信息无错漏 追溯完整:上游TC/RMD齐全,分包商已备案…

M2FP模型处理遮挡场景的算法原理剖析

M2FP模型处理遮挡场景的算法原理剖析 🧩 多人人体解析中的核心挑战:遮挡问题 在现实世界的视觉应用中,多人共处同一画面是常态。然而,当多个个体发生身体重叠、肢体交叉或空间遮挡时,传统语义分割模型往往难以准确区…

字节机器人学会了“穿鞋带“:83.3%成功率背后的灵巧操作新突破

这项由字节跳动Seed团队完成的突破性研究发表于2025年12月1日的arXiv预印本平台,论文编号为arXiv:2512.01801v1。有兴趣深入了解的读者可以通过该编号查询完整论文。这是全球首个能够自主穿鞋带的学习型机器人系统,在这个看似简单却极其复杂的任务上实现…

基于springboot + vue美食分享管理系统(源码+数据库+文档)

美食分享 目录 基于springboot vue美食分享系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue美食分享系统 一、前言 博主介绍:✌️大…

M2FP资源占用实测:内存峰值控制在2GB以内

M2FP资源占用实测:内存峰值控制在2GB以内 🧩 M2FP 多人人体解析服务 (WebUI API) 项目背景与技术痛点 在当前计算机视觉应用中,人体解析(Human Parsing) 已成为智能服装推荐、虚拟试衣、动作分析等场景的核心技术。传…