Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[222]대화 시스템 서비스 동향 및 개발 방법

DEVIEW 2015 DAY2. 대화 시스템 서비스 동향 및 개발 방법

[222]대화 시스템 서비스 동향 및 개발 방법

  1. 1. 대화 시스템 서비스 동향 및 개발 방법 서희철 NAVER 자연어처리연구실
  2. 2. contents 네이버에서 대화 시스템 대화 시스템 대화 시스템 구성 대화 관리 개발 방법 대화 시스템 개발에서 어려운 점
  3. 3. 네이버에서 대화 시스템 2012년 링크앱 이후, 현재까지 대화 시스템 개발 진행
  4. 4. 네이버에서 대화 시스템 검색 / QA 자연어처리 (자연어 이해 + 대화 관리 + 자연어 생성) 음성 인식 음성 합성
  5. 5. 대화 시스템
  6. 6. 대화 시스템 자연어로 사람과 대화하는 시스템 사용자: 인터스텔라 알려줘 시스템: 영화 인터스텔라는 … 사용자: 감독은? 시스템: 인터스텔라 감독은 … 사용자 주도 시스템: 무엇을 도와드릴까요? 사용자: 제주 가는 비행기 있나요? 시스템: 언제 출발하시나요? 사용자: 금요일 오전 시스템 주도
  7. 7. 대화 시스템 대화 시스템 = QA 시스템 + 채팅 시스템 + … 사용자: 심심해 시스템: 심심할 땐 영화죠~ 사용자: 인터스텔라 알려줘 시스템: 영화 인터스텔라는 … 사용자: 감독은? 시스템: 인터스텔라 감독은 … 대화 시스템 특징 = 대화 문맥
  8. 8. 대화 시스템 사례 – PC/스마트폰용 Apple Siri (2011년 10월) 삼성 S-voice (2012년 5월) Google Now (2012년 7월) 네이버 Link (2012년 11월) MS Cortana (2014년 4월)
  9. 9. 대화 시스템 사례 – 제품 Amazon echo SoftBank pepper Jibo CogniToys Musio Emospark
  10. 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. 11. 대화 시스템 사례 – 학계 Let’s Go – 버스 안내 시스템 (CMU) Communicator – 비행기/호텔/렌터카 안내 시스템 (Colorado Univ.) Jupiter – 날씨 안내 시스템 (MIT) POSSDS-EPG – TV 방송 안내 시스템 (POSTECH) ITSPOKE –교육 시스템 (Pittsburgh Univ.)
  12. 12. 대화 시스템 구성
  13. 13. 대화 시스템 구성 음성 인식 대화 관리 자연어 생성음성 합성 검색 자연어 이해 사용자 입력 (Speech) 사용자 입력 (Text) 시스템 발화 (Speech) 시스템 발화 (Text) 사용자 입력 (Semantics) 시스템 발화 (Semantics)
  14. 14. 음성 인식 사용자 음성 입력을 텍스트로 변환 음성 인식 [사용자 음성] 제주 가는 비행기 있습니까? [음성 인식 결과 문장] 1. 제주 가는 비행기 … 2. 대구 가는 비행기 …
  15. 15. 자연어 이해 자연어 문장을 의미 표현으로 변환 자연어 이해 [자연어 문장] 제주 가는 비행기 있습니까? 의미표현 Event 비행기 안내 도구 비행기 출발지 ? 도착지 제주 출발날짜 ? 출발시간 ? 문장유형 Y/N 질문
  16. 16. 대화 관리 시스템 발화 정보 생성 대화 관리 [발화 정보] 요청항목: 출발날짜 의미표현 Event 비행기 안내 도구 비행기 출발지 ? 도착지 제주 출발날짜 ? 출발시간 ? 문장유형 Y/N 질문
  17. 17. 자연어 생성 및 음성 합성 자연어 생성: 발화 정보로부터 자연어 문장 생성 자연어 생성 [발화 정보] 요청항목: 출발날짜 [자연어 문장] 언제 출발하세요? 음성 합성: 자연어 문장의 음성 생성 음성 합성 [자연어 문장] 언제 출발하세요? [음성 문장] 언제 출발하세요?
  18. 18. 대화 시스템 구성 음성 인식 대화 관리 자연어 생성음성 합성 검색 자연어 이해 사용자 입력 (Speech) 사용자 입력 (Text) 시스템 발화 (Speech) 시스템 발화 (Text) 사용자 입력 (Semantics) 시스템 발화 (Semantics)
  19. 19. 대화 관리 모듈 개발
  20. 20. 주요 고려 사항 문맥 대화 문맥을 어떻게 저장하고, 활용하나? 음성 N-개 음성 인식 결과를 어떻게 처리하나?
  21. 21. 대화 문맥 사용자: 걸스데이 사용자: 소속사는? 사용자: 민아 사용자: 인터스텔라 사용자: 감독은? 사용자: 파리 날씨 사용자: 베를린은? 사용자: 관객수는? Turn Value 1 걸스데이 2 소속사 3 민아 4 인터스텔라 5 감독 6 파리 6 날씨 7 베를린 8 관객수 대화 문맥 DB
  22. 22. 대화 문맥 활용 – 생략 복원 사용자: 걸스데이 사용자: 소속사는? 사용자: 민아 사용자: 인터스텔라 사용자: 감독은? 사용자: 파리 날씨 사용자: 베를린은? 사용자: 관객수는? Turn Value 1 걸스데이 2 소속사 3 민아 4 인터스텔라 5 감독 6 파리 6 날씨 7 베를린 8 관객수 대화 문맥 DB
  23. 23. 대화 문맥 활용 – 중의성 해결 사용자: 걸스데이 사용자: 소속사는? 사용자: 민아 사용자: 인터스텔라 사용자: 감독은? 사용자: 파리 날씨 사용자: 베를린은? 사용자: 관객수는? Turn Value 1 걸스데이 2 소속사 3 민아 4 인터스텔라 5 감독 6 파리 6 날씨 7 베를린 8 관객수 대화 문맥 DB
  24. 24. 음성 인식 결과 처리 음성 인식기 [사용자 음성] 김현아 검색해줘 [음성 인식 결과] 1. 김연아 검색해줘 2. 김현아 검색해줘 3. 김연아 전화해줘 4. …
  25. 25. 대화 관리 모듈 구성 생략복원도메인 판단 대화 흐름 관리대화 문맥 관리 검색 관리자중의성 해결 NLU 분석 결과 시스템 발화 내용 예외 처리발화 생성 …
  26. 26. 도메인 판단 사용자: 황진이 시스템: 인물 황진이? 드라마 황진이? 영화 황진이? Dialogue Simulator +
  27. 27. 생략 복원 사용자: 인터스텔라 사용자: 감독은?  인터스텔라 감독은? 사용자: 파리 날씨 사용자: 베를린은? 사용자: 관객수는?  인터스텔라 관객수는? 사용자: 나이는?  인터스텔라 감독 나이는? 검색 질의 로그 +
  28. 28. 중의성 해결 사용자: 걸스데이 사용자: 소속사 사용자: 인터스텔라 사용자: 감독은? 사용자: 민아  걸스데이 민아
  29. 29. 음성 인식 처리 가장 좋은 1개만 이용 상위 n 개 후보 이용  강화 학습 기반 방법 • 시스템 주도 대화 • 사용자 주도 대화
  30. 30. 대화 관리 개발 방법 규칙 기반 접근 방법 • Finite State Automata(FSA) 이용하는 방법 • Frame 이용하는 방법 • Agenda 기반 방법 • 네이버 접근 방법 데이터 기반 접근 방법 • 강화 학습 기반 방법
  31. 31. FSA 이용하는 방법 FSA로 대화 문맥 및 순서 표현 도착지 요청 출발 시간 요청 출발지 요청 제주도 충주 16:00 제주도 출발 시간 요청 출발지 요청 출발지 요청 출발지 요청 부산 10:00 16:00 17:00 09:00 제주도 부산 16:00 제주도 서울 16:00서울 충주 부산
  32. 32. FSA 이용하는 방법 도착지 요청 출발 시간 요청 정보 제공 출발지 요청 정보 제공 지명 날짜/ 시간 지명 어디에 가세요? 언제 출발하세요? 어디에서 출발하세요? 비행기는 … 가 있습니다. 도착지 = ? 출발 날짜 = ? 출발 시간 = ? 출발지 = ?
  33. 33. Frame 이용하는 방법 시스템 주도형 대화 Frame 도착지 = 제주도 (우선순위 1) 출발 날짜 = (우선순위 2) 출발 시간 = (우선순위 3) 출발지 = (우선순위 4) 시스템: 어디에 가세요? 사용자: 제주도 시스템: 언제 출발하세요? 사용자: 금요일 오전 김포에서 출발해 Frame 도착지 = 제주도 출발 날짜 = 2015.9.18 출발 시간 = 06:00-12:00 출발지 = 김포
  34. 34. Frame 이용하는 방법 사용자 주도형 대화 Frame 인물그룹 = 걸스데이 사용자: 걸스데이 시스템: 걸스데이 정보입니다. … 사용자: 소속사는? 시스템: 걸스데이 소속사는 … Frame 인물그룹 = 걸스데이 요청항목 = 소속사
  35. 35. Agenda 기반 방법 – CMU RavenClaw
  36. 36. 네이버 대화 관리 모듈 Turn Value 1 걸스데이 2 소속사 3 민아 4 인터스텔라 5 감독 6 파리 대화 문맥 DB (사용자/시스템 발화, 시간, 검색 결과 … ) + A Dialog Flow Graph ( A  B if … ) B
  37. 37. 강화 학습을 이용하는 방법 supervised learning • 시스템에게 문제와 정답 쌍 제공 unsupervised learning • 시스템에게 문제만 제공 reinforcement learning (강화 학습) • 시스템에게 문제 제공하고, 시스템 결정에 점수 부여
  38. 38. 강화 학습 장기 두는 시스템에 적용한다면.. • 시스템이 이기면, 시스템에게 1점 부여 • 시스템이 지면, 시스템에게 -1 점 부여 대화 시스템에 적용한다면.. • 사용자 목적 달성에 성공하면 1점 • 사용자 목적 달성에 실패하면 -1 점
  39. 39. 강화 학습 기반 방법 (Fully Observable) Markov Decision Process (MDP) • 사용자 입력이 명확한 경우  1-best 입력 Partially Observable MDP (POMDP) • 사용자 입력이 모호한 경우  n-best 입력
  40. 40. MDP 기반 방법 도착지 = ? 출발지 = ? 출발 날짜 = ? 출발 시간 = ? 도착지 = 제주 출발지 = ? 출발 날짜 = ? 출발 시간 = ? 사용자: 제주 시스템: 어디 가세요? s s 시스템: ? a a u s: state a: action u: user
  41. 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
  42. 42. 대화 시스템 개발에서 어려운 점
  43. 43. 개발 관점에서 어려운 점 무슨 기능이 필요한가? • 데모 시스템  기능 추가  데모 개선  기능 추가 …
  44. 44. 평가 관점에서 어려운 점 어떻게 평가 하나?  수동 평가 • Regression Test
  45. 45. Q&A
  46. 46. Thank You

×