Processing math: 100%
본문 바로가기
Transportation/Graph Neural Network

GMAN: A Graph Multi-Attention Network for Traffic Prediction 요약 및 설명

by 함승우 2022. 8. 10.

세 번째 graph neural network(GNN)을 활용한 시계열 예측 논문입니다. 제목은 GMAN: A Graph Multi-Attention Network for Traffic Prediction 입니다.

GMAN: A Graph Multi-Attention Network for Traffic Prediction

  • 2020년 4월 3일 publish
  • In Proceedings of the AAAI conference on artificial intelligence
  • Chuanpan Zheng, Xiaoliang Fan, Cheng Wang, and Jianzhong Q
  • 2022년 8월 10일 기준 citation 수 342회

샤먼 대학교 연구진들의 연구 내용입니다. (샤먼 대학교는 샤먼시에 위치하는데, 무속인과는 관계가 없습니다. 샤먼은 하문이라는 한자를 중국어로 읽었을 때의 음에 해당합니다.) 주안점 및 과거 연구의 한계, 활용 데이터 및 기타 설정, 인접 행렬 설계, 모델 설계 사항, 모델 내 데이터 차원, 모델 설계 특이점, 결과 및 분석, 결과 특이 사항, 교통 공학적 분석 내용, 결과 특이사항, 의문점 및 느낀점 순으로 정리해보겠습니다.

 

주안점 및 과거 연구의 한계

  • Encoder-decoder architecture의 설계
  • 과거 연구들과 유사하게 같은 time stamp 안에서는 spatial correlation, 다른 time stamp 끼리는 temporal correlation을 적용함

  • Complex spatio-temporal correlations을 파악하였음. Dynamic spatial correlations은 시간에 따라서 중요도가 높은 센서가 변함. Non-linear temporal correlations은 temporal correlation의 non-linear한 부분을 파악함. 동일 시간에서는 spatial correlation을 보고, 동일 node에 대해서는 temporal correlation을 보는 듯
  • Sensitivity to errror propagation을 해결함. 현재의 error는 미래 나중에 큰 error로 증폭될 수 있는데, 그 문제를 완화 시킴

 

활용 데이터 및 기타 설정

  • Xiamen dataset (Wang et al. 2017): 95개 수집점, 속도 데이터, 5분 단위 집계, 2015년 8월 1일~2015년 12월 31일
  • PeMS dataset (Li et al. 2018b): 325개 수집점, 속도 데이터, 5분 단위 집계, 2017년 1월 1일~ 2017년 6월 30일
  • Z-score method로 normalize
  • 70% training, 10 validation, 20% testing
  • 1시간 데이터로 그 다음 1시간 예측
  • Adam optimizer, learning rate = 0.001, Xiamen data는 19개/PeMS data는 37개의 그룹으로 계산
  • Attention block 수 L=3, Attention head 수 K=8, 그리고 각 head의 차원 d=8 (D=64)

 

인접 행렬 설계

  • 거리 기반으로 인접행렬 설계하였음
  • The adjacency matrix represents the proximity (measured by the road network distance) between vertex vi and vj.

 

