본문 바로가기

Papers/General

[Review] Keep Me Updated! Memory Management in Long-term Conversations

1. Abstract

장기 대화에서는 과거의 중요한 정보를 기억하고 현재에 대해 계속 이야기하는 것이 중요하다. 그러나 이전에는 기억된 정보가 구식인 경우를 다루지 않아 나중의 대화에서 혼란을 일으킬 수 있습니다. 이 문제를 해결하기 위해 장기 대화에서 새로운 작업과 해당 메모리 관리 데이터 세트를 제시하며, 이 작업은 봇이 여러 세션을 통해 대화하면서 사용자에 대한 최신 정보를 추적하고 제공합니다. 보다 정확하고 해석 가능한 메모리를 지원하기 위해 메모리를 주요 정보의 비구조화된 텍스트 설명으로 표현하고 무효화되거나 중복된 정보를 선택적으로 제거하는 새로운 메모리 관리 메커니즘을 제안합니다. 실험 결과에 따르면 우리의 접근 방식은 특히 나중 세션에서 성능 격차가 더 커 저장된 메모리를 변경하지 않고 유지하는 기준선을 능가하는 것으로 나타났습니다.

 

2. Task and Dataset

  • Task Definition: 에피소드는 특정 사용자와의 여러 개의 연속된 대화 세션으로 구성된다. 현재 세션의 대화 컨텍스트는 시간 단계 t에서 Dt = {c1, u1, c2, u2, ··, ct, u}이며, 여기서 c와 u는 각각 챗봇의 발화와 사용자의 발화를 나타낸다. 자연어 메모리 문장 M = {m1, m2, ··, mn}은 동일한 에피소드의 이전 세션에서 추상화된 사용자 정보를 포함한다. 그런 다음 대화 컨텍스트 Dt와 메모리 M이 주어지면 챗봇의 반응 ct+1을 예측하는 데 관심이 있다. 각 세션이 끝날 때 전체 세션 D는 여러 문장의 사용자 정보로 요약되며, S = {s1, s2, ··, sk}로 표시된다. 다음 세션의 메모리 문장 M'은 M과 S를 결합하여 구성된다.
  • Dataset Construction: 이 작업을 연구하기 위해 봇과 사용자 간의 개방형 도메인 대화의 단일 세션으로 구성된 케어콜 데이터 세트(Bae et al., 2022)를 기반으로 새로운 데이터 세트를 구축한다. 세션에는 사용자의 건강, 수면, 식이요법과 같이 단기간에 변경될 가능성이 있는 다양한 주제와 가족, 애완동물, 자주 방문하는 장소와 같이 상대적으로 장기간에 걸쳐 변경될 수 있는 주제가 포함되어 있기 때문에 이 데이터 세트를 선택한다. 이 단일 세션 데이터 세트를 다중 세션 설정으로 확장하며, 이는 MSC에서 제시한 것과 유사한 절차이다(Xu et al., 2022a). 결과 데이터 세트에는 다른 데이터 세트보다 더 많은 페르소나 업데이트가 포함되어 있다(Xu et al., 2022a).
  • Dialog Summary
    • 케어콜 데이터 세트에서 15번 이상 턴한 600개의 대화 세션을 무작위로 샘플링한다.
    • Annotator들에게 다음 대화를 계속하는 데 유용할 수 있는 S를 구축하기 위해 각 세션을 여러 문장으로 요약할 것을 요청한다.
    • 이러한 요약을 사용하여 대화 P(S|D)가 주어지면 LM이 요약을 생성할 수 있도록 Fine-tuning
    • 그런 다음 모델은 케어콜 데이터 세트에서 무작위로 샘플링된 보이지 않는 대화의 요약을 생성한다.
    • 마지막으로 주석자는 누락된 정보를 채우거나 잘못된 문장을 수정하여 생성된 요약을 편집한다. 첫 번째 세션, 즉 M = ∅에 대한 메모리 문장이 없기 때문에 두 번째 세션 M'에 대한 메모리는 S와 같다.
  • Memory Grounded Dialog:
    • 각 에피소드의 두 번째 세션을 구축하기 위해 주석자는 이전 단계에서 사람이 작성한 600개 요약을 기반으로 대화 세션을 작성
    • 마찬가지로, 이전 메모리 P(D|M)가 주어지면 전체 대화 세션을 생성할 수 있도록 LM을 Fine-tuning한다.
    • 그런 다음 FT된 모델은 이전 단락의 보이지 않는 대화 요약에서 메모리 기반 대화를 생성한다.
    • 마지막으로, Human annotator는 생성된 대화를 수정한다. 즉, 잘못된 응답(메모리 오용, 합리적이지 않음 또는 Bae et al. (2022)에서 설명한 CareCall 역할의 범위를 벗어남)을 수정
  • Multi-Session Dialog: 
    • 사전 단계에서 기억된 정보를 활용하여 대화형 대화를 할 수 있는 챗봇을 구축하기 위한 데이터를 얻는다.
    • Multi session 대화 시스템을 구축하기 위해 4절에서 설명한 Dialog summarizer와 Memory grounded response generator를 (M,D) 쌍이 있는 이전에 수집된 (D,S) 쌍에 대해 각각 훈련한다.
    • 그런 다음 크라우드 워커는 첫 번째 세션을 시작으로 에피소드당 5 세션 동안 결과 시스템과 대화한다. 세션 사이의 간격은 1주에서 2주 사이로 가정한다.
    • 각 세션이 끝나면 요약자는 현재 세션에서 S를 생성한다. 생성된 응답과 요약은 모두 주석자가 편집하여 오류를 수정한다.
    • 마지막으로 주석자에게 음 세션에 대해 M과 S의 어떤 문장이 새 메모리 M'에 남아 있어야 하는지 선택하도록 요청한다.
    • 부록 A의 Quality control과 부록의 그림 4의 예제 에피소드를 제공한다. 이 데이터 세트를 CareCallmem이라고 하며 데이터 세트의 통계는 섹션 3.2.1-3.2.2에 설명된 모든 수집된 데이터를 포함하는 표 1에 나와 있다.

3. Data Quality Control: 각 주석 프로세스에서 데이터 세트 품질을 최적화하기 위해 모든 주석가에 대한 자세한 지침과 교육을 제공한다. 구체적으로 각 작업에 대한 포괄적인 매뉴얼을 안내하고 그룹 채팅에서 모든 질문을 명확히 하여 잠재적인 오해를 제거한다. 또한 매주 각 주석가에게 개인화된 피드백을 제공한다. 프리랜서 플랫폼과 사내 라벨링 서비스에서 주석가를 모집했다. 데이터 수집 프로세스에 대한 주요 지침은 다음과 같이 요약된다.

  • Dialog Summary: 우리는 주석자들에게 주어진 대화 세션에서 사용자의 핵심 정보, 특히 후속 세션에서 계속할 가치가 있는 정보를 요약하도록 요청한다. 결과적으로 요약된 내용은 추상적 요약이며, 대화에서 발화 자체를 복사하지 말고 새로운 추상적 문장으로 작성하도록 지시한다. 요약된 정보의 경우 주석자들이 어렵거나 후속 대화에서 사용하기 어려운 점을 감안하여 일회성 이벤트에 대한 정보나 "아침으로 계란 세 개를 먹었다" 또는 "오전 9시 10분에 공원에 갔다"와 같이 사용자에 대한 지나치게 상세한 정보를 제외하도록 안내한다. 그러나 사용자의 정보가 변경된 경우 그러한 정보는 요약에 포함되어 기록될 것이다(예: "방금 결혼" 또는 "독감에서 회복"). 세 그룹의 주석가들은 요약을 연속적으로 편집했는데, 그 중 1.4%만이 마지막 반복에서 편집되었다.
  • Memory Grounded Dialog: 우리는 주석자들에게 대화에 다양한 일상적인 주제가 포함되어 있는지, 기억된 정보를 강박적으로 언급하는 것이 아니라 가능한 한 자연스럽게 맥락에 맞게 활용할 수 있는지 확인할 것을 요청한다. 또한 일관성을 위해 봇이 메모리에 이미 포함된 정보와 모순될 수 있는 응답이나 질문을 생성하는 경우를 수정할 것을 요청한다. 예를 들어, 봇이 사용자가 허리 수술을 위해 병원에 입원한 것을 이미 알고 있는 경우, 봇은 "건강에 문제가 있습니까?"와 같은 질문을 하지 않는다. 또한 봇은 기억에 없는 것을 마치 기억하는 것처럼 언급하는 것이 허용되지 않는다. 그 외 나머지 지침에 대해서는 봇의 일관된 역할을 위해 Bae et al.(2022)의 사양을 참조한다.
  • Memory Update: 매 세션이 끝날 때마다 주석자들에게 다음 세션에서 사용할 수 있는 M과 S의 문장을 선택하도록 요청한다. 즉, 더 이상 유효하지 않거나 중복되지 않는 문장은 제거하고 다른 문장과 충돌하지 않는 문장은 그대로 유지한다. 또한 데이터셋의 일관성을 위해 mi와 sj가 정보 측면에서 완전히 같을 때마다 둘 중 하나를 남겨도 괜찮을지 모르지만, 우리는 데이터셋의 일관성을 위해 mi를 남기도록 안내한다.

