데이터 과학 유망주의 매일 글쓰기 — 캡스톤 프로젝트 1–2

배우는 자(Learner Of Life)
5 min readFeb 23, 2021

--

챗봇을 위한 데이터 선택

# 데이터, # 챗봇

챗봇은 인간의 감정에 공감하고, 인간을 위로할 수 있어야한다.

오늘 한일:

오늘은 어제에 이어서, 프로젝트의 상황을 설정한 후, 데이터를 좀 더 탐구하기 위해 EDA를 진행했다. 일단, 어제 이야기 한 것처럼, 챗봇은 인간의 감정에 공감하고, 인간을 위로하는 것이 목적이기 때문에, 학습하려는 데이터에 인간에게 예의를 갖추며 대답하는 어투나 태도가 녹아있어야 한다.

사실 오늘 선택한 데이터는 Chatbot_data_for_Korean v1.0(1) 라는 데이터로써, 다음카페 “사랑보다 아름다운 실연”(2)에서 자주 나오는 이야기들을 참조하여 제작되었다. 이 데이터를 활용하는 이유는 사람이 말할 법한 일상적인 질문들이 인위적이지 않은 상당히 자연스러운 어투로 구성되어 있으며, 답변은 다소 인위적이더라도 무례하거나 특정한 그룹의 사람들을 혐오하는 비속어를 사용하지 않기 때문이다. 이는 지난 “이루다 사태”(3)에서도 보았듯이, 예의없고 몰상식한 챗봇은 큰 사회적 비난을 야기할 수 있기 때문에 반드시 주의해야하는 부분이다. 따라서, 이루다가 학습했던 방식으로 무작위로 다량의 데이터를 검증없이 학습하기 보다, 이미 검증된 데이터를 바탕으로 그 내용만을 학습함으로써 보다 “예의바르고 상식적인” 챗봇을 구현할 수 있도록 하기 위한 전략이다. 챗봇이 인간과 공감하고 인간을 위로하려면, 이러한 도덕적인 면이 매우 중요하다고 판단되기 때문이다.

데이터는 인간이 일상적으로 물어볼만한 질문들로 구성된 “Q” 칼럼, 상식적으로 이에 대해 챗봇이 답할 만한 내용들인 “A”, 그리고 해당 문답에서 느껴지는 감정을 0(일상), 1(이별,부정), 2(사랑,긍정) 등으로 분류한 “label” 칼럼으로 구성되어있다. 이전에 언급했다시피 “Q”는 일상적으로 사람들이 이야기 할만한 질문들이며, “A”는 조금 인위적이지만 공손하고 예의바른 말투로 질문에 대해 공감과 위로를 할 수 있는 답변으로 구성되어있다. 이렇게 답변이 구성되어 있으므로, 챗봇을 이용하는 사람들이 최대한 감정적인 위로를 받을 수 있을 것이다. “label” 칼럼은 이 프로젝트에서 타킷 데이터로 활용될 것이며, “0”은 일상적인 느낌의 대화로써 특별한 감정이 없다고 판단하고, “1”은 이별, 슬픔, 걱정 등의 다소 부정적인 감정, “2”는 사랑, 기쁨, 즐거움 등의 긍정적인 감정으로 분류된다고 볼 수 있다. 이렇게 특정한 범주로 구분되어있는 타깃 라벨이 존재함으로써, 머신러닝이나 딥러닝 모델링을 통해 사용자들의 감정상태를 예측하는 목적에 있어서도 알맞은 데이터라고 할 수 있다.

인간의 질문은 친근한 어투의 반말이 주인 것을 알 수 있다.
컴퓨터의 응답은 다소 공손하고 예의바른 어투인 것을 알 수 있다.

WordCloud를 통해 인간의 질문과 챗봇이 할 대답의 용어 분포도를 비교해보았다. 대체적으로 질문들은 좀 더 친근한 반말인 경우가 대부분이고, “너무”라는 용어가 가장 빈도가 큰 것으로 보아, 부사의 사용이 매우 잦은 것을 알 수 있다. 이러한 부사는 특정한 감정을 강조하기 위해 많이 쓰이므로, 특정한 감정을 아마도 강하게 느끼는 질문이 많았을 것으로 보인다. 반대로 대답은 “~요.”로 끝내는 공손한 표현이 대부분이다. 인간의 그 어떤 질문에도 공손하고 예의바르게 상대를 높여서 부른다는 것을 알 수 있다. 인간을 달랠 수 있고, 인간의 감정에 공감할 수 있는 어투로 이루어져 있다는 것을 알 수 있다. 상대적으로 인간의 질문 만큼 “너무” 같은 부사가 많이 쓰여지지 않고, “거예요”, “같아요”, “있어요” 등 일상에서 무언가를 공손히 권유하거나 대답할 때 쓰이는 단어가 많이 등장하는 것을 알 수 있다. 하지만, 대답의 그러한 특성 때문인지, 상대적으로 대답에서는 질문보다 감정이 전체적으로 덜 드러난다는 느낌이 들기도 한다.

내일 할일:

오늘은 내가 선택한 데이터를 주로 탐구해보는 시간을 가졌다. 다행히도 대답 데이터의 말투가 매우 공손하여, 인간에게 예의없거나 비속어로 응답을 할 위험은 상당부분 없어보였다. 그렇다면 이제는 머신러닝모델링을 했을 때, 어느 정도의 정확도로 타깃 라벨인 “0”(무감정, 일상), “1”(이별/부정), “2”(사랑/긍정)을 예측할 수 있을까? 이 결과와 딥러닝으로 모델링할 때의 결과를 비교할 생각이다. 딥러닝 모델링이 반드시 머신러닝 모델링을 뛰어넘어, 내가 딥러닝으로 만들 챗봇이 설득력 있는 성능을 보여주기를 바란다. 결국 나의 목표는 내가 만들 챗봇을 정당화하는 것이니까.

단, 타깃 라벨이 3가지로 분류가 된 점은 조금 걱정이 된다. 이 부분에 있어 감정이 있는 “1”과 “2”라벨을 묶어서 감정이 없는 “0”라벨과 비교해야 하는 것인지도 고민된다. 내가 세운 계획에 따라 프로젝트가 잘 진행되기를 바랄 뿐이다.

내일 목표는 반드시 머신러닝 모델을 돌려보는 것이 목표다. 이전에 배웠던 잠재의미분석(LSA)의 개념을 다시 활용할 생각이다. 이번 프로젝트를 통해, 내가 배웠던 모든 것들을 최대한 의미있는 방향으로 활용할 수 있기를 바란다. 물론, 모든 것을 활용할 수는 없다. 다만, 문제 해결에 필요하고 유용한 모든 도구를 사용해 보면서, 내 프로젝트의 퀄리티를 최적화하고 싶다. 물론 이를 위해서 교차검증(CV) 과정도 필요할 것이다.

모든 사람들이 프로젝트에서 최대한 자신이 알고있는 것을 최선의 방향으로 활용하고, 이를 바탕으로 최대의 결과를 낼 수 있기를.

참조:

(1) Chatbot_data_for_Korean v1.0

(2) 사랑보다 아름다운 실연

(3) AI ‘이루다’ 멈췄지만…성차별·혐오는 인간에게 돌아온다

--

--

배우는 자(Learner Of Life)
배우는 자(Learner Of Life)

Written by 배우는 자(Learner Of Life)

배움은 죽을 때까지 끝이 없다. 어쩌면 그게 우리가 살아있다는 증거일지도 모른다. 배움을 멈추는 순간, 혹은 배움의 기회가 더 이상 존재하지 않는 순간, 우리의 삶은 어쩌면 거기서 끝나는 것은 아닐까? 나는 배운다 그러므로 나는 존재한다. 배울 수 있음에, 그래서 살아 있음에 감사한다.

No responses yet