Thanks Sebastian.

This is the code I used for Mahout-0.3 and Mahout-0.5:

       int N = 1000;
       long totalTime = 0L;
       int n = 0;
       Recommender rec = null;
       final DataModel train = new FileDataModel(new File(trainFile));
       ItemSimilarity sim = new PearsonCorrelationSimilarity(train);
       sim = new CachingItemSimilarity(sim, train);
       rec = new GenericItemBasedRecommender(train, sim);

       LongPrimitiveIterator users = train.getUserIDs();
       while (users.hasNext()) {
           long u = users.nextLong();
           n++;
           long time = System.currentTimeMillis();
           rec.recommend(u, N);
           time = System.currentTimeMillis() - time;
           totalTime += time;
       }
System.out.println("Average time - using cache " + strategy + " (ms): " + (1.0 * totalTime / n));

In Mahout-0.3, the average time per user was 310.99 ms, and for 0.5 it was 649.55 ms.

As I said in my previous mail, here I was only concerned on measuring the time performance of recommenders.

Thanks,
Alejandro

Sebastian Schelter escribió:
Hi Alejandro,

you have to provide a detailed description of your benchmark.

There is no such thing is "the efficiency" of a recommender. Mahout
offers a wide variety of implementations and components that can be
glued together to form a recommender. There are a lot of knobs to adjust
that offer trade-offs between execution time, scalability, quality and
recency.

--sebastian


On 15.12.2011 09:30, Alejandro Bellogin Kouki wrote:
Hi all,

some months ago I performed some efficiency comparisons between the
execution times of one implementation of mine and user- and item-based
CF recommenders in Mahout. By that time, I was using Mahout-0.3 and I
obtained some decent values, taking into account that I was measuring
the average recommendation time per user (that is, how long it took to
execute the method 'recommend(u, N)').

Yesterday, I decided to make the same tests with the latest stable
version (Mahout-0.5), and, to my suprise, the execution times in the
latest implementation have been multiplied by a factor of 2.

Do you have any idea of why is that happening? Is it documented
anywhere? I have specific numbers and code in case you want to check
them out.

I want to emphasize that I am measuring how much time the recommender
spends on generating a ranking, and, probably, if you have changed how
the plausible items to be recommended for a user are obtained, then this
change may have caused this situation.

Thank you in advance.

Best regards,
Alejandro




--
 Alejandro Bellogin Kouki
 http://rincon.uam.es/dir?cw=435275268554687

Reply via email to