前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[吴恩达机器学习笔记]16推荐系统5-6协同过滤算法/低秩矩阵分解/均值归一化

[吴恩达机器学习笔记]16推荐系统5-6协同过滤算法/低秩矩阵分解/均值归一化

作者头像
演化计算与人工智能
发布2020-08-14 15:16:58
8800
发布2020-08-14 15:16:58
举报

参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广

16.5 向量化:低秩矩阵分解 Vectorization_ Low Rank Matrix Factorization

示例

  1. 当给出一件产品时,你能否找到与之相关的其它产品。
  2. 一位用户最近看上一件产品,有没有其它相关的产品,你可以推荐给他

协同过滤算法

  • 我将要做的是:实现一种选择的方法,写出 协同过滤算法 的预测情况
  1. 我们有关于五部电影的数据集,我将要做的是,将这些用户的电影评分,进行分组并存。我们有五部电影,以及四位用户,那么 这个矩阵 Y 就是一个 5 行 4 列的矩阵,它将这些电影的用户评分数据都存在矩阵里:
  1. 使用 协同过滤算法 对参数进行学习,并使用公式
(\theta^{(n_u)})^{T}(x^{(n_m)})

对推荐的结果进行预测,得到一个预测值的矩阵,这个矩阵的预测结果和用户评分数据矩阵 Y 中数据一一对应:

低秩矩阵分解
  1. 你也可以将电影的特征按照样本的顺序 1,2,3...
n_m

按行排列成矩阵 X,将用户的特征按照用户的顺序 1,2,3...

n_u

按行排列成矩阵

\theta

按照

X\theta^T

公式进行计算,也可以得到上述 评分预测矩阵 ,这种方法称为 低秩矩阵分解

电影推荐

  • 经过以上操作,我们会学习到电影的一些特征,也许这些特征不是人所能理解的,但是其真的在某种程度上反映了电影的不同特点,例如有的反映了电影的 爱情度动作度喜剧度 等等
  • 现在既然你已经对特征参数向量进行了学习,那么我们就会有一个 很方便的方法 来度量两部电影之间的相似性。例如说:电影 i 有一个特征向量
x^{(i)}

,你是否能找到一部不同的电影 j,保证两部电影的 特征向量之间的距离

x^{(i)}

x^{(j)}

很小 ,那就能很有力地表明电影 i 和电影 j 在某种程度上有相似,至少在某种意义上,某些人喜欢电影 i,或许更有可能也对电影 j 感兴趣。

||x^{(i)}-x^{(j)}||^2
  • 当用户在看某部电影 i 的时候,如果你想找 5 部与电影非常相似的电影,为了能给用户推荐 5 部新电影,你需要做的是找出电影 j,在这些不同的电影中与我们要找的电影 i 的距离最小的 5 部电影,这样你就能给你的用户推荐部不同的可能喜欢电影了。

16.6 推行工作上的细节:均值归一化 Implementational Detail_ Mean Normalization

示例引入

  • 有一个没有给任何电影评分的用户 Eve,加上之前的四个用户,假设电影的特征数为 n=2,使用改进的 协同过滤算法(即向量为 n 维,没有截距项
\theta_0= 1

) ,想通过 协同过滤算法 预测 Eve 用户的偏好特征

\theta^{(5)}

,如下图所示:

  • 由于 Eve 没有对任何一部电影评过分,所以 r(i,j)=1 的条件不满足,所以整个式子对
\theta^{(5)}

的值有影响的只剩下 正则项

为了使整个式子最小,则会使正则化项尽可能的为 0,所以

\theta^{(5)}

最终的结果是 0 即

\theta^{(5)}=\left[\begin{matrix}0\\0\end{matrix}\right]

,这样对于预测 Eve 用户的偏好特征是没有意义的.所以最后通过

(\theta^{(5)})^{T}x^{(i)}=0

计算 Eve 想要看电影的结果也是没有意义的,因为无论

x^{i}

的值是何值,结果均为 0.

用平均值代替新用户的值

  • 如上分析所示,如果新用户在没有对任何电影进行评分的状况下使用协同过滤算法进行预测,最终 得不到任何有意义的结果 ,此时我们想到,对于新用户,我们可以使用每部电影的评分平均值来代替
  • 首先需要对结果 Y 矩阵进行均值归一化处理,将每一个用户对某一部电影的评分减去所有 用户对该电影评分的平均值:
  • 然后我们利用这个新的 Y 矩阵来训练算法,如果我们要用新训练出的算法来预测评分,则需要将平均值
\mu

重新加回去,即计算

(\theta^{(j)})^{T}x^{(i)}+\mu_i

为最终评分.对于 Eve,虽然

(\theta^{(5)})^{T}x^{(i)}

仍等于 0,但是加上平均值后,我们的新模型会认为她给每部电影的评分都是 该电影的平均分

参考资料

[1]

吴恩达老师课程原地址: https://study.163.com/course/courseMain.htm?courseId=1004570029

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DrawSky 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 16.5 向量化:低秩矩阵分解 Vectorization_ Low Rank Matrix Factorization
    • 示例
      • 协同过滤算法
        • 低秩矩阵分解
      • 电影推荐
      • 16.6 推行工作上的细节:均值归一化 Implementational Detail_ Mean Normalization
        • 示例引入
          • 用平均值代替新用户的值
            • 参考资料
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档