Return-Path: X-Original-To: apmail-mahout-user-archive@www.apache.org Delivered-To: apmail-mahout-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 354C38E34 for ; Sat, 20 Aug 2011 09:31:22 +0000 (UTC) Received: (qmail 88176 invoked by uid 500); 20 Aug 2011 09:31:20 -0000 Delivered-To: apmail-mahout-user-archive@mahout.apache.org Received: (qmail 87689 invoked by uid 500); 20 Aug 2011 09:31:06 -0000 Mailing-List: contact user-help@mahout.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@mahout.apache.org Delivered-To: mailing list user@mahout.apache.org Received: (qmail 87680 invoked by uid 99); 20 Aug 2011 09:31:02 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 20 Aug 2011 09:31:02 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of danny.bickson@gmail.com designates 74.125.82.50 as permitted sender) Received: from [74.125.82.50] (HELO mail-ww0-f50.google.com) (74.125.82.50) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 20 Aug 2011 09:30:54 +0000 Received: by wwi36 with SMTP id 36so2938525wwi.7 for ; Sat, 20 Aug 2011 02:30:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type:content-transfer-encoding; bh=ftpCfN+nOqb63GfE6y/e0yEHmIc5XtZUzXlQ8bSOTvI=; b=gipLeTGgnUgnJ/xocgyPT/Yj+8RZbqewjvtieZ6c0sp+1tCCXEk31vVTiJAh/UlP/M 5Hhb+Dx4n3P1RbLWq4cqpkceKEtZDA5QjCVyz169gDB8ZObHerlQ6xeyO8wWzIu+/COQ qSJQTBCtBjOagxxX4qtW6iS7MU9K8oQ5jHzHI= Received: by 10.216.137.24 with SMTP id x24mr334660wei.114.1313832634063; Sat, 20 Aug 2011 02:30:34 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.186.202 with HTTP; Sat, 20 Aug 2011 02:30:14 -0700 (PDT) In-Reply-To: References: From: Danny Bickson Date: Sat, 20 Aug 2011 12:30:14 +0300 Message-ID: Subject: Re: Recommending items with temporal restrictions To: user@mahout.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org I advise taking a lot in some of the related papers: A) Liang Xiong, Xi Chen, Tzu-Kuo Huang, Jeff Schneider, Jaime G. Carbonell, Temporal Collaborative Filtering with Bayesian Probabilistic Tensor Factorization. In Proceedings of SIAM Data Mining, 2010. B) Yehuda Koren. Collaborative Filtering with Temporal Dynamics. http://research.yahoo.com/files/kdd-fp074-koren.pdf C) Yahoo! Music Recommendations: Modeling Music Ratings with Temporal Dynamics and Item Taxonomy. Gideon Dror, Noam Koenigstein and Yehuda Koren ACM Conference on Recommender Systems (RecSys), 2011 All of the above papers bin ratings into time slots, and have the flexibility to support temporal effects. In other words, the linear model can learn availability of items per time bins and not recommend items that do not exist in a certain time. (I assume that item availability can be mapped to discrete time bins). Hope this helps, DB > > Hi, > My team is working on building a recommendation system to recommend items= for the following use cases:1. Based on User similarity (using org.apache.= mahout.cf.taste.hadoop.item.RecommenderJob as the Base)2. Based on item sim= ilarity > The part where it gets tricky is that we have a temporal restriction on o= ur items (they are valid only for x days). So in the ideal case, the recomm= ender should/can use the rating information on all our historical items, bu= t will never recommend any items that are not temporally available. Based o= n the historical rating information, we need the list of best matches from = the temporally available items. > Apart from ideas that involve any pre/post processing activities to filte= r temporally invalid item recommendations, we were reaching out to find if = somebody out here has ever dealt with a similar requirement and has found a= n easier solution to deal with this edge case. > Any piece of advice, word of caution or streak of brilliance is more than= welcome. > Thanks in advance. > Bala