Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>The problem you are trying to solve is called "collaborative filtering". </p> <h3>Neural Networks</h3> <p>One state-of-the-art neural network method is <em>Deep Belief Networks</em> and <em>Restricted Boltzman Machines</em>. For a fast python implementation for a GPU (CUDA) see <a href="http://peekaboo-vision.blogspot.com/2010/11/restricted-boltzmann-machine-on-cuda.html" rel="nofollow noreferrer">here</a>. Another option is <a href="http://pybrain.org/pages/features" rel="nofollow noreferrer">PyBrain</a>.</p> <p>Academic papers on your specific problem:</p> <ul> <li><p>This is probably the state-of-the-art of neural networks and collaborative filtering (of movies): </p> <blockquote> <p>Salakhutdinov, R., Mnih, A. Hinton, G, Restricted Boltzman Machines for Collaborative Filtering, To appear in Proceedings of the 24th International Conference on Machine Learning 2007. <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.94.5922&amp;rep=rep1&amp;type=pdf" rel="nofollow noreferrer">PDF</a></p> </blockquote></li> <li><p>A Hopfield network implemented in Python:</p> <blockquote> <p>Huang, Z. and Chen, H. and Zeng, D. Applying associative retrieval techniques to alleviate the sparsity problem in collaborative filtering. ACM Transactions on Information Systems (TOIS), 22, 1,116--142, 2004, ACM. <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.3.1590&amp;rep=rep1&amp;type=pdf" rel="nofollow noreferrer">PDF</a></p> </blockquote></li> <li><p>A thesis on collaborative filtering with Restricted Boltzman Machines (they say Python is not practical for the job):</p> <blockquote> <p>G. Louppe. Collaborative filtering: Scalable approaches using restricted Boltzmann machines. Master's thesis, Universite de Liege, 2010.<br> <a href="http://orbi.ulg.ac.be/bitstream/2268/74400/3/glouppe10-msc-thesis.pdf" rel="nofollow noreferrer">PDF</a></p> </blockquote></li> </ul> <p>Neural networks are not currently the state-of-the-art in collaborative filtering. And they are not the simplest, wide-spread solutions. Regarding your comment about the reason for using NNs being having too little data, neural networks don't have an inherent advantage/disadvantage in that case. Therefore, you might want to consider simpler Machine Learning approaches. </p> <h3>Other Machine Learning Techniques</h3> <p>The best methods today mix <em>k-Nearest Neighbors</em> and <em>Matrix Factorization</em>. </p> <p>If you are locked on Python, take a look at <a href="http://code.google.com/p/pysuggest/" rel="nofollow noreferrer">pysuggest</a> (a Python wrapper for the SUGGEST recommendation engine) and <a href="http://code.google.com/p/pyrsvd/" rel="nofollow noreferrer">PyRSVD</a> (primarily aimed at applications in collaborative filtering, in particular the Netflix competition). </p> <p>If you are open to try other open source technologies look at: <a href="https://stackoverflow.com/questions/659599/open-source-collaborative-filtering-frameworks">Open Source collaborative filtering frameworks</a> and <a href="http://www.infoanarchy.org/en/Collaborative_Filtering" rel="nofollow noreferrer">http://www.infoanarchy.org/en/Collaborative_Filtering</a>.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload