基于用户行为和音频特征的音乐推荐系统设计与实现

2023-07-20 20:50杨建刘磊康欣欣
无线互联科技 2023年9期
关键词:用户行为

杨建 刘磊 康欣欣

摘要:个性化推荐是音乐推荐系统的核心功能。文章基于用户行为和音频特征设计了音乐推荐系统,以期达到系统推荐歌曲与用户音乐偏好完美匹配的效果。文章首先介绍了系统开发环境和整体组成架构,该系统由用户模块、用户行为模块、推荐模块构成,并对各模块功能的设计与实现方式展开了分析。在个性推荐模块,使用了基于用户社区的快速组推荐算法和音乐特征识别技术,保证了推荐结果更加符合用户的音乐偏好,提高了音乐推荐系统的应用效果。

关键词:音乐推荐系统;用户行为;音频特征;SQL语句

中图分类号:TP311.1

文献标志码:A

0 引言

目前多数音乐软件支持音乐推荐功能,能够根据用户在该软件的历史记录,预测用户的音乐偏好,然后从音乐库中选择相似的歌曲并自动生成推荐列表,展示在音乐软件的首页。不同音乐软件的歌曲推荐原理存在差异,例如Spotify音乐平台是基于音乐体裁标签的方式,根据用户收听过的歌曲,选择具有相同或相似体裁标签的歌曲进行推荐。这导致推荐列表里的歌曲音乐风格单一化,用户容易产生厌倦。因此,设计音乐推荐系统时,必须综合考虑用户行为和音频特征,以保证音乐推荐系统可以向用户推荐更具个性化的音乐歌单,满足用户的音乐收听需求。

1 基于用户行为和音频特征的音乐推荐系统设计

1.1 系统开发环境

本文设计的音乐推荐系统前端基于Layui开发,后端基于Java web开发,使用Python为推进服务提供API。使用到的开发工具有Pycharm v2020.2、HBuilder X2.8;开发环境如下。

CPU:inter i5-3470;

内存:16 GB;

硬盘:512 GB;

数据库:MySQL5.7;

软件开发系统:JDK1.8;

开发语言:Python3.7。

1.2 系统整体架构

该系统主要分为3个模块,分别是用户模块、用户行为模块及推荐模块。用户模块提供用户注册、登录等基本功能;用户行为模块可记录用户播放、点赞、收藏等操作行为;推荐模块可根据用户行为分析结果推荐歌曲。该音乐推荐系统的智能推进功能是基于用户行为和音频特征实现,具体流程如下。

(1)系统获取用户的社交信息,计算用户的相似度,将相似度超过90%的用户归入一个社区。同一社区内的用户,音乐偏好基本相同,能够减少spark平台的数据处理时间,加快向用户推荐音乐的速度。

(2)系统获取用户日常的收听、点赞、收藏等操作行为,并根据听过、点赞、收藏的歌曲,提取音频特征。通过深度学习算法和大量的样本训练,可以向用户精准推送个性化的音乐1

在UI界面上,首次使用该系统的用户可以进行注册;已注册的用户可输入账号、密码登录。成功登录后,在首页有系统推荐的音乐,并可对喜欢的音乐进行点赞、收藏等操作。在数据处理层,该系统会根据用户在前端的操作行为,以及用户的社区信息进行精准画像,更新推荐信息,并将新的音乐列表重新在前端展示。在数据存储层,该系统会将用户的各种行为信息保存起来,作为深度学习的样本,整个流程如图1所示。

1.3 系统数据库

本文设计的音乐推荐系统包含两个数据块,即用户数据库、音乐数据库。其中,用户数据库主要存储用户个人信息、交互行为,并以列表形式分别存储。在用户数据库中可创建的列表类型有用户信息表、播放记录表、音乐推荐表等。用户信息表主要存储用户注册时填写的个人信息,如姓名、性别、年龄等。

播放记录表主要存储用户收听过的歌曲,包括歌曲名、歌曲时间、收听次数等;音乐推荐表主要存储用户每次获得的推荐结果。音乐数据库只包含音乐数据表,支持音乐数据的存储、读取等操作。

2 音乐推荐系统各功能模块的设计与实现

2.1 用户模块的设计与实现

音乐推荐系统的用户模块可实现的功能有用户注册、用户登录、设置音乐偏好、查看最近收听、点赞记录和获得每日推荐等。本文在设计用户模块时,使用多种函数实现上述功能。例如,findLongin()函数可在用户提交账号与密码后,判断系统后台是否有该账户的记录;getValidateCode()函数可生成由字母和数字组合的4位验证码;Insert()函数可将用户注册时提交的用户名、密码、手机号、电子邮箱等信息插入数据库2

为提高系统的响应速度,本文在设计用户登录模块时,加入了一个事件监听器onClick(),用于监听用户是否进行了登录操作;当用户在UI界面上输入用户名与密码,并点击“登录”按钮后,以post方法将提交的信息作为请求,发送给服务器。服务器接收该请求后,利用findLogin()函数将用户输入信息与数据库存储信息进行对比,两者匹配则成功登录,并跳转至音乐推荐系统的主界面;两者不匹配,则给出错误提示,并重置登录界面。

2.2 用户行为记录的设计与实现

本文在设计音乐推荐系统时,以用户的行为习惯代替用户对歌曲的评价。假设用户多次搜索、收听某歌手的歌曲,则认为用户喜欢此歌手或此歌曲的概率较大。为保证系统预测的准确性,需采集用户的收听、点赞、收藏等信息,并将上述信息按照发生时间的先后顺序填入用户交互数据表3。在用户点击听歌记录或打开收藏模块时,系统会通过数据交互表检索用户ID对应的数据。该系统使用SQL语句实現用户收听、点赞、收藏等操作记录的查询。

