자연어 추론을 활용한 페르소나 일관 대화 생성

Digest: 대화 에이전트가 자신의 페르소나(persona, 에이전트에게 부여된 성격·사실 설정)와 모순되지 않는 응답을 만들어야 한다는 일관성(consistency) 문제를, 저자들은 강화학습(reinforcement learning, RL) 문제로 재정의해 해결한다. 기존 연구가 검색된 응답을 NLI 모델로 re-rank(재정렬)하는 데 그쳤던 것과 달리, 이 논문은 response-persona 쌍에서 나온 NLI(natural language inference, 자연어 추론) 신호를 직접 생성 과정의 보상(reward)으로 쓴다(RCDG 프레임워크). generator는 attention 기반 encoder-decoder이고, evaluator는 adversarial하게 학습된 naturalness 모듈과 NLI 기반 consistency 모듈로 구성된다. Persona-Chat과 DNLI 데이터셋에서, 제3자 NLI 모델(DIIN) 기반 자동 평가로 entailment 18.7119.07%, contradiction 5.935.56%를 기록해 강한 생성 베이스라인들을 페르소나 일관성에서 큰 폭으로 능가했고, 사람·자동 품질 지표에서도 우수함을 보였다. 한계는 작은 표본의 human 일관성 평가가 통계적 유의성에 도달하지 못했다는 점과 RNN 기반 generator의 한계다.


먼저 이해하기

챗봇에게 “나는 12살 소녀야”라는 페르소나를 미리 정해줬다고 하자. 그런데 사용자가 나이를 물었을 때 챗봇이 “나는 30살이야”라고 답하면, 문장 자체는 자연스럽지만 자기 설정과 모순된다. 이렇게 “자연스럽지만 페르소나와 모순되는” 응답을 막는 것이 이 논문의 목표다.

핵심 아이디어는 두 가지를 분리해서 본다는 것이다. (1) 응답이 사람이 쓴 것처럼 자연스러운가(naturalness), (2) 응답이 페르소나와 논리적으로 모순되지 않는가(consistency). 두 번째를 판정하기 위해 NLI(자연어 추론) 기술을 쓴다. NLI는 두 문장 사이의 관계를 entailment(함의, 한 문장이 다른 문장을 뒷받침함)/neutral(중립)/contradiction(모순) 중 하나로 분류하는 기술이다. 응답과 페르소나가 contradiction이면 나쁜 응답, entailment나 neutral이면 괜찮은 응답으로 본다.

왜 중요한가: 일관성은 대화 에이전트의 핵심 난제다. 기존 페르소나 기반 생성 모델은 손실 함수(loss function)가 일관성을 직접 다루지 못했다. NLI 판정 결과는 미분 불가능(non-differentiable)해서 보통의 경사하강(gradient descent)으로 학습 신호로 쓸 수 없다. 이 논문은 강화학습을 써서 이 “미분 가능해야 한다”는 제약을 우회하고, NLI를 re-ranking이 아닌 생성 학습 자체에 끌어들인 첫 시도라는 점에서 의의가 있다.

먼저 알아둘 용어 표

원어쉬운 한국어 설명
persona대화 에이전트에게 부여된 성격·사실 설정 문장들의 집합
NLI (Natural Language Inference)두 문장의 관계를 함의/중립/모순으로 분류하는 자연어 추론
entailment / neutral / contradiction함의 / 중립 / 모순 (NLI의 세 출력 라벨)
reward강화학습에서 행동의 좋고 나쁨을 알려주는 보상 신호
policy gradient정책(policy)의 기대 보상을 직접 최대화하는 RL 기법
MLE (maximum-likelihood estimation)정답 데이터의 가능도를 최대화하는 일반적 지도학습 목적함수
rollout미완성 응답에서 끝까지 단어를 샘플링해 중간 상태의 보상을 추정하는 절차
generator / evaluator응답을 만드는 생성기 / 응답을 평가해 보상을 주는 평가기

섹션별 요약

Abstract

