论文笔记:Collaborative Filtering Recommender Systems

article/2025/8/26 11:57:01

学习随笔,仅记录值得留意的点。

协同过滤的适用领域

PS:适用协同过滤的场景并不一定完全符合下述要求,只是如果下述条件符合会更适合使用CF

数据要求

1、item数量足够多

2、每个item有足够多的评分

3、每个用户对较多数量的item给出了评分。如果一个用户只对一个item进行了评分,那我们就无法获得item之间相关联的信息。

4、用户评分的数量要比item数量大得多。例如当用户评论稀疏时,我们就需要更多用户来弥补这一缺陷;再举个实际例子,谷歌搜索所索引了的网页数量比全球人口还要多,因此用户无法对item(此处为网页)给出足够的评分。当用户数量不足时,推荐系统的推荐置信度就会降低。

用户评分具有长尾特点,即大部分评分都集中到部分item,很多item是缺少评分的。文中提到了这一现象,但没有给出解决方案

潜在假设

1、社区中每个用户都有相似口味的用户

2、item的评价指标是偏个性化的。虽然有时候在个性化推荐时考虑一些客观的评价指标也会有帮助,但是如果可以仅仅使用某种客观的评价指标来评估item,例如搜索引擎,CF并不是很适合。

3、用户对item的兴趣并不会快速发生变化,例如对于书籍、电影和电子产品。一个反面例子是衣服,使用一个用户五年前的数据大概率不能反应他现在的兴趣

对比协同过滤(CF)与基于内容的过滤(CBF)

1、Collaborative filtering 的假设:口味相似的用户会对相同的item有相近的评分;

2、Content-based Filtering 的假设:同一个用户对于具有相似内容的item会给出相近的评分;

3、两者可以互补。协同过滤需要评分数据,因此对新的item无能为力,而基于内容的过滤则可以解决这一问题;然而,有些场景下,item的内容很难获得或者表示出来,例如电影或者音乐。

博主注:现在深度推荐模型中利用side info来解决冷启动的思路其实就类似于基于内容的过滤

4、人们普遍认为,CF对比于CBF更能给出具有多样性、让用户意外但符合用户的潜在需求的item

协同过滤的分类

非概率模型

给定一个user-item的二维评分表,我们需要利用已有的评分数据来预测其中缺失的评分。例如下图中的X(用户3对于Speed的评分)即为需要预测的评分。

在这里插入图片描述

1、基于用户的CF:通过评分数据计算用户的相似度,然后使用其他用户对于该item的评分的加权和作为预测,权重即为目标用户与其他用户的相似度。例如上面的例子中,需要使用其他用户对于Speed的评分(分别是4、5、3)来加权求和。

2、基于item的CF:通过评分数据计算item的相似度,然后使用该用户对于其他item的评分的加权和作为预测,权重即为目标item与其他item的相似度。例如上面的例子中,需要使用用户3对于其他item的评分(对《The Matrix》评分为3,对《Sideways》评分为4),即3和4来做加权求和。

PS:基于用户的CF和基于item的CF在定义相似度时都有一些变种,但是这两类方法都已经不是主流,此处不再详细介绍。

但个人感觉值得一提的一个比较有意思的设计思路

不同用户的评分偏好不同,即有些用户更偏向于给低分,而另外一些用户偏向于给高分。举个例子,平时偏好打低分的用户这次给一部电影打了中等偏上的分数,可能是等价于一个偏好打高分的用户给该电影打了近乎满分的。为了缓和这一现象,计算评分时使用评分减去该用户的平均评分

3、基于关联规则的CF。过时方法,不介绍。

4、基于矩阵分解的CF。值得了解的方法,但不在此处介绍,见其他博文。

概率模型

决策树

一些设计细节

显式评分与隐式评分

