정리필요/논문리뷰

[논문리뷰] 텍스트 분류 기반 기계학습의 정신과 진단 예측 적용

kstar2 2021. 4. 5. 11:16

논문 출처 : www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002580884

 

텍스트 분류 기반 기계학습의 정신과 진단 예측 적용

텍스트 분류 기반 기계학습의 정신과 진단 예측 적용 Application of Text-Classification Based Machine Learning in Predicting Psychiatric Diagnosis 1순천향대학교 2순천향대학교 3순천향대학교 4순천향대학교 5순천향

www.kci.go.kr

논문편명 : 텍스트 분류 기반 기계학습의 정신과 진단 예측 적용

 

연구 배경 :

- 전자의무기록(EMR) 분석이 활발하게 연구되는 분야로 질병의 위험군 분류나 치료 경과 예측에 활용되고 있다.

- 딥러닝 기반의 텍스트 분류가 의료 데이터의 분류에도 좋은 성과를 내고 있다.

 

연구 목적 : 정신과 입원 환자의 현병력을 자연어 처리를 통해 분석하여 세 가지 정신질환에 대한 진단 분류

(현병력? 현재의 질환이 어떻게 시작되고 어떤 경과를 거쳐 현재에 이르렀는지 기록)

 

연구 대상 : 2008.1.1 ~ 2018.12.31 주요우울장애, 1형 양극성 장애, 조현병으로 진단한 순창향대학교 서울병원 정신건강의학과에 처음 입원한 환자들의 초기 EMR (494(주요우울장애 300, 1형 양극성장애 91, 조현병 103))

 

데이터 셋 구성 :

- train dataset400, 검증용 set94(세 가지 진단명의 비율에 맞게 층화 무작위 배정)

- target value는 객관성 확보를 위해 4명의 전문의가 의견을 종합하여 결정

 

모델 플로우 :

- KoNLpy에 내장된 한글 형태소 분석기 MeCab-ko 사용하여 토큰 태깅

- 태깅된 토큰을 벡터화 하기 위해 TF-IDF모델과 Doc2vec 모델 각기 사용

- Doc2vec 시행 시 5-fold cross validation 통해 토큰의 분석 단위 개수 16, 최종 출력 벡터의 크기 100, 문서에 등장하는 토큰의 최소 빈도 3으로 모델 성능 최적화

- TF-IDFSGD, 로지스틱 회귀, SVM 사용하여 기계학습 시행

- Doc2vecSGD, 로지스틱 회귀, SVM은 하이퍼파라미터 모두 기본값으로, 딥러닝에 대해서는 노드 개수 256과 은닉층 수 5에 대한 결과값을 산출해 하이퍼파리미터 값 최적화

- 활성화 함수는 relu, loss functionAdam optimizer, 기계학습은 일반화 위해 5-fold cross validation 시행

- one versus rest 방법으로 분류

- accuracy, precision, recall, F1-score로 평가

  

결과 :

- 훈련용 데이터 세트에서 TF-IDFSVM에서 accuracy, precision, recall, F1-score에서 0.79로 가장 높음

- 훈련용 데이터 세트에서 Doc2vec는 딥러닝에서 accuracy, precision, recall, F1-score0.87로 가장 높음

- 검증용 데이터 세트에서 TF-IDFSGD SVMaccuracy, precision, recall, F1-score에서 0.78로 가장 높음

- 검증용 데이터 세트에서 Doc2vecLR SVM에서 accuracy, precision, recall, F1-score에서가 0.80으로 가장 높음

- TF-IDF보다 Doc2vec을 활용하여 현병력을 벡터화 하는 것이 진단 분류 성능 향상에 효과적

- 제1형 양극성장애 및 조현병을 주요우울장애로 예측 시 결과가 0으로 측정

 

한계 :

- 텍스트 분류 기법을 정신과 진단 분류에 활용한 국내 최초의 연구여서 텍스트 분류를 위한 최적의 전처리 방법과 기계학습 모델이 정형화되지 않았다.

- 표본의 크기를 동일화하지 못하였다.

- 표본의 수가 적어 교차 검증 시 학습 세트보다 검증세트에서의 기계학습의 성능이 저하되는 과적합 발생

- 진단명 내에서 명시 및 동반 이환의 종류가 다를 경우에 대한 세부적인 구분을 시행하지 못하였고, 구조적인 면담도구가 아닌 임상진료시 내려진 진단명을 사용하여 진단명 타당성에 대한 근거가 부족

- 헌병력에 환자의 진단명 및 복용했던 약물명이 포함 가능성이 있다. 실제 17.2%에 정신질환 진단명과 연관된 단어가 사용되었다.

 

