챗봇이란 (챗봇 개념 쉽게 이해하기)

챗봇(Chatbot)은 이름에서 알 수 있듯이 대화를 하도록 설계된 소프트웨어, 즉 채팅 로봇이다.

요즘 한창 유행이라 심지어 카카오에서는 아예 카카오 i 오픈빌더라는, 코딩을 하지 않고도 챗봇을 만들 수 있는 서비스를 내놓았다.

그래서 나도 챗봇이란 대체 무엇이고, 어떤 종류의 것들이 있는지, 무엇을 조심해야 하는지 등에 대해 간략히 공부해서 남겨본다.

목차는 아래와 같다.

  • 챗봇의 원리
    • 의도(intent)
    • 엔티티(entity)
  • 챗봇의 분류
    • 분류 1. 응답 아키텍처 모델 (Response architecture models)
    • 분류 2. 대화 주제의 범위 (Conversation domains)
    • 분류 3. 대화의 주도권 (Initiatives)
  • 챗봇의 윤리적 문제
    • 투명성 (Transparency)
    • 페르소나 (Persona)
    • 소통의 기술 (Art of communication)

하나씩 살펴보자.


챗봇의 원리

챗봇이 실제 사람과 대화를 하려면 아래와 같은 작업을 수행할 수 있어야 한다.

  • 사용자의 입력을 파싱 (특정 패턴으로 추출해 가공)
  • 그 의미를 해석
  • 적절한 응답 또는 출력 제공

예를 들어, 사용자가 “일요일에 문 여는 을지로 맛집 알려줘”라는 쿼리를 던지면, 챗봇은 그 쿼리 안에서 의도(intent)엔티티(entity)를 식별한다.

  • 의도(intent): 사용자가 쿼리를 던지는 목적 (예: 음식집 리스트 불러오기)
  • 엔티티(entity): 사용자의 의도를 설명하는 추가적인 정보 (예: ‘일요일’, ‘을지로’, ‘맛집’)

이런 정보를 사용해서 챗봇은 적절한 응답을 할 수 있어야 한다.


챗봇의 분류

챗봇은 몇가지 기준으로 분류를 해볼 수 있다.

분류 1. 응답 아키텍처 모델 (Response architecture models)

응답을 생성하는 방법에 따라 분류해보자.

  1. 규칙 기반(rule-based) 모델: 일련의 규칙에 따라 사전에 정의된 내용을 돌려주는, 가장 단순한 방법이다. 대화 상자의 각 단계마다 출력 가능한 세트가 명확히 정의된 의사 결정 트리 형태라고 생각하면 된다.
  2. 검색 기반(retrieval-based) 모델: 기존 대화 말뭉치로부터 응답을 가져오는 방법이다. 통계적 자연어 처리(statistical NLP)와 같은 머신러닝 모델이나 지도학습 신경망 등을 사용해서 사용자의 입력을 해석하고, 그에 가장 적합한 응답을 가져오는 거다. 미리 준비한 데이터를 기반으로 학습하는 것이기 때문에 어느정도 응답의 퀄리티가 보장이 되는 편이고, 시간이 지남에 따라 스스로 학습함으로써 응답의 퀄리티를 개선할 수 있는 여지가 있다.
  3. 생성 기반(genarative) 모델: 기존 텍스트에 의존하지 않고 사용자의 입력에 따라 고유한 응답을 만들어낼 수 있다. LSTM-based seq2seq 모델(뭔지 잘 모름) 같은 딥러닝을 사용해서 어떤 응답을 내는 게 좋을지 결정하는 거다. 미리 정의된 규칙이나 학습 세트에 국한되지 않고 유연하게 적용할 수 있다는 장점이 있지만, 이걸 구현하려면 정말 많은 양의 데이터가 필요하다. 게다가 대체 뭘 기준으로 결정한 건지 알 수가 없어서 이상한 문장이나 무의미 답변을 할 수도 있다.

결국 목적에 따라 적절한 모델을 조합해서 사용해야 한다.

분류 2. 대화 주제의 범위 (Conversation domains)

도메인(대화 주제의 범위)에 따라 분류해보자.

  1. Cloesed domain: 특정 영역에 대해서만 응답하는 챗봇. 예를 들면 식당 예약 같은 거. 특정 목표를 염두에 두고 설계된 것이기 때문에 효율적이다. 그리고 사용자 입장에서도 성능이 좋다고 느낄 수 있다. 애초에 제한된 범위 내에서 입력을 할 거고, 다른 거 물었을 때 그거에 대해서도 답이 돌아올 거라는 큰 기대를 안 하니까.
  2. Open domain: 사람과 대화하는 것처럼 다양한 주제를 탐색할 수 있는 챗봇. 이게 가능해지면 동반자(?) 때로는 치료자의 역할을 수행하기도 하고, 영화 HER에 나오는 것처럼 교감이 된다고 느낄 수도 있다. 잠재력이 크긴 하지만 구현, 그리고 평가하기가 쉽지 않다.

분류 3. 대화의 주도권 (Initiatives)

