How to predict data with time-dependent features?
For example, I have to predict the result of a Mortal Combat game:
X(i) = [player1_id, player2_id, hero_of_player1, hero_of_player2]
Y(i) = 1 if player1 wins or 0 if player2 wins
I have a dataset, containing games from large period of time. And, of course, performance of each player can variate during that time. Second, there were a lot of game patches, and they tuned some heroes' abilities. As a result overall hero strength can also variate through time as well as certain hero-vs-hero match-ups.
How to track that changes considering also overall and time-dependent impact of player+hero, hero-vs-hero, player-vs-player features?
So far I'm using simple LSTM network on whole game history. So my data has a single sample and total number of steps equal to game history length:
X = data.reshape(1,len(data),len(data[0]) #len(data[0]) corresponds to 4 features for a single record in dataset, but it is onehot-encoded.
m = Sequential()
m.add(LSTM(25, input_shape=(None, len(data[0])), return_sequences=True)
m.add(TimeDistirbuted(Dense(1))
I've got about 60% performance on the real problem. And I think it might be better and I can tune layer sizes, regularize, add stacking LSTMs. But did I choose an adequate NN-structure? What are the most suitable NN-structures for that kind of problems? Sliding-windows and Convolutional LSTMs sounds promising, but I don't have enough intuition about them.