基于内容和协同过滤加权融合的音乐推荐算法
2021-06-28彭余辉张小雷
彭余辉,张小雷,孙 刚
(阜阳师范大学计算机与信息工程学院,安徽阜阳 236037)
近年来,互联网信息和电子音乐网站爆炸式增长,音乐资源异常非富,但各种音乐无法有效地整合,造成信息过载,使人们无法快速找到他们所喜欢的音乐。一个好的音乐推荐算法对于音乐网站尤为重要,它既给用户带来方便,也给音乐网站带来了更多的利润和流量。
传统的音乐推荐算法是单一的基于内容的推荐或者是使用协同过滤推荐。根据文献[1],基于内容的推荐本质是对于信息的检索和过滤。协同过滤推荐算法分为基于用户(User-CF-Based)和基于物品(Item-CF-Based)的协同过滤算法。User-CF-based 算法按照用户之前对物品所作的行为来分析用户的偏好并进行衡量和评分,计算用户之间的相似度,并根据相似度将物品推荐给有相似偏好的用户。Item-CF-Based算法根据用户喜欢的物品,将与该物品相似的物品推荐给用户。
为了改进传统的推荐算法,提高协同过滤推荐算法的准确率和效率,文献[2]提出了RC-DFM模型,经过评论和内容的加权融合,缓解了数据的稀疏性,增加了推荐的准确率,但是对于大型数据集来说,这种模型的效率会随所需时间的增加而变低。文献[3]针对冷启动问题进行研究,根据用户评分和项目属性进行评分预测,并将推荐结果推荐给用户,但未考虑新用户因素。文献[4]通过提取特征词,使用特征标签来代替物品本身,将多种标签结合进行分析与融合以提高精确率。以上推荐算法远远无法满足需求宽泛的用户,在“长尾理论”的支持下,很多不受欢迎商品的销售规模足以比拟受大众欢迎的商品。文献[5]在长尾理论的基础上提出了item-CF-IIF算法,通过对热门商品的惩罚以及对推荐物品排序优化来增加推荐质量、准确率以及用户的体验程度。文献[6]通过探索情绪标签来构建情绪模型,并结合协同过滤产生推荐列表。文献[7]利用分类和情境感知融合的方法对音乐偏好进行特权融合,降低推荐复杂度,提高了推荐的效率和质量。在文献[8]中,将用户-项目类别评分相似度和用户-项目类别兴趣相似度加权融合,有效地缓解了数据的稀疏性。文献[9]根据用户的满意度改进余弦相似度计算方法,进行协同过滤推荐以得到满意的推荐列表。文献[10]将基于内容的推荐算法与基于用户的协同过滤推荐算法进行混合,形成一种新的推荐算法,处理了物品在没有评价的情况下同样能被推荐给用户,并且很明显地增加了推荐结果的准确率,但缺少了一定的平衡。
基于传统推荐算法的闪光点和不足,本文提出基于内容和协同过滤加权融合(MR_CCFI)的推荐算法,来分别得到基于用户-内容和基于物品-内容融合的推荐算法,以提高推荐准确率。
1 基本框架
MR_CCFI推荐算法的基本框架如图1所示。通过基于内容和协同过滤加权融合的算法来进行内容-用户、内容-物品加权融合的推荐,在数据集的影响下,不同推荐算法给用户带来的推荐效果是不同的。
图1 MR_CCFI推荐算法流程
1.1 基于内容的推荐算法
根据音乐内容的文本信息,这里使用词频-反文档频率(TF-IDF)的方式得到用户偏好矩阵[11],设给定音乐的集合为L={L1,L2,L3,…,Ln},特征(关键)词组为I={i1,i2,i3,…,im},Lj表示第j首音乐,词频公式为:
其中,f(i,j)是词i在音乐j中所出现的次数,∑k∈j fk,j是音乐j中所有词出现次数的总和,k∈j表示词在音乐j中。反文档频率公式为:
其中,N指所有音乐的数量,n(i)指N中特征词i出现过的音乐数量。
音乐j中特征词i的组合TF-IDF权值计算为:
其中,PTF-IDF(i,j)表示第j首音乐中与特征词i对应的词。归一化处理:
其中,Wji指第j首音乐第i个词的归一化处理,于是可得到用户音乐偏好矩阵
1.2 协同过滤推荐算法
1.2.1 基于User-CF的推荐算法
User-CF算法必须要先找到“相似的用户”,再寻找“相似用户所喜欢的物品”。这里首先使用余弦相似度:
第一步,构造一个歌曲到User的倒排表D,记录用户对哪些歌曲发生过动作。
第二步,依据倒排表D,构造一个用户相似矩阵M,M指式(4)中的分子部分,在倒排表D中,对于每首歌曲i,设其相应的用户为a、b。
第三步,在M中,更新对应位置的元素值,。依次扫描便能够得到一切用户之间不为0的M[a][b]值。
根据文献[13],对式(4)改进,有
式(5)中分子的倒数部分用来惩罚用户u和v的共同偏好列表中的受欢迎的音乐,减少热门歌曲对用户相似度的影响。用户对歌曲的偏好公式为:
其中,P(u,j)指用户u对歌曲j的喜欢程度,S(u,K)指与用户u兴趣最相近的前K个用户,N(j)指用户对歌曲j产生过行为历史的集合,Wuv指用户u、v之间的偏好相似度,Rvj指用户对歌曲j的偏好评分矩阵(如果数据集为隐反馈数据集,那么当用户对歌曲产生了行为,可使Rvj=E,E为单位矩阵)。
1.3 基于Item-CF的推荐算法
Item-CF推荐算法是通过兴趣物品来寻找相似物品,将相似物品推荐给用户。歌曲之间的相似度为:
其中,|N(h)|表示多个用户都喜欢歌曲h的数目,分子则表示多个用户都喜欢歌曲h、j的数目。惩罚热门音乐后,相似度计算为:
式(8)降低了歌曲j的权重,减小了任何歌曲和热门歌曲很相似的可能。
Item-CF推荐算法首先建立一个用户到歌曲的倒排表E,得到用户与歌曲之间的对应关系;其次通过倒排表E来构建同现矩阵,根据式(8)计算两音乐之间的相似度,得到各音乐之间的相似度矩阵;最后计算用户对于歌曲偏好程度。计算用户对于歌曲的偏好程度的公式为:
其中,N(u)表示歌曲被用户u喜欢的集合,S(h,K)指和歌曲h最相似的前K首歌曲的集合,Whj表示音乐h和音乐j的相似度,Ruj指用户u对音乐j的偏好评分(如果数据集为隐反馈数据集,那么当用户对歌曲产生了行为,可使Ruj=E,E为单位矩阵)。
1.4 MR_CCFI推荐算法
MR_CCFI推荐算法偏好公式为
其中,β指用户偏好矩阵的权重,(1-β)指协同过滤算法中用户对歌曲的偏好权重。β值越小,说明用户或物品之间偏好的相似对推荐的影响程度越大,随着β值的增加,音乐内容对推荐的影响程度也在增加。取前K个值,得到Top-K列表,将其推荐给相应的用户u。在用户量不变的情况下:
(1)当音乐数据集较小时,使用Content-User的推荐算法更容易,且更加准确地使目标用户获得相应的Top-K推荐列表。
(2)当音乐数据集较大时,使用Content-Item 的推荐算法可以更精确地将Top-K推荐列表推荐给目标用户。
2 实验结果与分析
通过设置数据集的大小来测试不同算法在给用户进行推荐时的准确率。实验数据所采用的数据源是网易云音乐网站2020年上半年的部分数据,选择了一千多个歌单进行相应的数据获取,包含用户、音乐、歌单等信息,使用用户的已听歌曲记录和评分记录等进行实验。为了提高数据挖掘的质量,需要对信息文本进行预处理,再以其中的80%作为训练集(取其中的40%作为小数据集),另外20%作为最后的测试集。
2.1 数据预处理
(1)进行分类标注,即将爬取到的文本打标签,生成标签列表。
(2)分词,去停用词。通过jieba分词库将音乐内容文本进行分词,并对其去停用词,使用词频-逆文档频率(TF-IDF)的方式提取关键词,进而得到用户偏好矩阵Pu。
(3)实验中主要选取数据维度信息为:音乐编号、音乐名、音乐发表时间、音乐类型等。
2.2 实验结果分析
将MR_CCFI 算法与文献[2]中用户评分和物品属性相融合的推荐算法(RC-DFM)、文献[5]中item-CF-IIF 算法以及Content-Based算法进行对比实验,观察几种算法在不同数据集上的推荐效果。
参数设置。在MR_CCFI 推荐算法中参数β的设置会影响到推荐结果的准确性,本次实验中,设置K为10、15、20、25来分别检测不同β值对应的平均绝对误差(MAE),参数β∈(0,1),如图2 所示。实验结果表明,在数据集相同的情况下,MR_CCFI 算法中的权重因子β更偏重于协同过滤算法。由图2可知,K固定时,当β=0.7 时,MAE 最小,故以下实验参数β的值均设置为0.7。
图2 相同K值下,不同β取值对应的MAE值
相似度计算。不一样的相似度计算方法会对推荐结果产生影响,设置K为5、10、15、…、35,比较Cosine、User-content-Cosine和Item-content-Cosine计算方法的MAE,当数据集较大时,如图3所示。由图3可知,K不变时,Item-content算法中余弦计算方法得到的MAE值是最小的,即该算法的推荐效果最好。数据集相对较小时,User-Content算法的结果误差较小,如图4所示。本文使用的余弦相似度计算方法为当前主流计算方法,通过实验表明,该相似度计算方法能够很好地满足用户对推荐结果的需求。
图3 大数据集下,相同K,不同算法的MAE值
图4 小数据集下,相同K,不同算法的MAE值
MAE。在评分预测中,预测准确率大多使用MAE和均方根误差(RMSE)计算结果,这里运用MAE,将本文算法与文献[2]、[5]进行实验对比,分析本文加权融合算法的有效性。MAE值越小,最终所得到的推荐准确率就越高。当数据集较大时,对比几种推荐算法的MAE值,如图5所示。由图5可知,当K值相同时,基于User-Content的推荐算法和基于Item-Content的推荐算法这两种推荐算法MAE值都最小,且当K为20时,Item-Content算法的MAE是最小的。当数据集较小时,User-Content算法更适合对用户进行推荐,而RC-DFM算法在数据集较小的时候推荐效果会比较差,如图6所示。
图5 大数据集下不同算法的MAE值
图6 小数据集下不同算法的MAE值
3 结束语
通过对音乐各方面内容和所用主流推荐算法进行分析,提出MR_CCFI推荐算法缓解数据的稀疏性并提高用户对于其偏好音乐获取的效率,经过对数据集的划分来测试相同用户在不同大小数据集下更适合于用户的推荐算法。实验结果表明,数据集较小的情况下,User-Content算法更适合对用户进行推荐;数据集较大的情况下,Item-Content算法更适合对用户进行推荐。在实际应用中,随着大量音乐数据的上传,这种MR_CCFI算法同样适用。