home..

대화 시스템 개요

개요

Conversational AI는 Conversation에 특화된 nlp task로 일반적인 모델을 fine tuning하여 사용하기는 성능의 한계가 존재하는 영역입니다.

어려운 주제 중 하나로 대화의 맥락을 정확히 추론함과 동시에 올바른 해답을 주어야합니다.

대화 시스템의 종류

  1. 문제 해결용 대화 시스템(Task-oriented Dialogue System)

문제를 해결하기 위해 설계된 시스템으로 구글 어시스턴스, 시리, 알렉사, 빅스비 등이 이 종류에 속합니다.

최대한 적은 대화로 이용자가 원하는 것을 이해하고 해결해주는 데 초점이 맞추어져 있습니다.

보통 다음과 같이 NLU, DST, DP, NLG의 과정을 거칩니다.

TDS

  1. 자유 주제 대화 시스템(Open domain Dialogue System)

수다를 위해 만들어진 시스템입니다.

유저가 어떠한 주제로 말을 걸어도 시스템은 이에 알맞은 답변을 하여 대화를 이어나가기 위해 만들어집니다.

지속적으로 유저의 흥미를 유발하여 최대한 긴 대화를 하는 것이 목적입니다.

입력 데이터의 특징

시계열 데이터라고 불리는 시퀀스입니다.

출력이 시계열 데이터 원소 앞뒤의 영향을 받는 입력이라는 것이 특징입니다.

시계열 데이터의 예시로는 텍스트, 음성 데이터 등이 있습니다.

대화 시스템은 텍스트를 입력 받아 텍스트를 출력하기를 바라는 작업으로

이 텍스트의 길이는 인사 만큼 짧을수도 소설만큼 길수도 있습니다.

사용 모델

시퀀스를 입력 받아서 시퀀스를 출력하는 일이기 때문에 인코더-디코더 구조인 seq2seq를 메인으로 사용합니다.

RNN

시계열 데이터를 처리하기 위한 신경망 구조로는 대표적으로 RNN이 있습니다.

RNN은 시계열 데이터의 원소 타임 스텝이라는 말로 표현하기도 합니다.

타임 스텝의 앞뒤에 영향을 주도록 보통 hidden state라는 새로운 출력을 입력으로 넣어줍니다.

RNN

텍스트가 길어질수록 수평으로 길어지는 형태이므로 여기서 심층신경망에서 생기는 문제처럼

그레디언트 소실 또는 폭주의 가능성과 너무 긴 시퀀스는 이전의 오래전 타임 스텝의 영향을 반영하지 못하는 문제가 생깁니다.

LSTM

RNN이 긴 시퀀스에서 이전의 오래된 타임 스텝의 영향이 줄어들어 오래전 타임 스텝을 충분히 활용하지 못하는 문제가 있다고 했습니다.

이 문제를 장기의존성(Long-term dependency) 문제라고 합니다.

이 문제를 개선하기 위해서 LSTM(Long Short-Term Memory)을 도입합니다.

hidden state라는 상태와 기억할지 말지를 결정하는 cell state를 도입하여 오래전 타임 스텝의 영향을 반영하도록 만들었습니다.

하지만 RNN의 고유의 문제인 긴 시퀀스에서 벌어지는 그레디언트 소실 및 폭주가 있습니다.

GRU

GRU(Gated Recurrent Unit)는 LSTM을 간소화한 버전으로 장기의존성 문제를 해결하면서도

LSTM과 비슷한 성능에 빠른 학습을 하도록 만들었습니다.

하지만 여전히 문제점도 똑같습니다.

conv1D

합성곱층을 두어 긴시퀀스를 어느 정도 처리하게 만드는 방법입니다.

쉽게보면 긴 시퀀스를 줄여서 처리하게 만드는 방식입니다.

긴 시퀀스에 대한 완전한 해결 방식은 아니나 250자까지 정도는 처리할 수 있는 모델입니다.

Seq2Seq

고정된 길이의 sequence를 입력받아, 알맞은 길이의 sequence를 출력해주는 모형입니다.

DNN은 지금까지 고정된 차원의 feature와 고정된 차원의 출력에 특화된 방법입니다.

그래서 입력과 출력의 길이가 그때 그때 다른 데이터를 학습하고 이를 응용하는 문제에는 적합하지 않습니다.

이런 한계점을 극복한 end-to-end 학습이 가능한 모형입니다.

모델은 인코더 부분과 디코더 부분으로 나누어져 있습니다.

인코더가 출력으로 context vector를 내놓으면 디코더가 입력으로 받아 마지막 결과를 출력하는 식입니다.

이 모델 또한 긴 시퀀스에는 약해진다는 한계점이 있습니다.

Bahdanau attention

transformer

문제점

  1. 일관되지 않느 발화 생성
  2. 과거 대화를 훈련에 반영 못함
  3. 발화에 생략된 정보를 다루는 문제
© 2022 HookSSi   •  Powered by Soopr   •  Theme  Moonwalk