<commit_before>In traditional time series forecasting, series are often considered on an individual basis, and predictive models are then fit with series-specific parameters (e.g. ARIMA models). 
This style of forecasting does not scale well to problems where the number of series to forecast extends to thousands or even hundreds of thousands of series. 
Additionally, fitting series-specific models fails to capture the expressive general patterns that can be learned from studying many fundamentally related series. 
This “high-dimensional” time series setting is faced by many companies, in forms ranging from store/product demand forecasting (think Amazon) to webpage traffic forecasting (think web advertising).
<commit_msg>Update 2018-05-08-ts_seq2seq_intro.md<commit_after>In traditional time series forecasting, series are often considered on an individual basis, and predictive models are then fit with series-specific parameters (e.g. ARIMA models). 
This style of forecasting does not scale well to problems where the number of series to forecast extends to thousands or even hundreds of thousands of series. 
Additionally, fitting series-specific models fails to capture the expressive general patterns that can be learned from studying many fundamentally related series. 
This “high-dimensional” time series setting is faced by many companies, in forms ranging from store/product demand forecasting (think Amazon) to webpage traffic forecasting (think web advertising).

![random_series](/images/ts_seq2seq_intro/random_series.png)

Luckily, multi-step time series forecasting can be expressed as a sequence-to-sequence supervised prediction problem, a framework amenable to modern neural network models.

one more viz here? illustrating setup?

Intro to seq2seq NN - frequently used for NLP problems like machine translation (original source of the architecture). Encoder - decoder framework

In translation we condition on the entirety of an input sentence to generate a corresponding output sentence. Similarly, in a time series problem we can condition on the entire history of a series in order to make predictions about the future. The encoder’s final hidden state then becomes the decoder’s initial hidden state, and this vector serves as a learned representation of history.  

{'fraction_non_alphanumeric': 0.03610265332753371, 'fraction_numerical': 0.004784688995215311, 'mean_word_length': 5.301369863013699, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1674463', 'n_tokens_mistral': 509, 'n_tokens_neox': 481, 'n_words': 311}