最基础的协同过滤介绍

news/2024/4/29 14:47:31/文章来源:https://blog.csdn.net/weixin_39471848/article/details/128084512

文章目录

    • 1.到底什么是协同过滤
    • 2.协同过滤的一般步骤
    • 3.基于用户的CF (User-CF)
      • 3.1 基本介绍
      • 3.2 用户相似度
        • 3.2.1 用户相似度基本介绍
        • 3.2.2 用户相似度改进:ICU
      • 3.3 User-CF的缺点
    • 4.基于项目的CF (Item-CF)
      • 4.1 基本介绍
      • 4.2 用户相似度
        • 4.2.1 用户相似度基本介绍
        • 4.2.2 用户相似度改进
    • 5.协同过滤:基于邻域的评分预测

该系列历史文章:

  • 1.推荐系统最通俗介绍
  • 2.推荐系统常见算法分类


资料整理,来源于北大刘宏志教授讲座内容。

1.到底什么是协同过滤

  • 协同过滤(Collaborative Filtering, CR):利用集体智慧,借鉴相关人群的观点进行推荐。
    在这里插入图片描述

  • 基本假设:

    • 过去兴趣相似的用户在未来的兴趣也会相似(由古及今)
    • 相似的用户会产生相似的(历史)行为数据(由表及里)
  • 协同过滤优缺点

    • 优点:
      • 发现新的兴趣点;不需要领域知识;个性化、自动化程度高
    • 缺点:
      • 协同失效,即基本假设失效

2.协同过滤的一般步骤

  • 收集数据:收集能反映用户偏好的数据
  • 寻找邻域:相似的用户(或项目)
  • 计算推荐结果:根据邻域信息计算推荐结果

在这里插入图片描述

  • 举例:

image-20221126105720276

  • 收集数据说明

image-20221126105846959

显式反馈:用户主动地向系统表达其偏好,一般需要用户在消费完项目后进行额外反馈;

隐式反馈:隐含用户对项目偏好的行为数据,是用户在探索或消费项目过程中正常操作。

3.基于用户的CF (User-CF)

3.1 基本介绍

基本思想:

  • 基于用户对项目的历史偏好找到相邻(相似)的用户

  • 将邻居(相似)用户喜欢的项目推荐给当前用户

image-20221126110347291
  • 假设:
    • 与我兴趣相似的用户喜欢的项目,我也会喜欢
  • 关键:
    • 寻找相似用户
    • 用户相似度度量

基于 User-CF 的推荐系统整体流程:

  • 离线预处理:

    • 计算用户之间的相似度

    • 并据此确定每个用户的邻域(K近邻)

  • 在线推荐:针对当前活跃(目标)用户,计算推荐列表

    • 确定候选项目集

    • 预测兴趣度并生成推荐列表

3.2 用户相似度

3.2.1 用户相似度基本介绍

用户相似度计算方法:

image-20221126111015732

用户相似度的问题:

  • 下面哪一组用户更相似?

    • 用户A和B都买过《新华字典》

    • 用户C和D都买过《 Recommender Systems Handbook》

  • 【思考】热门项目对我们推荐的影响,如何解决?

3.2.2 用户相似度改进:ICU

逆用户频率(Inverse User Frequency)

  • 基本思想:惩罚热门项目

  • 两个用户对冷门项目有过同样行为更能说明他们兴趣相似

image-20221126111911744

3.3 User-CF的缺点

  • 难以形成有意义的邻域集合

    • 很多用户两两之间只有很少的共同反馈

    • 而仅有的共同反馈的项目,往往是热门项目(缺乏区分度)

  • 随着用户行为数据的增加,用户间相似度可能变化很快

    • 离线(offline)算法难以瞬间更新推荐结果

4.基于项目的CF (Item-CF)

4.1 基本介绍

基本思想:

  • 基于用户对项目的反馈(偏好)寻找相似(相关)的项目
  • 根据用户的历史反馈(偏好)行为,给他推荐相似的项目
