风暴项目个性化推荐系统浅析

2024-09-07 19:32

本文主要是介绍风暴项目个性化推荐系统浅析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

风暴项目的主要任务是搭建自媒体平台,作为主开发人员的我希望把工作重心放在个性化推荐系统上。

目前风暴项目的个性化推荐是基于用户行为信息记录实现的,也就是说对于每条资讯,数据库中有字段标明其类型。建立一张用户浏览表,对用户的浏览行为进行记录,从中可以获取当前用户对哪类资讯感兴趣。

若用户第一次登陆,则按默认规则选取热点资讯做推荐,及所有资讯按浏览量降序排序,取前4个。另外,我考虑到后期可能有商业合作,需要人为的推荐上榜(参考新浪微博的上热点)。所以对于每条资讯,再增加is_hot字段,扫描所有资讯,把人为推荐的热点加入推荐列表。

若用户不是第一次登录,则查找该用户的浏览记录,取其浏览量最多的资讯类型,对该类型下资讯降序排列,取前4个。然后考虑人为推荐,操作同上。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

(分割线)

曾经看过一段时间机器学习,颇感兴趣。所以,我考虑后期采用基于用户的协同过滤算法对个性化推荐系统进行改进。

首先,我们的推荐是基于用户的,也就是说对于当前用户,我们找到跟他兴趣喜好相近的K个用户,依据这K个用户对当前用户进行资讯推荐。这里需要对资讯的喜好标识做下规定,每条资讯1~5分,由用户进行评判,据此得出用户的喜好。

然后,如何找到跟他喜好相近的用户。遍历整张表去查找跟当前用户有相同喜好的其他用户固然可行,一旦这张表过大,遍历必然耗时。所以建立一张资讯用户反查表,记录该条资讯有哪些用户喜欢,这样可以快速的找到和当前用户有相近喜好的所有用户。

接下来就是相似度计算,这里我采用余弦相似性计算,cos(a,b) = <a,b>/ (|a|*|b|),a、b均为向量。分别计算出的每个用户和当前用户的相似度,据此找出与当前用户喜好相近的前K个用户。

最后,我们根据之前计算出的相似度作为权值,每条资讯作权值和对应用户喜欢的乘积累加和,结果降序排列取前4即可。


总结:

1.计算其他用户和你的相似度,利用反查表排除与你无关的用户。

2.根据相似度降序取前K个与你喜好相近的用户。

3.在K个用户喜欢的资讯里,根据相似度计算每条资讯的推荐度

4.根据推荐度降序推荐资讯。

这篇关于风暴项目个性化推荐系统浅析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145958

相关文章

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Java日期类详解(最新推荐)

《Java日期类详解(最新推荐)》早期版本主要使用java.util.Date、java.util.Calendar等类,Java8及以后引入了新的日期和时间API(JSR310),包含在ja... 目录旧的日期时间API新的日期时间 API(Java 8+)获取时间戳时间计算与其他日期时间类型的转换Dur

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

springboot项目中使用JOSN解析库的方法

《springboot项目中使用JOSN解析库的方法》JSON,全程是JavaScriptObjectNotation,是一种轻量级的数据交换格式,本文给大家介绍springboot项目中使用JOSN... 目录一、jsON解析简介二、Spring Boot项目中使用JSON解析1、pom.XML文件引入依

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