java web—基于协同过滤的算法 小说推荐系统

143 篇文章 1 订阅
66 篇文章 4 订阅

成品详细信息

开发工具(eclipse/idea/vscode等):eclipse
数据库(sqlite/mysql/sqlserver等):mysql5.7
功能模块(请用文字描述,至少200字):基础工具
1安装 mysql5.7 https://cdn.mysql.com//Downloads/MySQLInstaller/mysql-installer-community-5.7.33.0.msi
2安装ecipse http://mirrors.neusoft.edu.cn/eclipse/technology/epp/downloads/release/2020-03/R/eclipse-jee-2020-03-R-incubation-win32-x86_64.zip
3安装mysql客户端 navicat
4 安装tomcat8 https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.63/bin/apache-tomcat-8.5.63-windows-x64.zip
5安装maven最新
6jdk 1.8 http://dl-t1.wmzhe.com/30/30118/jdk_8.0.1310.11_64.exe
本系统基于推荐算法 给用户实现精准推荐小说。

根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,然后再基于这些关联性进行推荐,种被称为基于协同过滤的推荐。
3.1基于用户的协同过滤推荐(User-based Recommendation)

基于用户的协同过滤推荐的基本原理是,根据所有用户对物品或者信息的偏好,发现与当前用户口味和偏好相似的“邻居”用户群,在一般的应用中是采用计算“K- 邻居”的算法;然后,基于这K 个邻居的历史偏好信息,为当前用户进行推荐。【基于个体偏好而非背景上的人的相似度】

甲乙爱好相似(“邻居”),且甲喜欢AB,乙喜欢ABC,那么把C推荐给A(C可能和AB毫无关系)。

——与基于人口统计学的推荐的区别:基于人口统计学的机制只考虑用户本身的特征,而基于用户的协同过滤机制可是在用户的历史偏好的数据上计算用户的相似度,它的基本假设是,喜欢类似物品的用户可能有相同或者相似的口味和偏好。

3.2基于商品的协同过滤推荐(Item-based Recommendation,又称基于项目的)

基于商品的协同过滤推荐的基本原理也是类似的,只是说它使用所有用户对物品或者信息的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户。【基于全体偏好发现物的相似度,再根据个体偏好推荐】

——与基于内容的推荐的区别:基于内容的推荐仅根据物的相似度,不考虑个体偏好。

即如:发现金庸和古龙的武侠比较相似,甲喜欢金庸和古龙的武侠,而乙喜欢金庸的武侠,那么把古龙的武侠也推荐给乙(甲乙可能毫无关系)

——与机遇用户的协同过滤推荐的对比:其实基于商品的协同过滤推荐机制是Amazon 在基于用户的机制上改良的一种策略,因为在大部分的Web 站点中,物品的个数是远远小于用户的数量的,而且物品的个数和相似度相对比较稳定,同时基于商品的机制比基于用户的实时性更好一些。但如在一些新闻推荐系统则相反。

3.3基于模型的协同过滤推荐(Model-based Recommendation)

基于模型的协同过滤推荐就是基于样本的用户喜好信息,训练一个推荐模型,然后根据实时的用户喜好的信息进行预测,计算推荐。【降维建模,有点高大上的AI向】

基于用户和基于商品的协同过滤推荐有一个大问题:它们太死了,就是说,它们能发现都喜欢同一样东西的人,但却忽略了爱好非常相似的潜在用户组合。比如说你喜欢莫奈的睡莲。那么,在这个法国印象派大师画的 250 幅睡莲中,你最喜欢哪一幅?在一群喜欢莫奈的人当中,完全可能每个人喜欢的睡莲都不相同,而基本的算法就有可能识别不出这些人都有着共同的爱好。【基于属性的表象而非内涵?】

此时需要降维(Dimensionality Reduction)的方法。我们来看看你爱吃的东西,以及如何把它跟其他一百万人爱吃的东西做比较。你可以把这些信息用一个巨型矩阵表示出来,每一条竖线代表一样食物,每个人爱吃什么东西就自然形成了一行。在你的这一行上面或许会显示你给了烤牛排 5 颗星、红烧小排 4 星半、烤鸡翅 2 颗星、冻豆腐卷 1 颗星、奶酪烤蘑菇 5 颗星、盐水毛豆 4 颗星,等等。

