본문 바로가기
주메뉴 바로가기

ICT 디바이스랩

K-ICT 디바이스랩은 국내 스마트 디바이스 중소·벤처기업 스타트업을 위해 제품기획, 디자인, 프로토타입, 투자유치를 지원해 드립니다.

[Special Issue] Part 02 대화형 인터페이스 그리고 자연어 이해

작성일 : 2018.03.05조회수 : 8448

 

Special Issue Part 2


대화형 인터페이스 그리고 자연어 이해

글_장세영 머니브레인 대표

‘채팅과 로봇의 합성어로 인공지능을 기반으로 한 커뮤니케이션’이 바로 챗봇이다. 최근 들어 챗봇은 대화형 인터페이스의 진화로 인해 음성인식의 한계를 극복하고 인력을 대체할 수 있는 기술로 떠오르고 있다. 상담이나 특정 상품의 가입 권유, 커머스 등 언제 어디서든 24시간 고객응대서비스가 가능하다는 점에서 주목받고 있다. 본 고에서는 챗봇의 핵심기술인 자연어 처리에 대한 이해와 챗봇을 구성하는 대화형 인공지능의 핵심 기술, 그리고 기본적인 챗봇 만들기 팁 등에 대해 간략히 소개하기로 한다.

t2018353559335725.PNG

자연어 이해가 곧 기술의 이해

요즘은 문서, 뉴스, SNS 등 엄청난 정보와 지식이 사람이 쓰는 자연어 형태로 존재한다. 그런데 컴퓨터가 사람이 자연스럽게 말하는 자연어를 이해하기 위해서는 품사, 명사, 조사 등 다양한 문법적인 부분을 처리할 수 있어야 한다. 이런 처리를 해주는 것을 NLU(Natural Language Understanding), 즉 ‘자연어이해’라고 부른다. 컴퓨터가 문맥을 파악하기 위해서는 자연어이해를 통해 사용자의 ‘의도(Intent)’와 ‘개체명(Entity)’를 정확히 파악하는 것이 필요하다. 예를 들어 자연어이해에서 중요한 의도와 개체명을 ‘오늘 서울 날씨 어때?’라는 문장에서 찾아보자. 이 문장을 통해 사용자가 파악하고자 하는 의도(Intent)는 ‘날씨가 어떠한지’를 묻는 것이다. 개체명은 ‘오늘’이라는 시간 개체, 그리고 ‘서울’이라는 장소개체가 있다. 사용자가 쓴 문장의 문법 구조를 파악한 후, 그 안에서 ‘의도’와 ‘개체명’을 정확히 분석하면 컴퓨터도 자연어를 사람처럼 이해할 수 있다.

 

대화 처리 엔진 프로세스

이해하기 쉽도록 당사에서 보유하고 있는 대화처리 엔진 프로세스는 아래 다음 <그림>과 같다. 이 플랫폼은 메신저, 애플리케이션, SMS, 음성인식 디바이스 등 모든 채널에서 사용할 수 있다. 채널을 통해 입력된 사용자 대화는 위에서 설명한 NLU기술을 통해 의도(Intent)와 개체명(Entity)를 분석하여 인공지능(A.I:Artificial Intelligence)이 이해할 수 있도록 처리된다.
그 다음 사용자의 입력 내용은 ‘대화 그래프(DM: Dialog Management)’와 ‘대화학습(DL: Dialog Learning)’에 적용된, 내용적으로 적합한 곳을 찾아 연결해주는 DM-DL Hybrid를 거치게 된다. 이 과정을 통해 가장 적합한 모듈을 선택하고 적용하여 답변에 필요한 Task를 구성한다. 이후 문장 합성기를 통해 자연어로 출력되어 사용자에게 전송된다.

 

대화형 인공지능의 핵심 기술

