[자연어처리] Dialogue Systems

KIMHYUNSU·2025년 4월 21일
0

NLP

목록 보기
1/22
post-thumbnail

박서연 교수님의 자연어처리 수업을 듣고 자료를 참고하여 정리한 내용입니다.


Dailogue Systems


Dialogue

  • 다이얼로그 시스템의 기본 개념과 구조 이해
  • 간단한 챗봇을 테스트해볼 수 있는 방법론 학습

궁극적으로는 **사람과 자연스럽게 대화하는 챗봇**을 만들기 위해 어떤 점들을 고려해야 하는지 알아보는 것이 중요

일단 dialogue 가 뭔지 이해가 필요함


용어(Terminology) 정리

  • Turn
    • 대화에 기여하는 정도 (발화자의 한 줄)
    • 발화의 단위
  • Utterance
    • Turn 보다 더 작은 단위 (한 줄에서 Hi 와 같은 작은 단위)
    • 한 Turn 내에서도 여러 개의 Utterance로 나뉠 수 있지만, 경계가 모호할 때도 있음
  • Turn structure
    • 발화자가 바뀌며 turn taking(차례 주고받기) 이 일어남
    • 이러한 구조를 turn structure
      • turn taking 에 쌓여서 만들어지는 전체적인 구조
    • 이 과정을 직접 encoding 해야함

대화 분석의 핵심: 시작과 끝

챗봇 시스템을 만들 때는 대화의 시작(Start Point)종료(End Point) 시점을 명확히 감지하고 정의하는 메커니즘(end point detection)이 필수적입니다. 언제 대화를 시작하고, 언제 사용자의 말이 끝났다고 판단하며, 언제 대화를 마무리할지를 시스템이 알아야 합니다.

  • end point detection
    • 대화의 종료 시점
    • we have to build a mechanism when to start and when to end

Speech Acts

사람의 말은 단순히 정보 전달만 하지 않음 말하는 이의 '의도'가 담겨있음 이를 Speech Act라고 하며, 크게 4가지로 분류할 수 있음

  • speech acts
    • 4가지 종류의 액션
    • 발화자의 발화가 어떤 액션에 속하는지아는 것이 중요함.
    • Constatives
      • 서술적 행위
      • 사실이나 상태를 단순히 기술하는 문장
      • 아무것도 들어가 있지 않은 상태
    • Directives
      • 지시적 행위
      • 상대방에게 무언가를 하도록 요청하거나 요구하는 행위 (요청, 요구, 넌지시, 직접적으로..)
    • Commissives
      • 약속적 행위
      • 미래의 행동을 약속하는 행위 (언제까지 뭘 할게.. 등등)
    • Acknowledgements
      • 인정행위
      • 상대방의 말을 듣고 이해했음을 표현하거나 감정을 나타내는 행위. ("아, 그렇구나.", "정말 축하해!")

이런 4가지 speech acts 를 인지할 수 있게 하는 게 중요


대화 흐름 제어

자연스러운 대화를 위해서는 단순히 말을 주고받는 것 이상의 요소들이 필요함


Grounding 공유 형성 기반

대화 참여자들이 서로 같은 주제에 대해 이야기하고 있음을 인지하고, 이해를 공유해나가는 과정

  • 사람은 공유 형성 기반을 아주 잘 하는데 챗봇은 Theme 에서 벗어난 딴소리를 할 수 있음

  • okay,, alright,, sure,, got it ...

  • repeating what the other speakers said..

  • implicit signals...

    • and...


Adjacency Pairs 인접쌍

질문과 답변, 요청과 수락/거절처럼 의미적으로 짝을 이루는 발화의 쌍

  • 인접쌍을 찾는 것이 중요함
  • Q에 대한 A을 specific 하게 찾으려면 쌍을 찾아야 함.
  • Q 와 A 의 쌍

  • 중간에 interruption 이 많음
    • 갑자기 다른 얘기를 하는 경우
  • 인접쌍이 중간에 interruption 으로 거리가 멀어지면 방해가 많으면 쌍을 찾기 어려울 수 있음

Initiatives 주도권

대화의 주도권이 왔다갔다 함 -> 주도권에 따라서 주제도 바뀜

  • System Initiative:
    • 시스템(챗봇)이 대화의 주도권을 갖는 방식
    • 주로 정해진 질문만 하고 사용자의 답변을 받는 형태인데, 사용자가 원하는 정보를 얻기 어렵고 같은 말만 반복하게 됨
    • (예: "1번: 예약, 2번: 문의. 번호를 말씀해주세요.")
  • User Initiative:
    • 사용자가 대화의 주도권을 갖는 방식입니다.
  • Mixed Initiative:
    • 시스템과 사용자 모두 주도권을 가지는 방식
    • 자연스럽게 주고받는 방식입니다.
    • 가장 이상적이지만 구현하기 어렵습니다.

자연스러운 챗봇을 만들려면, 이 주도권(Initiative)을 어떻게 시스템에 효과적으로 인코딩할지 고민해야 함..


Inference and Implicature 추론과 규칙

머신에게 상식적인 추론을 하도록 하는 과정이 필요

ex)

상식 추론 기능을 넣지 않으면 치즈버거에 사람이 찔릴 수 있다는 것을 사실 그대로 받아들일 수 있음.

문장들을 이해하는 방식

NLP application 이 NN 을 기반으로 하면 LLM으로 가는 것.

챗봇은 단순히 문장 표면의 의미뿐 아니라, 숨겨진 의미나 상식적인 내용까지 추론할 수 있어야 합니다.

예를 들어, "배고파서 치즈버거를 먹었다"는 문장에서, '치즈버거는 음식이다', '사람은 배고프면 음식을 먹는다' 등의 상식적인 추론이 가능해야 함.

만약 "치즈버거에 찔렸다"는 입력이 들어왔을 때, 상식 추론 기능이 없다면 '사람이 치즈버거라는 물체에 물리적으로 찔렸다'고 잘못 해석할 수도 있음..

이를 위해 Common Sense Reasoning 연구가 필요

0개의 댓글