KR20190063978A - 비정형 데이터의 카테고리 자동분류 방법 - Google Patents

비정형 데이터의 카테고리 자동분류 방법 Download PDF

Info

Publication number
KR20190063978A
KR20190063978A KR1020170163188A KR20170163188A KR20190063978A KR 20190063978 A KR20190063978 A KR 20190063978A KR 1020170163188 A KR1020170163188 A KR 1020170163188A KR 20170163188 A KR20170163188 A KR 20170163188A KR 20190063978 A KR20190063978 A KR 20190063978A
Authority
KR
South Korea
Prior art keywords
cnn
lstm
string
character
vector
Prior art date
Application number
KR1020170163188A
Other languages
English (en)
Other versions
KR102008845B1 (ko
Inventor
박유경
맹국재
Original Assignee
굿모니터링 주식회사
맹국재
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 굿모니터링 주식회사, 맹국재 filed Critical 굿모니터링 주식회사
Priority to KR1020170163188A priority Critical patent/KR102008845B1/ko
Publication of KR20190063978A publication Critical patent/KR20190063978A/ko
Application granted granted Critical
Publication of KR102008845B1 publication Critical patent/KR102008845B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 비정형 데이터의 카테고리 자동분류 방법에 관한 것으로,
인터넷 게시판에 게시된 게시물부터 비정형 데이터의 문자열을 수집하는 단계; 수집된 비정형 데이터의 문자열에 대해 정보 추출 및 문자열 처리와, 문자 토큰화 처리를 포함하는 전처리를 수행하는 단계 - 전처리를 수행하는 것에 의해 상기 문자열은 벡터 표현으로 변환됨 - ; 전처리된 백터 표현을 CNN-LSTM 분류기에 입력하는 단계; CNN-LSTM 분류기에 의해 상기 게시물의 카테고리를 자동으로 분류하는 단계를 포함한다.

Description

비정형 데이터의 카테고리 자동분류 방법{AUTOMATIC CLASSIFICATION METHOD OF UNSTRUCTURED DATA}
본 발명은 비정형 데이터의 카테고리 자동분류 방법에 관한 것으로, 보다 구체적으로는 인터넷 상의 게시판과 같은 특정 영역에 입력된 게시글을 자동으로 분석하여 게시글이 어떤 카테고리에 해당하는지 분류하는 방법에 관한 것이다.
비정형 데이터(unstructured data)란 텍스트나 이미지, 동영상과 같이 사전에 정의된 정형(structure)을 따라지 않는 데이터를 의미한다. 비정형 데이터는 뉴스, 댓글, SNS 데이터, 이메일, 보고서 등 다양하며 채널 또한 다양하다.
기업, 기관, 개인은 비정형 데이터를 매일 매시간 생산하고 있다. 하지만 대부분의 비정형데이터는 분류되지 않고 사장되고 있다. 이런 비정형 데이터가 의미있고 가치있는 정보가 되기 위해서는 분석이 필수적이다.
비정형 데이터의 첫 번째 분석 방법은 분류분석(classification analysis) 또는 군집분석(clustering analysis)을 이용하는 것이고, 두 번째 분석 방법으로는 특정 범주로의 카테고라이징(categorizing)을 수행하는 것이 있다.
그 동안 2가지 분석 방법은 수작업적인 처리 방법과 자동화된 처리 방법을 활용하였지만 분야별 적용은 아직 어려움이 있다.
일반적으로 텍스트 문서에 대한 자동분류 시스템은 그 성능이 학습 알고리즘 자체보다는 특징선택(feature selection) 알고리즘에 의존하는 경향이 크다. 특징 선택이란 학습 문서에 존재하는 특징(또는 단어)들 속에서 카테고리간 차별화에 기여하는 특징만을 골라내는 기법을 의미한다.
점차 더 처리해야할 정보와 문서의 양이 방대해지고 복잡해지면서 이는 빠르게 전달해야 하는 뉴스의 속도를 저하시킬 뿐만 아니라 인력자원의 투입으로 인해 더 많은 비용이 소비되고 있다. 따라서 문서 분류의 자동화에 대한 필요성은 더욱 증대되고 있다.
또한 기존에 문서 분류의 자동화를 위하여 단순히 문서에 나타나는 단어의 빈도수를 이용하여 적합한 범주를 지정하는 통계적인 분류방법이 이용되거나, 분류에 필요한 주요 단어들을 추출하고 추출된 단어들을 기반으로 K-NN, 의사결정트리, 베이지언 네트워크, 인공 신경망 등의 데이터 마이닝 알고리즘을 이용한 연구가 진행되었다. 최근에는 자연어 처리에 딥러닝 알고리즘인 컨볼루션 신경망(convolutional neural network, 이하 CNN)이 효과적이라는 것이 알려지면서 단어를 벡터(vector)로 표현하는 word2vec과 CNN을 이용한 문장 분류 방법이 제안되었고 실제로 우수한 결과를 보여주었다.
word2vec과 CNN을 이용한 문장 분류 방법은 구조가 단순하기 때문에 훈련 및 예측 시간이 빠르다는 장점을 가지며 자연어 처리 및 텍스트 마이닝의 여러 분야에서 우수한 성능을 내는 기계 학습 도구로 평가 받고 있는 SVM 방식(Support Vector Machine)과 LR(Logistic Regression)을 이용한 경우보다 분류 성능에 있어서 향상을 이루었다.
그러나 word2vec과 CNN을 이용한 문장 분류 방법은 영어 문장을 대상으로 한 성능 형가 실험 결과만을 제시하여 한국어 문서 분류에 적용시 모델의 유효 여부는 확인할 수 없었다.
본 발명은 전술한 문제점에 기반하여 안출된 발명으로서, word2vec과 CNN을 이용한 문장 분류 방법을 한국어에 대해 적용하여 한국어 문서 분류에 있어 유효한지를 검증하고 한국어 문서 분류에 적용함에 있어서 보다 정확하게 고객 게시글 등을 자동으로 분류할 수 있는 방법을 제공하는 것을 목적으로 한다.
전수한 문제점을 해결하기 위해 본 발명의 양태에 따르면, 비정형 데이터의 카테고리를 자동으로 분류 방법이 제공된다. 구체적으로 이 분류 방법은, 인터넷 게시판에 게시된 게시물부터 비정형 데이터의 문자열을 수집하는 단계; 수집된 비정형 데이터의 문자열에 대해 정보 추출 및 문자열 처리와, 문자 토큰화 처리를 포함하는 전처리를 수행하는 단계 - 전처리를 수행하는 것에 의해 상기 문자열은 벡터 표현으로 변환됨 - ; 상기 전처리된 백터 표현을 CNN-LSTM 분류기에 입력하는 단계; 상기 CNN-LSTM 분류기에 의해 상기 게시물의 카테고리를 자동으로 분류하는 단계를 포함하는 것을 특징적인 구성으로 포함한다.
전술한 양태에서, 정보 추출 및 문자열 처리는,
엑셀파일 파싱하여 본문, 범주 정보를 추출하는 단계; 문자열 내의 줄바꿈 문자 및 특수문자를 처리하는 단계; 문자열을 자동 띄어쓰기 처리하는 단계; 및 자동 띄어쓰기된 문자열에 대해 WPM을 적용하는 단계를 포함하고,
상기 문자 토큰화 처리는,
WPM 적용된 문자열을 Word2Vec 라이브러리를 활용하여 문자와 단어를 벡터 표현으로 변환하는 단계;를 포함하여 구성된다.
또한 전술한 양태에서, CNN-LSTM 분류기에 입력되는 벡터 표현은 제로-패딩(zero-padding)을 통해 CNN용의 미리결정된 입력 길이를 가지며, 벡터로 이루어진 매트릭스의 높이(CNN에 입력되는 토큰 수에 대응)는 고정되어 있다.
또한 전술한 양태에서, CNN-LSTM 분류기에 의해 의해 상기 게시물의 카테고리를 자동으로 분류하는 단계는,
복수의 피처 맵(feature map)을 생성하기 위해 미리정해진 필터를 통해 컨볼루션(convolution)을 수행하는 단계; 생성된 복수의 피처 맵 각각에 대해 max 풀링 연산을 수행하여 각 피처 맵에서 하나의 자질을 획득하는 단계; 모든 출력값들을 연결(concatenation)하여 고정된 길이를 갖는 탑-레벨 피처 벡터(top level freaure)를 생성하는 단계; 상기 생성된 탑-레벨 피처 벡터(top level freaure)를 BasicLSTMCell 3개 레이어로 이루어진 MultiRNNCell로 구성하는 단계; 풀커넥션+소프트맥스(Full Connection + Softmax) 계층을 통해 출력하는 단계; 를 포함하여 구성된다.
또한 전술한 양태에서 풀커넥션+소프트맥스(Full Connection + Softmax) 계층을 통한 출력은 라벨(label)에 대한 확률 분포이고, 가장 높은 출력값을 가지는 라벨이 주어진 문장의 예측 라벨이 된다.
본 발명에 따르면 기존의 CNN 기반의 분류 방식에 비해 성능 및 효과가 개선된 비격식 한국어 텍스트에 대한 분류 방법을 제공할 수 있다.
도 1은 WPM 기반 어휘 사전 생성 알고리즘을 나타내는 도면;
도 2는 Word2Vec의 CBOW/Skip-gram 모델을 나타내는 도면;
도 3은 리쿤(Lecun)이 발표한 CNN의 구조를 나타내는 CNN의 구조도;
도 4는 LSTM 블록 구조를 나타낸 도면;
도 5는 LSTM 네트워크 구조를 나타내는 도면;
도 6은 LSTM 다이어그램을 나타낸 도면;
도 7은 본 발명에 따른 실시예에서 데이터 전처리 수행과정을 나타낸 도면;
도 8은 word2vec를 활용한 CNN 모델의 예를 나타낸 도면;
도 9는 word2vec을 활용한 CNN 모델(기반모델)을 간략하게 나타낸 도면;
도 10은 본 발명에 따른 word2vec을 활용한 CNN-LSTM 모델을 나타내는 도면;
도 11은 분류기 성능 분석을 위한 모델 분류기의 구성도를 나타내는 도면;
도 12는 소프트맥스 회귀를 사용한 학습 훈련 구성도를 나타내는 도면;
도 13은 CNN 기반 분류기에서의 성능을 나타내는 도면;
도 14는 LSTM 기반 분류기에서의 성능을 나타내는 도면;
도 15는 CNN-LSTM 기반 분류기에서 셀종류별 성능을 나타낸 도면;
도 16은 최종 파라미터를 사용한 CNN-LSTM 성능을 나타낸 도면; 및
도 17은 트레이닝 횟수에 따른 모데별 최종 파라미터를 사용한 성능을 나타낸 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되는 실시예를 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이다.
본 명세서에서 본 실시예는 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 그리고 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 따라서, 몇몇 실시예들에서, 잘 알려진 구성 요소, 잘 알려진 동작 및 잘 알려진 기술들은 본 발명이 모호하게 해석되는 것을 피하기 위하여 구체적으로 설명되지 않는다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. 그리고, 본 명세서에서 사용된(언급된) 용어들은 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, '포함(또는, 구비)한다'로 언급된 구성 요소 및 동작은 하나 이상의 다른 구성요소 및 동작의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 정의되어 있지 않은 한 이상적으로 또는 과도하게 해석되지 않는다.
본 발명에서 필요한 관련기술들은 Word2Vec, CNN, LSTM, WPM 등이 있으며 그 내용은 다음과 같다.
[표 1] 본 발명에 사용한 기술과 사용 이유 사용기술
Figure pat00001

○ 이론적 배경
1. 분석데이터(불편한 점, 개선 및 아이디어 게시 글)
- 분석 대상 : 전자정부 사이트 172개에 대한 게시 글
(정보 제공 형 웹사이트 95 개, 정부 대표 홈페이지 43 개, 민원 처리형 웹사이트 31 개, 국민 참여 형 웹사이트 3개에서 게시글 수집)
- 수집 기간 : 2013년 10 월 ~ 2014년 12 월
- 분석 수량 : 3,195건, 18,343개의 의견
- 분석 항목 : 불편한 점(9,303건) 개선/아이디어(9,0409건)
- 분석 내용 : 3개 범주(서비스 ,정보, 시스템 ) 분류
[표 2] 게시글의 예
Figure pat00002

2. 자연어의 처리
2.1 자연어 처리 개념
웹사이트 게시물의 경우 사람이 인지할 수 있는 국문, 영문, 숫자 등 자연 형태의 언어로 구성되어 있다. 기계 학습을 진행하기 위하여 컴퓨터가 이해할 수 있는 형태로 표현해야 하는데, 이에 따른 제반 기술을 자연어처리(Natural Language Processing, NLP)라 한다.
자연어는 컴퓨터 프로그램 언어와 같은 인공 언어와 구별된다. 인공 언어는 인간이 규칙을 정해 컴퓨터가 이해할 수 있도록 만들어진 언어이기 때문에, 누구나 그 규칙을 배우면 이해할 수 있게 되지만 자연어는 인간이 규칙을 정하긴 했지만, 오랜 시간이 흐르면서 관습적 규칙, 비형식적 규칙 등 다양한 변화가 가미됨으로 인해 규칙만으로 이해될 수 없는 특성이 있다. 자연어 처리 과정은 형태소 분석, 통사 분석, 의미 분석, 화용 분석의 4개단계로 구분할 수 있으며, 각 단계는 특정이론을 통해 명확한 이론이 확립된 단계가 아니라 지속해서 이론이 제시되고 검증되는 발전단계에 있다.
2.2 자동 띄어쓰기 시스템
텍스트 분석에서 가장 기초적 인 작업은 텍스트로부터 단어를 식별 하고 추출하는 토큰화(Tokenization)라고 할 수 있다. 한국어는 '어절(語節)'로 토큰의 단위 기준으로 보고, 중국어나 일본어와 같이 어절 경계 표지가 없는 언어와는 달리, 어절과 어절 사이에 공백을 두어 띄어쓰기를 하도록 규정하였다 . 한국어에 있어서 잘못된 띄어쓰기는 중의성(ambiguity)을 유발시키거나 텍스트분석에서 잡음(noise)을 일으켜 오히려 토큰화를 방해하며, 가독성을 떨어뜨린다. 이와 같이 한국어에서 띄어쓰기는 텍스트에 대한 사용자 가독성만큼 이나 기계 가독성에도 영향을 주는 중요한 요소이다. 문장 내의 띄어쓰기 오류는 많은 문법적, 의미적 모호성을 일으키며, 때로는 형태소 분석을 불가능하게 만들기도 한다.
따라서, 본 발명에서는 인터넷 환경에서 사용자가 띄어쓰기를 고려하지 않고 게시글을 쓰는 경우가 많다고 가정하고, 자동 띄어쓰기를 적용하여 문서를 준비하였다. 아래의 표 3은 비격식 문서인 인터넷 게시글을 나타내고 표 4는 비격식 문서인 게시글에 자동 띄어쓰기를 적용한 예를 나타낸다.
[표 3]비격식 문서인 인터넷 게시글의 예
Figure pat00003

[표 4]비격식 문서인 게시글에 자동 띄어쓰기를 적용한 예
Figure pat00004

2.3 WPM(Word Piece Model)
WPM은 음성 검색 시스템 구축을 위한 방법으로 언어에 대한 사전 지식 없이 혼잡도(perplexity)를 최소로 하여 어휘를 자동 생성하는 방법이다. 기존의 자연어 처리에서는 형태소 분석, 통사 분석, 의미 분석, 화용 분석 등 4가지로 진행되나, WPM은 국제 발음기호(the International Phonetic Alphabet, PA)기반의 발음 세트(Set)로 유닛을 코드화 시킨 후, 통계적 기법을 활용하여 사용 빈도수에 따라 조합을 하여 새로운 유닛을 생성한다. WPM 어휘 사전 생성 알고리즘은 도 1과 같은 과정으로 이루어져 있다.
WPM의 장점은 언어에 독립적이며, 통계적인 방식을 사용하므로 특정 도메인 또는 아직 의미가 파악되지 않는 언어에도 적용할 수 있다. 본 발명에서는 위의 표 4와 같이 자동 띄어쓰기를 적용한 문서에 도 1에서와 와 같이 WPM 알고리즘을 적용 하였다.
아래의 [표 5]는 자동 띄어쓰기를 적용한 후 WPM을 적용한 후의 예를 나타낸다.
[표 5] 자동띄어쓰기를 적용한 후 WPM을 적용한 예
Figure pat00005

즉, WPM은 통계적 기법을 활용하여 음절을 기반으로 음절들을 합치면서 새로운 어휘를 생성하고 사용 빈도수가 높은 어휘로 사전을 만드는 방법이다. WPM을 적용하여 토큰화한 문장의 예는 [표 5]과 같다 .
[표 6] WPM 적용 전후 문장의 비교 예
Figure pat00006
[표 6]을 통해서, WPM을 적용하면 형태소 분석과 다르게 토큰화 되는 것을 확인 할 수 있다 . "퀵메뉴 중에 네탄" 의 경우, 형태소 분석 시 "퀵"과 "메뉴"로 나누어지지만, WPM 적용 시 "퀵"과 "메", "뉴"로 나누어지게 된다 . 이는, 사용된 코퍼스에서 "퀵메뉴" 보다는 "퀵" 과 "메", "뉴"의 출현 빈도수가 높기 때문이다. 이렇듯 WPM은 통계적인 방식을 사용하기 때문에, 언어에 독립적이며 특정 도메인 또는 아직 의미를 파악하지 못한 상태에서도 적용할 수 있다는 장점을 가진다.
3. 단어 및 문서의 벡터 표현
많은 기계학습 알고리즘은 훈련을 위해 텍스트(text)의 문자열(string)을 그대로 입력할 수 없고, 컴퓨터가 인지할 수 있도록 입력이 수치화된 데이터(fixed-length feature vector)로 표현되는 것을 요구하기 때문에, 문서 분류 작업에 앞서 문서 또는 단어들을 벡터 공간상에 표현하는 방법이 필요하다. 이에 본 발명에서는, 순서와 의미를 내포하는 벡터의 형태로 단어 및 문서를 표현하는 계량기법인 word2vec을 활용하였다. 이러한 기법들을 통해 생성된 벡터들은 LR, DNN, CNN, LSTM 등과 같은 여러 기계학습 이나 인공 신경망 기술의 입력 자료로 사용될 수 있다.
3.1 Word2Vec
Word2Vec은 원래 인공 신경망 연구에서 태어 났다. 같은 맥락(context)에 있는 단어는 가까운 의미를 가진다는 전제(Distributional Hypothesis)에서 출발한다. word2vec은 텍스트 문서를 통해 학습을 진행하며 문장 내에 한 단어와 같이 출현하는 다른 단어들을 관련 단어로써 인공 신경망에 학습시킨다. 연관된 단어들은 문서상에서 가까운 곳에 출현할 가능성이 높아지기 때문에 학습을 반복해 나가는 과정에서 주변 단어가 비슷한 두 단어는 가까운 벡터 공간에 놓이게 된다.
word2vec은 단순하게 한 단어의 앞뒤로 서로 같은 정보가 있는지 없는지를 이용하여 학습하는 것이다. 따라서 아주 추상적인 동사나 형용사는 학습이 명사에 비해서 학습이 어려울 수 있다. 다만 그럼에도 불구하고 수 없이 많은 데이터를 보면 동사들이 어떤 목적어를 가지는지 규칙성을 파악함으로 어느 정도 동사들 간의 의미관계도 학습이 가능하다고 볼 수 있다.
예를 들어 break, broken은 서로 비슷한 목적어를 가질 것이므로 두 동사는 비슷한 의미를 취할 것이라고 학습할 수 있을 것이다. 또한 충분히 많은 학습이 이루어지게 되면 break, broken의 벡터 공간에서의 거리가 have와 had의 벡터 공간에서 거리와 같아질 수 있다. 이는 과거의 의미를 학습할 수 있다는 것이다.
word2vec의 모델은 심층 신경망(Deep Neural Network, DNN)이 아니다. 활성화 함수가 적용되지 않은 은닉층 1개와 소프트맥스 함수(softmax function)가 적용된 출력층으로 구성된 인공 신경망이다. 그래서 일반적인 심층 신경망보다 학습속도가 굉장히 빨라서 매우 큰 데이터도 손쉽게 학습시킬 수 있다는 것이 큰 장점이다. word2vec의 알고리즘은 내부적으로 도 2와 같이 CBOW(Continuous Bag Of Words, 이하 CBOW로 표기)와 SG(Skip Gram, 이하 SG로 표기)이라는 두 개의 신경망 모델을 이용해 문장을 학습하여 비슷한 의미의 단어들을 가까운 벡터 공간에 표현해준다.
CBOW 모델은 입력이 t-2, t-1, t+1, t+2의 주변 단어들이고, 출력 CBOW 모델은 입력이 t-2, t-1, t+1, t+2의 주변 단어들이고, 출력이 t번째 단어를 예측하는 모델이다. SG 모델보다 상대적으로 속도가 몇 배 빠르다고 알려져 있다. 반대로 SG 모델은 입력이 1개의 t번째 단어이고, 출력이 t-2, t-1, t+1, t+2의 주변 단어들을 예측하는 모델이다. 상대적으로 빈도가 적은 단어를 잘 학습하여 성능이 CBOW보다 약간 더 좋다고 알려져 있다[16]. 따라서 본 논문에서는 단어 벡터 표현 생성 시 SG 모델을 이용한다.
4. 기계 학습
4.1 소프트 맥스 회귀(Softmax regression)
소프트 맥스 회귀는 로지스틱 회귀의 멀티클래스(Multiclass) 버전이다. 모든 출력값의 분모의 총합을 1로 정규화 시킨다. 그리고, 각각의 출력별로 비율을 책정한다. 총합은 계속 1로 만들게 만들게 되므로 한 개의 강력한 피처(feature)가 나타나면 이 값은 1로 수렴을 하는 과정에서 나머지 값에도 영향이 미쳐서 0으로 수렴하게 만들어 학습의 가속화가 생긴다.
본 발명에서는 출력(output)의 성능이 기존의 시그모이드(sigmoid) 함수보 다 소프트 맥스 회귀가 성능이 좋다고 알려져 있어 이를 적용하였다.
4.2 컨볼루션(Convolutional Neural Network, CNN)
CNN은 영상에 적용이 용이하도록 만들어진 인공 신경망의 한 종류이다. CNN은 Lecun이 1998년 처음 제안하였으며 일반적인 다층 퍼셉트론에서 사용되는 구조와 다르게 컨볼루션 계층과 풀링 계층으로 이루어져 있다.
도 3은 리쿤(Lecun)이 발표한 CNN의 구조를 나타내는 CNN의 구조도이다.
위와 같은 CNN은 일반적으로 몇 개의 층으로 이루어져 있으며 기본적으로 3개의 다른 층을 가지고 있다.
- 컨볼루션 계층 : 컨볼루션 자질을 추출하는 계층으로 유의미한 자질을 추출하는 층을 의미한다.
- 풀링 계층 : 일반적으로 CNN은 이미지에 적용된다. 이미지 특성상 픽셀의 개수가 너무 많아 자질을 줄이기 위해 서브샘플링(sub-sampling) 하는 과정을 풀링이라한다.
- 풀리 커넥티드(Fully Connected) 계층 : 마지막으로 적용되며 컨볼루션 계층과 풀링 계층에서 나온 자질들을 이용해서 분류를 할 때 사용된다. 일반적인 인공 신경망처럼 행동한다.
일반적인 CNN은 구조가 컨볼루션 계층 → 풀링 계층 → 컨볼루션 계층 → 풀링 계층 → … → Fully Connected 계층으로 이루어져 있다. 즉, 컨볼루션 계층과 풀링 계층을 번갈아 가면서 사용하여 자질을 추출한 후 마지막으로 Fully -Connected 계층을 통해서 분류를 수행한다.
CNN이 최근 들어 다른 알고리즘에 비해 영상 분류 및 객체 검출에 우수한 성능을 보이는 이유는 크게 세 가지를 들 수 있다.
첫 번째는 Rectified Linear Unit(ReLU) 이라는 활성화 함수의 도입으로 이전 sigmoid, tanh 등의 활성화 함수에서 함수에서 나타나던 문제인 그레이디언트 베니싱(gradient vanishing) 문제가 없어진 것이다. 그레이디언트 베니싱은 신경 회로망을 학습하는 대표적인 알고리즘인 오류 역전파 알고리즘에서 낮은 층으로 갈수록 전파되는 에러의 양이 적어짐으로 인해 그레이디언트 변화가 거의 없어져 학습이 일어나지 않는 현상이다. 이 문제로 인해 깊은 인공 신경 망의 학습이 어려웠는데 ReLU의 도입으로 이 문제를 해결하여 깊은 인공 신경망에서도 낮은 층까지 학습이 가능해졌다.
두 번째 이유는 이유는 이미지넷과 같은 대용량 데이터베이스의 출현이다. 하드웨어의 발달로 인해 대용량 저장장치가 보편화되었고 아마존 메크니칼 터크(Amazon Mechanical Turk) 등을 이용한 크라우드 소싱이 가능해지면서 대용량 학습 데이터의 정답을 수작업으로 레이블링하는 일이 가능해졌다 가능해졌다. 이러한 100 만 장 이상의 대용량 영상 데이터베이스를 바탕으로 여러 층으로 이루어진 CNN을 학습함으로써 과적합 문제를 해결할 수 있었다.
일반적인 인공 신경망의 경우 학습해야 하는 변수의 개수가 매우 많기 때문에 적은 양의 학습 데이터로는 과적합이 쉽게 일어나게 되는데 대용량 데이터베이스의 출현으로 깊은 인공 신경망을 과적합 없이 학습할 수 있게 된 것이다.
마지막 이유는 드롭아웃(dropout)을 활용한 정규화(regularization)를 들 수 있다. 드롭아웃은 인공 신경망의 과적합을 방지하기 위해 학습 알고리즘 상에서 특정 비율의 뉴런을 무작위로 작동하지 않게 만든 채 학습을 수행하게 된다. 매 인테그레이션(iteration)마다 작동하지 않는 뉴런을 다르게 뽑아서 학습을 시켜 각각의 뉴런이 같은 정보를 학습하거나 아무런 정보도 학습하지 않는 것을 방지하였다.
위와 같은 이유로 CNN은 대용량의 영상 데이터가 존재할 때 영상 분류 및 객체 검출을 효과적으로 수행하며 현존하는 알고리즘 중 가장 좋은 성능을 보이는 것으로 보고되고 있다.
이렇듯 원래 컴퓨터 비전을 위해 고안된 CNN 이 최근에 자연어 처리에 효과적이라는 것이 알려지면서, semantic parsing, search query retrieval, sentence modeling 그리고 다른 전통적인 자연어 처리에 있어서 우수한 결과를 보여주었다. 이에 본 발명에서는 CNN과 함께 다음에 언급하는 LSTM과 복합모델을 이용하여 문서의 분류를 위한 분류기로 이용하여 시험을 진행한다.
4.3 장단기 기억 네트워크(Long Short Term Memory, LSTM)
LSTML은 1997년 Hochreiter & Schmidhuber에 의해 제안된 RNN 아키텍 처이며 현재까지도 가장 주요한 RNN으로 자리 잡고 있다. LSTM은 전통적인 RNN 구조에서 구조에서 은닉계층의 유닛들을 LSTM 블록(Block)으로 대치시킨 형태와 같다. 도 4는 LSTM 블록 구조를 나타낸 도면이다. 도 4에 도시된 바와 같은 LSTM 블록들은 기존의 은닉 유닛(Hidden Unit)들과 마찬가지로 재귀적 구조를 띄며, 각각의 LSTM LSTM 블록 내부는 재귀적 구조를 가진 기억소자(MemoryCell)와 입력게이트(Input Gate), 포겟 기게이트(Forget Gate), 출력게이트(Output Gate) 3종류의 게이트 유닛들로 유닛들로 이루어져 있다. LSTM은 전통적인 RNN과 마찬가지로 은닉변수를 거쳐 최종 출력값을 계산하지만, 은닉변수의 계산 과정에서 앞에 거론된 게이트 유닛들을 적절하게 이용해서 정보의 흐름을 조절한다.
각각의 은닉변수의 유도과정은 다음과 같다 : 가장 먼저 포겟 게이트를 통해 기억소자에 저장되어 있는 기존의 소자변수(Cell State)를 얼마나 잊어버릴지 결정한다.
LSTM은 장기 의존성 문제를 피하고자 설계되었다. 오랫동안 정보를 기억하는 것이 사실상 LSTM의 기본 동작이다. 모든 순환 신경망은 사슬 형태의 반복되는 신경망 모듈들을 가진다. 표준 순환 신경망에서, 이 반복되는 모듈은 한 개의 tanh 층 같은 매우 간단한 구조를 가질 것이다.
도 5는 LSTM 네트워크 구조를 나타내는 도면이다. 도 5에 도시된 바와 같이 LSTM은 사슬과 같은 구조를 가진다. 그러나 반복되는 모듈은 다른 구조를 가진다. 이 모듈에는 하나의 신경망 층 대신 매우 특별한 방식으로 상호작용하는 네 개의 층이 있다.
도 6은 LSTM 블록 다이어그램을 나타낸 도면이다. 도 6에 도시된 다이어그램에서, 노란색 상자는 학습된 신경망 층이다. 분홍색 원은 벡터 덧셈 같은 요소별 연산을 나타낸다. 각 화살표는 한 노드 출력에서 다른 노드의 입력으로 전체 벡터 하나를 전달한다. 합쳐지는 화살표들은 연관(concatenate)을 표시한다. 갈라지는 화살표는 그 내용이 복사되어 다른 곳으로 보내짐을 표시한다. LSTM의 핵심은 셀 상태(cell state) 즉 다이어그램의 위쪽을 통과해 지나는 수평선이다. 셀 상태는 일종의 컨베이어 벨트라 볼 수 있다. 셀 상태는 약간의 가벼운 선형 상호작용만 일으키며 전체 수평선을 그냥 똑바로 지나간다. 정보는 바뀌지 않은 채 그냥 흘러 갈 수 있다. LSTM은 셀 상태에 정보를 더하거나 지울 수 있다. 게이트라 불리는 구조들이 이 과정을 조절한다. 게이트는 정보가 선택적으로 지나가게 한다. 게이트는 시그모이드 신경망 층과 요소별 곱셈 연산으로 구성된다.
○ 실험 데이터 구성 및 분류 모델
1. 데이터 수집 및 실험 데이터 세트 구성
2013년 10월 ~ 2014년 12월 까지 국민행복 맞춤형 서비스 모니터 단을 통해 수집한 전자정부 사이트 172개(정보 제공형 웹사이트 95개, 정부대표홈페이지 43 개, 민원 처리형 웹사이트 31 개, 국민 참여형 웹사이트 3개)의 불편한 점, 개선/아이디어에 대한 게시 글을 수집하여 게시물 코퍼스를 구성하였다.
[표 7] 실험에 사용할 정보와 분류 범주
Figure pat00007
[표 7] 에서 보듯이, 게시물의 본문 정보는 사이트의 불편한 점/개선 및 아이디어에 대한 내용을 "서비스", "정보", "시스템" 의 3가지 범주로 분류한다. 각 범주별 텍스트 문서에 대한 예시는 "서비스"는 표 8, "정보"는 표 9, "시스템"은 표 10에서 보여지는 것과 같다.
[표 8] 서비스 데이터의 예시
Figure pat00008
[표 9] 정보 데이터의 예시
Figure pat00009
[표 10] 시스템 데이터의 예시
Figure pat00010

본 연구에서 활용한 CNN, LSTM 모델은 범주를 분류하는 지도 학습 기반이기 때문에, 각 게시물마다 타겟 클래스(target class)로 사용할 사전에 입력된 범주 정보가 필요하다. 따라서 수집한 전체 게시물의 수기로 분류한 범주 정보를 사용하였다. 또한 모델 훈련시 훈련 데이터 세트의 크기가 작으면 과적합이 발생할 가능성이 높기 때문에, 범주별로 게시물 건수는 다음의 [표 11]과 같다.
[표 11] 범주별 게시물 개수 및 라벨(Label)
Figure pat00011

2. 데이터 전처리
실험 데이터의 전처리 수행과정은 도 7과 같다.
전처리는 도 7과 같이 5단계로 진행되며, 크게 정보 추출 및 문자열 처리 과정과 문서를 토큰화하여 문서와 단어의 벡터 표현을 생성하는 과정으로 나눌 수 있다.
2.1 정보 추출 및 데이터 구성
앞에서 구성한 실험 데이터 세트에 대해, 우선 모니터단의 활동을 통해 작성된 데이터를 엑셀 형태로 변환하고, 세트별로 파싱하여 [표 7]의 요소들로 본문, 범주 정보를 추출하였다. 추출한 정보들에 대해 [표 12] 같이 문자열 전처리를 수행한 후, [표 11]의 라벨을 기준으로 하여 범주별로 3개의 파일에 나누어 저장하였다.
[표 12] 문자열 전처리 내역
Figure pat00012

2.2 문서 토큰화 방법 선정
본 발명에서 사용한 CNN-LSTM 모델은 훈련을 위해 텍스트의 문자열을 그대로 입력할 수 없고, 컴퓨터가 인지할 수 있도록 입력이 고정 길이로 수치화되어 표현되는 것을 요구한다. 따라서 앞서 문자열 처리한 데이터에 대하여 문서 또는 문서에 포함된 단어들을 고정 크기의 벡터로 표현하는 전처리 과정이 추가로 필요하다. 본 발명에서 문서 또는 단어들을 벡터로 변환하기 위해서 사용한 라이브러리는 gensim의 doc2vec 라이브러리이다. gensim의 doc2vec 라이브러리는 문서의 토큰을 입력으로 받아서 문서 및 문서에 포함된 단어들의 벡터를 생성하기 때문에, 문서의 토큰화가 우선되어야 한다. 따라서 문서의 분류에 더 나은 성능을 보이는 토큰화 방법을 선정하기 위한 실험을 수행하였다.
문서 분류에 더 나은 성능을 보이는 토큰화 방법을 찾기 위해, doc2vec 라이브러리를 활용하여 생성한 문서의 벡터 표현을 입력 자질로 사용하여 기본적인 문서 분류를 수행하였다. 이는 상대적으로 높은 성능을 보이는 토큰화 방법을 이용하여 생성한 문서의 벡터 표현이 범주별 문서 사이의 차이를 더 잘 나타내고 범주별로 문서를 더 잘 구분하여, 이를 바탕으로 제안 모델에 적용시 문서의 분류에 있어 성능 향상에 기여할 수 있을 것으로 판단하였기 때문이다.
따라서 게시물을 어절 단위 , 자동띄어쓰기 적용, WPM 적용의 3가지 방법으로 토큰화한 후, 해당 토큰들로 doc2vec 라이브러리를 이용하여 생성한 문서의 벡터 표현을 LR 분류기에 전달하여 분류율을 산출하였다. 리소스 사용 및 성능을 고려하여, 각 문서 벡터의 크기는 300 차원으로 생성하였다.
토큰화 방법을 찾는 실험 시, 데이터 세트는 8:1:1로 나누어 전체 데이터 세트의 90%를 훈련에 사용하고, 나머지 10%로 테스트를 수행하였다. 수행 결과는 [표 13]과 같이 WPM을 적용한 결과가 분류율 66%로 가장 높은 성능이 산출되었다.
[표 13] 토큰화 방법별 비교
Figure pat00013
[표 13]를 통해서, WPM을 적용하면 어절 단위 와 전체 토큰의 개수는 최대로 생성되나, 고유한 토큰의 개수는 적게 생성되는 것을 확인할 수 있다. 실제로 고유한 토큰의 개수는 WPM 적용시 가장 적다고 추정할 수 있다. 결과적으로, WPM을 적용하면 적은 개수의 고유한 토큰을 발생시키고, 생성된 토큰을 활용한 문서의 벡터 표현이 문서의 분류에 유용함을 실증적으로 확인할 수 있다.
이어지는 모델별 비교 실험에서 WPM을 적용하여 생성한 토큰들을 doc2vec 라이브러리의 입력으로 사용하여 문서와 단어의 벡터 표현을 생성하였다.
2.3 Word2Vec을 활용한 벡터 생성
전처리의 마지막 과정으로, CNN-LSTM 모델의 입력으로 사용할 문서와 단어의 벡터 표현을 생성하였다. 앞서 진행한 문서 분류에 유용한 토큰화 방법 선정 실험에 기반하여, WPM을 적용하여 생성한 토큰을 gensim의 doc2vec 라이브러리에 입력하여 문서와 단어의 벡터 표현을 생성하였다. gensim의 doc2vec 라이브러리는 word2vec 라이브러리의 확장으로, doc2vec 라이브러리를 활용하여 문서의 벡터 표현 생성시 문서에 포함된 단어들의 벡터 표현도 함께 생성된다. 리소스 사용 및 성능을 고려하여 , 각 문서 및 단어의 벡터 크기는 300차원으로 설정하였으며, doc2vec 클래스 생성자의 매개변수 설정값은 [표 14]와 같다 .
[표 14] doc2vec 클래스 생성자의 매개변수 설정
Figure pat00014

○ 실험 및 성능 분석
1. Word2Vec를 활용한 CNN 모델(기반 모델)
원래 컴퓨터 비전을 위해 고안된 CNN 모델이 자연어 처리에 효과적이라는 것이 알려지고, semantic parsing, search query retrieval, sentence modeling, 그리고 다른 전통적인 자연어 처리에 있어서 우수한 결과를 이루었다. Yoon Kim의 연구("Convolutional Neural Network for Sentence Classification," Proceedings of the 2014 Conference on Classification," Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing(EMNLP), 2014.)에서 문장 단위 (sentence level) 분류 작업을 위해 word2vec 알고리즘을 통해 미리 훈련된(pre -trained) 단어의 벡터 표현을 활용한 CNN을 제안되었고, 문서 분류뿐 아니라 자연어 처리 및 텍스트 마이닝의 여러 분야에서 우수한 성능을 내는 기계 학습 도구로 평가 받고 있는 LR과 SVM 분류기를 이용한 경우보다 분류율에 있어 성능 향상을 이루었다. 수집한 코퍼스는 각 코퍼스마다 10겹 교차검증(10-fold cross validation)으로 실험하기 위해 훈련데이터 90% 와 테스트 데이터 10%로 배분하였다.
도 8은 word2vec를 활용한 CNN 모델의 예를 나타낸 도면이다.
도 8의 모델은 문장을 토큰화하면서 시작한다. 토큰화된 문장은 문장 매트릭스로 변환된다. 매트릭스의 행(row)은 각 토큰의 단어 벡터 표현이다. 도 8에서 "경찰청 홈페이지 인데 요즘 피 싱 범죄 나" 문장은 경찰 청 ,홈페이지, 인데 , 요즘 , 피, 싱, 범죄, 나 로 8개의 토큰으로 나누어지고, 각각의 토큰은 word2vec 라이브러리를 이용하여 벡터로 표현된다. 도 8에서는 각 토큰을 100 차원의 벡터로 변환한 것이다 . 만일, 단어 벡터의 차원을 d라고 하고, 주어진 문장의 길이(문장의 토큰 개수)를 s라고 하면, 문장 매트릭스의 차원은 s × d가 되고, 도 8에서는 8 × 300의 형태(shape)를 가지는 문장 매트릭스가 된다 문장 매트릭스로 변환시, zero-padding 방법을 사용하여 CNN 입력 길이를 맞춘다. 이제 문장을 매트릭스로 변환하였기 때문에, 일반적인 CNN에서와 같이 문장을 이미지처럼 다룰 수 있게 된다. 다음으로 필터를 통해서 컨볼루션(convolution)을 수행한다. 문장 매트릭스의 행은 하나의 토큰, 즉 단어를 표현하기 때문에, 필터의 너비(width) 는 단어 벡터의 차원과 동일한 너비 300를 사용하게 된다(앞서 기술하였듯 본 발명에서는, 단어를 300 차원의 벡터로 생성하였기 때문에 필터의 너비는 300이 될 것이다).
따라서 필터의 너비는 고정되고, 단지 필터의 높이(height)만 다르게 설정할 수 있다. 필터의 높이는 함께 고려될 수 있는 인접한 단어의 수로써 컨텍스트 윈도우의 크기를 의미한다. 전술한 Yoon Kim의 연구에서는 필터의 높이 h를 필터의 영역 사이즈(region size)라고 표현하고 있다. 동일한 영역으로부터 상호 보완적인 (complementary) 자질을 학습하기 위해 동일한 영역 사이즈에 대해 여러개의 필터들을 적용할 수 있다. 도 8에서는 (3,4,5) 3개의 영역 사이즈를 가지는, 즉 3 ×5, 4 × 5, 5 × 5의 필터 3개를 각각 150개씩 , 전체 450개의 필터를 통해 컨볼루션을 수행하여 나온 출력값에 편차(bias)를 더하고, 활성화 함수를 적용하여 새로운 feature map 450 개를 만들고 있다. 주어진 문장에 대하여 위에서 아래로만 윈도우 슬라이딩(sliding)을 수행하기 때문에, 각 필터에 의해서 생성된 feature map은 s - h + 1 차원의 크기를 가지는 벡터가 되고, 필터 영역 사이즈 h와 문장의 길이 s에 따라서 다양해질 것이다.
다음으로 각각의 각각의 피처맵(feature map)에 1-max 풀링 연산(operation)을 수행한다. 1-max 풀링 연산을 통해 각 피처맵에서 가장 큰 값 하나를 선택함으로써 각 피처맵에서 가장 중요한 자질을 얻을 수 있게 된다. 각각의 피처맵에 적용된 1-max 풀링 연산의 출력값들을 연결(concatenation) 하고, 이 벡터가 탑레벨 피처(top-level feature) 벡터가 된다. 탑레벨 피처 벡터의 크기는 문장의 길이에는 영향을 받지 않고, 단지 영역 사이즈와 필터의 개수에만 영향을 받으며, 영역 사이즈 × 필터의 개수와 같은 크기가 된다. 따라서 [도 8] 에서 탑-레벨 피처 벡터의 크기는 모델에 입력되는 문장의 길이와 상관없이 일정하게 3 × 150 = 450 의 고정길이를 가지게 된다.
마지막으로, 탑레벨 피처 벡터는 최종 분류를 위해 풀리-커넥티드 소프트맥스(Fully -Connected softmax)계층 (이하 FC 계층으로 표기 )에 전달되며, FC 계층의 출력은 라벨(label)에 대한 확률분포가 된다. 가장 높은 출력값을 가지는 라벨이 주어진 문장의 예측 라벨이 되는 것이다. 도 8에서는 문장을 3개의 라벨로 분류하고 있다. FC 계층에서 정규화(regularization)의 수단으로 드롭아웃(dropout)이 적용될 수 있다.
도 9는 지금까지 예를 들어 설명한 word2vec을 활용한 CNN 모델을 간단하게 도식화하여 나타낸 도면이다.
2. Word2Vec을 활용한 CNN-LSTM 모델(실시예 모델)
이전 설명한 Yoon Kim의 연구에서 제안한 모델은, 다양한 영역 사이즈의 필터들을 여러 개 적용한 컨볼루션 계층과 1-max 풀링 계층이 하나로만 이루어져 있는 단일 레이어(one -layer) CNN 이며 FC 계층도 은닉층이 없이 소프트맥스(softmax) 출력 계층만을 가지는 간단한 구조로 도 9와 같다.
본 발명에서의 입력 계층은 전술한 기반 모델과 동일하며 CNN에 입력되는 입력되는 단어의 수, 즉 단어의 벡터표현으로 구성된 매트릭스는 높이(height) 가 고정된다. 그 이유는 앞서 기술하였듯이 더미 단어들로 인한 자원 사용량 낭비 및 훈련 시간 증가와 같은 비효율의 문제점을 보완하기 위해 하나의 문서에 포함된 전체 단어를 입력하는 대신에 성능을 저하시키지 않는 단어 수로 문서의 길이를 제한하여 입력한다고 전제하였기 때문이다.
따라서 이어지는 실험에서 모델 성능을 저하시키지 않는 입력 단어(토큰 )의 개수를 선정한다. 기반 모델에서 컨볼루션 계층과 맥스풀링(MaxPooling) 계층 뒤에 LSTM 레이어를 추가한다 . 여기서 LSTM 모델은 LSTM 셀 레이어를 3개로 구성하여 MultiRnnCell로 구성한다. 각 모델의 단점을 상호 보완 하고자, 두 종류의 뉴럴 네트워크를 함께 활용하는 CNN-LSTM 모델을 게시물의 텍스트 분류에 사용하였다.
CNN 모델을 이용하여 텍스트의 특징들을 잘 나타내는 벡터를 추출하고, 이를 LSTM 모델의 입력으로 하여 게시물 내용의 상황에서의 롱텀 디펜던시(Long-term dependency)가 반영되도록 분류 모델을 학습시킨다.
도 10은 본 발명의 실시예에 따른 word2vec을 활용한 CNN 모델에 LSTM 모델을 더한 복합 모델의 예를 나타낸다. 도 10의 모델은 문장을 토큰화 하면서 시작한다. 토큰화된 문장은 문장 매트릭스로 변환된다. 매트릭스의 행(row)은 각 토큰의 단어 벡터 표현이다. 도 10에서 예를 들어 "경찰청 홈페이지 인데 요즘 피 싱 범죄 나" 문장은 "경찰청, 홈페이지, 인데, 요즘, 피, 싱, 범죄,나"의 8개의 토큰으로 나누어지고, 각각의 토큰은 word2vec 라이브러리를 이용하여 벡터로 표현된다.
도 10에서는 각 토큰을 300차원의 벡터로 변환한 것이다. 만일, 단어 벡터의 차원을 d라고 하고, 주어진 문장의 길이(문장의 토큰 개수)를 s라고 하면, 문장 매트릭스의 차원은 s × d 가 되고, 도 10에서는 8 ×300의 형태(shape)를 가지는 문장 매트릭스가 된다. 문장 매트릭스로 변환 시, 제로패딩(zero-padding) 방법을 사용하여 CNN 입력 길이를 맞춘다. 다음으로 필터(filter)를 통해서 컨볼루션 (convolution)을 수행한다. 문장 매트릭스의 행은 하나의 토큰, 즉 단어를 표현하기 때문에, 필터의 너비(width)는 단어 벡터의 차원과 동일한 너비 300을 사용하게 된다(앞서 기술하였듯이 본 발명에서는, 단어를 300차원의 벡터로 생성하였기 때문에 필터의 너비는 300이 된다). 따라서 필터의 너비는 고정되고, 단지 필터의 높이(height)만 다르게 설정할 수 있다. 필터의 높이는 함께 고려될 수 있는 인접한 단어의 수로써 컨텍스트 윈도우의 크기를 의미한다. 이전 설명한 Yoon Kim의 연구에서는 필터의 높이 h를 필터의 영역 사이즈(region size)라고 표현하고 있다. 동일한 영역으로부터 상호 보완적인(complementary) 자질을 학습하기 위해 동일한 영역 사이즈(region size)에 대해 여러 개의 필터들을 적용할 수 있다. 도 10에서는, (3,4,5) 3개의 영역 사이즈를 가지는, 즉 3 × 300, 4 × 300, 5 × 300 의 필터 3개를 각각 150개씩, 전체 450개의 필터를 통해 컨볼루션을 수행하여 나온 출력 값에 편차(bias)를 더하고, 활성화 함수를 적용하여 새로운 피처 맵 300*150*3개를 만들고 있다. 주어진 문장에 대하여 위에서 아래로만 윈도우 슬라이딩(sliding)을 수행하기 때문에, 각 필터에 의해서 생성된 피처 맵은 s - h + 1 차원의 크기를 가지는 벡터가 되고, 필터 영역 사이즈 h와 문장의 길이 s에 따라서 다양해질 것이다.
다음으로 각각의 피처 맵에 1-max 풀링 연산(operation)을 수행한다. 정보를 압축하기 위한 풀링 방법에는 여러 가지가 있지만 본 발명에서는 MAX 풀링 방식으로 max_pool_size - max 풀링 연산을 통해 각 피처 맵에서 가장 큰 값 하나를 선택함으로써 각 피처 맵에서 가장 중요한 자질을 얻을 수 있게 된다. 각각의 피처 ㅁ맵에 적용된 max_pool_size - max 풀링 연산에서 max_pool_size의 값은 실험을 통해 5를 선정하였으며, ksize[1,5,1,1], strides[1,5,1,1]을 수행하여 20*150*3개의 출력값들을 연결(concatenation)하고, 이 벡터가 탑-레벨 피처 벡터가 된다. 탑-ㄹ레벨 피처 벡터의 크기는 문장의 길이에는 영향을 받지 않고, 단지 영역 사이즈와 필터의 개수에만 영향을 받으며, 영역 사이즈 × 필터의 개수와 같은 크기가 된다. 따라서 도 10에서 탑-레벨 벡터의 크기는 모델에 입력되는 문장의 길이와 상관없이 일정하게 3 × 150 = 450 의 고정길이를 가지게 되며 본 연구에서는 맥스 풀링 계층을 통과하여 20*450개의 탑-레벨 피처 벡터가 생성된다.
마지막으로, 탑-레벨 피처 벡터는 LSTM모델을 통해 최종 분류를 위해 BasicLSTMCell 3개 레이어로 구성하여 MultiRNNCell을 구성하였으며 기본 BasicLSTMCell 보다 근소하게 우수한 성능을 보여주었다. 풀 커넥션 + 소프트맥스 계층(이하 FC 계층으로 표기)에 전달되며, FC 계층의 출력은 라벨에 대한 확률 분포가 된다. 가장 높은 출력값을 가지는 라벨이 주어진 문장의 예측 라벨이 된다.
3. 분류기 성능 분석
도 11은 모델 분류기의 구성도를 나타내는 도면이다. 본 발명에서는 게시글 코퍼스에 자동 띄어쓰기와 WPM을 적용한 후, 코퍼스를 생성한다. 그리고, 단일 분류기와 복합분류기의 정확률을 파악하기 위해 각 분류기별 정확률을 측정하고, 파이썬(Python), 젠심(Gensim)의 Doc2Vec 라이브러리를 통해 모델을 생성하였다.
모델 생성 후에는 분류기 성능 측정의 통계적 신뢰도를 높이기 위해서 10 겹 교차 검증을 적용하고, 분류모델에 따라 20 회 ~ 500 회 반복 훈련하였으며, 단일모델 분류기로는 CNN, LSTM 2가지 기계 학습 분류기에 적용하여 각각 정확률을 산출하고 제안 모델인 복합모델분류기로 CNN-LSTM 모델과 비교 분석하였다.
본 발명의 분류기 실험 환경은 구글에서 제공하는 텐서플로우(TensorFlow)와 파이썬(python)의 딥러닝을 위한 라이브러리의 하나인 scikit-learn(sklearn)을 사용하였다. 텐서플로우는 본 실험에서 적용한 300 채널의 배열을 처리하는 데에 다중 GPU를 이용하였고, scikit-learn은 데이터 마이닝과 분석에 주로 사용되는 라이브러리이다 .
그리고, 기본 분류기로 도 12와 같이 소프트맥스 회귀 모델을 구성하였으며, Word2Vec 300차원의 표현을 배열에 입력하여 훈련 데이터를 훈련하고, 테스트 데이터와 10 겹 교차 검증으로 비교한 후에 기계학습 모델을 생성하고, 정확률을 계산하였다 .
본 발명에서 기본 분류기로 선택한 소프트맥스 회귀 결과는, 이하에 보다 구체적으로 설명하겠지만, 표 16에 나타낸 바와 같이, 게시글에 대한 코퍼스를 소프트맥스 회귀 분류기에 적용했을 경우에 경우에는 게시글 코퍼스가 658,579개로 분류기로는 CNN-LSTM 사용시 73.7%로 가장 우수 하였고 LSTM 69.7%, CNN는 68.6%의 분류률을 보였다.
4. 모델별 성능 실험 및 분석
본 발명에서 성능 정확성은 각 클래스별 Precision, Recall, F1의 값을 가지고 평가를 한다. 아래의 [표 15]는 실험환경을 나타내고 [표 16]은 모델별 최종 성능 결과를 나타내고 있다.
[표 15] 성능평가 실험 환경
Figure pat00015

[표 16] 모델별 분류 성능
Figure pat00016

4.1 CNN 기반 분류기 성능 분석
도 13은 CNN 기반 분류기에서의 학습 수에 따른 성능을 나타낸다. 도 13에 도시된 바와 같이, CNN은 학습 횟수별(10, 30, 50, 100, 200)로 테스트를 수행했다. 학습 횟수가 많아질수록 성능이 저하되는 현상을 확인할 수 있었다.
4.2 LSTM 기반 분류기 성능 분석
도 14는 LSTM 기반 분류기에서의 학습 수에 따른 성능을 나타낸다. LSTM도 이전과 동일하게 학습 횟수별(10, 30, 50, 100, 200)로 테스트를 수행했다. CNN과 유사하게 학습 횟수가 많아질수록 성능이 저하되는 현상을 확인할 수 있었다.
4.3 CNN-LSTM 기반 분류기 성능 분석
먼저 CNN-LSTM의 구성에서 파라미터의 설정 값에 따라 성능의 차이를 보여 주었다. 본 발명은 워드 임베딩(Word Embedding)을 하기 위하여 기본적으로 300 차원 Word2Vec을 사용하며, 그 외의 파라미터는 가변적으로 값을 조정하여 성능을 테스트 하였다. 아래의 표 17은 가변적으로 변경되는 파라미터를 보여준다.
[표 17] 가변 파라미터의 종류
Figure pat00017

가) 최대 문장 길이(Max_Sentence_Length)별 성능 테스트
본 발명에서 사용한 한 문장의 최소 토큰 수는 2, 최대 토큰 수는 463으로, 2~ 4632의 범위를 갖는다 .
[표 18] 최대 문장 길이별 성능 측정
Figure pat00018

나) 필터별 성능 테스트
필터별 성능 테스트는 필터의 종류를 두 개에서 다섯 개까지 변경하며 진행되었다. 아래의 표 19는 필터별 성능을 나타낸다.
[표 19] 필터별 성능 측정
Figure pat00019

