- Haoyi Zhou, Shanghang Zhang, Jieqi Peng, Shuai Zhang, Jianxin Li, Hui Xiong, Wancai Zhang. Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting. arXiv preprint arXiv:2012.07436, 2020.
[2012.07436] Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting
GitHub - zhouhaoyi/Informer2020: The GitHub repository for the paper "Informer" accepted by AAAI 2021.
Transformer は行列 によって入力の特徴系列を「前後の文脈を考慮した」特徴系列に変えますが、系列長 が長くなるほどこの行列を用意して適用するのに の計算量がかかってしまうのですよね? 文脈を考慮する先が増えるわけですから当然ですが。しかし、それでも何とか計算を間引いて Transformer に長い系列を流したいこともあるわけです。そのような手法としてこれまでどのようなものが提案されてきたのでしょう? それぞれの手法にどのような得手不得手があるのでしょうか?
- を受け取る.
- ,, を計算する.
- を計算する(※ Softmax は各行を正規化する).
なるほど…一様分布と 行目の交差エントロピーは、 行目の確率分布に最適化した情報量の尺度で一様分布を受け取ったときの平均的な情報量… の 行目 と の 行目 を縦ベクトルと考えると、
…うーんでも、その主張だと結局 と を比較するのに の 行目と 行目が完全に必要になりませんか? それでは意味が―
以下の実装をみると を完全に計算しているわけではないね。
https://github.com/zhouhaoyi/Informer2020/blob/main/models/attn.py#L47-L68
を計算するんじゃなくて、 のうち sample_k 行だけ残した で代用している。いや、正確にいうと、 の各行に対して sample_k 行の選び方を変えているから、 通りの を用意して、以下の もどきを計算して、これに基づいて が大きい n_top 行を選んでいるね(※ この記事では の 行目を縦ベクトル と考えているから横ベクトルに戻すために転置しているよ)。