推荐系统协同过滤算法——基于邻域的模型

推荐系统(一) 协同过滤(Collaborative Filtering):A基于邻域的算法+B隐语义模型+C基于图的随机游走算法 A 基于用户的协同过滤算法(UserCF):给用户推荐与其兴趣相似的其他用户喜欢的物品 1、首先找到与目标用户兴趣相似的其他用户集合:Jaccard相似度(两用户的交集/并集)+余弦相似度。 余弦相似度: 注:购买同样热门物品时不足以说明两个用户相似,所以需要降权,下式... 阅读详情

基于邻域的模型

协同过滤领域最常见的方法就是基于领域的模型。其最原始的形式是基于用户的方法(详见文献[13]1):基于志趣相投的相似用户的评分记录来估计未知评分。

随后是一种类似的,基于物品的方法:使用同一个用户在相似物品上的评分来估计未知的评分

  • 其具有更好的扩展性;
  • 并提高了准确度;
  • 能更好的解释预测背后的原因(用户对他之前喜欢的物品比较熟悉,但他们却不认识这些所谓志趣相投的人)。

一般来说,隐语义模型在描述数据的各方面具有很强的表达能力,因此其预测结果比基于邻域的模型要好。但是,基于领域的模型更加普遍,是因为:

  • 1)基于邻域的模型,相对简单;
  • 2)更重要的原因是,基于邻域的模型提供了推荐背后原因的直观解释——其不仅提高推荐的准确性;同时增强了用户体验;
  • 3)基于邻域的模型,能够根据一个新进入系统的用户反馈立即提供推荐。

本节结构:

  • 1)如何估计两个物品之间的相似度;
  • 2)基于相似度的领域方法,及其一些特定限制;
  • 3)解决这些问题的建议方法:以计算时间上微小的增加为代价,提高预测准确度。

1.相似度度量

相似度度量是基于物品方法的核心。

皮尔逊相关系数,仅仅是基于共同的用户支持,建议用基准预测器的残差来补偿特定用户和特定物品的偏差。

ρ ^ i j = ∑ u ∈ U ( i , j ) ( r u i − b u i ) ( r u j − b u j ) ∑ u ∈ U ( i , j ) ( r u i − b u i ) 2 ⋅ ∑ u ∈ U ( i , j ) ( r u j − b u j ) 2 (3.15) \hat{\rho}_{ij} = \frac{\sum_{u \in U(i,j)} (r_{ui} - b_{ui} ) (r_{uj} - b_{uj} )}{\sqrt{\\ \sum_{u \in U(i,j)} (r_{ui} - b_{ui} )^2 · \sum_{u \in U(i,j)} (r_{uj} - b_{uj} )^2}\\ }\tag{3.15} ρ^​ij​=∑u∈U(i,j)​(rui​−bui​)2⋅∑u∈U(i,j)​(ruj​−buj​)2 ​∑u∈U(i,j)​(rui​−bui​)(ruj​−buj​)​(3.15)

由于基于更大的用户支持的相关系数估计更加可靠,因此我们可以使用一种近似的相似度计量:

s i j = d e f n i j − 1 n i j − 1 + λ 8 ρ i j (3.16) s_{ij}\overset{def}{=} \frac{n_{ij}-1}{n_{ij}-1+ \lambda_8} \rho_{ij} \tag{3.16} sij​=defnij​−1+λ8​nij​−1​ρij​(3.16)

  • n i j = ∣ U ( i , j ) ∣ n_{ij} = |U(i,j)| nij​=∣U(i,j)∣,记为同时对物品i 和物品 j评分的用户数量;
  • λ 8 \lambda_8 λ8​的典型值可取100;
  • 这是一个相关系数的收缩值,收缩的原因从贝叶斯角度出发,参考2.6节中的文献[11]2
  • 收缩原因(略)p60

2.基于相似度的插值(如何理解插值)

r ^ u i = b u i + ∑ j ∈ S k ( i ; u ) s i j ( r u j − b u j ) ∑ j ∈ S k ( i ; u ) s i j (3.17) \hat{r}_{ui}=b_{ui} + \frac{\\ \sum\limits_{j \in S^k(i;u)} s_{ij}(r_{uj} - b_{uj}) \\ }{\\ \sum\limits_{j \in S^k(i;u)} s_{ij} \\ }\tag{3.17} r^ui​=bui​+j∈Sk(i;u)∑​sij​j∈Sk(i;u)∑​sij​(ruj​−buj​)​(3.17)

  • S k ( i ; u ) S^k(i;u) Sk(i;u) :用户 u u u 评价过的、与物品 i i i 最相似的 k k k 个物品的集合;
  • 相似度的双重用途:1)识别近邻物品;2)作为式3.17中的插值权重;
  • 除了直接把相似度权重作为插值系数,也可以转化这些权重得到更好的结果,例如基于关联的相似度的平方值:

