16.3 协同过滤

参考视频: 16 - 3 - Collaborative Filtering (10 min).mkv

在之前的基于内容的推荐系统中,对于每一部电影,我们都掌握了可用的特征,使用这 些特征训练出了每一个用户的参数。相反地,如果我们拥有用户的参数,我们可以学习得出 电影的特征。

但是如果我们既没有用户的参数,也没有电影的特征,这两种方法都不可行了。协同过 滤算法可以同时学习这两者。

我们的优化目标便改为同时针对 x 和 θ 进行。

对代价函数求偏导数的结果如下:

注:在协同过滤从算法中,我们通常不使用方差项,如果需要的话,算法会自动学得。 协同过滤算法使用步骤如下:

  1. 初始 x(1),x(2),...,x(nm),θ(1),θ(2),...,θ(nu)为一些随机小值

  2. 使用梯度下降算法最小化代价函数

  3. 在训练完算法后,我们预测(θ(j))Tx(i)为用户 j 给电影 i 的评分 通过这个学习过程获得的特征矩阵包含了有关电影的重要数据,这些数据不总是人能读

懂的,但是我们可以用这些数据作为给用户推荐电影的依据。 例如,如果一位用户正在观看电影 x(i),我们可以寻找另一部电影 x(j),依据两部电影的

特征向量之间的距离||x(i)-x(j)||的大小。