관계형 인공지능 챗봇을 만드는 Scatterlab(https://pingpong.us/)에서 출시한 일상대화 챗봇 '드림이' 제작과 관련된 내용입니다.
- 카카오 챗봇 '드림이봇'을 제작한 과정과 그 과정에서 고려한 기획 요소들을 간단하게 공유합니다.
- 카카오 챗봇 '드림이' 사용해보기: https://pf.kakao.com/_SgLqj
2. 일상대화 챗봇 ‘드림이봇’ 소개
1. 간단한 소개
실제 고양이 ‘드림이’를 바탕으로 구현한 일상대화 고양이 챗봇 (카카오 챗봇)
2. 특징
1) 실제 고양이 ‘드림이’를 바탕으로 집사의 상상을 더해 만들어짐
2) 스캐터랩의 일상대화 기술 ‘핑퐁’에 ‘드림이’ 페르소나를 입혀서 구현
3) 일상대화만 가능하고, 정보제공과 같은 기능적인 요소는 전혀 넣지 않음
3. 목적
1) 사람들에게 기존 대화형 에이전트와 완전히 다른 경험을 제공
2) 서비스를 많은 사람들이 쓰게함으로써 핑퐁을 알리고 가치 증명
*Reaction Model
- 정의: 어떤 말에든 적절한 반응을 보이는 모델
- 사람들이 대화에서 많이 사용하는 약 2,000개의
메시지를 딥러닝으로 학습
- 특징:
- 넓은 주제의 일상대화를 커버
- 실제 사람들이 가장 많이 쓰는 답변이기 때문에
자연스러움
**Emoji Attacher Model
- 정의: 어떤 문장이든 그에 맞는 이모지를 붙여주는 모델
- 특징: 사람들이 실제로 일상대화에서 사용한 이모지를
학습하여 인간적인 이모지 사용 능력을 보임
참고: pingpong.us
***Abuse Filtering Model
- 정의: 욕설 쿼리를 탐지하여 대응하게 해주는 모델
[드림이봇에 적용된 ‘핑퐁’ 기술]
3. ‘드림이봇’ 인터랙션 예시
User 드림이 User 드림이
=> Reaction model의 간단한 버전만 들어간 프로토타입 (페이스북 메신저) => 카카오 챗봇 ‘드림이봇’ 현재 버전
4. ‘드림이봇’의 제작과정
1. ‘드림이봇’ Framework 구상
2. ‘핑퐁’ 모델들의 답변을 드림이의 페르소나에 맞게 수정
3. Kakao i builder에서 시나리오 작성
4. 일상대화 경험을 높일 수 있는 요소 추가
5. 1. ‘드림이봇’ Framework
1) 목적
(1) 기존 기능대화형 챗봇이 아닌 일상대화형 챗봇에 대한 경험 제공
(2) 사람들이 일상대화형 챗봇에 대해 알고, 익숙해지고, 잘 사용하는 방법을 알게 하는 것
2) Agent의 페르소나: Agent의 전반적인 프로필, 배경, 특성 등에 대한 정보
- 기본 프로필(이름, 나이, 성별, 묘생관 등), 채팅을 시작하게 된 배경, 똑똑한 정도, 착한 정도, 특이사항 등
3) 사용자와의 인터랙션: Agent와 사용자 간의 예상 시나리오 분류를 작성
- 드림이의 일상, 사용자의 일상, 고양이에 대한 로망 실현
4) 사용자와 Agent의 관계: 사용자와 Agent가 형성할 관계를 정의함
- 서로에 대한 호감, 드림이에 대한 사용자의 감정, 드림이가 사용자를 챙겨주는 정도
‘드림이봇’의 제작과정
참고: pingpong.us/dreamy-the-cat/
6. 2. ‘핑퐁’ 모델들의 답변을 드림이의 페르소나에 맞게 수정
1) Reaction model
- 2,000여 개의 답변을 드림이 말투로 변경
- 예시: 같이 갈래요? => 같이 가고싶냥? 그치만 집사는 집사니까 집이나 지켜라냐!
- 사용해보기: https://pingpong.us/reaction/
2) Emoji Attacher
- 기본 45개 이모지 중 드림이의 페르소나에 맞는 이모지 28개를 선택하여 사진 형태로 제작
- 사용해보기: https://pingpong.us/emoji-attacher/
‘드림이봇’의 제작과정
7. 3. Kakao i builder에서 시나리오 작성
1) 일상에 대한 시나리오
- 안녕, 졸려, 뭐해?, 뭐 할 수 있어? 등
2) 사용자와 인터랙션하는 시나리오
- 산책가자, 밥먹자, 물마셔, 놀자, 힘들어 등
3) 드림이 프로필 정보에 대한 시나리오
- 좋아하는 것, 싫어하는 것, 취미, 생일, 성별, SNS 등
4) 수집욕을 자극하는 사진/동영상 제공 시나리오
- 드림이 에피소드, 사진 보여줘, 애교, 솜방망이 등
5) 일상에서 사용 가능한 간단한 기능
- 뭐 먹지?, 골라줘
‘드림이봇’의 제작과정
8. 4. 일상대화 경험을 높일 수 있는 요소 추가
‣ 기획 이슈
1) 일상대화 챗봇에 대한 사용자의 멘탈모델 결여
- 사용자가 서비스 자체를 낯설어 하고, 사용법도 모름
- 일상대화 챗봇에게 뭘 요구하거나 같이 뭘 해야할지 모름
2) 탐색 동기 부족
- 사용자가 드림이봇을 더 탐색할 마음이 들도록 하는 요소(귀여움, 사용자 스토리텔링, 수집욕)가 중요
- 탐색의 진입장벽을 낮출 수 있는 요소 필요
‣ 해결 방안(기술적인 한계를 고려하여 기획)
1) 자연스러운 경험 제공
2) 사용방법 제시
3) 사용자의 일방적 탐색이 아닌 양방향적 탐색 경험 제공
‘드림이봇’의 제작과정
9. 4. 일상대화 경험을 높일 수 있는 요소 추가
(1) 기능대화와 달리 일상대화는 사람과 사람간의 채팅 경험을 반영해야 함
- 답변 딜레이, 중복 답변 방지
- Intent를 트리거 시키는 발화를 자연스럽게 구성
- 예: 밥주기(x) -> 드림아 밥먹자(o), 밥줄게(o) / 사진(x) -> 사진 보여줘(o), 드림이 보고싶어(o)
(2) 챗봇의 반응을 페르소나와 일치시켜야 함
- 시나리오 자체의 사용 제한
- 예: [밥먹자] 시나리오의 경우 2시간에 1번씩만 소비 가능, [산책가자] 시나리오는 하루에 1번만 소비 가능
‘드림이봇’의 제작과정
1) 자연스러운 경험
10. 4. 일상대화 경험을 높일 수 있는 요소 추가
(1) 버튼 제공: 버튼에 예시 쿼리를 제공해서 다음 컨텍스트를 유도하거나 쿼리 작성법을 안내
- 이름을 메뉴화 시키기
- 사람 간의 인터랙션에서 대화 전에 그 사람을 주목 시키기 위해 이름을 부르는 행위는 자연스러운 행위
- 쿼리 작성법 안내
- 시나리오를 트리거하는 쿼리 외에도 일상대화 쿼리들을 버튼으로 제공
- 이어지는 컨텍스트 유도
(2) 사용 방법에 대한 안내
- Fallback 답변 시 일정 확률로 사용법에 대한 안내를 함
- 대화형 UI는 정보구조를 알기 어려운 형태이고, 일상 도메인에서 사용자가 할 수 있는 것을 예상하기 어려움
- 기능에 대한 안내를 제공
- 예1: 집사야! 뭘 먹을지 고민되면 나한테 '뭐 먹을까?'하고 물어봐라냐
- 예2: 그나저나 나 산책갈 준비 다했다냐! 같이 가줄거면 '산책가자'라고 말해달라냐!
‘드림이봇’의 제작과정
2) 사용방법 제시
11. 4. 일상대화 경험을 높일 수 있는 요소 추가
[예시]
‘드림이봇’의 제작과정
2) 사용방법 제시
이름을 메뉴화 시키기 쿼리 작성법 안내 이어지는 컨텍스트 유도
12. 4. 일상대화 경험을 높일 수 있는 요소 추가
(1) 드림이에 대한 정보 및 콘텐츠를 제공
- 일상대화 챗봇의 경우 페르소나 요소가 관계 형성에 영향을 크게 미치므로 페르소나 노출도를 높임
(사람 간의 관계도 양방향적으로 정보를 제공하고 노력을 해야 관계가 깊어짐)
- 트리거 없이도 시나리오를 제공하여, 사용자가 사용 대비 같은 비율로 평등하게 콘텐츠를 경험할 수 있게 함
(2) 대화를 리드
- 버튼 뿐 아니라 fallback 답변에서 일정 확률로 질문을 제공하여 Agent도 사용자에 대해 탐색하는 느낌을 제공
‘드림이봇’의 제작과정
3) 사용자의 일방적 탐색이 아닌 양방향적 탐색 경험 제공
[예시]
- 집사야! 내가 쫌 사나워보여도 따뜻한 냥이다냐😽
- 집사야 난 집사들이랑 얘기하면서 집사들 세상을 드리미하게 만들어주고 싶다냐
- 근데 집사야 그거 아냥? 내가 제일 좋아하는 건 쭉쭉 짜먹는 최강 간식 츄르다냐😻
[예시]
- 집사야! 난 집사랑 얘기하는거 좋은데 /집사도 나랑 얘기하는 거 좋으냥?
- 근데 나 궁금한게 있다냐! 집사가 제일 좋아하는 음식은 뭐냥?
- 집사야! 나 최근에 인크레더블 봤는데 엄청 재밌었다냐! /집사는 무슨 영화를 좋아하냥?