【大数据】九、推荐系统(基于内容的推荐、协同过滤、UV分解)

1 效用矩阵

效用矩阵展示了用户对项的喜好程度。
在这里插入图片描述

2 基于内容的推荐
2.1 项模型

项模犁由一些很容易发现的项特征所构成。例如有关电影的特征如下:

  1. 演员集合
  2. 导演
  3. 电影制作年份
  4. 电影的流派
2.2 文档特征发现
  • 从文档中找出能够刻画主题的关键词
  • 具有最高TF.IDF得分的词则作为文档的关键特征

度量两个文档的相似度方法:

  1. Jaccard 相似度
  2. 余弦距离
2.3 基于 Tag 的项特征获取
  • 将包含同样标签的网页推荐给用户
3 协同过滤

利用效用矩阵的行或列来计算用户或项之间的相似度

3.1 相似度计算
  1. Jaccard 相似度
  2. 余弦相似度

在做相似度计算的时候,有时为了方便,可以做一下数据的舍入,减少误差;还可以做评分归一化,方便计算。

3.2 相似对偶性

效用矩阵可以看成有关用户信息的矩阵,也可以看成有关项信息的矩阵,或者同时与两种信息有关的矩阵。这样就至少有两种方法来做推荐。
(1)根据用户相关的信息来推荐:先找到最相似的一些用户,然后基于这些相似用户的推荐决策来进行最后的推荐。
(2)根据相似项的信息来推荐:先找到一些相似的项,然后根据用户对这些项的喜好程度,来对目标项进行打分。
以上找相似用户和相似项的任务,可以采用聚类方法

4 效用矩阵降维处理
4.1 UV分解

理论上,我们可以将任何一个矩阵分解为两个矩阵相乘,例如 5 × 5 的矩阵可以分解为一个 5 × 2 的矩阵 U 和一个 2 × 5 的矩阵 V 相乘,如图所示。
在这里插入图片描述

4.2 均方根误差(RMSE)度量

直接计算矩阵 U 和 V 比较难,我们采用逼近的方法来计算 U 和 V。度量指标采用均方根误差,逼近目标是最小化均方根误差。计算方法为:

(1) 计算M中所有非空元素和UV 中对应元素的差的平方和;
(2) 对上述平方和求平均,即除以M中的非空元素个数;
(3) 对上述结果求算术平方根。

5 UV 分解的增量式计算

计算步骤:
1. 初始化
初始化 U、V 矩阵所有元素为 a / d \sqrt {a/d} a/d

其中:

  • a 是 M 中所有非空元索的平均值
  • d 是 U 或 V 中行列数较小的那个数

2. 最小化均方根误差
按顺序访问 U、V 矩阵中的元素。设该元素值为 x,于是新的 U、V 矩阵如图:
在这里插入图片描述
利用均方根误差公式计算误差,会得到一个二次方程,最小化误差就转换为求抛物线的最小值,于是计算出 x,替换掉原来的值。

3. 迭代
不断从 U、V 矩阵选出元素进行第二步操作

4. 避免过拟合
进行UV分解时一个常见的问题是我们会停止千多个局部极小值中的一个,但是对于其他矩阵效果并不理想。处理过拟合的方法有:

(1) 避免对第一个分最进行如下优化处理,即对一个元索的值按照仅仅当前值到最优值的某个比例移动,比如说一半比例。
(2) 在迭代过程收敛之前很早就停止对切猖你]元素进行再访问。
(3) 进行多次不同的UV分解,并利用每次分解得到的矩阵乘积的平均值来对M中的新元素进行预测。

参考文献:《互联网大规模数据挖掘与分布式处理-第二版》
百度网盘链接
cyyr

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值