LSTM을 활용한 고위험성 조류인플루엔자(HPAI)
확산 경로 예측
*
Prediction of Highy Pathogenic Avian Influenza(HPAI)
Diffusion Path Using LSTM
최대우**⋅이원빈 ***†⋅송유한***⋅강태훈***⋅한예지***
한국외국어대학교 대학원 통계학과
요 약
이 연구는 2018년도 정부(농림축산식품부)의 재원으로 농림식품기술기획평가원 지원을 받아 수행된 연구1)
이다. 최근 시계열 및 텍스트 마이닝에서 활발히 사용되는 모델은 딥러닝(Deep Learning) 모델 구조를 활용한 LSTM(Long Short-Term Memory models) 모델이다. LSTM 모델은 RNN의 BPTT(Backpropagation Through Time) 과정에서 발생하는 Long-Term Dependency Problem을 해결하기 위해 등장한 모델이다. LSTM 모델은 가변적인 Sequence data를 활용하여 예측하는 문제를 굉장히 잘 해결했고, 지금도 널리 사용되고 있다.
본 논문 연구에서는 KT가 제공하는 CDR(Call Detailed Record) 데이터를 활용하여 바이러스와 밀접한 관계가 있을 것으로 예측되는 사람의 이동 경로를 파악하였다. 해당 사람의 경로를 활용하여 LSTM 모델을 학습시켜 이동 경로를 예측한 결과를 소개한다. 본 연구 결과를 활용하여 HPAI가 전파되는 경로를 예측하여 방역에 중점을 둘 경로 또는 지역을 선정해 HPAI 확산을 줄이는 데 이용될 수 있을 것이다.
■ 중심어 : LSTM(Long Short-Term Memory), CDR(Call Detailed Record), HPAI(고위험성 조류인플루엔자)
Abstract
The study was conducted with funding from the government (Ministry of Agriculture, Food and Rural Affairs) in 2018 with support from the Agricultural, Food, and Rural Affairs Agency, 318069-03-HD040, and in based on artificial in-telligence-based HPAI spread analysis and patterning. The model that is actively used in time series and text mining recently is LSTM (Long Short-Term Memory Models) model utilizing deep learning model structure. The LSTM model is a model that emerged to resolve the Long-Term Dependency Problem that occurs during the Backpropagation Through Time (BPTT) process of RNN. LSTM models have resolved the problem of forecasting very well using variable sequence data, and are still widely used.In this paper study, we used the data of the Call Detailed Record (CDR) provided by KT to identify the migration path of people who are expected to be closely related to the virus. Introduce the results of predicting the path of movement by learning the LSTM model using the path of the person concerned. The results
2020년 07월 14일 접수; 2020년 08월 10일 수정본 접수; 2020년 08월 25일 게재 확정. * 이 연구는 2018년도 정부(농림축산식품부)의 재원으로 농림식품기술기획평가원 지원을 받아 수행된 연구임. ** 한국외국어대학교 자연과학대학 통계학과 교수 *** 한국외국어대학교 대학원 통계학과 석사과정 †교신저자 ([email protected]) 1) 318069-03-2-HD040, 인공지능기반 HPAI 확산 원인분석 및 패턴화 연구*
Ⅰ
. 서 론
1.1 연구의 목적 고병원성조류인플루엔자의 최초 유입은 철새 를 통해 유입되고 있으나 그 이후 어떤 경로를 통해 농장에 감염을 시키는지는 정확히 밝혀지 지 않았다. 감염된 철새의 분변 1g에는 십만에 서 백만 마리의 가금류를 감염시킬 수 있는 고 농도의 바이러스가 들어있다. 이러한 분변은 주 로 오염된 차량이나 사람 등을 통해 전염이 일 어난다고 알려졌다. 본 논문 연구에서는 KT가 제공하는 CDR (Call Detailed Record) 데이터를 이용하여 바이 러스와 밀접한 관계가 있을 것으로 예측되는 사 람의 이동 경로를 파악하였다. 가공한 데이터를 활용하여 LSTM 모델을 학습시켜 이동 경로를 예측한 결과를 확인하고자 한다.Ⅱ
. 본 론
2.1 CDR 자료 2.1.1 CDR 자료에 대해 CDR 자료는 KT에서 운영하는 기지국에 반 경 내 통신사 가입자가 들어왔을 때 기지국에서 신호를 받아 해당 사람이 머무른 시간과 다음 기지국으로 이동했을 때 다음 기지국의 정보를 전달해주는 sequence to sequence 자료이다. KT 에서 제공한 CDR 자료의 구성은 고위험성 조류 인플루엔자 발생 농장의 신고 일자 기준으로 과 거 7일간 농장을 방문한 사람들의 과거 경로들 로 이루어져 있다. 해당 자료의 칼럼들의 정보 는 다음과 같다. ⋅start_time : 기지국으로 들어온 시간 ⋅end_time : 기지국에서 나간 시간 ⋅sido_nm,gun_gu_nm,eup_myun_dong_nm : 기지국 주소 정보 ⋅bts_id : 비식별화된 기지국 정보 ⋅p_id : 비식별화된 사람 정보 2.1.2 데이터 병합 KT에서 기지국 좌표에 대한 정보는 공개할 수 없어 읍.면.동 단위의 주소 형태로 자료를 받았 다. 그래서 읍.면.동 단위의 중심 좌표를 기지국 의 좌표로 이용하였다. 추가로 각 기지국의 좌표 가 HPAI가 발견된 농가 지점 반경 내 속하는지 또는 철새도래지에 속하는지를 확인하여 정리하 였다. 해당 자료의 칼럼들의 정보는 다음과 같다. ⋅address : 기지국 주소 정보 ⋅lat : address 변수의 주소의 중심 위도 ⋅long : address 변수의 주소의 중심 경도 ⋅new_bts_id : 변수의 주소에 따른 새로운 기 지국 라벨 ⋅manage_no : address 변수의 주소가 어떤 철 새도래지에 속하는지에 대한 값 2.1.3 CDR 자료 가공 병합된 데이터를 가지고 몇 가지 필터를 걸어 주었다.of this study could be used to predict the route of HPAI propagation and to select routes or areas to focus on quarantine and to reduce HPAI spread.
(1) HPAI가 발견된 농가(발생 농가)에 10분 이상 머문 사람 (2) 발생 농가와 같은 바이러스를 보유한 새 의 철새도래지에 10분 이상 머문 사람 (3) 위의 두 조건을 만족하는 각 사람이 이동 한 경로를 병합 가공된 데이터의 칼럼 정보는 다음과 같다. ⋅new_p_id : 비식별화 된 사람 정보 ⋅danger_to_occur_total_route : 각 사람의 se-quence한 이동 경로 2.2 데이터 전처리 2.2.1 NLP 소개
NLP(Natural Language Processing)는 인간의 언어 현상을 컴퓨터와 같은 기계를 이용해서 모 사할 수 있도록 연구하고 이를 구현하는 인공지 능의 주요 분야 중 하나다. NLP는 챗봇, 맞춤법 검사, 번역 등에 사용된다. 이는 언어 처리 기술 과 관련된 것으로 본 연구에서는 Next word pre-diction의 용도로 사용되었다.
<그림 1>은 Next word prediction의 예시로서 다음으로 올 단어를 예측하는 기법이다. ‘저는 외대 통계학과 학생입니다’ 라는 문장을 학습하 여 ‘외대’ 다음으로 올 단어를 예측한다.
<그림 1> Next word prediction 예시
2.2.2 데이터 전처리 한 사람의 이동 경로를 하나의 문장으로, 하 나의 기지국을 하나의 단어로 생각했다. 즉, n명 의 사람의 이동 경로는 n개의 문장이 되고 문장 안에 있는 단어는 sequence한 기지국의 나열인 것이다. <그림 2>는 CDR 데이터를 가공한 후 필터를 걸어준 결과이다. 기지국의 정보는 NB_number 로 지정하였고 index로 사람의 수를 나타내 각 사람의 sequence한 이동 경로를 나타내었다. 기 지국을 하나의 단어로 보고 숫자로 나타내주기 위해 one hot encoding을 사용한다.
<그림 2> 각 사람의 sequence한 이동 경로
One hot encoding이란 각 단어에 고유한 인덱 스를 부여하여 표현하고 싶은 단어의 인덱스 위 치에 1을, 다른 단어의 인덱스 위치에는 0을 부 여하는 방법이다. One hot encoding으로 단어는 숫자로서의 의미로 쓰이게 된다. <그림 3>은 모든 사람의 이동 경로로부터 추 출한 unique한 기지국이다. unique한 기지국은 총 200개이기 때문에 One-hot encoding의 차원 은 200차원이 된다. <그림 3> Unique한 기지국 200개
<그림 4>는 One hot encoding을 위해 기지국 에 index를 붙여준 결과이다. 이 결과를 이용해 서 각 사람의 sequence한 이동 경로를 index로 표현한다.
<그림 4> One hot encoding을 위한 word2index & index2word
<그림 5>는 <그림 4>를 이용해서 각 사람의 NB_number를 sequence한 index로 변환해준 결 과이다. 모든 사람의 이동 경로를 이처럼 se-quence한 index로 변환해준다.
<그림 5> NB_number를 index로 변환
2.2.3 Input data & Label 지정
전처리한 데이터를 이용하여 Input data와 Label을 만든다. <그림 6>은 <그림 5>의 결과를 (n-1,n)으로 <그림 6> 전처리한 data를 (n-1,n)으로 표현 표현한 것이다. 그림과 같이 12-142-66-166-...을 [12, 142], [142, 66], [66, 166], [166, ...] 로 나타 내준 것을 알 수 있다. 이는 Next word prediction 을 위해 변환이다.
<그림 7>은 <그림 6>의 (n-1, n)의 표현에서 첫 번째 열을 X로, 두 번째 열을 y로 지정한 결 과이다. X는 모델 학습으로 들어가는 Input data 가 되고 y는 정답이 되는 Label data가 된다. 즉, 모델은 Supervised learning으로 학습된다.
<그림 7> Input & Label data
<그림 8>은 Label을 200차원의 One hot en-coding으로 표현한 결과이다. 200차원이기 때문 에 그림으로 확인할 수는 없지만, 첫 번째 행에 서 1은 143번째 열에 있고 두 번째 행에서 1은 67번째 열에 있다. 해당 기지국의 index 위치에 1이, 다른 기지국의 인덱스 위치에 0이 부여된 것이다. Label을 One hot encoding으로 표현한 것처럼 Input data 또한 One hot encoding으로 변 환했다.
<그림 8> Label을 One hot encoding으로 표현
<그림 9>는 One hot encoding으로 표현된 Input data를 Embedding하여 10차원으로 축소한
결과이다. 200차원은 학습 시 시간과 용량을 많 이 필요로 하므로 차원을 축소하였다. Embed-ding의 방법으로는 Word embedding이 사용되었 다. Word embedding은 주변 단어와 연관성이 높 도록 차원을 축소하는 방법이다.
<그림 9> Input data를 Embedding하여 차원 축소 2.3 LSTM을 활용한 모델링 2.3.1 Hyper-Parameter 설정 <그림 10>은 Keras에 있는 LSTM을 이용해서 학습한 그림이다. 학습 시 사용한 Hyper-parame-ter는 다음과 같다. <그림 10> 모델 학습 ⋅Embedding size : 10 ⋅LSTM output shape : 25 ⋅activation : softmax function ⋅loss : categorical crossentropy ⋅optimizer : adam
⋅epochs : 500
Embedding size와 LSTM output shape, opti-mizer는 실험적으로 얻어진 Hyper-parameter이 다. 해당 코드로 설정했을 때 시간과 용량을 절 약하면서 좋은 성능을 보였다. activation으로 softmax function을 사용하고 loss로 categorical crossentropy를 사용한 이유는 Multi-Class Classification을 위한 loss값을 구하기 위해서이 다. epochs는 300으로 설정해도 같은 성능을 보 인다.
2.3.2 Next word prediction 함수 설정
<그림 11>은 만들어진 모델을 이용해서 다음 으로 이동할 것으로 예측되는 기지국을 Output 으로 나타낼 수 있도록 만들어 주는 함수이다. 이 함수를 이용해서 ‘A’라는 지역을 방문한 사 람이 일반적으로 어디로 이동하는지 예측할 수 있다. 하나의 경로 예측이 아닌 n번째 경로 예측 이 가능하도록 구성하였다. 예를 들어 사람들은 ‘A’라는 지역을 방문한 후에 ‘B-C-D’로 이동한 다는 것을 알 수 있도록 구성한 함수다.
<그림 11> - Next word prediction function
2.4 지역별 경로 예측 2.4.1 포천 포천 데이터는 포천 지역에서 HPAI가 발생한 농가가 포함된 기지국을 방문한 사람들의 이동 경로를 역추적한 데이터이다. 이후 포천 데이터 를 전처리한 후 LSTM을 활용하여 모델을 만들 었다. 그 후 함수를 이용하여 예상 이동 경로를 확인하였다.
<그림 12>는 철새도래지를 포함한 기지국에 서 일반적으로 어디로 이동하는지 나타낸 그림 이다. 경기도 연천군 백학면 통구리가 철새도래 지를 포함한 기지국이다. 사람들은 일반적으로 통구리에서 주월리로, 주월리에서 구읍리로, 구 읍리에서 객현리로, 객현리에서 율포리로 이동 한다는 것을 알 수 있다. <그림 12> 철새도래지로부터의 예상 이동 경로 <그림 13>은 발생 농가를 포함한 기지국에서 일반적으로 어디로 이동하는지 나타낸 그림이 다. 경기도 포천시 영북면 자일리가 발생 농가 를 포함한 기지국이다. 사람들은 일반적으로 경 <그림 13> 발생 농가로부터의 예상 이동 경로 기도 포천시에서 경기도 성남시로 이동한 후 경 기도 성남시와 경기도 연천군을 반복적으로 왕 복한다는 것을 알 수 있다. 2.4.2 화성 화성 데이터는 화성 지역에서 HPAI가 발생한 농가가 포함된 기지국을 방문한 사람들의 이동 경로를 역추적한 데이터이다. 포천과 마찬가지 로 화성 데이터를 전처리한 후 LSTM을 활용하 여 모델을 만들었다. 그 후 함수를 이용하여 예 상 이동 경로를 확인하였다. <그림 14>는 철새도래지를 포함한 기지국에 서 일반적으로 어디로 이동하는지 나타낸 그 림이다. 전라북도 완주군 봉동읍 낙평리가 철 새도래지를 포함한 기지국이다. 사람들은 일 반적으로 낙평리에서 전라북도 완주군 봉동읍 성덕리로 반복적으로 왕복한다는 것을 알 수 있다. <그림 14> 철새도래지로부터의 예상 이동 경로 <그림 15>은 발생 농가를 포함한 기지국에서 일반적으로 어디로 이동하는지 나타낸 그림이 다. 경기도 화성시 팔탄면 구장리가 발생 농가 를 포함한 기지국이다. 사람들은 일반적으로 구 장리에서 창곡리로, 창곡리에서 양노리로, 양노 리에서 구포리로, 구포리에서 쌍학리로 이동한 다는 것을 알 수 있다.
2.5 CDR 데이터의 한계 2.5.1 CDR 데이터가 적절하지 않은 이유 CDR 데이터는 정확한 지점의 위도, 경도가 아닌 KT에서 운영하는 기지국의 반경 내 통신 사 가입자가 들어오게 되면 기지국에서 신호를 받아 해당 사람이 머무른 시간과 다음 기지국으 로 이동했을 때 다음 기지국의 정보를 전달해주 는 방식으로 데이터가 수집된다. 기지국의 반경 은 위치에 따라 다르지만 보통 100∼300m로 매 우 넓은 반경을 가지고 있다. 그러므로 발생 농 가가 포함된 기지국에 갔더라도 발생 농가 주변 에 가지 않았을 확률이 높다. 마찬가지로 철새 도래지가 포함된 기지국에 갔더라도 철새도래 지 주변에 가지 않았을 확률이 높다. 만약 KT 통신사 가입자의 휴대전화가 이동 도중 꺼지거나 고의로 휴대전화를 꺼두었을 때 중간 경로가 기록되지 않는다. 모델 학습으 로 사용한 데이터에서 이런 현상을 확인하였 다. 알 수 없는 이유로 중간 경로 없이 이동한 경우가 <그림 16>과 <그림 17>로 나타낸 그림 이다. <그림 16>과 <그림 17>로 알 수 있듯 KT 통 신사 가입자의 중간 경로가 생략된 경우가 존재 한다. 이런 경우 모델을 학습하고 이동 경로를 예측할 때 인근 지역으로 예측하지 않고 멀리 떨어진 지역으로 예측하는 결과를 초래한다. <그림 18>은 포천 데이터로 학습한 모델이 멀리 떨어진 지역을 다음으로 이동할 지역으로 예측한 경우이다. 인근 지역으로 이동하지 않은 데이터를 이용하여 모델을 학습했을 때 이러한 결과를 보인다. 그림에서 알 수 있듯 중간 경로 가 나타나지 않게 이동 경로를 예측하였다. <그림 18> 포천 데이터로 예측한 이동 경로 <그림 19>는 화성 데이터로 학습한 모델이 멀 리 떨어진 지역을 다음으로 이동할 지역으로 예 측한 경우이다. 이 경우도 <그림 18>과 마찬가지 로 인근 지역으로 이동하지 않은 데이터를 이용 <그림 15> 발생 농가로부터 의 예상 이동 경로 <그림 16> 포천 데이터의 실제 이동 경로 <그림 17> 화성 데이터의 실제 이동 경로
하여 모델을 학습했을 때 이동 경로 예측할 때에 도 중간 경로가 나타나지 않는 결과를 보인다. <그림 19> 화성 데이터로 예측한 이동 경로 2.5.2 추가적인 연구를 위한 데이터 제안 더 정확한 연구를 위해 필요한 데이터는 이렇다. ⋅철새도래지와 농가를 자주 방문하는 차량 과 사람의 데이터 ⋅위치가 Point로 나타나며 위도와 경도가 표 시되는 데이터 ⋅중간에 생략된 경로가 아닌 인근 지역으로 이동하는 sequence한 데이터 만약 이러한 데이터를 이용하여 모델을 학습 시킨 후 이동 경로를 얻는다면 더 정확한 분석 이 가능할 것으로 예상한다.
Ⅲ
. 결 론
3.1 주요 방역 위치 제안 - 포천 <그림 12>를 보면 사람들은 일반적으로 철새 도래지를 포함한 기지국인 경기도 연천군 백학 면 통구리에서 주월리로 이동한다는 것을 알 수 있다. 통구리에서 주월리로 이어지는 길에 방역 을 강화하면 HPAI 확산을 줄일 가능성이 클 것 으로 예상한다. 또한, 주월리에서 구읍리, 구읍 리에서 객현리, 객현리에서 율포리로 이어지는 길에 추가적인 방역소를 설치하면 HPAI 확산을 줄일 수 있을 것이다. <그림 13>을 보면 사람들은 일반적으로 발생 농가를 포함한 기지국인 경기도 포천시 영북면 자일리에서 경기도 성남시로 이동한다는 것을 알 수 있다. 경기도 포천시에서 경기도 성남시 로 이동할 수 있는 경로의 경우의 수는 매우 많 으므로 방역 위치를 제안하기 힘들다. 이는 CDR 데이터의 한계로서 적절한 데이터로 다시 분석할 필요가 있다. 3.2 주요 방역 위치 제안 - 화성 <그림 14>를 보면 사람들은 일반적으로 철새 도래지를 포함한 기지국인 전라북도 완주군 봉 동읍 낙평리에서 성덕리로 반복적으로 왕복한 다는 것을 알 수 있다. 낙평리에서 성덕리로 이 어지는 길에 방역을 강화하면 HPAI 확산을 줄 일 가능성이 클 것으로 예상한다. <그림 15>를 보면 사람들은 일반적으로 발생 농가를 포함한 기지국인 경기도 화성시 팔탄면 구장리에서 창곡리로 이동한다는 것을 알 수 있 다. 구장리에서 창곡리로 이어지는 길에 방역을 강화하면 HPAI 확산을 줄일 가능성이 높을 것 으로 예상된다. 또한, 창곡리에서 양노리, 양노 리에서 구포리, 구포리에서 쌍학리로 이어지는 길에 추가적인 방역소를 설치하면 HPAI 확산을 줄일 수 있을 것이다.참 고 문 헌
[1] 농림축산검역본부 역학조사과. 뺷17/18 고병원성 조류인플루엔자 역학조사분석보고서뺸. 2018,12, 김천: 농림축산검역본부 도서관. [2] 최대우, 주재윤, 송유한 & 한예지, “CDR 자료를 이용한 고병원성 조류인플루엔자 분석”, 한국빅 데이터학회지 제4권 제2호 pp.13-22, 2019.