On Sat, Jan 30, 2010 at 12:40 AM, Sean Owen <[email protected]> wrote:
> On Sat, Jan 30, 2010 at 2:34 AM, Vinicius Carvalho > <[email protected]> wrote: > > I'm trying the 5.1.10 the latest one available at maven repositories, > > running it right now, since it takes a while, I'll inform of the results > > OK but this would be something you can check in your table right now. > No columns should be nullable, or have nulls. If they do, that's the > problem. > > Checked the DB there's no null columns. Also, the table was built using the sample CREATE TABLE provided at the source code * CREATE TABLE taste_preferences ( * user_id BIGINT NOT NULL, * item_id BIGINT NOT NULL, * preference FLOAT NOT NULL, * PRIMARY KEY (user_id, item_id), * INDEX (user_id), * INDEX (item_id) * ) > > > At first I'm just creating the slopeonerecommender. did not even get to > the > > actual code, all that time is used on the construction of the object > > OK then it's the time spent in building diffs. > > > > You mean for the DiffStorage right? The datamodel would be good to be at > > JDBC right? I'm interested in item2item recommendations. I did this > before > > For both, 10M ratings isn't terribly big. I think you can get it into > memory in 2GB, plus the diffs, if you cap the number of diffs at some > reasonable value. > > Only problem with in memory for datamodel would be volatility I guess. > > using taste by hand by computing the SimilarityMatrix and storing it on > DB. > > (I used as reference the book Collective Intelligence in action) and it > > worked fine. Just the Similarity Matrix took a while to be recalculated > by > > it was a batch job running every hour. After that computing > recomendations > > was just a breeze. > > You mean you are interested in item-based recommenders, or > recommending items to other items? > that would be item based recommenders > > Slope-one wouldn't have anything to do with item-item similarities, it > works a bit differently. yes you could pre-compute similarities and > use them with a custom ItemSimilarity implementation which reads from > a DB table, and use that with GenericItemBasedRecommender. > > You could also do the similarity calculations with something like > PearsonCorrelationSimilarity, and store that in the DB, and proceed > with the above. Again, you'd have to write a little code but pretty > easy. > > Or you could skip the DB altogether and let it compute item-item > similarities on the fly. > I'll try your ideas, and post the results. Thanks for all the help Sean -- 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.