r ^ u i = b u i + ∑ j ∈ S k ( i ; u ) s i j 2 ( r u j − b u j ) ∑ j ∈ S k ( i ; u ) s i j 2 (3.18) \hat{r}_{ui}=b_{ui} + \frac{\\ \sum\limits_{j \in S^k(i;u)} s_{ij}^2(r_{uj} - b_{uj}) \\ }{\\ \sum\limits_{j \in S^k(i;u)} s_{ij}^2 \\ }\tag{3.18} r^ui​=bui​+j∈Sk(i;u)∑​sij2​j∈Sk(i;u)∑​sij2​(ruj​−buj​)​(3.18)

  • 文献[29]3中讨论了这些权重更复杂的转换形式
基于相似度方法的优点:

1)直观,实现相对简单;

2)可解释性。解释自动推荐系统的重要性——文献[12,28]4:

  • 丰富用户体验;
  • 鼓励用户与系统交互,修正与主观印象违背的内容来提高长期的准确性。

3)新的评分。

  • 基于物品的领域模型能够在用户输入新的评分之后,立即给出更新过的推荐结果;
  • 而不需要重新训练模型,以估计新的参数
基于领域的标准模型的问题:

1)直接定义了插值权重的**相似度函数( s i j s_{ij} sij​)可以是任意的。

  • 不同的CF算法,使用多少有些不同的相似度度量,用以量化用户或者物品的相似度这一难以捉摸的概念。

2)之前基于领域的方法,没有考虑近邻物品之间的相互作用。

  • 假如,领域集合包含相互之间高度相关的三部电影(《指环王1-3》),如果一个算法忽略了这三部电影的相似性,则最终会把这组物品提供的信息实际计算三次。

3)根据定义,插值权重的和为 1 ,这或许会导致过拟合。

4)如果近邻间物品的评分变化太大,那基于邻域的方法工作得不好。

对于第三项,可以使用下面的规则来降低权重和为 1 带来的影响:

r ^ u i = b u i + ∑ j ∈ S k ( i ; u ) s i j ( r u j − b u j ) λ 9 + ∑ j ∈ S k ( i ; u ) s i j (3.19) \hat{r}_{ui}=b_{ui} + \frac{\\ \sum\limits_{j \in S^k(i;u)} s_{ij}(r_{uj} - b_{uj}) \\ }{\\ \lambda_9 + \sum\limits_{j \in S^k(i;u)} s_{ij} \\ }\tag{3.19} r^ui​=bui​+λ9​+j∈Sk(i;u)∑​sij​j∈Sk(i;u)∑​sij​(ruj​−buj​)​(3.19)

  • 常量 λ 9 \lambda_9 λ9​ 代表当近邻信息很少时,对基于领域的部分的惩罚。

而其他问题在基本框架内很难解决,整个框架并没有被一种正式的模型所证明。

3.联合派生插值权重(不懂)

本节,描述一种更加准确的领域模型,其克服以上所有困难,并保持了基于物品的模型的已知优点:

  • 1)每一个预测仍然使用,相似度度量来定义近邻;
  • 2)但,寻找最优插值的时,并没有考虑相似度度量的值。

4.小结

基于领域的插值的协同过滤或许是创建一个推荐系统最流行的方法。其具有以下三方面的主要特征:

1.数据规范化:

1)规范化对于一般意义上的协同过滤算法至关重要,尤其是对于相对局部性的基于邻域的方法。因为其混合了不兼容的评分,而这些评分是与不同规范化的用户或者物品相关;

2)我们基于基准预测器描述一种合适的方法来进行数据规范化。

2.近邻的选择:

1)其与采用的相似度度量直接相关;

2)这里强调收缩不可靠的相似度的重要性,目的是避免发现有低评分支持度的近邻。

3.插值权重的选择:

1)邻域方法的成功,依赖于插值权重的选择,这些插值权重用来从已知评分的物品的近邻物品中估计未知的评分;

2)大多数已知方法缺少权重推导的严谨方法;

3)这里,我们证明了如何把这些权重转化为最优化问题的全局解来求得,这些最优化问题恰恰反映了他们的角色(???)。



  1. 最原始的基于邻域的模型—文献[13] ↩︎

  2. 相关系数的收缩原因—2.6节的文献[11] ↩︎

  3. 插值权重的更复杂转换形式—文献[29] ↩︎

  4. 解释自动推荐系统的重要性—文献[12,28] ↩︎