4. Models: 메모리 관리 메커니즘을 갖춘 장기 대화 시스템을 제안한다. 시스템은 3가지로 구성된다; Memory grounded response generation, Dialog summarization, Memory update. 전체 아키텍처는 그림 2와 같다.

  • Memory grounded response generation
    • Response generation: 우리는 메모리 문장을 조건으로 하는 응답 생성 모델을 고려한다. 시간 t에서 메모리 M과 대화 이력 Dt = {c1, u1, c2, u2, · · ct, u}가 주어졌을 때, 다음 목표 응답 ct+1 = {w1,w2, · · · w|ct+1|}의 조건부 확률은 일련의 조건부 확률의 곱으로 나타낼 수 있다: 여기서 wi는 시퀀스의 i번째 토큰이고 θ은 모델의 훈련 가능한 매개변수이다. 우리는 응답 생성 모델로 Hyper-CLOVA 6.9B를 사용한다. 모델은 다음을 최소화하는 Maximum Likelihood Estimation(MLE)을 사용하여 FT된다:
    • Memory Retrieval: 또한 이전 연구(Xu et al., 2022a,b)에 따라 현재 대화 컨텍스트와 관련된 정보를 검색하는 것이 메모리에 있는 많은 문장 모음을 처리할 때 효과적이라고 생각한다. Xu et al. (2022b)에서 제안한 컨텍스트 페르소나 매칭(CPM) 방법과 거의 동일한 접근 방식을 사용하여 작업에서 페르소나 문장을 메모리 문장으로 대체한다(자세한 내용은 부록 B.3 참조). 추론 시 검색된 상위 k개의 문장이 Mret을 구성하며, 이는 앞 단락에서 설명한 응답 생성기의 실제 입력 조건이다.
  • Dialog Summarization
  • Memory Update
    • PASS
    • REPLACE
    • APPEND
    • DELETE

 

Limitations: 현재 연구에서 단순성과 명확성을 위해 단일 대화자의 정보만 기억하고 업데이트하는 것을 고려했다. 그러나 향후 연구는 Xu et al. (2022a,b)가 제안한 메모리 관리를 양측에 중복하여 수행한 것처럼 양측의 기억된 정보를 포함하고 대화에 활용하는 것을 목표로 해야 한다.
우리 결과의 일반화 가능성과 관련하여, 우리는 실험이 한국어로 수집된 데이터에 대해 수행되었다는 것에 주목해야 한다. 우리의 실험 환경에서 우리는 한국어에 특화된 접근법을 사용하지 않지만, 우리의 결과가 다른 언어에 걸쳐 확장될지 여부는 아직 결정되지 않았다.
우리의 실험은 메모리가 최대 용량에 도달하는 극도로 긴 대화를 다루지 않는다. 이 경우, 인간의 메모리가 시간이 지남에 따라 사라지는 것처럼 가장 오래된 메모리를 제거하는 것(즉, First in, First out)은 그럴듯한 접근법이 될 수 있다. 그래도 계산량은 크게 증가할 수 있다. 쌍대 연산이 O(|M||S|)번 발생하고 실험에서 각 연산은 T5에 의해 예측되기 때문에(하나의 추론을 위해 1 NVIDIA V100에서 약 80ms가 소요됨), 메모리 업데이트는 |M|가 커지면 비용이 많이 들 수 있다.