对于用户收听行为的记录方法,只需要在前端的音乐列表中添加一个SetOnItem()监听事件,即可记录已经登录系统的用户是否点击某首歌曲,如果存在点击行为,则认为用户存在收听行为。此外,对于用户的歌曲收藏与点赞等行为,则使用UserId2songIdCollectionMap()函数进行记录。假设用户已收听过某歌曲,则对该歌曲添加标记,并将用户交互表中的行为分数设定为1;当今后用户再次收听该歌曲后,将行为分数加1。行为分数越高,说明用户对这首歌曲越喜爱,则音乐推荐系统可以挑选同一歌手或相同风格的歌曲进行个性化推荐。

2.3 推薦功能的设计与实现

本文设计的音乐推荐系统,其推荐模块由两部分组成,即“猜你喜欢”和“每日推荐”。子模块的设计与实现方法如下。

(1)猜你喜欢模块。在设计该模块时,使用基于用户社区的快速推荐算法。首先,以用户提交的个人信息,以及已经掌握的用户音乐收听偏好等,对用户进行社区划分4。经划分,可保证同一个社区中所有用户的音乐偏好具有高度的相似性。其次,导入相关数据后开始离线训练,根据训练结果得到RelationLearning数学模型。最后,利用该数学模型,对音乐库中的歌曲进行评分,并按照从高到低的顺序排列,将排名前20的歌曲添加至推荐列表,展示到音乐推荐系统UI界面上的“猜你喜欢”模块。

这种基于用户社区的组推荐模式,首先要判断数据库中是否有用户的历史收听记录。如果没有,则可以直接根据用户注册时提交的信息作为社区划分的依据;如果有少量的历史记录,则需要采取以下处理措施:首先,调用初始化函数UserService.getAllRecords()对歌曲推荐列表做初始化处理。其次,使用RecordLikeService()等函数,分别获取用户的点赞、收听、收藏等行为数据,并根据点赞数、收藏数、播放数等计算出用户行为分数。最后,使用组推荐算法Communitygroupree()划分社区。

(2)每日推荐模块。系统需要从用户个人信息与音乐特征中精准获取用户的偏好或需求。将用户的收听、点赞、收藏等行为记录作为输入信息,输入到RelationLearning模型中进行深度学习训练。训练次数为500次,完成训练后生成训练文件。系统读取文件,并获取待选歌曲的预测分数,按照分数从高到低的顺序添加到数据库的推荐列表中。将推荐结果显示到前端,当用户登录系统后,即可在UI界面上获取每日推荐歌曲5。随着用户收听歌曲的数量增多,以及点赞数、收藏数增多,音乐推荐系统的“每日推荐”也会更加符合用户的音乐偏好。

需注意,如果音乐推荐系统的访问量较大,数据较为集中,可能会因为服务器的处理能力有限而导致系统的延迟响应明显,无法做到及时推荐。为解决这一问题,系统会选择访问量较小的时间段(如凌晨)更新用户数据、进行歌曲推荐。

3 结语

调查分析当前的主流音乐推荐系统发现,多数系统在向用户推荐歌曲时,只考虑用户对音乐的评分。相较于新用户,或者是收听记录较少的用户,由于其评分的歌曲数量较少,系统无法准确掌握用户的音乐偏好,无法做到精准推荐。本文将用户行为与音乐特征结合起来,并通过划分用户社区的方式,借助于组推荐算法和深度学习训练,捕捉用户与音乐之间的特征,可以做到个性化、精准化推荐,推荐的歌曲能够与用户的音乐偏好有较高匹配度。随着用户使用时间的延长、收听歌曲数量的增加,推荐结果的精确性会不断提升,对增加用户与音乐推荐系统的黏性有积极帮助。

参考文献

[1]田杰,胡秋霞,司佳豪.基于深度信念网络DBN的音乐推荐系统设计[J].电子设计工程,2021(23):5-7.

[2]史爱武,李险贵.基于Spark和微服务架构的电影推荐系统设计与实现[J].电脑知识与技术:学术版,2021(8):117-119.

[3]张利鸽.基于用户兴趣偏好度的音乐智能推荐系统设计分析[J].电子设计工程,2022(11):30-32.

[4]周欢,李宏滨.融合时间信息的音乐推荐算法研究[J].信息记录材料,2022(9):123-125.

[5]黄川林,鲁艳霞.基于协同过滤和标签的混合音乐推荐算法研究[J].软件工程,2021(7):18-20.

(编辑 李春燕)

Design and implementation of music recommendation system based on user behavior and audio characteristics

Yang Jian, Liu Lei, Kang Xinxin

(Xian Conservatory of Music, Xian 710061, China)

Abstract: Personalized recommendation is the core function of music recommendation system. This paper designs a music recommendation system based on user behavior and audio characteristics, in order to achieve a perfect match between the systems recommended songs and users music preferences. This paper first introduces the system development environment and the overall structure, the system is composed of user module, user behavior module, recommendation module, and analyzes the design and implementation of each module function. In the personalized recommendation module, the fast group recommendation algorithm based on user community and music feature recognition technology are used to ensure that the recommendation results are more in line with the users music preference, and improve the application effect of the music recommendation system.

Key words: music recommendation system; user behavior; audio characteristics; SQL statement

猜你喜欢
用户行为
基于“点击流数据”的电子商务用户行为分析研究综述
社会化媒体用户使用动机与行为探析
基于社交网络的个性化知识服务模型研究