从零配置ORB-SLAM3:TUM-VI数据集yaml文件参数调优指南 本文深入解析了ORB-SLAM3在TUM-VI数据集上的yaml配置文件参数调优方法。针对双目惯性模式,详细拆解了相机标定、IMU噪声模型和ORB特征提取三大模块的关键参数,解释了其原理与影响,并通过实战案例展示了如何通过调整特征点数量、FAST阈值及IMU噪声参数,有效提升系统在低纹理环境下的鲁棒性和轨迹精度。 阅读详情

相关推荐

从OAuth到DID:Web4.0身份验证协议的技术演进图谱

在数字身份体系从Web2.0向Web4.0跨越的进程中,身份验证协议正经历着从中心化授权到自主主权的范式转移。本文通过对比OAuth 2.0、OpenID Connect等传统方案与W3C DID、ION等去中心化协议的技术架构,揭示身份验证技术在性能、安全、隐私三大维度的代际差异。基于对GitHub、欧盟数字身份钱包等典型系统的实测数据分析,量化评估中心化授权服务器的单点故障风险与DID链上验证的吞吐量瓶颈。结合零知识证明、分布式密钥管理等前沿技术,为开发者提供面向Web4.0的渐进式身份架构迁移策略。

水务人 834

基于邻域的模型

基于邻域的模型的优点: (1)提供了推荐背后的直观解释,这种解释不仅提高了准确性,同时增强了用户体验。 (2)基于邻域的模型能够根据一个新进入系统的用户反馈立即提供推荐 1.相似性度量 基于物品的方法的核心是物品之间的相似性度量。一般情况下相似度的度量是基于皮尔逊相关系数ρij\rho_{ij}ρij​,该相关系数度量了用户对物品i和物品j进行评分的相似性趋势。 ...

weixin_43631296的博客 1412

SIMetrix教程-001.SIMetrix软件简介与安装

  由于某些原因需要用到SIMetrix仿真软件,然而网上的资料并不是特别多,故在此记录一下这款仿真软件的学习过程,也给有需要的人提供一些参考,免走弯路。如果使用过Pspice或者LTspice软件,学习SIMetrix会很容易入门,仿真软件都是大同小异的,会一样后都可以快速入门其他软件。   SIMetrix是一款以SPICE模型为基础的仿真软件,集成了SIMetrix和SIMPLIS两款内核,为工程师提供了可靠的、易于使用的、并完美结合了速度与精度的电路仿真方式。官方的话不多说,和LTspice一样,优

gaoyong_wang的博客 2万+

Factorization Meets the Neighborhood: a MultifacetedCollaborative Filtering Model 阅读笔记

看论文时做的笔记

hanserdaisuki的博客 1019

FPGA实战:手把手教你实现雷达信号数字下变频(DDC)完整流程

本文提供了一份完整的FPGA实现雷达信号数字下变频(DDC)的实战指南。内容涵盖从Matlab行为级仿真到FPGA硬件实现的完整闭环流程,详细讲解了数字混频、滤波、抽取等核心步骤,并分享了基于Vivado的IP核配置、数据位宽量化及资源优化等关键工程实践经验,旨在帮助读者掌握DDC系统的硬件实现与调试。

dog123的博客 342

c#算法(5)—最小二乘法(二次曲线拟合)

最小二乘法——二次曲线拟合

qq_34059233的博客 1659

推荐系统:矩阵分解与邻域的融合模型

推荐系统通常分析过去的事务以建立用户和产品之间的联系,这种方法叫做协同过滤。 协同过滤有两种形式:隐语义模型(LFM),基于邻域的模型(Neighborhood models)。 本篇文章大部分内容为大神Koren的Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model ,这篇文章发表时我...

weixin_30595035的博客 419

Claude Code 新手安装指南,手把手教你怎么安装使用

如果你是企业内网用户,或者需要自定义 API 端点,那可以用手动配置 API Key 的方式。

篮球界最会写bug的人;程序猿中打球最菜的人。 488

什么是领域模型---详解

负责业务逻辑的实现,其要义是业务语义化显性化的表达,利用特性增加代码的业务表征能力。

weixin_57573088的博客 5694

YOLOv11改进 | 细节涨点篇 | DySample一种最新的轻量化动态上采样算子(效果完爆CARAFE)

