我正在实现一个基于用户的reccomender,它应该只对项目类别起作用,以避免计算无用的数据。为了更清楚,如果用户在类别页面中,我不想计算所有项目的首选项,而只是计算已审阅同一类别内容的用户。
要做到这一点,我想实现一个自定义UserSimilarity,告诉Mahout如果用户从未审阅过此类别中的项目,则该用户不相似。我可以使用过滤检查来实现一个Rescorer。
我知道在算法开始时使用userSimilarity以避免在整个集合上进行计算,但我不知道它是否在Rescorer上是相同的。 Rescorer在我看来就像一个Post处理器......我只是想避免繁重的计算。我应该使用Rescorer还是自定义UserSimilarity?如何在两者之间做出选择?
答案 0 :(得分:0)
IDRescorer
实际上扮演两个角色,既可以预先过滤要考虑的项目,也可以对其得分进行后处理。这些对应于其方法isFiltered()
和rescore()
。你想要做的就是你对isFiltered()
的所作所为。对于您正在考虑的类别中的任何内容,返回true。