6. 대화 시스템
자연어로 사람과 대화하는 시스템
사용자: 인터스텔라 알려줘
시스템: 영화 인터스텔라는 …
사용자: 감독은?
시스템: 인터스텔라 감독은 …
사용자 주도
시스템: 무엇을 도와드릴까요?
사용자: 제주 가는 비행기 있나요?
시스템: 언제 출발하시나요?
사용자: 금요일 오전
시스템 주도
7. 대화 시스템
대화 시스템 =
QA 시스템 + 채팅 시스템 + …
사용자: 심심해
시스템: 심심할 땐 영화죠~
사용자: 인터스텔라 알려줘
시스템: 영화 인터스텔라는 …
사용자: 감독은?
시스템: 인터스텔라 감독은 …
대화 시스템 특징 = 대화 문맥
8. 대화 시스템 사례 – PC/스마트폰용
Apple Siri (2011년 10월)
삼성 S-voice (2012년 5월)
Google Now (2012년 7월)
네이버 Link (2012년 11월)
MS Cortana (2014년 4월)
9. 대화 시스템 사례 – 제품
Amazon echo
SoftBank pepper
Jibo
CogniToys
Musio
Emospark
10. 대화 시스템 사례 - Honda Townsurfer
Situated spoken interaction in a car
참조: Teruhisa Misu et al, “Situated Language Understanding
at 25 Miles per Hour (= 40km/h)”, SigDial 2014
11. 대화 시스템 사례 – 학계
Let’s Go – 버스 안내 시스템 (CMU)
Communicator – 비행기/호텔/렌터카 안내 시스템 (Colorado Univ.)
Jupiter – 날씨 안내 시스템 (MIT)
POSSDS-EPG – TV 방송 안내 시스템 (POSTECH)
ITSPOKE –교육 시스템 (Pittsburgh Univ.)
13. 대화 시스템 구성
음성 인식
대화 관리
자연어 생성음성 합성
검색
자연어 이해
사용자 입력
(Speech)
사용자 입력
(Text)
시스템 발화
(Speech)
시스템 발화
(Text)
사용자 입력
(Semantics)
시스템 발화
(Semantics)
14. 음성 인식
사용자 음성 입력을 텍스트로 변환
음성 인식
[사용자 음성]
제주 가는 비행기 있습니까?
[음성 인식 결과 문장]
1. 제주 가는 비행기 …
2. 대구 가는 비행기 …
15. 자연어 이해
자연어 문장을 의미 표현으로 변환
자연어 이해
[자연어 문장]
제주 가는 비행기 있습니까?
의미표현
Event 비행기 안내
도구 비행기
출발지 ?
도착지 제주
출발날짜 ?
출발시간 ?
문장유형 Y/N 질문
16. 대화 관리
시스템 발화 정보 생성
대화 관리
[발화 정보]
요청항목: 출발날짜
의미표현
Event 비행기 안내
도구 비행기
출발지 ?
도착지 제주
출발날짜 ?
출발시간 ?
문장유형 Y/N 질문
17. 자연어 생성 및 음성 합성
자연어 생성: 발화 정보로부터 자연어 문장 생성
자연어 생성
[발화 정보]
요청항목: 출발날짜
[자연어 문장]
언제 출발하세요?
음성 합성: 자연어 문장의 음성 생성
음성 합성
[자연어 문장]
언제 출발하세요?
[음성 문장]
언제 출발하세요?
18. 대화 시스템 구성
음성 인식
대화 관리
자연어 생성음성 합성
검색
자연어 이해
사용자 입력
(Speech)
사용자 입력
(Text)
시스템 발화
(Speech)
시스템 발화
(Text)
사용자 입력
(Semantics)
시스템 발화
(Semantics)
29. 음성 인식 처리
가장 좋은 1개만 이용
상위 n 개 후보 이용 강화 학습 기반 방법
• 시스템 주도 대화
• 사용자 주도 대화
30. 대화 관리 개발 방법
규칙 기반 접근 방법
• Finite State Automata(FSA) 이용하는 방법
• Frame 이용하는 방법
• Agenda 기반 방법
• 네이버 접근 방법
데이터 기반 접근 방법
• 강화 학습 기반 방법
31. FSA 이용하는 방법
FSA로 대화 문맥 및 순서 표현
도착지
요청
출발 시간
요청
출발지
요청
제주도
충주
16:00
제주도
출발 시간
요청
출발지
요청
출발지
요청
출발지
요청
부산
10:00
16:00
17:00
09:00
제주도
부산
16:00
제주도
서울
16:00서울
충주
부산
32. FSA 이용하는 방법
도착지
요청
출발 시간
요청
정보 제공
출발지
요청
정보 제공
지명
날짜/
시간 지명
어디에 가세요? 언제 출발하세요?
어디에서
출발하세요?
비행기는 … 가
있습니다.
도착지 = ?
출발 날짜 = ?
출발 시간 = ?
출발지 = ?
33. Frame 이용하는 방법
시스템 주도형 대화
Frame
도착지 = 제주도 (우선순위 1)
출발 날짜 = (우선순위 2)
출발 시간 = (우선순위 3)
출발지 = (우선순위 4)
시스템: 어디에 가세요?
사용자: 제주도
시스템: 언제 출발하세요?
사용자: 금요일 오전 김포에서 출발해
Frame
도착지 = 제주도
출발 날짜 = 2015.9.18
출발 시간 = 06:00-12:00
출발지 = 김포
34. Frame 이용하는 방법
사용자 주도형 대화
Frame
인물그룹 = 걸스데이
사용자: 걸스데이
시스템: 걸스데이 정보입니다. …
사용자: 소속사는?
시스템: 걸스데이 소속사는 …
Frame
인물그룹 = 걸스데이
요청항목 = 소속사
36. 네이버 대화 관리 모듈
Turn Value
1 걸스데이
2 소속사
3 민아
4 인터스텔라
5 감독
6 파리
대화 문맥 DB
(사용자/시스템 발화,
시간, 검색 결과 … )
+
A
Dialog Flow Graph
( A B if … )
B
37. 강화 학습을 이용하는 방법
supervised learning
• 시스템에게 문제와 정답 쌍 제공
unsupervised learning
• 시스템에게 문제만 제공
reinforcement learning (강화 학습)
• 시스템에게 문제 제공하고, 시스템 결정에 점수 부여
38. 강화 학습
장기 두는 시스템에 적용한다면..
• 시스템이 이기면, 시스템에게 1점 부여
• 시스템이 지면, 시스템에게 -1 점 부여
대화 시스템에 적용한다면..
• 사용자 목적 달성에 성공하면 1점
• 사용자 목적 달성에 실패하면 -1 점
39. 강화 학습 기반 방법
(Fully Observable) Markov Decision Process (MDP)
• 사용자 입력이 명확한 경우 1-best 입력
Partially Observable MDP (POMDP)
• 사용자 입력이 모호한 경우 n-best 입력
40. MDP 기반 방법
도착지 = ?
출발지 = ?
출발 날짜 = ?
출발 시간 = ?
도착지 = 제주
출발지 = ?
출발 날짜 = ?
출발 시간 = ?
사용자: 제주
시스템: 어디 가세요?
s s
시스템: ?
a
a
u s: state
a: action
u: user
41. POMDP 기반 방법
도착지 = ?
출발지 = ?
출발 날짜 = ?
출발 시간 = ?
1.0 0.0
도착지 = 제주
출발지 = ?
출발 날짜 = ?
출발 시간 = ?
s
0.0
도착지 = 대구
출발지 = ?
출발 날짜 = ?
출발 시간 = ?
s
…
시스템: 어디에 가세요?
a 음성인식 결과 (확률)
사용자: 제주 (0.8)
사용자: 대구 (0.2)
u
s
도착지 = ?
출발지 = ?
출발 날짜 = ?
출발 시간 = ?
0.2 0.4
도착지 = 제주
출발지 = ?
출발 날짜 = ?
출발 시간 = ?
s
0.3
도착지 = 대구
출발지 = ?
출발 날짜 = ?
출발 시간 = ?
s
…
s
Belief state
Belief state