然而,使用这个矩阵的推荐算法并不关心你给哪种食物评了多少颗星。它想要了解的是你一般而言的喜好,这样它可以将这个信息应用到更丰富多样的食物上。比如说,基于你上面给出的信息,算法可能会认为你喜欢牛肉、咸的东西和烤制菜品,不喜欢鸡肉和任何油炸的东西,不喜欢也不讨厌蔬菜,依此类推【降维找到本质!】。你爱吃的食物所拥有的特点或者说维度,它的数量和符合你要求的食物的数量比起来要小得多——至多可能 50 或 100。通过查对这些维度,推荐算法可以迅速决定你是否会喜欢一种新的食物(比方说盐焗排骨),方法就是把这种食物的各项维度(咸的、牛肉做的、不是鸡肉、不是炒的、不是蔬菜、不是烤的)同你的资料进行比对。这种更为一般性的呈现使得推荐算法能准确的发现有着相似但不同喜好的用户。而且,它大幅压缩了矩阵的规模,使算法变得更加高效。

不过,你爱吃的食物的维度该上哪儿去找呢?肯定不是去问厨师。推荐系统会使用一种称为奇异值分解的数学方法来计算维度,这种方法涉及到创建两个保存原始数据的巨型矩阵,这也是这种方法的主要缺点。创建矩阵所需要的时间会随着客户和产品数量的增多而飞速增长——创建一个拥有 2.5 亿名客户和 1000 万种产品的矩阵,需要花上创建一个 25 万名客户和 1 万种产品的矩阵 10 亿倍那么多的时间。而且这一过程还需要经常重复。一旦收到新的评分,矩阵就已经过时;在像亚马逊这样的公司,每一秒钟都会收到新的评论。幸运的是,就算略微过时,矩阵仍然能以一个挺不错的水平运作。研究人员们也已经在设计新的算法,为奇异值分解提供可用的近似值并显著缩短计算时间。

基于协同过滤的推荐应用最广泛,而它也存在以下几个问题:

方法的核心是基于历史数据,所以对新物品和新用户都有“冷启动”的问题。

推荐的效果依赖于用户历史偏好数据的多少和准确性。

在大部分的实现中,用户历史偏好是用稀疏矩阵进行存储的,而稀疏矩阵上的计算有些明显的问题,包括可能少部分人的错误偏好会对推荐的准确度有很大的影响等等。

对于一些特殊品味的用户不能给予很好的推荐。

由于以历史数据为基础,抓取和建模用户的偏好后,很难修改或者根据用户的使用演变,从而导致这个方法不够灵活。
可以分为三个子类:基于用户的推荐、基于商品的推荐和基于模型的推荐。
系统包含如下功能
注册模块。
登录模块 。
登录后:

  1. 图书分类管理。

  2. 小说管理。

  3. 用户管理。

  4. 设置密码。

  5. 图片管理、

基于推荐算法的小说推荐系统

基于推荐算法的小说推荐系统

基于推荐算法的小说推荐系统

基于推荐算法的小说推荐系统

基于推荐算法的小说推荐系统

基于推荐算法的小说推荐系统

基于推荐算法的小说推荐系统

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
项目完整可用,配合压缩包内数据库可直接运行使用。 eclipse+mysql5.7+jdk1.8 功能:推荐引擎利用特殊的信息过滤(IF,Information Filtering)技术,将不同的内容(例如电影、音乐、书籍、新闻、图片、网页等)推荐给可能感兴趣的用户。通常情况下,推荐引擎的实现是通过将用户的个人喜好与特定的参考特征进行比较,并试图预测用户对一些未评分项目的喜好程度。参考特征的选取可能是从项目本身的信息提取的,或是基于用户所在的社会或社团环境。 根据如何抽取参考特征,我们可以将推荐引擎分为以下四大类: • 基于内容的推荐引擎:它将计算得到并推荐给用户一些与该用户已选择过的项目相似的内容。例如,当你在网上购书时,你总是购买与历史相关的书籍,那么基于内容的推荐引擎就会给你推荐一些热门的历史方面的书籍。 • 基于协同过滤的推荐引擎:它将推荐给用户一些与该用户品味相似的其他用户喜欢的内容。例如,当你在网上买衣服时,基于协同过滤的推荐引擎会根据你的历史购买记录或是浏览记录,分析出你的穿衣品位,并找到与你品味相似的一些用户,将他们浏览和购买的衣服推荐给你。 • 基于关联规则的推荐引擎:它将推荐给用户一些采用关联规则发现算法计算出的内容。关联规则的发现算法有很多,如 Apriori、AprioriTid、DHP、FP-tree 等。 • 混合推荐引擎:结合以上各种,得到一个更加全面的推荐效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值