챗봇, 젠틀파이, 인공지능 챗봇, generative, retrieval
챗봇을 만드려는 브랜드들을 만나보면 자주 듣는 이야기다. 학습시킬 데이터가 전혀 없거나 있어도 활용하기 불가능한 방식의 형태를 갖고 있다는 것. 그렇지만 부끄러워 할 필요까지는 필요없다. 남들도 없으니까. ;-)
챗봇을 간단히 생각하면 유저가 질문하면 봇이 대답하는, ‘질문과 대답’으로 구성된 프로그램이다. 질문에 맞게 봇이 대답하게 만드는 방법은 크게 분류해 2가지다. 1) 질문에 대한 대답을 미리 만들어 두고 답하게 하는 것 과 2) 질문에 대한 대답을 챗봇이 자동적으로 생성하는 것이 그것이다. 이 두 가지의 차이, 장단점, 현재 사용되고 있는 분야, 트렌드 등을 짚어본다.
검색 모델 (Retrieval-based model)은 유저의 질문내용과 대화의 문맥에 기반에서 의도를 파악하고 적절한 응답을 고르는- 검색하는- 방식을 말한다. 이 모델은 새로운 텍스트를 생성하지 않으며, 미리 만들어진 답변에서 답을 고르는 방식이다.
◦방법: 필요한 질문과 답변 쌍을 필요한 만큼 만들고, 다른 방식으로 물어봐도 동일한 의도면 동일하게 답할수있도록 질문를 유사하게 복제해서 머신러닝한다. 학습 효율을 높이기 위해 유사 질문 제네레이터(Training set generator)을 쓰기도 한다. 답변은 복제할 필요가 없다. 여기에 쓰이는 인공지능은, 유저가 애매하게 물어봐도 질문의 의도를 제대로 이해하게 하는 데 사용된다. (기계가 자연어로 된 인간 질문의 의도를 파악하는 게 아직도 너무나 어렵다)
◦장점: 답변의 내용이 정확하다. 문법에 안맞는 답변을 하지 않는다.
◦단점: 미리 준비된 Q&A 세트에서 응답하기 때문에 준비되지 않은 것에는 답변하지 못한다.
◦주 활용 범위: 검색 모델은 답변이 정확해야 하는 챗봇에서 사용된다. 대부분의 기업은 이 모델을 쓴다고 생각해도 무방하다.
이 모델의 가치는 유저가 말하는 의도를 제대로 이해하는 것에서부터 시작된다. 의도가 파악이 되어야 거기에 맞는 답변을 검색해 쓸 수 있다. 의도 분석기(Intent classifier)에서는 사용자 메세지의 의도를 구별한다. 정교한 봇들은 하나의 메세지에서 여러 의도를 파악하는데, 미리 정의되어 있는 여러 ‘의도’중에 확률적으로 가장 높은 것을 선택하고, 선택된 의도에 맞는 답을 ‘검색’해 내 놓는다. 의도를 정교하게 분류하기 위해서는 ‘맥락(Context engine)’을 사용하게 되는데 이전에 무슨 대화를 하고 있었는지, 유저나 채널의 성격은 무엇인지 등으로 더 세밀하게 판단하게 된다.
그렇다면, 답변은 고정된 형태의 내용만 내는가, 꼭 그런것은 아니다. 답변도 적합도의 랭킹을 내서 랭킹이 가장 높은 것을 출력할 수 있다. 또 최적의 답변을 위해 다른 알고리즘을 사용하거나, 다른 외부 API를 호출하거나, 상담사를 연결시킬 수도 있다. 예를 들면, 날씨에 대한 답변은, 날씨 API를 호출해서 데이터에 약간의 변형을 주고, 유저의 정보와 결합해서 답변을 만들어 내기도 한다. 물론, 정해진 규칙 안에서 생성(generate)하게 된다.
생성 모델(Generative model)은 말 그대로 말을 생성(generate)해 내는 방식이다. 대화 상대의 질문 의도를 파악한다기 보다는, 유저가 이런 질문을 했을 때는 이런 식의 답변을 하는 것이 최선이다라는 판단을 내려 답변을 생성하는 것. 유저의 질문에 따라 새로운 답변을 만들어 내기 때문에 생성 모델 챗봇과 이야기하다보면 마치 사람과 이야기하는 듯한 인상을 주기도 한다. 그렇지만 이 방식은 만들기도 어렵고, 잘 만들기 위해서는 엄청난 양의 데이터가 필요하다. (생성 모델로 만드는 챗봇 영상 자료, 신정규- PyCon APAC 2016 이 있는데, 아주 재미있고(!!) 보면 이해가 잘된다)
◦방법: 채팅 상담 내역, 게시판, 영화대본 등 대화 데이터(Text Corpus)등를 통째로 머신러닝. 인공지능을 이용해 새로운 답변을 유기적으로 조합 및 생성하여 답변하게 한다.
◦장점: 대화가 거의 끊기지 않는다.
◦단점: 의외의 답변, 질문이 같아도 일치하지 않는 답변을 할 수 있다. 문법에 안맞는 답변을 하기도 한다.
◦주 활용 범위: 가벼운 일상 대화(small talk)를 제공하는 챗봇이나 외국어 교육용 챗봇 등에서 주로 사용. (생성모델의 대표적인 예로는 MS의 Zo가 있다. 한번 대화해보시길)
현재 인공지능 기술은 검색 모델보다는 생성 모델로 진행되고 있다. 생성 모델이 이상적인 것은 분명하지만 아직까지 우리의 기대만큼 작동하지 않을 뿐더러, 실용화 시점이 묘연하다. 따라서, 답변을 모두 '인간이' 미리 준비해야 한다는 치명적 약점(불가능)에도 불구하고 검색 모델이 현실적인 대응책이 되고 있다. 게다가, 검색 모델의 장점인 '정확한 답변'은 브랜드챗봇이 꼭 가져야 하는 덕목이기에 검색 모델이 우선시되는 것은 어쩔 수 없는 현상이다. 검색 모델로 핵심 부분을 먼저 해결하고, 부차적인 부분은 생성모델로 결합해가는 것이 당분간의 추세이므로, 멋있어 보이는 생성 모델은 '연구'하시는 분들에게 잠시 맡겨두고, 우리는 다시 현실에 발을 딛어야 한다. 검색 모델도 충분히 많은 대화셋을 만든다면 '특정 주제'에서는 문제없이 대응하는 성공적인 챗봇을 만들 수 있다.
서두의 고민으로 돌아가 보자. 불행인지 다행인지 데이터가 없어요는 모두의 고민거리다. 기업이 목적을 갖고 챗봇을 만든다면, 지금 당장 데이터가 있든없든 상관없이 질문과 대답을 꼼꼼히 준비해서 만들면 된다. 꼼꼼히 준비한다는 것은 굉장히 많은 의미를 내포한다. 포괄적인 질문과 세부적인 질문, 일반적인 질문과 전문적인 질문 전체를 아우르며 입체적으로 만들어낸다는 뜻이고, 그 질문이 기계가 잘 알아듣는 형태가 아닌 '일반인'이 사용하는 언어와 생각의 범위에서 만들어져야 한다는 뜻이다. 답변도 마찬가지다. 일반인이 사람이 답변하는 것처럼 '제대로 알아 들을 수 있는' 수준 - 쉽고 간단하게, 때로는 단계적으로, 필요할땐 보조자료도 보여주며- 즉, 소비자의 언어로 만들어져야 한다. 젠틀파이는 챗봇에 들어가는 질문과 답변을 '소비자' 언어로 만들어 가는 데 주안점을 둔다. 챗봇은 인공지능 기술이면서 동시에, 사람의 생각을 예측해 내고, 설득해 나가는 커뮤니케이션 스킬이기 때문이다.
참고자료:
버리는 데이터를 일하는 데이터로
AI 챗봇에서 나오는 데이터, 과연 얼마나 활용하고 계시나요?
AI 챗봇 운영비를 낮추고, 데이터로 마케팅에도 사용하고!
지금 당장 코코너티브로 챗봇의 가치를 올려보세요!
코코너티브 https://www.coconutive.com
젠틀파이는 챗봇의 인공지능이 움직일 수 있는 데이터를 기업과 함께 생성합니다.
챗봇 제작을 고려하고 계시다면, 다양한 브랜드와 챗봇을 구축하고 있는 젠틀파이 hello@gentlepie.com 에 문의 주세요.
제이미의 글과 챗봇 소식을 계속 보고 싶으시다면, 페이스북 챗봇 그룹
제이미 트위터 @jamiepark
젠틀파이 브런치는 챗봇에 대한 다양한 소식이 업데이트됩니다. 브런치 구독
젠틀파이에서 챗봇 기획을 함께 할 인턴을 찾고 있습니다.
젠틀파이가 현재 진행하고 있는 다양한 프로젝트를 함께하면서, 시대를 앞서 챗봇을 함께 기획하고 제작해볼 수 있습니다. 챗봇을 만드는 일에 관심이 있어야 하고, 구조적인 생각과 컨텐츠 기획능력에 웹소설이나 블로그를 운영해본 경험이 있다면 더 좋겠지요.
함께하고 싶은 분은 저한테 직접 이메일 주세요.
이메일: jamie.park 엣 gentlepie.com
전화번호: 02-6713-7057