I have an array of sequences of equal length, each sequence contains 300 numbers (M=300). Each element in a sequence is a number from 1 to 9:
13571398...2455 # 300 numbers 33344467...1143 # 300 numbers ... ... ... 66118859...2121 # 300 numbers
My task is to build a model that predicts an element (number) at sequence positions from 180 to 190 based on the first 179 elements and the last 110 elements in a sequence. In other words, given elements at positions from 0 to 179 and from 191 to 299 predict elements in a sequence at positions from 180 to 190.
I am thinking about the following steps to solve this task with Keras BiLSTM model:
- Split all sequences into train / validation / test sets
- Train BiLSTM on a train set to predict next number anywhere in a sequence
- In test and validation sets randomly replace K elements at positions from 180 to 190 with 0 (a number that does not exists in original sequences).
- Use pre-trained BiLSTM to predict true values of '0' elements in validation and test sets
Please help with the following questions:
- How should I represent data and classes for BiLSTM in this case? It looks like my data and classes are the one and the same thing. Both 1...9 numbers are data and corresponding classes to BiLSTM.
- What data structures, encodings in this case should I create to train and predict with Keras BiLSTM?
- How to evaluate quality of this model on a train and test sets ?
Any other ideas of using other models, in particular Transformers (PyTorch, Tesnsorflow) are very welcome, thanks!