Re: I don't get it anymore (if ever): OSB pR increases linearly with message size. Is that by design?

"Ger Hobbelt" <[email protected]>
Newsgroups gmane.mail.spam.crm114
Message-ID <[email protected]>
Thank you very much for the explanation. I had completely overlooked that.

>   PS: Same phenomenon for bigger messages. I found it because the
[...]
> That sounds like a bug.
>
> Any suggestions?

Not yet. I'm thinking. Got to get my 'thought model' straightened out
first, before I can trust any 'fixes' I come up with.

The problem is twofold: I think I can explain why this also happens
for bigger messages: if a three-word message 'A B C' has pR P1 and 'A
B C A B C' gets pR P2 ~ 2*P1, then that is caused by the 'counting'
done in the classifier code; I'd say then that the length of the
message doesn't matter; just the fact that the 'duplication' _always_
means HALF your features will be dupes so completely correlated, will
hence always cause the same effect.
 <unique> would sensibly work for messages of any length as it would
remove any glaring correlation in the features.


What worries me as well (if not more) is the second fact I mentioned
in passing. That is:

learn('A B D', bad)
learn('A B C', good)
classify('A B C') -> c1
learn('A B C', good)
classify('A B C') -> c2
learn('A B C', good)
classify('A B C') -> c3

does not significantly 'push' message 'A B C' into the 'good' zone
(incrementally with each 'learn')): pR value c3 is quite close to c1.
Keep this up a few hundred rounds even and you still are stuck with a
relative low pR (progression is asymptomatic, as I'd expect, just not
the asymptote value I wished for ;-) ). This is because in the code
the two cpcorr[] correction factors pressure my 'good' Ps down (and
lift 'bad' up) as much as I can train them (because cpcorr[] assigns
global weights based on the number of trainings in each CSS); so any
added 'importance' I give my features by additional learning (which
runs up their learncounts correctly) is (almost) lost.

I have been thinking about adjusting those learncount-per-feature
based weights, based on their occurrence in _both_ camps, but not sure
about it. Too little clarity about what is _really_ going on
math-wise.

I fear this is another error of mine due to (over)simplification of my
thought model and that really bothers me.



I'm working on a constructed testset with known features (and
differences) so that I can check this more thoroughly.




On Fri, Oct 3, 2008 at 2:35 PM, Bill Yerazunis <[email protected]> wrote:
>
>   From: "Ger Hobbelt" <[email protected]>
>
>   [[ description of repeated examples in a text causing increases
>      in pR elided ]]
>
>   So where's my error?
>
> The problem you are seeing is the Bayesian Assumption being violated.
>
> Bayes theorem says that you can do renormalization to find the
> overall probability of something being true when you have a bunch of
> independent tests you can run.
>
> HOWEVER... note the word "INDEPENDENT".  Words in human languages
> are not independent.  They are highly correllated.  This
> breaks Bayes' rule.  (the coherence length is about six words).
>
> That's the whole principle behind Markov and OSB filtering- to
> take advantage of the correlation between words.
>
> One way to partially fix this is to use the UNIQUE keyword; with
> this turned on, the system does not consider repeated identical phrases
> as independent evidence.
>
> However, the slightest change in a phrase (just enough to make a
> change in the hash) will let the second phrase pass through the
> UNIQUE test.
>
> Some other filters get around this lack of independence by only using
> a small number of "significant" words (like 7 or 13 words) which are
> hopefully far enough apart in the text stream to be independent
> events.  However, those filters throw away huge amounts of evidence
> in the common, less significant words (and thus typically don't
> do as well in spam filtering accuracy).
>
>
>   PS: Same phenomenon for bigger messages. I found it because the
>   mailstripper in mailreaver is _quite_ different from the one in
>   mailtrainer, resulting in mailtrainer working on basically
>   'duplicated' messages, resulting in doubled pR scores used to
>   determine THTTR training regime. Which ended up in mailtrainer NOT
>   training messages (or stopping the repeat cycle for them) while
>   mailreaver itself would still incorrectly classify them when using the
>   same threshold values. Gives me the heebie-jeebies for sure.
>
> That sounds like a bug.
>
> Any suggestions?
>
>    - Bill Yerazunis
>
>



-- 
Met vriendelijke groeten / Best regards,

Ger Hobbelt

--------------------------------------------------
web: http://www.hobbelt.com/
 http://www.hebbut.net/
mail: [email protected]
mobile: +31-6-11 120 978
--------------------------------------------------

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.