본문 바로가기

Papers/General

[Review] Conversation Chronicles Towards Diverse Temporal and Relational Dynamics in Multi-Session Conversations

1. Abstract

자연어 처리 분야에서 개방형 도메인 챗봇은 중요한 연구 주제로 부상했다. 그러나 기존 개방형 도메인 챗봇 연구의 주요 한계는 짧은 단일 세션 대화에 대한 focus로, 진행 중인 대화에 앞서 여러 세션에서 컨텍스트 정보를 이해해야 할 잠재적 필요성을 괄시하고 있다. 다중 세션 대화 설정에서 컨텍스트를 구성하는 요소 중 세션 간의 시간 간격과 화자 간의 관계가 특히 중요하다. 이러한 중요성에도 불구하고 현재 연구 노력은 이러한 대화 구성 요소를 충분히 다루지 못했다. 본 논문에서는 시간 간격과 세분화된 화자 관계가 통합된 장기 대화 설정을 구현하기 위해 Conversation Chronicles라는 새로운 1M 다중 세션 대화 데이터 세트를 소개한다. 최근 작업에 이어 대규모 언어 모델을 활용하여 데이터를 생성한다. 광범위한 인간 평가는 대화 연대기의 대화 에피소드가 모든 세션에서 일관되고 일관된 상호 작용을 유지하면서 이러한 속성을 반영한다는 것을 확인했다. 또한 약 630M 매개 변수만을 사용하여 연대기 요약 및 대화 생성 모듈로 구성된 대화 모델을 제안한다. 대화 연대기에 대해 훈련할 때 REBOT는 높은 인간 참여 점수로 장기적인 컨텍스트 이해를 보여준다.

 

2. Related works

Long-term Conversation. 현재의 개방형 도메인 대화 모델은 맥락이 거의 없는 짧은 대화에서 학습하므로 향후 대화를 위한 정보를 기억하지 못한다는 분명한 한계가 있다. 이러한 문제를 해결하기 위해 표준 아키텍처에 모듈을 추가하거나 장기적인 상황을 위한 데이터 세트를 제안하려는 시도가 있다.

  • Wu et al. (2020) 은 대화에서 사용자 정보를 추출하고 관리하는 방법을 제안한다.
  • Xu et al. (2022b) 는 중국의 멀티 턴 데이터 세트 DuLeMon와 페르소나 메모리 기반 프레임워크 PATO-LTM을 제안한다.
  • Xu et al. (2022a) 는 세션 사이의 시간 간격을 가진 최초의 멀티 세션 데이터 세트인 MSC를 제안한다.
  • 또한 Baet al. (2022) 은 사용자 정보를 최신으로 유지하기 위한 동적 메모리 관리 방법을 제안하고 한국형 멀티 세션 대화 데이터 세트인 CareCallmem 을 소개한다.

그러나 이전의 멀티 세션 데이터 세트는 시간 간격이 제한되거나 고정되어 있으며 대화 모델을 훈련할 때 시간 간격의 영향에 덜 중점을 두었다. 또한 대화 경험을 참여시키는 데 매우 중요한 화자 간의 관계를 고려하여 대화를 구성하는 개방형 도메인 대화 데이터 세트는 여전히 없다. 우리가 아는 한, 대화 연대기는 다양한 시간 간격을 가진 화자 간의 세분화된 관계를 정의하는 최초의 개방형 도메인 대화 데이터 세트이다.

 

3. CONVERSATION CHRONICLES

