推荐系统协同过滤基于的两种假设

基于用户的协同过滤,基于的假设是:喜欢相同物品的用户具有相似性。

相同物品越多,用户相似性越大。(有点基于统计的意思)

基于用户的协同过滤推荐机制和基于人口统计学的推荐机制都是计算用户的相似度,并基于“邻居”用户群计算推荐,但它们所不同的是如何计算用户的相似度,基于人口统计学的机制只考虑用户本身的特征,而基于用户的协同过滤机制可是在用户的历史偏好的数据上计算用户的相似度,它的基本假设是,喜欢类似物品的用户可能有相同或者相似的口味和偏好。

基于项目的协同过滤,基于的假设是:同一个人喜欢的几个物品具有相似性。

 

userA喜欢A C

userB喜欢A C

》》则A C具有相似性,同时喜欢的用户越多,说明A C相似性越大。(有点基于统计的意思)

参考:IBM 深入推荐引擎相关算法 - 协同过滤

http://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy2/index.html

时间: 2024-10-15 11:14:13

推荐系统协同过滤基于的两种假设的相关文章

爬虫学习 17.基于scrapy-redis两种形式的分布式爬虫

爬虫学习 17.基于scrapy-redis两种形式的分布式爬虫 redis分布式部署 1.scrapy框架是否可以自己实现分布式? - 不可以.原因有二. 其一:因为多台机器上部署的scrapy会各自拥有各自的调度器,这样就使得多台机器无法分配start_urls列表中的url.(多台机器无法共享同一个调度器) 其二:多台机器爬取到的数据无法通过同一个管道对数据进行统一的数据持久出存储.(多台机器无法共享同一个管道) 2.基于scrapy-redis组件的分布式爬虫 ? - scrapy-re

协同过滤-基于物品的过滤

现在假设你有100万个用户,每次对一个用户进行一次推荐时,需要计算100万次距离.如果每一秒需要进行多次推荐的话计算次数会十分巨大,系统会很慢.正式的说话是,基于令居的推荐系统的主要缺点是延迟性太差. 1 )基于用户的过滤的两个主要问题: 1.扩展性问题: 随着用户数量的增大,计算量会增大,基于用户的过滤在几千用户时效果还可以,但是有上百万用户时,扩展性成了问题 2.稀疏性问题:大部分推荐系统中,用户和商品有很多,但是用户评级的商品数却很少,有的时候可能找不到令居 2)基于物品的过滤: 基于物品

推荐系统-协同过滤原理与实现

一.基本介绍 1. 推荐系统任务 推荐系统的任务就是联系用户和信息一方面帮助用户发现对自己有价值的信息,而另一方面让信息能够展现在对它感兴趣的用户面前从而实现信息消费者和信息生产者的双赢. 2. 与搜索引擎比较 相同点:帮助用户快速发现有用信息的工具 不同点:和搜索引擎不同的是推荐系统不需要用户提供明确的需求而是通过分析用户的历史行为来给用户的兴趣建模从而主动给用户推荐出能够满足他们兴趣和需求的信息. 3. 长尾理论 长尾讲述的是这样一个故事:以前被认为是边缘化的.地下的.独立(艺人?)的产品现

【学习&理解】基于TSS和基于内核栈两种机制的进程切换

在Linux0.11中,进程的切换是基于intel提供的TSS机制的,要从一个进程切换到别的进程,就是切换TSS这个结构.但是,这样的切换方式效率太低,所以后来Linux和Windows都改成采用基于内核栈来切换这种方式.由于TSS机制比较简单,所以大部分精力用于讲解基于内核栈机制. 以下的基于内核栈方式是通过修改Linux0.11的基于TSS方式实现的. TSS机制 以下是从网上找到的TSS机制切换的流程图: 就这张图来讲解,TR(task register)是用于在GDT中索引当前任务的TS

基于scrapy-redis两种形式的分布式爬虫

redis分布式部署 1.scrapy框架是否可以自己实现分布式? - 不可以.原因有二. 其一:因为多台机器上部署的scrapy会各自拥有各自的调度器,这样就使得多台机器无法分配start_urls列表中的url.(多台机器无法共享同一个调度器) 其二:多台机器爬取到的数据无法通过同一个管道对数据进行统一的数据持久出存储.(多台机器无法共享同一个管道) 2.基于scrapy-redis组件的分布式爬虫 - scrapy-redis组件中为我们封装好了可以被多台机器共享的调度器和管道,我们可以直

17,基于scrapy-redis两种形式的分布式爬虫

redis分布式部署 1.scrapy框架是否可以自己实现分布式? - 不可以.原因有二. 其一:因为多台机器上部署的scrapy会各自拥有各自的调度器,这样就使得多台机器无法分配start_urls列表中的url.(多台机器无法共享同一个调度器) 其二:多台机器爬取到的数据无法通过同一个管道对数据进行统一的数据持久出存储.(多台机器无法共享同一个管道) 2.基于scrapy-redis组件的分布式爬虫 - scrapy-redis组件中为我们封装好了可以被多台机器共享的调度器和管道,我们可以直

在Winform界面中使用DevExpress的TreeList实现节点过滤查询的两种方式

在我较早的一篇随笔<在DevExpress程序中使用TeeList控件以及节点查询的处理>中,介绍了在树形列表TreeList控件上面,利用SearchControl实现节点的模糊查询过滤操作,效果还是非常不错的,TreeList功能比较强大,界面也相对比微软内置的Winform的TreeView控件美观不少.后来在一次偶然过程中,发现TreeList控件本身就可以打开头部过滤输入,实现节点的快速过滤,不过过滤是完全匹配方式,和我们常规的模糊匹配思路不一样,本篇随笔介绍对TreeList控件常

处理事件的方式:两种类的覆盖处理(覆盖,通用处理),一种对象的处理(过滤处理,通常是父控件给子控件安装过滤),两种全局处理(QCoreApplication安装过滤器,覆盖notify方法)

虽然只有一句话,但却是我自己的心得. 特别注意,bool QCoreApplication::notify(QObject *receiver, QEvent *event) 明确指明了要发送的对象,以及要发送的事件,信息都这么清楚了,那覆盖后还不是为所欲为-而且我估计notify在过滤器之前执行. 其实五种方法在官方文档就有明确的说明: http://doc.qt.io/qt-5/qcoreapplication.html#notify 例子: http://blog.csdn.net/lia

19.基于scrapy-redis两种形式的分布式爬虫

redis分布式部署 1.scrapy框架是否可以自己实现分布式? - 不可以.原因有二. 其一:因为多台机器上部署的scrapy会各自拥有各自的调度器,这样就使得多台机器无法分配start_urls列表中的url.(多台机器无法共享同一个调度器) 其二:多台机器爬取到的数据无法通过同一个管道对数据进行统一的数据持久出存储.(多台机器无法共享同一个管道) 2.基于scrapy-redis组件的分布式爬虫 - scrapy-redis组件中为我们封装好了可以被多台机器共享的调度器和管道,我们可以直