모델 설계 사항

  • 아래 Figure 2(a)는 GMAN의 전체 framework, Figure 2(b)는 Spatio-Temporal Embedding(STE), Figure 2(c)는 ST-Attention Block의 모습임
  • STE는 그래프 G와 시간 t1,...,tP,...,tP+Q를 input으로 받음. 그래프 구조 자체와 시간의 time stamp를 input으로 받는듯. 여기서 만들어진 embedding은 element-wise합이 되어서 각 block에 쓰임
  • ST-Attention Block은 전 ST-Attention Block의 H(l1)을 input으로 받아서 각각 Spatial Attention과 Temporal Attention으로 전달함. 그 이후에 Gated Fusion을 거쳐 Hl 생성

  • Spatial Embedding: Spatio-Temporal Embedding에서는 여기서 소개한 적 있는 node2vec을 기반으로 spatial embedding을 진행함. 그 결과물을 2-layer FC에 넣어서 spatial embedding eSviRD where viV를 얻음. (여기서 S는 단순히 sptial이라는 것을 나타내기 위해 붙인 첨자)
  • Temporal Embedding: 조금 특이하게, 이 모델에서는 시간 자체를 embedding함. (propose a temporal embedding to encode each time step into a vector). 일주일에 요일이 7개고, 하루를 5분으로 쪼개면 288개니까  R7 차원의 벡터랑 R288 차원의 벡터 concatenate해서 R295 차원 벡터를 얻음. 그리고 그 R295 차원 벡터를 2-layer FC에 넣어서 RD를 얻음. Historical(input) 시간이 P이고, future(output) 시간이 Q일 떄, 결론적으로 eTtjRD where tj=t1,...,tP,...,tP+Q. 마찬가지로 T는 temporal의 T
  • STE는 spatial embedding과 temporal embedding을 element-wise로 더하여 evi,tj=eSvi+eTtj로 함. 이때 evi,tjE, ER(P+Q)×N×D
  • ST-Attention Block의 input H(l1)에는 node(vertex) vi의 시간 time step tj에 대한 h(l1)vi,tj가 있고, h(l1)vi,tjH(l1). Spatial attention의 output H(l)S, Temporal attention의 output H(l)T. Node(vertex) vi의 시간 time step tj에 대한 hidden state는 spatial attention에서 hs(l)vi,tj, temporal attention에서 ht(l)vi,tj

  • Spatial Attention: hs(l)vi,tj=vVαvi,vh(l1)v,tj, vVαvi,v=1, 여기서 αvi,vvi에게 v가 얼마나 중요한지를 나타냄. 위 식이 equation 2에 해당함

  • Non-linear transformation을 아래와 같이 정의하고, multi-head attention으로 전체 과정을 stabilize함. 위의 equation 3, equation 4와 다른 점은 multi-head attention 여부와 non-linear transformation의 여부

  • Temporal Attention: 전 time step의 feature가 뒤에도 영향을 미칠 수 있도록 모델이 설계되었음. 이때에도 마찬가지로 attention mechanism이 포함됨

 

  • 최종적으로 얻어지는 ht(l)vi,tj는 아래와 같음

  • Spatial attention과 temporal attention은 연산 적용 대상은 다르지만 같은 연산 과정을 가짐. STE의 결과물과 전 layer의 hidden embedding을 concat하고, 이를 non-linear를 포함하는 FC에 통과하시키고, 목적하는 node(혹은 times tep)과 내적하여 값(energy)을 얻어냄. 그 값은 마치 transformer의 energy를 softmax 시킨 것을 attention value로 하여서 (l) layer의 embedding을 구함
  • Gated Fusion: 쉽게 말하면 spatial한 feature와 temporal한 feature 사이에 가중치를 둔 것인데, 그냥 두지 않았음. 세개의 learnable parameter를 가지고 그 가중치를 학습하게 했음

  • Transform Attention: 매 future time step(tj=tP+1,...,tP+Q)과 모든 historical time step(t=t1,...,tP)의 관계를 고려함. 결국 여기서도 또 어텐션이 활용됨. 리뷰어 의견을 원천 차단하려고 관계가 있는거는 모조리 어텐션을 쓴 것 같음

  • Encoder-Decoder: Minor한 부분을 제외하고, 크게 보자면 전체 과정은 다음과 같음. Encoder에 들어가기 전, historical observation χRP×N×C는 FC를 통해서 H(0)RP×N×D로 변환됨. L번째 layer에서도 H(L)RP×N×D가 유지됨. Transform attention에서 H(L+1)RQ×N×D로 바뀌며, decoder의 마지막까지 H(2L+1)RQ×N×D 차원으로 감. 마지막 FC layer에서 ˆYRQ×N×C로 종결되며, loss는 MAE loss를 사용함

 

