단어 임베딩과 GRU를 활용한 상품 범주 분류
초록
최근 온라인 쇼핑몰을 이용하는 소비자가 증가하면서 온라인 쇼핑 거래를 비롯하여 쇼핑몰에 등록되는 상품의 수 역시 매우 빠르게 증가하고 있다. 하지만 사람이 직접 수많은 상품의 이름만 보고 정확하고 빠르게 상품의 범주를 분류하기는 쉽지 않다. 본 논문에서는 기계학습을 이용하여 상품명 정보 데이터를 효과적으로 분류하는 모델을 구현하였다. 상품 정보를 분류하기 위해 데이터 전처리, 형태소 분석, 단어 임베딩, GRU 모델 등을 활용하였다. 특히, 사전 학습된 단어 임베딩 모델을 사용하지 않고, 기계학습을 이용하여 데이터의 특징을 분석하고 이를 바탕으로 모델을 학습시켰으며, 시각화를 통해 모델이 적절하게 데이터의 특징을 학습하였음을 확인하였다. 구현한 모델의 성능을 측정하기 위해 식품, 출산/육아용품, 생활/취미용품 총 세 가지 상품 범주에 대해 다양한 상품명을 분류하는 실험을 수행하였으며, 각 범주별로 AUC 값이 0.91, 0.82, 0.88로 비교적 분류가 잘 수행됨을 확인하였다.
Abstract
Recently, as the number of consumers using online shopping malls increases, both online shopping transactions and the number of products registered in the shopping malls are also increasing very rapidly. However, it is not easy for humans to classify the category of products accurately and quickly, only by examining their names. In this paper, we developed an effective classification model for product information data using machine learning. To this end, we use various data preprocessing steps, morpheme analysis, word embedding, and a GRU model. In particular, instead of using a pretrained word embedding model, we analyzed the features of the data using machine learning and built a word embedding model based on them. Through visualization, we confirmed that our classification model learned the data features appropriately. To evaluate the performance of the model, we conducted experiments on classifying various product names into three categories, namely, food, maternity/childcare products, and household/hobby products. Our model classified product names well, with the AUC values of 0.91, 0.82, and 0.88 for each category.
Keywords:
machine learning, product classification, text classification, word embedding, GRUⅠ. 서 론
상품 데이터의 올바른 분류는 소비자가 원하는 상품을 빠르게 찾고, 원하는 검색 결과를 얻을 수 있도록 도와준다. 한 대형 포털사이트 쇼핑몰에는 하루 평균 약 2,000만 개의 상품이 등록되며, 수많은 상품 중에서 원하는 품목을 찾기 위해서는 상품을 올바르게 분류하는 것이 매우 중요하다.
기존 연구에서 제안하는 모델들은 자동으로 상품 범주를 분류하기 위해 상품명 이외에도 브랜드명, 상품 이미지, 계층적 상품 범주 분류 체계, 기호 데이터 등 다양한 특징을 모델의 입력으로 사용한다[1][2]. 하지만 이러한 모델들은 상품명 이외의 다른 정보가 주어지지 않는 환경에서는 사용할 수가 없다는 단점이 있다.
본 연구에서는 공공 데이터 포털[3]에서 제공하는 상품 현황 데이터를 이용하여 상품 범주를 자동으로 분류하는 기계학습 모델을 설계하였다. 특히, 다양한 상품 정보가 제공되지 않는 환경을 가정하고 단순히 상품명만을 이용하여 상품을 분류한다. 본 논문에서 구현한 모델은 단어를 벡터화시키는 임베딩 층과 상품에 대한 정보를 학습하는 GRU(Gated Recurrent Units)[4] 계층, 학습한 상품명 정보를 기반으로 분류를 진행하는 완전 연결 계층으로 구성된다. 정보가 최대한 손실되지 않도록 모델의 입력으로 들어가는 상품명의 길이를 통일하였으며, 텐서플로우[5]에서 지원하는 토크나이저[6]를 이용하여 한글, 영어 모두 입력으로 사용할 수 있도록 하였다. 임베딩 층을 추가하여 모델 학습 과정 외에 따로 단어 임베딩 과정을 거치지 않는 종단 간 형태의 모델을 구성하였다.
구현한 모델의 성능을 평가하기 위해 GRU의 유닛 개수와 드랍아웃을 조정해가며 파라미터 최적화를 진행하였으며, 가장 성능이 좋은 모델을 대상으로 Categorical Accuracy, F1-score, ROC(Receiver Operating Characteristic) 커브 아래 면적(AUC, Area Under the Curve) 등을 이용하여 모델의 성능을 평가하였다. 실험 결과 우리 모델은 식품, 출산/육아용품, 생활/취미용품 총 세 가지 상품 범주에 대해 약 70%의 정확도로 상품명 분류를 수행할 수 있었고, F1-score는 82.395였다. 또한, 각 범주별로 AUC 값이 0.91, 0.82, 0.88로 비교적 분류가 잘 수행됨을 확인하였다.
본 논문의 구성은 다음과 같다. 먼저 2장에서는 형태소 분석 및 단어 임베딩 등 배경지식에 대해 살펴본다. 다음으로 3장에서는 데이터 전처리 방법 및 본 논문에서 구현한 상품 범주 분류 모델에 대해 설명한다. 4장에서 실험 환경 및 실험 결과를 소개하고, 마지막으로 5장에서 논문을 맺는다.
Ⅱ. 배경지식
단어 임베딩은 텍스트를 숫자의 배열인 벡터로 바꾸는 과정 또는 바꾼 결과를 의미한다[7]. 기계학습을 이용하여 텍스트를 처리하기 위해 먼저 텍스트를 계산 가능한 벡터로 변환해야 한다. 이러한 과정을 임베딩이라고 하며, 임베딩은 자연어 처리 성능에서 큰 비중을 차지한다. 단어 임베딩을 수행하기 위해서는 여러 과정을 거쳐야 하는데, 본 절에서는 텍스트가 벡터로 변환되기까지 거치는 각 단계에 대해 간단히 설명한다.
2.1 형태소 분석
형태소란 의미의 최소 단위로, 더 이상 분해 불가능한 가장 작은 의미 단위이다. 입력 텍스트를 가장 작은 의미 단위인 형태소열로 바꾸는 작업을 형태소 분석이라고 한다. 형태소 분석은 일반적으로 “전처리-분석 후보 생성-결합제약 검사-분석 후보 선택-후처리”로 이루어진다.
전처리 단계에서는 문장부호, 숫자, 특수문자열 처리, 어절 분리 등을 진행한다. 분석 후보 생성에서는 여러 변형규칙에 따라 변형된 단어를 원형으로 복원하는 규칙을 적용한다. 결합제약 검사에서는 결합제약 규칙을 통해 잘못 분석된 결과를 배제한다. 분석 후보 선택 단계에서는 어휘사전의 정보를 반영한 최종 결과를 생성한다. 최종적으로 중의성 및 미등록어를 처리하는 후처리를 진행하여 형태소 분석을 마친다. 파이썬에는 한국어 형태소 분석을 자동으로 지원하는 여러 라이브러리를 지원한다. 본 논문에서는 꼬꼬마 한국어 형태소 분석기[8]를 이용하여 데이터의 특징을 파악하고, 이를 이용하여 모델의 임베딩 층이 잘 학습되었는지 확인하였다.
2.2 단어 임베딩
단어를 벡터로 표현하는 방법으로 희소 표현, 밀집 표현, 단어 임베딩 기법 등이 많이 사용된다. 본 절에서는 각각의 특징에 대해서 간략히 살펴본다.
먼저, 벡터 또는 행렬 값의 대부분을 0으로 표현하는 방법을 희소 표현이라고 한다. 희소 표현을 이용하여 단어를 표현하면, 고려하는 단어의 개수가 많아질수록 벡터의 차원도 비례하여 커지는 단점이 있다. 만약 표현하고자 하는 단어 말뭉치가 50,000개라면 벡터의 차원 또한 50,000개가 된다. 예를 들어, 사과라는 단어의 인덱스가 3이라면 희소 표현으로 표현된 벡터는 다음과 같다.
(1) |
이때 Apple을 표현하는 벡터의 크기는 50,000이다. 희소 표현을 사용할 경우 공간 낭비가 심하다는 단점과 단어의 의미를 벡터 안에 잘 담지 못한다는 단점이 있다.
희소 표현과 반대되는 표현인 밀집 표현은 단어 집합의 크기가 벡터의 차원을 정하지 않는다. 대신 사용자가 설정한 값(일반적으로 말뭉치의 크기보다 매우 작은 값)으로 벡터 표현의 차원 수가 정해진다. 또한, 희소 표현과는 다르게 0, 1뿐만 아니라 실수 값을 가질 수 있다. 다음은 밀집 표현으로 표현된 Apple 벡터의 예이다.
(2) |
단어 임베딩은 단어를 밀집하게 표현하는 방법으로, Word2Vec[7], LSA[9], FastText[10], GloVe[11] 등과 같은 방법을 많이 사용한다. 본 논문에서는 텐서플로우에서 지원하는 임베딩 레이어를 이용하여 단어를 벡터로 변환하였다. 이 방식은 테이블에서 단어에 대응되는 벡터 값을 찾는 방식으로 볼 수 있다. 초기에 임베딩 층에 해당되는 테이블이 랜덤으로 초기화되고, 학습이 진행되는 과정에서 테이블의 각 엔트리가 대응되는 단어의 의미 정보를 담고 있는 벡터로 학습된다.
Ⅲ. 데이터 전처리 및 모델
3.1 형태소 분석 및 데이터 추출
본 논문에서는 공공 데이터 포털의 상품 현황 데이터를 사용하였다. 상품 현황 데이터는 각 상품의 유형, 카테고리(대), 카테고리(중), 상품명, 판매단위, 판매가격, 기업명에 대한 정보를 포함하고 있으며, 이 중 상품의 카테고리(대)와 상품명에 대한 정보만을 사용하였다. 범주별로 몇 개의 상품이 속하는지 분석하였으며, 그중 개수가 비슷한 식품, 출산/육아용품, 생활/취미용품에 속하는 상품만을 사용하였다. 먼저 상품명은 특수문자를 제거한 뒤, 꼬꼬마 한국어 형태소 분석기를 이용하여 형태소 분석을 실시하였다. 이렇게 형태소 분석을 시행한 상품명은 형태소 단위로 나뉘게 된다. 각 범주별로 어떤 형태소가 많이 사용되는지 분석하였다.
그림 1은 출산/육아용품 범주에 속하는 상품명을 형태소 단위로 나눈 다음 워드 클라우드로 표현한 것이다. 출산/육아용품 범주에는 주로 아기, 세트, 띠 등과 같은 단어가 빈번하게 출현함을 알 수 있다. 이와 같은 특징들을 이용하여 모델의 임베딩 층이 잘 학습되었는지 확인하였다. 즉, 학습이 완료된 모델에서 임베딩 층을 추출하여 아기 벡터와 유사한 벡터를 출력하여 세트, 띠, 기저귀와 같은 단어가 출력되는지 확인하였다.
3.2 토크나이저
텐서플로우에서 지원하는 토크나이저를 이용해 각 형태소에 대해 고유한 정수를 부여하였고, 형태소 단위로 나뉜 상품명을 벡터로 만들었다. 예를 들어, ‘훈제오리 런치박스’는 “훈제”, “오리”, “런치”, “박스”로 형태소 분해되고, 이는 다시 [974, 84, 396, 68]과 같은 벡터로 변환된다. 토크나이저는 이전에 관찰하지 못한 새로운 형태소가 포함된 상품명이 입력으로 들어오면 기존 말뭉치의 형태소를 조합하여 벡터를 출력한다. 위와 같은 방법은 상품명에 한국어뿐만 아니라 영어, 숫자가 들어와도 기존에 학습된 말뭉치를 이용하여 새로운 벡터를 생성할 수 있다는 장점이 있다. 학습된 모델에 이전에 관찰하지 못한 단어가 들어있는 새로운 상품명이 모델의 입력으로 들어올 경우 새로 임베딩 층을 학습하지 않고 토크나이저가 기존 학습된 단어를 이용하여 상품명의 벡터를 만들기 때문에 아무 문제없이 새로운 상품에 대한 분류를 진행할 수 있게 된다.
3.3 패딩
모델의 입력으로 들어가는 상품명 벡터의 길이는 일정해야 한다. 따라서 패딩을 통해 벡터의 길이를 일정하게 맞춰주는 작업을 진행하였다. 그림 2는 상품명 벡터들의 길이를 히스토그램으로 나타낸 것이다.
실험에 사용된 데이터의 경우 벡터 길이를 40으로 변환하였을 때 데이터의 96.44%를 온전하게 보존할 수 있었다. 따라서 본 논문에서는 모든 상품명 벡터의 길이를 40으로 고정하여 실험을 진행하였다.
3.4 단어 임베딩 계층
본 논문에서는 모델의 입력으로 사용되는 형태소 단위로 나눈 상품명에 대해 단어 임베딩을 수행하였다. 단어 임베딩은 각 단어(형태소)를 벡터화시키는 작업을 의미한다. 특히, 사전 훈련된 단어 임베딩 모델을 사용하지 않고, 입력된 상품명이 어떤 범주에 속하는지 학습하는 과정에서 단어 임베딩 모델도 함께 학습하였다.
사전 훈련된 단어 임베딩을 사용하면 같은 단어라 할지라도 의도된 의미대로 학습이 되어있지 않은 경우가 있을 수 있기때문에, 기계학습 모델과 단어 임베딩을 함께 학습하였다.
3.5 모델 구성
본 논문에서 설계한 모델은 임베딩 층과 GRU, 완전 연결 계층으로 구성되어있다. GRU는 개선된 LSTM(Long Short-Term Memory) 모델이다. 3개의 게이트를 사용하는 기존 LSTM 모델을 2개의 게이트만을 사용하도록 개선했다[4][12]. 단어의 길이가 40으로 고정된 상품명 정보가 임베딩 층으로 들어가면 임베딩 층을 통해 상품명 단어(단어의 인덱스)가 200차원 벡터로 변환된다. 임베딩 층을 통해 나온 벡터는 GRU로 들어간다. GRU에서는 단어 벡터 시퀀스에 대한 정보를 학습하고, 학습된 정보를 바탕으로 새로운 벡터를 완전 연결 계층으로 전달한다. 완전 연결 계층은 출력층으로, 활성화 함수로 소프트맥스 함수를 사용하여 상품명이 세 가지 범주 중 어떤 범주에 속하는지 최종적으로 출력한다. 그림 3은 우리 모델을 도식화한 것이고 그림 4는 이를 알고리즘 형태로 기술한 것이다.
본 논문에서 구성한 모델은 종단 간 형태의 모델로 상품명 데이터로부터 해당 상품이 어떤 범주에 속하는지 한 번에 예측을 수행하는 모델이다.
한글과 영어, 숫자가 혼합된 상품명 혹은 길이가 긴 상품명 정보가 입력으로 주어져도 토크나이저, 단어의 길이 고정, 임베딩 층을 통해 효율적으로 상품명이 어떤 범주에 속하는지 예측할 수 있다.
Ⅳ. 실 험
4.1 실험 환경
모든 실험은 Intel i7-8700 CPU, 32GB RAM, RTX 2080 8GB VGA 사양의 PC에서 진행하였다. 총 4,200개의 데이터를 8:2의 비율로 학습 데이터와 검증 데이터로 나누어 실험을 진행하였다. Categorical Accuracy가 높게 나오도록 파라미터를 조정하였으며, 가장 성능이 높은 모델을 대상으로 F1-score와 ROC 커브를 이용하여 모델의 성능을 평가하였다. 또한 학습이 완료된 모델에서 임베딩 층을 추출하여 상품명의 특징이 잘 반영되도록 학습되었는지 시각화하여 확인해보았다.
4.2 임베딩 계층 시각화
상품명과 함께 학습이 진행된 단어 임베딩 계층이 학습이 잘 되었는지를 확인하기 위해 시각화를 진행하였다. 출산/육아용품에서 자주 등장하는 단어(아기)와 의미상 유사한(벡터 사이의 거리가 가까운) 단어를 텐서플로우에서 지원하는 임베딩 프로젝터[13]를 이용하여 시각화하였다.
그림 5는 학습된 단어 임베딩 모델에서 아이와 유사도가 높은 단어를 고차원 공간상에서 시각화한 결과이다. 아이와 관련된 상품에 자주 들어가는 단어인 이유식, 나무, 잡곡, 당근 등의 단어가 유사도가 높아 강조되어 표현되어 있음을 확인할 수 있다. 이를 통해, 단어 임베딩 계층이 적절하게 상품명의 특징을 반영하여 학습되었음을 알 수 있다.
4.3 모델 최적화
GRU의 드랍아웃과 유닛의 개수를 변경해가며 실험을 진행하였고, 정확도가 높은 모델에 대해서 추가 실험을 진행하였다. 옵티마이저로는 RMSProp을 사용하였고, 에폭은 30으로 설정하여 실험을 진행하였다. 그림 6은 GRU의 유닛 개수와 드랍아웃의 유무에 따라 모델을 10번씩 학습시킨 후, 정확도 분포를 상자 수염 그림으로 나타낸 것이다. 표 1은 각 모델의 평균 정확도를 보여준다. 실험 결과 모든 경우 드랍아웃이 적용되었을 때 더 높은 성능을 보였으며, 그중에서도 유닛의 개수가 128개일 때 성능이 가장 높았다. 표 2는 유닛 개수를 128개로 고정하고 드랍아웃의 정도에 따라 성능을 비교한 결과이다. 드랍아웃이 0.5일 때 가장 높은 정확도를 보여준다.
4.4 모델 성능평가
드랍아웃을 0.5로, GRU 유닛 개수를 128로 고정하여 학습된 최적화된 모델에 대해 F1-score와 ROC 커브를 이용해 모델의 성능을 측정하였다. 다음 수식은 F1-score의 수식을 나타낸다.
(3) |
표 3은 기존 연구에서 제안한 모델인 ProBERT[2]의 성능과 본 논문에서 구현한 모델의 성능을 정밀도, 재현율, F1-score의 관점에서 비교한다. ProBERT는 복잡한 BERT[14] 모델을 기반으로 하며, 상품의 ID, 이름, 상품 설명, 해당 상품의 URL 등 상품에 대한 다양한 정보를 입력으로 사용한다. 본 논문에서 구현한 모델의 성능이 ProBERT에 비해 다소 떨어지긴 하지만(동일한 데이터에 대한 실험 결과가 아니기 때문에 단순 비교는 어렵지만), 입력 데이터로 상품명만을 사용하는 점과 모델의 간결함을 고려할 때 본 논문에서 제시한 모델도 충분히 상품을 잘 분류하고 있다고 볼 수 있다.
그림 7은 표 2에서 가장 정확도가 높게 나온 모델을 이용하여 ROC 커브를 그린 것이다. 식품(class 0), 출산/육아용품(class 1), 생활/취미용품(class 2) 분류에 대해 ROC 커브 아래 면적(AUC) 값이 모두 1에 근접해 있으므로 해당 모델이 각 범주별로 상품명 분류를 잘 수행하고 있음을 알 수 있다. 특히, 식품(AUC = 0.91), 생활/취미용품(AUC = 0.88), 출산/육아용품(AUC = 0.82) 순으로 분류가 잘 되고 있음을 확인할 수 있었다.
Ⅴ. 결 론
본 논문에서는 공공 데이터 포털에서 제공하는 상품 현황 데이터를 이용하여 상품 데이터를 분류하는 기계학습 모델을 구현하였다. 구현한 모델은 상품명 이외에도 상품 이미지, 상품 설명, 상품 범주 등에 대한 정보를 이용하는 기존 연구와 달리, 상품명 정보만을 이용하여 상품 분류를 진행한다. 텐서플로우에서 지원하는 토크나이저를 이용하고, 모델 내부에 임베딩 계층을 포함하여 종단 간 형태의 모델을 구성하였으며, 이를 통해 상품명에 한글이 아닌 숫자, 영어가 포함되어 있어도 분류를 잘 진행할 수 있는 모델을 설계하였다. 또한, 모델의 임베딩 계층을 추출하여 시각화를 통해 상품명의 특징이 잘 파악되었는지 확인하였으며, 다양한 실험을 통해 모델이 충분한 성능을 보이는지 확인하였다. 상품명 이외의 상품 관련 데이터를 다양하게 사용하는 모델과 비교해 보았을 때도 유사한 성능을 보였으며, 이를 통해 본 논문에서 제시한 모델이 간결함에도 불구하고 충분히 상품 분류를 잘 수행하고 있음을 확인할 수 있었다.
본 논문에서 구현한 모델을 실제 산업 현장에서 바로 활용하기에는 아직 부족한 점이 많지만, 더 많은 양의 데이터를 확보하여 데이터의 특징을 더욱 정확히 파악한다면, 모델의 정확도를 보다 향상시킬 수 있을 것으로 사료된다. 현재 연구는 단순한 GRU 모델을 이용하여 진행하였지만, 후속 연구를 통해 다양한 모델을 기반으로 여러 가지 전처리 과정과 데이터 특성에 맞는 형태소 분석기를 직접 제작하고, 더욱 정확도가 높은 기계학습 모델을 개발하고자 한다.
Acknowledgments
이 논문은 2020년도 정부(과학기술정보통신부)의 재원으로 정보통신기획평가원의 지원을 받아 수행된 연구임(IITP-2019-0-01343). 또한 본 연구는 2020년 대학혁신지원사업 도전 연구비지원 프로그램의 지원을 받아 수행된 연구임.
References
- J. W. Ha, H. Pyo, and J. Kim, "Large-Scale Item Categorization in e-Commerce using Deep learning and Distributed Computing", Communications of the Korean Institute of Information Scientists and Engineers, Vol. 34, No. 3, pp. 32-38, Sep. 2016.
- H. Zahera and M. Sherif, "ProBERT: Product Data Classification with Fine-tuning BERT Model", In Proceedings of Mining the Web of HTML-embedded Product Data Workshop (MWPD2020), 2020.
- Public Data Portal, https://www.data.go.kr/, . [accessed: Jan. 27, 2021]
- J. Chung, Ç. Gülçehre, K. Cho, and Y. Bengio, "Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling", CoRR abs/1412.3555, , 2014.
- TensorFlow, https://www.tensorflow.org/, . [accessed: Jan. 27, 2021]
- Tokenizer, https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/text/Tokenizer, . [accessed: Jan. 27, 2021]
- T. Mikolov, K. Chen, G. Corrado, and J. Dean, "Efficient Estimation of Word Representations in Vector Space", ICLR (Workshop Poster), Sep. 2013.
- D. Lee, J. Yeon, I. Hwang, and S. Lee, "KKMA : A Tool for Utilizing Sejong Corpus based on Relational Database", Journal of KIISE: Computing Practices and Letters, Vol. 16, No. 11, pp. 1046-1050, Nov. 2010.
- S. Deerwester, S. Dumais, T. Laundauer, G. Furnas, and R. Harshman, "Indexing by Latent Semantic Analysis", Journal of the American Society for Information Sciences, Vol. 41, No. 5, pp. 391-407, Sep. 1990. [https://doi.org/10.1002/(SICI)1097-4571(199009)41:6<391::AID-ASI1>3.0.CO;2-9]
- P. Bojanowski, E. Grave, A. Joulin, and T. Mikolov, "Enriching Word Vectors with Subword Information", Transactions of the Association for Computational Linguistics, Vol. 5, pp. 135-146, 2017. [https://doi.org/10.1162/tacl_a_00051]
- J. Pennington, R. Socher, and C. D. Manning, "GloVe: Global Vectors for Word Representation", In Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP), Doha, Qatar, pp. 1532-1543, Oct. 2014. [https://doi.org/10.3115/v1/D14-1162]
- A. Sherstinsky, "Fundamentals of Recurrent Neural Network (RNN) and Long Short-Term Memory (LSTM) network", Physica D: Nonlinear Phenomena, Vol. 404, Mar. 2020. [https://doi.org/10.1016/j.physd.2019.132306]
- Embedding Projector, https://projector.tensorflow.org/, . [accessed: Jan. 27, 2021]
- J. Devlin, M. W. Chang, K. Lee, and K. Toutanova, "BERT: Pre-training of deep bidirectional transformers for language understanding", in Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Vol. 1, pp. 4171-4186, May 2019.
2018년 2월 : 강원대학교 컴퓨터과학과(이학사)
2020년 8월 : 강원대학교 컴퓨터과학과(이학석사)
2020년 9월 ~ 현재 : 강원대학교 빅데이터메디컬융합학과 박사과정
관심분야 : 기계학습, 딥러닝, 시계열 데이터 분석, 정밀의료
2018년 2월: : 강원대학교 컴퓨터과학과(이학사)
2020년 2월 : 강원대학교 컴퓨터과학과(이학석사)
2020년 3월 ~ 현재 : 강원대학교 빅데이터메디컬융합학과 박사과정
관심분야 : 기계학습, 딥러닝, 빅데이터 분석, 정밀의료
2006년 2월 : 연세대학교 컴퓨터산업공학과(공학사)
2012년 8월 : POSTECH 컴퓨터공학과(공학박사)
2012년 11월 ~ 2015년 1월 : 프랑스 파리 11대학, Inria 박사후연구원
2015년 2월 ~ 현재 : 강원대학교 컴퓨터공학과 부교수
관심분야 : 프로그래밍 언어, 전산논리, 빅데이터 분석, 기계학습, 딥러닝, 정밀의료