专栏首页机器学习与推荐算法关于推荐系统中协同过滤模型的思考

关于推荐系统中协同过滤模型的思考

摘要

来聊聊推荐中的协同过滤思想。

正文

推荐系统,主要研究的是两类对象:用户(user)和物品(item),即给对的用户推荐对的物品。既然对象有两个,那么他们之间的关系通过排列组合就知道是3种,即user-user,item-item和user-item。如果大家对推荐系统不是很了解,可以移步拙作推荐系统从入门到接着入门

协同过滤,想必大家都听说过吧,这是推荐系统中最为经典的模型之一。她是利用集体智慧的思想来完成个性化的推荐任务。其实,协同过滤就是研究这两个对象(user和item)以及这三种相似性(user-user、item-item和user-item)的算法。

协同过滤可进一步的分为基于近邻的模型和隐因子模型。

① 其中基于近邻的模型主要采用KNN的思想来找完成推荐。她又进一步分为了User based CF和Item based CF。

  • UserCF主要考量的是user-user之间的相似性,首先根据用户对物品的历史行为来找到相似的用户,然后通过跟他相似的用户的偏好来建模目标用户的偏好。
  • ItemCF主要考虑的是item-item之间的相似性,跟User based CF类似,只不过她是根据用户对物品的历史行为来找到相似的物品,然后通过用户所喜欢的物品来推荐相似的物品。

② 其中隐因子模型主要是将用户-物品矩阵编码到同一隐变量空间,其中当属矩阵分解(Matrix Factorization)模型了。

  • MF主要建模的是user-item之间的相似性,即通过将用户-物品矩阵降维到同一低维子空间(即用户和物品处于同一纬度),然后利用内积来衡量用户和物品的相似性,内积越大,表明两者更有可能产出关系。

由此可见,协同过滤主要衡量的是两个对象之间的相似性。这样的思想也符合现实意义:我们在买东西的时候大多数时候都会参考朋友的建议(UserCF);或者看看某个物品跟我们之前喜欢的物品是不是具有某些相同的特质(ItemCF);或者衡量一下这个物品和我们本身的标签是否匹配,比如我们喜欢摇滚类型的音乐,当然摇滚类型的音乐和我们比较搭了(MF)。

事实上,大部分的机器学习算法也都是在探讨相似性的问题。

对于分类任务来说,举个KNN的例子。我们对于一个未标记样本进行分类,首先基于特征来找到跟他相似性较高的样本,然后看看他们大部分属于哪个类我们就把她标记为哪一类。

对于聚类任务来说,比如KMeans算法,她也是基于相似性来形成簇。距离近的样本很容易形成一个阵营,距离远的样本分属不同的阵营。中国有句古话叫物以类聚,人以群分说的也是这个道理。

本文分享自微信公众号 - 机器学习与推荐算法(ML_RSer),作者:张小磊

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 推荐系统结合知识图谱简单总结

    链接 | https://zhuanlan.zhihu.com/p/59762355

    张小磊
  • 论文笔记 : Dual Neural Personalized Ranking

    本文是自己在推荐系统研究中研读的论文翻译及解读,本篇笔记非标准译文,其中包含了笔者自己对问题的部分理解,仅供参考,欢迎学习交流。

    张小磊
  • 推荐系统实用分析技巧

    链接 | https://zhuanlan.zhihu.com/p/188228577

    张小磊
  • 阅读:美团容器平台架构及容器技术实践

    原文地址:https://note.youdao.com/share/?id=08d7c57b04dda159c53155b00cbbe5cb&type=not...

    heidsoft
  • JS打开摄像头并截图上传

    要注意的是,在chrome以外的浏览器中,使用摄像头或多或少会出现一些问题,可能也是老问题了,所以以下代码主要基于chrome使用

    书童小二
  • Docker学习笔记之为容器配置网络

    在互联网时代,网络已经成为绝大多数应用进行数据交换的主要通道,Docker 作为集群部署的利器,在网络支持上也下了许多功夫。功能丰富和强大,并不代表使用复杂,在...

    Jetpropelledsnake21
  • Docker容器的"单进程模型"

    刚开始学Docker的时候因为不知道Docker跟以前在VirtualBox里安的虚拟机还有Vargrant有啥区别,我都是习惯性的把开发环境里用的东西往单个容...

    KevinYan
  • 学界 | 在深度学习时代用 HowNet 搞事情

    2017 年 12 月底,清华大学张钹院士做了一场题为《AI 科学突破的前夜,教授们应当看到什么?》的精彩特邀报告。他认为,处理知识是人类所擅长的,而处理数据是...

    AI科技评论
  • 专栏 | 清华大学刘知远:在深度学习时代用HowNet搞事情

    机器之心
  • 容器和微服务的五个关键真相

    企业可以将容器与微服务结合使用,使其能够创建更加一致且轻量级的开发框架,该框架是云计算的最佳选择。而容器和微服务是可以在云计算中实现更高效率的两项前沿技术。虽然...

    静一

扫码关注云+社区

领取腾讯云代金券