当前课程知识点:互联网大规模数据分析技术 >  第八章 推荐系统 >  第22讲 推荐系统之协同过滤 >  第22讲 推荐系统之协同过滤

返回《互联网大规模数据分析技术》慕课在线视频课程列表

第22讲 推荐系统之协同过滤在线视频

下一节:第23讲 Mahout数据挖掘平台

返回《互联网大规模数据分析技术》慕课在线视频列表

第22讲 推荐系统之协同过滤课程教案、知识点、字幕

欢迎来到

互联网大规模数据分析技术

的课堂

我是今天的主讲教师李琳

来自武汉理工大学

今天我们开始第22讲

推荐系统之协同过滤

在这一讲当中呢

我们会给大家讲

基于用户的协同过滤

基于商品的协同过滤

并对这两种协同过滤方法

做一个小结

在前面的学习当中

我们了解了协同过滤是告诉我

我的朋友喜欢什么

那么请向我推荐

这种协同过滤方法

需要知道朋友的喜好

在这里朋友的喜好

我们该怎么来描述呢

也就是说

用户会给商品进行一个打分

这个打分就代表了

用户对这个商品的喜好程度

5分当然我们可以认为

他比较喜欢

四分还可以

那么打一分说明用户对这个产品

并不满意

所以我们用这样一个打分信息

来代表用户的喜好

同时我们有一个假设

Customers who had

similar tastes in the past

will have similar tastes

in the future

也就是说如果在过去

我们朋友之间有相同的爱好

相同的喜欢的物品

在将来

我们可能也会遵循同样的模式

基于这样一个假设

我们把这样一种基于朋友的喜好

来向个体进行推荐的方法

叫做协同过滤

协同过滤在1994年

有一个开放的这样一个架构

这样一个架构的提出的基本思想

也就是前面我们提到的

People who agreed in their

subjective evaluations

in the past are likely to agree

again in the future

也就是过去我们很相似

将来我们一定也会是朋友

也会有相似的喜好

接下来呢

我们就看一下

基于用户的协同过滤

是怎么来完成的

在这样一个方法当中

我们给大家举一个例子

大家在这里看到

我有一个用户叫做Alice

这个Alice

她对一些商品有过购买经历

并且进行了打分

推荐系统想知道Alice

对商品5的打分会是多少呢

如果高一点,我就向她推荐

如果不太高,那我就不向她推荐

所以这种情况下

我们该怎么来做呢

我们要了解

那么Alice她的伙伴是哪些呢

在这个里面我们就假设

其他用户都可能是Alice的伙伴

在这个里面就是User1到User4

这些用户

肯定对商品5已经产生过打分

所以我把这些用户的信息

拿来使用

User1打了3分

User2打了5分

User3打了4分

User4打了1分

那Alice究竟会给item5

打多少分呢

我们有一个简单的方法

就是把这些分子全部加起来

求一个平均

3加5加4加1

正好是5加8,13,6.5

这样方式合适么

马上有同学会说

嗯,那如果User1和Alice

是很好的朋友

她们关系非常密切

她们的品位非常相同

User1是不是会对Alice的影响

更大一些呢

是的

我们要很好的利用这个信息

也就是说我们要解决我们如何来

衡量两个用户之间的相似度

又是相似度

相似度怎么来算呢

另外,Alice究竟有几个朋友呢

How many neighbors

是一个、两个、三个、四个

还是所有的都是我的朋友呢

如果我把每一个朋友和我

Alice的相似度

都计算完成

我们怎么来预测打分

还是求平均么

在这里我们先解决第一个问题

如何求相似度

今天我们在这里给大家介绍一种

新的相似度计算指标

叫做Pearson correlation

有同学会问

老师,我能不能用Cosine呢

老师我能不能用欧氏距离呢

都可以,没有问题

针对不同的数据

你们可以采用不同的

相似度计算方法来完成

在这里的我只是给大家介绍一种

新的相似度计算指标

公式列在这个地方

a、b代表是user

我要计算他们俩的相似度

这是用户a对商品P的打分

这是用户b对商品P的

这样一个打分

