首页 > 编程语言 >基于矩阵分解的协同过滤算法

基于矩阵分解的协同过滤算法

时间:2024-01-19 11:55:48浏览次数:18  
标签:基于 推荐 过滤 矩阵 用户 算法 分解

引言

随着互联网、大数据等新技术的迅速发展,人们的生活变得更加便捷,但同时也导致网络数据爆炸式增长。为了快速帮助用户找到感兴趣的内容,越来越多的研究者致力于推荐算法的研究,以提高推荐质量,向用户推荐更符合其喜好的内容。然而,目前的推荐算法仍存在数据稀疏性、隐私保护和冷启动等问题,文章针对其中一些问题进行改进。

摘要

首先,为了缓解冷启动问题,文章引入引入潜藏的隐式信息即用户的社交信息和项目关联信息,结合这些隐式信息可以提高推荐算法的准确度。

本文提出了一种基于双正则化矩阵分解的推荐算法-MDABDRT算法(Matrix Decomposition Algorithm Based on Doubl-e Regular Terms),MDABDRT算法在矩阵分解模型中添加用户去噪声的社交信息正则项和融有用户活跃度的商品关联正则项,在矩阵分解过程中限制用户和项目潜在特征向量的学习。其中,通过用户去噪声的社交信息正则项,可以限制用户与其真正有相同兴趣喜好的社交好友的潜在特征向量相似,而融有用户活跃度的商品关联正则项,则可以限制商品与其有关联的商品的潜在特征向量相似,从而提高推荐质量。

由于基于双正则化矩阵分解的推荐算法忽略了用户潜在特征向量与项目潜在特征向量之间的非线性关系,引入深度神经网络来学习用户和项目潜在向量之间的非线性关系。

本文提出了基于深度神经网络的双正则化矩阵分解推荐算法- DRTMDABDNN 算法(Double Regular Term Matrix Decomposition Algorithm Based on Deep Neural Network),利用神经网络发现用户和项目之间更多非线性的隐藏偏好信息,提高对项目预测评分的准确性,提高推荐算法的精度。

最后,作者设计并实现一个个性化商城系统,将 MDABDRT 算法和 DRTMDABDNN 算法应用到商城系统的个性化推荐模块中,该系统能够根据用户的行为和偏好,推荐相关商品,从而实现更好的个性化推荐效果。

协同过滤推荐算法

该方法是目前应用最广泛、使用最多的推荐算法之一,该算法的主要思想是发现与当前用户有着相同兴趣爱好或者有过相似历史行为的用户,分析用户与用户之间的兴趣爱好的相似性、项目与项目之间的关联性以及用户对项目的操作行为,预测用户的兴趣,并向用户进行推荐相关内容。协同过滤推荐算法通常又被分为基于用户的协同过滤推荐算法、基于项目的协同过滤推荐算法、基于模型的协同过滤推荐算法三种类型。

基于用户的协同过滤推荐算法主要是通过用户对项目的历史操作行为发现用户的兴趣,然后通过评估用户与用户之间的相似程度,找到与这个用户有着相似兴趣爱好的用户,并向目标用户推荐相似用户们交互过的内容。

基于项目的协同过滤推荐算法是根据用户的历史评分信息发现用户的偏好,发现项目和项目之间的相似度,然后根据用户的兴趣偏好,向目标用户推荐类似的项目。

基于模型的协同过滤推荐算法是借助机器学习的方法来分析用户对项目的历史操作行为,通过学习用户打过分的项目来预测用户没有过打过分的项目的评分,并在此过程中建立数学模型。该类算法主要利用用户交互的历史评分数据,通过矩阵分解、奇异值分解、聚类分析等模型对历史评分进行学习,从而预测用户未交互的项目评分并进行推荐。

该类型的算法不需要将所有用户的数据读入到内存中在进行计算,可以对训练数据进行离线学习,从而获得模型的参数,最终得到线下的预测模型。该类型算法可以通过学习用户对项目的偏好模型,更好地预测出用户可能感兴趣的项目,在一定程度上可以缓解数据稀疏性问题和冷启动问题,也可以很好地解释推荐的结果。

混合推荐算法

混合推荐算法是一种结合多种推荐算法以提高推荐准确性和覆盖率的方法[8]。它可以通过基于模型的方法或者基于加权的方法将不同算法的结果结合起来,产生更好的推荐结果。混合推荐算法可以解决推荐系统中的一些难题,如冷启动问题、推荐结果多样性问题等。