显式评分即用户直接给出的打分,例如从1到5的评分。隐式评分指的是能够间接反应用户对于该item的兴趣程度的值,例如用户在浏览一件物品时停留的时间。显示评分更加精确地反映用户的兴趣,但获取成本更高,隐式评分更容易获取,但这些数据的不确定性更大,会导致推荐系统的置信度更低

评分尺度

评分尺度需要适宜,过小的尺度会导致区分度不够大,从而损失部分信息;而过大的尺度(例如从1到100)会导致更大的不确定性,例如你在隔天再问一次,用户可能会给出不一样的数值。

冷启动问题

用户冷启动的解决思路:

1、给用户推荐热门的item而非个性化的item,或者询问偏好(例如喜欢的音乐风格、电影类别),然后推荐该类别的热门item

2、根据用户的基本信息,推荐与其相似的用户喜欢的item

商品冷启动的解决思路:主要是使用基于非协同过滤的方法,例如基于item的内容或者元数据的相似性来进行推荐。

阅读感受

挺旧的一篇文章,大部分东西都过时了,但其中一些思想倒是一直在沿用,例如基于内容来解决冷启动问题。学习经典方法的意义在于领会其中的设计思想,在推荐领域尤其如此。


http://chatgpt.dhexx.cn/article/apK2nm2O.shtml

相关文章

【科研导向】Neural Collaborative Filtering 神经协同过滤 <论文理解代码分析>

Neural Collaborative Filtering——WWW17 文章简介一.摘要解析二.技术要点三.实验部分 代码解析一.模型构建二.难点问题 未来展望 文章简介 该文由何向南教授团队于17年发表在IW3C2,其核心思想在于结合了传统矩阵分解的易用性与神经网络对用户项目交互的高维感知力…

Maven Filtering和Profile

Filtering Filtering是resource插件的功能,作用是将资源文件中的占位符替换成对应的值,如下图所示: 使用注意 启用resource插件的filtering功能;设定资源文件的路径、过滤条件和编码等等;设定属性文件来源&#xf…

Particle Filtering粒子滤波

粒子滤波理论 本文由最基础的贝叶斯估计开始介绍,再引出蒙特卡罗采样,重要性采样,SIS粒子滤波,重采样,基本粒子滤波Generic Particle Filter,SIR粒子滤波,这些概念的引进,都是为了解…

Deep Frequency Filtering for Domain Generalization论文阅读笔记

这是CVPR2023的一篇论文,讲的是在频域做domain generalization,找到频域中generalizable的分量enhance它,suppress那些影响generalization的分量 DG是一个研究模型泛化性的领域,尝试通过各自方法使得模型在未见过的测试集上有良好…

读Multiscale Vessel Enhancement Filtering笔记

1.Introduction 通常对CTA和MRA的血管成像方法中,可视化3维血管结构的方法是MIP。但是MIP的缺点是会将非血管结构展现出来并且对于对比度比较低的小血管展现不太好。这也正是TOF-MRA的缺点。 这篇论文的目的是为了增强血管结构,最终达到血管分割的目的。…

Maven Resources Plugin的Filtering功能的Bug

Maven Resources Plugin的Filtering功能是非常强大的,是构建中非常重要的一项必备特性,但是最近发现了Filtering在过滤复杂文本(例如Shell脚本)时,会有一些问题,简单记录一下。以下是一段Shell脚本&#xf…

Neural Collaborative Filtering

目录 2 PRELIMINARIES3. NEURAL COLLABORATIVE FILTERING3.1 通用框架3.2 广义矩阵分解(GMF)3.3 MLP3.4 GMF和MLP的聚合—NeuMF 4 EXPERIMENTSQ1 NCF的效果比其他SOTA的隐式CF好吗?Q2 带有负采样的log loss(这个优化框架)是否适用于RS&#x…

图像处理中滤波(filtering)与卷积(convolution)的区别

图像处理中滤波和卷积是常用到的操作。很多人认为卷积就是滤波,两者并无区别,其实不然。两者在原理上相似,但是在实现的细节上存在一些区别。这篇博文主要叙述这两者之间的区别。 1、滤波(或者叫相关) 简单来说&#…

