|
Project Information
Featured
|
DescriptionA Matlab implementation of the Mixed Membership Matrix Factorization (M3F) framework as proposed in Mackey et al. (2010). This contains the code used to generate the results in the paper, but does not contain the datasets. This project is published under the MIT license, which allows free usage and redistribution of the code for any purpose so long as the license and copyright statement remains in the code. If you use this code in your own research, we'd appreciate it if you'd mention it and cite us in your writeup, so that others know the that the implementation is publicly available as well. DocumentationPlease see usage instructions in the code for documentation. Installation- Get the source code. We recommend checking out the latest version of the code from the SVN repository. Alternatively, you can download a bundle of the original version of the code as used in the paper.
- Ensure dependencies are satisfied. This code requires the GNU Scientific Library and the Tom Minka's Lightspeed Toolbox to be installed on your system. It has been tested successfully with UNIX MATLAB versions 2007b (64-bit), 2008a (64-bit), and 2010a (32-bit); however it requires revision 1.4.4.7 of wishrnd.m, which is only included in 2008a and more recent versions. It has not been tested on Windows and OSX platforms.
- Add the source to your MATLAB path. Make sure to add both the m3f and m3f/mex directories.
- Compile the MEX code. Go to the place where you installed the m3f source and run make_mex. Hopefully this will work out of the box. If it fails, you may be running on a system we haven't tested with, or be missing some dependencies...good luck.
- LINUX+OLDER MATLAB ONLY: Set LD_PRELOAD variable. If you're running an older MATLAB version (e.g., anything but the 2010a we tested), prior to starting MATLAB, you may need to set the environment variable LD_PRELOAD to point to libgomp.so on your system, which contains the calls for the OpenMP parallelism library that the code depends on. Otherwise MATLAB will link to its own OpenMP libraries (sometimes called libguide.so) and may crash horribly when you try to run the code. For most distributions this requires a command like export LD_PRELOAD=/usr/lib/libgomp.so.1 before running MATLAB.
- Download test dataset and run demo. Make sure you have the MovieLens100K dataset in the folder m3f/testing/movielens100k. Go to the m3f/testing folder and run testm3f; it will load the MovieLens 100K dataset and run a M3F-TIB and M3F-TIF model for a fixed number of rounds of Gibbs sampling.
- See script files themselves for usage information and further instruction.
For more detailsPlease see the paper for more details about the algorithm: Mixed Membership Matrix Factorization. Lester Mackey, David Weiss, and Michael I. Jordan. International Conference on Machine Learning (ICML), June 2010.
|