Chatbot의 기본 개념 및 용어에 대해 이해합니다.

Chatbot의 이해

Chatbot이란?

Chatbot(챗봇)은 사용자의 의도를 파악하여, 답변/접수를 대화로 진행하는 Bot서비스입니다
이때 사용자의 의도를 알아내는 것을 ARS처럼 숫자나 버튼, 명령어로 알아낼 수도 있고 사람들이 평소에 쓰는 자연어를 통해 알아낼 수도 있습니다. ARS처럼 명확하게 의도를 알아내고 처리하는 방식을 룰기반 Chatbot이라고 하고, 자연어처리를 통해 의도를 인식하고 답변하는 Chatbot을 지능형 Chatbot이라고 말하고 있습니다.
Singlex Chatbot Platform은 이러한 Chatbot들을 간단하게 만들 수 있도록 지원하는 서비스입니다.

Chatbot 동작원리

비행기표를 구매하는 대화과정을 통해 Chatbot의 동작원리를 이해해 보겠습니다. 김챗봇씨라는 분이 여행사에 전화를 걸어 내일 당장 뉴욕행 비행기표를 사는 상황을 생각해보시죠.

상담 대화 예시

(따르릉)
여행상담원 : 고객님과 함께하는 여행, OO여행입니다. 안녕하세요? 무엇을 도와드릴까요?
김챗봇씨 : 안녕하세요?
여행상담원 : 반갑습니다. 고객님~ 무엇을 도와드릴까요?
김챗봇씨 : 네, 내일 출발하는 뉴욕행 비행기표를 사려구요.
여행상담원 : 네 비행기표 예약하시려고 하시는군요? 
           출발지는 인천공항이신가요?
김챗봇씨 : 네. 인천이요.
여행상담원 : 잠시만요~  
           (잠시후...)
           고객님, 확인해 봤는데 오후에는 비행기가 없고,
           아침 5시 30분 A항공, 아침 7시 40분 B항공 2가지가 있네요!
(중략)

위와 같은 대화를 진행할때 전화상담원과 Chatbot이 어떻게 달라지는지 보겠습니다.

상담원과 Chatbot 대화 비교

대화맥락 대화 예제 Chatbot에서의 동작
Greeting Message (만남인사) 상담원 : 고객님과 함께하는 여행, OO여행입니다. 안녕하세요? 무엇을 도와드릴까요? 상담원이 준비된 멘트로 고객을 맞이하듯 서비스가 시작되면 Chatbot이 준비된 멘트로 고객을 맞이합니다.
Intent Classification (의도분류) & Entity Extraction (핵심어 추출) 상황1 - 김챗봇씨 : 내일 출발하는 뉴욕행 비행기표를 사려구요. 상황2 - 김챗봇씨 : 비행기표를 사려구요. 상황1에서의 김챗봇씨의 의도는 “비행기표 예매”로 분류될 수 있고, 핵심어는 “도착지 : 뉴욕”, “출발일 : 내일”이라는 것을 추출할 수 있습니다. 상황2에서의 김챗봇씨의 의도는 역시 “비행기표 예매”입니다. 그러나 핵심어는 나와있지 않네요.
Slot Filling Prompt (부족한 정보 재질의) 상담원 : 네, 고객님. 출발지는 인천공항이신가요? 상황1에서는 비행기표 예매를 위한 필수값인 출발지를 되물어 봅니다. 상황2에서는 출발지외에 도착지와 출발일도 함께 물어보게 됩니다.
Slot Filling Answer (재질의 응답) 김챗봇씨 : 네, 인천이요 출발지가 인천이라는 것을 확인합니다. 상황2에서는 하나씩 차례대로 물어보고 필수 값을 받아낼 수 있습니다.
API Query (API 질의) 상담원 : 잠시만요~ 상담원이 업무시스템을 통해 잔여 항공권을 조회합니다. Chatbot의 경우, 시스템의 API를 통해 상기 대화에서 입력받은 질의 조건을 기반으로 쿼리를 날립니다.
Result Speaking 상담원 : 고객님, 확인해 봤는데 오후에는 비행기가 없고,아침 5시 30분 A항공, 아침 7시 40분 B항공 2가지가 있네요! Chatbot은 API를 통해 알아낸 여러가지 내용을 고객에게 제시합니다.