일관성은 대화 에이전트의 주요 난제 중 하나다. 사람 같은 에이전트는 자연스럽게 응답할 뿐 아니라 일관된 페르소나를 유지해야 한다. 저자들은 NLI 기술의 장점을 활용해 페르소나 일관 대화 생성 문제를 다룬다. 검색된 응답을 NLI 모델로 re-rank하는 기존 연구와 달리, 이 작업을 강화학습 문제로 보고 response-persona 쌍의 NLI 신호를 대화 생성 과정의 보상으로 쓴다. generator는 attention 기반 encoder-decoder로 페르소나 기반 응답을 만들고, evaluator는 adversarial하게 학습된 naturalness 모듈과 NLI 기반 consistency 모듈로 구성된다. 또한 평가 단계에서 또 다른 잘 작동하는 NLI 모델을 사용한다. 모델 기반 일관성 평가를 포함한 human·automatic 지표 실험에서, 제안 기법이 강한 생성 베이스라인들을 특히 페르소나 일관성에서 능가함을 보였다. 코드는 https://github.com/songhaoyu/RCDG 에 공개되어 있다.

저자 contribution

  • 페르소나 일관 대화 생성을 위한 RL 프레임워크를 제안하여, 페르소나 기반 모델의 “학습 목적함수가 미분 가능해야 한다”는 제약을 해결한다.
  • 저자들이 아는 한, NLI 기술을 활용해 페르소나 일관 대화 생성을 강화한 최초의 연구다.
  • 정량·정성 평가를 모두 수행했으며, 특히 페르소나 일관성에서 강한 베이스라인을 능가함을 실험으로 보였다.

왜 이 연구를 하는가?

동기는 데이터 기반 대화 생성 모델들이 일관된 페르소나가 없다는 점이다. 페르소나를 명시적으로 정의하고 그 페르소나를 반영하는 응답을 학습하는 방법(Zhang et al. 2018)이 있지만, 일관성 모델링의 부재와 MLE 목적함수 때문에 여전히 불일치 문제를 겪는다.

기존 한계 두 가지가 명시된다. (1) 기존 페르소나 기반 생성 모델은 손실 함수의 제약을 받는다. 이런 심층 생성 모델에서 NLI 기반 일관성 판정 방법을 활용하는 미분 가능한 학습 목적함수를 설계하기 어렵다. (2) 검색 기반(retrieval-based) re-ranking 방식(Welleck et al. 2019)은 응답이 주어진 데이터셋에 한정되는 반면, 생성 모델은 그렇지 않다. 또한 일관성 판정 방법을 심층 생성 대화 모델에서 활용하는 것은 아직 탐구되지 않았다.

Introduction

오픈 도메인 대화 생성은 대량의 human-to-human 데이터로 최근 성공을 거뒀지만, 일관된 페르소나의 부재가 주요 문제다. NLI는 문장 쌍과 entailment 카테고리 사이의 매핑을 학습하며, 페르소나 일관성 판정은 “(utterance, persona)” 쌍에 entailment/neutral/contradiction 라벨을 부여하는 NLI 작업으로 모델링할 수 있다(Welleck et al. 2019). 미분 가능한 목적함수 설계 외에, RL은 보상 신호를 generator로 역전파하는 또 다른 해법을 제공한다. 저자들은 archived 응답을 re-rank하는 대신, NLI 기술로 페르소나 일관 대화 생성을 유도한다. 모델은 두 모듈(naturalness + consistency)을 가진 하나의 evaluator와 하나의 generator로 구성된다. naturalness 모듈은 더 높은 정확도를 위해 adversarial하게 학습되고, consistency 모듈은 응답과 페르소나의 일관성을 판정하는 NLI 스타일 분류기다. generator는 페르소나 기반 attentive Seq2Seq 모델(Zhang et al. 2018)로, 메시지와 페르소나 텍스트를 입력받아 페르소나를 반영하는 응답을 만든다.

Methods

