context 0 gives probabilities P0 (0 is the deeper context) context 1 gives probabilities P1 (1 is the parent) how do I combine them ? escaping : P = (1 - E) * P0 + E * (P1 - 0) P1 - 0 = Probablities from 1 with chars from 0 excluded weighting : P = (1 - W) * P0 + W * P1 with no exclusion in P1In particular, the only difference is the exclusion. Specifically, the probabilities of non-shared symbols are the same, but the probabilities of symbols that occur in both contexts are different. In particular the flaw with escaping is probably that it gives too low a weight to symbols that occur in both contexts. More generally you should probably be considering something like :
I = intersection of contexts 0 and 1 P = a * (P0 - I) + b * (P1 - I) + c * PIthat is, some weighting for the unique parts of each context and some weighting for the intersection.
Note that PPMii is sort of trying to compensate for this because when it creates context 0, it seeds it with counts from context 1 in the overlap.
Which obviously begs the question : rather than the context initialization of PPMii, why not just look in your parent and take some of the counts for shared symbols?
(note that there are practical issues about how your compute your weight amount or escape probability, and how exactly you mix, but those methods could be applied to either PPM or CW, so they aren't a fundamental difference).