I want to use a maxent model for quite a simple problem but it doesn't behave as I expect. I'm clearly not understanding.

I have two sets of labels $L = \{A,B\}$ and $L' = \{A',B'\}$ and some relationship that holds between them $\Theta = \{Equals, Disjoint\}$. I have data of the form $<l,l',\theta>$ where $l \in L, l' \in L'$ and $\theta \in \Theta$. I want to know for a new pair from $L$ and $L'$ whether they belong to $Equals$ or $Disjoint$. Given only the evidence that $<A, A', Equals>, <A, B', Disjoint>$ and $<B, A', Disjoint>$. I look at the class probability and it is the following:

A A' Equals[0.9656]  Disjoint[0.0344]
A B' Equals[0.0294]  Disjoint[0.9706]
B A' Equals[0.0294]  Disjoint[0.9706]
B B' Equals[0.0000]  Disjoint[1.0000]

According to the OpenNLP maxent model that uses generalised iterative scaling. The first three lines are as expected but the final line should just be uncertain i.e Equals[0.5] Disjoint[0.5] as there is no information about how B and B' relate to each other. Instead it seems to have associated B with class Disjoint from evidence $<B,A',Disjoint>$ and attributed it to the unseen B, B' data.

What am I doing wrong? Is there another modelling technique that I should use instead?


Grouping the data points into a single context gives the desired result:

AA' Equals[0.9902]  Disjoint[0.0098]
AB' Equals[0.0098]  Disjoint[0.9902]
BA' Equals[0.0098]  Disjoint[0.9902]
BB' Equals[0.5000]  Disjoint[0.5000]

This way, evidence of class membership is not shared between events.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.