대화형 인공지능의 핵심 기술을 소개하자면, 첫째로, 위에서 언급한 NLU(자연어이해기술)이 있다. NLP(Natural Language Process)에서 한단계 진보한 기술이다. 문장의 의도와 개체명을 파악하여, A.I가 자연어를 이해하고 처리할 수 있게 만든다. 둘째로, DM(Dialog Management), 대화처리기술이다. 챗봇 엔진의 핵심 기술로, 챗봇과 사용자와의 대화를 구성하고 구조화하는 기술이다. 셋째는 HTA(Hierarchical Task Analysis), 태스크구조화분석기술이다. 챗봇이 처리하는 Task를 구조화하여 독립적으로 구성 및 관리하는 기술이다. 이 기술을 통해 Task를 재사용 및 재조합하여 사용할 수 있어 챗봇의 활동범위가 월등히 넓어진다.
마지막으로 DL(Deep Learning), 딥러닝이다. 방대한 대화학습 데이터를 인공신경망을 통해 분석 및 학습하여, 더 잘 알아듣고 더 잘 말할 수 있게 한다. 데이터 양이 많아야 더 똑똑한 인공지능이 완성된다. 설립 직후부터 쌓아온 금융관련 데이터를 딥러닝시키고 있기 때문에 금융 관련한 질문에서 강점을 나타낸다.

t2018353559335753.PNG 

챗봇 빌더를 활용한 챗봇 만들기 팁

예약, 문의사항 응대, 배달내역 등으로 손쉽게 해당업체만의 챗봇을 만들 수 있다. 또한 이런 템플릿봇을 사용하면, 사용자 키 값을 기준으로 고객의 이름, 이메일주소, 핸드폰 번호 등을 DB(데이터베이스)에서 관리할 수 있다. 이를 통해 한번 고객의 정보가 들어오게 되면 다음에 대화할 때도 고객정보를 기억한다. 예를 들면, 지난번에 배달봇을 통해 주문했던 고객이 ‘지난번에 주문했던 거 그대로 주문해줘’라고만 입력하면 DB에서 고객의 지난 주문내역, 이름, 연락처, 주소 등을 통해 배달을 실행한다.
나만의 봇을 개발하고 싶을 때, 가장 간편하게 쓸 수 있는 방법은 ‘질문과 응답 세트’를 만드는 것이다. 질문에 대한 응답성공률을 높이려면 대화쌍을 많이 만들고, 토픽별로 대화를 나누어서 데이터 관리를 잘 해야 한다. 아래 그림에서 보듯 여자친구처럼 대화를 해주는 여자친구봇을 만들 때를 예로 들어보자. 대화 토픽이 정해진 후 그 주제에 대한 대화가 끝날 때까지 토픽을 인식하는 것이 필요하다. 예를 들어, ‘우리 영화 볼까?’라는 말에서 ‘영화’라는 토픽으로 들어가 보자. 그 후,‘어떤 거 보지?’라고 물었을 때 ‘어떤 거’가 ‘드라마’나 ‘연극’이 아닌,‘영화’라는 것으로 인식될 수 있어야 한다. 그렇게 되도록 다음과 같이 카테고리를 나누어서 데이터 정리를 할 수 있다.
개발자가 코딩을 통해 나만의 챗봇을 만들 때 가장 중요한 사항은 우선 챗봇이 대화의 맥락을 파악하도록 하는 것이다. 이 경우, 플레이쳇이 보유한 call, return call, repeat 등 다양한 액션을 선택만 하면 손쉽게 이용가능하다. 두 번째로는 사용자로부터 얻어야 할 정보를 완벽히 얻어내는 것이다. 약 20여 가지의 타입 (날짜타입, 휴대폰번호타입, 주소타입 등)은 이미 구현되어 있는 것을 선택하면 손쉽게 이용 가능하다. 이 외에도 스스로 task를 새로 구성해 적용할 수도 있다.
지난 수년 동안 MS나 구글, 아마존 등은 뛰어난 챗봇 프레임워크를 개발했다. 동시에 자연어 처리 및 이해 기술과 음성 인식 디바이스도 빠르게 대중화되고 있다. 여기서 중요한 점은 자연어이해(NLU)와 자연어 처리(NLP)다. 이것을 바탕으로 투박하고 어법에 맞지 않는 문장을 넘어 인지의 흐름을 특징으로 하는 새로운 자연어 처리 기술을 탑재해야 한다. 챗봇은 자연어의 이해가 큰 비중을 차지한다. 그 이유는 이용자가 널리 사용하는 채팅 프로토콜을 그대로 사용할 수 있다는 점에서 큰 의미를 지니기 때문이다. 앞으로도 이러한 채팅 인터페이스를 활용해 얼마나 더 폭넓고 만족스러운 경험을 사용자에게 제공할 수 있느냐에 따라 기업 서비스와 만족도가 달라질 수 있다고 해도 과언이 아니다.