推荐系统(一)

2023-11-10

协同过滤(Collaborative Filtering):A基于邻域的算法+B隐语义模型+C基于图的随机游走算法

A 基于邻域的算法

一、基于用户的协同过滤算法(UserCF):给用户推荐与其兴趣相似的其他用户喜欢的物品

1、首先找到与目标用户兴趣相似的其他用户集合:Jaccard相似度(两用户的交集/并集)+余弦相似度。

余弦相似度:

:购买同样热门物品时不足以说明两个用户相似,所以需要降权,下式是在余弦相似度公式中的惩罚:

2、从集合中找到用户喜欢的同时目标用户那里没有的物品做推荐:有个算法计算用户u对物品i的兴趣程度

最后得到TopN个物品推荐给目标用户。

二、基于物品的协同过滤算法(ItemCF)

1、计算物品之间的相似度

此相似度不是利用物品本身信息计算,而是主要通过分析用户的行为记录来计算。

表示买了i的用户同时也买了j,如果两者的用户群重合比例越大,那么认为ij就更相似。

同时又要惩罚热门物品,于是有:

但是对于热门用户,一个活跃用户可能会喜欢很多种类的物品,他对物品相似度的贡献应该小于不活跃的用户,因为不活跃的用户往往喜欢比较专一,在衡量物品相似度上更有价值,这叫IUF:

2、根据物品的相似度和用户的历史行为给用户生成推荐列表

计算用户u对物品i的兴趣:

三、UserCF和ItemCF比较

1、从推荐结果上来讲:

UserCF帮你找了一些用户来代表你,他们的兴趣是不可能统一的发生大幅改变的,所以你得到的推荐结果都是这一类的东西;而ItemCF,一旦你兴趣列表变了,那接着就认为你兴趣变了,喜欢你这个新兴趣的人喜欢的物品就会被推荐给你。

2、技术角度:

物品和用户表,哪个稳定就用哪个建模。物品迅速增加那就建立用户相似度表,用户迅速增加就建立物品相似度表。

B 隐语义模型

参考链接:https://www.jianshu.com/p/c8711ff27eb0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

推荐系统(一) 的相关文章

  • C#中@的用法总结(转)

    本文实例汇总了C 中 的用法 对C 程序设计来说有不错的借鉴价值 具体如下 一 字符串中的用法 1 学过C 的人都知道C 中字符串常量可以以 开头声名 这样的优点是转义序列 不 被处理 按 原样 输出 即我们不需要对转义字符加上 反斜扛 就
  • libxlsxwriter初体验

    C 如何写Excel 大家时间都这么宝贵 没有起因的问题是不值得被优先研究的 这篇博客的起因就是希望找到一个比较合适于C 的开源库 用以在C 中生成Excel文档 其实C 可用的开源Excel库 很多博主都已经撰文提及 例如 c 操作exc
  • 第六篇 TCP协议

    1 专业名词缩写 应用层头 ah Application Header 表示层头 ph Presentation Header 会话层头 sh Session Header 传输层头 th Transport Header 网络层头 nh
  • cJson数组的生成与解析

    cJson数组的生成与解析 cJosn官方源码地址 https sourceforge net projects cjson 使用json偶尔会遇到数组 每次都要去查相关函数 去解析或者生成 在此做一次记录 方便以后使用 按照我自己的使用习
  • 基于opencv视觉图像处理的巡线小车设计(stm32+树莓派+usb摄像头)

    功能说明 1 视觉巡线 usb摄像头 opencv 2 遇到红灯停车 红灯出现在小车右前方时 3 固定动作避障 光电对管 4 按键启动 急停 4 按键调整运行速度 资料说明 本小车图像处理部分在树莓派中实现 小车控制部分在stm32中实现
  • android ListView 滚动加载item

    悉Android的朋友们都知道 不管是微博客户端还是新闻客户端 都离不开列表组件 可以说列表组件是Android数据展现方面最重要的组件 我们今天就要讲一讲列表组件ListView加载数据的相关内容 通常来说 一个应用在展现大量数据时 不会
  • ArcGis系列-java发布空间表为地图服务(map)

    1 实现思路 使用java调用cmd命令执行python脚本 python环境使用arcgis pro安装目录下的 ArcGIS Pro bin Python envs arcgispro py3 作为地图服务应该可以支持添加样式文件 发布
  • 分布式定时任务

    本文引用了谷粒商城的课程 定时任务 定时任务是我们系统里面经常要用到的一些功能 如每天的支付订单要与支付宝进行对账操作 每个月定期进行财务汇总 在服务空闲时定时统计当天所有信息数据等 定时任务有个非常流行的框架Quartz和Java原生AP

