마이와 텍스트마이닝

지식 그래프 기반 임베딩을 활용한 서울시 NO₂ 농도 예측 본문

머신러닝

지식 그래프 기반 임베딩을 활용한 서울시 NO₂ 농도 예측

터키언니 2026. 8. 23. 18:07

지식 그래프 기반 임베딩을 활용한 서울시 NO₂ 농도 예측
Knowledge Graph-Based NO₂ Concentration Prediction Using Seoul S-DOT Data

1. 프로젝트 소개

 

연구 배경

  • 기존 도시 데이터 분석은 개별 센서의 측정값 중심으로 분석
  • 센서 간 공간적 관계와 도시의 계층적 구조를 충분히 반영하기 어려움
  • 단순한 좌표 기반 분석을 넘어 도시 공간 구조를 고려한 예측 모델 필요

연구 목적

  • 서울시 S-DOT 데이터를 활용한 NO₂ 농도 예측
  • 센서 간 공간적 관계와 행정구역 구조를 Knowledge Graph로 구축
  • Knowledge Graph 기반 Node2Vec 임베딩을 예측 변수로 활용
  • 지식 그래프 임베딩이 NO₂ 예측 성능에 미치는 영향 검증
  • SHAP 및 Reverse Mapping을 통한 공간적 특성 해석

> 지식그래프는 그래프 내 객체와 객체 간의 관계를 구조적으로 표현하고, 이러한 관계 정보를 임베딩하여 그래프 분석이나 다양한 downstream task에 활용할 수 있습니다.

그렇다면 지식 그래프에서 얻은 관계 정보를 머신러닝 기반 예측 모델의 feature로 활용하면 어떨까?

 

이번 프로젝트에서는 이러한 아이디어를 바탕으로, 센서 간의 공간적 관계와 센서가 속한 행정구역 간의 관계를 지식그래프로 구축했습니다. 이후 Node2Vec을 통해 그래프의 관계 정보를 임베딩 벡터로 변환하고, 이를 기존 환경 데이터와 함께 NO₂ 농도 예측 모델의 feature로 활용했습니다. 즉, 이 프로젝트에서는 Knowledge Graph의 관계 정보가 임베딩을 통해 실제 예측 문제에서도 유용한 feature로 활용될 수 있는지를 확인하고자 했습니다!

 

2. 사용 데이터

2.1  S-DOT 데이터

본 프로젝트에서는 서울시의 S-DOT(Smart Seoul Data of Things) 센서 데이터를 주요 데이터셋으로 활용했습니다. S-DOT은 서울시 곳곳에 설치된 IoT 센서를 통해 도시 환경과 관련된 다양한 정보를 수집하는 데이터 인프라입니다. 본 프로젝트에서는 이 중 대기환경과 관련된 센서 측정 데이터를 활용했습니다.

사용한 주요 변수:

  • 이산화질소(NO₂) 농도
  • 일산화탄소(CO)
  • 기온
  • 상대습도
  • 소음
  • 측정 시간
  • 요일 정보
  • 센서 위치 정보

데이터의 수집 기간은 2026년 3월 1일부터 3월 29일까지이며, 전체 778,280개의 데이터 중 NO₂ 측정값이 존재하는 데이터를 필터링하여 최종적으로 81,308개 관측치를 분석에 사용했습니다.


2.2  센서 위치 데이터

S-DOT 센서 데이터와 함께 각 센서의 위치 정보를 결합했습니다. 센서 ID를 기준으로 센서의 위도와 경도 정보를 연결하고, 이를 활용하여 센서 간의 지리적 거리를 계산했습니다. 이 정보는 이후 센서 간의 공간적 인접 관계를 정의하고 Spatial Knowledge Graph를 구축하는 데 사용했습니다.


2.3  서울시 행정구역 데이터

- 센서의 공간적 위치뿐만 아니라 센서가 어떤 행정구역에 속하는지도 함께 고려했습니다. 이를 위해 서울시 행정동 및 자치구 정보를 활용하여 각 센서와 행정구역 간의 관계를 연결했습니다.

- 이를 통해 단순히 "센서 A와 센서 B가 얼마나 가까운가"뿐만 아니라, 같은 행정동이나 같은 자치구에 속하는 센서인지와 같은 도시 공간의 계층적 구조도 그래프에 반영하고자 했습니다.

 

연구 절차

 

3.  공간 지식 그래프(Spatial Knowledge Graph) 구축

데이터 전처리를 마친 후, 이 연구의 핵심인 공간 지식 그래프를 구축했습니다. 센서 데이터의 공간적 관계와 계층적 도시 구조를 통합된 그래프 형태로 구성하여, 머신러닝 모델이 이해할 수 있는 피처(Feature)로 변환하는 과정입니다.

 

*그래프는 크게 두 가지 관계를 정의하여 생성했습니다:*

  1. 계층적 관계 (Hierarchical): '센서 → 행정동', '행정동 → 자치구'로 이어지는 포함 관계(belongs_to)를 정의하여 행정구역의 구조를 반영했습니다.
  2. 공간적 관계 (Spatial): 위도와 경도 정보를 활용해 가까운 센서들끼리 연결했습니다 (k-NN 알고리즘 기반, k=5).

이렇게 생성된 그래프 구조를 학습하기 위해 Node2Vec 알고리즘을 사용했습니다. Node2Vec을 통해 각 센서 노드는 16차원의 임베딩 벡터(KG_Vec_0 ~ KG_Vec_15)로 변환되며, 이 벡터들은 센서가 도시 내에서 가지는 '공간적 문맥'을 내포하게 됩니다.

 

