Speeding up HMM decoding and training by exploiting sequence repetitions
read more
Citations
Algorithmics on SLP-compressed strings: A survey
Textual Data Compression In Computational Biology: A synopsis
Exploration and exploitation of multilingual data for statistical machine translation
Speeding Up HMM Decoding and Training by Exploiting Sequence Repetitions
A Unified Algorithm for Accelerating Edit-Distance Computation via Text-Compression
References
Error bounds for convolutional codes and an asymptotically optimum decoding algorithm
A universal algorithm for sequential data compression
Gaussian elimination is not optimal
On the Complexity of Finite Sequences
Matrix multiplication via arithmetic progressions
Related Papers (5)
A Subquadratic Sequence Alignment Algorithm for Unrestricted Scoring Matrices
Frequently Asked Questions (22)
Q2. What are the future works in "Speeding up hmm decoding and training by exploiting sequence repetitions?" ?
Other promising directions for future work include extending their results to higher order HMMs, HMMs with numerical observables [ 21 ], hierarchical HMMs, infinite alphabet size, and sparse transition matrices.
Q3. What are the other promising directions for future work?
Other promising directions for future work include extending their results to higher order HMMs, HMMs with numerical observables [21], hierarchical HMMs, infinite alphabet size, and sparse transition matrices.
Q4. What is the aim of the Viterbi training algorithm?
The Baum-Welch training algorithm converges to a set of parameters that maximizes the likelihood to observe the given sequence P (X| θ), and is the most commonly used method for model training.
Q5. How can the authors calculate the product of two matrices in parallel?
The max-times multiplication of two matrices can be done in parallel in O(1) time using k4 processors so the authors can calculate the product of n matrices in O(log n) time.
Q6. What is the speedup of the encoding step?
The encoding step takes O(2|Σ|`k3) time as the authors compute O(2|Σ|`) matrices and each matrix is computed in O(k3) time by a single max-times multiplication.
Q7. What is the way to construct X ′?
Their approach for constructing X ′ is to first parse X into all LZ78-words and then apply the following greedy parsing to each LZ78-word W : using the trie, find the longest good substring w′ ∈ D that is a prefix of W , place a parsing comma immediately after w′ and repeat the process for the remainder of W .Time and Space Complexity.
Q8. How many processors were used to perform the benchmarks?
The benchmarks were performed on a single processor of a SunFire V880 server with 8 UltraSPARC-IV processorsand 16GB main memory.
Q9. What is the length of the string X?
LZ78 parses the string X into substrings ( LZ78-words) in a single pass over X. Each LZ78-word is composed of the longest LZ78-word previously seen plus a single letter.
Q10. What is the corresponding pre-processing term for encoding?
The corresponding pre-processing term for encoding is O(|Σ′|k3), where Σ′ denotes the set of character codes in the extended alphabet.
Q11. What is the speedup factor of byte pair encoding?
In this section byte pair encoding is utilized to accelerate the Viterbi decoding computations by a factor of Ω(r), where n′ is the number of characters in the BPE-compressed sequence X and r = n/n′ is the BPE compression ratio of the sequence.
Q12. What is the likely sequence of states in the LZ78-accelerated decoding?
In LZ78-accelerated decoding, WB is a single letter, when using RLE WA = WB = σ|W |/2, SLP consists just of production rules involving a single letter or exactly two non-terminals, and with BPE WA, WB ∈ Σ′.
Q13. Why is it important to pre-compress a sequence?
Such precompression, which is usually time-linear in the size of the input sequences, is done in this case not in order to save space but rather as a good investment in preparation for an all-against-all classification scheme in which each input sequence will be decoded many times according to various models and thus it pays off to pre-compress it once and for all.
Q14. How many Viterbi steps does the application of observation 1 save?
The application of observation 1 to the computation of equation (3) saves ` − 1 Viterbi steps each time W appears in X, but incurs the additional cost of computing M(W ) once.
Q15. How can the authors speed up the decoding of a string?
In this subsection the authors show that if an input sequence has a grammar representation with compression ratio r, then HMM decoding can be accelerated by a factor of Ω( rk ).
Q16. What is the way to compute the maximum in a parallel algorithm?
It is possible to compute the maximum in (2) in parallel for all states i, but the dependency of vt+1 on vt makes it difficult to achieve a sublinear parallel algorithm.
Q17. What is the complexity of the LZ78 parsing?
The authors show how to use the LZ78 [34] parsing to find good substrings and how to use the incremental nature of the LZ78 parse to compute M(W ) for a good substring W in O(k3) time.
Q18. What is the speedup of the propagation step?
The propagation step takes O(nk 2` ) time resulting in an overall running time of O(2|Σ|`k3 + nk 2 ` ). Choos-ing ` = 12 log|Σ|(n), the running time is O ( 2 √ nk3 + 2nk 2log|Σ|(n)) .
Q19. What is the simplest way to run a VA?
In the propagation step (IV), given an input sequence of size n, compressed into its BPE-encoding of size n′ (e.g. n′ = 4 in the above example, where X = ABABCABCD and X ′ = XY Y D), the authors run VA using at most n′ matrices.
Q20. What is the complexity of the LZ78-parse?
(I) Dictionary Selection: the good substrings are all the LZ78-words in the LZ78-parse of X.(II) Encoding: construct the matrices incrementally, according to their order in the LZ78-trie, M(Wσ) = M(W ) Mσ.(III) Parsing: X ′ is the LZ78-parsing of X. (IV) Propagation: run VA on X ′, as described in section 3.Time and Space Complexity.
Q21. What is the simplest way to compute M(Wi)?
(II) Encoding: precompute the matrices M(Wi) for every Wi ∈ D.(III) Parsing: partition the input sequence X into consecutive good substrings X = Wi1Wi2 · · ·Win′′ and let X ′ denote the compressed representation of this parsing of X, such that X ′ = i1i2 · · · in′′ .
Q22. What is the speedup for a string with a run-length compression ratio?
In this section the authors obtain an Ω( rlog r ) speedup for decoding an observed sequence with run-length compression ratio r. A string S is run-length encoded if it is described as an ordered sequence of pairs (σ, i), often denoted “σi”.