모델 내 데이터 차원

  • G=(V,E,A)
  • |V|=N, ARN×N
  • C = length of feature number, Traffic condition at time step t은 graph signal XtRN×C
  • Historical P time steps χ=(Xt1,Xt2,...,XtP)RP×N×C
  • Predictions of next Q time steps ˆY=(ˆXtP+1,ˆXtP+2,...,ˆXtP+Q)RQ×N×C
  • Spatial embedding eSviRD where viV
  • Temporal embedding eTtjRD where tj=t1,...,tP,...,tP+Q
  • STE evi,tjE, ER(P+Q)×N×D
  • h(l1)vi,tjH(l1)
  • Historical observation χRP×N×C FC H(0)RP×N×D Encoder H(L)RP×N×D Transform Attention H(L+1)RQ×N×D  Decoder H(2L+1)RQ×N×D FC ˆYRQ×N×C

 

모델 설계 특이점

  • Temporal Embedding에서 시간 자체를 embedding하는데, (propose a temporal embedding to encode each time step into a vector) 시간 embedding 과정을 세세하게 보여준 논문은 드문듯
  • Attention을 n개 node에 대해서 다 하면 n-by-n으로 연산량 너무 높으니까, group을 지어 연산하기도 하였다. Intra-group spatial attention을 구하고, max-pooling한 이후 inter-group spatial attention을 구했음. 다만 이 max-pooling이 무엇을 기준으로 했는지 확실하지 않음. h(l1)vi,tj value를 기반으로 했다고 생각함

 

결과 및 분석

  • 먼 시간 간격을 두고 있는 문제에 대해서 좋은 성능을 보임

 

결과 특이 사항

  • 예측 시간이 멀때 더 좋은 결과를 보임. 해당 결과는 T-test로 입증 (하지만 test set이 충분히 많아서 p-hacking의 여지가 있을듯)
  • 10~90% 비율로 random하게 0을 집어넣었음. 이때의 결과는 GMAN이 가장 좋음. Xiamen시 data에서 fault-ratio 50%까지 MAE 25% 수준으로 버팀. PeMS는 훨씬 잘 버팀

  • 각 모듈의 효과를 평가하기 위해 모듈의 구성 요소를 제외하였을 떄의 효과를 평가하였음. 당연히 모든 요소가 다 있는 것이 잘 되고, non-gated fusion, non-transform attention, non-temporal attention, non-spatial attention 순으로 모델이 안 좋아짐. Spatial attention이 의미가 있다는 점이 중요한 대목인듯 (Xiamen 데이터 기준. PeMS는 구분이 어려움)

 

 

교통 공학적 분석 내용

  • 먼 시간 간격이 떨어진 데이터를 예측하면 application 측면에서 이득이 많다고 주장함
  • 교통 상황에서 결측이 발생하는 경우가 있을 수 있음. 이런 경우를 모사하기 위한 노력을 하고, 모델의 robustness를 측정함

 

의문점 및 느낀점

  • Spatial Embedding과 Temporal Embedding를 단순히 더하는 것으로 모델이 STE 내부의 spatial한 특성과 temporal한 특성을 잘 파악할까? Transformer에서 positional encoding을 embedding에 더한 것에서 착안한 것 같은데, 지금도 왜 되는지 신기한 면이 있음
  • 무거운 모델임. Spatial/Temporal/Transform 세 요소에 모두 어텐션을 활용했음. 애초에 softmax 계산이 그렇게 쉬운 계산이 아님. 단순하게 가는 법이 없고 최소한 1개의 FC layer는 포함하여 parameter를 결정함
  • 엄밀이 말하면, 이 모델은 GCN과는 거리가 있음. Adjacency matrix를 기반으로 message passing을 하는 기존 scheme과 다르게 spatial embedding을 구하고, SE를 다른 node feature embedding에 concat해서 활용하기 때문