brunch

You can make anything
by writing

C.S.Lewis

by Moon Dec 17. 2021

챗봇의 정석

대화형 사용자 경험의 시작

어느 날 갑자기 머신러닝, 딥러닝, 인공지능이라는 주제가 화제가 되었다. 인공지능의 개념은 PC가 보급되기 한참 이전부터 논의되던 개념이다. 많은 사람들이 이세돌 vs 알파고의 세기의 대결에서 머신러닝, 딥러닝에 대해 관심을 가지게 되었다. 


여기서부터 챗봇에 대한 오해가 시작되었을 거라 생각한다. 

'기본적인 대답을 알아서 하죠?' 챗봇 제안 발표를 할 때마다 받는 질문이다. 어디서부터 잘못된 것일까? 


챗봇을 다루기 전 컴퓨팅 환경의 변천사를 잠깐 살펴보자. 


1980년대 PC 가 보급되며 데스크톱 환경을 제공해 주었다. 데스크톱 환경에는 Command-line Interface(CLI)와 Graphical User Interface(GUI)를 모두 포함한다고 생각하면 편할 것이다. CLI 환경에서는 키보드만 있으면 원하는 명령어를 통해 필요한 결과를 받을 수 있었다. 현대의 운영체제는 대부분 GUI 환경이며 아이콘 및 원하는 부분을 선택하기 위해서 마우스가 도입되었다. CLI 환경보다 때때로 굉장히 빠르게 정보를 탐색할 수 있게 되었다.


1990년대부터 '인터넷' 시대라고 한다. 인터넷 상으로 엄청난 자료들이 공개/공유되고 있다. 우리는 보통 웹 브라우저로 검색하거나 포털사이트라고 하는 디렉터리 구조의 웹 사이트에서 필요한 뉴스나 자료를 찾는다.


2000년대부터 애플의 스티브 잡스 덕분에 스마트폰이 보급이 되면서 '모바일' 시대라고 한다. 더 이상 인터넷 검색을 위해 데스크톱이 필요하지 않게 되었고 스마트폰으로 직접 인터넷에 접속할 수 있게 되었다. 스마트폰은 화면이 작아서 키보드나 마우스를 대체할 수 있는 '터치'라는 개념 또한 애플사에 의해 새로운 입력장치로 자리 잡게 되었다. 스마트폰 화면 크기의 문제로 다양한 입력방법이 터치와 함께 연구되고 있다. 

사족이지만 영문을 입력하기 위해서는 쿼티(QWERTY) 방식의 (가상) 키보드만 있으면 입력에 문제가 없다. 한글의 경우 자음과 모음을 결합하는 방법으로 대부분의 사람들이 잘 사용하고 있다. 중국어의 경우 어떻게 입력할까? 중국어로 안녕은 你好(ni hao라고 발음)이다. 중국어는 쿼티 키보드만으로는 모든 한자를 표현하기 어렵다. 따라서 중국어는 발음되는 대로 'ni'라고 입력하면 '你'가 추천되는 형태이다. 물론 nihao라고 붙여서 입력하면 '你好'가 제일 먼저 추천이 된다. 이렇듯 인터넷을 하기 위한 인류의 노력은 끝도 없다. 

게다가 대부분의 스마트폰에는 카메라가 내장되어 있어 찍은 사진을 인터넷 상으로 공유하는데 이러한 서비스를 하는 곳을 '플랫폼 기업'이라 부른다. 카카오톡, 페이스북 등이 대표적이다.


현재 2021년 겨울 택시를 타고 기사님께 목적지를 말해보자. 기사님들은 어떻게 스마트폰에 명령을 하는가?

그렇다. 음성으로 명령한다. 더 이상 키보드에 터치 따윈 하지 않는다. 


이것이 챗봇이다.


지금까지 챗봇은 일부 웹 사이트 및 스마트폰 앱의 우측 하단에 있던 챗봇 아이콘인 줄 알았는데 이게 챗봇이 아니라고? 사실 둘 다 챗봇이 맞다.


그럼 택시 목적지 요청 시나리오로 요청 파이프라인을 한번 잘 생각해 보자. 목적지는 필자의 회사가 위치한 광화문 '더 케이 트윈타워'로 예시를 들어보겠다.


1. 내비게이션 앱에서 목적지를 위한 음성인식 버튼은 터치 후 '더 케이 트윈타워로 가자'라고 말한다.

2. 음성을 인식하는 기술(Speech to Text)을 이용하여 음성을 문장으로 변환한다.

3. 변환된 문장을 자연어 처리 엔진에 요청하여 의도를 파악한다.

 3.1. 목적지 개체 (더 케이 트윈타워) 추출 후 DB에 등록된 주소에서 찾은 경우 목적지로 인식, 그렇지 않은 경우 유사 목적지 제공.

4. 이미 만들어둔 특정 의도에 대한 요청 처리기(로직)가 있으면 요청 처리기를 실행 후 결과 반환하거나 의도 파악을 할 수 없는 경우 1로 회귀.


위 요청 파이프라인을 보면 챗봇에 음성인식 기능만 추가한 것이다. 대화형으로 요청을 입력받아서 결과를 반환하는 것이 챗봇이다. 크리스마스가 다가오니 지금 바로 내비게이션 앱에 '캐롤 틀어줘'라고 해 보자. 

이렇게 미리 정의된 요청 처리기가 실행되는 것이 챗봇의 정의라고 할 수 있다.


출처: Bot Framework SDK란?



마이크로소프트의 코타나, 아이폰의 시리, 구글 홈, 네이버 클로바등 음성으로 필요한 명령을 할 수 있는 기술을 음성비서라고 한다. 이는 특정 도메인(주제)에 해당하지 않고 범용적인 일을 요청할 수 있는 기술인데, 이러한 기술 또한 내부 핵심 기술은 챗봇인 것이다. 


많은 사람들이 아이폰 광고를 보고 시리(Siri)에게 한 번쯤은 '바보야', '세상에서 누가 제일 이뻐?' 등의 질문을 해 보았을 것이다. 이러한 질문에 대해서 어떤 답을 할지에 대해서는 아직까지는 정답이 없다.

반면 네이버 클로바에게 '임진왜란이 일어난 연도는?'이라고 물어보자. 위 택시 목적지 요청 시나리오의 3.1 영역을 구현하기 위해서 엄청난 노력이 필요했을 것이다. 이미 백과사전 등의 내용을 수집해 두어야 하며 기계 독해(Machine reading comprehension) 기술과 작문(Natural language generation) 기술을 구현해야지만 답을 할 수 있다. 



다음 글에서는 챗봇으로 어떤 형태의 서비스를 만들 수 있는지에 대해 알아보도록 하자!






브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari