home..

Dialogue system

개요

Dialogue System, Conversational System

대화 시스템(Dialogue System)은 도메인에 따라 크게 2가지로 나누어집니다.

Task-Oriented(목적 지향)

특정 Task에서 사용자의 요구사항을 파악하고 이를 해결하기 위한 적절한 대화 시스템.

Sigle turn and Multi turn

QA와 비교

  Dialogue System Question Answering
소개 사람-사람, 사람-시스템 간의 대화를 가정 특정 상황을 가정하지 않고 질문에 대한 답을 제공
데이터셋 특정 시나리오를 가정한 대화 데이터 길이가 긴 텍스트로부터 정답의 위치를 알려줌
출력 화자의 질문으로부터 알맞는 정답, 정답을 포함한 문장을 생성하는 것이 최종 목적 질문에 맞는 단어 혹은 구절
Task 질문을 이해하고 정답을 생성하기 위해 여러개의 sub-task로 나누어져 있음 Single task로 수행 가능

TOD 구조

Task-Oriented 시스템은 보통 크게 NLU, DST, DP, NLG 4개의 task로 구분됩니다.

Open-domain

모델의 주 목적은 사용자에게 특정 persona를 갖는 적절한 대답(reply)을 생성하는 것 입니다.

또한 한창 연구 중인 영역이기 때문에 딱히 정해진 아키텍처는 없는 듯 합니다만

검색 모델(Retrieval-based model)과 반대되는 생성 모델(Generative model)을 주로 씁니다.

그 이유는 검색 모델은 정해진 답변에서 적절한 답변을 고르는 모델이기에 Task-Oriented에 주로 사용되는 방식이고

생성 모델은 적절한 답변을 생성하기 때문입니다.

Retrieval-based model 특징

Generative model 특징

참고

ParlAI가 지원하는 데이터셋 정리

NLU

NLU에서 이루어지는 작업은 크게 다음으로 나누어집니다.

Domain Identification

어떤 Domain(영역)의 발화인지 인지하는 과정입니다.

Intent Classification

사용자의 현재 목표를 이해하기 위해 의도 검출기를 활용하여

사용자의 발언을 여러 사전 정의된 클래스 중 하나로 분류해야 합니다.

참고

Slot Filling

대화 중 사용자의 쿼리에서 서로 다른 슬롯을 식별하는 것입니다.

예를 들어 사용자가 인근 식당을 조회해달라고 한다면

주요 슬롯은 위치선호 음식입니다.

그리고 이 슬롯을 채우기 위해 시스템은 사용자에게 위치와 선호 음식을 묻게 됩니다.

참고

DST

Dialogue State Tracking(DST)이란 Question Answering, Text-to-SQL과 같은 Semantic Parsing의 일종입니다.

이는 사용자와 시스템의 대화 내에서 사용자의 목적을 State라고 정의한 뒤, 그 State들을 정립해 나가는 과정입니다.

인공지능 스피커를 가지고 계신 분들이라면, 스피커와의 대화 속에서 인공지능이 정확하게 사용자의 요구를 파악한 뒤 그것을 행하는 전초 작업이라고 생각하시면 됩니다.

DST의 성능 지표는 Joint Goal Accuracy를 사용합니다.

이는 각 턴의 정답 slot value와 생성해낸 value가 모두 일치할 때 +1을 하게 됩니다.

유형

DST의 유형은 크게 2가지로 나누어집니다.

DST vs IE(Information Extraction)

  DST IE
input User: 화요일에 안암동 근처에 식당 예약하고 싶어, Sys: 몇명이 갈건데?, User: 4명이 갈거야! 화요일에 안암동 근처에 있는 식당 예약하고 싶어
Output Restaurant_Book(Day = Tuesday, Area = 안암동, People_num = 2) (나는)-예약 하고싶다-식당 : 트리플 형식
목적 유저의 의도, slot에 따른 value Relation과 Argument

Challenge

  1. Open vocabulary 상황에서 좋은 성능을 달성
  2. 실제 대화에서는 여러 domain을 다루기 때문에 multi domain의 대화를 다루는 것

어려움

  1. DST model은 한번의 Dialogue turn마다 (Domain, Slot, Value)를 결정하는데 가능한 조합의 수가 많음
  2. Multi turn mapping을 수행해야 함
    • multi turn mapping : 여러 번 대화가 이루어지는 multi turn 대화 상황에서 매 turn 마다 (slot, value)를 추출하면서 multi domain 상황일 경우 domain별로 추가로 여러 번 추론을 진행해야함

TRADE model

참고

DP

DP는 DST로 부터 추출된 Dialogue State를 기반으로 시스템의 행동을 결정합니다.

여기서 입력으로 Dialogue + KB results를 받습니다.

NLG

DP의 출력을 받아서 적절한 대답을 생성하는 파트입니다.

참고

© 2022 HookSSi   •  Powered by Soopr   •  Theme  Moonwalk