自动化推荐系统通常用于根据现有的偏好数据为用户提供他们感兴趣的产品建议。文献中通常描述了不同类型的推荐系统。我们这篇文章将突出介绍两个主要类别,然后在第二个类别上进一步扩展:
基于内容的过滤:这些过滤器利用用户偏好来做出新的预测。当用户提供有关其偏好的明确信息时,系统会记录并使用这些信息来自动提出建议。我们日常使用的许多网站和社交媒体都属于此类。
协同过滤:当用户提供的信息不足以提出项目建议时,会发生什么情况?在这些情况下,我们可以使用其他用户提供的具有相似首选项的数据。此类别中的方法利用了一组用户的过去选择历史来得出建议。
在第一种情况下,期望给定的用户建立一个清楚表明偏好的配置文件,在第二种情况下,此信息可能无法完全使用,但是我们希望我们的系统仍能够基于类似的证据提出建议 用户提供。一种称为概率矩阵分解的方法(简称为PMF)通常用于协同过滤,并且将成为本文其余部分讨论的主题。现在让我们深入研究此算法的细节及其直觉。
概率矩阵分解解释
假设我们有一组用户u1,u2,u3…uN,他们对一组项目v1,v2,v3…vM进行评分。然后,我们可以将评分构建为N行和M列的矩阵R,其中N是用户数,M是要评分的项目数。
评分映射。可以将其视为每个用户(行)对多个项目(列)进行评分的矩阵
R矩阵的一个重要特征是它是稀疏的。也就是说,仅其某些单元格具有非空的评级值,而其他单元格则没有。对于给定的用户A,系统应该能够基于他/她的偏好以及类似用户的选择来提供项目推荐。但是,用户A不必明确推荐某项就可以对其进行推荐。具有相似首选项的其他用户将弥补有关用户A的缺失数据。这就是为什么概率矩阵分解属于协同过滤推荐系统的类别。
让我们考虑一下电影推荐系统。想象一下,如果我们被要求观看和评价特定季节中放映的每部电影会是什么样子。那是不切实际的,不是吗?我们根本没有时间这样做。
鉴于并非所有用户都能够对所有可用项目进行评分,我们必须找到一种方法来填补R矩阵的信息空白,并且仍然能够提供相关建议。PMF通过利用类似用户提供的评级来解决此问题。从技术上讲,它利用了贝叶斯学习的一些原理,这些原理也适用于我们缺少或不完整数据的其他情况。
可以通过使用两个低阶矩阵U和V来估计R矩阵,如下所示:
此处,UT是一个NxD矩阵,其中N是注册用户数,D是等级。V是DxM矩阵,其中M是要评估的项目数。因此,NxM评级矩阵R可以通过以下方式近似:
公式1:R表达式
从现在开始,我们的工作是找到UT和V,它们将反过来成为模型的参数。因为U和V是低阶矩阵,所以PMF也被称为低阶矩阵分解问题。此外,U和V矩阵的这一特殊特征使得PMF甚至对于包含数百万条记录的数据集也可扩展。
PMF从贝叶斯学习中得出的直觉用于参数估计。一般而言,我们可以说在贝叶斯推断中,我们的目的是借助贝叶斯规则来找到模型参数的后验分布: