2017.12.08

"자연어 처리를 넘어" 챗봇 구축의 8가지 과제

Faris Sweis | InfoWorld
지난 5년 동안 마이크로소프트, IBM, 구글, 아마존 등은 뛰어난 챗봇 프레임워크를 제작했다. 마이크로소프트 봇 프레임워크(Bot Framework), IBM 왓슨 컨버세이션(Watson Conversation), 구글 API.ai, 아마존 렉스(Lex)와 같은 툴은 사람의 언어를 제대로 이해하고 자연스럽게 사람과 대화할 수 있는 소프트웨어를 구축할 수 있게 해준다.

여기서 주인공은 자연어 처리(Natural Language Processing, 이하 NLP)다. NLP를 통해 챗봇은 투박한 결정 트리를 넘어 인지 흐름을 특징으로 하는 새로운 차원의 경험으로 격상되며 새로운 애플리케이션도 대거 쏟아져 나온다. NLP가 대중화되고 바이버(Viber), 메신저(Messenger), 아이메시지(iMessage)와 같은 채팅 채널의 기능이 발전하면서 이러한 애플리케이션의 인기와 관심도 크게 증가했다.

Image Credit : GettyImagesBank

NLP는 강력하기는 하지만 챗봇 구축과 관련된 모든 과제를 NLP만으로 해결할 수는 없다. NLP는 기업과 소비자가 원하는 전체적인 경험의 한 조각을 제공할 뿐이다. 차체가 없는 엔진과 같다. 채팅 경험을 비즈니스 프로세스에 통합해 문제를 해결하기 위해서는 그 외에도 많은 요소가 필요하다. 자세히 살펴보자.

챗봇을 해부하면 다음과 같은 각 부분으로 개념화할 수 있다.

1. 채팅 인터페이스. 메신저 또는 아이메시지와 같은 채팅 채널, 또는 이러한 툴과 비슷한 맞춤형 UI다. 많은 챗봇은 이런 인터페이스를 내장했거나 클라이언트에 적합한 네이티브 채널에 바로 통합된다. 인터페이스의 복잡성 수준은 다양하다.

- 텍스트 전용 : 사용자가 조작하는 텍스트 상자와 레이블로만 구성된 인터페이스.
- 텍스트 및 음성 전용 : 사용자가 문장 입력을 말로 대신할 수 있는 인터페이스. 이 시나리오에서 부가되는 복잡성은 음성을 캡처하고 음성-텍스트 변환 구성 요소를 통합할 수 있는 마이크 접근을 구현하는 것이다.
- 음성 전용 : 시리, 알렉사, 코타나 사용 경험을 생각하면 된다.
- 음성 및 시각 : 알렉사 쇼(Alexa Show)를 생각하면 된다.
- 텍스트, 음성 및 시각 : 예를 들면 아이메시지의 다채로운 경험이 있다. 클라이언트는 입력하거나 말을 할 수도 있고 채팅 맥락에 따라 시각적 UI 위젯과 상호작용도 가능하다. 개발자 관점에서 과제는 챗봇이 적절한 맥락에서 적절한 UI 상호작용을 제공하도록 하는 것이다.

2. NLP 구성 요소. 이 구성 요소는 자유 형태 텍스트 또는 음성 표현을 이해하고 이를 의향과 매개 변수로 분해한다. 주의할 부분은 NLP는 애플리케이션이 문장을 의향 집합으로 분해하도록 돕는 역할만 한다는 점이다. 대화에서 의향을 찾는 일은 NLP가 하지만 그 의향에 어떻게 반응하고 행동할지는 소프트웨어 개발자가 직접 결정해야 한다.

3. 봇의 맥락 또는 기억. 챗봇을 통해 사람과 비슷한 상호작용을 가능하게 하려면 개발자는 처음부터 끝까지 대화의 맥락 또는 기억을 유지해야 한다. 일부 챗봇은 한 고객에 대한 개인화된 경험과 이력을 제공하기 위해 사용자별로 따로 맥락을 유지해야 한다. 예를 들어 챗봇을 통해 병원 진료 예약을 한다면 챗봇이 이 대화의 맥락을 기억하고 나중에 약속 시간이 다가올 때 알려주는 기능이 필요하다. 더 진보된 챗봇이라면 내 이름과 이메일 주소 등도 기억할 것이다.

4. 되돌림, 분할, 반복. 챗봇 개발의 복잡성 대부분이 발생하는 부분이다. 현재 챗봇의 유형은 다양하다. 많은 챗봇은 “원자성(atomic)” 챗봇으로, 하나의 행동이나 “트랜잭션” 용도로 사용된다. 더 자유로운 형태의 대화에서는 챗봇이 대화를 분할하거나 이전의 특정 대화로 되돌림하기는 현재 매우 어렵고 따라서 이를 지원하지 않는 챗봇이 많다.

5. 레거시 시스템과의 통합. 구축하는 챗봇의 유형에 따라 외부 시스템 또는 정보 소스와의 연계가 필요한 경우가 있다. 비즈니스용 챗봇을 구축한다면 대부분 CRM 시스템, ERP 애플리케이션 또는 HR 시스템과 연계해서 정보를 수집하거나 데이터를 푸시해야 한다.

6. 분석. 현대의 모든 소프트웨어가 그렇듯이 챗봇 역시 얼마나 잘 작동하는지 이해하기 위해서는 분석이 필요하다. 분석은 접촉, 편향, 오해를 파악하고 고품질 또는 더 개인화된 경험을 제공하는 데 도움이 된다.

7. 핸드오프. 모든 챗봇의 필수 요소는 아니겠지만 고객 서비스 조직에서 사용할 챗봇을 구축하는 경우 상호 작용의 복잡성이 일정 수준 이상 높아질 때를 위해 봇과 사람 사이의 핸드오프를 고려해야 한다.

8. 성격, 어조 및 인격. 사람과 더 가까운 느낌을 주기 위한 챗봇의 소프트한 특징들이다. 봇의 성별을 남성으로 할 것인가 여성으로 할 것인가? 가벼운 성격과 정중한 성격 중 어느 쪽이 적합한가?

NLP를 통합하고 나면 생산적인 챗봇을 구축하는, 진짜 과제를 해결해야 할 차례다. 기본적으로 4번부터 8번까지에 해당된다. 개발자도 단계를 진행하면서 인식하게 되듯이, 결국 각 사용자에게 맞게 개인화해야 하는 많은 수작업 코딩 논리와 결정 트리, 지속성 관리가 포함된 또 다른 애플리케이션을 구축하는 작업이다.

본질적으로 NLP는 실제 비즈니스 애플리케이션을 개발할 때 일반적으로 직면하는 과제를 해결해주지 않는다. 단지 채팅 인터페이스를 사용해 더 폭넓고 만족스러운 경험을 제공할 기회를 제공할 뿐이다.

새로운 챗봇 업체의 상당수는 개발자가 봇의 목적을 정의하고 챗봇 프레임워크 내에서 시스템 통합, 대화 흐름 및 지속성 관리와 관련된 어려운 작업의 대부분을 처리할 수 있도록 하는 풍부한 선언적 구문을 도입해 이러한 과제를 해결하려 시도하고 있다. 그러한 발전이 실현되지 않는다면 챗봇은 계속해서 전통적인 애플리케이션에 비해 개발 및 유지 비용이 많이 들게 될 것이다.

*Faris Sweis는 프로그레스(Progress)의 개발자 툴 사업부 총괄 책임자이다.  editor@itworld.co.kr


2017.12.08

"자연어 처리를 넘어" 챗봇 구축의 8가지 과제

Faris Sweis | InfoWorld
지난 5년 동안 마이크로소프트, IBM, 구글, 아마존 등은 뛰어난 챗봇 프레임워크를 제작했다. 마이크로소프트 봇 프레임워크(Bot Framework), IBM 왓슨 컨버세이션(Watson Conversation), 구글 API.ai, 아마존 렉스(Lex)와 같은 툴은 사람의 언어를 제대로 이해하고 자연스럽게 사람과 대화할 수 있는 소프트웨어를 구축할 수 있게 해준다.

여기서 주인공은 자연어 처리(Natural Language Processing, 이하 NLP)다. NLP를 통해 챗봇은 투박한 결정 트리를 넘어 인지 흐름을 특징으로 하는 새로운 차원의 경험으로 격상되며 새로운 애플리케이션도 대거 쏟아져 나온다. NLP가 대중화되고 바이버(Viber), 메신저(Messenger), 아이메시지(iMessage)와 같은 채팅 채널의 기능이 발전하면서 이러한 애플리케이션의 인기와 관심도 크게 증가했다.

Image Credit : GettyImagesBank

NLP는 강력하기는 하지만 챗봇 구축과 관련된 모든 과제를 NLP만으로 해결할 수는 없다. NLP는 기업과 소비자가 원하는 전체적인 경험의 한 조각을 제공할 뿐이다. 차체가 없는 엔진과 같다. 채팅 경험을 비즈니스 프로세스에 통합해 문제를 해결하기 위해서는 그 외에도 많은 요소가 필요하다. 자세히 살펴보자.

챗봇을 해부하면 다음과 같은 각 부분으로 개념화할 수 있다.

1. 채팅 인터페이스. 메신저 또는 아이메시지와 같은 채팅 채널, 또는 이러한 툴과 비슷한 맞춤형 UI다. 많은 챗봇은 이런 인터페이스를 내장했거나 클라이언트에 적합한 네이티브 채널에 바로 통합된다. 인터페이스의 복잡성 수준은 다양하다.

- 텍스트 전용 : 사용자가 조작하는 텍스트 상자와 레이블로만 구성된 인터페이스.
- 텍스트 및 음성 전용 : 사용자가 문장 입력을 말로 대신할 수 있는 인터페이스. 이 시나리오에서 부가되는 복잡성은 음성을 캡처하고 음성-텍스트 변환 구성 요소를 통합할 수 있는 마이크 접근을 구현하는 것이다.
- 음성 전용 : 시리, 알렉사, 코타나 사용 경험을 생각하면 된다.
- 음성 및 시각 : 알렉사 쇼(Alexa Show)를 생각하면 된다.
- 텍스트, 음성 및 시각 : 예를 들면 아이메시지의 다채로운 경험이 있다. 클라이언트는 입력하거나 말을 할 수도 있고 채팅 맥락에 따라 시각적 UI 위젯과 상호작용도 가능하다. 개발자 관점에서 과제는 챗봇이 적절한 맥락에서 적절한 UI 상호작용을 제공하도록 하는 것이다.

2. NLP 구성 요소. 이 구성 요소는 자유 형태 텍스트 또는 음성 표현을 이해하고 이를 의향과 매개 변수로 분해한다. 주의할 부분은 NLP는 애플리케이션이 문장을 의향 집합으로 분해하도록 돕는 역할만 한다는 점이다. 대화에서 의향을 찾는 일은 NLP가 하지만 그 의향에 어떻게 반응하고 행동할지는 소프트웨어 개발자가 직접 결정해야 한다.

3. 봇의 맥락 또는 기억. 챗봇을 통해 사람과 비슷한 상호작용을 가능하게 하려면 개발자는 처음부터 끝까지 대화의 맥락 또는 기억을 유지해야 한다. 일부 챗봇은 한 고객에 대한 개인화된 경험과 이력을 제공하기 위해 사용자별로 따로 맥락을 유지해야 한다. 예를 들어 챗봇을 통해 병원 진료 예약을 한다면 챗봇이 이 대화의 맥락을 기억하고 나중에 약속 시간이 다가올 때 알려주는 기능이 필요하다. 더 진보된 챗봇이라면 내 이름과 이메일 주소 등도 기억할 것이다.

4. 되돌림, 분할, 반복. 챗봇 개발의 복잡성 대부분이 발생하는 부분이다. 현재 챗봇의 유형은 다양하다. 많은 챗봇은 “원자성(atomic)” 챗봇으로, 하나의 행동이나 “트랜잭션” 용도로 사용된다. 더 자유로운 형태의 대화에서는 챗봇이 대화를 분할하거나 이전의 특정 대화로 되돌림하기는 현재 매우 어렵고 따라서 이를 지원하지 않는 챗봇이 많다.

5. 레거시 시스템과의 통합. 구축하는 챗봇의 유형에 따라 외부 시스템 또는 정보 소스와의 연계가 필요한 경우가 있다. 비즈니스용 챗봇을 구축한다면 대부분 CRM 시스템, ERP 애플리케이션 또는 HR 시스템과 연계해서 정보를 수집하거나 데이터를 푸시해야 한다.

6. 분석. 현대의 모든 소프트웨어가 그렇듯이 챗봇 역시 얼마나 잘 작동하는지 이해하기 위해서는 분석이 필요하다. 분석은 접촉, 편향, 오해를 파악하고 고품질 또는 더 개인화된 경험을 제공하는 데 도움이 된다.

7. 핸드오프. 모든 챗봇의 필수 요소는 아니겠지만 고객 서비스 조직에서 사용할 챗봇을 구축하는 경우 상호 작용의 복잡성이 일정 수준 이상 높아질 때를 위해 봇과 사람 사이의 핸드오프를 고려해야 한다.

8. 성격, 어조 및 인격. 사람과 더 가까운 느낌을 주기 위한 챗봇의 소프트한 특징들이다. 봇의 성별을 남성으로 할 것인가 여성으로 할 것인가? 가벼운 성격과 정중한 성격 중 어느 쪽이 적합한가?

NLP를 통합하고 나면 생산적인 챗봇을 구축하는, 진짜 과제를 해결해야 할 차례다. 기본적으로 4번부터 8번까지에 해당된다. 개발자도 단계를 진행하면서 인식하게 되듯이, 결국 각 사용자에게 맞게 개인화해야 하는 많은 수작업 코딩 논리와 결정 트리, 지속성 관리가 포함된 또 다른 애플리케이션을 구축하는 작업이다.

본질적으로 NLP는 실제 비즈니스 애플리케이션을 개발할 때 일반적으로 직면하는 과제를 해결해주지 않는다. 단지 채팅 인터페이스를 사용해 더 폭넓고 만족스러운 경험을 제공할 기회를 제공할 뿐이다.

새로운 챗봇 업체의 상당수는 개발자가 봇의 목적을 정의하고 챗봇 프레임워크 내에서 시스템 통합, 대화 흐름 및 지속성 관리와 관련된 어려운 작업의 대부분을 처리할 수 있도록 하는 풍부한 선언적 구문을 도입해 이러한 과제를 해결하려 시도하고 있다. 그러한 발전이 실현되지 않는다면 챗봇은 계속해서 전통적인 애플리케이션에 비해 개발 및 유지 비용이 많이 들게 될 것이다.

*Faris Sweis는 프로그레스(Progress)의 개발자 툴 사업부 총괄 책임자이다.  editor@itworld.co.kr


X