본문 바로가기
논문리뷰

[논문리뷰] Learning to Memorize Entailment and Discourse Relations for Persona-Consistent Dialogues

by 객잔주인 2023. 12. 27.

Abstract

  • 대화 시스템에서는 AI의 일관성과 함께 사용자의 몰입이 유지되는 것이 중요하다.
  • 지금까지의 대화 시스템은 대화 참여자(사람)의 특성(성격, 스타일, 선호도 등)을 의도적으로 학습함으로써 대화 시스템의 성능을 향상시켰다. 그러나 이런 방법은 디테일한 라벨링과 함께 많은 데이터를 필요로 한다.
    • 또한 이런 모델들은 맥락에서 벗어나는 문장을 생성하기도 한다.
  • 이 논문은 인격 일관성(persona-consistence)이 있는 대화를 수행하기 위해 entailment와 discourse relation를 학습하는 방식을 제안한다.
    • Entailment: 함축. 하나의 진술이 다른 진술을 논리적으로 내포하는 논리적 관계. 예를 들어, '모든 새는 날개를 가진다'라고 하면 '참새는 날개를 가지고 있다'는 의미가 된다. 이 때 두 문장은 entailment 관계에 있다.
    • Discourse Relations: 텍스트의 여러 부분이 어떻게 논리적으로 연결되어있는지를 말한다. 예를 들어, '갑자기 비가 쏟아졌다'라는 문장과 '그녀는 우산을 펼쳤다'는 문제-해결 관계에 있고, '그는 우산을 챙기는 것을 깜빡했다'라는 문장과 '그는 비에 옷이 모두 젖었다'는 문장은 원인-결과 관계에 있다.
  • Entailment 문장 쌍 데이터를 이용하여 외부 메모리로서 함축 관계를 학습한다. premise-to-hypothesis generation task를 수행하고, 이를 통해 대화 시스템이 자연스러운 대화에서 발생할 수 있는 함축적인 의미를 파악하고 기억하는 능력을 만들었다. 비슷한 방식으로 discourse relation을 학습하여 내부 메모리를 향상시켰다. 
    • 외부 메모리: 대화 속에 직접 명시되어있지는 않지만 대화를 통해 유추할 수 있는 정보 저장해둔 것. 더 넓은 범위의 정보를 활용하여 이해력과 상호작용 능력을 향상시키는 데 사용된다.
    • 내부 메모리: 현재 대화와 관련된 정보들을 저장해둔 것. 현재 대화의 맥락에 집중. 현재 대화의 순서와 관계를 이해하는 데 도움을 준다.
    • Premise-to-Hypothesis Generation Task: 전제 문장으로부터 가설 문장을 생성하는 작업. 예를 들어, '땅이 젖어있다'는 전제 문장이 주어진 경우 대화 시스템은 '최근 비가 왔다'고 추론할 수 있다.
  • 두 메모리(외부 메모리와 내부 메모리)에 orthogonality restriction을 두어 대화 시스템이 특정 대화의 맥락에만 국한되지 않고 넓은 범위에서 entailment 관계를 이해하고 유지하여 다양한 대화 상황에서도 유연하게 대응할 수 있도록 도와주었다.
    • Orthogonality Restriction: 두 메모리 사이의 독립성을 유지하기 위한 제한
  • 두 메모리는 서로 협력해서 대화 시스템의 일관성과 통일성이 높은 문장들을 생성한다.
  • 실험:
    • PersonaChat과 DSTC7-AVSD 데이터셋을 통해 실험한 결과 모델이 효과적으로 작동함을 확인했다
    • 인간과 기계 평가 모두에서 다른 모델들에 비해 대화의 일관성과 통일성이 높은 것을 확인했다

Introduction

  • 지금까지의 대화 시스템들은 인격 일관성을 유지하는 것에 어려움이 있다.
    • 예를 들어, '당신은 어느 에 소속돼있나요?'라고 물었을 때와 '당신은 어느 에 소속돼있나요'라고 물었을 때 전자의 질문에 대해서는 'NLP-06조 입니다'라고 답하고 후자에 대해서는 'CV-11조 입니다'라고 대답한다는 것이다.
    • 이 문제는 대화 시스템이 최근 대화 내역에만 기반하여 응답을 생성하는 방식으로 훈련되기 때문에 발생한다.
    • 이 문제를 해결하기 위해 인격 프로파일을 제공할 수 있다. 하지만 한 인격이 주어진 상황에서 어떻게 반응할 지에 대해 학습하려면 방대한 양의 데이터가 필요하다. 모든 상황에 대한 학습 데이터를 충분히 제공하는 것은 너무 많은 시간과 노력을 요구한다. 
  • 이 논문에서는 persona 일관성을 유지하는 시스템을 만들기 위해(외부 메모리와 내부 메모리를 만들기 위해) BART (Bidirectional and Auto-Regressive Transformers)의 인코더-디코더 아키텍쳐를 사용했다. 

 

