开发者学堂课程【高校精品课-北京大学 -推荐系统 :Lec2 协同过滤_基于邻域】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/122/detail/3919
Lec2 协同过滤_基于邻域
内容介绍:
一、经典系统
二、基本思想
三、算法分类
四、协同过滤的一般步骤
五、收集用户行为数据
一、经典系统
1、协同过滤是工业界也是学术界研究最多的算法,1992年,Tapestry 系统是公开的最早的应用 CF 进行信息过滤的系统,施乐公司为解决其 PaloAlto 研究中心内部的资讯过载问题,利用其他用户的显式反馈(标注是否有用),帮助用户过滤新闻组邮件。
1994年基于协同过滤CF的跨网络新闻推荐系统 GroupLens,由 MITT 和明尼苏达大学共同推出,根据相似用户对新闻的评分(1分~5分)预测目标用户对新闻的评分并做出推荐。
在系统框架中可以看出系统会记录每一位用户看完一跳新闻之后的评分,并根据评分给相应的用户进行推荐。其他不同领域的协同过滤系统,电影推荐 MovieLens、音乐推荐 Ringo、书籍( 商品)推荐 Amazon。虽然应用领域和产品各不相同,但方法的基本思想都一样。
二、基本思想
1、协同过滤(Collaborative Filtering, CF) :
利用集体智慧,借鉴相关人群的观点进行推荐,例如小明看哈利波特,
神奇动物在哪里,少年派三部电影,小刚看哈利波特和神奇动物在哪里两部电影,小红只看过龙猫,通过用户的行为,可以看出小明和小刚的兴趣更为相似,所以可以把小明喜欢看的少年派推荐给小刚。
2、基本假设:
(1)过去兴趣相似的用户在未来的兴趣也会相似,所以会把小明喜欢的少年派推荐给小刚,假设小刚也会喜欢这部电影。
(2)相似的用户会产生相似的(历史)行为数据。根据历史行为,判断两个用户是否相似。
三、算法分类
1、Top-N 推荐 vs. 评分预测
输入(输出) :隐式的 0-偏好 vs. 显式的评分
Top-N 推荐的输入是隐式的反馈,比如点击购买的行为,评分预测的输入是显示的评分,比如酒店评分,Top-N 推荐的输出预测的是用户推荐项目的相对偏好程度,评分预测一般是用户对酒店评分,
2、基于领域的方法 vs. 基于模型的方法
利用信息的角度不一样
利用局部(邻域)信息 VS .基于全局信息
在内存中存储(记忆)整个数据集 vs. 训练出抽象模型,在存储时只需要存储抽象模型函数即可。
基于领域的方法可以分为基于用户形成过滤,基于项目形成过滤,以及图扩散的是三个方法,基于模型的方法可以分为矩阵分解,关联规则,机器学习。
四、协同过滤的一般步骤
1、基于领域的协同过滤主要包括三步,第一个收集数据,第二步针对模型方法寻找领域,第三步是计算推荐结果。
2、基于模型系统的协同过滤也是三步,第一步和第三步相同,第二步把基于领域的,寻找领域变成训练模型。
3、收集数据
目标:收集能反应用户偏好的数据,例如隐式 Top-N 推荐中的点击购买,和显示返回中的评分行为。
4、寻找领域:相似的用户(或项目)
可以根据喜欢行为寻找相似的用户,或者相似的物品。
5、计算推荐结果:根据领域信息计算推荐结果,在例子中可以为用户 a 推荐物品 c,为用户 a 推荐物品 b。
五、收集用户行为数据
用户行为 |
类型 |
特征 |
作用 |
评分 |
显式 |
整数,取值[0, n] |
精确的用户偏好 |
点击流 |
隐式 |
一组用户点击 |
一定程度上反映用户的注意力和喜好 |
页面停留时间 |
隐式 |
一组时间信息 |
一定程度上反映用户的注意力和喜好 |
保存书签 |
隐式 |
布尔值,取值0或1 |
较精确的用户偏好 |
标记标签(Tag) |
隐式 |
一些词语 |
可以分析出用户的情感和兴趣 |
购买 |
隐式 |
布尔值,取值0或1 |
明确的用户兴趣 |
显式反馈:用户主动地向系统表达其偏好,一股需要用户在消费完项目后进行额外反馈,会影响用户的体验。
隐式反馈:隐含用户对项目偏好的行为数据,是用户在探索或消费项目过程中正常操作。虽然质量不如显式反馈,收集比较容易,不会对用户的体验产生影响,一般更容易获取较大的隐式反馈数据。
示例
用户购买行为数据:
用户 a 购买过项目{b,d}
用户 B 购买过{a, b, c}
用户 C 购买过项目{a, b, d}
用户 D 购买过项目{a, e}
目标:
为用户 A 推荐项目,如何推荐,给用户A推荐哪些项目。