[222]대화 시스템 서비스 동향 및...

46
대화 시스템 서비스 동향 및 개발 방법 서희철 NAVER 자연어처리연구실

Upload: naver-d2

Post on 16-Apr-2017

7.493 views

Category:

Technology


1 download

TRANSCRIPT

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

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

서희철 NAVER 자연어처리연구실

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

contents

네이버에서 대화 시스템

대화 시스템

대화 시스템 구성

대화 관리 개발 방법

대화 시스템 개발에서 어려운 점

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

네이버에서 대화 시스템

2012년 링크앱 이후, 현재까지 대화 시스템 개발 진행

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

네이버에서 대화 시스템

검색 / QA 자연어처리 (자연어 이해 + 대화 관리 + 자연어 생성) 음성 인식 음성 합성

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

대화 시스템

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

대화 시스템

자연어로 사람과 대화하는 시스템

사용자: 인터스텔라 알려줘

시스템: 영화 인터스텔라는 …

사용자: 감독은?

시스템: 인터스텔라 감독은 …

사용자 주도

시스템: 무엇을 도와드릴까요?

사용자: 제주 가는 비행기 있나요?

시스템: 언제 출발하시나요?

사용자: 금요일 오전

시스템 주도

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

대화 시스템

대화 시스템 =

QA 시스템 + 채팅 시스템 + …

사용자: 심심해

시스템: 심심할 땐 영화죠~

사용자: 인터스텔라 알려줘

시스템: 영화 인터스텔라는 …

사용자: 감독은?

시스템: 인터스텔라 감독은 …

대화 시스템 특징 = 대화 문맥

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

대화 시스템 사례 – PC/스마트폰용

Apple Siri (2011년 10월)

삼성 S-voice (2012년 5월)

Google Now (2012년 7월)

네이버 Link (2012년 11월)

MS Cortana (2014년 4월)

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

대화 시스템 사례 – 제품

Amazon echo

SoftBank pepper

Jibo

CogniToys

Musio

Emospark

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

대화 시스템 사례 - Honda Townsurfer

Situated spoken interaction in a car

참조: Teruhisa Misu et al, “Situated Language Understanding at 25 Miles per Hour (= 40km/h)”, SigDial 2014

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

대화 시스템 사례 – 학계

Let’s Go – 버스 안내 시스템 (CMU)

Communicator – 비행기/호텔/렌터카 안내 시스템 (Colorado Univ.)

Jupiter – 날씨 안내 시스템 (MIT)

POSSDS-EPG – TV 방송 안내 시스템 (POSTECH)

ITSPOKE –교육 시스템 (Pittsburgh Univ.)

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

대화 시스템 구성

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

대화 시스템 구성

음성 인식

대화 관리

자연어 생성 음성 합성

검색

자연어 이해

사용자 입력 (Speech)

사용자 입력 (Text)

시스템 발화 (Speech)

시스템 발화 (Text)

사용자 입력 (Semantics)

시스템 발화 (Semantics)

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

음성 인식

사용자 음성 입력을 텍스트로 변환

음성 인식 [사용자 음성]

제주 가는 비행기 있습니까?

[음성 인식 결과 문장]

1. 제주 가는 비행기 …

2. 대구 가는 비행기 …

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

자연어 이해

자연어 문장을 의미 표현으로 변환

자연어 이해 [자연어 문장]

제주 가는 비행기 있습니까?

의미표현

Event 비행기 안내

도구 비행기

출발지 ?

도착지 제주

출발날짜 ?

출발시간 ?

문장유형 Y/N 질문

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

대화 관리

시스템 발화 정보 생성

대화 관리 [발화 정보]

요청항목: 출발날짜

의미표현

Event 비행기 안내

도구 비행기

출발지 ?

도착지 제주

출발날짜 ?

출발시간 ?

문장유형 Y/N 질문

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

자연어 생성 및 음성 합성

자연어 생성: 발화 정보로부터 자연어 문장 생성

자연어 생성 [발화 정보]

요청항목: 출발날짜

[자연어 문장]

언제 출발하세요?

음성 합성: 자연어 문장의 음성 생성

음성 합성 [자연어 문장]

언제 출발하세요?

[음성 문장]

언제 출발하세요?

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

대화 시스템 구성

음성 인식

대화 관리

자연어 생성 음성 합성

검색

자연어 이해

사용자 입력 (Speech)

사용자 입력 (Text)

시스템 발화 (Speech)

시스템 발화 (Text)

사용자 입력 (Semantics)

시스템 발화 (Semantics)

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

대화 관리 모듈 개발

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

주요 고려 사항

문맥

대화 문맥을 어떻게 저장하고, 활용하나?

음성

N-개 음성 인식 결과를 어떻게 처리하나?

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

대화 문맥

사용자: 걸스데이 사용자: 소속사는? 사용자: 민아 사용자: 인터스텔라 사용자: 감독은? 사용자: 파리 날씨 사용자: 베를린은? 사용자: 관객수는?

Turn Value

1 걸스데이

2 소속사

3 민아

4 인터스텔라

5 감독

6 파리

6 날씨

7 베를린

8 관객수

대화 문맥 DB

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

대화 문맥 활용 – 생략 복원

사용자: 걸스데이 사용자: 소속사는? 사용자: 민아 사용자: 인터스텔라 사용자: 감독은? 사용자: 파리 날씨 사용자: 베를린은? 사용자: 관객수는?

Turn Value

1 걸스데이

2 소속사

3 민아

4 인터스텔라

5 감독

6 파리

6 날씨

7 베를린

8 관객수

