使用NMF(非负矩阵分解)进行产品推荐
使用NMF进行产品推荐
理解NMF及其作为推荐算法的应用
介绍
推荐系统无处不在。Netflix用它们向我们展示我们之前没有看过的电影和电视节目,Pinterest用它们向我们展示我们可能感兴趣的想法和图片,而亚马逊用它们来让我们购买我们之前可能不会购买的产品。这些推荐系统中许多都利用了一种称为协同过滤的过程,该过程是根据其他用户的兴趣和偏好对用户进行推荐和预测。一些流行的协同过滤算法包括奇异值分解(SVD)、K最近邻算法(KNN)和非负矩阵分解(NMF)。
在本文中,我将重点介绍如何在推荐系统中利用NMF。我将首先解释该算法是什么,然后通过一个简短的示例向您演示如何将该方法应用于用户和图书的小样本数据集,以说明该算法的能力,最后我将解释该方法的主要优点以及在准备应用它到您的数据时需要注意的事项。请务必查看本文以获取Python中的逐步NMF示例。
非负矩阵分解
NMF是一种矩阵分解方法,它将非负用户-项目矩阵V分解为两个非负矩阵W和H。这两个新矩阵能够提供关于潜在因素和潜在模式的可解释信息,这些信息在原始数据中可能不可见或明确存在(有关使用NMF在数据中查找模式的更多信息,请参见Himanshu Sharma的文章)。
该算法本身可以被视为一个优化问题,我们寻求最小化
其中k是分解的秩,可以使用均方根误差来找到。
该算法根据下面的方程式迭代地更新W和H,直到达到指定的最大迭代次数或直到||V – WH||小于我们定义的某个容差。以下是其中一个最简单的…