문제 정의: 입력 메시지 와 페르소나 텍스트 집합 이 주어졌을 때 로 응답을 생성한다. 모든 에 대해 이어야 한다(entailment 또는 neutral, contradiction은 안 됨). 이상적 응답 는 를 만족해야 한다(Formula 1).

Evaluator (두 모듈):

  • Naturalness 모듈 : 응답이 human(natural)인지 model(unnatural)인지 구분하는 이진 분류기. bidirectional GRU encoder → highway 구조 → two-class softmax 완전연결층. 학습 데이터 응답을 positive, generator 의 응답을 negative로 삼아 cross-entropy를 최소화하며 adversarial하게 반복 갱신된다. 보상은 (human일 확률).
  • Consistency 모듈 : 응답과 페르소나 텍스트 사이 {entailment, neutral, contradiction}을 판정하는 NLI 분류기. adversarial 과정에서 갱신되지 않는다(자연스러운 응답이 반드시 페르소나를 entail하지는 않기 때문). 보상은 (entailment 신뢰도 최대값 − contradiction 신뢰도 최대값)로, entailment를 장려하고 contradiction을 억제한다. 두 가지 구현: (GRU + MLP 분류기), (BERTbase를 DNLI에 finetune).

강화학습: 생성을 RL로 형식화한다. 상태 는 지금까지 생성한 단어들, 행동 는 다음 단어. 최종 보상은 (Eq. 4, ). policy gradient(Eq. 8)로 generator 를 학습한다. generator는 attention 메커니즘을 가진 Seq2Seq로, 페르소나 텍스트를 입력 시퀀스 앞에 prepend()한다.

Rollout policy: evaluator는 완성된 시퀀스에서만 보상을 줄 수 있으므로, 중간 상태의 action-value를 추정하기 위해 새로운 rollout 정책을 제안한다. (1) step 에서 beam search로 단어 부분시퀀스 생성, (2) step 에서 top 확률 개 단어 유지, (3) 이후 sampling 기반으로 계속 생성. 작은 에서도 다양한 샘플을 얻어 계산 비용과 샘플 다양성의 균형을 맞춘다. ()

Adversarial Training (Algorithm 1): ① 초기화 → ② 를 대화 코퍼스 에서 MLE로 사전학습 → ③ 을 의 negative 샘플로 사전학습 → ④ 를 NLI 데이터셋 에서 사전학습 → ⑤ 반복: G-steps(policy gradient로 갱신), teacherforce-steps(MLE로 갱신), -steps( 갱신). 학습 안정화를 위해 Teacher Force 전략(MLE 손실 + evaluator 보상)을 병행한다.

차별점: 기존(Welleck et al. 2019)이 검색된 응답을 NLI로 re-rank하는 것과 달리, 이 논문은 NLI 신호를 생성 과정의 RL 보상으로 사용한다.

발견 (Findings)

  • NLI 모델 기반 페르소나 일관성 평가에서 RCDGbert가 entailment 19.07% (베이스라인 최고 대비 +30.4%), contradiction 5.56% (−38.2%)를 기록 (Table 2). RCDGbase는 entailment 18.71% (+28.0%), contradiction 5.93% (−34.1%).
  • DNLI 데이터셋 정확도에서 가 Dev 87.67 / Test 89.14로 Welleck et al.(2019)의 ESIM(88.20)·DIIN(88.84)을 능가 (Table 1). 는 81.26으로 더 낮음.
  • ablation(Table 5): vanilla Generator는 entailment 13.23% / contradiction 12.08%. naturalness만 추가(+)하면 품질(ppl 34.5→32.3)이 개선되고, consistency만 추가(+/)하면 일관성은 좋아지나 품질(ppl 40.9/41.3)이 크게 하락. 둘 다 통합(++)할 때 ppl 29.9 / entailment 19.07% / contradiction 5.56%로 최고.

Results

