【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

一、推荐系统

1、推荐系统简述

结合你和别人的历史购物信息,给你推荐合适的商品。

 

2、推荐系统应用场景:

(1)youtube:解决信息过载问题

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

 

(2)电影推荐

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

 

(3)商品推荐

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

兴趣、推荐还会随着时间的变化而变化,比如宝宝在不断成长,需要的东西也在不断变化。

 

(4)音乐推荐

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

 

(5)朋友推荐

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

3、搭建推荐系统

(1)最简单的方法:根据流行度构建

比如推荐文章,根据纽约时报的文章分享热度来推荐topN。

缺点:缺乏个性化,比如上述的例子只是根据纽约时报读者的阅读兴趣推荐的。

 

(2)分类模型

根据个人信息和购物信息来推荐商品

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

优点:

 

  • 个性化:使用了个人信息和历史购物信息
  • 特征能够包含很多信息:比如购物时间段
  • 购物信息很少时,也能够起作用:比如只知道个人信息,年纪,就可以推荐商品

缺点:

 

  • 特征很多,信息经常不全

 

二、协同过滤的同现矩阵co-occurrence matrix

1、协同过滤的同现现象

同现现象:此时用户购买了物品A,如果其他买过物品A的大部分用户都会买物品B,我们就把物品B推荐给当前用户。

                 比如有个用户买了婴儿尿布,我们发现买过尿布的大部分用户都会买婴儿湿巾,我们就把婴儿湿巾推荐给当前用户。

(1)同现矩阵:对称矩阵

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

 

(2)使用同现矩阵进行推荐

 

  • 比如我们发现这个用户买了尿布diapers
  • 我们就将同现矩阵中尿布diapers的这一行提出来
  • 【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述
  • 找到这一行中数值较大的项作为推荐

 

2、同现矩阵的归一化

(1)流行度问题

同现矩阵中,如果用流行度来的话,可能会出现推荐用品总是一个大热单品的问题。比如尿布,几乎所有妈妈都会买,这就导致尿布的销量很大,不管用户买什么,基于流行度的话,都会推荐尿布,这样是不对的。

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

 

(2)归一化同现矩阵:相似度矩阵

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

 

(3)根据当前购买物品的同现矩阵进行推荐的缺点和解决方法

这种方法的缺点是:只考虑当前的购买信息,没有把历史购物信息考虑进来。

解决方法:

 

  • 将历史购买的物品加上权重:比如用户购买了尿布,牛奶,玩具,现在要给用户推荐婴儿湿巾,那么给历史购买的每个物品尿布,牛奶,玩具都加上一个权重,然后每一个都计算一次婴儿湿巾可能购买的可能性(就之前的方法,将同现矩阵的一行挑出来,然后看婴儿湿巾购买的次数)

(4)历史购买物品加权同现矩阵缺点

 

  • 没有考虑购买时段
  • 没有考虑用户信息
  • 没有考虑商品信息
  • 没有考虑遇冷启动问题(没有这个商品的历史信息)
  • 没有考虑新用户没有历史购物信息

 

三、矩阵分解

我们通过矩阵分解来发现内在隐含的结构,解决上述问题。用电影推荐的例子来说明矩阵分解。

1、矩阵填充任务

用户user, 电影movie, 评分rating组成的大表格:

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

下图中的黑色区域对应用户U对电影V的评分R,白色区域是没有评分的电影。

我们的目标是:已经黑色区域,来填充白色区域。预测用户对未知电影的评分情况。

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

2、已知用户和商品特征进行推荐

比如,我们知道用户和电影关于多个主题的爱好、分布情况。我们就可以将2个矩阵点乘,结果作为最终的评分。

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

矩阵预测:

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

 

3、用矩阵因子分解发现隐含结构

但其实,我们并不知道用户的爱好,电影的特征,我们要逆向思维:

根据黑色格子,来求L和R。用求得的L和R来预测评分,并将它与真实的Rating来比较,进行RSS残差平方和计算。

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

矩阵因子分解,跟之前的回归、分类模型类似,只是这里的L和R是模型参数而已。但是,矩阵因子分解还是无法解决冷启动问题,也就是说,来一个新的电影,或者新的用户,没有它们的任何信息,我们还是无法用这种方法完成推荐。

 

4、混合模型:特征化的矩阵因子分解

基于特征的模型和基于矩阵因子分解的模型:组成混合模型

在一开始新用户时,可以只根据用户的信息,比如年龄,性别等进行推荐;当用户的购买越来越多时,加入有权重的基于矩阵因子分解的模型来推荐。

 

四、推荐系统的评价矩阵

1、推荐系统的召回率和精确率

召回率:#(推荐给我&我喜欢) / #我喜欢                      推荐给我的商品对我喜欢的商品的覆盖率

精确率:#(推荐给我&我喜欢) / #推荐给我                   除了我喜欢的商品,我还需要看多少我不感兴趣

可以看我的博文:查全率、查准率和灵敏性、特异性

 

2、最优的推荐系统

红色框中的是我喜欢的商品,如何使得召回率最大?只要把红色框中的都推荐给我就可以啦,召回率=1。

但这时,精度可能会很小,因为可能推荐给我很多很多商品才完全覆盖了我喜欢的所有商品,也就是下面公式的分母特别大。

#(推荐给我&我喜欢) / #推荐给我   

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

进一步,如果我不想看到无用的商品,并且我喜欢的都被推荐了,那么推荐给我的正好完全是我喜欢的。此时召回率和精确率都为1。

 

3、精确率召回率曲线

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

(1)最优曲线

精确率一直为1,召回率逐渐增大到1。

精确率:#(推荐给我&我喜欢) / #推荐给我    一个一个推荐,每个推荐的都是我喜欢的,因此精确率一直为1。

召回率:召回率:#(推荐给我&我喜欢) / #我喜欢    一个一个推荐,我喜欢的逐渐被覆盖到最后全覆盖,因此逐渐增大为1。

 

(2)真实的推荐系统曲线

但真实情况是,不可能这么完美。

一开始比如推荐了多个商品,只有1个喜欢,则精确率:#(推荐给我&我喜欢) / #推荐给我 从小于1的数开始,召回率:#(推荐给我&我喜欢) / #我喜欢  无限接近于0。

接下来,又推荐的几个商品我都喜欢,这时,精确率会上升,召回率也会上升。

再接下来,又推荐的几个商品我都不喜欢,这时,精确率会下降,召回率保持不变。本次和上次就构成了图中的锯齿。

 

(3)通过曲线衡量不同的推荐算法

 

  • 曲线面积AUC(Area Under the Curve)

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

 

  • 对于那种网页固定推荐数量的,比如只能推荐20个商品,那么衡量标准就是推荐的精确度。#推荐给我 = 20

#(推荐给我&我喜欢) / #推荐给我

 

五、推荐系统总结

1、总结图

model是混合模型:基于特征的模型,矩阵因子分解

因此权重更新时包含两部分:对于用户特征的权重w,矩阵因子分解的L和R

【机器学习课程-华盛顿大学】:1 案例研究 1.5 推荐系统(1)概念描述

 

2、测验

(1)单个商品的矩阵因子分解:个性化

(2)特征矩阵因子分解:个性化、获取更多信息(比如时间段等)