论文部分内容阅读
互联网经过这几年的迅猛发展,已经与各行各业产生了千丝万缕的联系。各种形式的数据,比如文字,图片,数字,视频,语音等都会被记录下来,在互联网的大海中传播开来。互联网的发展也同时带来了信息过载的问题,从纷繁复杂的网络大海中如何才能筛选出用户感兴趣的信息是人们一直研究的热门话题。随着近几年大数据,人工智能的发展,推荐系统越来越多地应用在了各行各业。推荐系统通过分析大量的用户的历史浏览,交互日志数据,找出用户可能感兴趣的物品推荐给用户,或者找出与用户兴趣相似的人,然后将这些人喜欢的物品推荐给用户。经过前辈们的不断探索和研究,推荐系统已经发展较为成熟,主要有基于用户/物品的协同过滤技术,基于模型的协同过滤,还有基于内容或知识的推荐,以及各种混合模式的推荐技术。推荐系统同样运用在了音乐领域。音乐已经成为现代生化中不可或缺的娱乐元素,很多人的兴趣爱好都有喜欢听音乐,你可能不会唱,但你一定会听。市场上有很多音乐应用,每个应用都构建了自己独特完善的推荐系统。比较出名的有国外的Pandora Radio(潘多拉电台),其推荐系统的核心是一项叫做“音乐基因组计划”的项目,音乐基因组计划旨在“用最基本的水平捕捉音乐的本质”,很多音乐家和音乐爱好者人工筛选出450多个属性来描述每首歌曲,并使用复杂的数学算法来组织它们,推荐给用户与他们兴趣相似的歌曲。早期的音乐推荐系统都是从音乐本身出发,标注一首歌的旋律,节奏,乐器等来找出相似的音乐推荐给用户;之后又发展出了基于社交信息的推荐,主要推荐给用户和他兴趣相似的其他人所听的音乐。很多歌曲的精彩评论看过之后让人拍案叫绝,有时还能了解到音乐背后的故事,能不能通过每首歌曲下的精彩评论挖掘相关信息来做一个推荐系统呢?本文将在传统推荐算法的基础上研究加入了从每首音乐下的精彩评论中提取出来的社会文化元素的推荐算法。具体的实现算法是受奇异值分解(SVD)算法的启发,进行逆向思维,本文首先从每首歌曲下大量的精彩评论经过一定的分析找出主要关键词作为“潜在因子”,结合用户的行为数据计算出用户-潜在因子评分矩阵,歌曲-潜在因子评分矩阵,最后再组合为用户-歌曲评分矩阵,在此基础上做出推荐。本文在学习了前人大量的文献的基础上,总结了常用的推荐算法和技术,根据最初的设想研究设计了基于精彩评论的混合推荐系统。第一阶段经过潜在因子算法求出用户歌曲评分矩阵,通过与原始评分矩阵比较,从中筛选出有评分但是用户没听过的歌曲做出第一次推荐,然后在此基础上进行第二阶段的协同过滤找出有相似兴趣的用户做出第二次推荐。之后本文对设计的推荐系统进行了实证分析,运用Python的selenium模块爬取数据,经过整理,数据预处理,一共有3302首歌曲,33020名评论者及其评论内容,1947名用户及其听歌总数、听歌前十的听歌排行,筛选出941个潜在因子标签。本文用Python和结构性查询语言SQL进一步从用户-歌曲评分矩阵中提取出所有的非零评分,将数据整理为{user,music,rating}的形式,共获得393717条数据。最后在此数据集的基础上对基于精彩评论的混合音乐推荐系统进行测评。实验设计为将这393717条数据随机分为10份,拿其中3份作为测试集来检验推荐结果的精度,剩下的7份作为训练集。为了避免评测结果出现过拟合的情况,我们进行了多次实验取其平均值。最后得到准确率(precision),召回率(recall),覆盖率(coverage),新颖度(通过平均流行度popularity来度量)四个评价指标,结果表明基于精彩评论的混合音乐推荐算法具有较高的推荐精准性。最后总结了本文研究方法与过程,提出了三点接下来需要研究的工作,即需要进一步完善优化对于精彩评论的分析和潜在因子的提取;通过潜在因子得到的用户-物品评分矩阵需要做进一步的用户调查;在设计推荐系统的过程中要有一个全局观,不能只关注某一模块的研究。