3-1. Event Collection. 단일 세션 대화에서 두 명의 화자가 과거 컨텍스트를 무시하고 특정 이벤트를 중심으로 대화에 참여한다. 반면, 다중 세션 대화에서는 이전 세션의 컨텍스트를 고려하여 진행 중인 세션의 대화에 반영한다. 이는 전체 세션의 컨텍스트를 유지함으로써 장기적인 대화에서 일관성과 지속적인 대화 경험을 보장한다. 따라서 다중 세션 대화를 작성할 때 에피소드 전체에 일관되고 일관된 컨텍스트를 유지하는 것이 중요하다. 이를 보장하기 위해 관련 이벤트를 연결하여 이벤트 그래프를 구축한다. 구체적으로, 대규모 대화 데이터 세트 중 하나인 SODA(Kim et al., 2022a3)의 내러티브를 사용하여 이벤트(즉, 하나의 내러티브가 이벤트에 해당함)로 사용한다. 그런 다음 각 이벤트를 관련성을 기반으로 다른 이벤트에 연결하고 다음과 같이 그래프로 구축한다.

  • Event Paring. 문장 간의 관계를 모델링하는 가장 신뢰할 수 있는 방법 중 하나이기 때문에 자연어 추론(NLI)을 두 관련 이벤트를 연결하는 방법으로 사용한다. 이벤트 쌍은 관련 여부에 따라 수반성, 중립성 또는 모순으로 분류됩니다. 이 논문에서는 가능한 모든 이벤트 쌍 간의 관계를 계산하고 수반성 관계가 있는 이벤트 쌍만 유지합니다. 사전 학습된 BERT 기반 모델(Devlin et al., 2019)을 사용하고 SNLI(Bowman et al., 2015) 말뭉치에서 이를 Fine-tuning 한다.
  • Event Graph Building. 그래프는 노드 간의 관계를 모델링하는 데 효과적인 구조이므로, 우리는 이벤트를 노드로 개념화하고 전체 이벤트 쌍을 간선을 사용하여 연결한다. 이벤트 간의 시간적 모순을 방지하기 위해, 우리는 전제와 가설의 순서가 지정된 방향성 그래프를 사용한다. 그래프에서, 우리는 5의 길이로 가능한 모든 이벤트 시퀀스를 추출한 다음, 3개 이상의 이벤트가 공통적으로 있으면 그 중 하나만 목록에 남겨둔 채 제거한다.

3-2. Chronological Dynamics. 대화 연대기는 시간적 역학을 구현하기 위해 다중 세션 대화에서 다양한 시간적 맥락과 세분화된 화자 관계를 통합한다. 단일 세션과 달리 다중 세션 대화는 각 연속 세션 쌍 사이의 시간 간격을 가지며 이전 세션을 고려한다. 이전 연구에서는 세션 사이의 시간 간격을 사용했지만 그 간격은 일반적으로 몇 시간에서 며칠 사이이며 비교적 짧은 대화 맥락만 허용한다. 또한 화자 간의 관계를 대화형 상호 작용에 적용하려는 사전 노력이 없었기 때문에 다양성이 제한되고 단조로운 상호 작용으로 이어진다.

  • Time Interval. 단기적인 시간 간격 제한을 해결하고 더 긴 동역학을 허용하기 위해 몇 시간에서 몇 년 사이의 더 긴 시간적 맥락을 정의한다: "몇 시간 후", "몇 일 후", "몇 주 후", "몇 달 후", "몇 년 후". 우리는 무작위로 하나를 선택하여 연속 세션 쌍의 시간 간격으로 할당한다. 우리는 시간 단위의 미세한 차이가 맥락에 거의 영향을 미치지 않는다는 것을 발견하기 때문에 수치 시간량(예: "3일")이 아닌 대략적인 시간 표현(예: "몇 개" 또는 " 두어 개")을 사용한다. 비교 내용은 표 1을 참조하십시오.
  • Speaker Relationship. 우리는 대화에 상호 작용 역학을 부여하기 위해 각 에피소드에 대해 세분화된 화자 관계를 정의한다. 화자 간의 관계는 대화의 내용을 결정하기 때문에 대화의 중요한 요소 중 하나이다. 관계는 대화 맥락(즉, 사건)과 밀접하게 연결되어 있기 때문에 무작위로 할당하는 것은 적절하지 않을 것이다. 따라서 우리는 일상 생활에서 일반적으로 발견되는 10개의 관계를 사전 ChatGPT하고 ChatGPT에게 질문하여 할당한다. 구체적으로 설명하자면, 우리는 에피소드의 모든 사건에 10개의 관계 목록을 제공한 다음 ChatGPT에게 사건에 가장 적합한 관계를 선택하도록 요청한다. 관계의 빈도는 표 2( Classmates, Neighbors, Co-workers, Mentee and Mentor, Husband and Wife, Patient and Doctor, Parent and Child, Student and Teacher, Employee and Boss, Athlete and Coach )를 참조하고 사용된 프롬프트는 부록 A를 참조하십시오.

