Hi all,
I have a use case for Taste where we should use all available items for
computation of user similarity, but only some items are eligible to be
recommended. The reason is that items expire: goods get discontinued,
for example. The fact that a user bought something now discontinued is
important for finding similar users, but we cannot recommend it. One
way of solving this is using mahout to generate recommendations, and
then post-process it to remove ineligible items. But this can run into
performance issues if the set of ineligible items is large. Also, the
evaluation framework is not designed to handle this kind of a restriction.
I can contribute a patch, but since I am new to the project, I need some
help with the software engineering from the regular contributors. How
would I design the necessary classes? One idea I considered was using
the existing tools for candidate item strategy. This has two
downsides: you can only use one candidate item strategy at a time, so
having an eligible set would make it impossible to have a candidate item
strategy. Also, the evaluator doesn't take the candidate item strategy
into account. So, I suppose I could try writing an
EligibleSetCandidateItemStrategy that takes another
CandidateItemStrategy and applies it as well, and I can add a new
evaluator that takes eligible sets into account. I don't know the
thinking behind the design, so I don't know if this is a good idea or
not. Can we agree on a design before I get started?
Cheers,
Anatoliy
- New feature idea: Eligible Items for recommendations Anatoliy Kats
-