更新完SVD简化的数据

This commit is contained in:
jiangzhonglian
2017-06-19 15:16:15 +08:00
parent 7ce50d1400
commit 4550c909c0

View File

@@ -21,14 +21,14 @@
> 推荐引擎
1. 利用SVD从数据中构建一个主题空间。
2. 再在该空间下计算其相似度。
2. 再在该空间下计算其相似度。(从高维-低维空间的转化在低维空间来计算相似度SVD提升了推荐引擎的效率。)
* ![主题空间案例1](/images/14.SVD/SVD_推荐系统_主题空间案例1.jpg)
* 上图右边标注的为一组共同特征表示美式BBQ 空间;另一组在上图右边未标注的为日式食品 空间。
> 图像压缩
例如:`32*32=1024 => 32*2+2*1+32*2=130`(2*1表示去掉了除对角线的0), 几乎获得了10倍的压缩比。
## SVD矩阵分解
@@ -98,12 +98,20 @@
3. 对这些物品的评分从高到低进行排序返回前N个物品。
* 现在我们来观测代码实现。
## 利用SVD提升推荐引擎的性能
> 补充:基于内容(content-based)的推荐
> 利用SVD提高推荐效果
* 将矩阵降维
1. 通过各种标签来标记菜肴
2. 将这些属性作为相似度计算所需要的数据
3. 这就是:基于内容的推荐。
> 构建推荐引擎面临的挑战
* 问题
* 1在大规模的数据集上SVD分解会降低程序的速度
* 2存在其他很多规模扩展性的挑战性问题比如矩阵的表示方法和计算相似度得分消耗资源。
* 3如何在缺乏数据时给出好的推荐(冷启动问题,解决方案就是将推荐看成是搜索问题)
* 3如何在缺乏数据时给出好的推荐-称为冷启动【简单说:用户不会喜欢一个无效的物品,而用户不喜欢的物品又无效。】
* 建议
* 1在大型系统中SVD分解(可以在程序调入时运行一次)每天运行一次或者其频率更低,并且还要离线运行。
* 2在实际中另一个普遍的做法就是离线计算并保存相似度得分。(物品相似度可能被用户重复的调用)
* 3冷启动问题解决方案就是将推荐看成是搜索问题通过各种标签属性特征进行`基于内容的推荐`