3-3. Conversation Eposide Generation. LLM은 인간이 작성한 것에 필적하는 다양하고 고품질의 데이터 샘플을 생성할 수 있는 것으로 보고되었습니다(Gilardi et al., 2023). 최근 연구에서는 대화를 수집하기 위해 LLM을 사용하는 것도 보고되었습니다(Kim et al., 2022a; Xu et al., 2023). 따라서 LLM을 활용하여 대화를 생성합니다. 특히, 일련의 정교한 프롬프트를 설계하여 ChatGPT(OpenAI, 2022)을 통해 에피소드를 수집합니다. 세션에 대한 하나의 프롬프트는 현재 대화의 조건으로 이벤트, 시간 간격 및 화자 관계로 구성되며 전체 컨텍스트(이전 세션의 events 및 시간 간격)도 포함합니다. 전체 프롬프트의 예는 부록 A를 참조하십시오. 프롬프트를 사용하여 대규모 다중 session 대화 데이터 세트인 대화 연대기를 구성합니다. 앞서 언급한 구성 요소(events, 시간 간격 및 관계)를 통합하여 시간 역학을 구현하여 다중 session 대화 설정을 보다 다양하게 만듭니다. 데이터 수집의 전체 프로세스는 그림 2를 참조하십시오. 저희는 각각 5개의 세션이 있는 총 200K 에피소드를 수집하여 1M 개의 대화가 생성됩니다. 대화 연대기 데이터 세트에 대한 자세한 통계는 표 3을 참조하십시오. 통계에서 알 수 있듯이 저희는 다른 것보다 훨씬 큰 다중 session 대화 세트를 구축합니다. 전체 대화 에피소드는 부록 H를 참조하십시오.

 

3-4. Quality

  • Automatic Filtering. LLM에 의해 생성된 데이터가 항상 균일한 품질을 보장하는 것은 아니다. 불필요한 정보를 포함하거나 주어진 형식을 벗어날 수 있다. 데이터 세트의 일관된 품질을 보장하기 위해 이러한 경우를 필터링하는 자동 프로세스를 구현한다(부록 B의 자세한 프로세스 참조). 또한 데이터 세트에는 독성 데이터가 포함될 수 있다. 따라서 유해 데이터를 제거하기 위해 Moderation(Markov et al., 2023)을 사용한다.
  • Human Evaluation. 우리는 대화 연대기의 품질을 검증하기 위해 인적 평가를 수행합니다(평가 세부 정보는 섹션 5 참조). 저희는 5K 에피소드를 샘플링하고 평가자에게 4가지 기준(일관성, 일관성, 시간 간격 및 관계)에 따라 각 에피소드를 평가하도록 요청합니다. 표 4는 대화 연대기의 품질을 보여주며, 5점 만점에 평균 점수는 4.34점으로 5점이 '완벽함'을 나타내는 점을 고려할 때 상당히 높습니다. 또한 대표적인 다중 세션 대화 데이터 세트 중 하나인 MSC(Xu et al., 2022a)와 이전 평가와 동일한 기준을 기반으로 비교를 수행하며, MSC에는 대화 연대기가 없기 때문에 관계를 제외합니다. 저희는 비교를 위해 각 데이터 세트에서 0.5K 개의 대화 에피소드를 무작위로 샘플링합니다. 그림 3에서 볼 수 있듯이, 저희 데이터 세트는 모든 메트릭에서 더 높은 점수를 얻었으며, 이는 대화 연대기의 품질이 매우 높다는 것을 의미합니다.

4. REBOT

4.1 Chronicles Summarization Module. 다중 세션 대화는 이전 세션과 현재 세션 간의 시간적 연결성을 고려하고 시간에 따른 이벤트 상태의 변화를 적절하게 반영해야 합니다. 이러한 정보를 대화 모델에 올바르게 통합하는 가장 좋은 해결책은 이전 세션의 전체 대화 기록을 컨텍스트로 넣는 것입니다. 그러나 이러한 시스템을 유지하는 것은 계산적으로 효율적이지 않습니다. 이러한 비효율성을 해결하기 위해 정보 손실을 최소화하면서 과거 대화 세션 각각을 묘사하는 요약 모듈을 제안합니다. 이 요약 모듈에 대한 훈련 데이터를 수집하기 위해 대화 연대기에서 무작위로 100K 세션(즉, 20K 에피소드)을 샘플링하고 ChatGPT를 사용하여 각 세션에 대한 요약을 생성합니다. 저희는 T5-base(Raffel et al., 2020)를 사용하고 생성된 요약에서 80K를 훈련에 사용합니다(val/test 분할의 경우 20K 유지). 모듈은 세션 대화를 입력으로 받고 시간별 요약을 출력으로 생성합니다.

