本章内容
- SVD矩阵分解
- 推荐引擎
- 利用SVD提升推荐引擎的性能
餐馆可划分为很多类别,比如美式、中式、日式、牛排馆、素食店,等等。你是否想过这些类别够用吗?或许人们喜欢这些的混合类别,或者类似中式素食店那样的子类别。如何才能知道到底有多少类餐馆呢?我们也许可以问问专家?但是倘若某个专家说应该按照调料分类,而另一个专家则认为应该按照配料分类,那该怎么办呢?忘了专家,我们还是从数据着手吧。我们可以对记录用户关于餐馆观点的数据进行处理,并且从中提取出其背后的因素。
这些因素可能会与餐馆的类别、烹饪时所用的某个特定配料,或其他任意对象一致。然后,我们就可以利用这些因素来估计人们对没有去过的餐馆的看法。
提取这些信息的方法称为奇异值分解(Singular Value Decomposition,SVD)。从生物信息学到金融学等在内的很多应用中,SVD都是提取信息的强大工具。
本章将介绍SVD的概念及其能够进行数据约简的原因。然后,我们将会介绍基于Python的SVD实现以及将数据映射到低维空间的过程。再接下来,我们就将学习推荐引擎的概念和它们的实际运行过程。为了提高SVD的精度,我们将会把其应用到推荐系统中去,该推荐系统将会帮助人们寻找到合适的餐馆。最后,我们讲述一个SVD在图像压缩中的应用例子。