MAVEN中filtering的作用是什么?

FILTERING的作用 MAVEN提供了一种过滤机制,这种机制能够在资源文件被复制到目标目录的同时,当filtering true时替换资源文件中的占位符;当filtering false时不进行占位符的替换。 写在前面 如下所示filtering的用法,它对资源…

在Navicat premium上实现两个数据库同步

问题:有两个数据库A和B,现需要将数据库A的数据同步到数据库B上。 法一:使用备份 首先在数据库A上生成备份 然后将数据库A的备份拷贝到存储数据库B的备份的文件夹下,然后点击还原备份 方法二:使用工具中的同步操作 点击工具->结构同步 选…

Otter实现数据库同步

Otter工作原理 原理描述: 基于Canal开源产品,获取数据库增量日志数据。典型管理系统架构,manager(web管理)+node(工作节点) a. manager运行时推送同步配置到node节点 b. node节点将同步状态反馈到manager上基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作…

【愚公系列】2022年12月 数据库-关系数据库同步框架Dotmim.Sync的使用

文章目录 前言1.移动智能的三种模式2.混合模式模式的瓶颈3.数据同步的解决方案 一、关系数据库同步框架Dotmim.Sync的使用1.包介绍2.SqlServer到Sqlite同步测试基本使用3.SqlServer到Sqlite同步测试Web API代理3.1 服务端设置SqlServer同步服务3.2 客户端设置SqlLite同步服务3.…

django mysql数据同步_[django自动同步数据库]Django数据库同步操作技巧详解

同步数据库: 使用上述两条命令同步数据库 1.认识migrations目录: migrations目录作用:用来存放通过makemigrations命令生成的数据库脚本,里面的生成的脚本不要轻易修改。 要正常的使用数据库同步的功能,app目录下必须要…

SQLSERVER数据库同步

SQLSERVER数据库数据同步 1、实现方法2、实现发布3、实现订阅 1、实现方法 使用的是SQL自带的发布与订阅功能,SQL Server版本是2008,一台发布,一台订阅,实现数据库的数据同步。 2、实现发布 打开复制,右击本地发布&…

MySQL第九讲 MySQL集群主从搭建指定数据库同步数据

1、全库同步与部分同步 之前提到,我们目前配置的主从同步是针对全库配置的,而实际环境中,一般并 不需要针对全库做备份,而只需要对一些特别重要的库或者表来进行同步。那如何 针对库和表做同步配置呢? 首先在Master端…

Python数据库同步神器(一键同步)

1.背景: 最近公司项目的用户中心模块经常出现线上问题,测试人员需要将线上真实数据导入到测试环境中去复现Bug。公司有3套测试环境,来回切换并校验数据比较麻烦,于是就有了如下的数据库同步神器。 2.界面: 3.源代码&…

分布式数据库同步

分布式部署时数据库之间的数据同步 数据的同步原理就是同步binlog日志到需要复制的其他的数据库上,其他数据库根据binlog日志里面的ddl和dml语句,执行该语句同步到当前数据库,就能保证多个数据库的数据的一致性。 Binlog日志主要是的数据库执行的ddl、…

异构数据库同步方案

目录 1 概述 2 原理 3 参数 1 概述 为减轻生产库负载,避免在其上直接运行分析应用拖垮系统,需要将生产系统产生的业务数据实时同步到大数据分析平台。 凭借异构(主从库不同类型、主从对象不同属主模式)数据处理能力&#xff…

IDEA 之because it is included into a circular dependency循环依赖的解决办法

问题场景: 今天启动项目的时候突然遇到这个错误导致无法启动 Information:2019/8/26 11:34 - Compilation completed with 1 error and 0 warnings in 6 s 52 ms Error:Cannot build artifact aws_multi_branch_1.0.0:war exploded because it is included into a…