Related Work

Persona-based Dialogues

  • 지금까지의 생성형 대화 시스템들은 seq2seq 모델을 기반으로 만들어졌다.(Sutskever, Vinyals, and Le 2014)
  • 대규모 pre-trained 언어 모델의 발달로 대화 시스템 학습과 fine-turning이 persona 기반 대화를 향상시켰다. (Wolf et al. 2019; Roller Query et al. 2021; Lin et al. 2021; Zheng et al. 2020)
  • 그럼에도 생기는 대화의 일관성 문제를 해결하기 위해 Liu et al. (2020)은 인간-인간 대화를 모델링했다.
  • 이후 Song et al. (2021)은 persona 기반 대화를 1. 일관된 이해와 2. 대화 생성으로 분해하는 새로운 관점을 제시했다.

Latent Modeling

  • latent space를 만들어두는 것은 대화 생성 성능을 향상시킬 수 있다
    • Latent Space: 대화를 통해 추론할 수 있는 정보들을 담아두는 공간.
  • Li et al. (2020)은 BERT와 GPT-2를 결합한 Optimus라는 모델을 사전 학습에 사용하고, 이를 VAE (Variational AutoEncoder) 형태로 구현하여 latent space를 모델링했다.
    • VAE: 데이터의 잠재적인 특성을 학습하는 데 사용되는 기계학습 기법.
  • PLATO 모델(Bao et al, 2020)은 discrete latent variable을 도입하여 대답 생성에서 발생하는 one-to-many 관계 문제를 해결했다
    • Discrete Latent Variable: 데이터셋에 숨겨져 있는 요소들을 나타내는 변수. 한가지 입력에 대해 다양한 응답을 생성할 수 있는 능력을 부여해준다. 다양한 응답 유형, 대화 스타일, 주제 등을 나타낼 수 있다
  • DialogVED는 continuous latent variable를 강화된 인코더-디코더 pre-trained 프레임워크에 도입한다(Chen et al. 2022)
    • Continuous Latent Variable: 데이터의 숨겨진 특성이나 구조를 나타내는 변수. 연속적인 값의 범위를 가진다. 대화의 톤, 감정적 미묘함, 맥락적 유연성등을 더 잘 포착하고 표현하는 데에 도움을 줄 수 있다.
  • 이 논문은 이러한 아이디어를 확장하여 NLI(natural language inference) 관계를 잠재적이고 대화에 독립적인 특성으로 기억하는 방법을 제시한다. 이를 통해 대화 시스템이 보다 풍부하고 다양한 대화 관련 특성을 latent space에서 모델링하여 대화의 질을 높이는 데에 도움을 줄 수 있다.

Learning to Memorize for Persona-consistent Dialogue

  • 대화는 '인격 제약 $C = [c_{1}, c_{2}, ..., c_{|C|}]$이 있는 상태에서 쿼리 $Q = [q_{1}, q_{2}, ..., q_{|Q|}]$에 대한 대답 $R = [r_{1}, r_{2}, ..., r_{|R|}]$을 생성하는 것'이라고 정의할 수 있다.
    • 생성되는 문장은 벡터 $x = {R, Q, C}$로 표기할 수 있다.
    • 학습에 사용된 NLI 데이터는 $N = \{P^{(n)}, H^{(n)}\}_{n=1}^{N}$으로 표기된다.
  • 이 논문에서는 BART에 기반한 모델을 이용해 함축적인 내용과 담화 관계를 기억하는 학습 방법에 초점을 맞추고 있다.
    • 모델은 두 단계의 학습 과정을 거친다:
      1. 기억을 학습하는 단계: 모델은 entailment 관계 정보와 discourse 정보를 서로 다른 latent space에 매핑하는 방법을 학습한다
      2. persona 일관성 대화 생성 단계: 외부 메모리 모듈은 entailment 관계에 있는 텍스트 쌍을 dialogue-independent latent space에 매핑하여 외부 메모리에 저장한다. 마찬가지로, 내부 메모리 모듈은 현재 이루어지고 있는 담화 정보를 내부 메모리에 저장한다.

Learning to Memorize