대화의 주도권이 누구에게 있는지에 따라서도 챗봇을 분류해볼 수 있다.

  1. mixed-initiative: 사용자(또는 봇) 한 쪽에서 대화를 주도할 수 있는 형태. 예를 들어 식당 예약이라고 하면 사용자가 자유롭게 자신의 언어로 봇에게 요청을 전달할 수 있다. 봇은 그걸 해석해서 원하는 답을 주고. 물론 반대로도 가능하다. 봇이 묻고 사람이 대답하는. 아무튼 우리가 생각하는 일반적인 사람과 사람 사이의 대화 형태.
  2. system-initiative: 봇이 구조화된 질문을 요청하는 방식이다. 식당 예약 챗봇의 예를 다시 들어보자면, 봇이 애초에 어느 지역 식당을 원하냐, 날짜는 언제로 할 거냐, 이런 식으로 명시적으로(대놓고) 묻는 거다. 이러면 사용자의 응답을 예상할 수 있기 때문에 구현하기 쉽지만, 유연하지 못하고 부자연스러워서 대화한다는 느낌을 주진 않는다.

챗봇의 윤리적 문제

예를 들어 온라인 쇼핑몰 웹사이트에서 채팅을 한다고 해보자. 나한테 잘 맞는 제품을 찾아달라고 라이브 채팅을 시작했는데, 그쪽에서 답변도 친절하게 해주고 이러면서 좀 더 많은 정보를 요구하는 거다. 내 라이프 스타일이나 배경 정보에 대해 더 알면 더 도움을 줄 수 있다면서.

그런데 정작 알고 보니 봇이었다! 이러면 기분이 어떨까. 심지어 내가 그렇게 제공한 개인정보들은 다 그 회사에 넘어갔고, 그 회사는 그걸 마케팅에 활용하고 또 어딘가에 팔아먹고…

앞으로 기술이 더 발전함에 따라 사용자 입장에서는 이게 봇인지 실제 사람인지 구분하기 어려워질 수도 있다. 그래서 챗봇에 대해서는 반드시 윤리적 문제를 고민해야 한다.

투명성 (Transparency)

사용자 측에서는 투명성이 가장 중요하다. 즉, 이 챗봇과 상호작용 한 결과가 어떻게 되는지 알고 있는지. 특히 개인정보보호 측면에서. 봇인지 사람인지 명시하는 것이 필요할 수도 있다. 물론 정말 사람과 대화하듯 자연스럽고 편안한 느낌을 전달하는 것도 중요하지만, 때로는 이건 사람이 아닌 봇이라고 명확하게 전달할 필요도 있다.

페르소나 (Persona)

사용자 관점이 아닌 챗봇 측면에서 고려해야 할 문제도 있다. 가장 대표적인 논란이 바로 봇에게 “성별”을 할당하는 것이다. 애플의 시리(Siri)와 아마존의 알렉사(Alexa)가 왜 여성 이름을 가지고 여성의 목소리를 낼까? (관련기사: 왜 음성비서는 여성 목소리일까)

아무튼 챗봇을 학습시킬 때 주의하지 않으면 챗봇이 성 차별, 인종 차별, 언어 폭력과 같은 문제를 일으킬 수 있다. 실제로 2016년 MS에서 개발한 Tay라는 트위터 봇이 있었는데, 히틀러 사진에 “스웩”이라고 낙서를 하는 등 미친 소리를 해서 바로 내렸다.

대체 뭘 보고 배운 거야…

소통의 기술 (Art of communication)

챗봇이 대화를 주고 받을 때도 윤리적인 문제가 있다.

예를 들면 사용자가 모욕적인 말을 건넸을 때 단순히 응답 안 하거나 무시하거나 모른 척하는 게 최선일가? 실제 사회에서는 그런 행동을 하면 안 된다는 피드백이 있고 경우에 따라 처벌을 받기도 하는데, 봇이라고 마냥 그렇게 당해도 괜찮은 걸까? 실제로 여성화된 챗봇은 성희롱 당하는 경우가 부지기수라고 한다. 챗봇 개발자가 이런 점을 고려한다면 어떤 식으로든 사용자의 괴롭힘을 해결하기 위한 장치를 마련해야 할 수도 있다. 이를 테면 유머와 재치를 발휘한다든가…?

반대의 경우도 생각해볼 수 있다. 마치 영화 HER처럼 외로움이나 우울함을 느끼는 사용자가 챗봇에 정서적인 애착을 갖게 되는 상황이다. 이를 테면 사용자가 자살하고 싶다는 말을 했을 때 어떤 도움을 줄 수 있을지 챗봇 개발자는 고민을 해야 한다. 웃자고 하는 얘기가 아니다. 실제로 정말 심각한 주제다.


앞으로 챗봇은 어떤 모습으로 발전할까? 정말 인간과 구별이 안 될 정도의 수준까지 구현이 될지도 모른다. 지금 사람이 하고 있는 많은 일자리가 챗봇으로 대체될지도 모르고. 트렌드는 명백한 거니까 어쨌든 올바른 방향으로 흘러가도록 계속 관심을 가져보자.

아, 참고로 페이스북에는 챗봇코리아라는 커뮤니티도 있고, 브런치에 챗봇 관련 글을 좀 쓰시는 분들이 있다.

내가 챗봇을 만들 수 있을까

추천 글

“챗봇이란 (챗봇 개념 쉽게 이해하기)”의 2개의 댓글

  1. 페르소나 부분이 흥미롭네요 ㄷㄷ 전에 올리신 머신러닝 글에서 기계가 사람의 편견까지 학습한다는 부분이 생각나기도 하구요.. 오늘도 잘 읽었습니다! 매번 잘 정리된 글 올려주셔서 감사해요~

댓글 남기기