slope one本质上就是一个线性模型 [latex]f(x)=x+b[/latex],核心思想就是利用其他用户对其他物品的评分和目标物品的评分间的差值作为依据,来推测出目标用户对目标物品的评分。

两个物品i和j之间的平均评分偏差可以表示为:

devj,i=∑(uj,ui∈Sj,i(R)uj−ui∣Sj,i(R)∣dev_{j,i}=\sum_{(u_{j},u_{i}\in S_{j,i}(R)}\frac{u_{j}-u_{i}}{|S_{j,i}(R)|}devj,i​=(uj​,ui​∈Sj,i​(R)∑​∣Sj,i​(R)∣uj​−ui​​

其中[latex]S_{j,i}®[/latex]表示同时包含item i , j 的评分集合。 [latex]u_{i}[/latex]则表示用户对item i 的评分值。因此对目标物品j的评分可以表示为[latex]dev_{j,i} + u_{i}[/latex]。每一对i,j都可以这么计算,那么一个简单的把所有i,j对组合起来的方式可以表述如下:

pred(u,j)=∑i∈Relevant(u,j)(devj,i+ui)∣Relevant(u,j)∣pred(u,j)=\frac{\sum_{i\in Relevant(u,j)}(dev_{j,i}+u_{i})}{|Relevant(u,j)|}pred(u,j)=∣Relevant(u,j)∣∑i∈Relevant(u,j)​(devj,i​+ui​)​

其中Relevant(u,j)指的目标用户对除了目标物品以外的其他评过分的物品的集合,并且集合中的物品同时满足被其他用户评过分。这种方法的一个问题是没有考虑到共同评分的物品数。理论上讲共同评分数越多,预测效果应该更好,故应当考虑借助共同评分物品数对原始结果加权处理。即:

pred(u,j)=∑i∈Relevant(u,k)(devj,i+ui)∗∣Sj,i(R)∣∑i∈Relevant(u,j)∗∣Sj,i(R)∣pred(u,j)=\frac{\sum_{i\in Relevant(u,k)}(dev_{j,i}+u_{i})*|S_{j,i}(R)|}{\sum_{i\in Relevant(u,j)}*|S_{j,i}(R)|}pred(u,j)=∑i∈Relevant(u,j)​∗∣Sj,i​(R)∣∑i∈Relevant(u,k)​(devj,i​+ui​)∗∣Sj,i​(R)∣​

slope one predictors相关推荐

  1. [论文笔记]slope one predictors for online rating-based collaborative filtering

    作者:Daniel Lemire, Anna Maclachlan. 论文概要: slope-one是一种item-based的协同过滤算法,核心思想是线性回归f(x) = x+b.根据用户对item ...

  2. Slope one—个性化推荐中最简洁的协同过滤算法

    Slope One 是一系列应用于 协同过滤的算法的统称.由 Daniel Lemire和Anna Maclachlan于2005年发表的论文中提出. [1]有争议的是,该算法堪称基于项目评价的non ...

  3. 系列 | 数仓实践第三篇NO.3『拉链表』

    点击上方蓝色字体,置顶/星标哦 目前10000+人已关注加入我们 拉链表是一种数据模型,主要是针对数据仓库设计中表存储数据的方式而定义的:顾名思义,所谓拉链表,就是记录历史,记录一个事务从开始一直到当 ...

  4. 线程切换哪家强?RxJava与Flow的操作符对比

    作者:fundroid 链接:https://juejin.cn/post/6943037393893064734#heading-13 Flow作为Coroutine版的RxJava,同RxJava ...

  5. 探索推荐引擎内部的秘密系列

    最近要用到协同过滤的算法来解决工作中的问题,先学习,以后再把自己的收获总结下来. 转自:http://www.ibm.com/developerworks/cn/web/1103_zhaoct_rec ...

  6. 【转】推荐系统原理、工程、大厂(Youtube、BAT、TMB)架构干货分享

    本文汇集了关于推荐系统原理.工程.各大长推荐架构.经验相关的纯干货.原理篇整理了内容推荐.协同推荐.举证分解.模型融合.Bandit和深度学习相关的经典方法.工程篇整理了推荐系统常见架构.关键模块和效 ...

  7. 文本上的算法读书笔记六--搜索引擎

    6 搜索引擎是什么玩意儿 Google这家搜索引擎公司的巨大成功,才把文本处理技术推向了一个新的高度. 6.1 搜索引擎原理 假设Q为用户要查询的关键词:为所有网页集合中第i个网页:表示给定一个Q,第 ...

  8. 【推荐系统】方法论 | 数据驱动 | 深度学习RS

    [前沿RS的三大问题]可扩展性.稀疏性.冷启动 文章目录 一.引言 二.推荐算法工程师 2.1 推荐团队 2.2 中小厂中避免重复造轮子 2.3 目标思维和不确定思维 三.推荐系统的轮子 3.1 内容 ...

  9. 探索推荐引擎内部的秘密:深入推荐引擎相关算法 - 协同过滤

    上一篇转载的博客<探索推荐引擎内部的秘密 - 推荐引擎初探>,详细讲述了推荐引擎的原理.算法.应用,并且给出了一些优化的trick,真心不错. 这里把第二篇<探索推荐引擎内部的秘密 ...

最新文章

  1. Mysql进阶(2)——组复制
  2. python爬虫图片-如何用Python来制作简单的爬虫,爬取到你想要的图片
  3. 30段极简Python代码:这些小技巧你都Get了么?
  4. 常用损失函数(L1、L2、SSIM和MS-SSIM)对比简介
  5. iPhone是否越狱的检测方法
  6. 数据竞赛入门-金融风控(贷款违约预测)四、建模与调参
  7. sublime text3 3176激活
  8. 强迫症福利--收起.NET程序的dll来
  9. Centos更新配置文件命令
  10. 计算机设备管理器驱动,设备管理器安装驱动程序的详细教程
  11. “生成能够被扫描枪正常扫描出中文的二维码”
  12. UBUNTU环境下编译的openwrt
  13. windows软件窗口或者对话框太大超出屏幕解决办法
  14. “安卓僵尸”变种木马
  15. 基于8266WIFI模块实现智能手机与51单片机的通信入门
  16. html设置打印尺寸,打印尺寸及常用格式尺寸设置 css
  17. 复盘2020年全球科技行业:5G建设加速、半导体行业洗牌、云计算爆发 | TMT观察...
  18. TP-link wdr7800百M拆解
  19. Python实现Excel转JSON
  20. 计算机服务器的型号怎么看,服务器与电脑主机的区别(一分钟看懂)

热门文章

  1. Codeup 1814.剩下的树
  2. 使用UIDataDetectorTypes自动检测电话、网址和邮箱
  3. 不动点迭代法求函数根(非线性方程求解)
  4. 条码打印机跳纸是怎么回事
  5. 官方解释:Windows Vista和OpenGL
  6. Desktop Computer操作系统之GUI发展
  7. python 判断输入的字符,是字母,数字,还是其他字符
  8. kali 2.0修改gnome登陆界面背景图片
  9. 全景图的种类及opencv实现
  10. 【Godot】SkillNode 技能节点