베이스라인 대비 페르소나 일관성(Table 2, 제3자 NLI 모델 DIIN 기반): S2SA(8.37/12.94), GPMN(12.98/11.53), Per-S2S(13.27/12.19), REGS(14.08/10.83), Transformer(14.20/9.00), DeepCopy(14.62/12.17) 대비 RCDGbase(18.71/5.93)·RCDGbert(19.07/5.56)가 entailment 최고·contradiction 최저. 참고로 Human은 entailment 48.00 / contradiction 1.16.

자동 품질(Table 3): RCDG가 세 embedding 지표(Ave./Grd./Ext.)에서 최고(예: RCDGbert Ave. 66.9, Grd. 47.2, Ext. 46.8). 단, perplexity(28.1)와 distinct-2(1505)는 Transformer가 최고 — Transformer의 언어모델이 더 낫다고 해석. RNN 기반 모델 중에서는 RCDG가 최고.

사람 평가(Table 4): RCDG가 3점 척도에서 ‘2’(relevant·informative) 비율 최고(RCDGbert 0.384, Avg 1.204). Fleiss Kappa는 0.41~0.6 구간으로 moderate agreement. 일관성 human validation(Figure 3)은 모델 예측과 사람 점수가 상대적으로 좋은 일치를 보였으나 예비 실험 수준이다.

Discussion

한계 두 가지 이상: (1) 페르소나 일관성의 정량적 human 평가에서 표본 크기가 작아 통계적으로 유의한 결과를 얻지 못했다 — 응답 대부분이 페르소나에 대해 neutral이라 사람 판정자가 대부분 neutral로 라벨링했다. 그래서 human 평가를 모델 기반 평가의 검증 용도로만 사용했다. (2) generator가 RNN(GRU) 기반이라 Transformer 대비 언어모델 품질(perplexity, distinct-2)에서 뒤진다. (3) consistency 평가는 예비 실험 수준이며 전면적 연구는 본 논문 범위 밖이다.

향후: 더 큰 규모의 데이터셋에 적용하고, MASS(Song et al. 2019b) 같은 더 진보된 generator를 사용해 성능을 높일 계획이다.

이론적 의의

NLI 기반 일관성 판정처럼 미분 불가능한 평가 신호를, 정책 경사(policy gradient) RL을 통해 생성 모델의 학습 목적으로 통합할 수 있음을 보였다. naturalness와 consistency를 독립적 속성으로 분리()하고, 전자는 adversarial하게 갱신, 후자는 고정 NLI 분류기로 두는 설계는 두 신호의 성질 차이(자연스러움은 학습 데이터에 반영되나 일관성은 그렇지 않음)에 대한 원리적 대응이다.

Discussion Points

  • 방법론: NLI 신호를 re-ranking이 아닌 RL 보상으로 쓰는 것이 생성 모델의 표현 자유도(검색 데이터셋에 갇히지 않음)와 일관성을 동시에 높일 수 있는가?
  • 평가: 응답 다수가 neutral인 페르소나 대화에서, entailment/contradiction 비율만으로 일관성을 충분히 측정할 수 있는가? human 정량 평가의 통계적 유의성 확보 방법은?
  • 확장성: GRU generator를 Transformer/MASS로 교체할 때 RL 보상 학습의 안정성과 이득은 어떻게 변하는가?

실험 결과 상세

Table 1 — DNLI 정확도

ModelDevTest
Welleck et al. InferSent85.8285.68
Welleck et al. ESIM86.3188.20
DIIN (이 논문)86.7288.84
80.4881.26
87.6789.14

Table 2 — NLI 모델 기반 페르소나 일관성 (Entail.↑, Contr.↓; 괄호는 베이스라인 최고 대비 개선)

ModelEntail.(%)Contr.(%)
Human48.001.16*
S2SA8.3712.94
GPMN12.9811.53
Per-S2S13.2712.19
REGS14.0810.83
Transformer14.209.00
DeepCopy14.6212.17
RCDGbase18.71 (28.0%)5.93 (34.1%)
RCDGbert19.07 (30.4%)5.56 (38.2%)

Table 3 — 자동 품질 (Dst.는 스케일)