矩阵分解

在协同过滤推荐算法中,矩阵分解是最常被使用的方法之一,该方法主要是利用机器学习和隐语义模型的特点挖掘潜在的用户与项目之间的关系。矩阵分解是一种将用户-项目评分矩阵分解成两个低维潜在特征矩阵的方法,这两个低维潜在特征矩阵分别是用户潜在特征矩阵和项目潜在特征矩阵,使得两个潜在特征矩阵的相乘的结果近似等于用户原始的打分矩阵,矩阵分解原理图如下图所示:
image

深度神经网络

深度神经网络是一种层次化的模型,它是由多个神经网络层组成的,每一层都由多个神经元组成,神经元用来处理输入的数据并输出产生的结果。深度神经网络主要由输入层、多个隐藏层和输出层组成。每层都将输入的数据变为更高级的表示,并将其作为下一层的输入数据。在模型训练期间,深度神经网络学习如何调节每层之间的连接权重,以确保使得预测值与实际值之间的误差尽可能的小,各层之间的权重调节需要利用反向传播来完成,反向传播主要是通过计算误差梯度来更新各个权重值。深度神经网络拥有强大的表示能力,因此可以发现数据之间的非线性关系。深度神经网络主要分为三类:前馈深度网络、反馈深度网络和双向深度网络。

基于矩阵分解的推荐算法

概述

该算法是当前推荐系统中广泛应用的一种算法。该算法因其在 Netflix Prize 比赛中的卓越表现而受到大量研究人员的关注。与其他协同过滤算法相比,矩阵分解算法具有更扎实的理论基础、更好的可扩展性、简单、易于实现等优势,已成为最受欢迎的一种算法。

矩阵分解主要应用在推荐算法的评分预测部分,该部分是推荐算法的一个重要组成部分。矩阵分解方
法一般用于分解用户-物品评分矩阵,从而得到两个隐含特征矩阵,并通过这些隐含的特征来评估用户喜欢某物品的可能性。

基于矩阵分解的推荐算法分类如图所示:
image

基于矩阵分解的协同过滤推荐算法

该算法通过将高维的用户-项目评分矩阵进行矩阵分解,分解成两个低维的矩阵即用户潜在特征矩阵和项目潜在特征矩阵,将这两个潜在特征矩阵相乘来预测用户未评分的项目的评分,并将这些评分按从高到低进行排序,向用户推荐评分最高的前N个项目。常见的算法有SVD算法等。

基于概率模型的矩阵分解算法

该算法将用户对项目的历史打分矩阵看成是由多个概率模型组成的混合模型,并利用最大似然或者贝叶斯推断方法来学习模型中的参数,从而进行推荐。常见的基于概率模型的矩阵分解算法有概率矩阵分解(PMF),隐式反馈下的概率矩阵分解(iPMF)等。

基于张量分解的推荐算法

该算法将用户对项目的历史打分矩阵看成是由多个概率模型组成的混合模型,并利用最大似然或者贝叶斯推断方法来学习模型中的参数,从而进行推荐。常见的基于概率模型的矩阵分解算法有概率矩阵分解(PMF)、隐式反馈下的概率矩阵分解(iPMF)等。

基于非负矩阵分解的推荐算法

该算法将用户对项目的历史打分矩阵看成是由多个概率模型组成的混合模型,并利用最大似然或者贝叶斯推断方法来学习模型中的参数,从而进行推荐。常见的基于概率模型的矩阵分解算法有概率矩阵分解(PMF)、隐式反馈下的概率矩阵分解(iPMF)等。

基于深度学习的矩阵分解算法

该算法将用户对项目的历史打分矩阵看成是由多个概率模型组成的混合模型,并利用最大似然或者贝叶斯推断方法来学习模型中的参数,从而进行推荐。常见的基于概率模型的矩阵分解算法有概率矩阵分解(PMF)、隐式反馈下的概率矩阵分解(iPMF)等。

基于社交信息的推荐算法

该算法将用户对项目的历史打分矩阵看成是由多个概率模型组成的混合模型,并利用最大似然或者贝叶斯推断方法来学习模型中的参数,从而进行推荐。常见的基于概率模型的矩阵分解算法有概率矩阵分解(PMF)、隐式反馈下的概率矩阵分解(iPMF)等。

系统设计

作者给出的设计图如下:
image

各功能模块图如下:
image

基于双正则化矩阵分解的推荐算法

