分解机和矩阵分解之间的区别?

机器算法验证 机器学习 数据挖掘 推荐系统
2022-02-11 02:39:09

我在推荐系统中遇到了因子分解机这个术语。我知道推荐系统的矩阵分解是什么,但从未听说过分解机器。那么有什么区别呢?

3个回答

矩阵分解是一种分解矩阵的方法。它的一项工作是将矩阵分解为两个矩阵,以使它们的乘积与原始矩阵非常匹配。

但是与矩阵分解相比,分解机在本质上是相当通用的。问题表述本身是非常不同的。它被表述为一个线性模型,特征之间的交互作为附加参数。这种特征交互是在它们的潜在空间表示中完成的,而不是它们的普通格式。因此,除了矩阵分解中的特征交互外,它还采用不同特征的线性权重。

因此,与矩阵分解相比,以下是主要区别:

  1. 在推荐的系统中,通常使用矩阵分解,我们不能使用边特征。例如,对于电影推荐系统,我们不能在矩阵分解中使用电影类型、语言等。分解本身必须从现有的交互中学习这些。但是我们可以在分解机器中传递这些信息
  2. 分解机也可用于其他预测任务,例如回归和二元分类。矩阵分解通常不是这种情况

上一个答案中分享的论文是关于 FM 的原始论文。关于 FM 究竟是什么,它也有很好的说明性示例。

编辑:关于可用于分解机器但不能用于矩阵分解的辅助功能的注释:

矩阵分解只是一种协同过滤方法,需要用户参与项目。所以它不适用于所谓的“冷启动”问题。想想在 Netflix 上发布的一部新电影。因为没有人会看到它,所以矩阵分解对它不起作用。但是由于 Netflix 知道类型、演员、导演等,Factorization Machine 可以从第一天就开始为这部电影提供推荐,这对于许多使用推荐系统的网站来说是一个至关重要的组成部分。

只是对 Dileep 答案的一些扩展。

如果涉及的唯一特征是两个分类变量(例如用户和项目),则 FM 等效于矩阵分解模型。但是 FM 可以很容易地应用于两个以上的真正有价值的功能。

矩阵分解是一种不同的分解模型。来自关于 FM 的文章

有许多不同的分解模型,如矩阵分解、并行因子分析或特殊模型,如 SVD++、PITF 或 FPMC。这些模型的缺点是它们不适用于一般的预测任务,而只适用于特殊的输入数据。此外,它们的模型方程和优化算法是针对每个任务单独推导出的。我们表明,FM 可以通过指定输入数据(即特征向量)来模仿这些模型。这使得 FM 即使对于没有分解模型专业知识的用户也很容易适用。

来自 libfm.org:

“分解机 (FM) 是一种通用方法,它允许通过特征工程模拟大多数分解模型。这样,分解机器将特征工程的通用性与分解模型在估计大域分类变量之间的交互作用方面的优越性结合起来。”