本文给大家带来的最新改进机制是一种号称超轻量级且有效的动态上采样器——DySample。与传统的基于内核的动态上采样器相比,DySample采用了一种基于点采样的方法,相比于以前的基于内核的动态上采样器,DySample具有更少的参数、浮点运算次数、GPU内存和延迟。此外,DySample在包括语义分割、目标检测、实例分割、全景分割和单目深度估计在内的五个预测任务中,性能均优于其他上采样器(截至目前最有效的上采样算子),

Snu77的博客 4212

paddle 43 用onnxruntime实现ppyoloe模型的部署(含python和c++版本)

PP-YOLOE+是PP-YOLOE模型的升级版,PP-YOLOE+_l在COCO test-dev2017达到了53.3的mAP, 同时其速度在Tesla V100上达到了78.1 FPS。PP-YOLOE+_s/m/x同样具有卓越的精度速度性价比。paddle官方只给出了基于paddle框架的部署案例,为了更好的部署,为此实现将paddle模型转换为onnx模型,然后在python下实现onnxruntime部署。后续会补充c++ onnxruntime部署

a486259的博客 1915

VO、DTO、DO、PO 概念及其区别

领域模型中的实体类分为四种模型:VO、DTO、DO、PO,各种实体类用于不同业务层次间的交互,并会在层次内实现实体类之间的转化。 VO (View Object)视图对象 用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。 DTO(Data Transfer Object)数据传输对象 主要用于展示层与服务层之间的数据传输对象 DO(Domain Object)领域对象 就是从现实世界中抽象出来的有形或无形的业务实体。 PO(Persistent Object):持久化对象 .

yunnuo的博客 1万+

Python 爬虫实战:分析 AJAX 请求抓取搜狐新闻数据

在Web 2.0时代,大量网站采用AJAX技术实现动态内容加载。传统基于静态HTML解析的爬虫技术(如BeautifulSoup)已无法应对这类场景。本文将以搜狐新闻为实战目标,详解如何通过分析AJAX请求接口实现动态新闻数据的精准抓取。

yansideyucsdn的博客 1751

aliyun-PAI-基于协同过滤的商品推荐

第一部分:此块引用开始至下段块引用开始,借鉴于网络,非原创,忘了原链接了,特此声明。 1.概述 和搜索引擎一样,推荐系统是为了帮助人们更快速的获得对自己有用的信息。和搜索引擎不同,推荐系统是人们被动的获取,由系统根据用户行为或其他的信息推荐给用户的,儿搜索引擎是用户主动输入关键字...

314

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

推荐系统实践笔记——第二章_利用用户行为数据

目录 一、用户行为数据简介 二、用户行为分析 三、实验设计 四、基于邻域的算法 五、隐语义模型(参考LiuQQu的博客,版权声明:本文为优快云博主「LiuQQu」的原创文章) 六、基于图的模型(参考LiuQQu的博客,版权声明:本文为优快云博主「LiuQQu」的原创文章) 基于用户行为分析的推荐算法是个性化推荐系统的重要算法,学术界一般将这类型的算法称为协同过滤算法。 一、用户...

liying700的博客 675

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

协同过滤——基于模型的算法

文章目录1 概述1.1 基于分解的方法1.1.1 分解相似度矩阵:特征值分解1.1.2 分解评分矩阵:奇异值分解(SVD)1.1.3 SVD、SVD++、时间敏感模型1.2 基于邻域的学习方法2 SVD与LFM2.1 基本原理2.2 计算逻辑及优化目标2.3 优化方法2.4 关于SVD和LFM3、SVD++4 时间敏感的因子模型 1 概述 基于模型的方法也叫做基于学习的方法,通过定义一个参数模型来...

jediael_lu的专栏 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

实时推荐系统的三种方式

 推荐系统介绍 自从1992年施乐的科学家为了解决信息负载的问题,第一次提出协同过滤算法,个性化推荐已经经过了二十几年的发展。1998年,林登和他的同事申请了“item-to-item”协同过滤技术的专利,经过多年的实践,亚马逊宣称销售的推荐占比可以占到整个销售GMV(Gross Merchandise Volume,即年度成交总额)的30%以上。随后Netflix举办的推荐算法优化竞赛

mousever的专栏 1万+

【BI学习作业06-因子分解机, libFM与基于邻域的协同过滤】

