【建模与仿真】融合画像约束和潜在特征的深度推荐算法

导读:

基于深度学习的推荐算法已成为推荐系统领域的研究趋势。然而,大多数现有工作仅考虑单一的用户与物品交互数据,限制了算法的预测性能。本文提出一种画像约束的编码方式,并融合隐因子模型中的潜在特征,丰富了推荐算法的输入以提升评分预测的准确性。该算法利用矩阵分解得到潜在特征初始化用户与物品的嵌入,然后通过线性注意力机制增强模型对画像特征的敏感度,最后结合深度神经网络进行评分预测。通过本文算法与其他基线算法在MovieLens与Netflix数据集上进行对比,该算法与基线算法相比显著提高了评分预测的精度,并在推荐列表排序性能等方面表现出色。本文的研究揭示了加入用户与物品的画像约束和潜在特征,可以有效提升推荐系统的性能。

关注汉斯,获取更多论文资讯,如您需要论文原文,欢迎私信获取~

作者信息:

艾 均, 柏光耀, 苏 湛, 马菀言:上海理工大学光电信息与计算机工程学院,上海

正文

推荐算法的发展呈现出以下几个主要趋势:基于隐因子模型的推荐算法、基于用户画像的推荐算法、基于深度学习的推荐算法。

推荐系统发展至今仍面临一些问题:1) 大多数推荐算法仅依赖用户对物品的显式反馈,如用户–物品评分数据,往往忽视了用户的兴趣或隐式偏好,导致推荐效果难以达到最佳。2) 如何从复杂的用户–物品交互数据中有效提取并利用用户与物品的特征,是提升个性化推荐算法准确性的重要挑战。3) 当遇到新用户或新物品时,由于缺乏历史数据,推荐系统难以提供准确的推荐,进而面临冷启动问题。针对如何利用用户的兴趣或隐式偏好以及如何从复杂的交互数据中提取并利用用户和物品的特征,本文提出一种融合画像约束和潜在特征的深度推荐算法(Deep Portrait Feature and Latent Embedding Algorithm, DPFLE)。

大多数基于深度学习的推荐算法仅依赖于用户–物品评分数据,且普遍存在可解释性不足的问题,本文提出的DPFLE使用矩阵分解初始化用户和物品的嵌入向量,利用物品标签信息构建细粒度的画像向量,并通过线性注意力机制增强模型对画像特征的敏感度,丰富算法输入的同时还改善了算法的可解释性。

算法设计

整体算法如图1所示。首先对用户–物品评分矩阵,使用矩阵分解技术,得到用户和物品的潜在特征,利用预先计算的潜在特征来初始化用户嵌入层以及物品嵌入层。随后,利用物品的标签信息并结合评分信息计算出用户和物品的画像向量,经过portrait_encoder层编码得到用户画像约束以及物品画像约束,对这个四个特征进行融合,之后利用深度神经网络进行评分预测。

在电影推荐领域,电影标签作为电影的抽象表示,蕴含了丰富的用户隐式信息,合理利用电影标签数据,可以有效提升推荐算法的性能,具有重要的应用价值。 通过统计用户对不同标签的物品在不同评分下的评分次数,并除以相同评分下的评分总次数最后进行拼接操作得到用户的画像向量。具体过程如图2所示。

 实验设计与分析

1. 数据集

本文使用经典数据集MovieLens以及Netflix来验证提出的方法。MovieLens25M记录了16万位用户对6万部电影的2500万余条评分数据,评分的范围为0.5到5,间隔为5,电影的类型有动作片、恐怖片、喜剧片等等,一共有19种类型。Netflix记录了48万位用户对1万余部电影的10000万余条评分数据,评分的范围为1到5,间隔为1。本文分别从两个数据集中随机选取1500位用户的所有数据进行实验,以节省计算资源和时间。需要注意的是,由于Netflix数据集中不包含电影类型的信息,因此本文通过电影标题在MovieLens数据集中查找其相应的类型。本文将数据集按照90%,10%的比例将数据集划分为训练集和测试集,每个算法仅基于训练集预测每个测试集中的所有评分,并进行折十验证,最终结果取所有实验的平均值。

2. 评价指标

本文使用平均绝对误差(Mean Absolute Error, MAE) 、均方根误差(Root Mean Square Error, RMSE) 来评估评分预测的误差。MAE反映了算法预测评分与用户实际评分之间的偏差,RMSE表示预测用户评分与实际评分之间偏差的均方根值。使用归一化折损累计增益(Normalized Discounted Cumulative Gain, NDCG) 来评估推荐列表的排序性能。

3. 基线算法

为了评估本文提出的DPFLE的性能,本文将其与其他基线算法进行了上述评价指标的比较。所有算法均取其论文中的最优指标。

在MovieLens数据集和Netflix数据集中的MAE和RMSE结果对比如表1所示,其中表现最佳的值以黑体加粗标出,后续也用此形式表示最优值。DPFLE的MAE值和RMSE值在两个数据集上相较于其他对比算法均达到了最优。