Entailment Relation Memory (ERM)

  • NLI 데이터셋 ($N = \{P^{(n)}, H^{(n)}\}_{n=1}^{N}$)에서 잠재적인 entailment 관계를 학습하는 방법:
    • 전제 $P$와 가설 $H$로 이루어진 데이터셋으로부터 잠재변수 $z$를 학습하는 것이 목표이다.
    • 이 학습 과정을 $p(H, z | P) = p(z|P)p(H|z, P)$로 나타낼 수 있다.
  • 이 학습을 용이하게 하기 위해 BART 인코더 입력에 특별한 토큰들이 도입된다.
    • 잠재토큰 $[z]$, 전제 시작 토큰 $[SOP]$, 전제 끝 토큰 $[EOP]$
    • 이 토큰들은 모델이 전제의 시작과 끝을 인식하고 잠재 변수를 학습 과정에 넣는 역할을 한다
    • tokenizer와 position embedding을 거치면 전제는 다음과 같이 변환된다:
      • $E_{ERM} = [e_{[z]}, e_{[SOP]}, e_{p1}, e_{p2}, ..., e_{p|P|}, e_{[EOP]}]$
  • 외부 메모리 $M = [M_{1}, ..., M_{k}]$는 $k$개의 latent factor를 가지며 각 latent factor$M_{j}$는 $d$차원 벡터이다. 따라서 $M$은 $k \times d$ 행렬이다. 즉, latent factor들의 행렬이다.
    • Latent Factor: 직접적으로 관찰되지 않는 특성이나 구조를 나타내는 요소. 예를 들어, 영어 추천 시스템에서 latent factor는 사용자의 선호나 영화의 특성과 같은 것들이다.
  • $\pi = softmax(W_{\pi}h_{[z]} + b_{\pi})$는 인코더의 마지막 레이어에서 생성된 hidden state $h_{[z]}$를 사용하여 계산된 확률 벡터이다. 이 확률 벡터는 전제 $P$가 주어졌을 때 가능한 latent entailment 관계 $z$의 분포를 나타낸다. 간단히 말해 $\pi$는 모델이 추론하는 다양한 entailment 중 어느 것이 가장 가능성이 높은지를 나타내는 확률 분포이다.
  • $M$은 latent factor이고 $\pi$는 확률을 나타내므로 이들을 곱하면 대답을 생성할 때 어떤 entailment를 사용할 지 결정할 수 있다
    • $z = \sum _{i=1}^{k} \pi_{i}M_{i}$
  • 이후 $z$는 디코더에서 가설의 시작을 나타내는 $[SOP]$에 추가되어 가설 생성 과정에 entailment 정보를 반영하여 모델이 더 정확하고 관련성이 높은 가설을 생성할 수 있도록 한다.
  • 모델은 다음과 같은 loss function을 사용하여 메모리 M과 BART 모델의 파라미터를 최적화 한다.

Dialogue Discourse Memory (DDM)

  • 내부 메모리에 담화 정보를 기억시키는 방법:
    • 외부 메모리 학습과 같은 모델을 사용하여 학습한다.
    • $E_{DDM} = [e_{[z]}, e_{[PER]}, C, e_{[QRY]}, Q^{(1)}, e_{[RSP]}, R^{(1)}, ..., e_{[QRY]}, Q^{(m)}]$를 입력한다
      • $e_{[PER]}$은 persona 토큰, C는 persona를 나타내는 데이터의 집합이다. 둘의 차이점은 $[PER]$은 인격 정보의 시작을 나타내는 토큰이고, C는 그 인격의 구체적인 내용을 담고있다.
      • 마찬가지로 $e_{[QRY]}, Q^{(1)}$와 $e_{[RSP]}, R^{(1)}$도 같은 관계를 가진다.
    • 외부 메모리에서와 같은 맥락으로 내부 메모리에서는 담화 표현 $z^{d} = \sum _{j=1}^{l} \rho_{j}N_{j}$을 계산한다.
  • 내부 메모리의 정보와 외부 메모리의 정보는 서로 독립적이어야 하므로 orthogonality restriction을 가한다.
    • orthogonality를 만들기 위해 두 벡터 공간 M과 N 사이의 관계를 코사인 유사도를 사용하여 나타낸다. 이 값이 0에 가까울수록 두 메모리는 독립적이라고 볼 수 있다.
    • $$cos(M, N) = \frac{MN^{T}}{||M||_{2}||N||_{2}}$$
    • 결과적으로 이 파트의 훈련 목표는 코사인 유사도를 최소화 하는 것이다.

 

실험 결과