推荐系统(recommender systems):预测电影评分--构造推荐系统的一种方法:协同过滤(collaborative filtering )

协同过滤(collaborative filtering )能自行学习所要使用的特征

如我们有某一个数据集,我们并不知道特征的值是多少,我们有一些用户对电影的评分,但是我们并不知道每部电影的特征(即每部电影到底有多少浪漫成份,有多少动作成份)

假设我们通过采访用户得到每个用户的喜好,如上图中的Alice喜欢爱情电影,不喜欢动作电影,则我们将θ(1)设为[0,5,0],如此设置θ(2),θ(3),θ(4)的值,这样我们有了每个用户的θ的值以及他们对电影的打分,就可以推断出每部电影的x(特征)的值。

如对于上图中的第一部电影,Alice的打分是5,Bob的打分是5,Carol的打分是0,Dave的打分也是0,我们有每个用户的θ值,这样根据这些值来评估第一部电影的x1与x2的值,根据什么来评估呢,这是使θ(1)与x(1)的内积约等于5,使θ(2)与x(1)的内积约等于5,使θ(3)与x(1)的内积约等于0,使θ(4)与x(1)的内积约等于0,这样估算出x(1)的值。据此依次算出x(2)等的值。

我们有nu个用户,知道这些用户的喜好,即知道用户的θ值,根据这些用户的值去估计第i部电影的特征值。

下面是对所有的电影的特征值的估计,有nm部电影。

协同过滤算法

我们将上面的两个算法结合起来,我们可以由知道x的值( 即每部电影的特征值)和每个用户对电影的打分,来推断出每个用户的喜好值(及θ的值)

也可以知道每个用户的喜好值(及θ的值)和每个用户对电影的打分来推荐出电影的特征值(即x的值)。

先有鸡还是先有蛋问题:根据θ的值可以估计x的值,根据x的值可以用来估计θ的值.

这样我们先猜测一个θ的值,然后根据这个θ的值估计出x的值,再根据x的值估计出θ的值,这样一直迭代下去,直至收敛。

这样我们就可以根据用户对电影的打分,反复进行上面的过程,来估计出θ与x的值。

总结

协同过滤算法:通过一大堆用户得到的数据,这些用户实际上在高效地进行协同合作,来得到每个人对电影的评分。只要用户对某几部电影进行了评分,每个用户就又都在帮助算法更好地学习出特征,这些特征可以被系统运用来为其它人做出更准确的电影预测。

协同是说每位用户都在为了大家的利益,学习出更好的特征

时间: 2024-08-02 06:57:32

推荐系统(recommender systems):预测电影评分--构造推荐系统的一种方法:协同过滤(collaborative filtering )的相关文章

【读书笔记】《推荐系统(recommender systems An introduction)》第五章 混合推荐方法

第五章 混合推荐方法 推荐问题可以转换成效用函数,函数的输入为用户和物品,输出为用户和物品的效用--效用是指物品满足某种抽象目标的能力,如:满足用户某方面的需求.或者是满足零售转化率.等等 任何一个推荐系统都是从众多物品中选取N个物品,使得这N个物品的效用总和最大 1. 整体式混合设计 从最底层的特征开始考虑整合 1.1 特征混合方案 如果有多种特征可以用,例如:用户浏览.点击.搜索.购买.等行为,要预测用户下一步要购买什么,显然搜索和购买行为比浏览.点击行为更加重要.对于不同重要性的特征的利用

【读书笔记】《推荐系统(recommender systems An introduction)》第二章 协同过滤推荐

输入:"用户-物品"评分矩阵 输出:(1)用户对某个物品喜欢程度的评分:(2)对于用户,n个推荐的物品列表 1. 基于用户的最近邻推荐(user-based cf) 算法基本假设:(1)如果用户过去有相似的偏好,那么他们未来也会有相似的偏好:(2)用户的偏好不随时间变化而变化 用户相似度计算:user-based cf中pearson相关系数比较好:item-based cf中余弦相似度比较好.学术界在相似度方面有较为深入的研究,例如:很多领域都存在一些所有人都喜欢的物品(热门物品),

【读书笔记】《推荐系统(recommender systems An introduction)》第九章 针对协同过滤推荐系统的攻击

