Introduction to Recommender System 之 Module 7 Dimensionality Reduction

这一讲主要讲的是降维,减少推荐时的计算量。主要分为一下几个方面:
降维推荐的原因
SVD的特点
SVD处理的细节
降维的概率模型

降维推荐的原因

评分矩阵无法识别同义词
很多时候我们需要的是concepts,而非words。而通常的查找相似性的方法都是进行word相似性的查找。
在Information Retrieval领域其实早就对上述的问题进行了解决。Latent Semantic Indexing,主要解决的是语义上的相似性判别,而非字面上的相似度判别(concepts, not words)。他们采用的方法就是Singular Value Decompostion。通过SVD,可以创建一组更加紧凑的隐含特征,通过这些隐含特征再进行下一步的相似性判别。

SVD的特点
SVD,奇异值分解,主要的形式如下:

R=UΣVT

其中, R 是用户整体评分矩阵,维度为 m×n m 为用户数量,n为物品数量); U 是用户的特征矩阵,维度为 m×n V 是物品的特征矩阵,维度为 n×n Σ 是评分矩阵的奇异值矩阵,维度为 n×n
将奇异值中比较小的那些去除,仅仅保留k个最大的奇异值,根据奇异值分解的意义可以知道此时 Um×kΣk×kVTn×k R 的一个RMSE意义上的最有近似,此时,就有下式成立:
R=Um×kΣk×kVTn×k

其中, U 维度为 m×k ,第 i 行表示用户i的profile(类似于content based recommender中的profile); V 维度为 n×k ,第 i 行表示物品i的profile; Σ 维度为 k×k Σ(i,i) 表示第 i 个特征所占的权重大小。
此时,用户i对物品j的评分就可以表示为:
$$p(i,j) = \sum _l \mathbf U(i,l) \mathbf \Sigma(l,l)\mathbf V(l,j)
采用SVD之后的推荐系统,拥有如下的特点:
减少了数据量(实际上是去除了各个特征之间的耦合,经过筛选出来的隐含特征之间并不存在耦合):数据少了,计算快了;
但是,也存在如下的挑战:
1 对missing value的处理;
2 SVD的计算量非常大;
3 得到的数据(隐含特征)难以解释(因为这些特征都是隐含的,并不像Content Based中的人工定义的那么直接)。

SVD处理的细节

用户未评分数据的处理

方法1:impute——不管不问,直接算
方法2:pre-normalization(与Collaberative Filtering中的normalization方法一致)
方法3:ignore(使用最优化的方法来进行计算)

更新机制(新用户还有用户的新评分)

这里主要是对用户的profile向量进行重构。主要采用的方法如下(这个过程就叫做fold in):

ua=(Σk×kVTn×kra)T

其中, Σk×kVn×k 与前面的意义相同, ra 是用户 a 的评分向量,ua是用户 a 的特征向量。

k的选取

根据机器学习上面讲的,可以选取前k个奇异值,使得:

ki=1σini=1σi>90%

SVD的训练

由于直接进行矩阵的奇异值分解时间复杂度会相当高,因此采用了机器学习中的Stochastic Gradient Descend方法来进行计算。并且根据该种方法做出了一定的调整,最终的形式如下:

p(i,j)=kU(i,k)V(j,k)

优化目标函数:
12i,j(p(i,j)r(i,j))2+12Ck(iU(i,k)2+jV(j,k)2)

剩下的步骤可以参考任何一本机器学习中关于如何优化目标函数的做法了。

概率矩阵分解(Probabilistic Latent Semantic Analysis)

目标

估计 P(i|u) ——用户 u 选择物品 i 的概率。

方法

P(i|u)=zp(i|z)p(z|u)

其中, z <script type="math/tex" id="MathJax-Element-38">z</script> 相当于是一个隐含变量,连接起了用户和物品。

求解方法

使用EM算法,计算出p(i | z)和p(z | u) (这部分具体怎么做还需要参考[2])

参考文献
[1] Coursera上推荐系统导论第7讲
[2] 第7讲中关于概率潜在语意分析的参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值