MoCoRP: 페르소나와 응답 사이의 일관된 관계 모델링
Digest: 페르소나 기반 대화(persona-based dialogue, 모델에 부여한 성격 설정을 일관되게 지키며 대화하는 과제)에서, 기존 데이터셋은 페르소나 문장과 응답 사이의 관계가 명시되어 있지 않다는 한계가 있다(Context). 저자들은 ConvAI2·MPChat을 NLI(자연어 추론) 모델로 분석해 페르소나-응답 쌍의 84%·72%가 neutral(무관계)이고 entailment(함의)는 드물며 contradiction(모순)은 극히 희소함을 보였다(Issue). 이를 풀기 위해 RoBERTa 기반 NLI expert가 페르소나 문장-응답 간 NLI 관계를 명시적으로 산출하고, 그 점수를 BART 인코더-디코더에 relation 학습으로 주입한 뒤 alignment tuning으로 현대 LLM(Qwen2·Mistral·LLaMA 3)까지 확장한다(Solution). ConvAI2에서 C score 15.04→16.06, MPChat에서 33.12→33.41 등 persona consistency가 베이스라인 대비 향상되고, G-Eval 정성 평가의 Engagingness·Naturalness도 개선되었다(Evidence). 다만 PPL은 BART보다 일관되게 높고 관계학습 데이터량 민감도가 데이터셋별로 갈린다는 한계가 남는다(Limitation). 코드 공개(github.com/DMCB-GIST/MoCoRP)로 재현 가능성이 높다는 점이 의의다(Quantified-significance).
먼저 이해하기
챗봇에 “나는 무료급식소에서 자원봉사를 해, 치즈버거를 좋아해” 같은 페르소나(persona, 부여된 성격·배경 설정) 문장을 몇 개 주고, 대화 내내 이 설정과 모순되지 않게 답하도록 하는 것이 페르소나 기반 대화입니다. 문제는 사람이 만든 학습 데이터에 “이 응답이 어느 페르소나 문장과 어떻게 이어지는지”가 적혀 있지 않다는 점입니다. 모델은 그냥 응답 문장만 보고 알아서 페르소나를 챙겨야 합니다.
MoCoRP는 이 빠진 정보를 NLI expert라는 별도 판별기로 채워 줍니다. NLI(Natural Language Inference, 자연어 추론)는 두 문장이 함의(entailment)·무관(neutral)·모순(contradiction) 중 무엇인지 가르는 과제인데, 이걸로 “페르소나 문장 ↔ 응답”의 관계를 라벨로 뽑아내 LM에게 힌트로 넣어 줍니다. 학습이 끝나면 추론 시에는 그 힌트 없이도 LM이 스스로 페르소나를 일관되게 반영하도록 만드는 것이 핵심입니다.
왜 중요한가: 성격이 오락가락하는 챗봇은 신뢰가 떨어집니다. 명시적 관계 신호를 주입하면 페르소나 일관성(consistency)을 높이면서도 대화가 단조로워지지 않게(engaging) 균형을 맞출 수 있습니다. 또한 BART 같은 소형 LM에서 검증한 아이디어를 구조 변경 없이 LLM으로 옮기는 방법(alignment tuning)을 제시해 확장성을 확보합니다.
먼저 알아둘 용어 표
| 용어 | 쉬운 설명 |
|---|---|
| persona-based dialogue | 부여된 성격 설정을 지키며 하는 대화 |
| NLI (자연어 추론) | 두 문장이 함의·무관·모순 중 무엇인지 판별하는 과제 |
| entailment / neutral / contradiction | 함의(따라 나옴) / 무관(상관없음) / 모순(충돌) |
| NLI expert | 페르소나-응답 관계를 분류하는 RoBERTa 기반 별도 판별기 |
| relation learning | NLI 데이터로 BART에 관계 예측 능력을 심는 사전학습 단계 |
| alignment tuning | SFT + 선호학습(DPO)으로 LLM을 정렬해 프레임워크를 확장 |
| C score | 응답이 페르소나를 함의(+1)/무관(0)/모순(-1)하는지 합산한 일관성 지표 |
섹션별 요약
Abstract
페르소나 기반 대화의 핵심 난제는 일관된 성격을 유지하면서도 맥락에 맞고 흥미로운 응답을 생성하는 것이다. 그러나 기존 데이터셋은 페르소나 문장과 응답 간 명시적 관계가 없어 모델이 페르소나 정보를 효과적으로 포착하기 어렵다. 저자들은 NLI expert로 페르소나 문장-응답 간 NLI 관계를 명시적으로 추출해 LM에 통합하는 MoCoRP 프레임워크를 제안하고, 이를 BART에 적용한 뒤 alignment tuning으로 현대 LLM까지 확장한다. ConvAI2·MPChat 공개 데이터셋 실험에서 베이스라인 대비 더 나은 persona consistency와 engaging·맥락 인지적 응답 생성을 정량·정성 모두에서 입증했다.
저자 contribution
- 페르소나 문장-응답 간 NLI 관계를 분석해 neutral 관계가 다수(ConvAI2 84%, MPChat 72%)임을 규명.
- NLI expert의 관계 예측 능력을 LM에 주입하는 MoCoRP를 제안하고, alignment tuning으로 LLM 적용 가능성을 확인.
- ConvAI2·MPChat 비교 실험에서 정량·정성 지표 모두 베이스라인을 능가함을 입증.
왜 이 연구를 하는가?
동기는 일관된 성격을 가진 인간형 대화 시스템을 만드는 데 있다. 기존 한계는 다음과 같다. (1) ConvAI2 같은 데이터셋은 각 페르소나 문장이 응답과 어떻게 연결되는지에 대한 명시적 안내가 없다. (2) NLI 모델로 분석하면 페르소나-응답 쌍의 다수가 neutral 관계(ConvAI2 84.08%, MPChat 71.85%)이고 entailment는 드물며(14.08%, 26.66%) contradiction은 극히 희소(1.84%, 1.49%)하다(Table B2). 이 불균형은 모델이 주로 neutral만 학습하게 만들어 관계 정보를 효과적으로 쓰지 못하게 한다.
Introduction
페르소나는 보통 텍스트 설명으로 표현되며, 모델은 대화 이력과 페르소나 문장 모두에 근거해 일관되고 흥미로운 응답을 내야 한다. 저자들은 “대화 에이전트가 페르소나 문장과 목표 응답 사이의 명시적 관계를 인식할 수 있어야 한다”고 가설을 세운다. MoCoRP는 NLI expert의 관계 예측 능력을 활용해 명시적 NLI 관계를 산출하고, 모델이 응답 생성 시 이를 참조하도록 한다. 먼저 BART에 적용한 뒤 alignment tuning을 통해 LLM 적용 가능성을 확인한다.
Methods
핵심은 페르소나 문장-응답 간 관계를 명시적으로 모델링하는 것이다.
- NLI expert (Fig.2A): RoBERTa 기반 문장 분류기. Dialogue NLI 데이터셋으로 학습(테스트 정확도 92.43%). 두 문장을 입력받아 entailment/neutral/contradiction을 분류하고, 학습 신호인 “NLI score” 를 산출.
- MoCoRP (BART 기반, 2단계 반복): 매 epoch마다 ① NLI 데이터셋으로 relation learning 사전학습 → ② 페르소나 대화 데이터셋으로 dialogue learning 미세조정.
- Relation learning: NLI score 불균형 완화를 위해 균형 잡힌 NLI 부분집합을 샘플링. BART 인코더가 premise를 받고 mask token
[m]의 은닉표현을 RP Head에 통과시켜 relation score 를 얻음. 이를 NLI expert의 과 KL divergence로 정렬. - Dialogue learning: 입력 형식
[m],p1,[m],p2,...,[q],h1,[b],h2,.... 각 페르소나 문장 앞[m]에서 얻은 개 relation score를 Dense+mean pooling해 relation vector 를 만들고 디코더 시작 토큰 임베딩 에 더함(식 4-6). - 입출력: 입력 = 페르소나 문장 + 대화 이력 / 출력 = 페르소나 일관 응답. 추론 시에는 명시적 관계 없이도 동작.
- 학습 목표: language modeling loss + response selection loss(BCE) + relation prediction loss(KL divergence). 가중치 , 실험은 .
- Relation learning: NLI score 불균형 완화를 위해 균형 잡힌 NLI 부분집합을 샘플링. BART 인코더가 premise를 받고 mask token
- MoCoRP LLM (Fig.3): LLM 구조를 바꾸지 않고 alignment tuning으로 확장. prior model이 NLI 관계 없이 응답을 먼저 생성 → NLI expert가 prior 응답과 페르소나 간 NLI 라벨 를 계산 → posterior model이 를 추가 입력으로 받아 응답 생성. 둘 다 동일 LLM 백본, Chain-of-Thought 스타일 프롬프트, LoRA(rank 8, alpha 16) 적용. SFT 후 DPO(Direct Preference Optimization)로 선호학습.
- 차별점: NLI를 RL reward나 unlikelihood로 쓰는 대신, NLI 점수를 명시적 relation vector로 디코더에 직접 주입하고 KL 정렬로 LM이 그 능력을 내재화하게 한 점.
발견 (Findings)
- 페르소나-응답 관계는 neutral이 지배적: ConvAI2 84.08%, MPChat 71.85% (Table B2).
- ConvAI2 C score: BART 15.04 → MoCoRP(RL LM [E]) 16.06 (Table 1).
- MPChat C score: BART 33.12 → MoCoRP(RL LM [none]) 33.41 (Table 2).
- MoCoRP LLM은 모든 경우 SFT+DPO가 SFT 단독보다 우수하며, posterior가 prior를 대체로 능가(Table 3).
- NLI expert 테스트 정확도 92.43% (Appendix C).
Results
ConvAI2(Table 1)에서 MoCoRP는 Hits@1·PPL·C score에서 베이스라인(이전 SOTA LMEDR 포함)을 능가. 특히 C score에서 두드러진 향상으로 추론 시 명시적 관계 없이도 페르소나 정보를 효과적으로 반영함을 시사. MPChat(Table 2)에서도 R@1·MRR·C score 향상. LM loss 설정(RL LM [E]/[N,E]/[none])별로 데이터셋 특성에 따라 최적이 달라짐 — 데이터 풍부한 ConvAI2는 [none], 데이터 적은 MPChat은 LM loss 적용이 F1에 도움. 다만 MoCoRP는 BART 대비 PPL이 일관되게 높음. 정성 평가(G-Eval, gpt-4o-2024-08-06, 100 응답×20회)에서 두 데이터셋 모두 Coherence·Engagingness·Groundedness·Naturalness 전 항목 개선, Groundedness·Naturalness는 ground-truth 초과(Table 4-5).
Discussion
한계: (1) MoCoRP는 BART 대비 PPL이 일관되게 더 높다 — 명시적 관계 주입이 언어모델링 품질과 트레이드오프를 보임. (2) relation learning 데이터량 민감도가 데이터셋별로 크게 다름 — ConvAI2는 둔감(0~60%에서 뚜렷한 추세 없음), MPChat은 민감해 5%에서 최고·이후 하락. (3) 평가가 영어 ConvAI2·MPChat에 한정. 향후: MPChat은 멀티모달(이미지)이지만 본 연구는 텍스트만 사용 — 멀티모달 확장과 데이터셋별 관계학습량 자동 선택이 향후 과제로 시사됨.
이론적 의의
페르소나 일관성을 reward·memory가 아닌 NLI 관계 분포의 명시적 정렬(KL divergence) 문제로 재정식화했다는 점에서 의의가 있다. 명시적 관계 신호를 학습 시 주입하고 추론 시에는 내재화된 능력만으로 동작하게 하는 distillation 유사 구조는, 데이터에 결여된 구조적 라벨을 외부 expert로 보강하는 일반적 레시피를 보여 준다.
Discussion Points
- 방법론: NLI score를 relation vector로 주입하는 방식이 RL-reward·external-memory 대비 갖는 효율/효과 우위는 어디서 오는가? PPL 상승은 수용 가능한 비용인가?
- 평가: C score의 referee 모델이 NLI expert 자신이라 self-referential bias 우려는 없는가? G-Eval(gpt-4o) 의존도는?
- 일반화: 멀티모달·다국어·multi-party 대화로 확장 시 NLI expert 재학습이 병목이 될 수 있는가?
실험 결과 상세
Table 1 — ConvAI2 자동 평가 (출처: Table 1, p.9)
| Model | Hits@1 ↑ | PPL ↓ | F1 ↑ | C ↑ |
|---|---|---|---|---|
| KV Profile Memory | 55.1 | - | 11.72 | - |
| Seq2Seq + Attention | 12.5 | 35.07 | 16.82 | - |
| Lost In Conversation | 17.3 | - | 17.79 | - |
| TransferTransfo | 82.1 | 17.51 | 19.09 | 12.59 |
| P2BOT | 81.9 | 15.12 | 19.77 | - |
| LMEDR | 89.5 | 10.99 | 21.99 | 13.54 |
| BART (our impl.) | 90.45 | 10.34 | 22.39 | 15.04 |
| MoCoRP (RL LM [E]) | 90.51 | 10.33 | 22.33 | 16.06 |
| MoCoRP (RL LM [N,E]) | 90.63 | 10.36 | 22.18 | 15.98 |
| MoCoRP (RL LM [none]) | 90.68 | 10.32 | 22.49 | 15.96 |
Table 2 — MPChat 자동 평가 (출처: Table 2, p.9)
| Model | R@1 ↑ | MRR ↑ | PPL ↓ | F1 ↑ | C ↑ |
|---|---|---|---|---|---|
| TF-IDF | 10.69 | 18.06 | - | - | - |
| SBERT | 51.32 | 64.76 | - | - | - |
| BART (our impl.) | 68.93 | 78.75 | 28.72 | 14.49 | 33.12 |
| MoCoRP (RL LM [E]) | 70.23 | 79.22 | 29.09 | 14.38 | 33.3 |
| MoCoRP (RL LM [N,E]) | 69.49 | 78.87 | 29.13 | 14.72 | 33.26 |
| MoCoRP (RL LM [none]) | 70.19 | 79.13 | 29.16 | 14.16 | 33.41 |
Table 3 — MoCoRP LLM (ConvAI2, 발췌; 출처: Table 3, p.10)
| Model | F1 ↑ | BLEU-1 ↑ | BLEU-2 ↑ | ROUGE-1 ↑ | ROUGE-L ↑ | C ↑ |
|---|---|---|---|---|---|---|
| Qwen2 (SFT+DPO, prior) | 21.01 | 18.16 | 7.21 | 22.73 | 20.86 | 21.20 |
| MoCoRP LLM Qwen2 (SFT+DPO, posterior) | 21.09 | 18.15 | 7.30 | 22.68 | 20.76 | 20.70 |
| Mistral v0.1 (SFT+DPO, prior) | 22.84 | 19.24 | 8.42 | 23.65 | 21.74 | 18.57 |
| MoCoRP LLM Mistral v0.1 (SFT+DPO, posterior) | 22.89 | 19.27 | 8.44 | 23.65 | 21.77 | 18.62 |
| LLaMA 3 it (SFT+DPO, prior) | 21.18 | 17.90 | 7.30 | 22.22 | 20.38 | 17.35 |
| MoCoRP LLM LLaMA 3 it (SFT+DPO, posterior) | 21.25 | 18.05 | 7.27 | 22.55 | 20.56 | 17.78 |
Table 4/5 — 정성 평가 G-Eval (출처: Table 4-5, p.10)
| Dataset / Model | Coh. ↑ | Eng. ↑ | Gro. ↑ | Nat. ↑ | Overall ↑ |
|---|---|---|---|---|---|
| ConvAI2 BART | 2.13 | 1.74 | 0.47 | 2.35 | 1.67 |
| ConvAI2 MoCoRP | 2.16 | 1.85 | 0.49 | 2.39 | 1.72 |
| ConvAI2 Ground-truth | 2.27 | 1.93 | 0.46 | 2.33 | 1.75 |
| MPChat BART | 1.93 | 1.64 | 0.65 | 2.16 | 1.60 |
| MPChat MoCoRP | 2.08 | 1.68 | 0.68 | 2.25 | 1.67 |
| MPChat Ground-truth | 2.13 | 1.73 | 0.62 | 2.21 | 1.67 |
Ablation (Table 6, 발췌): ConvAI2는 RL 10%에서 최적(Hits@1 90.68, PPL 10.32), 데이터량에 둔감. MPChat은 RL 5%에서 최적(R@1 70.23, C 33.3), 0%에서 전반적 저하·과도한 관계학습 시 하락으로 데이터량에 민감.
프레임워크 다이어그램
flowchart TD A["Dialogue NLI dataset"] --> B["NLI expert (RoBERTa)<br/>entailment / neutral / contradiction"] P["Persona sentences"] --> B R["Target response"] --> B B --> Z["NLI score z"] subgraph BART["MoCoRP (BART)"] E["Encoder: persona + history<br/>mask tokens [m]"] --> RPH["RP Head -> relation score z_hat"] RPH --> KL["KL align with z"] RPH --> ZREL["relation vector z_rel"] ZREL --> DEC["Decoder start E[r] + z_rel"] DEC --> OUT["Persona-consistent response"] end Z --> KL subgraph LLMX["MoCoRP LLM (alignment tuning)"] PRI["Prior LLM (SFT+DPO)<br/>no NLI relation"] --> PRESP["Prior response"] PRESP --> B2["NLI expert -> NLI labels Z"] P --> B2 B2 --> POST["Posterior LLM<br/>input + Z (CoT)"] POST --> OUT2["Final response"] end OUT -.->|extend| LLMX
재현성 및 신뢰도 평가
종합등급: Reproducibility A / Evidence-Quality B
근거(Reproducibility A): 공식 코드 공개(https://github.com/DMCB-GIST/MoCoRP). 공개 데이터셋(ConvAI2, MPChat, Dialogue NLI)만 사용. Appendix C에 batch size·learning rate·epoch·distractor 수(ConvAI2 19, MPChat 99)·LoRA(rank 8, alpha 16)··optimizer(AdamW)·하드웨어(MoCoRP는 RTX 3090 24GB, LLM은 A100 40GB×8)·라이브러리(PyTorch, Transformers, TRL, PEFT, ParlAI)까지 상세 기재. NLI expert 정확도 92.43% 명시.
근거(Evidence-Quality B): 두 공개 데이터셋에서 다수 베이스라인·여러 LLM(Qwen2 0.5B, Mistral 7B, LLaMA 3 8B)·정량(Hits@1/PPL/F1/C/BLEU/ROUGE/MRR)·정성(G-Eval 4축, 100×20회) 다각 평가. 다만 (1) C score의 referee가 NLI expert 자신이라 self-referential 가능성, (2) 향상 폭이 일부 지표에서 소폭(예: ConvAI2 C 15.04→16.06)이고 통계적 유의성 검정 미보고, (3) 정성 평가가 gpt-4o 단일 평가자 의존 — A까지는 못 미침.
관련 연구 비교 매트릭스
| 연구 | 접근 | 학습신호 | 일관성 타깃 | 데이터 요구 | 모델(BART/LLM) | 평가 | 코드공개 |
|---|---|---|---|---|---|---|---|
| MoCoRP (Lee et al. 2025) | NLI 관계를 relation vector로 디코더 주입 + KL 정렬 | LM + RS(BCE) + RP(KL) | persona-response NLI 관계 | NLI 데이터(Dialogue NLI) + 대화 데이터 | BART + LLM(Qwen2/Mistral/LLaMA3, LoRA) | Hits@1/PPL/F1/C/G-Eval | O |
| Song et al. 2019 (Generating Persona Consistent Dialogues) | NLI 기반 reward로 RL 강화 | RL reward (NLI) | 응답-페르소나 일관성 | NLI + 대화 데이터 | RNN/seq2seq 계열 | persona consistency 지표 | 부분 |
| BoB / Song et al. 2021 (persona-sparse) | non-dialogue NLI로 unlikelihood training | unlikelihood + NLI | persona consistency (sparse) | NLI + 대화 데이터 | BERT/GPT2 계열 | consistency 지표 | O |
| P2BOT / Liu et al. 2020 (Mutual Persona Perception) | 상호 페르소나 인지·이해 강화학습 | mutual persona reward | 화자 간 페르소나 이해 | ConvAI2(supervised) | transformer | Hits@1/F1/human | O |
| LMEDR / Chen et al. 2023 | 외부 메모리로 entailment·discourse 관계 처리 | LM + memory | entailment + discourse | NLI + 대화 데이터 | BART | Hits@1/PPL/F1 | O |
원자적 인사이트 (Zettelkasten)
- 데이터에 빠진 구조적 라벨은 외부 expert로 보강할 수 있다: 페르소나-응답 관계가 명시되지 않은 데이터에 NLI expert를 referee로 붙여 관계 라벨을 합성하고, 그 분포를 LM에 KL 정렬로 distill하면 추론 시 라벨 없이도 능력이 발현된다.
- 명시적 일관성 주입은 PPL과 트레이드오프를 가진다: MoCoRP는 C score를 올리지만 BART 대비 PPL이 일관되게 높아, 관계 조건화가 순수 언어모델링 적합도와 부분적으로 상충함을 시사한다.
- 관계학습 데이터량의 최적치는 대화 데이터 규모에 반비례한다: 데이터 풍부한 ConvAI2는 RL 데이터량에 둔감(10% 권장), 데이터 적은 MPChat은 민감해 5%에서 최고·이후 하락 — 보강 신호의 적정량은 본 데이터 규모에 종속.
- 구조 변경 없는 LLM 확장 = prior→NLI label→posterior의 2단계 분리: 아키텍처를 건드리는 대신 prior가 응답을 먼저 내고 NLI expert가 라벨링한 뒤 posterior가 그것을 입력으로 받는 분리는, LoRA·DPO로 LLM에 안전하게 관계 신호를 얹는 일반 패턴을 제시.
핵심 용어 정리
- NLI expert: Dialogue NLI로 학습한 RoBERTa 기반 문장 분류기(테스트 정확도 92.43%). 페르소나 문장-응답을 entailment/neutral/contradiction으로 분류하고 NLI score 를 산출해 학습 신호·데이터 분석·C score referee로 쓰임.
- alignment tuning: SFT(supervised fine-tuning) 후 DPO(Direct Preference Optimization) 선호학습으로 LLM을 정렬하는 절차. 구조 변경 없이 MoCoRP를 LLM으로 확장하는 수단.
- persona-response relation: 페르소나 문장과 목표 응답 사이의 NLI 관계. 기존 데이터셋에 명시되지 않은 정보로, MoCoRP가 명시화해 주입하는 대상.
- ConvAI2: PersonaChat 기반 크라우드소싱 멀티턴 대화 데이터셋. 약 19K 대화·약 130K 학습 예시. 짧은 발화가 많아 데이터가 풍부.
- MPChat: Reddit에서 수집한 episodic-memory 기반 멀티모달(이미지+텍스트) 데이터셋. 15K 대화·약 19K 학습 예시. 본 연구는 텍스트만 사용.
- entailment / neutral / contradiction: 가설이 전제로부터 따라 나오는지(함의)/무관한지(중립)/모순되는지를 가르는 NLI의 3분류.
- C score (Madotto et al. 류): 응답 이 각 페르소나 를 모순(-1)/무관(0)/함의(+1)하는지 NLI로 판정해 합산()한 persona consistency 지표.
- DPO (Direct Preference Optimization): 보상 모델·인간 주석 없이 목표 응답의 보상은 올리고 distractor의 보상은 낮추는 선호학습 기법.
관련 연구
- Generating Persona Consistent Dialogues by Exploiting Natural Language Inference — NLI를 RL reward로 써서 페르소나 일관성을 높인 선행 연구; MoCoRP는 reward 대신 relation vector 주입으로 차별화.
- A large annotated corpus for learning natural language inference — SNLI, NLI 과제의 기반 코퍼스; entailment/neutral/contradiction 3분류의 원천.
- Adversarial NLI - A New Benchmark for Natural Language Understanding — 견고한 NLI 평가 벤치마크; NLI expert 품질 논의의 배경.
- From Persona to Personalization - A Survey on Role-Playing Language Agents — 페르소나·롤플레잉 에이전트 전반 서베이; 본 연구의 LLM 확장 맥락.
- You Impress Me - Dialogue Generation via Mutual Persona Perception — P2BOT, 상호 페르소나 인지 기반 응답; ConvAI2 베이스라인이자 비교 대상.
태그
persona-consistency NLI alignment-tuning persona-based-dialogue dialogue-generation DPO
BibTeX
@article{lee2025mocorp,
title = {{MoCoRP}: Modeling Consistent Relations between Persona and Response for Persona-based Dialogue},
author = {Lee, Kyungro and Choi, Dongha and Lee, Hyunju},
journal = {arXiv preprint arXiv:2512.07544},
year = {2025},
doi = {10.48550/arXiv.2512.07544},
url = {https://arxiv.org/abs/2512.07544}
}