다) LSTM 은닉 크기(Hidden Size)별 성능 테스트
LSTM 은닉 크기의 설정값을 50,100,200,300,400의 단위로 변경하며 테스트 하였다. 아래의 [표 20]은 LSTM 은닉 크기별 성능을 보여준다.
[표 20] LSTM 은닉 크기(Hidden Size)별 성능 테스트
Figure pat00020

라) BasicLSTMCell과 MultiRNNCell의 성능 비교
CNN 모델로부터 입력받은 값을 LSTM으로 입력받기 위한 셀 설정시 단일 레이어를 사용할 경우 BasicLSTMCell을 멀티 레이어 설정시 MultiRNNCell을 사용하여 셀의 레이어 수를 설정할 수 있다. 아래의 [표 21]은 셀 종류별 성능을 보여준다. 또한 이와 관련하여 도 15는 셀 종류별 성능 측정결과를 나타낸다. 표 21 및 도 15로부터 알 수 있듯이, 50회 수행 평균 1.7% 향상된 정확률을 보여 주었다.
[표 21] 셀 종류별 성능 측정
Figure pat00021

마) LSTM MultiRnnCell 레이어 수 별 성능 테스트
LSTM 은닉 레이어 설정값을 1,2,3개의 단위로 변경하며 테스트 되었다 . 아래 [표 22]는 LSTM MultiRnnCell 레이어 개수별 성능을 보여준다.
[표 22] LSTM MultiRnnCell 레이어 개수별 성능
Figure pat00022