表2显示了NDCG和Diversity在两个数据集上的结果对比。 

表3显示了各个算法的Accuracy,Precision以及Recall在两个数据集上的表现。 

在MovieLens与Netflix数据集中,各算法的总体实验结果表现如图4,其中本文提出的DPFLE在MAE、RMSE、NDCG、Accuracy这四个指标上均取得了最好的效果。由上述实验结果可知,将画像约束与潜在特征相融合并利用深度学习进行评分预测,能够有效降低推荐系统中的误差,并且在推荐列表的排序性能方面也有显著提升。然而,在推荐列表的多样性方面,本文提出的DPFLE表现并不出色。由于将用户与物品的画像约束加入算法中,推荐结果往往集中于用户已经喜欢的物品,而忽视了其他潜在的、有趣的选项。 

为了探究潜在特征的大小对实验的影响,本文将k分别设置为50、100、200、300,并在两个数据集上进行实验。表4显示了在不同的潜在特征大小下,DPFLE在两个数据集中的MAE和RMSE的表现。当k大于300时,MAE和RMSE的实验结果变化非常小,但是算法的执行时间会更长。为了节省计算资源和时间,本文没有过多探究更大的k对实验的影响。 

表5显示了去掉AFTSimple注意力模块后与原始算法的比较,其中DPFLE-AFT表示去除注意力模块后的模型,经比较可以得出DPFLE在两个数据集中的MAE平均降低了2.11%,RMSE平均降低了1.16%,说明通过线性注意力机制对画像特征进行加权计算能够更好地捕捉用户和物品之间复杂的关系并提升模型的预测精度。 

总结与展望

本文在两个真实世界的数据集中进行了验证,实验结果显示,在预测精度与推荐列表的排序方面,本文所提出的方法相较于一些先进的算法有明显的提升。

在未来的工作中,本文将考虑图神经网络替代传统的多层感知机,利用用户与物品之间的复杂关系构建交互图,挖掘更深层次的特征关联,以提高推荐系统的性能,为用户提供更加个性化和精准的推荐服务。

基金项目:

国家自然科学基金项目(61803264)

原文链接:https://doi.org/10.12677/mos.2025.144298

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/91835.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为网路设备学习-26(BGP协议 二)路径属性

一、属性分类二、属性含义①公认必遵:所有BGP对等体 必须识别 且 在Update报文中携带1.Origin2.AS-Path3.Next hop②公认自决:所有BGP对等体 必须识别但可以不在Update报文中携带 1.Local-Preference2.ATOMIC_Aggregate③可选传递:所有BGP对…

从0搭建YOLO目标检测系统:实战项目+完整流程+界面开发(附源码)

文章目录一、前言二、专栏介绍三、已有系统介绍3.0 基于yolo通用目标检测系统(手把手教你修改成为自己的检测系统)3.1 基于yolov8柑橘检测系统3.2 基于yolov8舰船检测系统3.3 基于yolo11人脸检测系统3.4 基于yolov8无人机影像光伏板缺陷检测系统一、前言…

【测试】自动化测试工具基础知识及基本应用

下面详细介绍一些常用的自动化测试工具及其基本概念,并提供具体的示例代码,帮助你更好地理解和应用这些工具。1. 自动化测试的基本概念自动化测试是通过软件程序自动执行测试用例的过程。与手动测试相比,自动化测试能够提高测试效率、减少人为…

ArcGIS的字段计算器生成随机数

在ArcGIS的字段计算器中使用Python脚本生成0-100的随机数,可以按照以下步骤操作: 打开属性表,选择要计算的字段打开字段计算器选择"Python"解析器勾选"显示代码块"在"预逻辑脚本代码"中输入以下代码在下方表达…

【前端:Html】--1.1.基础语法

目录 1.HTML--简介 2.HTML--编译器 步骤一:启动记事本 步骤二:用记事本来编辑 HTML 步骤三:保存 HTML 步骤四:在浏览器中运行 HTML 3.HTML--基础 3.1.HTML声明--!DOCTYPE 3.2.HTML 标题--h1 3.3.HTML 段落--p 3.3.1. 水平线--hr 3.3.2.换行符--br 3.3.3.固定格式…

FreeSWITCH 简单图形化界面46 - 收集打包的一些ASR服务

FreeSWITCH 简单图形化界面46 - 收集打包的一些ASR服务 0、一个fs的web配置界面预览1、docker地址2、使用2.1 下载2.2 运行 3、例子3.1 下载3.2 启动3.3 编译mod_audio_fork或者mod_audio_stream模块使用3.4 编写呼叫路由和呼叫脚本呼叫路由呼叫脚本 3.5 esl捕获识别结果3.6 其…

20250805问答课题-实现TextRank + 问题分类

