It all makes sense and yes you have understood why.
I am now committing a change along the lines you propose, to at least
allow caching as long as the same Rescorer is being used. Comments
welcome.
On Fri, Oct 31, 2008 at 4:05 PM, Otis Gospodnetic
<[EMAIL PROTECTED]> wrote:
> Hi,
>
> * When I load a (File)DataModel and do NOT use a Rescorer, two first
> recommend call for a user is slow (cca 3 minutes for my dataset/hw
> combination). The subsequent call for the same user is quick. I'm wrapping
> the Recommender in CachingRecommender.
>
> * I just wrote a no-op Rescorer. When I include it in the recommend call,
> *every* call to recommend is equally slow (cca 3 min for me). I imagine
> that's related to this comment in CachingRecommender:
>
>
> public List<RecommendedItem> recommend(Object userID, int howMany,
> Rescorer<Item> rescorer) throws TasteException {
> // Hmm, hard to recommendationCache this since the rescorer may change
> return recommender.recommend(userID, howMany, rescorer);
> }
>
> I wonder if the CachingRecommender could store information about the Rescorer
> that was used for computing recommendations. Then, when it sees that the
> Rescorer is the same, it could still use the cached recommendations. What do
> you think?
>
> Otis
>