
最近晚上在入睡前,总会看一会儿今日头条的视频节目,不知不觉的就半个小时过去了,因为今日头条中节目都是我爱看的。现在视频 app 之所以这么火,多半是其背后的推荐系统的原因。今天就给大家分享一个学过的推荐矩阵的教程。上图是视频网站的用户和提供电源资源。

一般都是通过用户评分来猜测用户的喜好,这里做一个表,表的列是电影而行是用户。

这里做个小游戏,有三个表,说明一下吧,列代表电影行表示用户中间的值表示该用户对电影的打分,通过打分来表示用户对电影喜爱程度。猜一猜哪张表是现实中得出的,那些表是假数据呢?

一目了然假的。

看上去似乎还不错,看不出来什么问题,这张表记录间没有什么相似度,也没有什么关系。这也脱离了真实。

虽然为了讲解数据有点太理想,不过真实世界就是这样的

我们可以注意到第一行的用户和第三行的用户的对电影打分完全相同,我们就可以将这两个用户归结为同一个用户。


通常我们从电影方面看一看,也发现得到同样评分的两部电影。

那么我们可以说这两部电影相同

我们再回到行,这里大家注意到了吧,第二行和第三行对每部电影对评分和为第四行对每部电影的评分和。


如果 B 喜好动作片而 C 喜欢喜剧,那么我们就知道 D 既喜欢动作片又喜欢喜剧。

我们再来看一看列,M5 评分是 M2 和 M3 评分的平均值。这又是什么原因呢?

M2 是飓风而 M3 是大白鲨,而 M5 是飓风大白鲨,所以才有这样关系。这里列举实例有些理想,之所以用简单理想的例子来说明是便于让大家明白,我们学习需要从简单开始,做项目也一样。


我们推荐矩阵,的目的就是为猜出用户喜欢电影的程度。

太简单了,我就不废话,要是连这个都看不出,就别学机器学习了。


这个也不说了,太简单了是不?


我们可以为电影打上标签,标签可以任意的。


由于 Ana 不喜欢动作所以她的动作评分无效可以忽略 1 + 3 = 3


因为 Betty 不喜欢喜剧,所以她的喜剧评分无效,评分 3 + 1 =3

Dana 既喜欢喜剧有喜欢动作,所以他评分都有效 1 + 3 = 4
网友评论