1. 청소년 상담 챗봇 케라콘
2019. 11. 16
Presenter: 조원익 From Keracorn Counsel Team
2. Contents
• Introduction
Members
Contribution
Motivation
Overview
• Proposed scheme
Dataset construction
Sentence similarity test
Chatbot specification
• Summary
1
3. Introduction
• Members
김슬기 (멘토)
윤연숙 (챗봇 아이디어 도출 및 상담 데이터 수집)
전유현 (챗봇 아이디어 도출 및 상담 데이터 수집)
안태경 (챗봇 아이디어 도출 및 시나리오 구현)
반태형 (챗봇 아이디어 도출 및 배포 기여)
민재옥 (챗봇 아이디어 도출 및 유사연구 공유)
조원익 (챗봇 아이디어 도출 및 유사도 측정 모델)
황재희 (텔레그램 연동 및 시나리오 구현)
김하림 (챗봇 아이디어 도출)
김선진 (챗봇 아이디어 도출)
조혜영 (챗봇 아이디어 도출 및 상담 데이터 수집)
2
4. Introduction
• Contribution
케라스를 활용한 딥러닝 기반 청소년 상담 챗봇 구현
• 실제 상담사례집 및 온라인 상담자료 기반의 데이터 수집/정제
• 한국어 코퍼스를 이용한 유사도 측정 모델 구축
• 텔레그램 API를 활용한 챗봇 프로토타입 구현
정기적인 회의
• 온라인/오프라인 미팅/회의록
산출물 공유
• https://github.com/Keracorn/Counsel
3
6. Introduction
• Motivation
심리적으로 취약하고 고민이 많지만 물어볼 곳이 적은 10대들이 고민을 털어
놓고 답변을 들을 수 있는 챗봇
범위가 일반인 대상 상담에 비해 범위가 상대적으로 좁아 답변이 원활
일상 질답 대화보다는 사용자 쿼리에 유사한 내용을 찾는 방향 구성
정답을 제시하는 챗봇이 아닌 대상자의 고민에 대한 공감을 하는 방향 추구
교육, 상담 분야에서 참고할 자료가 많은 분야이고, 팀원 및 지인의 상담 경험
그리고 청소년 사이버 상담 센터에 올라오는 게시글들이 해당 챗봇의 필요성
을 증명
(이슈) 현재 챗봇 개념에 대해 초보적인 단계에서 목표달성을 위한 스터디 방
향 및 현실 가능성에 대한 우려가 있지만 열린 아이디어와 다양한 논의 활동
자체가 컨트리뷰톤의 목적에 부합하다고 판단
(향후일정) 팀원 각각 주제별로 할당하여 데이터 수집 및 정제 작업 진행
5
7. Introduction
• Overview
6
“고등학교 1학년입니다. 열심히 하는데도
성적이 너무 안 올라서 걱정이에요. 빠르게
올릴 만 한 방법이 있을까요?”
• ,,,,,
• 부모님과의 불화가 심합니다. 다시 사이가 좋아지려면 어떻게 해야 하죠?
• 열심히 공부해도 성적이 안 오릅니다. 빠르게 올리고 싶어요.
• 남자친구와 서로 바빠서 멀어졌어요. 다시 회복할 방법이 있을까요?
• ,,,,,,
성적이 오르는 것 같으면서도 안 올라서 고민일 때가 있지.
아마 많은 학생들의 …
질답 SET
ANSWER
유사도 측정
8. Proposed scheme
7
• Dataset construction
Wee 심리상담서비스, Naver 지식 IN, 청소년 심리상담 사례집 등의 공개 데이터에서
발췌 및 각색 (비영리 목적이며 각색을 거치나, 추가적인 라이선스 확인 필요)
데이터셋 수집
데이터
통합
데이터
정제
10. Proposed scheme
• Dataset construction
Corpus for keyphrase extraction (will be expanded to sentence similarity)
9
11. Proposed scheme
10
• Sentence similarity test
모델 개발에서 핵심이 되는 부분: 사용자의 input이 가지고 있는 DB의 어떤
QA set과 가장 잘 매칭되는지 파악하는 부분
• (1) 사용자의 input에서 상담에 필요한 부분들을 모아 가공하여, QA set과 잘 매칭
될 수 있는 어떤 문장/문장 list의 형태로 만드는 과정
– summarization system을 별도로 훈련하는 것이 가장 이상적하지만 현실적으로 비정형
구어에 대한 요약을 단기간에 구현하기 어려운 관계로, 내담자가 한 turn동안 말하는 것
이라고 생각되는 input sentence들의 모음(INPUT)의 총길이가 100음절 이상인 경우(공
백 포함), INPUT에서 뒷부분의 100음절만 따로 잘라서 사용. 만약 INPUT이 100음절보다
짧을 경우 모두 사용.
• (2) 최종적으로 Input이 되는 문장/문장 list와 가장 비슷한 topic 및 intention을 가
진 발화(여기서는 DB의 상담 질답 SET의 원소)와 매칭하는 과정
Featurization:
• 문장을 어떻게 수치화할 것이냐?
• 수치화된 문장들을 어떻게 배열할 것이냐?
12. Proposed scheme
• Sentence similarity test
Character-level embedding
11
반A character (pan)
First sound (cho-seng) Second sound (cung-seng)
Third sound (cong-seng)
Structure: {Syllable: CV(C)}
# First sound (C): 19
# Second sound (V): 11
# Third sound (C): 27 + ‘ ‘
Total 19 * 11 * 28 = 11,172 characters!
13. Proposed scheme
• Sentence similarity test
Series vs. parallel arrangement
12
기존 데이터셋 모델 학습 모듈 통합
S1 [SEP] S2
Series/Parallel
self-attentive BiLSTM
Non-related?
Related? (topic/act)
Paraphrase?
Query DB Questions
Proper Answer
조원익, 문영기, 김종인, 김남수, "담화 성분을 활용한 지시 발화의
키 프레이즈 추출: 한국어 병렬 코퍼스 구축 및 데이터 증강 방법론"
제31회 한글 및 한국어 정보처리 학술대회, 2019, pp. 241-245.
14. Proposed scheme
• Sentence similarity (dataset will be distributed)
Mail, schedule, house control, weather (4 topics)
Alt. Q, Wh- Q., Prohibition, Requirement (4 intentions)
10,000 utterances
to about 550K pairs
13
S1 [SEP] S2
...
S1 [SEP] S2
S1
S2
...
...
(a)
(b)
(c)
15. Proposed scheme
• Chatbot specification
(플랫폼) 다양한 플랫폼을 조사한 결과 텔레그램 플랫폼 사용하기로 결정
• Token을 통해 연동하고, webhook을 이용해 API로 request, response 진행
• 시나리오에서는 알맞은 시간 간격을 두고 내담자의 이름을 물어보며, 내담자의 고
민을 문자열 형태로 모델에 전달
• 모델은 고민과 가장 비슷한 질문 데이터를 찾아, 해당 질문에 대한 답변을 반환하
도록 구현
(형상관리) 공유 Github를 이용하여 소스코드를 업로드 하고, 지속적인
Update, Commit 활동의 이력을 남겨 문제 해결에 대한 노하우 습득
• 지속적인 update, commit 활동은 컨트리뷰톤의 사상과 일치하므로 누구나 쉽게
적용할 수 있도록 상세한 설명 필요
• 공유 및 공개SW 활용으로 인공지능 생태계에 기여
• 타인의 개발소스 관찰 및 협업을 통해 개인적인 역량에 기여
14
16. Proposed scheme
• Chatbot specification
15
실제 챗봇 구성
* 텔레그램 플랫폼에 연동하여 사용자 인터페이스 구성
* 텔레그램에 등록한 url로 메세지를 수신할 수 있는 webhook을 이용, http api로
메세지 교환
* 자연스러운 대화를 이어갈 수 있도록 일정 시간 간격을 두고 이름을 묻고, 질문
을 모델에 전달
Keracorn
Server
Telegram
Server
POST request
User
메세지 전송
답변response
17. Proposed scheme
• Chatbot specification
Main scenario
• 인사 (Greetings)
• 별명, 나이 묻기
• ``내담자야, 왜 나를 찾아왔니?’’
– 질문 받기
– 질문이 끝났다는 것을 어떻게 구분할 것인가?
» 시간으로 일단 정하자!
» 응답이 지연되더라도 추임새(음…, 그렇구나, etc.)를 해주면 괜찮을 것! (not yet)
– 질문이 모두 끝나면 답변
» 질문 유사도 모델을 dataset에 대해 inference (not yet)
16
18. Summary
17
제안 배경
Why
• 정서적으로 취약한 청소년들이 고민을 상담할 곳이 많지 않음
• 대면 상담하기 어렵거나 민감한 주제들이 존재함
• 사람보다 인공지능을 대상으로 고민을 털어놓는 것이 심리적으로 안정될 수 있음
챗봇 소개
What
• 청소년의 고민을 들어줌
• 고민을 다 듣고, 가장 도움이 될 수 있는 답변을 찾아줌
청소년들의말할 곳 없는 고민상담을들어주고
간단한 답변을 줄 수 있다면?
과정 소개
How
• 청소년 상담 질의응답 데이터 수집 (약 180개 유형)
• 데이터 검증/정제 및 질의문장 간략화
• 기존의 문장 유사도 비교 코퍼스 활용하여 Keras 모델 학습
• 입력 문장을 취합하고 가장 가까운 질의를 찾는 모듈 구축
• 해당 모듈을 활용하여, 첫인사부터 대화를 이어나가는 시나리오 구성
• 텔레그램 API를 이용한 챗봇 시스템 구축
청소년 상담봇 케라콘
19. Reference (order of appearance)
• Cho, W. I., Kim, S. M., & Kim, N. S. (2019). Investigating an Effective Character-level Embedding in
Korean Sentence Classification. arXiv preprint arXiv:1905.13656.
• Cho, W. I., Moon, Y. K., Kang, W. H., & Kim, N. S. (2018). Extracting Arguments from Korean Question
and Command: An Annotated Corpus for Structured Paraphrasing. arXiv preprint arXiv:1810.04631.
• 조원익, 문영기, 김종인, 김남수, "담화 성분을 활용한 지시 발화의 키 프레이즈 추출: 한국어 병렬 코퍼스
구축 및 데이터 증강 방법론" 제31회 한글 및 한국어 정보처리 학술대회, 2019, pp. 241-245.
• Schuster, Mike, and Kuldip K. Paliwal. "Bidirectional recurrent neural networks." IEEE Transactions on
Signal Processing 45.11 (1997): 2673-2681.
• Lin, Z., Feng, M., Santos, C. N. D., Yu, M., Xiang, B., Zhou, B., & Bengio, Y. (2017). A structured self-
attentive sentence embedding. arXiv preprint arXiv:1703.03130.
• Chollet, F. (2015). Keras.
• Cho, W. I., Cho, J., Kang, W. H., & Kim, N. S. (2019). Disambiguating Speech Intention via Audio-Text
Co-attention Framework: A Case of Prosody-semantics Interface. arXiv preprint arXiv:1910.09275.
18