image-20221126112556163
  • 假设:

    • 我过去喜欢某类项目,将来还会喜欢类似(相关)项目
  • 关键:

    • 寻找相似(相关)项目
    • 项目相似(相关)度度量

基于 Item-CF 的推荐系统整体流程:

和前面基于用户的非常类似,在此不做展开

  • 离线预处理、在线推荐

4.2 用户相似度

4.2.1 用户相似度基本介绍

用户相似度计算方法:

image-20221126113015485

4.2.2 用户相似度改进

image-20221126113222026

5.协同过滤:基于邻域的评分预测

基于领域的协同过滤算法的关键在于相似度度量的构造。主要有:

  • 余弦相似度

  • 皮尔逊相似度

  • 杰卡德相似度

除此之外,还有通过距离度量来构造相似度:

  • 欧式距离
  • 曼哈顿距离
  • 闵可夫斯基距离

这部分内容都比较常规,或者前面讲过,在此不再展开。


本文主要介绍了协同过滤基本内容,协同过滤,即利用集体智慧,借鉴相关人群的观点进行推荐。其后又介绍了基于用户、项目的协同过滤。

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

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

相关文章

Spark系列之Spark应用程序运行机制

title: Spark系列 第六章 Spark应用程序运行机制 6.1 Spark的基本运行流程 Spark任务的核心执行流程主要分为四大步骤: Driver工作:Build DAG DAGScheduler工作:Split DAG to Stage TaskScheduler工作:Change Stage to TaskSet…

右键实现打开对应的软件

右键实现打开对应的软件前言:下面我以右键打开Pycharm为例子!!!一、打开注册表1.1 WinR,输入regedit,回车二、实现右键打开特定文件的效果2.1找到路径:计算机\HKEY_CLASSES_ROOT\*\shell2.2 创建文件夹2.3 …

Spark系列之Spark启动与基础使用

title: Spark系列 第三章 Spark启动与基础使用 3.1 Spark Shell 3.1.1 Spark Shell启动 安装目录的bin目录下面,启动命令: spark-shell$SPARK_HOME/bin/spark-shell \ --master spark://hadoop10:7077 \ --executor-memory 512M \ --total-executor-…

【Python】一、Python程序运行方式

文章目录实验目的一、熟悉Python的安装二、熟悉PyCharm安装三、启动IDLE,进入Python Shell,熟悉环境,运行教材案例:输出“hello world!”四、打开“命令提示符”窗口,使用pip安装管理pygame、numpy等第三方…

神经网络和深度学习-加载数据集DataLoader

加载数据集DataLoader Dataloader的概念 dataloader的主要目标是拿出Mini-Batch这一组数据来进行训练 在处理多维特征输入这一文章中,使用diabetes这一数据集,在训练时我们使用的是所有的输入x,在梯度计算采用的是随机梯度下降&#xff08…

用 Java 实现爬虫 (爬取本地html中的人物信息并可视化人物关系)

目录 爬虫简介 常用的工具框架 selenium Jsoup Jsoup介绍 Jsoup的主要功能如下: HTML 相关知识 通过Jsoup元素获取 案例 爬取本地html中的角色信息 HtmlParseUtil 可以利用relation-graph 将人物关系可视化 使用爬虫要注意 查看网站的爬虫协议 爬虫简介…

黑群晖从入门到入土,自编译适合自己硬件的黑群晖7.1.x引导(黑群晖DSM7.X引导用arpl编译教程)

写在前面的话 没啥好说的,只需要感谢在GitHub上开源代码的巴西老哥就好,好了废话不多说直接开始。 黑群晖DSM7.X引导用arpl编译教程写在前面的话一、需要的软硬件清单二、制作引导盘1、下载arpl镜像2.1.1、制作PE启动盘,这是使用msata硬盘或…

胎儿产科生长发育曲线 ,体重估计,公式和绘图、参考文献、python代码

1. 参考资料 Leung TN, Pang MW, Daljit SS, Leung TY, Poon CF, Wong SM, Lau TK. Fetal biometry in ethnic Chinese: biparietal diameter, head circumference, abdominal circumference and femur length. Ultrasound Obstet Gynecol. 2008 Mar;31(3):321-7. doi: 10.1002…

