每次我想看电影的时候,都会去问我的朋友,小健。一般他推荐的电影,我都比较喜欢。显然不是所有人都有小健这样的能力。因为我碰巧和小健有类似的品味。

这个生活中的经验,实际上有着广泛的用途。

当系统需要为某个人做出推荐时,一种机器学习的算法是这样工作的:就是在一大群人中找出一部分与他品味类似的人,把这些人的喜欢的东西排序,然后推荐给他。

自然引出两个问题:

  1. 谁是与他相近品味的人;
  2. 怎么对这些人喜欢的东西排序;

对于上述两个问题有多种不同的答案,不同的答案意味着不同的算法。

---

问题1的答案有两种:

  1. 欧拉距离;给定n个物体,两人分别打分{S1}{S2},那么欧拉距离就是S1和S2的各个元素只差的平方和;
  2. pearson相关系数。给定n个物理,两个人对他们的评分一致的程度可以通过这个系数进行衡量。下图每个名词所代表的点表示两个人给定分数(x,y),可以看到右图中点的位置更靠近直线,这说明右图中两人的评分的趋势更加接近,虽然分数的绝对值不同。:

 

可以想象,如果两个人,一个比较刻薄,一个比较慷慨,使用#2比#1更容易发现被评价物体的特征。

-------

问题2的回答是什么呢?

一种常见的办法是对每个推荐物体进行推荐值的加权求和:比如有个人相似度为90%,这个人推荐这个物体的值是80分,那么他贡献了80*0.9=72。

对上图来说,经过排序就能得到最被推荐的物体了。

显然上述的逻辑在于,和你相似的人推荐的东西更符合你的心意。

collaborative filtering协同过滤的更多相关文章

  1. 从item-base到svd再到rbm,多种Collaborative Filtering(协同过滤算法)从原理到实现

    http://blog.csdn.net/dark_scope/article/details/17228643 〇.说明 本文的所有代码均可在 DML 找到,欢迎点星星. 一.引入 推荐系统(主要是 ...

  2. Collaborative Filtering(协同过滤)算法详解

    基本思想 基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢(如商品购买,收藏,内容评论或分享),并对这些喜好进行度量和打分.根据不同用户对相同商品或内容的态度和偏好程度计算用户 ...

  3. Andrew Ng机器学习课程笔记--week9(下)(推荐系统&协同过滤)

    本周内容较多,故分为上下两篇文章. 本文为下篇. 一.内容概要 1. Anomaly Detection Density Estimation Problem Motivation Gaussian ...

  4. 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms” .

    ligh@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.3 基于物品的协同过滤推荐算法--读"Item-Based ...

  5. 【RS】Sparse Probabilistic Matrix Factorization by Laplace Distribution for Collaborative Filtering - 基于拉普拉斯分布的稀疏概率矩阵分解协同过滤

    [论文标题]Sparse Probabilistic Matrix Factorization by Laplace Distribution for Collaborative Filtering  ...

  6. 【RS】Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model - 当因式分解遇上邻域:多层面协同过滤模型

    [论文标题]Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model   (35th-ICM ...

  7. 亚马逊 协同过滤算法 Collaborative filtering

    这节课时郭强的三维课.他讲的是MAYA和max .自己对这个也不怎么的感兴趣.而且这个课感觉属于数字媒体.自己对游戏,动画,这些东西一点都不兴趣,比如大一的时候刚开学的时候,张瑞的数字媒体的导论课.还 ...

  8. 【RS】List-wise learning to rank with matrix factorization for collaborative filtering - 结合列表启发排序和矩阵分解的协同过滤

    [论文标题]List-wise learning to rank with matrix factorization for collaborative filtering   (RecSys '10 ...

  9. 【RS】AutoRec: Autoencoders Meet Collaborative Filtering - AutoRec:当自编码器遇上协同过滤

    [论文标题]AutoRec: Autoencoders Meet Collaborative Filtering (WWW'15) [论文作者]Suvash Sedhain †∗ , Aditya K ...

随机推荐

  1. Homestead 修改 Homestead.yaml 文件后 vagrant up 报错的问题

    一般情况是 TAB 和空格的问题. 虽然表面看来,缩进是一致的. 但是 TAB 没能替换为空格,从而导致问题. 解决: $ sudo vim /etc/vim/vimrc.local syntax o ...

  2. 那些年,UI设计师还在手工标注和切图时走的弯路

    在我从事UI设计师这几年的工作中逐渐发现,最让人糟心的不是应付各种奇葩的需求,完成设计稿,而是交付.每次交付的设计稿和最后开发出来的产品总是让我心塞无比,很少最终产品和我的设计稿是完全一致的. UI设 ...

  3. linux ubuntu R 无法安装rggobi包的原因及解决方案

    错误信息 Package'libxml-2.0',requiredby'ggobi',notfound     错误原因 ggobi缺乏libxml依赖 解决方案 sudo apt install l ...

  4. Vue router 全局路由守卫

    记录一下全局路由守卫的使用: 方法一:定义一个数组用于检测与管理需要登录的页面,全局路由守卫配合本地存储判断是否跳转 import Vue from 'vue' import Router from ...

  5. android udp 无法收到数据 (模拟器中)

    解决方法:1. 运行模拟器2. 打开window 命令行执行:telnet localhost 55545554是模拟器的端口,执行之后会进入android console3. 在console下执行 ...

  6. Android Studio 老提示adb问题

    Android Studio 老提示adb问题,restart后任然无解,最后发现某手机助手软件占用端口... 解决步骤: C:\Users\xxx>netstat -ano | findstr ...

  7. 关于Rigidbody,Collider和CharacterController三者之间的关系和用法的总结

    Rigidbody:多用在“物体”上,因为“物体”都是“死”的,他们的运动一般都是靠物理系统.所以对于Rigidbody的移动,不要用Translate(),要用各种“力”, 比如:Rigidbody ...

  8. GDI基础(2):绘制文本

    1.TextOut()和DrawText()函数 CDC::TextOut()在窗口的指定位置处输出文本,函数声明: virtual BOOL TextOut(int x, int y, LPCTST ...

  9. c++中typedef、define、const、inline之间的区别

    1.typedef和#define的区别 typedef int* pInt; , b = ; const pInt p1 = &a; //p1是常量指针 pInt const p2 = &a ...

  10. hadoop配置分区

    1.运行MR,得出HDFS路径下数据 2.创建 Hive 表 映射 HDFS下的数据 3.为数据创建分区,在hive下执行 source 分区表: TIPS:结果集的时间,必须在分区范围内: 可以理解 ...