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