个人评价:很有意思的一个话题,我在实际工作中也遇到过,不过这本书写的一般,有点儿"掉书袋",太学术化.太YY.前提假设条件太强.姑且看看做借鉴吧. 通常推荐系统利用用户数据的时候,是假定用户是善良的.诚实的.而攻击,就只值认为设法影响系统的结果.性能. 攻击的维度:1. 针对某个物品,抬高或者降低其评分:2. 针对特定的用户群:3. 针对某个系统,然系统推荐不准确,甚至系统崩溃. 所有的攻击都是通过某种方式(例如:模拟用户行为)来向推荐系统中注入某种特定数据来达到目的的. 攻击类型:

推荐系统(recommender systems):均值归一化(mean normalization)

均值归一化可以让算法运行得更好. 现在考虑这样一个情况:一个用户对所有的电影都没有评分,即上图所示 的Eve用户.现在我们要学习特征向量(假设n=2) 以及用户5的向量θ(5),因为用户Eve没有对任何电影打分,所以前面的一项为0,只有后面正则化的项,所以影响θ取值的只有后面的θ的正则化的项.所以要使它最小,即θ的取值为0.所以当我们预测用户5对所有电影的评分的时候,这时的评分都为0.所以我们会预测所有的电影的评分都为0.这样是毫无意义的,因为我们还是没有办法知道我们应该向用户5推荐什么电影(没

【读书笔记】《推荐系统(recommender systems An introduction)》第六章 推荐系统的解释

如何给推荐系统的结果给予解释? 1. 基于约束的推荐系统:这种系统的商品都有各种属性,用户只知道个大概,但是不完全清楚各种属性,推荐系统在帮助用户一步步接近用户最终的期望.属性就是产生推荐理由的关键.本书中采用了一些推理方法来生成理由,挺玄乎的.我理解,直接告诉用户,我猜你最关心的是xx属性,根据这个属性,我来给你推荐xxx,这样就应该行了. 2. 基于实例的推荐系统:产生的理由和上面差不多,都是关键属性,过程根据推荐新算法不同而有所不同,个人感觉,不值得细看 3. 协同过滤的推荐系统:一般来讲

Ng第十六课:推荐系统(Recommender Systems)

16.1  问题形式化 16.2  基于内容的推荐系统 16.3  协同过滤 16.4  协同过滤算法 16.5  矢量化:低秩矩阵分解 16.6  推行工作上的细节:均值归一化 16.1  问题形式化 16.2  基于内容的推荐系统 16.3  协同过滤 16.4  协同过滤算法 16.5  矢量化:低秩矩阵分解 16.6  推行工作上的细节:均值归一化

【读书笔记】《推荐系统(recommender systems An introduction)》第三章 基于内容的推荐

基于内容的推荐的基本推荐思路是:用户喜欢幻想小说,这本书是幻想小说,则用户有可能喜欢这本小说 两方面要求:(1)知道用户的喜好:(2)知道物品的属性 基于内容的推荐相比协同过滤方法(个人观点):协同过滤用到了大量用户的群体行为特征,两个特点,(1)要大量用户,(2)除了用户的行为之外,不需要其他信息:基于内容的推荐,需要用户和物品的额外信息,如:用户喜好.物品属性等等,但是不需要存储.处理大量的用户数据. 基于内容的推荐和基于知识的推荐没有明确界限,两者区别:前者更侧重于提取物品属性,后者更侧重

斯坦福第十六课:推荐系统(Recommender Systems)

16.1  问题形式化 16.2  基于内容的推荐系统 16.3  协同过滤 16.4  协同过滤算法 16.5  矢量化:低秩矩阵分解 16.6  推行工作上的细节:均值归一化 16.1  问题形式化 16.2  基于内容的推荐系统 16.3  协同过滤 16.4  协同过滤算法 16.5  矢量化:低秩矩阵分解 16.6  推行工作上的细节:均值归一化

【读书笔记】《推荐系统(recommender systems An introduction)》第一章 引言

很久没上来写blog,前两个月赶上校招季节,都忙校招去了. 这本书我早就买来了,不过我从前看过项亮的<推荐系统实践>,看这本书的目录结构和项亮那本差不多,就一直放着没看.最近在做一个推荐系统,遇到一些实际问题,想翻开项亮的书再找找灵感,不过对于自己看过了的东西,就不愿意再翻看第二遍了.恰好这本书和项亮那本很像,就直接看这本书了.顺便记记笔记,贴到这里,供更多人参考. 1. 协同过滤的推荐 基本思想:用户在过去有相同的偏好,e.g. 他们浏览或者买过相同的书,那么他们在未来也有相似的偏好. 关键