4.4 CNN-LSTM 최종 성능 측정 및 비교
성능 측정은 CNN-LSTM 구성 방법별 테스트 결과, 파라미터별 테스트 결과를 종합하여 측정되었다. 최종 성능 측정에서 사용된 CNN-LSTM의 구성 방법과 파라미터는 단위테스트에서 측정된 성능을 기반으로 하였다. 표 23은 최종 테스트에서 사용된 파라미터를 보여준다 .
[표 23] 최종 테스트 파라미터
Figure pat00023

도 16은 표 23의 최종 파라미터를 사용한 CNN-LSTM 기반 분류기의 성능 분석을 나타내고, 도 17은 트레이닝 횟수를 10, 30, 50, 100, 200회를 각각 수행하여 모델별 정밀도(Accuracy)를 보여준다 . CNN, LSTM 단일 모델의 경우 수행 횟수가 증가함에 따라 성능이 저하되는 현상을 확인할 수 있었으나 CNN-LSTM의 경우 단일 모델 대비 안정적인 모습을 나타내었다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로, 본 발명이 속하는 기술분야에서 통상의 지식을 갖는 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 게시된 실시예는 본 발명의 기술 사상을 한정하기 위한 것이 아닌 설명을 위한 것이고, 이런 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다.
따라서 본 발명의 보호 범위는 전술한 실시예에 의해 제한되기 보다는 아래의 청구범위에 의하여 해석되어야하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (5)

  1. 비정형 데이터의 카테고리를 자동으로 분류 방법에 있어서,
    인터넷 게시판에 게시된 게시물부터 비정형 데이터의 문자열을 수집하는 단계;
    수집된 비정형 데이터의 문자열에 대해 정보 추출 및 문자열 처리와, 문자 토큰화 처리를 포함하는 전처리를 수행하는 단계 - 전처리를 수행하는 것에 의해 상기 문자열은 벡터 표현으로 변환됨 - ;
    상기 전처리된 백터 표현을 CNN-LSTM 분류기에 입력하는 단계;
    상기 CNN-LSTM 분류기에 의해 상기 게시물의 카테고리를 자동으로 분류하는 단계를 포함하는 것을 특징으로 하는
    비정형 데이터의 카테고리를 자동으로 분류 방법.
  2. 제1항에 있어서,
    상기 정보 추출 및 문자열 처리는,
    엑셀파일 파싱하여 본문, 범주 정보를 추출하는 단계;
    문자열 내의 줄바꿈 문자 및 특수문자를 처리하는 단계;
    문자열을 자동 띄어쓰기 처리하는 단계; 및
    자동 띄어쓰기된 문자열에 대해 WPM을 적용하는 단계를 포함하고,
    상기 문자 토큰화 처리는,
    WPM 적용된 문자열을 Word2Vec 라이브러리를 활용하여 문자와 단어를 벡터 표현으로 변환하는 단계;를 포함하는
    비정형 데이터의 카테고리 자동으로 분류 방법.
  3. 제2항에 있어서,
    상기 CNN-LSTM 분류기에 입력되는 벡터 표현은 제로-패딩(zero-padding)을 통해 CNN용의 미리결정된 입력 길이를 가지며, 벡터로 이루어진 매트릭스의 높이(CNN에 입력되는 토큰 수에 대응)는 고정되어 있는
    비정형 데이터의 카테고리 자동으로 분류 방법.
  4. 제3항에 있어서,
    상기 CNN-LSTM 분류기에 의해 의해 상기 게시물의 카테고리를 자동으로 분류하는 단계는,
    복수의 피처 맵(feature map)을 생성하기 위해 미리정해진 필터를 통해 컨볼루션(convolution)을 수행하는 단계;
    생성된 복수의 피처 맵 각각에 대해 max 풀링 연산을 수행하여 각 피처 맵에서 하나의 자질을 획득하는 단계;
    모든 출력값들을 연결(concatenation)하여 고정된 길이를 갖는 탑-레벨 피처 벡터(top level freaure)를 생성하는 단계;
    상기 생성된 탑-레벨 피처 벡터(top level freaure)를 BasicLSTMCell 3개 레이어로 이루어진 MultiRNNCell로 구성하는 단계;
    풀커넥션+소프트맥스(Full Connection + Softmax) 계층을 통해 출력하는 단계; 를 포함하는
    비정형 데이터의 카테고리 자동으로 분류 방법.
  5. 제4항에 있어서,
    풀커넥션+소프트맥스(Full Connection + Softmax) 계층을 통한 출력은 라벨(label)에 대한 확률 분포이고, 가장 높은 출력값을 가지는 라벨이 주어진 문장의 예측 라벨로 분류되는
    비정형 데이터의 카테고리 자동으로 분류 방법.
