itemKNN发展史----推荐系统的三篇重要的论文解读

本文用到的符号标识

1、Item-based CF

基本过程:

  • 计算相似度矩阵

    • Cosine相似度
    • 皮尔逊相似系数
  • 参数聚合进行推荐

根据用户项目交互矩阵 \(A\) 计算相似度矩阵 \(W\):

这样,用户对整个项目列表的偏好值可以如下计算:
\[{ {\tilde a_i}^T}={ a_i^T} \times W\]
例如,对于 j 号物品,用户的偏好值如此计算:
\[{ {\tilde a_{(u,j)}}}=\sum_{i\in { a_u^T}}{ { a_{(u,i)}}}W_{(i,j)}\]
由于交互矩阵 \(A\) 的稀疏性,矩阵 \(W\) 也应该是稀疏的。

2、SLIM: Sparse Linear Methods for Top-N Recommender Systems

  1. 现有的两种推荐系统

    • 基于邻居的协同过滤(代表,item-based CF
      【特点】:能快速生成推荐,推荐质量不高,没有从数据中学习。
    • 基于模型的方法(代表,矩阵分解 MF 模型)
      【特点】:模型训练慢,推荐质量高。

相比于以上两种方法,SLIM 既高效,推荐质量又高。

  1. SLIM 关键思想

    • 保留 item-KNN 的稀疏矩阵 \(W\) 的特点。
    • 通过从 \(A\) 中自学习矩阵 \(W\) 来提高推荐性能。
  2. 学习过程
    \[L(\cdot) =\frac{1}{2} ||A-AW||_F^2+\frac{\beta}{2} ||W||_F^2+\lambda||W||_1 \]\[ {subject\ \ to\ \ }W\geq0, {diag}(W)=0\]
    其中:

    • \({diag} = 0\) 约束同一项目与自己的相似度不加入计算。
    • \(l1\) 正则化约束使得矩阵$ W $稀疏
    • 弗罗贝尼乌斯范数类似于矩阵的平方,用来防止数据过拟合

可以看到,实际上这个过程是可以并行执行的。
SLIM 的 paper 中使用了坐标下降和软阈值的方法来实现问题的求解。
使用特征选择可以减少 SLIM 的计算量。文章中使用了item-KNN 的方式选择了与待估项目相似度靠前的作为特征选择方式。

3、FISM:Factor item Similarity Models for Top-N Recommender Systems

论文主要完成了以下四个工作:

  • 将基于项目的隐因子的方法扩展到 top-N 问题,这使得它们能够有效地处理稀疏数据集;
  • 使用结构方程建模方法评估基于项目的隐因子方法。
  • 同时使用均方误差和排名误差来评估该模型
  • 观察各种参数的影响,因为与偏置,邻居协议和引起模型的稀疏性有关。
  1. 相关工作
  • SLIM
  • NSVD(rating prediction)
    \[\hat r_{ui}=b_u+b_i+\sum_{j\in \mathbb{R}_u^+} {p}_j q_i^T\]
    扩展了item-kNN,学习item之间的相似度。使用每个项目的隐因子内积作为相似度。
  • SVD++
  1. 动机与模型比较

    • 传统的 item-KNN 包括 SLIM 对交互矩阵 \(A\) 的处理按行或列独立,因此,如果两个 item 都没有评价记录,则这两个处理方法都会将两个 item 的相似度置为 0 ,这是不合理的。
    • MF 模型考虑到了这个问题,但是它的效果不如 SLIM

NSVDSVD++ 比较:

  • FISM 解决 Top-N;SVD 解决 rating prediction
  • FISM 采用基于结构方程建模的回归方法。
  • 评估某个 item 时,不使用用户对于该 item 的评分信息。
    P.S. 这影响了相似度矩阵对角线元素对评估的影响,FISM评估时去掉了对角线元素,而SVD等保留了,这使得隐因子很大的情况下FISM表现得比 SVD 好

itemKNN发展史----推荐系统的三篇重要的论文解读的更多相关文章

  1. CVPR 2020 三篇有趣的论文解读

    作者 | 文永亮 学校 | 哈尔滨工业大学(深圳) 研究方向 | 视频预测.时空序列预测 目录 AdderNet - 其实不需要这么多乘法 Deep Snake for Real-Time Insta ...

  2. 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...

  3. (转) 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    原文地址: http://www.cnblogs.com/lyhabc/p/4682986.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第三篇,这一篇才真正开始搭建Alwa ...

  4. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  5. 第三篇 Entity Framework Plus 之 Query Cache

    离上一篇博客,快一周,工作太忙,只能利用休息日来写一些跟大家分享,Entity Framework Plus 组件系列文章,之前已经写过两篇 第一篇 Entity Framework Plus 之 A ...

  6. 我的屌丝giser成长记-研三篇

    进入研三以来,基本都是自己的自由时间了,从导师的项目抽离出来,慢慢的都交给师弟他们来负责.研三的核心任务就是找工作以及写毕业论文,因为有导师科研基金项目成果作为支撑,所以自己的论文没什么可担心,一切都 ...

  7. javascript面向对象系列第三篇——实现继承的3种形式

    × 目录 [1]原型继承 [2]伪类继承 [3]组合继承 前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.本文是javascript面向对象系列第三篇——实现继承的3种形式 [ ...

  8. 前端工程师技能之photoshop巧用系列第三篇——切图篇

    × 目录 [1]切图信息 [2]切图步骤 [3]实战 前面的话 前端工程师除了使用photoshop进行测量之外,更重要的是要使用该软件进行切图.本文是photoshop巧用系列的第三篇——切图篇 切 ...

  9. 解剖SQLSERVER 第三篇 数据类型的实现(译)

    解剖SQLSERVER 第三篇  数据类型的实现(译) http://improve.dk/implementing-data-types-in-orcamdf/ 实现对SQLSERVER数据类型的解 ...

随机推荐

  1. 响应式web设计(一)

    很多网页都是基于网格设计的,这说明网页是按列来布局的. 原理就是讲网页分成十二列,每列的宽度是8.33%,元素的宽度,用几列来定义,正是因为这一点,才可以做到响应,就是随着窗口宽度的变化,给元素分配不 ...

  2. golang项目:goa和micro

    https://github.com/goadesign/goa http://www.cnblogs.com/zhangqingping/p/5531171.html https://github. ...

  3. 软工作业1—java实现wc.exe

    github项目地址 https://github.com/liyizhu/wc.exe WC 项目要求 基本功能列表: wc.exe -c file.c     //返回文件 file.c 的字符数 ...

  4. 摹客iDoc 新功能“柔性工作流”,让设计随需而动

    摹客iDoc推出了全新“柔性工作流”,让协作设计自由流动,随需而动. 更高效.更自由的协作方式,赶快告诉你的团队吧~ “柔性工作流” VS “普通工作流” 普通工作流往往是将很多东西混杂在一起,并施以 ...

  5. Jquery 数组操作大全【转载】

    转载于:https://www.jb51.net/article/43164.htm 1. $.each(array, [callback]) 遍历[常用] 解释: 不同于例遍 jQuery 对象的 ...

  6. mysql传统主从配置与主从监控

    主从简介 在现代企业中,数据显得尤为重要,而存储数据的数据库选择又五花八门,但无论是何种数据库,均存在着一种隐患. 当数据规模非常大,读写量也很高时,一台数据库已经无法负担全部读写任务,就需要多台数据 ...

  7. asp.net core web 项目附加进程调试

    之前asp.net web项目在部署IIS站点的时候可以直接选择项目目录,不用发布,然后附加进程的时候,找到w3wp.exe开头的进程,再根据用户名找到要附加的进程,就可以附加进程调试了.但asp.n ...

  8. python的语法小结之生成器和迭代器

    生成器: 首先介绍一下列表生成式:a=[x for x in range(10)]               >>>>>>[0, 1, 2, 3, 4, 5, 6 ...

  9. 4yue 22

    1 # 1 . 进程 线程 协程 之间的相同点和不同点 #相同点:都能帮助我们实现并发操作,规避IO时间,提高执行效率 #进程:内存隔离 操作系统级别 可以利用多核(高计算) 计算机中资源分配的最小单 ...

  10. C++题解:Matrix Power Series ——矩阵套矩阵的矩阵加速

    Matrix Power Series r时间限制: 1 Sec 内存限制: 512 MB 题目描述 给定矩阵A,求矩阵S=A^1+A^2+--+A^k,输出矩阵,S矩阵中每个元都要模m. 数据范围: ...