후향 연구 :

- 토큰화 시 어절 단위, 형태소 분석, word piece model 등 다양한 방법 적용

- TF-IDF에서 특징 선택을 통한 차원의 저주 해결

- Doc2vec 성능 개선을 위해 Word2vec 함께 사용

- 딥러닝 모델의 매개변수 튜닝 및 신경망 층 구조 변경을 통한 성능 향상 기대

- K 교차 검증의 K값의 변화나 무자가위 추출의 반복을 통해 본 연구와 비교하는 연구도 필요


데이터의 불균형 문제

일반적인 기계학습 알고리즘은 각 집단의 표본 수가 비슷하다고 가정하기 때문에, 집단 불균형 문제가 있는 경우 전체 문서의 분류 성능이 높더라도 소수 집단의 문서를 제대로 예측하지 못하는 경우가 많다.


TF-IDF(Term Frequency-Inverse Document Frequency)

출처 : wikidocs.net/31698

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

토큰이 여러 문서 중 특정 문서 내에서 얼마나 빈도수가 높은지를 평가하기 위한 통계적 기법으로 문서 유사도 측정에 활용된다. 혹은 검색 시스템에서 검색 결과의 중요도를 정하는 작업, 문서 내에서 특정 단어의 중요도를 구하는 작업 등에 쓰일 수 있다. 빈도수를 고려하지만 불영어인지 중요한 단어인지에 따라 가중치를 준다.

우선 DTM을 만든 후, TF-IDF 가중치를 부여한다.

- tf(d, t) : 특정 문서 d에서의 특정 단어 t의 등장 횟수

- df(t) : 특정 단어 t가 등장한 문서의 수

- idf(d, t) : df(t)에 반비례하는 수

              idf(d,t)=log(n/1+df(t))

관련 코드 링크 : scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html

 

sklearn.feature_extraction.text.TfidfVectorizer — scikit-learn 0.24.1 documentation

 

scikit-learn.org


DTM(Documnet-Term Matrix, 문서 단어 행렬)

출처 : wikidocs.net/24559

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

BoW들을 결함한 표현 방법으로 BoW가 각 문서에 대해 하나의 행렬로 만드는 것이라면 DTM은 BoW표현을 다수의 문서에 대해서 행려로 표현하고 부르는 용어이다.

이는 희소 표현에 대해 공간적 낭비와 계산 리소스를 증가시킬 수 있다. 이를 해결하기 위해 불용어를 제거하고, 어간이나 표제어 추출을 통해 단어를 정규화하여 단어 집합의 크기를 줄일 수 있다.

또 다른 문제는 단순 빈도 수 기반 접근이다. 예를 들어 영어문서에서 the는 어떤 문서이든 자주 등장할 수 밖에 없지만 이 것을 보고 문서가 유사하다 할 수 없는 것이다. 이러한 불용어와 중요한 단어에 대한 가중치를 주기 위한 방법으로 제시 된 거싱 TF-IDF이다.


Doc2vec

문장, 단락, 문서와 같은 가변 길이의 텍스트를 비지도 학습하여 고정 길이의 벡터로 표현하기 위해제안되었다.


one versus rest

출처 : ddiri01.tistory.com/207

 

multiclass svm, one vs rest, one vs one

기본적으로 svm은 이진 분류기이다. 이진분류법을 확장해서 멀티클래스 분류를 하는 방법이 있는데 대표적으로 one vs one approach 그리고 one vs rest approach(또는 one vs all 라고 부르기도함) 이 있다 . 1.

ddiri01.tistory.com

전체 class의 수가 n개 라고 하면 i번째 class와 i번째 클래스를 제외한 나머지 클래스로 이진화 시키고 분류를 진행하는 것이다. 즉, multi classification 문제를 binary classification 문제로 바꾸어 해결하는 것이다.


토큰화 방법

어절 단위, 형태소 분석, word piece model

 

Word2vec

출처 : lovit.github.io/nlp/representation/2018/03/26/word_doc_embedding/

 

Word / Document embedding (Word2Vec / Doc2Vec)

Word2Vec 은 비슷한 문맥을 지니는 단어를 비슷한 벡터로 표현하는 distributed word representation 방법입니다. 또한 word2vec 은 embedding 의 원리에 대하여 이해할 수 있는 아주 좋은 주제이기도 합니다. 이

lovit.github.io

의미공간이라는 고차원 공간에 각 단어의 좌표값을 부여한다. 각 좌표값의 숫자는 의미를 지니지 않는다. 즉, 상대적인 거리로 비슷한 느낌의 단어인지 확인한다.

Word2vec은 softmax regression의 확장이다.