基于hadoop大数据的音乐推荐系统

这篇具有很好参考价值的文章主要介绍了基于hadoop大数据的音乐推荐系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 简介

今天向大家介绍一个帮助往届学生完成的毕业设计项目,基于hadoop大数据的音乐推荐系统

1.4 Hadoop优势(4高)

基于hadoop大数据的音乐推荐系统

基于hadoop大数据的音乐推荐系统

1.5 Hadoop 组成(面试重点)

基于hadoop大数据的音乐推荐系统

1.5.1 HDFS 架构概述

Hadoop Distributed File System
,简称
HDFS
,是一个分布式文件系统

(1

NameNode

nn
):存储文件的
元数据
,如
文件名,文件目录结构,文件属性
(生成时间、副本数、

文件权限),以及每个文件的
块列表

块所在的
DataNode
等。

(2

DataNode(dn)
:在本地文件系统
存储文件块数据
,以及
块数据的校验和

(3

Secondary NameNode(2nn)

每隔一段时间对
NameNode
元数据备份

 简单的说就是NameNode就相当于一个目录,一个索引,负责标记每一个DataNode的存放位置


 而DataNode才是真正存放数据的,
 Secondary NameNode(2nn) :相当与老板的一个秘书,他会备份
 一部分
 数据,不会备份全部数据。

基于hadoop大数据的音乐推荐系统

基于hadoop大数据的音乐推荐系统

1.5.2 YARN 架构概述

Yet Another Resource Negotiator
简称
YARN
,另一种资源协调者,是
Hadoop
的资源管理器。

基于hadoop大数据的音乐推荐系统

1.5.3 MapReduce 架构概述

MapReduce
将计算过程分为两个阶段:
Map

Reduce

(1

Map
阶段并行处理输入数据

(2

Reduce
阶段对
Map
结果进行汇总

基于hadoop大数据的音乐推荐系统

1.5.4 HDFS**、YARN、**MapReduce 三者关系

基于hadoop大数据的音乐推荐系统

HDFS

基于hadoop大数据的音乐推荐系统

YARN

基于hadoop大数据的音乐推荐系统

用户提交任务,任务给到ResourceManager,ResourceManager 会找一个节点**NodeManager,**开启一个Container ,把任务(App Mstr)放在Container App Mstr会向

ResourceManager申请说自己需要多少资源 ResourceManager 看哪一个DataNode有资源,给他分配资源 之后 App Mstr 会在被分配的资源节点上开启计算任务(MapTask ),这个其实就是MapReduce 的map阶段,之后会返回一个Reduce到各自对应的节点,这就是他们三者之间的关系

推荐系统广泛存在于各类网站中,作为一个应用为用户提供个性化的推荐。它需要一些用户的历史数据,一般由三个部分组成:基础数据、推荐算法系统、前台展示**。基础数据包括很多维度,包括用户的访问、浏览、下单、收藏,用户的历史订单信息,评价信息等很多信息;推荐算法系统主要是根据不同的推荐诉求由多个算法组成的推荐模型;前台展示主要是对客户端系统进行响应,返回相关的推荐信息以供展示。**

基础数据主要包括:

  1. 要推荐物品或内容的元数据,例如关键字,基因描述等;
  2. 系统用户的基本信息,例如性别,年龄等
  3. 用户对物品或者信息的偏好,根据应用本身的不同,可能包括用户对物品的评分,用户查看物品的记录,用户的购买记录等。

其实这些用户的偏好信息可以分为两类:

  • 显式的用户反馈:这类是用户在网站上自然浏览或者使用网站以外,显式的提供反馈信息,例如用户对物品的评分,或者对物品的评论。
  • 隐式的用户反馈:这类是用户在使用网站是产生的数据,隐式的反应了用户对物品的喜好,例如用户查看了某物品的信息等等。

显式的用户反馈能准确的反应用户对物品的真实喜好,但需要用户付出额外的代价,而隐式的用户行为,通过一些分析和处理,也能反映用户的喜好,只是数 据不是很精确,有些行为的分析存在较大的噪音。但只要选择正确的行为特征,隐式的用户反馈也能得到很好的效果,只是行为特征的选择可能在不同的应用中有很 大的不同,例如在电子商务的网站上,购买行为其实就是一个能很好表现用户喜好的隐式反馈。


2、推荐引擎的分类

推荐引擎的分类可以根据很多指标进行区分:

  1. 根据目标用户进行区分:根据这个指标可以分为基于大众行为的推荐引擎和个性化推荐引擎。
  • 根据大众行为的推荐引擎,对每个用户都给出同样的推荐,这些推荐可以是静态的由系统管理员人工设定的,或者基于系统所有用户的反馈统计计算出的当下比较流行的物品。
  • 个性化推荐引擎,对不同的用户,根据他们的口味和喜好给出更加精确的推荐,这时,系统需要了解需推荐内容和用户的特质,或者基于社会化网络,通过找到与当前用户相同喜好的用户,实现推荐。

这是一个最基本的推荐引擎分类,其实大部分人们讨论的推荐引擎都是将个性化的推荐引擎,因为从根本上说,只有个性化的推荐引擎才是更加智能的信息发现过程。

  1. 根据数据源进行区分:主要是根据数据之间的相关性进行推荐,因为大部分推荐引擎的工作原理还是基于物品或者用户的相似集进行推荐。
  • 根据系统用户的基本信息发现用户的相关程度,这种被称为基于人口统计学的推荐(Demographic-based Recommendation)
  • 根据推荐物品或内容的元数据,发现物品或者内容的相关性,这种被称为基于内容的推荐(Content-based Recommendation)
  • 根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,这种被称为基于协同过滤的推荐(Collaborative Filtering-based Recommendation)。
  1. 根根据推荐模型进行区分:可以想象在海量物品和用户的系统中,推荐引擎的计算量是相当大的,要实现实时的推荐务必需要建立一个推荐模型,关于推荐模型的建立方式可以分为以下几种:
  • 基于物品和用户本身的,这种推荐引擎将每个用户和每个物品都当作独立的实体,预测每个用户对于每个物品的喜好程度,这些信息往往 是用一个二维矩阵描述的。由于用户感兴趣的物品远远小于总物品的数目,这样的模型导致大量的数据空置,即我们得到的二维矩阵往往是一个很大的稀疏矩阵。同 时为了减小计算量,我们可以对物品和用户进行聚类, 然后记录和计算一类用户对一类物品的喜好程度,但这样的模型又会在推荐的准确性上有损失。
  • 基于关联规则的推荐(Rule-based Recommendation):关联规则的挖掘已经是数据挖掘中的一个经典的问题,主要是挖掘一些数据的依赖关系,典型的场景就是“购物篮问题”,通过关联规则的挖掘,我们可以找到哪些物品经常被同时购买,或者用户购买了一些物品后通常会购买哪些其他的物品,当我们挖掘出这些关联规则之后,我们可以基于这些规则给用户进行推荐。
  • 基于模型的推荐(Model-based Recommendation):这是一个典型的机器学习的问题,可以将已有的用户喜好信息作为训练样本,训练出一个预测用户喜好的模型,这样以后用户在 进入系统,可以基于此模型计算推荐。这种方法的问题在于如何将用户实时或者近期的喜好信息反馈给训练好的模型,从而提高推荐的准确度。

其实在现在的推荐系统中,很少有只使用了一个推荐策略的推荐引擎,一般都是在不同的场景下使用不同的推荐策略从而达到最好的推荐效果,例如 Amazon 的推荐,它将基于用户本身历史购买数据的推荐,和基于用户当前浏览的物品的推荐,以及基于大众喜好的当下比较流行的物品都在不同的区域推荐给用户,让用户 可以从全方位的推荐中找到自己真正感兴趣的物品。

3、常见的推荐算法

迄今为止,在个性化推荐系统中,协同过滤技术是应用最成功的技术。目前国内外有许多大型网站应用这项技术为用户更加智能的推荐内容。

3.1、基于用户的协同过滤算法

第一代协同过滤技术是基于用户的协同过滤算法,基于用户的协同过滤算法在推荐系统中获得了极大的成功,但它有自身的局限性。因为基于用户的协同过滤算法先计算的是用户与用户的相似度(兴趣相投,人以群分物以类聚),然后将相似度比较接近的用户A购买的物品推荐给用户B,专业的说法是该算法用最近邻居(nearest-neighbor)算法找出一个用户的邻居集合,该集合的用户和该用户有相似的喜好,算法根据邻居的偏好对该用户进行预测。

基于用户的推荐逻辑有两个问题:冷启动与计算量巨大。基于用户的算法只有已经被用户选择(购买)的物品才有机会推荐给其他用户。在大型电商网站上来讲,商品的数量实在是太多了,没有被相当数量的用户购买的物品实在是太多了,直接导致没有机会推荐给用户了,这个问题被称之为协同过滤的“冷启动”。另外,因为计算用户的相似度是通过目标用户的历史行为记录与其他每一个用户的记录相比较的出来的,对于一个拥有千万级活跃用户的电商网站来说,每计算一个用户都涉及到了上亿级别的计算,虽然我们可以先通过聚类算法经用户先分群,但是计算量也是足够的大。

基于hadoop大数据的音乐推荐系统

3.2、基于物品的协同过滤算法

第二代协同过滤技术是基于物品的协同过滤算法,基于物品的协同过滤算法与基于用户的协同过滤算法基本类似。他使用所有用户对物品或者信息的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户。这听起来比较拗口,简单的说就是几件商品同时被人购买了,就可以认为这几件商品是相似的,可能这几件商品的商品名称风马牛不相及,产品属性有天壤之别,但通过模型算出来之后就是认为他们是相似的。什么?你觉得不可思议,无法理解。是的,就是这么神奇

举个例子:假设用户 A 喜欢物品 A 和物品 C,用户 B 喜欢物品 A,物品 B 和物品 C,用户 C 喜欢物品 A,从这些用户的历史喜好可以分析出物品 A 和物品 C 时比较类似的,喜欢物品 A 的人都喜欢物品 C,基于这个数据可以推断用户 C 很有可能也喜欢物品 C,所以系统会将物品 C 推荐给用户 C。

基于hadoop大数据的音乐推荐系统

其实基于项目的协同过滤推荐机制是 Amazon 在基于用户的机制上改良的一种策略,因为在大部分的 Web 站点中,物品的个数是远远小于用户的数量的,而且物品的个数和相似度相对比较稳定,同时基于项目的机制比基于用户的实时性更好一些。但也不是所有的场景都 是这样的情况,可以设想一下在一些新闻推荐系统中,也许物品,也就是新闻的个数可能大于用户的个数,而且新闻的更新程度也有很快,所以它的形似度依然不稳 定。所以,其实可以看出,推荐策略的选择其实和具体的应用场景有很大的关系。

2 设计概要

本系统基于java技术,使用UML建模,采用springboot框架组合进行设计,Mysql数据库存储数据。

本系统的功能主要包括本系统的功能主要包括:

  1. 用户注册、登录、
  2. 信息维护、
  3. 会员搜索、
  4. 个性化推荐
  5. 管理员进行信息管理等
  6. 音乐管理
  7. 协同过滤推荐
  8. hadoop大数据分析数据
  9. mapreduce计算数据

3 系统关键技术

使用springboot,vue,mysql, mybaties, typescript, html ,css, js 等进行开发

4 开发工具

开发工具主要有:idea、jdk1.8、maven、mysql5.7、Navicat等。

5 代码展示

@RequestMapping("/strategy")
@RestController
@Scope("prototype")
public class StrategyController {
    @Autowired
    private StrategyService strategyService;
    @Value("${web.upload-path}")
    private String path;

    @RequestMapping("/findPage")
    public ObjDat<Strategy> findPage(Strategy strategy, @RequestParam(value="page", defaultValue="1") int page, @RequestParam(value="limit", defaultValue="10") int limit){
        return strategyService.findPage(strategy,page-1,limit);
    }

    @RequestMapping("/edit")
    public JsonResult edit(HttpServletRequest request, Strategy strategy) throws IOException {
        User user=(User)request.getSession().getAttribute("user");
        if(user==null){
            return JsonResult.error("请登录");
        }
        String str=strategyService.edit(request,strategy);
        if(str.equals("成功")){
            return JsonResult.success("操作成功");
        }else{
            return JsonResult.error("操作失败");
        }
    }

6 系统功能描述

项目功能演示
基于hadoop大数据的音乐推荐系统
基于hadoop大数据的音乐推荐系统
基于hadoop大数据的音乐推荐系统
基于hadoop大数据的音乐推荐系统
基于hadoop大数据的音乐推荐系统文章来源地址https://www.toymoban.com/news/detail-465020.html

到了这里,关于基于hadoop大数据的音乐推荐系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 给大家推荐一首好听的流行音乐

    歌名:猪猪侠 谱曲:王巍 填词:王巍 歌曲原唱:陈洁丽 歌词: l u l a lula l u l a 噜啦噜啦咧噜啦噜啦 咧, 噜啦噜啦咧噜啦噜啦 咧, 勇敢向前进前进有奖品我要跑第一,要开飞机要电视机要CD机要mp3, 要冰淇淋要人民币不要太贪心,聪明勇敢有力气我真的羡慕我自己, l

    2023年04月10日
    浏览(44)
  • APP推荐:推荐一款免费无广告的本地音乐播放器,手机听歌必备

    目录 一、软件简介 二、软件特色 三、软件使用 四、软件下载 相信很多朋友都喜欢听歌,今天给大家推荐一款非常棒的手机本地音乐APP——糖醋音乐,完全无广告、免费听歌,大家只需要把自己需要的歌曲下载到你的手机就可以愉快的听歌了,并且不需要手机联网省点、省

    2024年02月05日
    浏览(45)
  • 获取网易云音乐开放接口api的推荐歌单

    网易云音乐开放api接口 网址:https://binaryify.github.io/NeteaseCloudMusicApi/#/?id=neteasecloudmusicapi 项目地址:https://github.com/Binaryify/NeteaseCloudMusicApi 下载下来之后,安装依赖:npm install 启动服务: node app.js 启动成功之后,根据api接口文档就可以获取请求的url了。 本文需求是,获取推荐

    2024年02月04日
    浏览(46)
  • Unity新手必备!推荐一些免费模型、音乐等素材网址,推荐开发工具,故障、报错处理,推荐的官方资源包教程学习

    虽然建议创建最终出现在游戏中的所有资产,但通常不可避免地要依赖外部找到的资产。这些外部资产不会阻止您的游戏作为 Game Jam 条目上传,也不会取消您的投票资格。但是,必须记住,这些资产可能会阻止您的游戏在 Game Jam 之外出售或重新分发。 这可能会有所不同,具

    2024年02月05日
    浏览(57)
  • 【大数据毕设】基于Hadoop的音乐管理系统论文(三)

    博主介绍 : ✌ 全网粉丝6W+,csdn特邀作者、博客专家、大数据领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于大数据技术领域和毕业项目实战 ✌ 🍅 文末获取项目联系,有偿部署 🍅 摘 要 本文基于Hadoop技术,设计并实现了一个名为“酷酷音乐网站

    2024年02月08日
    浏览(43)
  • 基于Hadoop大数据技术和协同过滤算法的就业推荐系统

    随着互联网的快速发展,网络数据量不断增加,已经进入了大数据时代。大量的信息和商品同时呈现在用户面前,使我们面临一个严重的问题-信息过载,而个性化推荐是解决该问题一个有效的方法,协同过滤方法是目前在实际推荐系统中应用最多的个性化推荐方法,它基于群体的偏好

    2024年02月03日
    浏览(40)
  • 计算机毕业设计springboot基于Hadoop平台的电影推荐系统541039【附源码+数据库+部署+LW】

    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。 系统的选题背景和意义 选题背景: 随着互联网的快速发展和大数据技术的成熟应用,电影推荐系统成为了电影行业中不可或缺的一部分。基于Hadoop平台的电影推荐系统应运而生,

    2024年02月06日
    浏览(61)
  • 【数据挖掘】推荐系统(二):基于内容的推荐

            基于内容的系统根据用户偏好和配置文件生成建议。他们尝试将用户与他们以前喜欢的项目相匹配。项目之间的相似程度通常根据用户喜欢的项目的属性来确定。与大多数利用目标用户和其他用户之间的评级的协作过滤模型不同,基于内容的模型侧重于目标用户自

    2024年02月12日
    浏览(37)
  • 毕设:《基于hive的音乐数据分析系统的设计与实现》

    启动hadoop图形化界面 启动hive 1、配置免密登录 vim core-site.xml hdfs-site.xml 1、关闭防火墙 2、初始化 3、配置启动用户 4、启动 5、访问 6、配置环境变量方便启动 卸载Centos7自带mariadb 配置文件 初始化表 1、拉取sqoop 2、配置 3、加入mysql的jdbc驱动包 修改yarn-site.xml 重启 1、hive创建数

    2024年02月04日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包