Bogdan,

I coded this up and wrote a unit test which appears to identify the correct number and shape of the test models. It does indeed preserve the model sparseness, so I committed it.

The Model Distribution uses a uniform, empty prior of the proper cardinality. The algorithm does not seem to mind this and converges pretty quickly on a stable set of models.

The unit test uses the Lucene utilities to compute TFIDF vectors which are input to the DirichletClusterer.

It would be interesting to see if it performs at all well on your more extensive data. Feel free to suggest improvements.

Jeff


Jeff Eastman wrote:
Hi Ted,

Ok, from this and looking at your code here is what I get:

L1Model has a single, sparse coefficient vector M[t] where each coefficient is the probability of that term being present in the model. As (TF-IDF?) data values X[t] are scanned the pdf(X) for each model would be exp(- ManhattanDistanceMeasure(M, X)). The list of pdfs times the mixture probabilities is then sampled as a multinomial which selects a particular model from the list of available models. When the model then observes(X[t]), M=M+X and a count of observed values is incremented. When computeParameters() is called, presumably M is normalized (regularized?) and then sampled somehow to become the posterior model for the next iteration.

L1ModelDistribution needs to compute a list of models from its prior and posterior distributions. What is known about each prior model? M[t] should have some non-zero coefficients but we don't know which ones? Seems like we could pick a few at random. Even if they are all identical with empty Ms, the multinomial will still force the data values into different models and, after the iteration is over, the models will all be different and will diverge from each other as they (hopefully) converge upon a description of the corpus. That's a little like what kMeans does with random initial clusters and how Dirichlet works with NormalModelDistributions (all prior models are identical with zero mean coefficients).

This has a lot of question marks in it but I'm pressing send anyhow,
Jeff


Ted Dunning wrote:
On Tue, Jan 19, 2010 at 10:58 AM, Jeff Eastman
<[email protected]>wrote:

Looking in MAHOUT-228-3.patch, I don't see any sparse vectorizer. Did you
have another patch in mind?


There should have been one.  Let me check to figure out the name.


I'm trying to wrap my mind around "L-1 model distribution".


For the classifier learning, what we have is a prior distribution for
classifiers that has probability proportional to exp(- sum(abs(w_i))). The log of this probability is - sum(abs(w_i)) = L_1(w) which gives the name.
This log probability is what is used as a regularization term in the
optimization of the classifier.

It isn't obvious from this definition, but this prior/regularizer has the effect of preferring sparse models (for classification). Where L_2 priors prefer lots of small weights in ambiguous conditions because the penalty on large coefficients is so large, L_1 priors prefer to focus the weight on one
or a few larger coefficients.


.... Would an L-1 model vector only have integer-valued elements?


In the sense that 0 is an integer, yes.  :-)

But what it prefers is zero valued coefficients.




Reply via email to