那么大家可以看到

在Pearson correlation里面

我们不是直接用相似度的打分

我们还减去了

这个用户的平均打分

考虑到了不同用户的差值

这样一个相似度计算

它的取值范围在-1到1之间

-1到1代表一个什么意思呢

-1到-0.7代表强烈的不相关

0.7到1代表它是正向相关的

接下来

如果利用这样一个相似度计算

我们已经计算出

用户和用户之间的相似度了

接下来我们该怎么来做呢

比如说我们知道Alice和User1

根据刚才的相似度计算

我们得到了0.85

Alice和User2是0.7

Alice和User3是0

Alice和User4是-0.79

相似度算完了

我们看一下前面的幻灯片

我们要算什么呢

我们要知道那么这些用户当中

我取哪些用户的打分

来作为我最终的打分呢

这个时候呢我们这里给出了一个

供大家参考的计算公式

每个用户和用户之间相似度

我已经算出来了

下面的是这样一个求和的平均

但是大家注意一下

相似度算出来之后

我还乘了一个这样的系数

这个系数考虑的是

rating differences

也就是不同的用户他的打分习惯

有的人习惯打高分

有的人习惯打低分

我要把这个平均值减去

来把这个偏差给去掉

所以同时还会加上

因为我要预测

a对这个商品的打分

我也加上a的平均打分值

所以实际上也是考虑到了

这样一个打分的偏差问题

当然你也可以直接用

加权平均的方法来完成

这个取决于具体的数据的应用

这个公式只是给大家一个建议

所以那我根据刚才的

这样一个公式

我们究竟怎么来算呢

我们可以User3和User4

一个是0,一个是负的

我没必要去考虑了

那么我们就考虑User1和User2

当然有同学会说

老师我就想考虑User3和User4

可不可以呀?也可以

但是在这里我的选择是

去掉0和负数

这里我就只剩下了

User1和User2

在User1和User2

作为Alice的邻居

我知道

User1和Alice的相似度是0.85

User2和Alice的相似度是

多少呢?0.7

每一个User

他对这个商品的打分

我还要减去

大家看到没有

我要减去我的平均打分

这样考虑我打分的偏差

同时User2

对这样一个商品的打分

也要减去User2的平均打分

考虑偏差

最后加上用户a

他自己的平均打分

整个的最终算的结果

作为用户a

对某个商品的预测打分

在这里面我们算出来是4.87

也就是说我们可以考虑

把Item5推荐给用户Alice

刚才我们已经讲解了

基于用户的这样一个推荐

基于用户的这样一个推荐

会带来一些什么问题呢

大家看我要算每个用户和

每个用户之间的相似度

在互联网上用户的个数

可能会远远超过商品的个数

特别像Amazon这样的

全球电商网站

用户的个数是非常多的

每一个都去算

显然这个时间复杂度太高了

所以在这里

2001年我们提出的这样一个

和基于User的协同过滤

比较类似的

叫基于Item的协同过滤

这个思想非常简单

我们同样也举

刚才那个Alice的例子

我还是想知道Alice

是对Item5的打分是多少

前面我们计算的是

Alice和User1的相似度

Alice和User2的相似度

Alice和User3的相似度

Alice和User4的相似度

现在我不这么来算了

我不算你也不算他

我算什么呢

我算和Item5相似的商品有哪些

是Item4和5相似吗

是Item3和5相似吗

是Item1和5相似吗

如果是Item1和Item5相似

Alice对Item1打了5分

那么对它(Item5)的打分

可以基于这个相似度来进行判断

所以我们把

基于用户的相似度的计算

变成了基于商品的相似度的计算

同样

我们可以按照刚才的计算方法

用我们的Pearson correlation

来计算

也可以我们前面所学的

基于什么夹角余弦的

这样一个点积的计算

也就是说我们把商品都看成向量

5,3,4,3,1

这两个向量之间的运算

我们可以用这样一种方式来实现

当然你也可以用欧氏距离

我们说了在这里

我们有很多相似度计算的指标

可供大家选择

最后当我算出相似度之后呢

