Java Mahout中FileItemSimilarity的数据模型使用

Java Mahout中FileItemSimilarity的数据模型使用,java,mahout,Java,Mahout,我正在构建一个推荐程序,其中实际的相似度计算是通过ItemSimilarityJob完成的,然后通过FileItemSimilarity将其加载到非分布式推荐程序中 到目前为止,所有这些都有效(2),但有一件事我有点困惑 在实例化推荐程序(GenericItemBasedRecommiter)时,我必须传递一个数据模型——在我的例子中是FileDataModel,但由于相似性计算已经发生,我真的不知道应该传递到模型中的数据是什么 显然,该模型用于确定最大和最小偏好值以及项目和用户ID。关于用户,

我正在构建一个推荐程序,其中实际的相似度计算是通过ItemSimilarityJob完成的,然后通过FileItemSimilarity将其加载到非分布式推荐程序中

到目前为止,所有这些都有效(2),但有一件事我有点困惑

在实例化推荐程序(GenericItemBasedRecommiter)时,我必须传递一个数据模型——在我的例子中是FileDataModel,但由于相似性计算已经发生,我真的不知道应该传递到模型中的数据是什么

显然,该模型用于确定最大和最小偏好值以及项目和用户ID。关于用户,我计划无论如何只提供匿名的“个人资料”——那么,传递虚假数据可以吗

这是如何支持工作的——Mahout示例(1)和MiA书籍没有给出任何答案,但都指出预计算是一种方法:(


(1) 我正在运行Mahout 0.7,但也已经查看了后备箱


(2) 当然,我必须自己将生成的相似性矩阵转换成文本格式。

你应该传递给相似性计算的相同的
数据模型。推荐人的输出当然是相似性的函数,但当然也是原始数据!这就是为什么它是一个输入


理论上,你可以根据不同的
数据模型
构建相似性,而不是你实际提出建议的数据。这是可能的,在某些情况下可能有意义,但不正常。

因此,预先计算相似性,然后“仅”减少了我的推荐人的启动时间,但不会帮助我获得针对大量数据的推荐?不确定你的意思,如果你使用基于相似度的推荐人,你会计算相似度作为任何推荐的一部分。无论你是预计算还是什么是正交问题。正如我所写的……我确实使用了它emSimilarityJob“准备”相似性,我喜欢使用推荐程序主要为匿名用户提供推荐(然后应该针对实时请求运行,而不是作为预处理步骤)-因此,我希望避免所有数据都必须再次加载到数据模型中…通常,用户必须在
数据模型
中提供给
推荐人
,以便为用户提供建议。您提供给
项相似性
的实际上是分开的,尽管通常仍然是相同的数据。如果想要进行真正的匿名记录,实际上您可能需要一个最相似的items方法,或者,看看
PlusAnonymousUser*
classes/hacks。但是,同样,您需要将主要数据提供给
推荐者
,并提供给相似性度量。