일러스트=이미지투데이.
일러스트=이미지투데이.

대화를 다루는 챗봇이나 음성봇과 같은 서비스는 다른 채널보다 사용자와의 관계가 아주 긴밀합니다. 일방이 아니라 상호 작용하기 때문입니다. 우리가 온라인상 특정 대상으로부터 만족하는 결과물을 얻었다면 필시 상호 긴밀함이 작용했을 것입니다.

대화형 인공지능 서비스는 사람이 해야 하는 응대를 스마트한 기계가 대신하는 것입니다. 다시 말해 사람처럼 전반적인 상황을 캐치하며 두루뭉술한 표현에도 ‘척하면 착’ 할 수 있는 ‘신속·적절함’을 갖춰야 진정 사람의 자리를 채울 수 있을 것입니다.

이를 위해서는 다양한 표현력을 학습하는 게 필요한데, 이번 글에서는 챗봇 설계 시 유의해야 할 사항에 대해 알아보겠습니다.

균형 있는 학습셋의 구축

학습셋(말뭉치)이란, 각 의도별 사용자가 질의할 수 있는 예상 질문을 미리 설정해두는 것입니다. 대화를 만들 수 있는 대화빌더에 따라 조금씩 차이가 있지만, 의도별 학습셋은 100여개 정도로 마련해두는 것이 좋습니다. 특정 의도에만 학습셋이 과중돼 있을 경우 즉, 소수 의도에만 100여개 정도의 예상발화를 학습시킬 경우 다른 의도로는 분류되기 어렵습니다.

‘#회의실예약’, ‘#좌석예약’, ‘#휴양소예약’이라는 의도가 있을 때 ‘예약한다’라는 의도는 동일하지만 어떤 예약이냐에 따라 사용자 발화가 달라집니다.

이때 ‘#회의실예약’에 해당하는 학습셋이 100여개, ‘#좌석예약’과 ‘#휴양소예약’에 해당하는 학습셋이 10개정도로 설정하게 되면 좌석이나 휴양소를 예약하는 발화여도 ‘#회의실예약’으로 분류될 가능성이 매우 높습니다.

따라서 대화를 구성하는 각 의도별 예상발화의 개수를 일정하게 맞추는 것이 좋습니다.

사용자별 예상발화의 다면적 예측

이렇게 의도별 전체적인 개수를 맞추는 것도 중요하지만, 하나의 의도 내에서 학습셋을 구성할 때도 균형을 맞추는 것이 중요합니다. 일반적으로 개개인마다 주로 사용하는 어휘나 문장이 조금씩 다르므로 학습셋을 다채롭게 구성합니다.

예를 들어, ‘#회의실예약’에 해당하는 학습셋을 구축해 보겠습니다.

A그룹과 B그룹의 차이가 느껴지는지요. 동일한 회의실예약이라는 의도를 학습하기 위해서는 어떤 그룹의 학습셋이 더 높은 품질의 학습셋일까요.

B그룹의 학습셋은 A그룹의 학습셋보다 훨씬 다양한 표현으로 구성되어 있습니다. 이처럼 같은 단어가 반복되거나 어미만 조금씩 다른 학습셋보다 ‘회의실’, ‘미팅룸’이라는 동의어, 유사어와 함께 ‘예약하려구요’, ‘잡을래요’, ‘필요해요’등 다채로운 표현을 활용해 학습셋을 구성하는 것이 중요합니다.

명확한 의도 분류

우리도 대화를 할 때 가끔 상대방이 무슨 이야기를 하는지 파악하기 어려울 때가 있습니다. AI는 사람보다 맥락을 이해하고, 이전 대화를 기억하고, 분별하는 능력이 미흡하므로 의도를 명확히 분류할 수 있도록 기준이 정립되어야 합니다.

예를 들어 휴양소를 예약해주고, 휴양지를 추천해주는 기능의 챗봇과 대화를 한다고 간주해보겠습니다.

“이번 휴가는 강릉으로 1박 2일 가요”라는 문장에서 우리는 두 가지 일반적인 사실을 알 수 있습니다. 휴양지가 강릉으로 정해졌다는 것과 1박 2일 동안 가므로 숙소가 필요하다는 것. 그러므로 ‘#휴양지추천’이 아니라 ‘#휴양소예약’을 필요로 한다는 것을 알 수 있습니다.

동일한 문장을 챗봇에 입력했을 때, 챗봇은 ‘#휴양소예약’과 ‘#휴양지추천’ 두 의도 사이에서 헷갈리지 않도록 명확한 기준에 따른 학습이 필요합니다.

‘#휴양소예약’과 ‘#휴양지추천’ 두 의도의 학습셋이 혼재되어 학습되어 있다면 길을 잃기 때문입니다.

사용자의 오해와 혼란 최소화

챗봇은 주로 대화가 문자로 이루어지므로 불필요한 오해를 최소화해야 합니다.

친구나 연인과 문자로 메시지를 주고받다가 오해하는 경험이 한 번쯤은 있을 것으로 생각합니다. 전화와는 달리, 문자로는 음의 높낮이, 어조, 어투 등을 알 수 없으므로 의미전달이 왜곡되는 경우가 있습니다. 그래서 우리는 감정을 표현해주는 이모티콘을 곁들어 사용함으로써 전달력을 높입니다.

한 가지 예를 들어보겠습니다. 날씨정보를 조회하는 기능이 연결되지 않은, 즉 날씨정보를 불러오지 못하는 챗봇에게 “오늘 날씨가 어때?”라고 물어봅니다.

이때, “날씨는 기상청에게 물어보세요”라는 챗봇의 답변을 받으신다면 기분이 어떨까요. 친절하다는 느낌은 썩 들지 않습니다. 자칫 ‘내가 그걸 몰라서 물어보나’라고 생각할 수도 있습니다.

같은 질문에 “아직 날씨정보에 대해 배우지 못했어요” 혹은 “날씨정보를 확인할 수 있는 페이지를 연결해 드릴게요”라는 챗봇의 답변을 받는다면 훨씬 친절하다는 느낌을 받을 수 있습니다.

이처럼 누가 어떤 상황에서 보더라도 기분을 언짢게 할 수 있는 표현은 아주 소소하더라도 하지 않는 게 좋습니다.

저작권자 © 대한데일리 무단전재 및 재배포 금지