Hi Christian, Thanks for your help. I'd be glad to help any way I can in fixing the lattice computation. Regarding the edge probabilities, I hadn't really spent any time working out what values I should use. (I'd got as far as realising I shouldn't use negative numbers, but completely forgot that 0 would translate to negative infinity - I was fooled by the flooring to -100.) I'll use the values you suggest.
Thanks again, Suzy On 08/04/2010, at 9:32 PM, Christian Hardmeier wrote: > Hi Suzy, > > Two things about your lattice problems: > > 1. The lattice distortion computation in moses is broken. It was > buggy a > while ago, then I "fixed" it, and I recently found out that it's buggy > in a different way now. I'll have another look at that, and maybe I'll > send you some code to test with your lattices before I commit anything > to the svn to avoid breaking it in yet another way. I think this is > what > gives you the "weird distance" warnings, and it may also be > responsible > for some of the translations that are not found. > > 2. You're using 0, 0.5 and 1 as edge probabilities in your lattice, > which means the decoder will use log 0 (negative infinity, then > floored > to -100), log 0.5 (-0.693) and log 1 (0) as scores. 0 is a very low > score and may result in your hypotheses being pruned away immediately. > I generally use the following values for this kind of indicator > scores: > 0.368 = exp(-1) > 0.606 = exp(-0.5) > 1 = exp(0) > This will translate into 0, -0.5 and -1 in logspace. Using negative > scores avoids unnecessary warnings about probabilities >1. > > Best, > Christian > > On Tue, 06 Apr 2010, Suzy Howlett wrote: > >> Hi, >> >> I'm trying to tune Moses using lattice input (not confusion network >> input) and I'm getting some weird errors. I'd appreciate it if >> someone >> could point out where I'm going wrong. >> >> Here's what I'm trying to do: >> I can train and run a model on ordinary data. I can also reorder >> sentences in a preprocessing step and train and run a reordered >> model. >> Both of these work without a problem. I am now trying to use the two >> phrase tables from these two models together in one system, and >> decode >> lattice input where the lattice contains a total of two paths, one >> representing the ordinary sentence and one representing the reordered >> version of the same sentence. In representing the lattice as a >> string, >> I order the nodes by placing the nodes of the original sentence >> before >> the nodes of the reordered sentence. Since there is no sharing of >> nodes except for the source and sink, I expected this would be as >> good >> an ordering as any. The "transition probability" feature value is 0 >> on >> the edge starting the original sentence, 1 on the edge starting the >> reordered sentence, and 0.5 on all other edges. >> >> To get this to work, I have added an extra feature to each entry in >> both phrase tables (0 in the ordinary table and 1 in the reordered >> table), binarised both phrase tables using processPhraseTable, >> modified moses.ini to point to both tables and add in extra [weight- >> t] >> values, modified mert-moses-new.pl, and passed the mert script the >> additional flags "--inputtype 2 --no-filter-phrase-table". The >> modification of mert-moses-new.pl consists of adding a "[ 0.0, -1.0, >> 1.0 ]" to "additional_triples" for the extra phrase table feature, >> and >> copying the contents of the "if ($___INPUTTYPE == 1)" clause (lines >> 286-291) to the "if ($___INPUTTYPE == 2)" clause below it. This was a >> bit of a hack, and may be part of the problem, I don't know. I'm >> fairly certain those were the only changes I made from running the >> plain non-lattice models. >> >> When I attempt to tune the model, a number of strange (probably >> interrelated) things happen. For many sentences, it finds no best >> translation. I find this odd, since it's using exactly the same data >> as the plain original and reordered models, and those had no >> problems, >> so I would expect both paths of the lattice to find at least one >> possible translation. I assume it's getting some kind of explosion in >> the size of the search space. Second, on some sentences I get several >> error messages of the form "C: got a weird distance from X to Y of >> Z" (e.g. for a lattice with 12 words in each of the original and >> reordered paths, "C: got a weird distance from 5 to 12 of >> 1073741822"). It looks like this error is due to the distortion part >> of the model, trying to reorder phrases from the two different paths >> of the lattice - I don't understand why it would be trying to do >> this. >> The third oddity is that the tuning process crashed with the error >> "Assertion failed: (! >> m_sourceCompleted.Overlap(m_currSourceWordsRange)), function >> Hypothesis, file Hypothesis.cpp, line 101." >> >> Miscellaneous additional information: >> >> When I run the regression tests "lattice-surface" and "lattice- >> distortion" using moses-reg-test-data-2, all tests pass. >> >> It appears to be reading in the lattices correctly. For example, for >> one short sentence it outputs: >> "Translating: word lattice: 13 >> 0 -- (der , -100.000, 1) (der , 0.000, 7) >> 1 -- (höchste , -0.693, 1) >> 2 -- (preis , -0.693, 1) >> 3 -- (betrug , -0.693, 1) >> 4 -- (10.573 , -0.693, 1) >> 5 -- (huf , -0.693, 1) >> 6 -- (. , -0.693, 7) >> 7 -- (10.573 , -0.693, 1) >> 8 -- (preis , -0.693, 1) >> 9 -- (betrug , -0.693, 1) >> 10 -- (höchste , -0.693, 1) >> 11 -- (huf , -0.693, 1) >> 12 -- (. , -0.693, 1)" >> (The reordering I'm using to test this out at the moment is very >> simple, just swapping two words.) >> >> I haven't updated my copy of the subversion repository in a while - I >> have revision 2654 - so if it's simply the case that this is a >> problem >> that's been fixed since then, please let me know. >> >> Thanks, >> Suzy >> _______________________________________________ >> Moses-support mailing list >> [email protected] >> http://mailman.mit.edu/mailman/listinfo/moses-support _______________________________________________ Moses-support mailing list [email protected] http://mailman.mit.edu/mailman/listinfo/moses-support