KR1020170163188A 2017-11-30 2017-11-30 비정형 데이터의 카테고리 자동분류 방법 KR102008845B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170163188A KR102008845B1 (ko) 2017-11-30 2017-11-30 비정형 데이터의 카테고리 자동분류 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170163188A KR102008845B1 (ko) 2017-11-30 2017-11-30 비정형 데이터의 카테고리 자동분류 방법

Publications (2)

Publication Number Publication Date
KR20190063978A true KR20190063978A (ko) 2019-06-10
KR102008845B1 KR102008845B1 (ko) 2019-10-21

Family

ID=66848258

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170163188A KR102008845B1 (ko) 2017-11-30 2017-11-30 비정형 데이터의 카테고리 자동분류 방법

Country Status (1)

Country Link
KR (1) KR102008845B1 (ko)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110782096A (zh) * 2019-10-29 2020-02-11 山东科技大学 一种外汇时间序列预测方法
CN112380348A (zh) * 2020-11-25 2021-02-19 中信百信银行股份有限公司 元数据处理方法、装置、电子设备及计算机可读存储介质
KR20210058525A (ko) * 2019-11-14 2021-05-24 비씨카드(주) 상품 또는 서비스에 대한 비정형의 품목데이터를 자동으로 분류하는 방법 및 디바이스
CN113377901A (zh) * 2021-05-17 2021-09-10 内蒙古工业大学 一种基于多尺寸cnn和lstm模型的蒙古语文本情感分析方法
KR20210139034A (ko) * 2020-05-13 2021-11-22 한국원자력 통제기술원 미신고 핵주기 활동 탐지 및 통제를 위한 공개정보 수집, 분류 및 관리 시스템과 그 방법
KR20220068635A (ko) * 2020-11-19 2022-05-26 (주)아이브릭스 워드 임베딩 및 순환 컨볼루션을 이용한 짧은 문장 분류 방법 및 장치
KR102411081B1 (ko) * 2021-08-05 2022-06-22 주식회사 와이즈넛 유사도 기반의 연관 데이터 추천 시스템 및 그 방법
KR20220093924A (ko) * 2020-12-28 2022-07-05 한국과학기술원 해시태그 피드백 구조의 순환 생성 모델 기반 해시태그 추출 방법 및 장치
WO2022145524A1 (ko) * 2020-12-30 2022-07-07 (주)누리텔레콤 이종 데이터 정형화 방법 및 장치
KR20220105792A (ko) * 2021-01-21 2022-07-28 인하대학교 산학협력단 동적 텍스트 소스를 활용한 ai 기반 의사결정지원 시스템

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102166390B1 (ko) 2019-12-16 2020-10-15 (주)에이펙스 이에스씨 비정형 데이터의 모델링 방법 및 시스템
KR102486124B1 (ko) * 2020-12-01 2023-01-06 호서대학교 산학협력단 Dga 생성 도메인 탐지 및 분류하는 방법
KR102590576B1 (ko) 2023-04-19 2023-10-24 주식회사 에이오디컨설팅 데이터 의미론적 분류를 이용한 동적 데이터 구조 검색 방법
KR102590575B1 (ko) 2023-04-19 2023-10-17 주식회사 에이오디컨설팅 컬럼 의미 분류 기반의 데이터 구조 분석을 통한 동적 데이터 분류 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160003112A (ko) * 2013-06-09 2016-01-08 애플 인크. 실시간 필기 인식 관리
KR20170004165A (ko) * 2015-07-01 2017-01-11 지속가능발전소 주식회사 뉴스의 데이터마이닝을 통한 기업 평판 분석 장치 및 방법, 그 방법을 수행하기 위한 기록 매체

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160003112A (ko) * 2013-06-09 2016-01-08 애플 인크. 실시간 필기 인식 관리
KR20170004165A (ko) * 2015-07-01 2017-01-11 지속가능발전소 주식회사 뉴스의 데이터마이닝을 통한 기업 평판 분석 장치 및 방법, 그 방법을 수행하기 위한 기록 매체

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110782096A (zh) * 2019-10-29 2020-02-11 山东科技大学 一种外汇时间序列预测方法
KR20210058525A (ko) * 2019-11-14 2021-05-24 비씨카드(주) 상품 또는 서비스에 대한 비정형의 품목데이터를 자동으로 분류하는 방법 및 디바이스
KR20210139034A (ko) * 2020-05-13 2021-11-22 한국원자력 통제기술원 미신고 핵주기 활동 탐지 및 통제를 위한 공개정보 수집, 분류 및 관리 시스템과 그 방법
KR20220068635A (ko) * 2020-11-19 2022-05-26 (주)아이브릭스 워드 임베딩 및 순환 컨볼루션을 이용한 짧은 문장 분류 방법 및 장치
CN112380348A (zh) * 2020-11-25 2021-02-19 中信百信银行股份有限公司 元数据处理方法、装置、电子设备及计算机可读存储介质
CN112380348B (zh) * 2020-11-25 2024-03-26 中信百信银行股份有限公司 元数据处理方法、装置、电子设备及计算机可读存储介质
KR20220093924A (ko) * 2020-12-28 2022-07-05 한국과학기술원 해시태그 피드백 구조의 순환 생성 모델 기반 해시태그 추출 방법 및 장치
WO2022145524A1 (ko) * 2020-12-30 2022-07-07 (주)누리텔레콤 이종 데이터 정형화 방법 및 장치
KR20220105792A (ko) * 2021-01-21 2022-07-28 인하대학교 산학협력단 동적 텍스트 소스를 활용한 ai 기반 의사결정지원 시스템
CN113377901A (zh) * 2021-05-17 2021-09-10 内蒙古工业大学 一种基于多尺寸cnn和lstm模型的蒙古语文本情感分析方法
KR102411081B1 (ko) * 2021-08-05 2022-06-22 주식회사 와이즈넛 유사도 기반의 연관 데이터 추천 시스템 및 그 방법