1.思考题 1.1在推荐系统中,FM和MF哪个应用的更多,为什么 1.2FFM与FM有哪些区别? 1.3DeepFM相比于FM解决了哪些问题,原理是怎样的 1.4Surprise工具中的baseline算法原理是怎样的?BaselineOnly和KNNBaseline有什么区别? 2.编程题 2.1使用libfm工具对movielens进行评分预测,采用SGD优化算法 2.2使用DeepFM对movielens进行评分预测 2.3使用基于邻域的协同过滤(KNNBasic, KNNWithMeans.

水花的博客 815

读书笔记 ---《推荐系统实践》第二章

利用用户行为数据 基于用户行为分析的推荐算法是个性化推荐系统的重要算法,学术界一般将这种类型的算法称为协同过滤算法。协同过滤就是指用户可以齐心协力,通过不断地和网站互动,使自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。 2.1 用户行为数据简介 用户行为数据在网站上最简单的存在形式就是日志。网站在运行过程中都产生大量原始日志 (raw log),并将其存储在文件系统中。很多互联网业务会把多种原始日志按照用户行为汇总成会话日志(session log),其中每个会话表示一次用户行为

zhoxing 916

【推荐系统实践-02】利用用户行为数据(协同过滤)

项亮老师的《推荐系统实战》学习笔记​。​ 目录 用户行为数据简介 用户行为分析 用户活跃度和物品流行度的分布 用户活跃度和物品流行度的关系 基于邻域的算法 基于用户的协同过滤算法 基于物品的协同过滤算法 UserCF和ItemCF的比较 隐语义模型 基于图的模型 为了让推荐结果符合用户口味,我们需要深入了解用户。 基于用户行为分析的推荐算法是个性化推荐系统的重要算法,学术界一般将这...

松坡的机器学习笔记 972

推荐 :一文带你了解协同过滤的前世今生

导读协同过滤:在推荐领域中,让人耳熟能详、影响最大、应用最广泛的模型莫过于协同过滤。2003年,Amazon发表的论文[1]让协同过滤成为今后很长时间的研究热点和业界主流的推荐模型。什么...

数据分析 1707

《推荐系统实践》第2章:协同过滤——基于用户行为分析的推荐算法

文章目录用户行为数据用户行为分析协同过滤算法基于邻域的方法隐语义模型基于图的随机游走算法实验设计和算法评测 用户行为数据 就是日志,分为显性反馈行为和隐形反馈行为。一条日志包括:user id、item id、行为种类、上下文(时间地点)、行为权重、行为内容。 常用数据集 MovieLen数据集 用户行为分析 用户活跃度和物品流行度都遵循长尾分布(Power Law)。 横坐标为流行度和活跃度,纵...

个人记录使用 1874

基于近邻的推荐系统

推荐系统 1. 分类 CF Bases Memory Based: User CF, Item CF Model Based Content Based Knowledge Based Demographic Based 2. 评分矩阵 评分矩阵的类型有:连续值、整形、离散值、二元、一元(隐反馈) 离散值举例:trongly Disagree、Disagree、Neu...

Dynomite的博客 812

【推荐系统】第二章 利用用户行为数据

2.1 用户行为数据简介 用户行为在个性化推荐系统种一般分为两种,显性反馈和隐形反馈。显示反馈包含明确的用户喜好行为,如点赞和讨厌等。隐形反馈是不明确的,如用户浏览记录等。 2.2 用户行为分析 2.2.1 用户活跃度与商品流行度——长尾分布 大部分用户只关注到热门物品,非热门物品无人问津。且用户越活跃越关心冷门物品。 仅仅根据用户行为数据设计的推荐算法一般称为协同过滤算法。可以分为基于邻域的方法,隐语义方法,基于图的随机游走算法等。 2.3 实验设计和算法测评 评价指标 准确率与召回率 R(u)

遍地跑小鸡的博客 2228

推荐系统学习 -- 利用用户行为数据

一、用户行为数据 一个用户行为表示为6部分,即产生行为的用户和行为的对象、行为的种类、产生行为的上下文、行为的内容和权重。用户行为的统一表示如下: user id       产生行为的用户的唯一标识item id       产生行为的对象的唯一标识behavior type     行为的种类(比如是购买还是浏览)context       产生行为的上下文,包括时间和地点等be...

weixin_30367169的博客 1069

推荐系统实践 - 02利用用户行为数据

第二章 利用用户行为数据 1 用户行为数据分析 用户行为数据最简单的存在形式就是日志。 用户行为在个性化推荐系统中一般分为显性反馈行为(explicit feedback)和隐性反馈行为(implicit feedback) 显性反馈行为:明确反映用户对物品喜好的行为,如评分 隐性反馈行为:不能明确反映用户喜好的行为,如页面浏览、购买等行为 显性、隐性反馈行为区别:显性反馈行为能明确反馈用户兴趣,...

weixin_43890707的博客 1009
上一篇: LaTex常用数学符号
下一篇: 推荐系统协同过滤算法——矩阵分解模型
PassionZheng
博客等级 码龄11年 110粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值