I don't think it's necessarily slow; this is how item-based recommenders work. The only thing stopping you from using Mahout directly is that I don't think there's an easy way to say "recommend to this collection of items". But that's what is happening inside when you recommend for a user.
You can just roll your own version of it. Yes you are computing similarity for k carted items by all N items, but is N so large? hundreds of thousands of products? this is still likely pretty fast even if the similarity is over millions of carts. Some smart precomputation and caching goes a long way too. On Thu, Feb 14, 2013 at 7:10 PM, Pat Ferrel <pat.fer...@gmail.com> wrote: > Yes, one time tested way to do this is the "apriori" algo which looks at > frequent item sets and creates rules. > > I was looking for a shortcut using a recommender, which would be super > easy to try. The rule builder is a little harder to implement but we can > also test precision on that and compare the two. > > The recommender method below should be reasonable AFAICT except for the > method(s) of retrieving recs, which seem likely to be slow. > > On Feb 14, 2013, at 9:45 AM, Sean Owen <sro...@gmail.com> wrote: > > This sounds like a job for frequent item set mining, which is kind of a > special case of the ideas you've mentioned here. Given N items in a cart, > which next item most frequently occurs in a purchased cart? > > > On Thu, Feb 14, 2013 at 6:30 PM, Pat Ferrel <pat.fer...@gmail.com> wrote: > > > I thought you might say that but we don't have the add-to-cart action. We > > have to calculate cart purchases by matching cart IDs or session IDs. So > we > > only have cart purchases with items. > > > > If we had the add-to-cart and the purchase we could use your cross-action > > method for getting recs by training only on those two actions. > > > > Still without the add-to-cart the method below should work, right? The > > main problem being finding a similar cart in the training set quickly. > Are > > there other problems? > > > > On Feb 14, 2013, at 9:19 AM, Ted Dunning <ted.dunn...@gmail.com> wrote: > > > > I think that this is an excellent use case for cross recommendation from > > cart contents (items) to cart purchases (items). The cross aspect is > that > > the recommendation is from two different kinds of actions, not two kinds > of > > things. The first action is insertion into a cart and the second is > > purchase of an item. > > > > On Thu, Feb 14, 2013 at 9:53 AM, Pat Ferrel <pat.fer...@gmail.com> > wrote: > > > >> There are several methods for recommending things given a shopping cart > >> contents. At the risk of using the same tool for every problem I was > >> thinking about a recommender's use here. > >> > >> I'd do something like train on shopping cart purchases so row = cartID, > >> column = itemID. > >> Given cart contents I could find the most similar cart in the training > > set > >> by using a similarity measure then get recs for this closest matched > > cart. > >> > >> The search for similar carts may be slow if I have to check for pairwise > >> similarity so I could cluster and find the best cluster then search it > > for > >> the best cart. I could create a decision tree on all trained carts and > > walk > >> as far as I can down the tree to find the cart with the most > > cooccurrences. > >> There may be other cooccurrence based methods in mahout??? With the id > of > >> the cart I can then get recs from the training set. I could also fold-in > >> the new cart contents to the training set and ask for recs based on it > >> (this seems like it would take a long time to compute). This last would > >> also pollute the trained matrix with partial carts over time. > >> > >> This seems like another place where Lucene might help but are there > other > >> mahout methods to look at before I diving into Lucene? > > > > > >