Time Forecasting에 있어 느낀, Attention의 한계
2021.04.19 - [논문으로 현업 씹어먹기] - LSTM Attention 이해하기 - 서론
미루고 미루다 드디어 작성하게 되는 것 같다. ㅋㅋ
여기서 더 미루면 내 기억속에서 사라질 것 같아서, 슬슬 정리하도록 한다.
지금까지 Attention을 TF ndarray로 직접 구현해보고, 실제로 사용하여 학습까지 진행해보면서, 느낀점을 서술해보겠다.
1. Attention은 1차원으로만 적용 가능하다.
- Time-Series별로 혹은 Feature별로만 적용 가능했다. (세로 혹은 가로)
- 이 때문에, Dual-Stage Attention 아이디어가 나오게 된다.
2021.04.15 - [논문으로 현업 씹어먹기] - Dual-Stage Attention-Based RNN for Time Series Prediction
2. Attention은 길이(Time-Sequnece)가 길어질 수록, 내적 연산에 따른 속도 저하가 어마무시하다.
- 이 부분은 딥러닝 음성인식(ASR) 진행 시, Attention이나 CTC에서도 동일하게 발생하는 문제이다.
- 필자의경우 98일 정도의 데이터를 이용하여 Attention을 진행하려고했었는데, RTX3090 기준으로 1업무데이에 종료할 수 없었다.
- Beam-Search알고리즘 등을 사용하면 속도저하 문제를 조금 타파할 수는 있겠지만, 분류문제에서 선택 가능하고, 회귀 문제에서는 선택 불가하다.
3. Attention 시계열 데이터 예측에 대한 연구가 비교적 최근부터 시작되고 있는 듯 하다.
https://towardsdatascience.com/attention-for-time-series-classification-and-forecasting-261723e0006d
- Attention은 정해진 Time-Sequence에서만 집중할 수 있다. 하지만 현실의 문제는 다르다, 실제 데이터가 100일 범위로만 결정되어질 수 있을 것이라 생각했지만, 특정 어떤 데이터는 200일 전 데이터가 Attention이 더 잘 될 수도 있다. 이런 데이터 구성의 경우 Attention이 잘 동작하지 않는다. (필자 역시 실제로 그랬다.)
- 또한 대부분의 문제 해결 방식이, CNN을 이용하고, Attention을 진행하던데, CNN을 적용하는 부분이 실제 본인의 Dataset과 적합한 모델 아키텍쳐 구조인지도 판단해봐야겠다. BERT처럼 Attention만 조져서 시계열 예측을 했다는 케이스는 존재하지 않았다.
- 내용에도 그대로 저술되지만, NLP외에는 연구의 부족, 메모리 병목, 특정 지점에서의 제한점 등이 거론되며, 실제로 SOTA를 달성한 것으로 보이는 2개의 제시된 논문들은, 그 데이터의 카테고리가 매우 한정적이며, 실제 사례에 적용된 레퍼런스를 찾아볼 수 없었다.
- https://arxiv.org/pdf/1907.00235.pdf
4. 실제 현업에 종사하는 외국인들도, 갑론을박이 많은 사항이다.
https://www.reddit.com/r/MachineLearning/comments/ckaji4/d_transformers_for_time_series_data/
- 댓글을 확인해보면 알겠지만, 무한한 실수/정수 문제에는 적합하지 않다느니, 누구는 쓰고있고, 누구는 못쓴다느니, 갑론을박이 많다.
- 실질적으로 의견이 제대로 수렴되지 않는 것으로 보아, Attention 기반의 Time-Series Forecasting은 현재로써는 불안정하지 않나. 라고 생각한다.
이런 이유에서, 필자는 솔직히 Attention을 이용한 시계열 회귀문제 예측에 대해서는, '현재로써는' 부정적으로 생각이 될 수 밖에 없었다. 좀 더 연구가 진행되고, 실제 도입 사례가 많아져야 참고 가능하지 않을까 생각된다.
Seq2Seq나 Encoder-Decoder 기반의 BI-LSTM형태로 구성하는 것이, 현재로써는 가장 합리적인 Time-Series Forecasting방법이 아닐까 생각된다.
(다만, DL을 이용하면, 설명력이 좀 부족해서, 현업을 이해시키는데 크게 애먹을 수도 있다.)