随机推荐

  • Latex技巧(持续更新)(\newcommand{}{})

    自定义一个新命令 newcommand tcr textcolor red 为了方便设置文本颜色为红色而定义的简化命令 code documentclass article usepackage xcolor newcommand tcr
  • Protobuf之proto文件编写规则

    一 简单介绍 protobuf文件 就是定义你要的消息 类似java中的类 和消息中的各个字段及其数据类型 类似java类中的成员变量和他的数据类型 二 Protobuf消息定义 1 消息由至少一个字段组合而成 类似于C语言中的结构 每个字
  • 【Docker】docker 执行 apt-get E: Could not open lock file /var/lib/dpkg/lock - open

    1 背景 mac下安装了docker 然后用docker 安装了grafana软件 然后进入grafana base lcc lcc prometheus docker exec it 4b5f517f4340 bash grafana 4
  • Python运维开发(CMDB管理系统)——常用函数

    内置函数 len 返回容器中item的数量 sum 计算可迭代对象的和 字符串不可以和数字相加 str 把其他类型转换成字符串 int 把其他类型转换成int max min 求列表中的最大值或者最小值 range 返回一个可迭代对象 ra
  • Python 删除列表中的'\n'和空格

    要爬取的span标签下的价格730 用的是xpath获取内容 但爬取的结果为 把 i 标签以及后面的div也爬取下来了 导致这部分为 n 和空格 很显然 这不是我要的结果 想过先用xpath 再用正则表达式匹配数字 但一直提示类型不一致 因
  • 苏小红版 c语言程序设计(第三版)系列实验题:学生成绩管理系统V6.0

    github https github com Jackie0Feng SAMS 系统需求描述 某班有最多不超过30人 具体人数由键盘输入 参加期末考试 考试科目最多不超过6门 具体门数由键盘输入 学生成绩管理系统是一个非常实用的程序 如果
  • 深入探索C++中模板参数的自动推导

    深入探索C 中模板参数的自动推导 利用模板参数推导时需要注意以下几点 编译器只根据函数调用时给出的实参列表来推导模板参数值 与函数参数类型无关的模板参数其值无法推导 与函数返回值相关的模板参数其值也无法推导 所有可推导模板参数必须是连续位于
  • 函数的调用过程及其运行时堆栈解析

    为了较为深入的了解一下函数的调用过程 所以我在学习的过程中用一段简单的代码对其进行了研究 代码和调用堆栈如下 下图为上述函数的反汇编及调用过程
  • pyecharts 安装报错 ModuleNotFoundError: No module named 'pyecharts_snapshot'

    安装方法 pip install pyecharts 正常导入 import pyecharts 报错信息 ERROR lml utils failed to import pyecharts snapshot Traceback most
  • PostgreSQL常用命令使用

    1 连接数据库 psql U postgres psql U username d databse name h host W U 指定用户 d 指定数据库 h 要链接的主机 W 提示输入密码 2 切换数据库 c dbname 3 列举数据
  • 《单片机原理及应用》——概述

    系列文章目录 文章目录 系列文章目录 前言 一 计算机的位数是什么 二 51单片机 前言 学习视频链接是 https www bilibili com video BV1sE411L7j5 spm id from 333 337 searc
  • C# 引用类型作为函数参数时

    C 引用类型作为函数参数时 在探讨本文的主题之前 先来介绍下C 中的值类型和引用类型 众所周知C 中有值类型和引用类型 值类型有基础数据类型 诸如int double bool等 结构体 枚举 引用类型有接口 类 委托 值类型全部在操作系统
  • sqli-labs--Less7

    目录 一 Less 7 1 按照之前文中的思路 输入 id 1 发现提示 2 提示我们使用outfile函数 接下来需要做的就是研究outfile 的用法 以及寻找注入点 3 执行写入的文件 发现执行成功 一 Less 7 1 按照之前文中
  • 3. Python3 运算符

    Hi 大家好 我是茶桁 前两节我们学习了基本的Python特性和语法 并且认识了一些基本的Python脚本 今天 我们来学习一下Python的运算符 而我们选择的版本为Python3 什么是运算符 为了能让我们的学习顺利进行下去 首先我们需
  • 【编程之路】常见的排序算法(一)

    常见的排序算法 一 本文将介绍五种基础的排序算法 分别是 冒泡 选择 插入 快速 归并 1 冒泡排序 冒泡排序应该是入门级的排序算法了 class solution def sort arr self arr n len arr for i
  • 聊聊最近几年的路径追踪技术的进展(一)

    路径追踪技术 Path tracing PT 已经是当下工业中离线渲染使用的主流技术 不管是商业渲染器如皮克斯的RenderMan Solid Angle的Arnold等 还是迪士尼的in house渲染器Hyperion以及Weta Di
  • 与finally单独使用的是try

    try一般和catch搭配使用 捕获时可以没有catch块 但是此时必须有finally块 换言之try可以和catch finally两个中的一个搭配使用 但是catch和finally不能单独搭配使用
  • 如何正视自己的劣势?面试!

    面试真的是最直接面对自己劣势的方式 平时身边人看不清或者不愿意指出你的劣势 自己如果又不肯正视 那就会逐渐的积累成大问题 印象最深刻的是某小公司的技术终面 做的跟我完全同领域 面试官与我对切模型然后我败下阵来 临走的时候他说 我们公司还是想
  • 域名备案后修改服务器,域名备案后修改服务器

    域名备案后修改服务器 内容精选 换一换 PHPWind 简称 PW 是一个基于PHP和MySQL的开源社区程序 是国内较受欢迎的论坛之一 轻架构 高效易开发 使用户可快速搭建并轻松管理 本文档指导用户使用华为云市场镜像 PHPWind 论坛
  • 推荐系统(一)

    协同过滤 Collaborative Filtering A基于邻域的算法 B隐语义模型 C基于图的随机游走算法 A 基于邻域的算法 一 基于用户的协同过滤算法 UserCF 给用户推荐与其兴趣相似的其他用户喜欢的物品 1 首先找到与目标用