Jason Rennie's Matlab Code

MMMF Theory & experiments:

A Brief Introduction: How to run Fast MMMF

Examples of how to use this code for Fast MMMF: weak.m, strong.m. Unfortunately the data file (marlin.mat) is no longer available.

For the MMMF obj/grad functions, conjgrad returns a vector of all of the parameters, U, V and theta. Here's how to extract:

U = reshape(v(1:n*p),n,p);
V = reshape(v(n*p+1:n*p+m*p),m,p);
theta = reshape(v(n*p+m*p+1:n*p+m*p+n*(l-1)),n,l-1);
Here's how to predict:
X = U*V';
Y = m3fSoftmax(X,theta);
Note that p is the number of columns of U and V and hence the maximum rank of X. I.e. if p is smaller than the smaller dimension of X, then it constrains the rank of X. Ideally, p is set to min(n,m), but, in practice, smaller values are used for efficiency. A value of p=100 was used for my thesis experiments.

The Code


If you have AFS, you can simply run the following line from within matlab (or add it to your startup.m file):
addpath '/afs/csail.mit.edu/u/j/jrennie/public_html/matlab'

Other People's Code

Other Code

Last modified: Wed Oct 7 08:48:19 2009