我有一个包含5千万不同用户和180K不同产品的5000万用户偏好数据集。我目前正在使用布尔数据模型,并且具有基本的基于tanimoto相似性的推荐器。 我正在尝试探索不同的算法以获得更好的建议,并开始使用带有ALSWR因子分解器的SVD。我使用mahout中提供的基本SVD推荐器如下。
DataModel dataModel = new FileDataModel("/FilePath");
ALSWRFactorizer factorizer = new ALSWRFactorizer(dataModel, 50, 0.065, 15);
recommender = new SVDRecommender(dataModel, factorizer);
根据我的基本理解,我相信分解是在线下进行的,它会创建用户功能和项目功能。虽然通过采用用户向量和所有可能的项目向量的点积来计算用户的顶级产品来提供实际请求。
我对这种方法有一些疑问: -
答案 0 :(得分:2)
我想一起回答你的所有问题。
鉴于您的数据大小和实时请求,您应该采取另一种方法。