我正在学习推荐系统的矩阵分解,我看到这个术语latent features
出现得太频繁了,但我无法理解它的含义。我知道什么是特征,但我不理解潜在特征的概念。请问可以解释一下吗?或者至少指向我可以阅读它的文件/地方?
潜在特征的含义?
以过度简化为代价,潜在特征是“隐藏”特征,以将它们与观察到的特征区分开来。潜在特征是使用矩阵分解从观察到的特征中计算出来的。一个例子是文本文档分析。从文档中提取的“单词”是特征。如果你分解词的数据,你可以找到“主题”,其中“主题”是一组具有语义相关性的词。低秩矩阵分解将几行(观察到的特征)映射到一组较小的行(潜在特征)。详细地说,该文档可能已经观察到诸如 [sail-boat, schooner, yatch, steamer, Cruiser] 之类的特征(词),这些特征(词)将“分解”为“ship”和“boat”等潜在特征(主题)。
[帆船,大篷车,游艇,轮船,巡洋舰,...] -> [船,船]
基本思想是潜在特征是观察到的特征的语义相关“聚合”。当你有大规模、高维和嘈杂的观察特征时,在潜在特征上构建分类器是有意义的。
这当然是阐明概念的简化描述。您可以阅读有关潜在狄利克雷分配 (LDA) 或概率潜在语义分析 (pLSA) 模型的详细信息,以获得准确的描述。
假设您有(MxN)
稀疏矩阵,其中M
-- 代表给出推荐的用户数,并且N
是推荐的项目数。这矩阵的元素是给定的建议,缺少一些元素,即要预测。
然后可以通过引入K
“潜在因素”来“分解”您的矩阵,这样您就有两个矩阵,而不是一个矩阵: --for (MxK)
users,和--for (KxN)
items,其矩阵乘法产生原始矩阵。
最后,对于您的问题:矩阵分解中的潜在特征是什么?它们是K
用户品味和推荐项目中的未知特征( ),因此当这两个矩阵相乘时,它们会产生已知推荐矩阵。通过所谓的交替最小二乘算法定义特定权重(用户对特定特征的偏好和特定项目中特征的数量),您可以在此处阅读更多信息
另一个例子,考虑用户对电影评分矩阵的情况,如 Netflix 设置。这将是一个难以处理的巨大稀疏矩阵。
请注意,每个用户都会有特定的偏好,例如科幻电影或爱情电影等。因此,我们可以存储单个潜在特征,例如属于不同类型的电影类别,而不是存储所有电影评级:例如:科幻或浪漫,以量化他对每个类别的品味为准。这些被称为潜在特征,它捕捉了他的品味的本质,而不是存储整个电影列表。
当然,这将是一个近似值,但另一方面,您可以存储的东西很少。
这通常使用矩阵分解技术来完成,例如 SVD用户到项目推荐矩阵用户偏好矩阵和项目偏好矩阵,添加的优点是,而不是存储我们有效存储的数字.