Also Published As

Publication number Publication date
KR102008845B1 (ko) 2019-10-21

Similar Documents

Publication Publication Date Title
KR102008845B1 (ko) 비정형 데이터의 카테고리 자동분류 방법
Onan et al. A term weighted neural language model and stacked bidirectional LSTM based framework for sarcasm identification
Sundararajan et al. Multi‐Rule Based Ensemble Feature Selection Model for Sarcasm Type Detection in Twitter
Sivakumar et al. Review on word2vec word embedding neural net
CN111881291A (zh) 一种文本情感分类方法及系统
Jamil et al. Detecting sarcasm in multi-domain datasets using convolutional neural networks and long short term memory network model
Wahid et al. Cricket sentiment analysis from Bangla text using recurrent neural network with long short term memory model
CN112784532B (zh) 用于短文本情感分类的多头注意力记忆系统
CN112199503B (zh) 一种基于特征增强的非平衡Bi-LSTM的中文文本分类方法
CN115952292B (zh) 多标签分类方法、装置及计算机可读介质
Suyanto Synonyms-based augmentation to improve fake news detection using bidirectional LSTM
Wint et al. Deep learning based sentiment classification in social network services datasets
Helmy et al. Applying deep learning for Arabic keyphrase extraction
Xu et al. Chinese event detection based on multi-feature fusion and BiLSTM
Rajalakshmi et al. Sentimental analysis of code-mixed Hindi language
Khan et al. Offensive language detection for low resource language using deep sequence model
Anjum et al. Exploring Humor in Natural Language Processing: A Comprehensive Review of JOKER Tasks at CLEF Symposium 2023.
Jeyakarthic et al. Optimal bidirectional long short term memory based sentiment analysis with sarcasm detection and classification on twitter data
US20220156489A1 (en) Machine learning techniques for identifying logical sections in unstructured data
Koru et al. Detection of Turkish Fake News from Tweets with BERT Models
Saifullah et al. Cyberbullying Text Identification based on Deep Learning and Transformer-based Language Models
KR20200040032A (ko) 양방향 lstm―attention 기반 한국어 게시글 분류 방법
CN111859955A (zh) 一种基于深度学习的舆情数据分析模型
Amrutha et al. Effortless and beneficial processing of natural languages using transformers
Hoque et al. Detecting cyberbullying text using the approaches with machine learning models for the low-resource bengali language

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right