推荐系统中矩阵分解算法-funkSVD和ALS
矩阵分解funkSVD:该矩阵分解不像是线代中的,他属于伪分解。其主要思想是,用两个m*k和k*n的矩阵代替m*n的矩阵。
因为在推荐系统中,矩阵十分稀疏,分解后的矩阵一般是密集的,且可以通过行列相乘来得到空缺的值。
(其预测的是第u个用户对第i个商品的评分)
其通过机器学习最小化损失函数来得到矩阵,
其学习方式有两种,一种是随机梯度下降,一种是交替最小二乘。
第一种不说,随处可见。第二种是通过
该式子实现的。
我们先随机化一个Q,因为R是那个稀疏矩阵已知,所以能得到P,我们再反过来用PR求Q。直到模型的误差低于一个阈值。
上面的svd是对于评分的算法,还有svd++等对用户,物品做了偏移项。
隐式矩阵分解(最常见)ALS
我们一般的推荐问题不是通过评分推荐,因为评分的产生十分的困难,一般用户没有这个习惯。我们与其预测评分,不如去预测用户行为。如果我们给用户一个页面有十个商品,我们预测到用户会点击哪一个,这不就说明用户喜欢这个。而且基于用户的信息很多。
我们的矩阵由1,0和空缺组成,1表示该用户点击过该商品(即表示用户对它有想法),0表示用户对它没有想法(怎么是没想法呢,我们定义用户知道他却不想了解他。即我们在所有没有点击该商品的用户中抽样,该商品越火热抽取的人越多。因为热门的东西大家应该都知道,而你却没点击他,说明他不感兴趣)
我们要将该矩阵分解。
我们的损失函数是
Cui是置信度,比如我点击10次当时比只点击一次的喜欢置信度高。
对于学习方法,我们使用加权交替最小二乘法
初始化Y,我们计算出x,再通过
计算出y。再反复交替,直到小于阈值。
该算法目前在spark上有实现。且sparkml将其作为唯一的推荐系统算法。
关于选择电脑系统的一个问题?
不建议你用WIN7 因为我2G内存 也觉得不太够 有点紧 打游戏用XP 就好了 如果你4G 内存 上WIN7+游戏 也没问题 +上你CPU 也不太好 所以 继续XP
选择系统问题
当然是装windows7了,vista只是个过渡产品,昙花一现而已,并不好用
下载win7的话当然是版本越新越好,楼主用双系统吧,毕竟现在win7还不是正式版,部分地方还是有兼容性问题和小bug,楼主现在应该用的是xp吧?装个win7体验一下米有问题的.
不知道你要哪个版本的 这个是官方RC版的下载地址 也是微软发布的最新版
记得安装完英文原版以后通过自动更新获取中文语言包哈^_^