gpt4 book ai didi

Mahout 推荐器 - 将基于内容的相似性添加到基于项目的推荐器中

转载 作者:行者123 更新时间:2023-12-05 00:31:51 27 4
gpt4 key购买 nike

我有一个非常标准的基于 Mahout 项目的新闻文章推荐器(使用点击数据,所以首选项是 bool 值):

DataModel dataModel = new ReloadFromJDBCDataModel(
new PostgreSQLBooleanPrefJDBCDataModel(localDB, ...)
);
ItemSimilarity itemSimilarity = new TanimotoCoefficientSimilarity(dataModel);
ItemBasedRecommender recommender = new GenericBooleanPrefItemBasedRecommender(dataModel, itemSimilarity);

我正在尝试将基于内容的知识注入(inject)推荐器,这样我就可以最强烈地推荐不仅在正常协同过滤意义上相似的文章,而且在它们共享许多共同术语的意义上也相似。

文章内容相似度(TF-IDF 向量的余弦相似度)使用 Mahout 批处理进行预计算并从数据库中读取。但是,会有很多文章对没有相似度数据。这有两个原因:
  • 文章内容相似度数据的更新频率将低于用户项目偏好数据模型,因此在计算新文章的内容相似度之前会有延迟。
  • 理想情况下,我想将所有内容相似度数据加载到内存中,因此我只会存储每篇文章的前 20 个相似度。

  • 因此,对于给定的一对文章,我有:
  • 项目相似度 (Tanimoto) 0 <= s1 <= 1
  • 内容相似度(余弦)0 <= s2 <=1(可能为空)

  • 在内容相似度不为空的情况下,我想用它的值来加权项目相似度,以便对内容相似的文章进行提升。

    我的问题是:
  • 尝试结合这些措施是否合理,还是我在尝试一些疯狂的事情?
  • 将这两个值组合成一个相似度分数的合理公式是什么?
  • 这最好作为自定义实现吗ItemSimilarity或作为 Rescorer ?
  • 最佳答案

    是的,将它们结合起来是完全合理的。如果两个相似性都在 [0,1] 中,那么最明智的组合就是它们的乘积。这是您使用 ItemSimilarity 注入(inject)的东西,而不是 IDRescorer .

    关于Mahout 推荐器 - 将基于内容的相似性添加到基于项目的推荐器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14206930/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com