ModelpplAve.Grd.Ext.Dst.
DeepCopy42.862.143.245.1863
Per-S2S36.361.545.142.5719
S2SA34.859.841.943.5473
GPMN34.365.345.743.2741
REGS33.664.344.244.81009
Transformer28.163.443.943.61505
RCDGbase30.266.746.946.41289
RCDGbert29.966.947.246.81275

Table 4 — 사람 평가 (응답 품질, 3점 척도) + Fleiss Kappa(K)

Model012AvgK
S2SA0.3780.4060.2160.8380.54
GPMN0.2500.4460.3041.0540.46
Per-S2S0.2240.4820.2941.0680.45
REGS0.2420.4400.3181.0760.42
DeepCopy0.2240.4500.3261.1020.48
Transformer0.2120.4580.3301.1180.43
RCDGbase0.1820.4400.3781.1960.50
RCDGbert0.1800.4360.3841.2040.47

Table 5 — Ablation

ModulepplAve.Dst.E.(%)C.(%)
Generator34.563.882313.2312.08
+ 32.364.8107814.0111.32
+ 40.960.363916.987.52
+ 41.359.951717.137.19
+ + 30.266.7128918.715.93
+ + 29.966.9127519.075.56

데이터셋: Persona-Chat(164,356 utterances / 10,981 dialogues / 1,155 personas; train·validate·test = 10,000/968/1,000 dialogues; OpenSubtitles 2M 쌍으로 사전학습). DNLI(train·validate·test = 310,110/16,500/16,500 쌍). 설정: GRU 2-layer hidden 500, embedding 300, vocab 18,300, Adam lr 0.0003, decay 0.98, minibatch 32, =0.4, =5, OpenNMT-py 구현.

프레임워크 다이어그램

flowchart TD
    X["Input Message X + Persona P"] --> G["Generator G_theta<br/>attention Seq2Seq"]
    G -->|"sample N responses"| RO["Rollout<br/>beam + sampling"]
    RO --> EN["Naturalness Module E_N<br/>BiGRU adversarial"]
    RO --> EC["Consistency Module E_C<br/>NLI: E base or E bert"]
    EN -->|"R1 = E_N+"| RW["Reward<br/>R = lambda R1 + 1-lambda R2"]
    EC -->|"R2 = max E - max C"| RW
    RW -->|"policy gradient"| G
    G -->|"teacher force MLE"| G
    Gen["Generated Responses"] -.->|"new negatives"| EN
    G --> Gen

재현성 및 신뢰도 평가

종합등급: B

