질의어 추천이라는 작은 시도가 갖는 함의

JayLee Consumer AI, Deep Learning

딥러닝을 이용한 자연어 기반의 챗봇 구현은 생각보다 만만치 않은 도전과제들이 산적해 있다. 무엇보다 범용적(General) 사용자들의 질의 일반을 모두 응대할 수 있는 챗봇의 구현은 상당한 규모의 학습데이터를 축적하는 것에서부터 첫 걸림돌이 발생하게 된다.
머신러닝은 물론이고, 딥러닝은 결국 데이터와의 싸움일 수밖에 없다. 다양하고 충분하게 수집된 데이터가 준비되고(Deep), 이를 분석하고 학습할 수 있는 알고리즘이 만들어지기(Learning) 전까지는 말 그대로 실패의 연속일 수밖에 없다. 수 많은 가설, 시도 끝에 유의미한 결과가 몇가지 도출되었다고 해봐야 실제 적용과정, 특히 상업적 서비스에 적용되려고 하는 시점에는 예상치 못한 온갖 시행착오들이 또 등장하게 된다.

이러한 과정 없이 시작부터 제대로 된 인지능력을 갖는 챗봇이 만들어질 것을 기대하는 것은, 우리 속담대로 우물가에서 숭늉을 찾는 셈이 되고 만다.

사용자의 자연어를 인지해서 챗봇을 만든다고 하는 필자의 그룹은 이러한 한계를 넘어서기 위한 나름의 여러 방향, 연구 가운데 하나로 지도학습 방식의 질의어를 선정하고, 이에 기반한 추천/예상 서비스를 기획, 개발과 안정화 과정을 거쳐 상용화를 마쳤다. 이에 간단한 개요를 요약, 공개한다.

자사가 2017년 3분기에 오픈에 도움을 주었던 금융고객사의 챗봇이 누적 수 백만 회 이상의 사용자 질의어를 수집했다. 그리고 이제 사용자들이 질의하는 다양한 자연어 질의가 어느정도 충분한 수집이 이루어졌다는 판단아래, 그간 사용자들이 특정 문제해결/의도파악 위해 요청하는 질의어 가운데 대표적인 질의(Representative Utterance) 들을 선정했다.
그리고 사용자가 챗봇을 이용하는 과정에서 입력한 토큰(키워드 혹은 단어)가 일정 글자에 도달하게 되면, 질의어 추천서비스(Utterance Suggestion Service)와 실시간으로 통신을 하면서 다양한 알고리즘을 적용한 Representative Utterance를 제시하게 된다.

이렇게 제시된 추천질의어(Suggestion Utterance)를 사용자가 선택, 곧바로 답변을 받거나, 해당 추천 질의어에 자신이 원하는 질의가 포함되어 있지 않다고 판단되면, 계속해서 추가적인 질의를 입력하게 된다.

해당 대표 질의어들을 저장하고, 일련의 알고리즘을 통해 순서를 정하는 저장소(Repository)에는 대량의 데이터를 다루는데 적합한 Elastic Search를 이용했다. 그리고 사용자들이 입력한 질의어에 포함된 토큰을 분석하기 위한 토크나이저는 국내의 한 오픈소스 형태소 분석기를 이용했다. 그리고 이렇게 토큰에 대한 분석이 완료된 이후, 사용자에게 제시할 추천 utterance의 추출알고리즘은 TF(Term Frequency)와 IDF(Inverse Document Frequency)를 이용했고, 다시 이를 보정하기 위해 BM25 알고리즘을 추가로 적용했다.

비교적 최근에 적용되었기 때문에 이와 관련된 성과를 아직 언급하기는 이른 시점일 뿐더러, 해당 정보를 공개할 권한도 없기 때문에 그 성과를 지속적으로 모니터링하고, 개선에 필요한 요소, 검증 가설, 보완을 지속할 따름이다.

카드, 생명보험, 손해보험, 은행과 같은 금융, 전자상거래, 학교, 공공서비스 등 다양한 이용환경에서 모든 일반적 질의를 다 이해할 수 있는 기술적 가능성은 누구에게나 열려 있다. 하지만 불행하게도 뭔가 그럴듯하게 포장되어 있는 기술, 솔루션이 실사용자들의 다양한 자연어질의를 모두 이해할 수 있으리라는 기대 혹은 주장은 대부분 당장 현실화되기 어려운, 말 그대로 ‘기대’와 ‘주장’에 불과하다.

애플의 Siri와 구글의 VPA(Virtual Private Assistant), Microsoft의 그러한 시도들조차 수 억 건이 넘는 방대한 데이터들을 수집하고, 분석하고 있음에도, 그 발전의 속도가 기대보다 늦어지고 있다는 평가가 주류를 이루고 있다.

결국 자연어 처리를 위한 인공지능 기술을 활용한 다양한 시도, 비록 사소하더라도 이용자들의 시간을 줄여주거나, 사소한 사용자 경험을 개선할 수 있는 여러가지 시도를 현실화 하기 위한 지속적 개발 그리고 이러한 시도/도전을 기꺼이 채용할 준비가 되어 있는 고객사의 지속적 노력만이 보다 가까운 장래에 “제법 똑똑한 챗봇, 디지털 비서”의 탄생을 가능하게 할 것으로 예상된다.