2.1 연구방법
단문으로 구성된 고객의 질문 및 불평사항을 토픽별로 분류하기 위해 검색어 트렌드나 워드 클라우드와 같이 널리 활용되어 온 텍스트 마이닝(Text Mining)
기법들을 활용할 수 있으나 이 방법은 단순히 단어들의 출현 빈도만을 다루는 경우가 많다(6). 하지만 단어의 사용 빈도와 중요도가 언제나 일치하는 것은 아니며, 빈도수 방식은 텍스트의 순서와 구조에 대한 정보를 대부분 잃기 때문에, 문맥
속에서 통찰력을 얻기 어렵다는 의견이 있다(7)(8). 때문에 본 연구는 그림 1과 같은 절차로 기계학습 연구방법으로 진행하였다.
그림 1 연구절차
Fig. 1 Flowchart of topic classification
먼저, 129,082건의 글을 워드 임베딩 하여 단어 간 상호 근접성을 알 수 있는 벡터 값을 산출함으로써 비정형데이터인 글을 정형데이터로 전환한다.
다음으로 3만 건의 글을 임의 발췌하여 지도학습의 답인 토픽명을 한전 직원이 개별 글에 붙여서 LSTM으로 심화학습시킨다. 보다 자세한 연구 단계별
설명은 표 1과 같다.
표 1 단계별 연구 내용
Table 1 Study contents
Steps
|
Contents
|
Data
Collection
|
Through the KEPCO Voice of Customer (VOC) system, we extracted 205,680 articles accumulated
from Jan. 2008 to Mar. 2018, excluding 46,598 cases of such as poor date items, and
secured 159,082 data.
|
Topic
Labeling
|
Four KEPCO employees modeled ten topics, and then manually attached the topics to
the article. Obtained 24,514 cases except 5,486 simple compliments.
|
Word
Embedding
|
Of the 159,082 cases, except for 30,000 for learning, 129,082 data were analyzed and
processed (KoNLPy). Expressed as a dense vector with similarity between words.
|
Topic
Classification
|
Leveraging Long Short-Term Memory (LSTM), 80% of the total data (19,611) is used for
training and the remaining 20% (4,903) is used for testing.
|
Evaluation
|
The classification results are evaluated using precision matrix, recall, and harmonic
mean (f1-score) using a confusion matrix.
|
2.1.1 비지도 학습(Unsupervised learning) 기반 토픽 분류(Topic Classification)
전기를 소비하는 고객의 글이 해당업무의 담당직원에게 전달되기 위해서는 먼저 전문 인력이 투입되어 글의 토픽이 파악되어야 한다. 비용과 시간을 절감하기
위해서는 기계가 글을 읽고 토픽을 찾아주는 시스템이 필요하다. 이렇게 글의 내용에서 숨겨진 의미구조를 발견하여 토픽을 추출하는 작업을 토픽모델링(topic
modeling)이라 한다. 토픽모델링은 구조화되지 않은 비정형 데이터인 텍스트 묶음에서 토픽을 찾는 기법으로써 문서의 의미론적 구조를 확률분포로
추론하는 알고리즘이다(9).
토픽 모델링에 대표적으로 쓰이는 LDA(Latent Dirichlet Allocation)는 문헌 내의 숨겨져 있는 주제들을 찾아내는 알고리즘이다(10). 이 알고리즘은 답을 미리 알려주는 지도학습(Supervised Learning)과 달리 학습을 통해 분류를 시도하는 비지도합습(Unsupervised
Learning)으로 모델링을 실제 문헌을 작성하는 과정으로 보고 문헌을 작성하기 위해 각 문헌에 어떤 주제들을 포함시킬 것인지, 또 그에 따라 어떤
단어들을 주제에서 맞춰 배치할 것인지를 각각의 파라미터로 모델링한다. 따라서 문헌, 단어 등 관찰된 변수를 통해 문헌구조와 같이 보이지 않는 변수를
추론하며 결과적으로 전체 문서 집합의 주제들과 각 문서별 주제비율, 각 주제에 포함될 단어들의 분포를 알아낼 수 있다(11). 비지도 학습 기반인 LDA로 토픽을 모델링하면 지도학습과 달리 토픽이 미리 필요치 않은 장점이 있지만, 기존 문서 규모의 글 내에서 단어 동시
발생 패턴을 암시적으로 캡처하여 토픽을 추론하기 때문에 단어수가 적은 단문에서는 데이터 희소성 문제가 발생한다(12), (13), (14). 데이터 희소성은 문서 대비 토픽 분포의 생성을 방해하기 때문에 결과적으로 모델링한 토픽은 의미론적으로 일관성이 떨어지게 된다(15). 이와 같은 이유로 표 2의 LDA 결과에서와 같이 개별 토픽 모델을 구성한 키워드가 모호성을 갖는 한계점이 확인되었다(16).
표 2 LDA를 활용한 토픽모델링 결과
Table 2 Topic modeling from LDA
topic 0
|
|
topic 1
|
|
topic 2
|
|
topic 3
|
|
topic 4
|
process
manager
task
complaints
request
appointed
contents
dissatisfaction
visit
answer
|
|
buisnessman
obstacle
tax
bill
enrollment
publish
supply
foundation
Issued
registration
|
|
automatic
pay
card
account
payment
transfer
change
bank book
bank
termination
|
|
electricity
three
contract
public
levy
apartment
office
hotel
single
synthesis
|
|
housing
normal
change
high voltage
home
low voltage
apply
office
general
contract
|
|
|
|
|
|
|
|
|
|
topic 5
|
|
topic 6
|
|
topic 7
|
|
topic 8
|
|
topic 9
|
household
parents
mother
father
citizen
grandmother
residence
son
householder
mom
|
|
support
town
improving
more
energy
suggestion
think
institution
need
nation
|
|
document
need
step
submission
contract
change
possible
name
occation
owner
|
|
meter
replacement
install
incomingwire
supply
place
meter
anyone
opinion
answer
|
|
construction
company
progress
scene
safety
boost
temporary
install
inspection
complete
|
2.1.2 지도학습(Supervised learning)을 위한 토픽 레이블링(Topic Labeling)
2008년 1월부터 2018년 3월까지 한전홈페이지에 올라온 129,082건의 글은 평균 49개 단어 규모의 단문으로 앞서 설명한 바와 같이 비지도
학습 기반의 LDA 적용에 한계가 있다. 또한 고객이 쓴 글은 신문이나 논문 등 사전적으로 정제된 단어로 쓰인 글과 달리 비전문적인 단어가 혼용되어
있는 경우가 많다. 예를 들어 전력선을 지지하기 위한 시설물을 산업통상자원부 고시로 공고된 [전기설비기술기준]에서는 “지지물”이라 총칭하고 제품재료에
따라 “목주, 철주, 철근 콘크리트주”로 구분하지만 고객의 글에서는 “전봇대, 전신주, 기둥, 폴대, 전선대” 등 다양한 단어가 혼용되어 데이터 희소성
문제를 더욱 두드러지게 한다. 이에 본 연구에서는 전문 인력을 동원하여 토픽이 없는 글에 토픽을 레이블링하고 이를 통해 답이 있는 데이터로 지도학습을
진행하게 되었다. 표 3과 같이 한전 제주본부 직원 4인이 사전 모델링한 10개 토픽을 가지고 24,514건의 글에 레이블링 작업을 하였다.
표 3 한전직원이 작업한 학습용 데이터의 토픽모델링 내용
Table 3 Topic modeling of training data made by KEPCO
No
|
Topic
|
Training
Data
|
Testing
Data
|
Number
|
|
Share
|
1
|
Bill/Pay/Refund
|
8,158
|
2,039
|
10,197
|
|
42%
|
2
|
Bill consultation
|
4,488
|
1,122
|
5,610
|
|
23%
|
3
|
Move calculate
|
1,154
|
289
|
1,443
|
|
6%
|
4
|
Application
|
642
|
160
|
802
|
|
3%
|
5
|
Electric cutoff due to arrears
|
537
|
134
|
671
|
|
3%
|
6
|
VAT
|
155
|
38
|
193
|
|
1%
|
7
|
TV reception fee
|
1,014
|
254
|
1,268
|
|
5%
|
8
|
Distibution Operations
|
2,822
|
706
|
3,528
|
|
14%
|
9
|
Meter
|
322
|
81
|
403
|
|
2%
|
10
|
PV
|
319
|
80
|
399
|
|
2%
|
Sum
|
19,611
|
4,903
|
24,514
|
|
100%
|
2.1.3 데이터 전처리
한국어 형태소 분석 툴인 KoNLPy를 활용하여 데이터 전처리 과정 중 토큰화(Tokenization)와 불용어 제거(Stop word elimination)
그리고 어간추출(Stemming)을 하였고 주어진 문서나 문장을 벡터로 표현하는 단계인 문서 표현(Representation)은 2013년 구글에서
개발한 Word2vec를 활용하여 워드 임베딩(Word Embedding)하였다. 언어를 신호 공간에 매핑 하는 워드 임베딩(word embedding)은
자연어 처리의 가장 기초적인 단계이며 현재까지 여러 방식이 제안되어 왔는데, 이 중 Word2vec모델이 많이 활용되고 있다(17), (18). 다른 모델들과 마찬가지로 Word2vec 모델의 성능도 어떻게 하이퍼파라미터를 설정하는지에 따라 크게 달라진다(19). Word2vec 모델은 학습에 의해서 진화하는 모델이고, 학습을 시작하기 전에 하이퍼파라미터를 적절히 선택하는 것이 중요하지만 최적의 하이퍼파라미터
조합을 찾는 것은 쉽지 않은데, 그 이유는 복수의 하이퍼파라미터들이 상호 독립적이지 않고 서로 영향을 주고받기 때문이다. 보통의 경우, 예상되는 최적의
조합을 중심으로 각 하이퍼파라미터의 값을 조정해 가면서 해당 모델의 성능을 평가하는 방식으로 최적화한다(20). 본 연구에서는 워드 임베딩 하이퍼파라미터를 설정 후 유사도 검정 및 유추검사 확인으로 최적화하여 기계학습 준비를 완료하였다.
2.1.4 토픽 분류(Topic Classification)
벡터값으로 임베딩된 텍스트 데이터를 토픽별로 분류하는 작업을 학습시키기 위한 방법에는 RNN 등 딥러닝으로 간주되는 알고리즘이 있다. RNN(Recurrent
Neural Network)은 신경망 속 셀의 현재 출력 결과가 이전의 계산 결과에 영향을 받는 인공신경망모델이다. 다시 말해, 이전 계산결과에 대한
메모리 정보를 가지고 있기 때문에 순차적인 데이터를 학습하는데 장점을 가지고 있다. RNN의 한 종류인 LSTM(Long Short-Term Memory)은
기존 RNN에서 에러값이 신경망 레이어에 전파될 때 계산량이 많아지고 전파되는 양이 점차 작아지는 문제점(Vanishing gradients)을 극복하기
위해 1997년 Sepp Hochreiter와 Jurgen Schmidhuberrk 제안한 모델이다(21). 미국 경제 주간지 Bloomberg Business Week은 LSTM이 질병 예측에서 음악 작곡에 이르기까지 모든 분야에서 사용되는 가장 상업적인
인공지능 이라고 보도했다(22). LSTM의 구조를 나타낸 그림 2를 요약하여 설명하면, LSTM 셀은 중요한 입력을 인식하기 위해 배우고(입력 게이트의 역할), 장기 상태에 저장하며, 필요한 기간 동안 이를 보존하기
위해 학습하고(삭제 게이트의 역할), 필요할 때마다 이를 추출하기 위해 학습한다(23).
그림 2 LSTM 알고리즘 모형
Fig. 2 Structure of LSTM
LSTM은 c와 h의 2개 층으로 구성된다. c셀을 하이퍼볼릭탄젠트 함수로 스쿼시한 다음, o(output)에 의해 제어되는 출력게이트 값과 연산을
해서 단기상태(short-term)인 h(hidden)를 구하게 된다. h와 달리 타임라인에 따라 계속 흐르는 c는 장기상태(long-term state)로
간주되며, 삭제게이트인 f(forget)와 이전 시간의 cell state를 곱해서 장기상태의 정보에 대한 지속여부가 제어된다. 만약에 f가 0이라면
이전 스테이트를 전혀 반영하지 않게 되는 것이다. 다음으로 입력게이트인 i(input)와 g의 연산단계에서는 i값을 이 셀스테이트에 얼마나 더해줄
것이냐를 결정하는 부분으로 g만큼 곱해서 더해주는 것이다. 까지 오게 되면 현재 시간의 셀 스테이트를 구한 것이다. 여기서 o는 현재 셀 스테이트
중에 어느 부분을 다음 h셀로 전달할지 결정하는 역할을 한다. h셀은 두 방향으로 갈리는데, 오른쪽 방향은 LSTM의 다음 시간이며, 윗 방향은 최상위측의
예측(prediction)이 된다(24),(25). 이와 같이 학습에 의해 이전 시간대의 정도를 선택 판단하여 다음 시간대로 전달하는 LSTM의 재귀적 특성으로 학습이 반복될수록 무엇을 기억하고
잊어야 하는지 기존의 순환신경망(RNN)보다 정확히 계산할 수 있다. 본 연구에서 LSTM의 하이퍼파라미터인 은닉층 차원수는 150, dropout은
0.3, recurrent dropout은 0.4를 주었다.
2.2 연구결과
2.2.1 토픽분류
LSTM을 통해 심층기계학습(Deep Learning)한 토픽분류 모델은 84%의 분류정확도를 나타내고 있다. 절대적으로 높은 정확도라 하기는 어렵지만
기술과 영업분야를 모두 포함한 10개 업무분야에 능통하여 토픽을 분류할 수 있는 직원을 육성하기 어렵다는 전제조건을 고려한다면 사람을 대신할 수 있는
정확도라고 할 수 있다.
그림 3 LSTM을 활용한 토픽분류 사례
Fig. 3 Topic classification example using LSTM
그림 3은 임의 글에 대한 분류작업 결과의 예시이며 표 4는 과거 10년간 고객이 홈페이지에 올린 129,082건의 토픽분류 현황으로 청구/납부/환불 토픽과 요금 토픽에 대한 질문이 가장 많다는 것을 보여준다.
태양광발전은 점유율이 1%로 낮게 보이지만 최근 등장한 토픽임을 감안한다면 증가율이 높음을 알 수 있다.
표 4 최근 10년간 고객 질문의 토픽분류
Table 4 Topic classification of customer’s questions for 10 years
번호
|
토픽
|
건수
|
|
점유율
|
1
|
Bill/Pay/Refund
|
38,319
|
|
42%
|
2
|
Bill consultation
|
44,055
|
|
49%
|
3
|
Move calculate
|
4,908
|
|
5%
|
4
|
Application
|
5,868
|
|
6%
|
5
|
Electric cutoff due to arrears
|
3,151
|
|
3%
|
6
|
VAT
|
1,029
|
|
1%
|
7
|
TV reception fee
|
4,748
|
|
5%
|
8
|
Distibution Operations
|
24,700
|
|
27%
|
9
|
Meter
|
1,437
|
|
2%
|
10
|
PV
|
867
|
|
1%
|
Sum
|
129,082
|
|
100%
|
2.2.2 분류 정확도 평가
분류결과의 평가에는 오차행렬(confusion matrix)과 이를 이용한 정밀도(precision), 재현율(recall) 그리고 이 둘을 조화평균한
f1-score를 사용하였다. 정밀도는 특정 레이블로 예측된 것 중 정답의 비율이고 재현율은 특정 레이블 중 예측이 정확히 된 비율이다(26). 표 5에 보인 오차행렬을 해석하면 데이터 수가 부족한 레이블과 업무범위가 겹쳐서 높은 행렬 값을 보이는 레이블인 요금과 청구, 요금과 신규, 요금과 계기
등 은 분류 성능이 상대적으로 낮다는 것을 알 수 있다.
표 5 오차행렬 산출결과
Table 5 The result of confusion matrix
A
n
s
w
e
r
L
a
b
l
e
|
Fee
|
9e+2
|
1.4e+02
|
12
|
6
|
7
|
21
|
4
|
2
|
22
|
9
|
Bill
|
77
|
1.8e+03
|
12
|
10
|
3
|
59
|
15
|
0
|
9
|
11
|
Dis. Op.
|
16
|
7
|
6.7e+02
|
1
|
3
|
0
|
2
|
0
|
4
|
0
|
TV
|
3
|
1
|
3
|
2.5e+02
|
0
|
0
|
0
|
0
|
0
|
0
|
Meter
|
16
|
4
|
15
|
0
|
40
|
0
|
0
|
2
|
4
|
0
|
Move
|
10
|
55
|
0
|
1
|
0
|
2.2e+02
|
0
|
0
|
0
|
0
|
Arears
|
3
|
52
|
7
|
1
|
1
|
1
|
68
|
0
|
1
|
0
|
PV
|
12
|
2
|
14
|
0
|
3
|
0
|
0
|
42
|
6
|
1
|
Application
|
47
|
12
|
15
|
0
|
1
|
3
|
1
|
2
|
77
|
2
|
VAT
|
5
|
8
|
0
|
0
|
0
|
0
|
0
|
2
|
5
|
18
|
|
|
Fee
|
Bill
|
Dis. Op.
|
TV
|
Meter
|
Move
|
Arears
|
PV
|
Application
|
VAT
|
|
|
Prediction Lable
|
정밀도, 재현율 그리고 f1-scores는 그림 4와 같다. f1-scores는 TV부터 배전운영, 청구, 요금, 이사, 태양광, 체납, 계기, 신규, 부가세까지의 순위를 보이고 있으며, 다른 업무분야와
함께 질문이 들어오는 경우가 적은 TV, 배전운영 등이 상위를 차지하고 있다.
그림 4 정밀도, 재현율, f1-score
Fig. 4 Precision, Recall, f1-score