선택한 항공권을 예약하기 위해 접수대화를 이어갈 수도 있고, 보여진 결과가 마음에 들지 않는다면 다른 조건으로 다시 확인도 가능합니다. Chatbot은 대화라는 방식을 통해 간단한 정보를 조회하고, 접수를 Self로 처리할 수 있는 서비스가 가능합니다. dap.chatbot은 위와 같은 대화를 손쉽게 만들고 서비스 할 수 있는 플랫폼입니다.

Chatbot 용어 알기

Chatbot 동작원리를 살펴보면, 다양한 용어들이 나옵니다. 이해를 돕기위해 아래와 같이 용어를 정리하였습니다.

용어 설명 유사 표현
자연어 (Natural Language) 한국어, 영어 등과 같이 인간이 일반적으로 의사소통시 사용하는 수 많은 언어를 말합니다. 사람이 쓰는 말
NLU (Natural Language Understanding) 자연어로된 표현을 “이해”라는 관점으로 새롭게 분류/변환 하는 것을 의미합니다. Chatbot에서는 일반적으로 사용자의 의도와 그 의도속에 포함되어 있는 중요 키워드들로 변환하기 위해 NLU가 쓰입니다. 자연어 이해
Intent (인텐트) Chatbot과 대화하는 사용자의 의도를 말합니다. Intent는 사용자의 입력문장에 따라 분류되는 단위이며, Chatbot이 답변하기 위한 기준이 됩니다. “오늘 날씨 어때?”, “오늘의 날씨”, “날씨좀 알려줘” 3가지 표현은 모두 “날씨정보조회”라는 하나의 의도로 분류될 수 있습니다. 의도
Entity (엔티티) 입력문장에 포함되어 있는 중요 키워드를 의미합니다. 예를 들어 “내일 날씨 어때?” 라고 했을때 인텐트는 “날씨 문의”라고 한다면, “내일”은 일자에 해당하는 Entity입니다. “내일” 대신에 “오늘”이 올 수도 있고 11월 11일이 될 수도 있겠죠? 키워드, 핵심어, 개체
DM(Dialog Manager) Chatbot이 의도를 파악했을때 어떤 대화를 이어나갈지 관리하는 시스템 전반을 의미합니다. 가장 간단한 DM은 “내일 날싸 어때?”라고 했을때 “내일 날씨는 맑아요~” 라는 답변을 만들어주는 도구라고 볼 수 있습니다. 답변
채널(Channel) 사용자가 Chatbot과 소통하는 인터페이스. 흔히 생각할 수 있는 대표적인 채널에는 Facebook Messanger, Kakaotalk 등의 일반 외부 메신저가 있습니다. 대화창
Slot Filling Chatbot이 사용자가 요구한 서비스를 처리하기 위해 필요한 값을 받기 위한 활동입니다. 일반적으로 되물어보고, 답을 받는 형태로 진행됩니다. 보다 자세한 내용은 Slot Node 페이지에서 확인해세요. 빈칸 채우기, 되묻기, 추가 질의
Default Fallback Chatbot이 사용자의 발화를 알아듣지 못한 상황을 나타내는 말입니다. Default Fallback 상황을 대응하는 것은 굉장히 중요합니다. Chatbot이 학습한 내용에서 의도(Intent)를 찾지 못했을 때 어떻게 반응하느냐에 따라 사용자의 만족도가 달라질 수 있습니다. 또한 Default Fallback이 발생한 사용자 발화를 추가적으로 학습하는 과정이 필요합니다. 못알아 들었어요

다음으로 할 일

위에서 나온 Chatbot 관련 개념에 익숙해지셨다면, 본격적으로 Singlex Chatbot Platform에서 챗봇을 만들어 보세요!

Tags: basic