Hybrid Recommender System

Legacy UserLegacy User Member Posts: 0 Newbie
edited November 2018 in Help
Hello guys,

i am trying to create a hybrid recommender system.
For the collaborative part i am using the user-item matrix that has rating.
For the content absed part I am going to use attributes related to the items.  With the content based part I will create a pseudo rating matrix.
And then apply item K-nn.

My question is if the attribute based item recommendation combined with  and item k-nn(so again user-item matrix) does the same or not. I assume not, but that it combines the recommendations linearly. I have also downlodaed the hybrid example from the RM book, but I always get an OutOfMemoryException on the Attribute-based operator and therefore cannot really see the outcome of this operator.

Here is the Exception:
SEVERE: Process failed: Java heap space
java.lang.OutOfMemoryError: Java heap space
at com.rapidminer.data.Matrix_f.<init>(Matrix_f.java:69)
at com.rapidminer.data.CorrelationMatrix.<init>(CorrelationMatrix.java:52)
at com.rapidminer.data.BinaryDataCorrelationMatrix.<init>(BinaryDataCorrelationMatrix.java:17)
at com.rapidminer.data.BinaryCosine.<init>(BinaryCosine.java:24)
at com.rapidminer.data.BinaryCosine.Create(BinaryCosine.java:104)
at com.rapidminer.ItemRecommendation.ItemAttributeKnn.Train(ItemAttributeKnn.java:50)
at com.rapidminer.ItemRecommendation.ItemAttributeKnnO.doWork(ItemAttributeKnnO.java:162)
at com.rapidminer.operator.Operator.execute(Operator.java:866)
at com.rapidminer.operator.execution.SimpleUnitExecutor.execute(SimpleUnitExecutor.java:51)
at com.rapidminer.operator.ExecutionUnit.execute(ExecutionUnit.java:711)
at com.rapidminer.operator.OperatorChain.doWork(OperatorChain.java:375)
at com.rapidminer.operator.Operator.execute(Operator.java:866)
at com.rapidminer.Process.run(Process.java:949)
at com.rapidminer.Process.run(Process.java:873)
at com.rapidminer.Process.run(Process.java:832)
at com.rapidminer.Process.run(Process.java:827)
at com.rapidminer.Process.run(Process.java:817)
at com.rapidminer.gui.ProcessThread.run(ProcessThread.java:63)

Answers

  • MariusHelfMariusHelf RapidMiner Certified Expert, Member Posts: 1,869 Unicorn
    Hi Elena,

    that means that RapidMiner needs more memory than it can use.

    Which version of RapidMiner are you using, and how much memory does your system have?

    And of course, as always, it would be useful if you could paste the XML of your process and describe your data - how many attributes, how many examples etc. do you have? (to get the xml of the process just open the XML view, have a look at my other post)

    Best regards,
    Marius
Sign In or Register to comment.