대화 문맥 DB

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

대화 문맥 활용 – 중의성 해결

사용자: 걸스데이 사용자: 소속사는? 사용자: 민아 사용자: 인터스텔라 사용자: 감독은? 사용자: 파리 날씨 사용자: 베를린은? 사용자: 관객수는?

Turn Value

1 걸스데이

2 소속사

3 민아

4 인터스텔라

5 감독

6 파리

6 날씨

7 베를린

8 관객수

대화 문맥 DB

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

음성 인식 결과 처리

음성 인식기 [사용자 음성]

김현아 검색해줘

[음성 인식 결과]

1. 김연아 검색해줘

2. 김현아 검색해줘

3. 김연아 전화해줘

4. …

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

대화 관리 모듈 구성

생략복원 도메인 판단

대화 흐름 관리 대화 문맥 관리

검색 관리자 중의성 해결 NLU

분석 결과 시스템

발화 내용

예외 처리 발화 생성

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

도메인 판단

사용자: 황진이

시스템: 인물 황진이?

드라마 황진이?

영화 황진이?

Dialogue Simulator

+

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

생략 복원

사용자: 인터스텔라 사용자: 감독은? 인터스텔라 감독은? 사용자: 파리 날씨 사용자: 베를린은? 사용자: 관객수는? 인터스텔라 관객수는? 사용자: 나이는? 인터스텔라 감독 나이는?

검색 질의 로그

+

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

중의성 해결

사용자: 걸스데이

사용자: 소속사

사용자: 인터스텔라 사용자: 감독은?

사용자: 민아

걸스데이 민아

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

음성 인식 처리

가장 좋은 1개만 이용

상위 n 개 후보 이용 강화 학습 기반 방법

• 시스템 주도 대화

• 사용자 주도 대화

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

대화 관리 개발 방법

규칙 기반 접근 방법 • Finite State Automata(FSA) 이용하는 방법

• Frame 이용하는 방법

• Agenda 기반 방법

• 네이버 접근 방법

데이터 기반 접근 방법 • 강화 학습 기반 방법

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

FSA 이용하는 방법

FSA로 대화 문맥 및 순서 표현

도착지 요청

출발 시간 요청

출발지 요청

제주도 충주

16:00

제주도

출발 시간 요청

출발지 요청

출발지 요청

출발지 요청

부산

10:00

16:00

17:00

09:00

제주도 부산

16:00

제주도 서울

16:00 서울

충주

부산

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

FSA 이용하는 방법

도착지 요청

출발 시간 요청

정보 제공 출발지 요청

정보 제공 지명

날짜/ 시간 지명

어디에 가세요? 언제 출발하세요? 어디에서

출발하세요? 비행기는 … 가

있습니다.

도착지 = ?

출발 날짜 = ?

출발 시간 = ?

출발지 = ?

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

Frame 이용하는 방법

시스템 주도형 대화

Frame

도착지 = 제주도 (우선순위 1)

출발 날짜 = (우선순위 2)

출발 시간 = (우선순위 3)

출발지 = (우선순위 4)

시스템: 어디에 가세요?

사용자: 제주도

시스템: 언제 출발하세요?

사용자: 금요일 오전 김포에서 출발해

Frame

도착지 = 제주도

출발 날짜 = 2015.9.18

출발 시간 = 06:00-12:00

출발지 = 김포

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

Frame 이용하는 방법

사용자 주도형 대화

Frame

인물그룹 = 걸스데이

사용자: 걸스데이

시스템: 걸스데이 정보입니다. …

사용자: 소속사는?

시스템: 걸스데이 소속사는 …

Frame

인물그룹 = 걸스데이

요청항목 = 소속사

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

Agenda 기반 방법 – CMU RavenClaw

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

네이버 대화 관리 모듈

Turn Value

1 걸스데이

2 소속사

3 민아

4 인터스텔라

5 감독

6 파리

대화 문맥 DB (사용자/시스템 발화, 시간, 검색 결과 … )

+

A

Dialog Flow Graph ( A B if … )

B

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

강화 학습을 이용하는 방법

supervised learning • 시스템에게 문제와 정답 쌍 제공

unsupervised learning • 시스템에게 문제만 제공

reinforcement learning (강화 학습) • 시스템에게 문제 제공하고, 시스템 결정에 점수 부여

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

강화 학습

장기 두는 시스템에 적용한다면.. • 시스템이 이기면, 시스템에게 1점 부여 • 시스템이 지면, 시스템에게 -1 점 부여

대화 시스템에 적용한다면.. • 사용자 목적 달성에 성공하면 1점

• 사용자 목적 달성에 실패하면 -1 점

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

강화 학습 기반 방법

(Fully Observable) Markov Decision Process (MDP)

• 사용자 입력이 명확한 경우 1-best 입력

Partially Observable MDP (POMDP)

• 사용자 입력이 모호한 경우 n-best 입력

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

MDP 기반 방법

도착지 = ? 출발지 = ? 출발 날짜 = ? 출발 시간 = ?

도착지 = 제주 출발지 = ? 출발 날짜 = ? 출발 시간 = ?

사용자: 제주 시스템: 어디 가세요?

s s

시스템: ?

a

a

u s: state a: action u: user

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

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

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

대화 시스템 개발에서 어려운 점

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

개발 관점에서 어려운 점

무슨 기능이 필요한가?

• 데모 시스템 기능 추가 데모 개선 기능 추가 …

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

평가 관점에서 어려운 점

어떻게 평가 하나? 수동 평가

• Regression Test

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

Q&A

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

Thank You