textRank的工具包实现其他可能的实现方法,对比结果查找分类的相关算法 目录 1. 关键词提取TF-IDF TextRank 1.1. TF-IDF算法 1.2. TextRank算法 1.3. 双算法提取关键词 2. 问题分类 2.1. 预处理 2.2. 获取BERT向量 2.3. 一级标签预测 2.4. 二级标签预测 3…

Memcached缓存与Redis缓存的区别、优缺点和适用场景

一、核心差异概述特性MemcachedRedis​数据结构​简单键值存储丰富数据结构(String/Hash/List/Set等)​持久化​不支持支持RDB和AOF两种方式​线程模型​多线程单线程(6.0支持多线程I/O)​内存管理​Slab分配LRU淘汰多种淘汰策略&…

Git简易教程

Git教程 VCS Version Control System版本控制系统 配置用户名邮箱 配置用户名和邮箱 git config --global user.name mihu git config --global user.email aaabbb.com初始化仓库 从项目仓库拉 git clone [项目地址]新建文件夹之后 git init提交操作 提交到仓库 git add . #把…

关于Web前端安全之XSS攻击防御增强方法

仅依赖前端验证是无法完全防止 XSS的,还需要增强后端验证,使用DOMPurify净化 HTML 时,还需要平衡安全性与业务需求。一、仅依赖前端验证无法完全防止 XSS 的原因及后端验证的重要性1. 前端验证的局限性前端验证(如 JavaScript 输入…

消息系统技术文档

消息系统技术文档 概述 本文档详细说明了如何在现有的LHD通信系统中添加自己的消息类型,包括消息的发送、接收、解析和处理的完整流程。 系统架构 消息流程架构图 #mermaid-svg-My7ThVxSl6aftvWK {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博舆情数据可视化分析-热词情感趋势树形图

大家好,我是java1234_小锋老师,最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程,持续更新中,计划月底更新完,感谢支持。今天讲解微博舆情数据可视化分析-热词情感趋势树形图…

8月4日 强对流天气蓝色预警持续:多地需警惕雷暴大风与短时强降水

中央气象台8月4日10时继续发布强对流天气蓝色预警,提醒广大民众注意防范即将到来的恶劣天气。 预警详情: 时间范围: 8月4日14时至5日14时 影响区域: 雷暴大风或冰雹: 西北地区中东部、华北中北部、华南南部等地,风力可达8级以上。 短时强降水: 西北地区中东部、华北、…

C语言数据结构(4)单链表专题2.单链表的应用

1. 链表经典算法——OJ题目 1.1 单链表相关经典算法OJ题1:移除链表元素 1.2 单链表相关经典算法OJ题2:反转链表 1.3 单链表相关经典算法OJ题3:合并两个有序链表 1.4 单链表相关经典算法OJ题4:链表的中间结点 1.5 循环链表…

Shell 脚本发送信号给 C 应用程序,让 C 应用程序回收线程资源后自行退出。

下面分别给出一个 Shell 脚本和 C 程序的例子,实现通过 Shell 脚本发送信号给 C 应用程序,让 C 应用程序回收线程资源后自行退出。原理在 Linux 系统中,我们可以使用信号机制来实现进程间的通信。Shell 脚本可以使用 kill 命令向指定的进程发…

C++入门自学Day6-- STL简介(初识)

往期内容回顾 C模版 C/C内存管理(初识) C/C内存管理(续) STL简介: STL 是 C 标准库的重要组成部分,是一个通用程序设计的模板库,用于数据结构和算法的复用。它极大地提升了代码效率、可靠性…

从零开始搞定类与对象(中)

运算符重载1.当运算符被用于类类型的对象时,C语言允许我们通过运算符重载的形式指定新的含义。C规定类类型对象使用运算符时,必须转换成调用对应运算符重载,若没有对应的运算符重载,则会编译报错。2. 运算符重载是具有特殊名字的函…

SpringMVC实战指南:从环境搭建到功能实现全解析

第一章&#xff1a;SpringMVC环境搭建与基础配置1.1 Maven依赖配置在Maven项目中&#xff0c;SpringMVC的依赖配置是开发的第一步。根据Spring官方推荐&#xff0c;以下是SpringMVC 5.3.x版本的Maven依赖配置&#xff1a;<dependencies><!-- Spring MVC核心依赖 -->…

Repo 与 manifest

Manifest&#xff1a;它本身就是一个 git 仓库&#xff0c;其中存放的都是包含仓库和子仓库信息的XML文件。这些文件全部由开发者或者维护者手动配置并自己上传到 git 仓库。另外&#xff1a;Manifest 中的仓库之间的依赖关系 repo 也并不关心。所以它们可以是同级的也可以是包…

深入浅出 RabbitMQ:简单队列实战指南

大家好&#xff0c;我是工藤学编程 &#x1f989;一个正在努力学习的小博主&#xff0c;期待你的关注实战代码系列最新文章&#x1f609;C实现图书管理系统&#xff08;Qt C GUI界面版&#xff09;SpringBoot实战系列&#x1f437;【SpringBoot实战系列】SpringBoot3.X 整合 Mi…