我就可以对它的打分进行预测了

刚才我们简要地介绍了

基于Item的协同过滤

大家可以看到

无非是把用户的相似度计算

换成了基于商品的相似度计算

似乎可以用来解决

大数据分布计算的问题

但是实际上

我们说了

它并不能完整地解决这些问题

需要做很多预处理的工作

这是2003年

Amazon网站做的一些事情

它提前,大家注意这个单词

in advance

也就是提前计算

任何两个商品之间两两相似度

然后由于商品,在在线的时间

我们用的这个用户的邻居

也就是说商品的邻居数

相对要少一些

我们只考虑哪些用户打过分的

或者说打分比较高的

比如说打1分的

你完全没有必要去算

所以在这里面,通过一些预处理

来解决一些大数据的计算问题

这就是Amazon网上的

基于商品的这样一个

协同过滤的推荐

在本讲的前面

我也给大家演示了这样一个例子

在Amazon的网上

你可以告诉Amazon我喜欢什么

你也可以根据别人购买的商品

来给你进行推荐

今天我们给大家介绍了

基于用户的协同过滤

和基于商品的协同过滤

在这两种方法当中

我们都需要计算用户的相似度

和商品之间的相似度

特别是在计算用户的相似度当中

实际上我们是在寻找用户的朋友

也就是用户的community

随着现在社交网络的盛行

那么社交网络上的朋友

是不是也能够给我们

提供更多的信息

来帮助我们做商品的推荐

那么这一部分内容

大家去参考更多的资料

来获取相关的信息

本节课的内容到此结束

感谢大家的观看

互联网大规模数据分析技术课程列表:

第一章 大数据与数据挖掘概述

-第1讲 大数据与数据挖掘概述

--第1讲 大数据与数据挖掘概述

第二章 关联规则

-第2讲 频繁项集和关联规则的基本概念

--第2讲 频繁项集和关联规则的基本概念

-第3讲 Apriori算法

--第3讲 Apriori算法

-第4讲 Apriori算法的改进与兴趣度度量

--第4讲 Apriori算法的改进与兴趣度度量

第三章 分类算法

-第5讲 分类的基本概念

--第5讲 分类的基本概念

-第6讲 决策树

--第6讲 决策树

-第7讲 简单贝叶斯分类

--第7讲 简单贝叶斯分类

第四章 聚类算法

-第8讲 聚类的基本概念

--第8讲 聚类的基本概念

-第9讲 K-Means & K-Medoids Clustering

--第9讲 K-Means & K-Medoids Clustering

-第四章 聚类算法--习题

第五章 大数据平台与技术

-第10讲 大数据处理平台Hadoop

--第10讲 大数据处理平台Hadoop

-第11讲 MapReduce编程

--第11讲 MapReduce编程

-第12讲 大数据处理平台Spark

--第12讲 大数据处理平台Spark

-第13讲 NoSQL数据库

--第13讲 NoSQL数据库

第六章 信息检索

-第14讲 Web信息检索简介

--第14讲 Web信息检索简介

-第15讲 信息检索之倒排索引

--第15讲 信息检索之倒排索引

-第16讲 信息检索之TFIDF

--Video

-第17讲 信息检索之相似度排序

--第16讲 信息检索之TFIDF

第七章 Web链接分析

-第18讲 Web搜索之链接分析

--第18讲 Web搜索之链接分析

-第19讲 Web搜索之PageRank

--第19讲 Web搜索之PageRank

-第20讲 Lucene信息检索平台

--第20讲 Lucene信息检索平台

-第七章 Web链接分析--习题

第八章 推荐系统

-第21讲 推荐系统简介

--第21讲 推荐系统简介

-第22讲 推荐系统之协同过滤

--第22讲 推荐系统之协同过滤

-第23讲 Mahout数据挖掘平台

--第23讲 Mahout数据挖掘平台

-第24讲 信息过滤评价体系

--第24讲 信息过滤评价体系

-第八章 推荐系统--习题一

-第八章 推荐系统--习题二

自我提升练习

-综合编程题

第22讲 推荐系统之协同过滤笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。