我们从不同电影的用户评分矩阵开始,其中一些元素未知,即用户对尚未观看的电影的评分。我们需要填补这个空白。所以
- 在事先不知道所有元素的情况下,如何分解或分解矩阵。
- 在你以某种方式分解它之后,你是否只是将矩阵相乘以重新创建原始矩阵,但现在填充了缺失的项目?
- 你怎么知道选择哪种分解方法,如非负、奇异值、特征,而不需要过多的数学?
我们从不同电影的用户评分矩阵开始,其中一些元素未知,即用户对尚未观看的电影的评分。我们需要填补这个空白。所以
回答您的问题
你只是乘法吗?是的。这是计算的本质。对于每个用户和产品,乘法会给你评分或分数。按分数排序,并选择您为每个用户推荐的索引。它还允许您现在存储比原始矩阵小得多的矩阵。
因式分解的选择也将由应用决定。如果您的应用程序只有正评级,那么最好使用非负矩阵分解。你可以在不知道实现的情况下开始使用矩阵分解方法,只要你了解整体想法(以及使用它的陷阱)。
进一步的评论
有点令人困惑的是,您从一个包含许多缺失条目(看不见的项目)的矩阵开始,通过分解近似矩阵并期望得到非缺失条目(这有助于进行预测)。如果任务是近似原始条目,那么建议将不是很好,因为您可以在近似中丢失/零条目,并且仍然在近似任务中获得最低错误。这个想法:算法中施加的正则化(上面的第 1 点)确保过滤原始数据中的噪声并且只检测到模式。但这个想法也有不少批评者。本文的引言部分,作者 Stefen Rendle对简单的矩阵分解方法中发生的事情以及可能出现的问题进行了可读的介绍。该论文还用更好的优化标准重新制定了任务。您还可以阅读Simon Funk 的这篇文章,它以可读的语言(和代码)解释了将矩阵分解应用于推荐的机制。