吴恩达机器学习笔记58-协同过滤算法(Collaborative Filtering Algorithm)
在之前的基于内容的推荐系统中,对于每一部电影,我们都掌握了可用的特征,使用这
些特征训练出了每一个用户的参数。相反地,如果我们拥有用户的参数,我们可以学习得出
电影的特征。
但是如果我们既没有用户的参数,也没有电影的特征,这两种方法都不可行了。协同过滤算法可以同时学习这两者。
我们的优化目标便改为同时针对𝑥和𝜃进行。
对代价函数求偏导数的结果如下:
注:在协同过滤从算法中,我们通常不使用方差项,如果需要的话,算法会自动学得。
协同过滤算法使用步骤如下:
1. 初始 𝑥(1), 𝑥(1), . . . 𝑥(𝑛𝑚), 𝜃(1), 𝜃(2), . . . , 𝜃(𝑛𝑢)为一些随机小值
2. 使用梯度下降算法最小化代价函数
3. 在训练完算法后,我们预测(𝜃(𝑗))𝑇𝑥(𝑖)为用户 𝑗 给电影 𝑖 的评分
通过这个学习过程获得的特征矩阵包含了有关电影的重要数据,这些数据不总是人能读懂的,但是我们可以用这些数据作为给用户推荐电影的依据。
例如,如果一位用户正在观看电影 𝑥(𝑖),我们可以寻找另一部电影𝑥(𝑗),依据两部电影
的特征向量之间的距离∥𝑥(𝑖) − 𝑥(𝑗)∥的大小来判别。