근거:

  • (+) 코드 공개(https://github.com/songhaoyu/RCDG). 공개 데이터셋(Persona-Chat, DNLI) 사용. 하이퍼파라미터(=0.4, =5, lr 0.0003, hidden 500, vocab 18,300 등)와 OpenNMT-py 프레임워크, Algorithm 1 학습 절차 명시.
  • (+) 다수 베이스라인(S2SA, Transformer, REGS, Per-S2S, GPMN, DeepCopy)과 비교, 자동·human·모델 기반의 다각적 평가. 평가 누수 방지를 위해 학습용()과 평가용(DIIN) NLI 모델을 분리.
  • (−) human 일관성 평가가 통계적 유의성에 도달하지 못함(저자 인정). 평가는 예비 실험 수준.
  • (−) OpenSubtitles 2M 사전학습 등 일부 세부와 난수 시드·반복 수가 제한적. Distinct-2 등 일부 지표는 generator 구조(RNN)에 종속.

증거 품질도 B: 결론은 데이터로 뒷받침되나 핵심 일관성 평가의 human 검증이 정성·예비 수준에 머문다.

관련 연구 비교 매트릭스

축본 논문 (RCDG)NLI re-ranking (Welleck et al. 2019)P²Bot (Liu et al. 2020, You Impress Me)Per-S2S/GPMN (Zhang et al. 2018)
접근NLI 신호를 RL 보상으로 사용한 생성검색 응답을 NLI로 re-rank상호 페르소나 인식 + RL페르소나 prepend/memory 지도학습 생성
학습신호policy gradient (NLI+naturalness reward) + MLENLI 분류 (재정렬용)mutual persona perception reward + RLMLE
일관성 타깃response–persona NLI (entail↑/contra↓)response–persona NLI상호 페르소나 이해명시적 일관성 모델링 없음
데이터 요구Persona-Chat + DNLIPersona-Chat + DNLIPersona-ChatPersona-Chat
모델attention Seq2Seq(GRU) + BiGRU/BERT NLIretrieval + NLI 분류기Transformer 기반Seq2Seq / Memory Network
평가human + automatic + 제3자 NLI(DIIN)retrieval 정확도/일관성automatic + humanperplexity/embedding/human
코드공개O (RCDG)O (DNLI 데이터)OO (ParlAI)

주: P²Bot 메타(상호 페르소나 인식·RL)는 본 논문 외부 지식이며, 본 논문이 직접 비교한 baseline은 표 2의 6개 모델이다.


원자적 인사이트 (Zettelkasten)

  • 미분 불가능한 판정 신호(NLI 라벨)는 RL의 보상으로 바꾸면 생성 모델 학습에 직접 쓸 수 있다 — “differentiable 목적함수 제약”을 RL이 우회한다.
  • naturalness와 consistency는 독립 속성이므로 evaluator를 하나로 합치지 않고 분리한다. 자연스러움은 학습 데이터에 반영되어 adversarial 갱신이 가능하지만, 일관성은 그렇지 않아 NLI 분류기를 고정한다.
  • 페르소나 대화에서 응답의 절반가량은 페르소나에 neutral이다 — 그래서 일관성 평가의 핵심 지표는 entailment를 올리고 contradiction을 내리는 것이지, 모든 응답을 entailment로 만드는 것이 아니다.
  • 같은 NLI 모델을 학습과 평가에 쓰면 평가가 누수된다 — 학습용()과 평가용(DIIN)을 분리해야 공정하다.

핵심 용어 정리

  • NLI (Natural Language Inference): premise–hypothesis 쌍을 entailment(E)/neutral(N)/contradiction(C)으로 분류하는 함수 . 여기서는 (응답, 페르소나) 쌍의 일관성 판정에 사용.
  • reward: 강화학습에서 행동(생성된 단어/응답)의 좋고 나쁨을 알려주는 신호. 본 논문은 (=naturalness, =consistency).
  • policy gradient: 정책 의 기대 누적 보상 를 직접 최대화하도록 로 갱신하는 RL 기법(Eq. 8).
  • persona consistency: 생성 응답이 사전 정의된 페르소나 텍스트와 모순(contradiction)되지 않고 함의/중립을 유지하는 성질.
  • entailment / contradiction: 응답이 페르소나를 논리적으로 뒷받침함 / 모순됨. 본 논문 보상 의 핵심 항.
  • rollout policy: 미완성 응답에서 끝까지 단어를 생성해 중간 상태의 action-value를 추정하는 절차. 본 논문은 beam search + top-N + sampling을 결합한 변형을 제안.
  • adversarial training: generator의 응답을 negative, human 응답을 positive로 삼아 naturalness 모듈 을 반복적으로 갱신하는 학습 방식.

관련 연구

태그

persona-consistency NLI reinforcement-learning policy-gradient dialogue-generation adversarial-training persona-chat


BibTeX

@inproceedings{song2020generating,
  title     = {Generating Persona Consistent Dialogues by Exploiting Natural Language Inference},
  author    = {Song, Haoyu and Zhang, Wei-Nan and Hu, Jingwen and Liu, Ting},
  booktitle = {Proceedings of the AAAI Conference on Artificial Intelligence},
  volume    = {34},
  number    = {05},
  pages     = {8878--8885},
  year      = {2020},
  doi       = {10.1609/aaai.v34i05.6417},
  note      = {arXiv:1911.05889}
}