Hi there, 

I mentioned a problem of using the ItemBasedRecommender. It is so much slower 
then using UserBasedRecommender. 

@Sebastian: You said limiting the precomputation file should work. For example: 
only 50 similarities for an Item.  You also said this feature is not included 
in the precomputation yet.
Although using the MultithreadedBatchItemSimilarities (Mahout 0.9), I saw that 
the Constructor accepts following arguments:

/**
   * @param recommender recommender to use
   * @param similarItemsPerItem number of similar items to compute per item
   */
  public MultithreadedBatchItemSimilarities(ItemBasedRecommender recommender, 
int similarItemsPerItem) {
    this(recommender, similarItemsPerItem, DEFAULT_BATCH_SIZE);
  }

And in fact, if I set 15 as similarItemsPerItem, the csv file contains only 15 
similar items per item. Why do you said that this feature is not implemented 
yet, maybe you meant something else and I
understood something wrong. Therefore I am confused at bit. The problem is, 
also with limited pairs of similar items the user-based approach is much faster:

Using a file with 6040 users and 3706 items:
A UserbasedRecommender with k = 50 takes 331ms.

Itembased takes 1510 ms and with precomputed similarities it takes 836 .. still 
double as slow. Is there no possibility to restrict something like 
„neighborhood size“ in userbased?
I have also tried SamplingCandidateItemsStrategy with e.g 10 on each three 
first arguments .. and also tried using CachingSimilarity decorater, but 
nothing seems to help.

Find a attached java file for this test.

And yea, I am using the GroupLens Movie Data: 1M.

Can the dataset be the fault as Sebastian mentioned before:

>>>>>> In the movielens dataset this is true for almost all pairs of items,
>>>>>> unfortunately. From 3076 items, more than 11 million similarities are
>>>>>> created. A common approach for that (which is not yet implemented in
>>>>>> our
>>>>>> precomputation unfortunately) is to only retain the top-k similar items

