논문 정보 | |
제목 | Deep Multi-View Spatial-Temporal Network for Taxi Demand Prediction |
저자 | Huaxiu Yao, Fei Wu, Jintao Ke, Xianfeng Tang, Yitian Jia, Siyu Lu, Pinghua Gong, Jieping Ye, Zhenhui Li |
소속 | Pennsylvania State University, Hong Kong University of Science and Technology |
저널 | AAAI |
주제 | Computer Science > Machine Learning |
논문제출일 | 2018.02.27 |
인용수 | 1345회 (2024.12.18 기준) |
이번 논문은 딥러닝을 활용하여
택시 수요를 예측한 논문을 읽고 정리해보려고한다
spatio-temporal data를 다룬 여러 논문들을 찾아보다가
인용수가 많고
내가 관심있는 분야인 교통 측면을 다룬 논문이라
흥미롭게 읽었던 것 같다
딥러닝을 활용한 것도 관심이 있지만
spatio-temporal data를 어떻게 전처리하고
어떤 방식으로 시간과 공간을 처리해서
어떻게 결과를 냈는지에 초점을 맞추어서 정리할 예정이다
Introduction
정확한 교통 수요 예측은 스마트 시티에서
불필요한 에너지 자원을 낭비하지 않을 수 있도록 도와준다
이 논문에서는 택시 수요 예측을 다루었다
이전의 연구에서도 교통량, 택시 수요, 유입/출입량 등을
예측하는 다양한 교통 수요 예측 연구들이 있었다
ARIMA와 이를 변형한 모델들이
다양한 예측 변수(장소, 날씨 등)들을 고려하려 하였지만
교통 수요와 같은 복잡한 비선형 데이터들을
완벽하게 예측하진 못하였다
(Li et al. 2012; Moreira-Matias et al. 2013; Shekhar and Williams 2008)
이후 딥러닝이 등장하면서 딥러닝을 이용한 교통수요 예측 연구들이 증가하였고
도시의 교통을 이미지로 간주하여
특정 시간대의 교통량을 픽셀로 처리하여 계산하려는 시도도 있었다
(Zhang, Zheng, and Qi 2017; Zhang et al. 2016)
또한, CNN을 이용하여 복잡한 공간적 상관관계를 모델링하거나
LSTM을 이용하여 복잡한 순차적 상호작용을 모델링하려는 시도가 있었지만
이는 공간을 따로, 시간을 따로 고려하여 예측했지
공간적 관계와 시간적 관계를 동시에 고려하여 예측하지 못하였다
따라서, 본 논문에서는 CNN과 LSTM을 동시에 적용하여
복잡한 공간적 시간적 상관관계를 동시에 포착하고자 하였다
또한 이 논문에서는 몇 가지 기법을 제안한다
1. 그냥 도시 전체를 이미지로 넣고 CNN을 적용하면
상관관계가 적은 지역 때문에 예측 성능이 떨어진다
이에 따라, 가까운 것은 먼 것보다 더 연관이있다는 토블러의 지리학 제1법칙에 따라
가까운 지역만 다루는 local CNN 기법을 제안한다
2. 그렇다고 너무 가까운 지역끼리만 다루면, 공간적으로는 떨어져있지만
유사한 수요 패턴을 가진 지역들의 상관관계를 놓칠 수 있다
이에 따라, 지역의 숨겨진 의미적 관계(semantic relation)을
그래프 구조로 모델링하고, 그래프 임베딩을 통해 벡터로 변환화여
이를 모델의 context 특징으로 사용하였다
마지막으로 Fully Connected Neural Network를 통해
최종 예측을 진행하였다
본 실험은 Didi Chuxing의 대규모 택시 요청 데이터셋을 활용하여
광범위하게 진행되었다
Related Works
전통적인 교통 수요 예측은 time series(시계열) 예측법이었다
utoregressive integrated moving average(ARIMA) 모델과
이를 활용한 다양한 모델들이 연구되었다
(Shekhar and Williams 2008; Li et al. 2012; Moreira-Matias et al. 2013)
최근에는 딥러닝이 등장하면서 딥러닝을 이용한 연구들이 등장하였고
CNN을 전체 도시 혹은 region에 넣고 예측을 진행하는
연구들이 등장하였다
Ma et al. (2017), Zhang et al. (2016) and Zhang, Zheng, and Qi (2017)
또한 LSTM을 사용하여 순차적 의존성,
특히 peak-hours나 사고 직후와 같은 교통량을
예측하는 연구도 진행되었다
Yu et al. (2017)
따라서 기존 연구들과 본 논문의 가장 큰 차이점은
공간적 관계와 시간적 관계를 동시에 고려하여
예측을 진행한다는 점이다
Preliminaries
본 논문에서는 택시 수요 예측 문제를 위해
몇 가지 notation을 정의하려고 한다
이전 연구 (Zhang, Zheng, and Qi 2017; Wang et al. 2017)를 참고하여
겹치지 않는 지역을
L = {l1, l2, ..., li, ..., lN }로 city의 paritions 정의하고
30분 간의 시간 간격의 집합을
I = {I0, I1, ..., It, ..., IT }로 정의하였다
위 정의를 활용하여 아래와 같이 정의하였다
1. Taxi request
taxi request o를 (o.t, o.l, o.u)의 tuple로 정의하였다
o.t는 timestamp
o.l은 location
o.u는 user identification number이다
2. Demand (수요)
수요는 특정 시간(t)동안 특정 위치(i)에서 발생한
택시 요청 수로 정의된다
여기서 식이 | | 사이에 있는 것은 집합의 원소 개수를 뜻한다
3. Demand prediction problem (수요 예측 문제)
수요 예측 문제는 시간간격 t까지의 데이터를 사용해
t+1 시점의 수요를 예측하는 것을 목표로 한다
이러한 과정에서는 과거 수요 데이터들 뿐만 아니라
시간적 특징, 공간적 특징, 기상 정보와 같은
맥락적 특징(context feature)이 활용된다
이러한 맥락적 특징은 아래와 같이 표현되며
r은 특징의 개수를 나타낸다
최종적으로 구해야할 식은 아래와 같다
여기서
t-h 시점부터 t시점 까지
위치 L에 대한 수요 데이터이고
t-h 시점부터 t시점 까지
맥락적 특징이다
따라서 예측함수 F()는 과거 데이터와 맥락적 특징을 활용해
공간적 시간적 상호작용을 모두 분석한다
Proposed DMVST-Net Framework
이 섹션에서는 제안한 모델인 DMVST의
예측 함수 f에 대해서 설명한다
DMVST-NET의 구조는 아래와 같다
Spatial View:Local CNN
우선 앞에서 언급했듯이 전체 지역이 아닌
공간적으로 가까운 지역만을 CNN에 적용한다
위 figure에서 알 수 있듯이
시간 간격 t에 대해서 지역 i와 그 주변 지역을
한 개의 채널을 가지는 S x S image로 다룬다
위 figure에서는 7 x 7의 image로 다루었다
이 Image는 한 개의 channel을 가지며
각 픽셀 값은 해당 위치의 택시 수요를 나타낸다
또한, 도시의 경계에는 0 padding을 사용하였다
이러한 방식으로 tensor를 생성한다
시간 간격 t에 대해 지역 i에서 S x S 사이즈의 channel size는 1인 tensor
이러한 tensor는 Local CNN의 input으로 입력시키게 된다
이를 함수식으로 나타내면 아래와 같다
여기서 *는 convolution operation을 의미하고
f()는 Local CNN의 활성함수를 의미한다
활성함수는 ReLU를 사용하였으며 식은 f(z)=max(0,z)와 같다
W와 b는 k번째에 convolution layer에 대한 학습 파라미터들이고
모든 지역 partition i∈L에 대해 서로 공유되어
계산 효율을 높인다
이렇게 나온 output
에 대해서 flatten(평탄화)를 시켜
시간 간격 t와 지역 i에 대한 feature vector(특징 벡터)
를 얻는다
마지막으로 아래와 같은 식을 사용하여
Fully Connected Layer를 통해 공간 차원을 축소시켜
최종적으로 시간 간격 t와 지역 i에 대한 공간적 표현
을 얻는다
Temporal View: LSTM
시간적 관점에서 시계열 데이터를 처리하기 위해
LSTM(Long Short Term Memory) 네트워크를 활용한다
LSTM은 RNN의 한 종류로
긴 sequence를 학습할 때 발생할 수 있는
기울기 폭발 혹은 소실 문제를 해결하기위해 제안되었다
LSTM은 시간 간격 t에 대하여
memory cell
를 유지하여 이전의 sequence를 누적하여 학습한다
각 시간 간격에서 LSTM은
입력, 이전 상태, 이전 기억 셀을 input으로 받아들이는데
input gate가 활성화되었을 때 모든 정보들이 축적된다
LSTM은 아래 3개의 gate를 통해 정보를 처리한다
1. 입력 게이트(input gate): 입력 게이트가 활성화되면, 입력 정보를 memory cell에 저장
2. 망각 게이트(forget gate): 이 게이트가 활성화되면, 이전 memory cell의 정보를 일부 잊음
3. 출력 게이트(output gate): memory cell에서 출력될 정보를 제어
LSTM의 구조는 아래와 같은 수식으로 표현된다
논문에 나와있는 수식을 바탕으로 gpt를 활용하여
한국어 부연 설명을 추가해보았다
는 요소별 곱(Hadamard product)을 의미한다
는 시그모이드 함수로, 각 값이 [0, 1] 사이에 위치하도록 조정한다
는 하이퍼볼릭 탄젠트 함수로, 값이 [-1, 1] 사이에 위치하도록 조정한다
는 학습가능한 파라미터들이다
LSTM은 시간 간격의 개수 h개만큼 데이터를 처리하며
최종적으로는 지역 i에 대하여
의 output이 나온다
위 figure에서 알 수 있듯이
LSTM은 spatial view와 context feature를 합친 정보를 반영한다
이를 식으로 나타내면
이와 같이 표현하고
⊕는 spatial view와 context feature를 합치는
concatenation operator이다
Semantic View: Structural Embedding
비슷한 지역은 비슷한 수요를 가질 가능성이 크다
하지만 이러한 비슷한 지역이 반드시 가까운 곳에 위치하는 것은 아니기 때문에
지역간의 기능적(의미적, semantic) 유사성을 나타내는
지역 그래프를 구축한다
지역 그래프는 G=(V,E,D)와 같이 나타내고
V는 노드로 지역 집합 L과 동일하다
E는 모든 노드 간의 edge(연결)이고
D는 모든 edge간의 유사성 값을 포함하는 집합이다
노드 i와 j간의 유사도를 측정하기 위해서
Dynamic Time Warping(DTW) 기법을 사용한다
α는 감소율(decay rate)를 나타내는 파라미터로
본 논문에서는 1로 설정했다
DTW(i, j)는 두 지역간의 Dynamic Time Warping distance이다
본 논문에서는 주간 평균 수요 시계열 데이터를 수요 패턴으로 사용하였고
이는 실험의 training data에서 계산된다
이렇게 구축된 그래프는 fully connected가 되는데
왜냐하면 모든 지역은 서로 연결되어있기 때문이다
그래프의 각 노드를 저차원 벡터로 인코딩하며
구조적 정보를 유지하기 위해서
graph embedding (그래프 임베딩) 기법을 사용한다
지역 i에 대하여 벡터 m으로 변환되고
이 벡터 m을 네트워크 전체 아키텍처와 공동 학습(co-train)시키기 위해
Fully Connected Layer(완전 연결 계층)에 입력한다
이는 아래와 같은 식으로 정의된다
W와 b는 학습가능한 파라미터이다
본 논문에서는 그래프 임베딩 기법으로 (Tang et al. 2015)의
LINE을 사용하였다
Prediction Component
앞에서 정의한 우리의 예측 목표는
시간 t까지의 데이터를 바탕으로
t+1의 수요를 예측하는 것이다
이를 위해 위에서 언급했던
spatial, temporal, semantic 세가지 view를
하나로 결합하여 벡터 m과 LSTM의 출력 h에 이어 붙인다
LSTM의 출력 h는 spatial view와 temporal view를
모두 포함하고 있다
이와 벡터 m을 이어붙여 Fully Connected Network에 입력하여
각 지역에 대한 최종 예측값인
를 얻는다
최종 예측 함수는 아래와 같다
W와 b는 학습 가능한 파라미터이고
이에 sigmoid 함수를 적용시켜
[0, 1] 사이의 값을 얻는다
Loss Function
본 논문에서 사용한 loss function은 아래와 같다
θ는 학습가능한 모든 파라미터를 가리키며
γ는 하이퍼파라미터이다
loss function은 크게 2가지로 구분되는데
첫 번째는 평균 제곱 손실(mean square loss)이고
두 번째는 평균 절대 백분율 손실(Mean Absolute Percentage Loss, MAPE)의 제곱이다
실제로 평균 제곱 오차(Mean Square Error)는 큰 값과 관련이 깊기 때문에
큰 값이 학습을 방해하는 것을 방지하기 위해 MAPE를 함께 사용한다
Experiment에서는 공정성을 위하여
모든 regression이 동일한 loss function을 사용하며
최적화를 위해 optimizer는 Adam을 사용하였고
구현에는 Tensorflow와 Keras를 사용하였다
모델 구현 알고리즘의 pseudo code는 아래와 같다
Experiment
Dataset
실험 데이터로 Didi Chuxing의 대규모 온라인 택시 수요 데이터를 사용한다
Didi Chuxing은 중국에서 가장 큰 온라인 택시 호출 회사 중 한 개이다
dataset은 2017년 2월 1일부터
2017년 3월 26일까지 광저우 시의 택시 수요 데이터를 포함한다
데이터를 20 x 20의 격자형태로 나누었으며
각 격자의 크기는 0.7km x 0.7km이다
하루 약 평균 30만건의 요청이 발생하며
실험에서 사용된 context feature은
Tong et al. (2017)에서 사용된 유사한 특징을 기반으로 한다
이 유사한 특징들은
1. 시간적 특징: 지난 4개의 시간 구간에서의 평균 수요 값
2. 공간적 특징: 지역 중심의 위도와 경도
3. 기상 특징: 날씨
4. 이벤트 특징: 공휴일 여부
를 포함한다
training 및 test dataset은 아래와 같다
2017년 2월 1일부터 2017년 3월 19일까지(47일)은 training dataset으로 사용하였다
2017년 3월 20일부터 2017년 3월 26일(7일)은 test dataset으로 사용하였다
시간의 구간은 30분으로 설정하였다
test 할 때는 이전 8개의 시간 구간(4시간) 데이터를 사용해
다음 시간 구간의 택시 수요를 예측하였다
실제로 낮은 수요는 중요하지 않기 때문에
수요 값이 10보다 작은 sample은 filtering하였다
Evaluation Metric
평균절대백분율오차(MAPE)와 제곱평균제곱근오차(RMSE)를 사용해
모델을 평가하였다
는 시간 구간 t+1에서 지역 i에 대한 예측 값을
는 시간 구간 t+1에서 지역 i에 대한 실제 값을
ξ는 sample의 총 개수를 가리킨다
Methods for Comparison
본 논문에서 제안한 모델을 다음과 같은 방법들과 비교하였다
1. Historical Average(HA, 역사적 평균)
동일한 시간 구간(하루 중 같은 시간)의 과거 수요 평균 값을 사용해 수요 예측
2. ARIMA(AutoRegressive Integrated Moving Average)
시계열 데이터를 예측하기 위해 널리 사용되는 모델로
이동 평균(Moving Average)과 자기회귀(Autoregressive) 요소를 결합한다
3. Linear Regression
일반 최소제곱 회귀(OLSR), 릿지 회귀(Ridge Regression), 라쏘(Lasso) 회귀와
같은 방법들을 비교한다
4. Multi-Layer Perceptron (다층 퍼셉트론)
4개의 완전 연결 계층을 가진 신경망과 비교한다
5. XGBoost
6. ST-ResNet
교통량 예측을 위한 딥러닝 기반 접근법으로
도시의 교통 밀도 맵을 이미지로 변환하고
CNN을 사용해 과거 이미지에서 특징을 추출한다
위와 같은 방법들과의 공평한 비교를 위해
모든 방법에 동일한 context feature를 사용하며
ARIMA와 HA를 제외한 모든 방법에 대해
동일한 loss function을 사용하였다
또한, 제안된 모델의 구성 요소별 성능을 분석하였다
1. temporal view (시간적 관점)
LSTM만 사용하며 입력으로 context feature를 사용한다
context feature 없이 단순이 이전 시간 구간의
수요 값만 사용할 경우
context feature를 사용해야만 LSTM이
복잡한 순차적 상호작용을 모델링할 수 있다
2. Temporal + Semantic View
시간적 의존성과 의미 정보를 모두 캡처
3. Temporal + Spatial (Neighbors) View
시간 구간 t에서 이웃 지역의 수요값을
context feature와 결합해 LSTM의 입력값으로 사용한다
단순 이웃 지역 데이터를 사용하는 것만으로는
복잡한 공간관계를 모델링 할 수 없음을 증명한다
4. Temporal + Spatial (LCNN) View
시간적 및 지역적 공간 관점을 모두 고려한다
공간 관점은 제안된 지역 CNN(Local CNN)을 사용해 이웃 관계를 모델링한다
지역 CNN의 window 크기가 너무 커져 도시 전체를 포함할 경우
전역 CNN과 동일해져 성능이 저하된다
이는 Locality(지역성)의 중요성을 나타낸다
5. DMVST-Net
제안된 모델
공간, 시간, 의미적 관점을 결합한 모델이다
Processing and Parameters
모든 지역의 택시 수요 데이터를 [0, 1] 범위로
정규화하기 위해서 Max-Min Normalization을 사용하였다
또한, 공휴일이나 날씨같은 이산적인 feature들은
one-hot encoding을 사용하였고
최근 4개 시간 간격의 평균 수요값과 같은
연속형 feature들은 Max-Min Normalization을 사용하여 스케일링하였다
해당 실험은 NVDIA P100 GPU 4개를 사용하는
cluster에서 수행되었다
Spatial View Parameters는 다음과 같다
각 이웃의 크기는 9 x 9로 설정하였으며
이는 6km x 6km 사각형이다
CNN에서는 레이어 수인 K = 3,
filter의 크기인 τ = 3,
사용된 filter의 개수인 λ = 64,
output 차원은 d = 64이다
Temporal View Parameters는 다음과 같다
과거 8개의 시간 간격 데이터를 사용하여
총 4시간의 sequence를 modeling하였다
LSTM sequence의 길이인 h = 8이다
Semantic View Parameters는 다음과 같다
graph embedding 출력 차원은 32이고
semantic view의 출력 차원은 6이다
최종 예측 구성요소의 Fully Connected Layer에서는
Sigmoid 함수를 활성화함수로 사용하였다
그 외의 Fully Connected Layer에는
ReLU 함수를 사용하였다
Local CNN에서는 Batch Normalization을 적용하였다
data의 90%를 training dataset으로 사용하였고
나머지 10%는 validation dataset으로 사용하였다
또한, 학습이 최소 10번에서 최대 100번의 Epoch을 돌도록 설정하였는데
validation dataset에서 성능이 10번 연속 개선되지않을 경우
early-stop을 통해 학습을 중단시켰다
Performance Comparison
comparision with state-of-the-art methods
위 table을 결과를 보면
제안한 모델인 DMVST-Net은
모든 방법 중에서 가장 낮은 MAPE와 RMSE를 달성했다
HA와 ARIMA는 예측에 과거 수요값만 사용하기 때문에
MAPE값이 높다
Regression methods인 OLSR, LASSO, Rigde, MLP, XGBoost는
추가적으로 맥락적 특성을 고려하기 때문에 더 나은 성능을 보여주지만
시간적 및 공간적 의존성을 모델링하지 않기 때문에
제안된 모델에 비하여 성능이 떨어지는 것을 확인할 수 있다
또한, ST-ResNet과 비교했을 때
제안된 모델은 시간적 의존성을 모델링하기 위해
LSTM을 추가적으로 사용했으며
맥락적 특성도 고려하기 때문에
더 좋은 성능을 보였다
또한, Local CNN과 semantic view를 사용하여
지역간의 상관성도 더 잘 포착하였다
Comparison with variants of our proposed method
위 table은 DMVST-Net과 그 변형된 모델들의 성능을 보여준다
Temporal View + Spatial (Neighbor) View와 Temporal View + Spatial (LCNN) View 모두
MAPE가 각각 더 낮은 것을 볼 수 있다
이는 인접한 공간의 의존성을 고려하는 것이 더 효과적임을 보여준다
또한, Temporal View + Spatial(LCNN) view는 Temporal View + Spatial (Neighbor) View보다
더 나은 성능을 보이는데, 이는 Local CNN이 비선형 관계를 더 잘 포착하기 때문이다
또한 sematic view를 사용한 것이 MAPE와 RMSE가 더 낮은 것을 확인할 수 있다
결론적으로, 이는 모든 관점 (Spatial, Temporal, Semantic)을 결합했을 때
모델의 예측 성능이 가장 뛰어나다는 것을 보여준다
Performance on Different Days
위 figure는 요일별로의 성능을 보여준다
공간제약으로 인해 MAPE값만 표시했으며
RMSE에 대해서도 동일한 결론을 얻었고
HA와 ARIMA는 성능이 낮아 결과에서 제외하였다
위 figure에서 제안된 모델은 다른 방법들에 비해서
각 요일마다 일관되게 일정한 성능을 보였다
또한 주말의 성능이 평일보다 전반적으로 낮은 것을 확인할 수 있는데
이는 주말의 수요 패턴이 덜 규칙적이기 때문에
예측에 어려움을 보이는 것으로 보인다
따라서 견고함(robustness)를 평가하기 위해
주말 대비 평일의 예측 오차의 상대적 증가율을 살펴보았다
Table3의 결과에 따르면, 제안된 방법의 상대적 오차 증가율은
4.04%로 가장 작았다
Temporal View만 고려한 LSTM은 다른 모델들에 비해
4.77%라는 낮은 증가율을 보였으며
이는 시간적 의존성을 모델링한 덕분으로 보인다
결론적으로, 제안된 방법은 ST-ResNet보다도
더 견고한 성능을 발휘하였다
Influence of Sequence Length for LSTM
이 섹션에서는 LSTM의 sequence 길이가
성능에 어떤 영향을 미치는지 분석한다
위 figure 3a는 sequence 길이에 따른 예측 오차를 보여준다
길이가 4시간일 때 가장 적은 MAPE를 보여준다
또한 sequence 길이가 증가함에 따라
MAPE가 감소하는 추세를 보여주며
이는 시간적 의존성을 고려하는 것이 중요함을 나타낸다
sequence 길이가 4시간 이상으로 증가하면
성능이 약간 저하되는데,
이러한 현상의 한 가지 가능성은
더 긴 시간적 의존성을 고려할 경우
학습해야할 매개변수의 수가 증가하기 때문에
학습 과정이 더 어려워 질 수 있다
Influence of Input Size for Local CNN
본 눈문에서는 CNN을 국소적으로 적용함으로써
연관성이 약한 지역들의 관계를 학습하지 않는다는 점에 기반을 두고 있다
이를 검증하기 위해 Local CNN의 입력크기 S를
다양하게 변경하여 실험을 진행하였다
입력크기 S가 더 커질수록 모델은
더 넓은 지역에서의 관계를 학습할 수 있다
위 figure는 S의 크기에 따른 MAPE를 보여준다
결과에 따르면, 3개의 Convolution Layers가 사용되고
지도의 크기가 9 x 9일 때 가장 우수한 성능을 발휘했다
반면 크기가 5 x 5로 줄어들면 예측 오차가 증가하는데
이는 너무 좁은 지역만을 학습시켜서
연관성이 있는 지역들이 충분히 학습되지 못했기 때문일 수 있다
또한, 크기가 13 x 13으로 증가하면 예측 오차가 크게 증가하는데
이 경우, 광저우의 공간 중 40% 이상을 포함하게 되는데
이는 지역적으로 중요한 상관관계가 크기가 증가함에 따라 평균화될 수 있음을 보여준다
또한, 4개와 5개의 convolution layers로도 실험을 해보았지만
모두 일관적으로 9 x 9에서 가장 좋은 성능을 보이는 것을 확인했다
conclusion
본 논문의 목적은 택시 수요 예측을 위한 새로운
Depp Multi-View Spatial-Temporal Network(DMVST-Net)를
제안하는 것이다
이 모델은 공간적(spatial), 시간적(temporal), 의미적(semantic) 관점을 통합하며
이는 각각 Local CNN, LSTM, Semantic Graph Embedding을 통해 모델링된다
실험 결과 제안된 방법이 다른 경쟁 방법들보다
현저히 우수한 성능을 보여주는 것을 확인했다
향후 연구 방향으로는, 제안된 접근법의 성능 향상 요인을
더 깊이 조사하여 해석 가능성을 높이는 것을 계획하고 있다
또한, 본 논문에서는 semantic information이 암묵적으로 모델링되었지만
POI와 같은 더 명시적인 정ㅂ조를 통합하는 것도 고려할 예정이다