在推荐算法中,常见的计算相似度的方法主要有:余弦相似度方法、欧几里得距离法以及皮尔逊相关系数方法等。文章提出的MDABDRT算法用皮尔逊系数来衡量商品之间的相似性。

为了推荐系统能够对用户间的相似性进行计算,除了考虑用户兴趣信息外,还可以利用额外的信息,如用户的社交信息等。用户的社交信息也会隐藏着用户的喜好,有相同兴趣爱好的两个用户会成为好友,并且他们之间会相互影响对方的喜好。

算法的伪代码如下
image

写在结尾

好了,今天的论文分享就写在这了,明天见。

标签:基于,推荐,过滤,矩阵,用户,算法,分解
From: https://www.cnblogs.com/wephiles/p/17974237

相关文章

  • java相似度算法计算
     publicclassCompareStrSimUtil{privatestaticintcompare(Stringstr,Stringtarget,booleanisIgnore){intd[][];//矩阵intn=str.length();intm=target.length();inti;//遍历str的intj;//遍历......
  • 文心一言 VS 讯飞星火 VS chatgpt (182)-- 算法导论13.4 6题
    六、用go语言,Skelton和Baron教授担心在RB-DELETE-FIXUP的情况1开始时,结点x.p可能不是黑色的。如果这两位教授是对的,则第5~6行就是错的。证明:x.p在情况1开始时必是黑色的,从而说明这两位教授没有担心的必要。文心一言:首先,我们需要理解RB-DELETE-FIXUP的情况1开始时,节点x.p......
  • 安防监控平台LntonAIServer视频汇聚平台明烟明火识别 烟火算法检测告警
    LntonAIServer视频汇聚平台是一款基于人工智能技术的安防监控平台。它能够实时监控和分析视频数据,通过烟火算法检测告警,为我们提供及时、准确的安全信息。无论是在家庭、办公室,还是在公共场所,都能使用LntonAIServer。明烟明火识别是LntonAIServer视频汇聚平台的一大亮......
  • 安防监控平台LntonAIServer视频汇聚平台烟火算法检测
    在这个科技日新月异的时代,我们的生活被各种高科技产品所包围。其中,人工智能技术的出现,更是让我们对未来充满了期待。今天,我要为大家介绍的是一款名为“LntonAIServer”的视频汇聚平台,它采用了一种名为“森林烟火算法”的技术,为我们的环境安全提供了有力的保障。“森......
  • 神经网络优化篇:详解Adam 优化算法(Adam optimization algorithm)
    Adam优化算法在深度学习的历史上,包括许多知名研究者在内,提出了优化算法,并很好地解决了一些问题,但随后这些优化算法被指出并不能一般化,并不适用于多种神经网络,时间久了,深度学习圈子里的人开始多少有些质疑全新的优化算法,很多人都觉得动量(Momentum)梯度下降法很好用,很难再想出更好......
  • 安防监控平台LntonAIServer视频汇聚平台烟火算法检测
    在这个科技日新月异的时代,我们的生活被各种高科技产品所包围。其中,人工智能技术的出现,更是让我们对未来充满了期待。今天,我要为大家介绍的是一款名为“LntonAIServer”的视频汇聚平台,它采用了一种名为“森林烟火算法”的技术,为我们的环境安全提供了有力的保障。“森林烟火算法”是......
  • 协同过滤笔记
    笔记记录一下学习工作中遇到的一些知识,以防遗忘,不清楚的可以回来再看。一些专有名词embedding:隐向量非常重要无处不在召回:粗略计算要返回结果,例如从100W商品中取比较可能的100个负采样负采样(NegativeSampling)是一种用于训练词嵌入模型的技术。在自然语言处理中,词嵌入......
  • Vue3 Diff算法之最长递增子序列,学不会来砍我!
    专栏分享:vue2源码专栏,vue3源码专栏,vuerouter源码专栏,玩具项目专栏,硬核......
  • 【算法】【线性表】【链表】LRU 缓存
    1 题目请你设计并实现一个满足  LRU(最近最少使用)缓存 约束的数据结构。实现 LRUCache 类:LRUCache(intcapacity) 以 正整数 作为容量 capacity 初始化LRU缓存intget(intkey) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。voidput......
  • 后端登陆的过滤器
    后端登陆的过滤器packagecom.itheima.filter;importcom.google.gson.Gson;importcom.google.gson.JsonObject;importcom.itheima.pojo.Result;importcom.itheima.utils.JwtUtils;importlombok.extern.slf4j.Slf4j;importorg.springframework.boot.configurationpro......