저는 가상 현실을 연구하며, 그 중에서도 디지털 휴먼 인터랙션을 개발하고 연구하는 사람입니다.
어? 그럼 VR과 관련된 내용이나 쓰시지 잘 알지도 못 하는 챗봇을 글로 작성해요? 이거 완전 사짜네 라고 생각하실 수도 있지만, 저는 다르게 생각합니다. 챗봇이라는 것이 VR 혹은 AR과는 약간 동떨어진 분야라고 생각하실수도 있는데요.
저희가 VR 환경 혹은 AR 환경에서 디지털 휴먼(Digital Human) 혹은 가상 에이전트(Virtual Agent)라고 불리는 가상의 존재(Virtual Being)들과 이야기하고 인터랙션(Interaction), 일종의 상호작용을 하기 위해서는 모든 디지털 휴먼에 챗봇(chatbot) 이라는 프로그램이 어떠한 형태로든 내장되어 있습니다. 따라서 이번 포스팅을 통해서 앞으로 가상 객체와 인터랙션을 제공하는 프로그램을 개발하실 때 도움이 될 만한 내용이 충분히 있을 것이라고 생각하고, 몇 편에 나눠서 글을 쓰도록 하겠습니다 .
챗봇 이란?
챗봇에 정의에 대해서 언급하는 것은 이 글을 읽고 계신 독자분들에게 약간 우스울 것 같지만, 챗봇은 인간의 자연적인 언어 대화들을 시뮬레이션 하고 이를 처리하기 위해서 만들어진 컴퓨터 프로그램으로 알려져 있습니다.
이런 챗봇들의 예로는 최근 이슈가 되었던 '이루다' 라거나 엄청 옛날에 카카오톡이 처음 나왔을때 쯔음 유행했었던 심심이가 있습니다.
그리고 요즘 제가 생각했을 때, 챗봇이 가장 많이 쓰이는 곳은 금융 서비스에서 상담을 해주거나, 고객센터를 대신하는 서비스들이 있을 것 같습니다. 이렇게 챗봇은 금융서비스이든, 엔터테인먼트든 여러 분야에서 활용이 되고 있습니다.
그럼 이러한 챗봇은 어떻게 개발이 되는 것일까요?
뭐 기본적으로는 Natural Language Processing(NLP) 이라고 불리는 자연어 저리 기술이 기반이 됩니다. 사용자가 말하는 혹은 입력한 단어별 그리고 문장 단위의 뜻을 프로그램들이 이해하고 Rule-base를 기반으로 대화 방식이 만들어졌습니다. 예를 들자면, "너는 누구니?" 라는 질문에 "나는 챗봇입니다." 뭐 이렇게 정해진 답을 할 수 있도록 만들어진 것이 Rule base의 가장 기본적인 챗봇입니다. 이런 룰 기반의 대표적인 API 서비스들은 Google DialogFlow나 Clova Chatbot 아니면 페이스북 메신저 서비스 등이 있습니다. 최근에는 카카오톡 API를 이용해 챗봇을 많이 개발하는 것 같습니다.
그러던 중에 딥러닝 기술이 발전하게 되면서, 사용자의 문장들을 추측/예측(prediction)하는 기술들이 생겨났고 예측된 문장에 답을 생성하는 기술들이 생겨났습니다. 그래서 이 prediction!! 그러니까 유저의 말을 더 잘 예측하기 위해서 문장을 저희가 알아보기 쉽게 바꾸는 것이 아니라 컴퓨터가 더 잘 알아볼 수 있도록 문장의 구조를 바꾸는 새로운 문장 표현 기법들도 등장을 하게 되었고요. 그런 문장 표현 기법들 중에서 가장 유명한 pre-trained model은 구글에서 개발한 BERT 모델이 제일 잘 알려져 있습니다.
그리고 이 prediction이 끝나면 사용자의 쿼리에, 즉 사용자의 말에 올바른 아니면, 적절한 대답을 해주기 위해서 미리 쌓아놓은 지식 기반의 database에서 검색을 해서 대답을 한다던지 아니면 완전 새로운 대답을 만들어내는 generative model의 기반의 기술들이 있습니다. 그래서 현재는 이런식으로 챗봇 기술이 발전하고 있습니다.
이제, 챗봇을 왜 만들게 되었는지를 설명해야 될 것 같습니다.
이 챗봇들을 어디에 쓰이기 위해서 만들었냐 하면은 바로 로봇에 이 챗봇 기술들을 이식해서 사용하기 위해 개발을 했다고 합니다. 그래서 이 챗봇을 인간과 상호작용하는 가상의 로봇이 챗봇이라고 말을 하는 사람도 있고요. 뭐… 로봇에 적용하는 시도가 제일 처음은 아니었을지 몰라도 로봇에 적용하면서 이득을 본 기술이라고는 할 수 있을 것 같습니다.
그래서 뭐… 로봇과의 인터랙션에 대해서 잠깐만 이야기를 해야되는데요. 심리적인 이야기를 잠깐 먼저 하면은…저희가 인간과 닮은 로봇이나 사물… 물체들을 보게되면은,자연스럽게 무의식적으로 이 사물들을 인간인 것처럼 대하고…. 어떤 감정들을 형성하게 된다고 합니다.
뭐 예를 들자면… 가끔식 이런 친구들이 있습니다. 저희가 타는 자동차의 앞모습을 보고 사람 얼굴이라고 말을 하는 친구들이 가끔식 있습니다. 그래서 뭐.. . 얘는 싸납게 생겼네 아니면 우울하게 생겼네 하는 사람들이 있습니다. 뭐 이것도 어떻게 보면은, 자동차의 사람같은 모습을 보고 무의식적으로 자신만의 어떤 감정을 생성해 낼 수 있습니다. 아무튼 이건 예시이고요 그래서 이렇게 자동차를 보고도 감정을 생성해내는 사람들이 작정하고 사람처럼 만든 로봇을 보면은 다양한 감정들을 생성해냈을 것입니다.
그래서 이 로봇 분야에서도.. VR 분야에서 자주 쓰이는 존재감(Presence)라는 용어가 쓰입니다. 솔직히 어디서 먼저 시작했느냐를 따지면, 로봇 분야에서 먼저 쓰이지 않았을까 생각이 됩니다. 사람들이 이 로봇을 보고 어떤 생각을 가졌는가 아니면.. 어떠한 감정을 가지게 되었고 어떻게 느꼈는지에 대해서 설명하기 위한 용어로써, 이 presence라는 용어가 사용이 되는데 이건 이제 저희가 VR 환경에서 혹은 AR환경에서 인터랙션하는 디지털 휴먼이 갖는 presence의 개념과도 많은 유사한 점이 있다고 생각이 됩니다. 그래서 저는 이 로봇이나 디지털 휴먼이 크게 다른 차이는 없다고 생각을 하고요
둘 다 부족한 인적 자원들을 보충하기 위해서 만들어졌고 인적 자원의 일을 대신하기 위해서 만들어졌다는 점에서 로봇 분야에서 말하는 이론이나 의견들을 저는 디지털 휴먼 연구에서 조금은 따라야 한다는 의견을 가지고 있습니다.
아무튼 그래서 이 로봇과의 인터랙션에서 약간 눈여겨볼만한 이론이 있는데요. 개인이 로봇을 보고 생성하는 감정에 따라서 로봇의 기술적 완성도를 낮게 혹은 높게 고려할 수 있다는 의견들이 있습니다. 무슨 말이냐 하면은… 여기 있는 이 강아지 로봇은 아이보라는 굉장히 오래전에 나온 로봇인데요. 제가 태어나기도 전에 나온 로봇이고요 1990년도..? 아무튼 그래서 굉장히 기술이 불안정했다고 합니다. 그렇지만 사람들은 이 로봇의 그러니까 강아지 로봇의 불완전한 모습을 보고서 오히려 더 실제 강아지처럼 느껴졌고 애착을 갖게 되었다고 합니다.
그리고 다른 예로는 챗봇의 경우 저희가 옛날에 봤던 심심이가 좋은 예시가 되는데요 심심이가 어느정도 이상한 말을 해도 아마 납득을 하고 지나갔던 기억들이 있으실 것 같아요 일단은 이 캐릭터 자체가 노란색에 병아리 캐릭터이고, 말투가 초등학생 같기 때문에 사람들이 이 심심이를 보고 형성한 감정이 ‘어린이 같다’ 라는 생각을 많이 했을 것입니다.
그래서… 이 심심이에 대해서 높은 기술적 완성도를 기대하지 않고 낮은 기술적 완성도임에도 불구하고 ‘잘 만들어졌다’라고 생각을 할 수 있었던 것 같습니다. 그래서 이 로봇과 챗봇 그리고 presence, 기술적 완성도와 관련해서는 제 개인적인 생각과 다른 사람들이 말한 내용들을 종합해서 정리해서 말씀을 드리면은… 약간 이렇게 정리를 할 수 있을 것 같아요. 로봇이 등장하게된 배경이, 제한된 인적 자원을 대체하기 위해서 였고, 이러한 로봇과 인터랙션을 하기 위해서 발전하던 과정 중에 챗봇이 탑재되었고, 저희 쪽 분야로 넘어오면서 로봇들이 virtual human이 되었다 이런 virtual character 들을 어떤 그룹에서는 embodied conversational agent라고 하죠 . 그래서 저희가 연구하는게 virtual world 에 있는 사람인 virtual human을 만드는 일인데 이 virtual human이라는 자체가 실제 사람을 대체하기 위해서 나온 것이기 때문에 결국 이것을 거슬러 올라가면 결국 로봇이 시초였던 것 같습니다.
Virtual human 이전에 로봇이 있었고 이 로봇이 말을 할 수 있도록 하기 위해서 일련의 대화 샘플들을 저장해 놓은 것이 챗봇이다 라고 말할 수 있을 것 같습니다.
그렇기 때문에 presence나 기술적 완성도에 관한 의견들 처럼 로봇과의 인터랙션에서 여러가지 이론들을 적용하면서 배울 점이 많다고 생각하고 있고 어느정도 관련이 있다는 것을 말하고 싶었습니다.
그래서 이 embodied conversational agent에 대해서는 아까 말씀드렸던 이야기들을 적용할 수 있을 것이라 저는 생각을 하는데요 예를 들자면… 여기 있는 이 진짜 사람같은 캐릭터는 이번에 유니티에서 엄청난 지원을 바탕으로 만들었다는 수아 라는 캐릭터인데요. 유니티에서는 이 캐릭터를 디지털 셀럽이라고 부르고 있는데 보시는 것처럼 굉장히 실사처럼 만들었고 제가 알기로는 어떤 연예인을 본따서 만들었다는데 누군지는 잘.. .모르겠고요.. 그래서 이러한 캐릭터의 경우에는 제공하는 기술적인 난이도라던가 완성도가 굉장히 높아야겠죠 만약에 입모양이나 눈깜빡임 같은 사소한 요소들이 이상하다고 느껴지기 시작하면은 사람들이 이 캐릭터를 보고 생성하는 감정들 중에서 Presence 라던지 Realistic하고 natural한 느낌들이 한번에 다 깨지는 결과가 나올 수 있기 때문에 주의를 해야합니다.
그렇지만 반면에, 이건 지금까지 제가 프로젝트를 하면서 사용했던 virtual character 들인데 얘들은 약간 실사 랑은 거리가 멀죠 그래서 기술적으로 완벽하지 않아도 불완전한 요소로 보고 이해하고 넘어갈 수 있는 여지가 있다고 생각을 합니다. 그래서 제가 말씀드리고 싶은 것은 사용자에게 어떤 기대감을 충족시키고 싶은지에 따라서 Virtual character 의 디자인을 선택하는 것이 중요하다는 것을 말씀을 드리고 싶었습니다.
그래서 다시 chat bot으로 돌아와서… Chat bot은 어떤 형태로 만들어야 하는가? 에 대한 이야기는 다음 포스팅에서 하겠습니다.