I. Introduction
전 세계적으로 많은 인구가 불안 장애나 우울증 등으로 고통 받고 있지만, 상담 비용이나 치료 시설 접근성 등의 환경적 문제로 상담에 어려움을 느낀다. 우리나라 문화에서는 특히나 정신적 문제를 드러내거나 전문적 치료에 거부감을 느끼는 경우가 많다[1]. 이후 컴퓨터를 통한 심리상담의 효과가 입증되면서 관련 애플리케이션이나 프로그램 등이 생겨나기 시작했다[2]. 특히, 상담에 인공지능을 접목하거나 인공지능 챗봇을 통한 정신 건강 케어 사례가 늘어나는 추세이다. 인공지능 챗봇의 경우, 대부분 연중무휴 24시간 이용이 가능하여 이용자의 필요를 즉시 충족할 수 있으며 사용자의 문제를 외부에 드러내지 않을 수 있다는 것이 큰 장점이다[3].
정신 건강 케어 인공지능 챗봇의 종류로는 대표적으로 국외의 ‘워봇 (Woebot)’, ‘와이사 (Wysa)’, ‘테스 (Tess)’, ‘레플리카 (Replika)’ 등이 있다. 이 중 레플리카의 경우 부정적인 감정을 완화시켜주는 전 세계적으로 유명한 일상 대화 챗봇인데, COVID-19 팬데믹 사태 이후로 사용량이 크게 증가하였다[4]. 그러나, 레플리카의 경우 영어로만 대화가 가능하여 소통에 있어 모든 사람이 이용하기에는 불편하다는 단점이 있다. 이에, 본 연구에서는 한국어 텍스트 입력 기반인 BERGPT-chatbot을 제안한다.
BERGPT-chatbot은 KR-BERT[5]와 KoGPT2-chatbot [6]을 앙상블한 기법이다. 특히 BERGPT-chatbot에 이용되는 KR-BERT의 경우 텍스트 감정 분석의 대표적 언어 모델인 BERT[7-8] 기반 한국어 특화 모델이다. 다른 한국어 BERT 모델과 비교했을 때 적은 데이터로도 자연어 처리 성능 과제에서 동등하거나 높은 성능을 보인다. KoGPT2-chatbot은 문장 생성 언어 모델인 Generative Pre-trained Transformer (GPT) [9-11] 기반의 한국어 모델인 KoGPT2[12]를 이용하여 만들어진 챗봇이다. KoGPT2는 챗봇 구축이나 텍스트 감성 예측 및 분석 기반 응답 생성 등에 사용이 가능하다. 따라서, 본 연구에서는 대표적 언어 모델인 두 모델을 파이프라인으로 구성하여 연구를 진행하고자 한다.
그리고, 학습된 BERGPT-chatbot과 기존 KoGPT2-chatbot을 내부 평가 지표인 퍼플렉서티 (Perplexity, PPL)[13] 를 통해 두 모델의 우위를 보고자 한다.
2장에서는 레플리카의 특징과 사용 모델의 관련 연구를 알아보고, 3장에서는 KR-BERT와 KoGPT2-chatbot을 활용한 방법론을 소개한다. 4장에서는 Dataset의 구성과 전처리, 실험 환경 등을 기술하고 결과에 대한 분석을 제시한다. 마지막 5장에서는 본 연구의 결론을 맺고자 한다.
II. Preliminaries
1. Related works
1.1 Replika
2017년에 출시된 레플리카는 감성 지능 챗봇으로 긍정적 감정을 유도함으로써 사용자에게 정서적 지원을 한다 [14]. 레플리카는 사용자와 대화 즉시 챗봇의 응답에 평가를 하고, 대화할수록 챗봇이 업그레이드되며 사용자와의 대화를 기억한다는 것이 큰 특징이다.
Fig. 1은 레플리카의 구조를 나타낸다. 레플리카는 대화 엔진 (Dialog Engine)을 통하여 사용자가 입력한 문장에 대해서 응답을 해준다. 대화 엔진은 스크립트 (Scripts), 생성 모델 (Generative Model), 검색 모델 (Retrieval Model), 자연어 처리 분류기 (NLP classifiers), 재순 위 모델 (Reranking Model)로 구성되며 그 중 재순위 모델을 사용하여 응답해주기 때문에 다른 챗봇과는 다르게 더 정확한 응답이 가능하다. 재순위 모델은 단순하게 사용자가 입력한 문장에 대해서 응답 문장을 생성하는 생성 모델과 사용자가 입력한 문장에 대해서 최적의 답변을 검색하여 응답 문장을 생성하는 검색 모델을 활용하여 응답 문장 후보를 구한다. 그리고 선정된 후보 문장을 파인튜닝 (fine-tuning) BERT를 통하여 문장에 대한 긍정과 부정 (Upvote & Downvote) 을 분류한다. 분류된 긍정과 부정문장은 점수를 산출하여 높은 점수를 받은 답변을 사용자에 답변해준다. 여기서 긍정과 부정은 사용자가 레플리카가 응답한 문장에 대해서 평가하는 시스템이다. 평가가 완료된 문장들은 긍정 비율 (Upvote ratio) 을 구하는데 긍정 / 긍정 + 부정 (Upvote / Upvote + Downvote) 공식으로 비율을 구한다. 이렇게 계산된 긍정 비율 척도 (Upvote ratio metric) 는 추후 학습 데이터로도 활용되며 점수 산출에도 큰 영향을 끼친다. 이러한 과정을 통해 사용자와 원활한 대화가 가능하다는 장점이 있지만, 영어로만 진행이 가능하다는 단점이 존재한다.
Fig. 1. Replika Architecture
1.2 Bi-directional Encoder Representations from Transformers (BERT)
2019년 구글에서 발표한 트랜스포머 양방향 인코더 표현 (Bidirectional Encoder Representation from Transformers, BERT) 은 자연어 처리 분야에서 대표적인 텍스트 감정 분석 언어 모델이다. BERT는 트랜스포머 구조에서 인코더 (Encoder) 부분을 사용하는 모델이며, 양방향 모델과 WordPiece 토크나이징을 사용하는 것이 강점이라고 할 수 있다. WordPiece 토크나이징은 바이트 페어 인코딩 (Byte Pair Encoding, BPE) 과 비슷한 방법인데, 문장에 들어있는 단어의 빈도수를 기반으로 하여 단어의 의미를 파악하고 토크나이징하는 방법이다. 양방향 모델은 기존 단방향에 비해 단어 간 관계 파악의 정확도가 높아 문맥 파악이 더 수월하다. 예를 들어, 문장 중간의 단어를 예측해야 하는 경우 기존 모델은 이전 단어들만 참고하여 예측을 진행했지만, 양방향의 경우 이전, 이후 단어 모두를 참고하여 예측을 진행하기 때문에 더 정확한 예측이 가능하다[7-8].
1.3 KR-BERT
기존 BERT 모델이 음절 단위로 토큰을 나누었다면, KR-BERT[5]는 자소 단위로 토큰을 나누는 것을 제안했다. 자소 단위로 모델을 학습하는 경우 기존 한국어 BERT모델 [15-16]보다 문법에서 여러 활용형 인식이 좋다는 장점이 있다. 예를 들어, ‘갔’, ‘감’, ‘간’ 등과 같이 음절 단위의 형태를 자소 단위로 ‘ㄱ(k)’, ‘ㅏ(a)’ 로 나누어 둘은 “가다 (go)”의 의미를 가진다. 받침인 ‘ㅆ’, ‘ㅁ’, ‘ㄴ’ 등을 통해 과거나 현재와 같이 여러 진행형의 의미를 갖게 된다. 이렇게 자소 단위의 분석을 통해 Multilingual BERT 모델에서 한국어 분석 시에 아쉬운 부분까지 분석이 가능하게 된다. KR-BERT는 감정 분석, 질의응답, 개체명 인식, 패러프레이즈 인식의 네 가지 자연어 처리 과제 성능을 평가하였을 때, 다른 한국어 기반 BERT 모델들보다 동등하거나 더 높은 성능을 보인다. 따라서, 본 연구에서는 KR-BERT를 이용하여 텍스트 감정 분석을 진행하고자 한다.
1.4 KoGPT2
2018년 처음 Open AI에서 공개한 Generative Pre-trained Transformer (GPT)는 이후 2019년에 GPT2를, 2020년에 GPT3을 공개했다[9-11]. GPT는 다른 언어 모델들처럼 단어가 주어질 때 다음에 나올 단어들을 예측하는 특징이 있다. 문장을 만들 수 있으며 더 나아가 문단을 만들 수 있다. 하지만 GPT2의 경우 영어를 기반으로 한 모델이기 때문에 한국어 문장 생성에 있어서 부족한 성능을 보였다. 이러한 점을 개선하고자 KoGPT2가 개발되었다. KoGPT2는 음절 바이트 페어 인코딩과 트랜스포머의 디코더 (Decoder) 블록을 사용하여 한국어 문장을 학습시켰다. 학습 데이터는 40GB 이상이며, 모델 학습에 사용된 사전에는 이모티콘 등을 포함하여 51, 200개의 토큰이 들어있다[12]. 본 연구에서는 KoGPT2 기반으로 만들어진 haven-jeon의 KoGPT2-chatbot을 사용하고자 한다.
III. Methodology
본 연구에서는 감정 완화 챗봇인 BERGPT-chatbot을 제안한다. Fig. 2는 본 연구에서 제안하는 모델의 전체적인 구조 및 학습 과정을 나타낸다.
Fig. 2. Workflow of BERGPT-chatbot
BERGPT-chatbot은 KR-BERT와 KoGPT2-chatbot을 하나의 파이프라인으로 만들어 구성하였다. KR-BERT와 KoGPT2-chatbot은 감정이 분류된 데이터를 사용하여 학습되었고, 기존 KoGPT2-chatbot의 경우 한 개의 데이터셋으로 학습되었다. 이러한 부분은 챗봇에 다양한 응답을 기대하기 어려우므로 추가적으로 공개된 감정 데이터셋을비롯하여 일상 대화 데이터를 사용하여 학습한 KR-BERT 로 감정 분류를 진행하였다. 이후 분류된 일상 대화 데이터를 KoGPT2-chatbot의 추가 학습 데이터로 사용하여 모델을 학습하였다. 이러한 KR-BERT와 KoGPT2-chatbot의 파이프라인은 더 다양한 데이터셋의사용으로 기존 모델과 비교하였을 때 정확한 응답을 기대해볼 수 있다.
① 감정 분류를 위해 KR-BERT를 학습함
• KR-BERT의 최적화 함수는 Adam, 손실 함수는 CrossEntropyLoss를 사용
• 데이터는 Naver sentiment movie corpus v1.0[17], 감성 대화 말뭉치(버전 1.0)[18]와 웰니스 대화 스크립트 데이터셋[19], 감성 분석 말뭉치 2020(버전 1.0)[20] 데이터를 사용하여 학습
• 이후, 비감정 데이터인 일상대화 말뭉치 2020(버전 1.1)[20]를 사용하여 감정을 분류
② 분류된 감정에서 부정은 1, 긍정은 2로 구성
③ 감정 분류를 마친 비감정 데이터와 기존 감정 데이터를 가지고 KoGPT2-chatbot을 학습
• 토크나이저의 음절 바이트 페어 인코딩 토크나이저를 사용
• 최적화 함수는 AdamW, 손실 함수는 CrossEntropyLoss를 사용
④ KoGPT2-chatbot을 사용자가 입력한 문장의 감정 분석 후 알맞은 답변을 출력하는 형태로 대화를 진행
IV. Experiment
본 실험에서는 AIHub KETI R&D데이터 인식기술(언어지능)에서 제공하는 ‘한국어 감정 정보가 포함된 단발성 대화’[21] 를 통하여 모델을 비교하려고 한다. 모델 비교는 PPL 을 통하여 본 연구에서 제안하는 모델의 우위를 보고자 한다.
4.1 A dataset for emotional analysis conversations
Table. 1은 감정 분석 대화를 위한 데이터셋이다. Naver sentiment movie corpus v1.0은 네이버 영화에서 사용자들의 리뷰를 스크랩하여 데이터를 구성하였다. 데이터는 id는 리뷰 아이디, document는 실제 리뷰, label은 리뷰의 감성 데이터로 구성되어있다. document 와 label의 데이터만 사용하여 학습 데이터로 구성하였다.
Table 1. Training dataset of BERGPT-chatbot
감성 대화 말뭉치(버전 1.0)는 AI-Hub에서 제공하는 데이터이다. 60가지의 감정 중 기쁨에 해당하는 데이터는 긍정 데이터, 나머지 데이터는 부정 데이터로 분류하여 데이터셋을 구축하였다.
감성 분석 말뭉치 2020(버전 1.0)은 국립국어원에서 제공하며 5가지로 세부 감정으로 분류되어있다. 중립, 긍정, 강한 긍정은 긍정 데이터로 분류하였으며, 강한 부정, 부정은 부정 데이터로 데이터셋을 구축하였다.
웰니스 대화 스크립트 데이터셋은 AI Hub에서 제공하며, 사용자와 챗봇의 상담으로 대화가 이루어진 데이터만 사용하였다.
일상 대화 말뭉치 2020(버전 1.1)은 국립국어원에서 제공하며, 15개의 주제와 13개의 제시 자료인 국립국어원 신문 말뭉치에서 선정한 신문 기사를 대상으로 두 명의 화자가 자유롭게 대화를 나눈 일상 대화를 텍스트 형태로 추출한 대화 데이터셋이다.
4.2 Construction of experimental data for emotional analysis
본 연구에서는 한국어 감정 정보가 포함된 단발성 대화데이터셋을 통하여 모델을 비교하려고 한다. 한국어 감정 정보가 포함된 단발성 대화 데이터셋은 SNS 글 및 온라인댓글에 대한 문장으로 총 7개의 감정(기쁨, 슬픔, 놀람, 분노, 공포, 혐오, 중립)이 있으며 데이터의 개수는 38, 594개로 구성되어있다. 실험에서는 38, 594개에 대한 PPL을 계산하고, 이를 통해 모델의 비교를 진행하려고 한다.
실험 환경은 3.30GHz의 Intel(R) i9-10940X CPU와 NVIDIA RTX 2080 TI 11GB * 4 GPU, 256GB RAM, Linux Ubuntu 18.04 운영체제가 설치되어 있는 데스크톱 PC에서 실험을 진행하였다.
4.3 Comparison method and results
실험에서는 PPL을 통하여 모델의 성능 평가를 진행하려고 한다. PPL은 언어 모델을 평가하기 위한 내부 평가지표로서 모델의 혼란한 정도를 나타내며, 확률 계산을 기반으로 하여 평가한다. PPL은 간단하게 (1)과 같이 수학적으로 정의된다. N은 문장(W)의 길이를 나타내고, 는 테스트 세트의 문장(w1, w2, ..., wn)을 나타낸다. 예를 들어, ‘A’, ‘B’, ‘C’ 세 문장이 존재한다고 했을 때, 각각 0.7, 0.3, 0.8의 확률이 주어지면 계산식은 (2)와 같다.
문장이 길어질수록 확률값은 작아지며, 문장 길이를 통해 계산된 확률값을 정규화한다. 확률을 최대화할수록 PPL이 낮아지는데, 이 수치가 낮을수록 성능이 우수함을 뜻한다[22].
\(P P L(W)=\sqrt[N]{\frac{1}{P\left(w_{1}, w_{2}, \ldots, w_{n}\right)}}\) (1)
\(\begin{aligned} &=\left(\frac{1}{0.7 \times 0.3 \times 0.8}\right)^{-1} \\ &=(0.168)^{-1} \\ &=5.95 \end{aligned}\) (2)
본 연구에서는 PPL을 통해 두 챗봇의 성능을 비교하고자 하며, Table. 2는 두 챗봇의 PPL 계산 결과이다.
Table 2. Comparison of chatbot performance
Fig. 3은 epoch 30에 대한 기존 KoGPT2-chatbot과 BERGPT-chatbot의 PPL 그래프이다. PPL 수치는 낮을수록 해당 모델의 성능이 좋음을 의미한다. Fig. 3을 통해 본연구에서 제안된 BERGPT-chatbot이 KoGPT2-chatbot 보다 우위에 있다는 것을 알 수 있다. 하지만 챗봇의 경우 사용자마다 응답에 대한 만족도 부분은 주관적인 의견이 강하기 때문에 챗봇의 답변은 수치상의 비교가 불가능하다는 문제가 있다. 따라서, 내부 평가 지표인 PPL을 이용해 성능을 비교하고자 하였다. 이러한 결과를 통해 BERGPT-chatbot의 구조가 기존 chatbot의 구조보다 우위에 있다는 것을 알 수 있었고, 이에 따라 챗봇의 성능이 달라짐을 확인할 수 있었다.
Fig. 3. PPL of BERGPT-chatbot
V. Conclusions
본 연구에서는 부정적인 감정을 완화시켜주는 일상 대화 챗봇인 국외의 ‘레플리카’처럼 국내에도 이와 비슷한 챗봇이 필요하다고 판단되어 BERGPT-chatbot을 제안하였다. 국내에 비슷한 성격을 가진 챗봇인 ‘트로스트[23]’나 ‘헬로우봇[24]’이 존재하지만, ‘레플리카’처럼 텍스트 입력 기반 대화보다 버튼형 답변 및 심리 진단 등 콘텐츠 진행에 중심을 둔 형태의 챗봇이다. 따라서 텍스트 입력이 가능한 KR-BERT와 KoGPT2-chatbot이 결합된 BERGPT-chatbot을 제안하였다. BERGPT-chatbot은 기존 감정 데이터셋과 KR-BERT를 통해 분류된 비감정 데이터셋을 이용하여 KoGPT2-chatbot에 학습하였다. 이후 챗봇의 경우 응답 만족도는 사용자마다 다르며 답변에 대한 수 치상의 비교가 불가능하여, 기존 KoGPT2-chatbot과 BERGPT-chatbot의 우위를 가리고자 언어 모델의 내부 평가 지표인 PPL을 계산하여 성능 평가를 진행하였다. 비교 결과 BERGPT-chatbot의 성능이 더 우수함을 확인하였다.
그러나 본 연구에서 제안한 BERGPT-chatbot의 경우에도 한계점이 존재한다. 현재 공개되어 있는 감정 데이터셋의 한계로 인해 비감정 데이터셋인 일상 대화 데이터셋을 이용하여 학습을 진행하였음에도 모든 질문에 대한 응답에 한계가 있었다. 추후 연구에서는 보다 더 원활한 대화를 위해 다양한 데이터셋 확보와 제안 모델 보완으로 자연스러운 대화가 가능하도록 챗봇을 개선하고자 한다.
ACKNOWLEDGEMENT
This research was supported by the MISP(Ministry of Science, ICT & Future Planning), Korea, under the National Program for Excellence in SW) supervised by the IITP(Institute for Information & communications Technology Promotion)
References
- Doyoun Kim, ChoMinKi, Shin Heecheon, "The Application of Artificial Intelligence Technology in Counseling and Psychotherapy: Recent Foreign Cases", Korean Journal Of Counseling And Psychotherapy, Vol. 32, No. 2, pp. 821-847, May 2020. https://doi.org/10.23844/kjcp.2020.05.32.2.821
- Se Hun An, Ok Ran Jeong, "A Study on the Psychological Counseling AI Chatbot System based on Sentiment Analysis", Journal of Information Technology Services, Vol. 20, No. 3, pp. 75-86, June 2021. DOI: 10.9716/KITS.2021.20.3.075
- Soo-jin Seol, Su-Hee Hong, Doh-yeon Kim, Yongtae Shin, "A Study on Factors Influencing the Intention to Use the Intelligent Mental Health Diagnosis System-Focused on a Diagnosis System for Firefighters", Jounal of The Korea Society of Information Technology Policy & Management, Vol. 12, No. 6, pp. 2207-2213, December 2020.
- The New York Times, https://www.nytimes.com/2021/06/01/health/artificial-intelligence-therapy-woebot.html
- Sangah Lee, HAN SOL JANG, Yunmee Baik, Suzi Park, Hyopil Shin, "A Small-Scale Korean-Specific BERT Language Model", Journal of KIISE, Vol. 47, No. 7, pp. 682-692, July 2020. DOI: 10.5626/JOK.2020.47.7.682
- KoGPT2-chatbot, https://github.com/haven-jeon/KoGPT2-chatbot
- Devlin, J., Chang, M. W., Lee, K., and Toutanova, K., "Bert: Pre-training of deep bidirectional transformers for language understanding", arXiv preprint arXiv:1810.04805. 2018.
- Jae-Ok Min, Jin-Woo Park, Yu-Jeong Jo, Bong-Gun Lee, "Korean Machine Reading Comprehension for Patent Consultation Using BERT", KIPS Transactions on Software and Data Engineering, Vol. 9, No. 4, pp. 145-152, April 2020. https://doi.org/10.3745/KTSDE.2020.9.4.145
- Radford, A., Narasimhan, K., Salimans, T., and Sutskever, I., "Improving language understanding by generative pre-training", 2018.
- Radford, A., Wu, J., Child, R., Luan, D., Amodei, D., & Sutskever, I., "Language models are unsupervised multitask learners", OpenAI blog, 1(8), 9. 2019.
- Brown, T. B., Mann, B., Ryder, N., Subbiah, M., Kaplan, J., Dhariwal, P., ... & Amodei, D., "Language models are few-shot learners", arXiv preprint arXiv:2005.14165. 2020.
- SKT Open Source, https://sktelecom.github.io/project/kogpt2/
- Huggingface, https://huggingface.co/transformers/perplexity.html
- Hakim, F. Z. M.., Indrayani, L. M.., and Amalia, R. M., "A dialogic analysis of compliment strategies employed by replika chatbot", In Third International Conference of Arts, Language and Culture, Vol. 279, pp. 266-271, February 2019. DOI: https://doi.org/10.2991/icalc-18.2019.38
- ETRI, AI API.DATA, https://aiopen.etri.re.kr/service_dataset.php
- SKT Open Source, https://sktelecom.github.io/project/kobert/
- Naver sentiment movie corpus v1.0, https://github.com/e9t/nsmc
- AI-Hub, https://aihub.or.kr/aidata/7978/download
- AI-Hub, https://aihub.or.kr/opendata/keti-data/recognition-laguage/KETI-02-006
- NIKL, https://corpus.korean.go.kr/#down
- AI-Hub, https://aihub.or.kr/opendata/keti-data/recognition-laguage/KETI-02-009
- Sanghoun Song, "Phraseological Analysis of Learner Corpus Based on Language Model", LANGUAGE AND INFORMATION, Vol. 22, No. 1, pp. 123-152, February 2018. https://doi.org/10.29403/li.22.1.6
- Trost, https://trost.co.kr/
- Hellobot, https://thingsflow.kr/