collaborative filtering协同过滤
每次我想看电影的时候,都会去问我的朋友,小健。一般他推荐的电影,我都比较喜欢。显然不是所有人都有小健这样的能力。因为我碰巧和小健有类似的品味。
这个生活中的经验,实际上有着广泛的用途。
当系统需要为某个人做出推荐时,一种机器学习的算法是这样工作的:就是在一大群人中找出一部分与他品味类似的人,把这些人的喜欢的东西排序,然后推荐给他。
自然引出两个问题:
- 谁是与他相近品味的人;
- 怎么对这些人喜欢的东西排序;
对于上述两个问题有多种不同的答案,不同的答案意味着不同的算法。
---
问题1的答案有两种:
- 欧拉距离;给定n个物体,两人分别打分{S1}{S2},那么欧拉距离就是S1和S2的各个元素只差的平方和;
- pearson相关系数。给定n个物理,两个人对他们的评分一致的程度可以通过这个系数进行衡量。下图每个名词所代表的点表示两个人给定分数(x,y),可以看到右图中点的位置更靠近直线,这说明右图中两人的评分的趋势更加接近,虽然分数的绝对值不同。:

可以想象,如果两个人,一个比较刻薄,一个比较慷慨,使用#2比#1更容易发现被评价物体的特征。
-------
问题2的回答是什么呢?
一种常见的办法是对每个推荐物体进行推荐值的加权求和:比如有个人相似度为90%,这个人推荐这个物体的值是80分,那么他贡献了80*0.9=72。

对上图来说,经过排序就能得到最被推荐的物体了。
显然上述的逻辑在于,和你相似的人推荐的东西更符合你的心意。
collaborative filtering协同过滤的更多相关文章
- 从item-base到svd再到rbm,多种Collaborative Filtering(协同过滤算法)从原理到实现
http://blog.csdn.net/dark_scope/article/details/17228643 〇.说明 本文的所有代码均可在 DML 找到,欢迎点星星. 一.引入 推荐系统(主要是 ...
- Collaborative Filtering(协同过滤)算法详解
基本思想 基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢(如商品购买,收藏,内容评论或分享),并对这些喜好进行度量和打分.根据不同用户对相同商品或内容的态度和偏好程度计算用户 ...
- Andrew Ng机器学习课程笔记--week9(下)(推荐系统&协同过滤)
本周内容较多,故分为上下两篇文章. 本文为下篇. 一.内容概要 1. Anomaly Detection Density Estimation Problem Motivation Gaussian ...
- 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms” .
ligh@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.3 基于物品的协同过滤推荐算法--读"Item-Based ...
- 【RS】Sparse Probabilistic Matrix Factorization by Laplace Distribution for Collaborative Filtering - 基于拉普拉斯分布的稀疏概率矩阵分解协同过滤
[论文标题]Sparse Probabilistic Matrix Factorization by Laplace Distribution for Collaborative Filtering ...
- 【RS】Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model - 当因式分解遇上邻域:多层面协同过滤模型
[论文标题]Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model (35th-ICM ...
- 亚马逊 协同过滤算法 Collaborative filtering
这节课时郭强的三维课.他讲的是MAYA和max .自己对这个也不怎么的感兴趣.而且这个课感觉属于数字媒体.自己对游戏,动画,这些东西一点都不兴趣,比如大一的时候刚开学的时候,张瑞的数字媒体的导论课.还 ...
- 【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 ...
- 【RS】AutoRec: Autoencoders Meet Collaborative Filtering - AutoRec:当自编码器遇上协同过滤
[论文标题]AutoRec: Autoencoders Meet Collaborative Filtering (WWW'15) [论文作者]Suvash Sedhain †∗ , Aditya K ...
随机推荐
- Spring 系列教程之容器的功能
Spring 系列教程之容器的功能 经过前面几章的分析,相信大家已经对 Spring 中的容器功能有了简单的了解,在前面的章节中我们一直以 BeanFacotry 接口以及它的默认实现类 XmlBea ...
- activemq , redis
activemq是干什么的?即时消息通信,简单说: A发送消息给activemq 服务,B监听服务获取消息.假如有如下场景: A发送了一个请求,但是这个请求需要做 10 项工作,如果按照正常操作,需要 ...
- 自定义注解与validation结合使用案例
编写validation自定义注解: @Target({ ElementType.FIELD, ElementType.METHOD })@Retention(RetentionPolicy.RUNT ...
- spring学习 十 schema-based 前置后后置通知
spring 提供了 2 种 AOP 实现方式:(1)Schema-based ,(2)AspectJ Schema-based:每个通知都需要实现接口或类,配置 spring 配置文件时在<a ...
- spring 学习 二 IOC/DI
中文名称:控制反转 英文名称:( Inversion of Control ) 1 控制反转作用: 一般在编写java程序时,需要程序员自己创建对象的实例,例如 A a=new A();语句,就是程序 ...
- android开发笔记(1)
最近老师要求我们使用android开发一些东西.但是对我们而言,android是一个未知的方面.先说说我对于android的软件的基本认识,首先他很难,因为他是一个未知的领域:其次,我们只是掌握了一些 ...
- django rest framemark
一 内容回顾 1 开发者模式 普通开发方式:前后端放在一起开发 前后端分离:前后端只通过 JSON 来交流,组件化.工程化不需要依赖后端去实现 2 后端开发:为前端提供url接口,也就是API或者接口 ...
- 【转】centos7 搭建etcd集群
转自http://www.cnblogs.com/zhenyuyaodidiao/p/6237019.html 一.简介 “A highly-available key value store for ...
- Python开课复习-10/16
import random # random 随机数模块 # print(random.random()) #----float 大于0且小于1之间的小数# print(random.choice([ ...
- 2019.01.02 bzoj3513: [MUTC2013]idiots(fft)
传送门 fftfftfft经典题. 题意简述:给定nnn个长度分别为aia_iai的木棒,问随机选择3个木棒能够拼成三角形的概率. 思路:考虑对于木棒构造出生成函数然后可以fftfftfft出两个木 ...