机器学习(五):推荐系统

推荐系统主要用于生活中相关喜好的推荐。例如在购物的过程中,用户买了某种商品,那么系统会根据用户购买的商品推荐相关的其他类型商品,从而促进购买量(其实就是淘宝推荐= =)

 

0x01 推荐系统理论

以电影为例,用户对于不同电影的评价如下图所示。

机器学习(五):推荐系统_第1张图片

 每个电影拥有两个特征,分别是爱情程度以及动作程度。分别代表该电影所包含的爱情成分大小以及动作成分大小。根据用户对于电影的评分,可以看出Alice和Bob对于爱情电影更为偏好,而其他两人对动作电影更喜欢。

根据以上的评价可以对其进行预测,Alice对于Cute电影的评价应该会很高,Dave对于Swords的评价也会很高。

以上就是推荐系统的理念。我们可以通过线性回归实现以上的算法。

机器学习(五):推荐系统_第2张图片

其中,θj为每个用户j的喜好,nu为用户的数量。y(i,j)为实际用户对于电影的打分。因此,为了判断每个用户的喜好θ,要最小化代价函数J(θ)。

以上就是基于内容的推荐系统。

 

0x02 协同过滤算法

有时我们并不能对每一部电影都进行准确的分类,准确判断其爱情成分到底有多少。因此就用到了协同过滤算法。协同过滤算法通过假定θ,即在已知用户的喜好的前提下,来推导每个电影的类型。

假设用户a喜欢爱情电影不喜欢动作电影,而他对x电影给出了很高的评价对y电影给出了低评分,那么就可以判断x电影为爱情电影,y电影为动作电影。

协同过滤算法的代价函数如下

可以看出区别在于是对电影分别求和而不是用户。

 

0x03 综合协同过滤与内容推荐

由于协同过滤与内容推荐有着几乎相同的代价函数,因此我们可以将其进行融合,如下:

只需要同时最小化x以及θ即可。

 

0x04 相关推荐实现

在得到用户看的当前电影的xi后,只需要计算最小的 || x - xi || 即可,即距离当前电影最近的x。

 

0x05 均值归一化

当出现新的用户时,新用户没有对任何的电影进行打分,即所有的评分均是? 此时当系统对该用户进行最小化时,会将该用户对所有电影的评分全部置0。这对于给该用户推荐电影没有帮助。因此要使用均值归一化算法。

均值归一化算法即通过计算所有用户对于每个电影的评分的平均值ui,然后各个评分分别减去对应的ui,来代替原有的评分。过程如下所示

机器学习(五):推荐系统_第3张图片

Y为用户评价矩阵,u为均值。

在计算预测时,应再把均值加回来,如下

机器学习(五):推荐系统_第4张图片

通过这种方式,会对新用户的预测为每个电影的均值。 

你可能感兴趣的:(机器学习)