Recommender Systems协同过滤
第一部分是学习ID3时候积累的。
一.以前写的基础知识
1.信息:是用来消除不确定性的度量,信息量的大小,由所消除的不确定性的大小来计量(香农)。
2.由于不确定性是由随机性引起的,所以用概率来描述和计量;熵entropy:源于热力学,是分子混乱程度的度量。
3.X(离散型随机变量)的熵H(X) 为:H(X)= - ∑x ∈X p (x) log2 p (x),其中,约定0log2 0 = 0,通常单位为bits;一个随机变量的熵越大,它的不确定性就越大,正确估计其值的可能性就越小。越不确定的随机变量越需要大的信息量用以确定其值;熵又称为自信息(self-information),表示信源X每发一个符号(不论发什么符号)所提供的平均信息量。
二.协同过滤
输入:“用户—物品”评分矩阵
输出: (1)用户对某个物品喜欢程度的评分;
(2)对于用户,n个推荐的物品列表
2.1 基于用户的最近邻推荐(user-based cf)
算法基本假设:(1)如果用户过去有相似的偏好,那么他们未来也会有相似的偏好;(2)用户的偏好不随时间变化而变化。用户相似度计算:user-based cf中pearson相关系数比较好;item-based cf中余弦相似度比较好。学术界在相似度方面有较为深入的研究,例如:很多领域都存在一些所有人都喜欢的物品(热门物品),让两个用户对有争议的物品达成共识、比对热门物品达成共识更有价值,Breese提出“反用户频率”(iuf)来表示。
用户近邻的选择方法:(1)固定某个相似度阈值;(2)固定某个近邻数阈值
2.2基于物品额最近邻推荐(item-based cf)
算法基本假设:用户喜欢某个物品,那么也喜欢和这个物品相似的物品
当用户量比较大的时候,user-based cf需要计算相似用户,这个计算代价就很大;而且,当数据发生变化的时候,之前计算出的用户之间的相似度,也不稳定。相反,item-based cf,计算item之间的关系,比较适合离线计算,而且计算出的物品之间的相似度,当数据变化的时候,结果更加稳定。
当计算量实在太大的时候,如果一定要处理,可以采取“二次采样”的方法,即只选择数据的某个子集。
三. 关于评分
“用户—物品”矩阵,联结用户和物品的是用户对物品的评分。可以分为显示评分和隐式评分。显示评分的问题主要在于用户需要额外付出。收集显示评分也并不是太困难,关键要有一小部分“早起培育者”先提供出来一些评分(有心理学的依据)。对于些领域,例如:个性化在线电台,隐式反馈比现实反馈效果更好。
如果评分很少、或者没有评分,就是数据稀疏问题。是否可以利用一些别的信息,如:用户的自然属性。对于用户没有行为的物品,可否有缺省值?冷启动问题是数据稀疏问题的一个特例。
四. 更多的模型和方法
协同过滤推荐可以分为基于记忆的方法和机遇模型的方法。前者将所有数据记忆到存储体中。后者,(离线)做数据降维,抽象出特征,运行时直接用特征。
(1)矩阵分解方法
SVD(基础),LSA,LSI。都是降维的方法。至于计算item之间的相似度、user之间的相似度、相似度度量选择等等,和经典的CF没啥两样。
主成分分析方法。
(2)关联规则挖掘
啤酒尿布。在热门电影领域,关联规则挖掘的效果比较好。给用户推荐web页面的场景,关联规则效果也不错。
(3)基于概率分析的方法
将推荐问题转成分类问题。例如:用户给item的打分可以是1--5分,对于新物品、以及当前用户,给物品分到五个类别中,分别对应着1–5分。个人感觉,这种方法的作用就是为学术界发文章,在实际中很难使用。
五. 近年来实际的方法和系统
slope one预测,google reader的预测方法(之一)。思路挺有意思的,就是用与当前用户有关的用户(与当前用户在某个物品上都打了分--分高分低无所谓)对某个物品的评分情况,来预测当前用户对于这个物品的评分情况。直觉上不见得会make sense,即便是make sense,也远不如CF那么sense。不过算法很适合并行化。且Google也是用Map reduce来做的。
google reader实际上是一个混合推荐系统。既包括了离线计算,也包括了在线的用户行为挖掘。
六. 讨论和小结
目前找不到一种推荐方法在所有系统和数据集上面都优秀的。所以推荐系统还要“具体问题具体分析”,多尝试。CF方法要求用户有一定的规模,太小规模,效果不可预测。
参考:http://blog.csdn.net/xceman1997/article/details/41687339
七.遗留问题
1.反用户频率是什么?
2.二次采样怎么搞?
3.item——basedCF中还会买与买过的物品相似的物品吗?如果是,意义何在?莫非这就是“喜欢该物品的还喜欢.....”(购买过还购买了,这种一般是关联规则推荐,而且物品往往是不经常买的,比如手机、单反)。
4.基于概率分析的方法,还没看过相关论文。
5.今天刚下了“增量聚类”“实时推荐”“矩阵分解模型”的资料,有相关资料的园友,希望分享一下,留下你的评论,说说我需要看什么就行......爱你们
转载于:https://www.cnblogs.com/hxsyl/p/3133426.html
Recommender Systems协同过滤相关推荐
- 从原理到实现,详解基于朴素ML思想的协同过滤推荐算法
作者丨gongyouliu 编辑丨Zandy 来源 | 大数据与人工智能(ID: ai-big-data) 作者在<协同过滤推荐算法>.<矩阵分解推荐算法>这两篇文章中介绍了几 ...
- 推荐系统中基于深度学习的混合协同过滤模型
近些年,深度学习在语音识别.图像处理.自然语言处理等领域都取得了很大的突破与成就.相对来说,深度学习在推荐系统领域的研究与应用还处于早期阶段. 携程在深度学习与推荐系统结合的领域也进行了相关的研究与应 ...
- 推荐系统笔记: 基于邻居的协同过滤问题 中的降维
1 介绍 降维方法可用于在质量和效率方面改进基于邻域的协同过滤方法. 特别是,在稀疏评分矩阵中很难稳健地计算成对相似性,但降维提供了在潜在因素方面的密集低维表示.因此,此类模型也称为潜在因子模型 la ...
- 序列化推荐系统总结:Sequential Recommender Systems: Challenges, Progress and Prospect
作者:一元, 公众号:炼丹笔记, 特约审稿:杰少 背景 序列推荐系统(SRS)不同于传统推荐系统(RSs)包括协同过滤和基于内容的过滤,SRSs试图理解和建模用户的连续行为.用户与物品之间的交互作用以 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 16—Recommender Systems 推荐系统...
Lecture 16 Recommender Systems 推荐系统 16.1 问题形式化 Problem Formulation 在机器学习领域,对于一些问题存在一些算法, 能试图自动地替你学习到 ...
- 机器学习(十四)——协同过滤的ALS算法(2)、主成分分析
http://antkillerfarm.github.io/ Kendall秩相关系数(Kendall rank correlation coefficient) 对于秩变量对(xi,yi),(xj ...
- A Survey on Knowledge Graph-Based Recommender Systems 知识图谱提升推荐系统准确性与可解释性ArXiv 2020
论文链接:https://arxiv.org/pdf/2003.00911.pdf 导读 近来,知识图谱用于推荐系统是关注的焦点,能够提升推荐系统的准确性与可解释性.如何将知识图谱融入到推荐系统呢? ...
- win7下使用Taste实现协同过滤算法
如果要实现Taste算法,必备的条件是: 1) JDK,使用1.6版本.需要说明一下,因为要基于Eclipse构建,所以在设置path的值之前要先定义JAVA_HOME变量. 2) Maven,使用2 ...
- TKDE2022 | 最新深度学习推荐系统综述:从协同过滤到信息增强的推荐系统
省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2022年2月份热门报告盘点 某短视频APP推荐算法及策略最详细拆解 机器学习在B站推荐系统中的应用 ...
最新文章
- 2006关注IT技术
- Windows 技术篇-设置电脑启用或禁用开机按Ctrl+Alt+Del解除锁定
- 用java解决约瑟夫循环问题,Java实现循环列表解决约瑟夫环问题
- python local variable 'xxx' referenced before assignment
- 【编译工具系列】之GCC文件关联
- mfc gridctrl 设置某列自动伸长_三明桥梁智能张拉设备数控智能张拉系统全自动智能张拉系统...
- poi导出如何设定宽度_POI导出excel列宽自适应
- 解决ColorPix拾色器提取颜色错误
- 简单的求三角函数sin,cos的图像
- 主板电源开关接口图解_全程图解:手把手教你主板各种插针接口与机箱(电源)的接法...
- 【Java实习生】每日10道面试题打卡!
- 中心极限定理 - 正态分布
- 数据挖掘算法和实践(二十一):kaggle经典-职场离职率分析案例解读
- C++后台开发面试题总结(涉及C++基础、多线程多进程、网络编程等)
- 大一时写的东西 哈哈~~~~~~~~~~~~
- NCRE教材笔记 第一章操作系统概论
- 干货 | Linux面试题(2020最新版)
- IDC最新发布全屋智能将成为智能家居增长的重要动力,华为战略升级
- Servlet 02
- 获取日期对应的第几周
热门文章
- 多核技术对计算机技术的影响,计算机新技术——多核技术.doc
- Intellij IDEA 中的 Debug 控制台输出窗口消失
- amazon linux 用户名,如何在Amazon AWS上设置一台Linux服务器
- Notepad++美化,关于编程主题与字体
- NYOJ463 - 九九乘法表
- fj怎么样_评测:丰田FJ 酷路泽动力及性能怎么样是否值得入手
- cin cout加快
- random函数 c语言,C/C++ 中rand()和random()函数(示例代码)
- 2017乌鲁木齐ICPC: I. A Possible Tree(带权并查集)
- bzoj 2257: [Jsoi2009]瓶子和燃料(裴蜀定理)