Chatbot Dialogue Scenario

Eun·2023년 1월 4일
0

Chatbot

목록 보기
1/2

Chatbot Scenario 이해를 위한 기본 개념과 용어 정리

NAVER D2 챗봇을 위한 대화는 어떻게 디자인할까를 참고하여 정리하였습니다.

챗봇 대화 시나리오

챗봇 대화 시나리오는 크게 두 가지 종류로 나누어집니다.

1) TOD
: Task Oriented dialog
테스크 지향 다이얼로그라고 부르며 식당 예약과 같은 뚜렷한 목적이 있는 대화 시나리오를 의미합니다.

2) Chit-chat dialog
TOD와는 달리 목적 없이 자유롭게 소통하는 대화 시나리오를 뜻합니다.

TOD

대화의 목적에 부드럽고 자연스럽게 도달할 수 있도록 챗봇을 설계해야 합니다.

사용자가 하는 말은 하나의 문장에 여러 요청을 담거나 질문하는 경우가 많습니다.
따라서 문장 속에서 여러 의도와 정보를 찾고 최대한 짧은 구간에 요청/질의를 처리해야 합니다.

또한 대화를 하는 도중 대화 주제를 변경하거나 대화 중 무응답 등 여러 장애 상황(failure)이 발생하기도 합니다.
이를 대비하여 여러 장애 상황을 고칠 수 있는 repair 처리를 구상해야 합니다.

대화의 구성 요소

1) 발화 (Utterance)

: 대화를 이루는 문장 그 자체입니다.
챗봇에서 각 말풍선이라고 생각할 수 있습니다.
즉, 사용자가 말한 문장을 말합니다.
발화는 대화 시나리오를 처리하기 위해 가공되기 전의 형태입니다.

2) 인텐트 (Intent)

: 발화의 의도를 의미합니다.
내부의 자연어 이해 모듈(NLU)을 거쳐 발화를 가공하여 인텐트로 변경됩니다.
시스템은 이 인텐트를 기준으로 대화 시나리오를 처리합니다.

3) 슬롯 (Slot)

: 발화에 포함된 task와 관련된 의미있는 정보입니다.
정보의 특성에 맞게 각 슬롯에 저장하고 대화 시나리오에서 사용합니다.
ex) 언제 예약하는지, 몇 명이 오는지 등

4) 엔티티 (Entity)

: 슬롯에 저장되는 데이터의 타입입니다.
날짜, 숫자, 이름, 주소 등 다양합니다.
엔티티에 따라서 슬롯을 분류할 수 있으며, 발화에서 추출한 슬롯의 형태를 설계하는데 도움을 줍니다.

+) 인텐드 슬롯 페어 (Intent-slot Pair)
인텐드와 슬롯의 쌍이 있어야 대화를 처리하는 경우 편의상 이 하나를 묶어서 하나의 개념으로 정의합니다.
간단하게 페어라고도 부릅니다.

예를 들어 위 발화에서는 메뉴 정보 요청이라는 인텐트와 메뉴 정보를 받을 연락처 정보인 슬롯이 둘 다 필요합니다.
I-faq-inform.text와 S-PhoneNumber를 L-faq.inform.text 페어로 정의하면 대화 설계를 효율적으로 할 수 있습니다.

5) 컨텍스트 (Context)

: 대화의 문맥 정보입니다.
시스템은 컨텍스트를 바탕으로 사용자의 중의적인 표현을 보충하여 정확한 질의/요청을 처리합니다.
대화는 하나의 컨텍스트만으로 구성되지 않고 대화 진행 과정에서 새로운 컨텍스트가 생기거나 이전 컨텍스트로 돌아오는 과정을 거칠 수 있습니다.

+) 리페어/해피 패스 (Repair/Happy Path)

기존 컨텍스트와는 전혀 관련 없는 사항에 대한 새로운 대화를 진행하는 경우, 새로운 컨텍스트에 대한 대화를 처리하고 기존 컨텍스트로 자연스럽게 돌아오는 시나리오에 대한 구성이 필요합니다.
사용자가 갑작스러운 문의를 하는 경우 대답할 수 있는 리페어 패스를 준비해야 합니다.

대화를 진행하는 도중 사용자가 응답하지 않는 경우, 미응답에 따른 리페어 패스를 통해 사용자가 응답할 때까지 대기하거나 미응답이 지속되는 경우 대화를 종료하는 등의 처리가 필요합니다.

+) Paraphases

다시 원래 컨텍스트로 돌아와서 이전 컨텍스트에 질문을 다시 하는 경우 반복되는 문장을 발화하는 문제가 발생합니다.
이런 경우, 의미는 같지만 표현이 다른 여러 문장을 랜덤하게 선택하여 발화함으로써 자연스럽게 구성할 수 있습니다.

6) 턴 (Turn) / 멀티 턴 (Multi-turn)

턴은 시스템과 사용자가 번갈아 대화하는 각각의 쌍입니다.
대화는 턴을 여러번 쌓아나가며 진행됩니다.
턴이 진행되는 과정에서 사용자의 발화만으로 태스크를 해결하기 어려운 경우가 존재합니다.
이런 경우, 추가 턴에서 부족한 정보를 질문하고 사용자가 답변함으로서 부족한 정보를 채울 수 있습니다.
추가 턴을 진행하는 형태를 멀티 턴이라고 합니다.

7) 슬롯 필링 (Slot Filling)

: 멀티턴을 통해 부족한 정보를 채우는 과정을 말합니다.

대화 시나리오에서 멀티턴은 빈번하게 발생하며
정보가 부족한 슬롯의 형태는 굉장히 다양한 케이스로 존재하기 때문에
슬롯 필링의 시나리오를 꼼꼼하게 설계하는 것이 중요합니다.
또한, 슬롯 필링의 과정이 기계적이면 사용자가 피로감을 느낄 수 있으니 주의가 필요합니다.

8) 팔로업 퀘스천 (Follow Up Question)

: 슬롯 필링을 위해서 하는 추가 질문을 의미합니다.

DST

Dialogue state tracking

TOD의 core componet
대표적으로 레스토랑이나 티켓 예약과 같은 고객 서비스 부분에서 사용됩니다.

DST의 목표는 대화 중에 표현되는 유저의 목표나 의도를 추출하고
이것을 dialogue state의 compact set으로 즉, (slot, value) set으로 encode하는 것입니다.

정확한 DST 성능은 유저 intention이 다음 시스템의 action 및/또는 데이터베이스에서 쿼리할 콘텐츠를 결정하는 적절한 dialogue 관리에 중요합니다.

to be continue..
profile
새해 복 많이 받으세요 ^0^

0개의 댓글