十六、推荐系统(Recommender systems)

文章目录

  • 1、引入
  • 2、基于内容的推荐
  • 3、协同过滤
    • 3.1 协同过滤算法-Collaborative Filtering optimization
    • 3.2 低秩分解
    • 3.3 均值规范化
  • THE END

1、引入

\qquad 电影评分问题是推荐系统的一个应用之一,根据不同用户对于不同电影的评分来判断用户的电影类型喜好,从而有选择地给用户推荐用户未曾观看过的电影。如下图所示:
十六、推荐系统(Recommender systems)_第1张图片
\qquad 之后首先定义一系列符号,方便后续介绍:令 n u n_u nu表示用户的数量; n m n_m nm表示影片的数量; r ( i , j ) = 1 r(i,j)=1 r(i,j)=1表示用户 j j j对影片 i i i进行了打分; y ( i , j ) y^{(i,j)} y(i,j)表示用户 j j j给影片 i i i打的具体分数值。

2、基于内容的推荐

\qquad 基本思想是对每一个用户 j j j都拟合一个参数 θ j \theta_j θj,之后根据拟合的线性方程来估计用户对于没有观看过影片 i i i的打分 θ j T x ( i ) \theta_j^Tx^{(i)} θjTx(i),其中, x ( i ) x^{(i)} x(i)表示某个影片 i i i的特征向量。
\qquad 下面定义 θ ( j ) \theta^{(j)} θ(j)表示用户 j j j的参数向量;定义 x ( i ) x^{(i)} x(i)表示影片 i i i的特征向量;定义 m ( j ) m^{(j)} m(j)表示用户 j j j打过分的影片的数量;推荐系统下,参数预测的目标函数如下所示:
十六、推荐系统(Recommender systems)_第2张图片

3、协同过滤

\qquad 如下图所示,假如现在知道辽一些用户对于一些电影的评分 ,但是不知道每部电影具体特征向量的值,但是获得了每个用户对于,每个特征的评分向量 θ ( j ) \theta^{(j)} θ(j),则可以反推出每部电影的特征向量的值 x ( i ) x^{(i)} x(i)
十六、推荐系统(Recommender systems)_第3张图片
\qquad 特征向量的值 x ( i ) x^{(i)} x(i)的优化算法和向量 θ ( j ) \theta^{(j)} θ(j)的优化算法类似,只是将自变量变为了 x ( i ) x^{(i)} x(i),如下所示:
十六、推荐系统(Recommender systems)_第4张图片

3.1 协同过滤算法-Collaborative Filtering optimization

\qquad 根据上述介绍,当有电影的特征向量时,可以使用已知信息训练用户的参数向量;当得到用户的参数向量之后,又可以利用一直信息反过来训练电影的特征向量。除了单独对上述两个向量进行训练,协同过滤算法对他们进行同时优化,其目标函数如下所示:
十六、推荐系统(Recommender systems)_第5张图片
\qquad 协同过滤算法的流程如下所示:注意在这里不使用附加特征 x 0 x_0 x0,则也没有参数 θ 0 \theta_0 θ0
十六、推荐系统(Recommender systems)_第6张图片

3.2 低秩分解

\qquad 将协同过滤算法使用矩阵形式表示的方法如下所示,这种矩阵表示方式也称为低秩分解:
十六、推荐系统(Recommender systems)_第7张图片
\qquad 寻找相似电影的方法为:通过计算不同电影之间的特征向量之间的差距来衡量不同电影之间的相似程度: ∣ ∣ x ( i ) − x ( j ) ∣ ∣ ||x^{(i)}-x^{(j)}|| x(i)x(j)

3.3 均值规范化

\qquad 再进行推荐算法之前,首先对用户对电影的评分进行规范化,将某一步电影的每一个评分分别减去所有用户对于这个电影的评分均值;之后再进行推荐算法进行参数 θ \theta θ x x x的学习。最后在进行 θ \theta θ值预测时,最后需要将每一行的均值再重新添加回每一个用户的评分上。这样做可以使得完全缺失信息的用户最后对于每个电影的评分为平均水平,也是make sense的。
十六、推荐系统(Recommender systems)_第8张图片

THE END

你可能感兴趣的:(机器学习,推荐系统)