Hope of getting some help of u guys.. this is getting very depressing :(

Regards
Najum Ali

Attachment: RecommenderTest.java
Description: Binary data

Am 18.04.2014 um 19:29 schrieb Ted Dunning <[email protected]>:

> Shouldn't, yes.
> 
> But for a toy dataset, it might work out.
> 
> 
> On Fri, Apr 18, 2014 at 10:25 AM, Sebastian Schelter <
> [email protected]> wrote:
> 
>> You can, but you shouldn't :)
>> 
>> On 04/18/2014 07:23 PM, Ted Dunning wrote:
>> 
>>> You can always run Hadoop in a local mode.  Nothing prevents a single node
>>> from being a cluster.  :-)
>>> 
>>> 
>>> On Thu, Apr 17, 2014 at 7:43 AM, Najum Ali <[email protected]>
>>> wrote:
>>> 
>>> Ted,
>>>> 
>>>> Is it also possible to use ItemSimilarityJob in a non-distributed
>>>> environment?
>>>> 
>>>> Am 17.04.2014 um 16:22 schrieb Ted Dunning <[email protected]>:
>>>> 
>>>> Najum,
>>>>> 
>>>>> You should also be able to use the ItemSimilarityJob to compute a
>>>>> limited
>>>>> indicator set.
>>>>> 
>>>>> This is stepping off of the path you have been on, but it would allow
>>>>> you
>>>>> to deploy the recommender via a search engine.
>>>>> 
>>>>> That makes a lot of code simply vanish.  THis is also a well trod
>>>>> production path.
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> On Thu, Apr 17, 2014 at 3:57 AM, Najum Ali <[email protected]>
>>>>> 
>>>> wrote:
>>>> 
>>>>> 
>>>>> @Sebastian
>>>>>> 
>>>>>> wow … you are right. The original csv file is about 21mb and the
>>>>>> corresponding precomputed item-item similarity file is about 260mb!!
>>>>>> And yes, there are wide more than 50 "most similar items“ for an item
>>>>>> ..
>>>>>> 
>>>>>> Trying to restrict this to 50 (or something like that) most similar
>>>>>> 
>>>>> items
>>>> 
>>>>> for an item could do the trick as you said.
>>>>>> Ok I will give it try and reply later.
>>>>>> 
>>>>>> By the way, what´s about the SampingCandidateItemsStrategy or something
>>>>>> like this, by using this Constructor:
>>>>>> *GenericItemBasedRecommender
>>>>>> <
>>>>>> 
>>>>> https://builds.apache.org/job/mahout-quality/javadoc/org/
>>>> apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.
>>>> html#GenericItemBasedRecommender(org.apache.mahout.cf.taste.
>>>> model.DataModel,%20org.apache.mahout.cf.taste.similarity.
>>>> ItemSimilarity,%20org.apache.mahout.cf.taste.recommender.
>>>> CandidateItemsStrategy,%20org.apache.mahout.cf.taste.recommender.
>>>> MostSimilarItemsCandidateItemsStrategy)
>>>> 
>>>>> *
>>>>> 
>>>>>> (DataModel<
>>>>>> 
>>>>> https://builds.apache.org/job/mahout-quality/javadoc/org/
>>>> apache/mahout/cf/taste/model/DataModel.html
>>>> 
>>>>> 
>>>>> dataModel, ItemSimilarity<
>>>>>> 
>>>>> https://builds.apache.org/job/mahout-quality/javadoc/org/
>>>> apache/mahout/cf/taste/similarity/ItemSimilarity.html
>>>> 
>>>>> 
>>>>> similarity, CandidateItemsStrategy<
>>>>>> 
>>>>> https://builds.apache.org/job/mahout-quality/javadoc/org/
>>>> apache/mahout/cf/taste/recommender/CandidateItemsStrategy.html
>>>> 
>>>>> 
>>>>> candidateItemsStrategy,MostSimilarItemsCandidateItemsStrategy<
>>>>>> 
>>>>> https://builds.apache.org/job/mahout-quality/javadoc/org/
>>>> apache/mahout/cf/taste/recommender/MostSimilarItemsCandidateItems
>>>> Strategy.html
>>>> 
>>>>> 
>>>>> mostSimilarItemsCandidateItemsStrategy)
>>>>>> 
>>>>>> 
>>>>>> Am 17.04.2014 um 12:41 schrieb Sebastian Schelter <[email protected]>:
>>>>>> 
>>>>>> Hi Najum,
>>>>>> 
>>>>>> I think I found the problem. Remember: Two items are similar whenever
>>>>>> at
>>>>>> least one user interacted with both of them ("the items co-occur").
>>>>>> 
>>>>>> In the movielens dataset this is true for almost all pairs of items,
>>>>>> unfortunately. From 3076 items, more than 11 million similarities are
>>>>>> created. A common approach for that (which is not yet implemented in
>>>>>> our
>>>>>> precomputation unfortunately) is to only retain the top-k similar items
>>>>>> 
>>>>> per
>>>> 
>>>>> item.
>>>>>> 
>>>>>> A solution would be to take the csv file that is created by the
>>>>>> MultithreadedBatchItemSimilarities and postprocess it so that only the
>>>>>> 
>>>>> 50
>>>> 
>>>>> most similar items per item are retained. That should help with your
>>>>>> problem.
>>>>>> 
>>>>>> Unfortunately, we don't have code for that yet, maybe you want to try
>>>>>> to
>>>>>> write that yourself?
>>>>>> 
>>>>>> Best,
>>>>>> Sebastian
>>>>>> 
>>>>>> PS: The user-based recommender restricts the number of similar users, I
>>>>>> guess thats why it is so fast here.
>>>>>> 
>>>>>> 
>>>>>> On 04/17/2014 12:18 PM, Najum Ali wrote:
>>>>>> 
>>>>>> Ok, here you go:
>>>>>> 
>>>>>> I have created a simple class with main-method (no server and other
>>>>>> 
>>>>> stuff):
>>>> 
>>>>> 
>>>>>> public class RecommenderTest {
>>>>>> public static void main(String[] args) throws IOException,
>>>>>> 
>>>>> TasteException {
>>>> 
>>>>> DataModel dataModel = new FileDataModel(new
>>>>>> 
>>>>>> 
>>>>>> File("/Users/najum/Documents/recommender-console/src/main/
>>>> webapp/resources/preference_csv/1mil.csv"));
>>>> 
>>>>> ItemSimilarity similarity = new LogLikelihoodSimilarity(dataModel);
>>>>>> ItemBasedRecommender recommender = new
>>>>>> GenericItemBasedRecommender(dataModel,
>>>>>> similarity);
>>>>>> 
>>>>>> String pathToPreComputedFile = preComputeSimilarities(recommender,
>>>>>> dataModel.getNumItems());
>>>>>> 
>>>>>> InputStream inputStream = new FileInputStream(new
>>>>>> File(pathToPreComputedFile));
>>>>>> BufferedReader bufferedReader = new BufferedReader(new
>>>>>> InputStreamReader(inputStream));
>>>>>> Collection<GenericItemSimilarity.ItemItemSimilarity> correlations =
>>>>>> 
>>>>>> 
>>>>>> bufferedReader.lines().map(mapToItemItemSimilarity).
>>>> collect(Collectors.toList());
>>>> 
>>>>> ItemSimilarity precomputedSimilarity = new
>>>>>> GenericItemSimilarity(correlations);
>>>>>> ItemBasedRecommender recommenderWithPrecomputation = new
>>>>>> GenericItemBasedRecommender(dataModel, precomputedSimilarity);
>>>>>> 
>>>>>> recommend(recommender);
>>>>>> recommend(recommenderWithPrecomputation);
>>>>>> }
>>>>>> 
>>>>>> private static String preComputeSimilarities(ItemBasedRecommender
>>>>>> recommender,
>>>>>> int simItemsPerItem) throws TasteException {
>>>>>> String pathToAbsolutePath = "";
>>>>>> try {
>>>>>> File resultFile = new File(System.getProperty("java.io.tmpdir"),
>>>>>> "similarities.csv");
>>>>>> if (resultFile.exists()) {
>>>>>> resultFile.delete();
>>>>>> }
>>>>>> BatchItemSimilarities batchJob = new
>>>>>> MultithreadedBatchItemSimilarities(recommender, simItemsPerItem);
>>>>>> int numSimilarities =
>>>>>> 
>>>>>> batchJob.computeItemSimilarities(Runtime.getRuntime().
>>>> availableProcessors(),
>>>> 
>>>>> 1,
>>>>>> new FileSimilarItemsWriter(resultFile));
>>>>>> pathToAbsolutePath = resultFile.getAbsolutePath();
>>>>>> System.out.println("Computed " + numSimilarities + " similarities and
>>>>>> saved them
>>>>>> to " + pathToAbsolutePath);
>>>>>> } catch (IOException e) {
>>>>>> System.out.println("Error while writing pre computed similarities to
>>>>>> file");
>>>>>> }
>>>>>> return pathToAbsolutePath;
>>>>>> }
>>>>>> 
>>>>>> private static void recommend(ItemBasedRecommender recommender) throws
>>>>>> TasteException {
>>>>>> long start = System.nanoTime();
>>>>>> List<RecommendedItem> recommendations = recommender.recommend(1, 10);
>>>>>> long end = System.nanoTime();
>>>>>> System.out.println("Created recommendations in " +
>>>>>> getCalculationTimeInMilliseconds(start, end) + " ms.
>>>>>> Recommendations:" +
>>>>>> recommendations);
>>>>>> }
>>>>>> 
>>>>>> private static double getCalculationTimeInMilliseconds(long start,
>>>>>> long
>>>>>> end) {
>>>>>> double calculationTime = (end - start);
>>>>>> return (calculationTime / 1_000_000);
>>>>>> }
>>>>>> 
>>>>>> 
>>>>>> private static Function<String,
>>>>>> 
>>>>> GenericItemSimilarity.ItemItemSimilarity>
>>>> 
>>>>> mapToItemItemSimilarity = (line) -> {
>>>>>> String[] row = line.split(",");
>>>>>> return new GenericItemSimilarity.ItemItemSimilarity(
>>>>>> Long.parseLong(row[0]), Long.parseLong(row[1]),
>>>>>> Double.parseDouble(row[2]));
>>>>>> };
>>>>>> }
>>>>>> 
>>>>>> And thats the Output-log:
>>>>>> 
>>>>>> 3 [main] INFO org.apache.mahout.cf.taste.impl.model.file.FileDataModel
>>>>>> -
>>>>>> Creating FileDataModel for file
>>>>>> 
>>>>>> 
>>>>>> /Users/najum/Documents/recommender-console/src/main/
>>>> webapp/resources/preference_csv/1mil.csv
>>>> 
>>>>> 63 [main] INFO org.apache.mahout.cf.taste.impl.model.file.FileDataModel
>>>>>> 
>>>>> -
>>>> 
>>>>> Reading file info...
>>>>>> 1207 [main] INFO
>>>>>> 
>>>>> org.apache.mahout.cf.taste.impl.model.file.FileDataModel -
>>>> 
>>>>> Processed 1000000 lines
>>>>>> 1208 [main] INFO
>>>>>> 
>>>>> org.apache.mahout.cf.taste.impl.model.file.FileDataModel
>>>> 
>>>>> - Read
>>>>>> lines: 1000209
>>>>>> 1475 [main] INFO org.apache.mahout.cf.taste.
>>>>>> impl.model.GenericDataModel
>>>>>> 
>>>>> -
>>>> 
>>>>> Processed 6040 users
>>>>>> 1599 [main] INFO
>>>>>> 
>>>>>> 
>>>>>> org.apache.mahout.cf.taste.impl.similarity.precompute.
>>>> MultithreadedBatchItemSimilarities
>>>> 
>>>>> - Queued 3706 items in 38 batches
>>>>>> 10928 [pool-1-thread-8] INFO
>>>>>> 
>>>>>> 
>>>>>> org.apache.mahout.cf.taste.impl.similarity.precompute.
>>>> MultithreadedBatchItemSimilarities
>>>> 
>>>>> - worker 7 processed 5 batches
>>>>>> 10928 [pool-1-thread-8] INFO
>>>>>> 
>>>>>> 
>>>>>> org.apache.mahout.cf.taste.impl.similarity.precompute.
>>>> MultithreadedBatchItemSimilarities
>>>> 
>>>>> - worker 7 processed 5 batches. done.
>>>>>> 10978 [pool-1-thread-5] INFO
>>>>>> 
>>>>>> 
>>>>>> org.apache.mahout.cf.taste.impl.similarity.precompute.
>>>> MultithreadedBatchItemSimilarities
>>>> 
>>>>> - worker 4 processed 4 batches. done.
>>>>>> 11589 [pool-1-thread-4] INFO
>>>>>> 
>>>>>> 
>>>>>> org.apache.mahout.cf.taste.impl.similarity.precompute.
>>>> MultithreadedBatchItemSimilarities
>>>> 
>>>>> - worker 3 processed 5 batches
>>>>>> 11589 [pool-1-thread-4] INFO
>>>>>> 
>>>>>> 
>>>>>> org.apache.mahout.cf.taste.impl.similarity.precompute.
>>>> MultithreadedBatchItemSimilarities
>>>> 
>>>>> - worker 3 processed 5 batches. done.
>>>>>> 11592 [pool-1-thread-6] INFO
>>>>>> 
>>>>>> 
>>>>>> org.apache.mahout.cf.taste.impl.similarity.precompute.
>>>> MultithreadedBatchItemSimilarities
>>>> 
>>>>> - worker 5 processed 5 batches
>>>>>> 11592 [pool-1-thread-6] INFO
>>>>>> 
>>>>>> 
>>>>>> org.apache.mahout.cf.taste.impl.similarity.precompute.
>>>> MultithreadedBatchItemSimilarities
>>>> 
>>>>> - worker 5 processed 5 batches. done.
>>>>>> 11707 [pool-1-thread-7] INFO
>>>>>> 
>>>>>> 
>>>>>> org.apache.mahout.cf.taste.impl.similarity.precompute.
>>>> MultithreadedBatchItemSimilarities
>>>> 
>>>>> - worker 6 processed 5 batches
>>>>>> 11707 [pool-1-thread-7] INFO
>>>>>> 
>>>>>> 
>>>>>> org.apache.mahout.cf.taste.impl.similarity.precompute.
>>>> MultithreadedBatchItemSimilarities
>>>> 
>>>>> - worker 6 processed 5 batches. done.
>>>>>> 11730 [pool-1-thread-3] INFO
>>>>>> 
>>>>>> 
>>>>>> org.apache.mahout.cf.taste.impl.similarity.precompute.
>>>> MultithreadedBatchItemSimilarities
>>>> 
>>>>> - worker 2 processed 4 batches. done.
>>>>>> 11849 [pool-1-thread-1] INFO
>>>>>> 
>>>>>> 
>>>>>> org.apache.mahout.cf.taste.impl.similarity.precompute.
>>>> MultithreadedBatchItemSimilarities
>>>> 
>>>>> - worker 0 processed 5 batches
>>>>>> 11849 [pool-1-thread-1] INFO
>>>>>> 
>>>>>> 
>>>>>> org.apache.mahout.cf.taste.impl.similarity.precompute.
>>>> MultithreadedBatchItemSimilarities
>>>> 
>>>>> - worker 0 processed 5 batches. done.
>>>>>> 11854 [pool-1-thread-2] INFO
>>>>>> 
>>>>>> 
>>>>>> org.apache.mahout.cf.taste.impl.similarity.precompute.
>>>> MultithreadedBatchItemSimilarities
>>>> 
>>>>> - worker 1 processed 5 batches
>>>>>> 11854 [pool-1-thread-2] INFO
>>>>>> 
>>>>>> 
>>>>>> org.apache.mahout.cf.taste.impl.similarity.precompute.
>>>> MultithreadedBatchItemSimilarities
>>>> 
>>>>> - worker 1 processed 5 batches. done.
>>>>>> Computed 9174333 similarities and saved them to
>>>>>> /var/folders/9g/4h38v1tj3ps9j21skc72b56r0000gn/T/similarities.csv
>>>>>> Created recommendations in *1683.613
>>>>>> ms*. Recommendations:[RecommendedItem[item:3890, value:4.6771617],
>>>>>> RecommendedItem[item:3530, value:4.662509], RecommendedItem[item:127,
>>>>>> value:4.660716], RecommendedItem[item:3323, value:4.660716],
>>>>>> RecommendedItem[item:3382, value:4.660716], RecommendedItem[item:3123,
>>>>>> value:4.603366], RecommendedItem[item:3233, value:4.5707765],
>>>>>> RecommendedItem[item:1434, value:4.553473], RecommendedItem[item:989,
>>>>>> value:4.5263577], RecommendedItem[item:2343, value:4.524066]]
>>>>>> Created recommendations in* 985.679
>>>>>> ms.* Recommendations:[RecommendedItem[item:3530, value:5.0],
>>>>>> RecommendedItem[item:3382, value:5.0], RecommendedItem[item:3890,
>>>>>> value:4.6771617], RecommendedItem[item:127, value:4.660716],
>>>>>> RecommendedItem[item:3323, value:4.660716], RecommendedItem[item:3123,
>>>>>> value:4.603366], RecommendedItem[item:3233, value:4.5707765],
>>>>>> RecommendedItem[item:1434, value:4.553473], RecommendedItem[item:989,
>>>>>> value:4.5263577], RecommendedItem[item:2343, value:4.524066]]
>>>>>> 
>>>>>> Again almost same results. Although what I also don´t understand is,
>>>>>> why
>>>>>> am I
>>>>>> getting different RecommendItems?
>>>>>> That really frustrates me…
>>>>>> 
>>>>>> You can find the Java file in the attachment.
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Greetings from Germany,
>>>>>> Najum
>>>>>> 
>>>>>> Am 17.04.2014 um 11:44 schrieb Sebastian Schelter <[email protected]
>>>>>> <mailto:[email protected] <[email protected]>>>:
>>>>>> 
>>>>>> Yes, just to make sure the problem is in the mahout code and not in the
>>>>>> surrounding environment.
>>>>>> 
>>>>>> On 04/17/2014 11:43 AM, Najum Ali wrote:
>>>>>> 
>>>>>> @Sebastian
>>>>>> What do u mean with a standalone recommender? A simple offline java
>>>>>> main
>>>>>> program?
>>>>>> 
>>>>>> Am 17.04.2014 um 11:41 schrieb Sebastian Schelter <[email protected]
>>>>>> <mailto:[email protected] <[email protected]>>>:
>>>>>> 
>>>>>> Could you take the output of the precomputation, feed it into a
>>>>>> 
>>>>> standalone
>>>> 
>>>>> recommender and test it there?
>>>>>> 
>>>>>> 
>>>>>> On 04/17/2014 11:37 AM, Najum Ali wrote:
>>>>>> 
>>>>>> @sebastian
>>>>>> 
>>>>>> Are you sure that the precomputation is done only once and not in every
>>>>>> request?
>>>>>> 
>>>>>> Yes, a @Bean annotated Object is in Spring per default a singleton
>>>>>> instance.
>>>>>> I also just tested it out using a System.out.println()
>>>>>> Here is my log:
>>>>>> 
>>>>>> System.out.println("----> precomputation done!“ is called before
>>>>>> 
>>>>> returning
>>>> 
>>>>> the
>>>>>> GenericItemSimilarity.
>>>>>> 
>>>>>> The first two recommendations are Item-based -> pearson similarity
>>>>>> The thrid and 4th log are also item-based using pre computed similarity
>>>>>> The last log is the userbased recommender using pearson
>>>>>> 
>>>>>> Look at the huge time difference!
>>>>>> 
>>>>>> Am 17.04.2014 um 11:23 schrieb Sebastian Schelter <[email protected]
>>>>>> <mailto:[email protected] <[email protected]>>
>>>>>> <mailto:[email protected] <[email protected]>>>:
>>>>>> 
>>>>>> Najum,
>>>>>> 
>>>>>> this is really strange, feeding an ItemBased Recommender with
>>>>>> 
>>>>> precomputed
>>>> 
>>>>> similarities should give you superfast recommendations.
>>>>>> 
>>>>>> Are you sure that the precomputation is done only once and not in every
>>>>>> request?
>>>>>> 
>>>>>> --sebastian
>>>>>> 
>>>>>> On 04/17/2014 11:17 AM, Najum Ali wrote:
>>>>>> 
>>>>>> Hi guys,
>>>>>> 
>>>>>> I have created a precomputed item-item-similarity collection for a
>>>>>> GenericItemBasedRecommender.
>>>>>> Using the 1M MovieLens data, my item-based recommender is only 40-50%
>>>>>> faster
>>>>>> than without precomputation (like 589.5ms instead 1222.9ms).
>>>>>> But the user-based recommender instead is really fast, it´s like
>>>>>> 24.2ms?
>>>>>> How can
>>>>>> this happen?
>>>>>> 
>>>>>> Here are more details to my Implementation:
>>>>>> 
>>>>>> CSV File: 1M pref, 6040 Users, 3706 Items
>>>>>> 
>>>>>> For my Implementation I´m using screenshots, because having the good
>>>>>> highlighting.
>>>>>> My Recommender runs inside a Webserver (Jetty) using Spring 4 and
>>>>>> 
>>>>> Java8. I
>>>> 
>>>>> receive Recommendations as Webservice (JSON).
>>>>>> 
>>>>>> For DataModel, I´m using FileDataModel.
>>>>>> 
>>>>>> 
>>>>>> This code below creates me a precomputed ItemSimilarity when I start
>>>>>> the
>>>>>> Webserver and the property isItemPreComputationEnabled is set to true:
>>>>>> 
>>>>>> 
>>>>>> For time measuring I´m using AOP. I´m measuring the whole time from
>>>>>> entering my
>>>>>> Controller to sending the response.
>>>>>> based on System.nanoTime(); and getting the diff. It´s the same time
>>>>>> measure for
>>>>>> user based.
>>>>>> 
>>>>>> I haved tried to cache the recommender and the similarity with no big
>>>>>> difference. I also tried to use CandidateItemsStrategy and
>>>>>> MostSimilarItemsCandidateItemsStrategy, but also no performance boost.
>>>>>> 
>>>>>> public RecommenderBuilder createRecommenderBuilder(ItemSimilarity
>>>>>> similarity)
>>>>>> throws TasteException {
>>>>>> final int numberOfUsers = dataModel.getNumUsers();
>>>>>> final int numberOfItems = dataModel.getNumItems();
>>>>>> CandidateItemsStrategy candidateItemsStrategy = new
>>>>>> SamplingCandidateItemsStrategy(numberOfUsers,numberOfItems);
>>>>>> MostSimilarItemsCandidateItemsStrategy mostSimilarStrategy = new
>>>>>> SamplingCandidateItemsStrategy(numberOfUsers,numberOfItems);
>>>>>> return model -> new GenericItemBasedRecommender(model,
>>>>>> similarity,candidateItemsStrategy,mostSimilarStrategy);
>>>>>> }
>>>>>> 
>>>>>> I dont know why item-based is taking so much longer then user-based.
>>>>>> User-based
>>>>>> is like fast as hell. I even tried a DataSet using 100k Prefs, and
>>>>>> 10Million
>>>>>> (Movielens). Everytime the user-based is soo much faster for any
>>>>>> similarity.
>>>>>> 
>>>>>> Hope you anyone can help me to understand this. Maybe I´m doing
>>>>>> 
>>>>> something
>>>> 
>>>>> wrong.
>>>>>> 
>>>>>> Thanks!! :))
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>> 
>>>> 
>>> 
>> 

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to