每天五分钟机器学习:快速求解协同过滤算法的最优解

每天五分钟机器学习:快速求解协同过滤算法的最优解
2019年08月23日 10:40 比卡丘数码世界

本文重点

上一节中我们学习了协同过滤算法的损失函数,本节课程我们将学习如何求解这个损失函数的最小值。

回顾

我们前面学习的内容是:如果获取到表示电影的特征,那么就可以获取到用户的参数θ。如果给你用户的参数数据θ,你可以获取到电影的特征。本节课我们将使用这些概念,并且将他们合并成协同过滤算法(CFA)。

给定x估计θ

给定θ估计x

现在我们将上面的两个优化目标结合成一个新的目标函数:

新的目标函数

同时求参数θ和x

以上就是新的目标函数,假设x为常数,并关于θ优化的话,你其实就是在计算上面的第一个式子(正则化项x为常数),反过来如果把θ作为常量,然后关于x求J的最小值的话,你其实就是在计算上面的第二个式子(正则化项θ为常数)。

{!-- PGC_COLUMN --}

有了这个新的优化目标,我们可以将这两种参数同时化简,注意在化简得时候并没有x0=1,原因就是我们没有必要固定一个这个特征,因为特征也是我们学习得到的,所以如果算法认为有必要x0=1的话,那么算法会自己学习到一个特征x0=1,没有必要我们自己固定有这个特征。

现在我们来最小化这个优化目标:首先我们会把x和θ初始化小的随机值,这有点类似神经网络的训练,我们也可以用将所有神经网络的参数用最小的随机数值来初始化。

然后我们使用梯度下降算法或者高级优化算法把这个代价函数最小化,梯度下降算法为:

nu为用户总数,nm为样本总数

梯度下降完成之后,所有电影的特征和所有用户的参数θ就可以获取到了,这样就可以对用户未打分的电影进行分数预测,如果分值高的话就可以推荐给用户了。

或者通过判断两个电影之间的欧式距离,来判断两个电影之间的相似程度,以此来推荐给用户。如果一位用户正在观看电影 (),我们可以寻找另一部电影(),依据两部电影的特征向量之间的距离∥() ? ()∥的大小来进行推荐。

快速求解协同过滤算法的最优解16.4

财经自媒体联盟

新浪首页 语音播报 相关新闻 返回顶部