title: Is a graph database (Neo4j, for example) a feasible solution for a collaborative filtering (CF) recommender?
body: <p>My recommender is intended to a site news, to recommend news, videos, and audios to the users.</p>
  
  <p>The characteristics of the website in production are the following:
  The average traffic durign a day is:</p>
  
  <ul>
  <li>14.000.000 viewd pages</li>
  <li>2.000.000 unique visitors</li>
  <li>¿¿??? concurrent users</li>
  </ul>
  
  <p>The current amount of assets is:</p>
  
  <ul>
  <li>Videos: 500.000</li>
  <li>Audios: 400.000</li>
  <li>News: 200.000</li>
  </ul>
  
  <p>The desired characteristics of the recommender are the following:</p>
  
  <ul>
  <li>Memory-based neighbourhood-based CF: no model-based (no training, no matrix, etc.)</li>
  <li>Near realtime response time: when a recommendation request for a user arrives, the system
  allways must response in milliseconds.</li>
  <li>Near realtime "recalculations": when an "asset viewed" arrives to the system, that
  information must be taken into account "immediately" for all user recommendations.</li>
  <li>To calculate a user recommendation, it is taken into account:
  
  <ul>
  <li>The last (1 hour) viewed assets of the user.</li>
  <li>All the historical (from the beginning of recording statistics to now) visions of the other users.</li>
  </ul></li>
  </ul>
  
  <p>How would be comparatively the computation resouces needed for a graph based solution
  with the needed for a Spark ALS (<a href="http://spark.apache.org/docs/latest/mllib-collaborative-filtering.html" rel="nofollow">http://spark.apache.org/docs/latest/mllib-collaborative-filtering.html</a>)
  solution? </p>
  
  <p>Anybody have reliable information about websites with that workload that use that kind
  of recommender?</p>