Yeah, we are considering updating the item similarity matrix a few times a
day only. This is just for the user that has just arrived (altough we are
considering using other techniques for it, like Content-based solutions) I'm
pretty interested in combining strategies as well, such as ensemble methods
using several classifiers.
Following is the stack trace:
org.apache.mahout.cf.taste.common.NoSuchUserException
at
org.apache.mahout.cf.taste.impl.model.GenericDataModel.getPreferencesFromUser(GenericDataModel.java:154)
at
org.apache.mahout.cf.taste.impl.model.GenericDataModel.getPreferenceValue(GenericDataModel.java:186)
at
org.apache.mahout.cf.taste.impl.model.file.FileDataModel.getPreferenceValue(FileDataModel.java:401)
at
org.apache.mahout.cf.taste.impl.recommender.slopeone.MemoryDiffStorage.getRecommendableItemIDs(MemoryDiffStorage.java:206)
at
org.apache.mahout.cf.taste.impl.recommender.slopeone.SlopeOneRecommender.recommend(SlopeOneRecommender.java:106)
at
org.apache.mahout.cf.taste.impl.recommender.AbstractRecommender.recommend(AbstractRecommender.java:52)
at
org.apache.mahout.cf.taste.impl.recommender.CachingRecommender$RecommendationRetriever.get(CachingRecommender.java:190)
at
org.apache.mahout.cf.taste.impl.recommender.CachingRecommender$RecommendationRetriever.get(CachingRecommender.java:177)
at
org.apache.mahout.cf.taste.impl.common.Cache.getAndCacheValue(Cache.java:101)
at org.apache.mahout.cf.taste.impl.common.Cache.get(Cache.java:77)
at
org.apache.mahout.cf.taste.impl.recommender.CachingRecommender.recommend(CachingRecommender.java:114)
at
org.apache.mahout.cf.taste.impl.recommender.CachingRecommender.recommend(CachingRecommender.java:96)
at
br.unibh.recommender.services.test.TasteRecommenderTest.recommendations(TasteRecommenderTest.java:115)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.springframework.test.context.junit4.SpringTestMethod.invoke(SpringTestMethod.java:160)
at
org.springframework.test.context.junit4.SpringMethodRoadie.runTestMethod(SpringMethodRoadie.java:233)
at
org.springframework.test.context.junit4.SpringMethodRoadie$RunBeforesThenTestThenAfters.run(SpringMethodRoadie.java:333)
at
org.springframework.test.context.junit4.SpringMethodRoadie.runWithRepetitions(SpringMethodRoadie.java:217)
at
org.springframework.test.context.junit4.SpringMethodRoadie.runTest(SpringMethodRoadie.java:197)
at
org.springframework.test.context.junit4.SpringMethodRoadie.run(SpringMethodRoadie.java:143)
at
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(SpringJUnit4ClassRunner.java:160)
at
org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
at
org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
at
org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
at
org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
at
org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
at
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:97)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
On Thu, Feb 4, 2010 at 10:21 PM, Sean Owen <[email protected]> wrote:
> On Thu, Feb 4, 2010 at 11:41 PM, Vinicius Carvalho
> <[email protected]> wrote:
> > Hi again. I'm getting a really hard time to use Taste using the Large 10M
> > dataset. Using FileDataModel is taking too long to recompute the
> sim-matrix.
> > I'm assuming a new user has just arrived (not on the user data or item
> data)
>
> Oh yes, I would not try to publish an update file every time a new
> user does something. I figure you might push one big data file once a
> day, and update files once an hour or something.
>
> Using it for every user update was not what's intended -- though the
> last patch I sent should mitigate that a lot.
>
> You did find the right solution --
>
>
>
> > But this is causing an NoSuchUserException at the recommender.
>
> Stack trace?
>
--
The intuitive mind is a sacred gift and the
rational mind is a faithful servant. We have
created a society that honors the servant and
has forgotten the gift.