覆盖libc.so.6的惨痛教训

覆盖libc.so.6的惨痛教训背景问题原因解决1、当前session未断开2、OS崩溃重启,所有ssh session断开惨痛教训1、对于上产环境的内核依赖库文件不能随意覆盖、删除。2、 scp 文件覆盖问题总结参考背景 发生时间: 2022年11月28日08:55:20 偷了个懒,在安装t…

发现智能合约中的 bug 的 7 个方法

寻找智能合约bug可能是一项高回报的工作,而且它也保护了生态系统免受黑客攻击。我最近有幸采访了一位开发人员,他发现了一个价值 70 亿美元的错误,并因报告该错误而获得了 220 万美元的报酬。 在这篇文章中,我将详细介绍该开发人…

SpringCloud-alibaba-Nacos 从理论到落地使用

Nacos: Dynamic Naming and Configuration Service 就是: 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。、 下面是生态图: Nacos EurekaConfig Bus 即 Nacos就是注册中心 配置中心的组合 他能干什么呢? 1、替代Eu…

Azure CDN

Azure CDN Azure CDN 是服务器的分发网络,可以将网页内容更高效地分发给终端用户。 CDN在POP点的边缘服务器缓存内容,这样更临近终端用户,延迟低。 Azure CDN 给开发者提供全球解决方案,能够将内容放在全球各个节点,提…

Android——Theme和Style-由浅入深,全面讲解

1、官方详细解读 样式和主题背景 | Android 开发者 | Android Developers 2、应用场景 类似web设计中css样式。将应用设计的细节与界面的结构和行为分开。 样式style :应用于 单个 View 的外观。样式可以指定字体颜色、字号、背景颜色等属性 主题theme&…

[附源码]计算机毕业设计springboot动物保护协会网站

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

使用EL表达式时,PropertyNotFoundException异常的解决过程

一. 业务场景 最近,杨哥的一个班级正在做基于JSPJSTL/EL Servlet JavaBean JDBC MySQL技术方案的阶段项目。其中有一个需求是根据多条件动态搜索商品信息,最终分页显示出商品列表。这个功能可以在dao层采用多分支条件组合,显示页面使用JST…

[Linux](15)线程基础,线程控制,线程的互斥与同步

文章目录前言Linux 线程概念线程的优点线程的缺点线程异常线程用途使用pthread_createpthread_join线程退出线程id分离线程线程互斥问题:临界资源访问问题问题解决:互斥锁的使用RAII 风格的加锁方式可重入 & 线程安全死锁的概念线程同步条件变量生产…

C语言——指针(入门详解)

文章目录1.什么是指针?1.1.理解指针的两个要点:1.2.指针变量:1.3.内存是如何编址?2.指针和指针类型2.1指针的创建与初始化2.2.指针类型3.野指针3.1.什么视野指针?3.2.野指针成因3.3.规避野指针4.指针运算4.1.指针-整数…

【MySQL】数据库服务器硬件优化与实战详解(调优篇)(实战篇)(MySQL专栏启动)

📫作者简介:小明java问道之路,专注于研究 Java/ Liunx内核/ C及汇编/计算机底层原理/源码,就职于大型金融公司后端高级工程师,擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 &#x1…

【一文秒懂——SLF4j日志】

目录 1. SLF4j日志 2. 日志输出 1. SLF4j日志 在添加了spring-boot-starter的项目中,已经包含了SLF4j日志的相关依赖项。 在添加了lombok的项目中,可以在类上添加Slf4j注解,则lombok框架会在编译期在类中声明名为log的变量,通…

2022Flink大数据比赛项目-焦点科技大数据编程大赛

文章目录0.数据获取1.需求概要2.数据标准2.1.输入数据格式2.2.输出数据格式2.3.数据主键及关系3.表详细1.order_info2.bill_info3.bill_item4.ord_pay5.ord_pay_log6.pay_method7.pay_bank_card4.开发工具、语言版本、工具版本5.赛题解答数据分流任务1任务2任务3小结附录0.数据…