mirror of
https://github.com/apachecn/ailearning.git
synced 2026-05-10 00:02:09 +08:00
更新完SVD简化的数据
This commit is contained in:
@@ -21,14 +21,14 @@
|
||||
> 推荐引擎
|
||||
|
||||
1. 利用SVD从数据中构建一个主题空间。
|
||||
2. 再在该空间下计算其相似度。
|
||||
2. 再在该空间下计算其相似度。(从高维-低维空间的转化,在低维空间来计算相似度,SVD提升了推荐引擎的效率。)
|
||||
|
||||
* 
|
||||
* 上图右边标注的为一组共同特征,表示美式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)冷启动问题,解决方案就是将推荐看成是搜索问题,通过各种标签/属性特征进行`基于内容的推荐`。
|
||||
|
||||
Reference in New Issue
Block a user