4.  실험 설계 (Experimental Design)

학습된 임베딩 벡터가 실제로 예측 성능에 얼마나 기여하는지 확인하기 위해 세 가지 단계로 모델을 구축하여 성능을 비교했습니다. 데이터는 처음 3주 치를 학습(Train)에, 마지막 1주 치를 평가(Test)에 사용했으며, Random Forest, XGBoost, LightGBM 모델을 활용했습니다.

  • 실험 1 (기본 모델): 기온, 상대습도, 소음, 시간, 요일, 일산화탄소(CO) 등 기본적인 환경 변수만 사용한 모델입니다.
  • 실험 2 (좌표 기반 모델): 실험 1의 피처에 단순한 물리적 위치 정보인 '위도'와 '경도'를 추가했습니다.
  • 실험 3 (공간 지식 그래프 기반 모델 - 본 연구 제안): 실험 1의 피처에 Node2Vec으로 생성한 '16차원 공간 지식그래프 임베딩 벡터'를 추가했습니다.

과연 지식그래프 임베딩이 단순 위/경도 좌표를 사용하는 것보다 대기질 예측에 더 효과적이었을까요?

 

5.  연구 결과 및 성능 비교

연구 결과

 

세 가지 실험 결과를 비교해 보면 그 차이가 명확하게 드러납니다.

  • 환경 변수만 사용한 실험 1에서는 예측 성능(R²)이 XGBoost 기준 30.53% 수준에 머물렀습니다.
  • 좌표 정보(위도, 경도)를 추가한 실험 2에서는 공간 정보의 반영으로 인해 성능이 87.50%로 급격히 상승했습니다.
  • 공간 지식 그래프 임베딩을 추가한 실험 3은 XGBoost 기준 88.81%의 R²와 0.11504의 RMSE를 기록하며 가장 우수한 성능을 보여주었습니다.

이는 단순한 직선거리나 좌표를 넘어, 도시의 위상학적 특성과 비선형적 연결성, 행정구역 맥락을 반영한 임베딩 벡터가 모델 학습에 훨씬 유의미한 정보를 제공한다는 것을 증명합니다.

 

구별 예측 오차 분포

 

구별 예측 오차 분포를 살펴보면, 강남구(0.002)와 노원구(0.002) 같이 도시 구조가 안정적인 지역은 모델이 패턴을 잘 학습하여 낮은 오차를 보였습니다. 반면 성북구(0.094)와 서초구(0.057)는 NO₂ 분포 패턴이 더 복잡하고 변동성이 커서 상대적으로 높은 오차가 나타났습니다.

 

6.  모델 해석 (XAI) 및 공간 패턴 분석

우리가 만든 임베딩 벡터가 단순한 '블랙박스'가 아님을 확인하기 위해, 모델이 어떤 변수를 중요하게 생각했는지 XAI (Explainable AI) 기법으로 해석해 보았습니다.

 

Feature Importance 결과

 

SHAP 분석 결과

  • 피처 중요도(Feature Importance): 놀랍게도 모델의 예측 기여도 최상위에 기상 변수가 아닌 지식그래프 변수(KG_Vec_15, KG_Vec_2 등)들이 위치했습니다. 공간 기반 정보가 대기질 예측에서 얼마나 중요한지 알 수 있는 대목입니다.
  • SHAP 분석: SHAP 값의 비선형 변화를 통해 도시 내 오염 핫스팟과 같은 복잡한 공간 패턴을 포착할 수 있는 가능성을 확인했습니다.

Reverse Mapping (공간적 해석)

    가장 높은 중요도를 가진 잠재 벡터(KG_Vec_15, KG_Vec_2)가 실제로 현실 세계의 어떤 공간적 맥락을 담고 있는지 역추적(Reverse Mapping)해 보았습니다.

 

 

Reverse Mapping 결과

  • KG_Vec_15: 동대문구(용신동 등)와 성동구(마장동 등) 지역의 센서들에서 높은 값을 가졌습니다. 이 지역들은 물류 및 상업 활동이 밀집된 특성이 있는데, 임베딩 벡터가 이러한 군집 특성을 포착한 것으로 보입니다.
  • KG_Vec_2: 종로구, 중구, 노원구 등 도심 및 교통 밀집 지역 중심으로 높은 값 분포가 확인되었습니다.

결과적으로, 동일한 행정구역이나 인접한 지역의 센서들은 서로 유사한 지식그래프 벡터값을 가졌습니다. 이는 지리적 인접성과 행정 계층 구조가 임베딩에 매우 효과적으로 반영되었음을 의미합니다!

7.  마무리 및 시사점

* 이번 프로젝트를 통해 도시 공간 구조 정보를 활용한 지식그래프 기반 머신러닝 접근법이 예측 성능 향상에 크게 기여한다는 것을 확인했습니다. 특히 그래프 임베딩이 가진 '블랙박스'라는 한계를 SHAP과 Reverse Mapping을 통해 공간적 문맥으로 해석해 낸 점이 개인적으로 가장 흥미로웠던 부분이었습니다.

 

* 센서 인프라에만 의존하던 기존의 미시적 도시 환경 분석에서 한 걸음 더 나아가, 데이터 이면에 숨겨진 '공간의 관계성'을 엮어낸 이 접근법이 향후 스마트시티 정책이나 환경 데이터 분석에 좋은 인사이트가 될 수 있을 것 같습니다!