4.2. Dialog Generation Module. 진행 중인 세션에서 발화를 생성하기 위해 대화 생성 모듈은 대화 기록(즉, 이전 세션 요약), 화자 간의 관계 및 마지막 세션에서 경과한 시간을 고려해야 한다. 우리는 생성 프로세스 중에 고려해야 할 모든 구성 요소를 효과적으로 수용하기 위해 sequence-to-sequence 아키텍처, 즉 BART-large(Lewis et al., 2020)를 사용한다. 형식적으로 다음 응답을 생성하기 위한 조건부 확률은 P(c|r, t, s, h)이며, 여기서 c는 다음 발화, r은 관계, t는 시간 간격, s는 요약, h는 현재 대화 컨텍스트(즉, 이전에 생성된 발화)이다. 모듈에 대한 입력 형식은 <관계> r <tN> sN-1 <사용자> u1 <봇> c1 <사용자> ... <봇> cn과 같다. 전체 모델 아키텍처는 그림 4에 나와 있다. 대화 연대기에 대해 훈련된 REBOT은 630M 매개 변수만으로 연대기적 사건과 장기 역학을 고려한 다중 세션 대화를 원활하게 생성할 수 있다.

(예) <relation> 시니어와 챗봇 <6 hours> 밤에 화장실 가느라 잠을 잘 못 주무셔서 피곤한 상태이다. <User> "하루종일 비가 많이 와서 집에만 있었네" <Bot> "혹시 집에서 낮잠을 주무시지는 않으셨어요? 밤에 자다가 자주 깬다고 하셨잖아요."

 

5. Evaluation

 

 

 

 

[Contribution]

1. Event Graph Building: SODA

Common keywords for each relation

xAttr
(18%)
kindness, anger, intelligent, responsibility, friend, trust, conversation, food, generosity, smart
xEffect
(17%)
gratitude, anger, upset, hard work, happy, money, friend, boss, party, kindness
xIntent
(23%)
independence, hard work, determination, money, relaxation, anger, kindness, store, understanding
xNeed
(7%)
job, money, confidence, comfort, advice, interest, conversation, listening, store, park
xReact
(25%)
frustration, anger, confidence, happy, pride, relief, disappointment, relaxation, anxiety, satisfaction
xWant
(11%)
conversation, store, determination, apology, learning, doctor, job, friend, improvement, marriage

 

(예시) Attributes

head PersonX thought about going to church
relation xNeed
tail to be inetersted in going to church
literal Veda was interested in going to church. Veda thought about going to church.
narrative Veda thought about going to church because she was interested in the religion. She had never been to church before, but she had heard good things about it. She decided to go to a nearby church and see what it was like.
dialog ["Hi, Father. I'm Veda. I'm new to the area and was curious about your church. Could you tell me a little bit about it?", "Of course, Veda. Our church is based on the teachings of Jesus Christ. We believe in loving our neighbor and treating others as we would want to be treated. We strive to live according to Christ's example and teachings.", "That sounds like a really great way to live. I can see why so many people are drawn to this religion. What do you think makes Christianity different from other religions?", "Well, there are a lot of different interpretations of Christianity, but for us, it's all about following Jesus Christ's example. He was a man who loved unconditionally and forgave easily. He preached compassion and understanding, even for those who disagreed with him or did not follow his teachings perfectly. We try to emulate that in our own lives.", "That does sound different. I know that forgiveness is a big part of Christinaity, but it's not always easy to do. How do you think Christians are able to forgive so easily?", "Well, I think it comes from our belief that everyone is capable of change and redemption. We believe that no one is beyond hope or help, and so we are always willing to forgive those who have wronged us. It's not always easy, but it is something we strive for."]
speakers ["Veda", "Priest", "Veda", "Priest", "Veda", "Priest"]
PersonX Veda
PersonY  
head_answer Yes

* literal: commonsentence knowledge를 sentence-form으로 정리

* narrative: literal을 기반으로 한 narrative

allenai/soda · Datasets at Hugging Face

2. 입력 형식

  • 모듈에 대한 입력 형식은 <관계> r <tN> sN-1 <사용자> u1 <봇> c1 <사용자> ... <봇> cn과 같다.
  • (예) <relation> 시니어와 챗봇 <6 hours> 밤에 화장실 가느라 잠을 잘 못 주무셔서 피곤한 상태이다. <User> "하루종일 비가 많이 와서 집에만 있었네" <Bot> "혹시 집에서 낮잠을 주무시지는 않으셨어요? 밤에 자다가 자주 깬다고 하셨잖아요."