5. Voice
Context
인간 기계
Category Value
A a
B b
C c
말이나 글의 의미가 무엇인지 기계가 알 수 있도록 구조화 하는 것
자연어 이해 (Natural Language Understanding, NLU)
비구조 데이터 구조 데이터
Text
6. T타워 근처 스타벅스로 안내해줘
Category Value
DOMAIN NAVIGATION
INTENT SEARCH.ROUTE
ENTITY.BASE_LOC T타워
ENTITY.DISTANCE 근처
ENTITY.DESTINATION 스타벅스
도메인 분류
- Domain Classification/Identification
개체명 추출
- Entity/Slot Recognition/Extraction/Tagging
의도 분류
- Intent/Goal Classification/Identification
NLU Frame Representation
7. 콘텐츠 정보검색 라이프 커머스
Support 25~30
Built-in Domains
music
video
podcast
book
news
...
simpleqa
sports
fortune
finance
dictionary
...
navigation
communication
iot
schedule
...
shopping
delivery
...
10. 뮤직메이트 에서 방탄 소년단 의 FAKE LOVE 틀어 줘
B-SERVICE_NAME O B-SINGER I-SINGER O B-TITLE I-TITLE O O
Category Value
ENTITY.SERVICE_NAME 뮤직메이트
ENTITY.SINGER 방탄 소년단
ENTITY.TITLE FAKE LOVE
12. 규칙 기반의 NLU
정형화된 문장에 대한 정확도 향상
개인화 사전 처리
기계학습 기반의 NLU
입력 오류 극복
처리 문장 커버리지 향상
Hybrid Cascading Architecture
KMA : Korean Morphology Analysis (형태소 분석기)
NER : Named Entity Recognition (개체명 인식)
Rule-based
ML-based
KMA
NER
Pre-Processing NLU
13. Lexico-Semantic Pattern 기반 NLU
Domain Entity Extraction Semantic Parsing Entity Relation Validation Ranking
C-RuleDomain
Rule
System
Dict.
P-RuleUpdate
Dict.
NPC
DB
Entity
Relation DB
NPC : NUGU Personalized Context
System Dict. : Large-scale Static Dict.
Update Dict. : Periodically Updated Dict.
예) 인명, 지역명, 수량, 장르명 등
예) 가수명, 곡명, 방송명 등
예) 연락처, 사용자 지정 디바이스명 등
C-Rule : Constraints Rule
Domain Rule : Lexico-Semantic Pattern (Entity + P-Rule + C-Rule)
P-Rule : Part Rule
$ROOT $SINGER $c:sing $SONG $c:music $p:play_music
$p:play_music 틀/V VX | 들/V VX | 재생/N ...
$c:music 노래 | 음악 | 뮤직
14. $SINGER 아이유
$c:sing 부르/V ETM
$SONG 사랑했지만
$c:music 노래
$p:play_music 틀/V VX
$ROOT $SINGER $c:sing $SONG $c:music $p:play_music
Category Value
DOMAIN MUSIC
INTENT PLAY.MUSIC
ENTITY.SINGER 아이유
Lexico-Semantic Pattern 기반 NLU
아이유가 부른 사랑했지만 노래 좀 틀어줘
15. Data 수집
• Grammar-generated
• In-house data collections
개발 단계
Pre-Beta Model
• Test Cases
• Closed-beta Logs
테스트 단계
Beta Model
• Real Customer Logs
서비스 단계
Live Model
도착 예정 시간 알려줘 언제 도착하는지 말해봐 다와가나
18. NLU 입력은 오류가 항상 존재한다
유형 원문 실제 입력
띄어쓰기 오류
하나은행 수원 서문지점으로 가자
엔 팔 때 환율 가격 알려줘
하나은행 수원서 문지점으로 가자
엔팔 때 환율 가격 알려줘
음성인식 오류
노래 꺼줘
싸이의 I LUV IT 틀어줘
노래 꺼점
싸이의 I LOVE IT 틀어줘
형태소 오류
11번가에서 죽/NNG(일반명사) 주문해줘
블랙핑크 뚜두뚜두/NNP(고유명사) 틀어줘
11번가에서 죽/MAG(부사) 주문해줘
블랙핑크 뚜두뚜/NNP 두/JX 틀어줘
한국어에서 데이터 단위(Token)은 음절/형태소/어절의 조합이 중요하다
19. 서울에서 부산까지 고속도로 우선으로 얼마나 걸려
Intent
ask.info.left_time
Entity
LCP_CITY@DEP
Entity
LCP_CITY@DEST
Domain
navigation
Entity
SEARCH_TYPE.EXPRESS@SEARCH_TYPE
21. NLU 개발은 NLU Tag 정의부터 시작이다
문장 Design (A안) Design (B안) Design (C안)
에어컨 켜줘 turn_on.aircon turn_on<OP_DEVICE=에어컨> turn_on<OP_DEVICE_AIRCON=에어컨>
에어컨 꺼줘 turn_off.aircon turn_off<OP_DEVICE=에어컨> turn_off<OP_DEVICE_AIRCON=에어컨>
자동차 시동 켜줘 turn_on.car turn_on<OP_DEVICE=자동차> turn_on<OP_DEVICE_CAR=자동차>
자동차 시동 꺼줘 turn_off.car turn_off<OP_DEVICE=자동차> turn_off<OP_DEVICE_CAR=자동차>
개발자의 고민 : 어느 방식이 가장 좋을까?
22. `17년 1Q : 피자/치킨 배달 서비스 출시
`18년 2Q : 스타벅스 주문 출시
`18년 3Q: 11번가 주문 출시
음료수 주문해줘 : food_delivery(request.delivery.order<FOOD= 음료수>)
커피 주문해줘 : food_delivery(request.delivery.order<FOOD_TYPE=커피>)
생수 주문해줘 : shopping(request.order<PRODUCT= 생수>)
NLU 정의는 개발 과정에서 변경될 수도 있다
23. MUSIC VIDEO PODCAST WEATHER IOT...
“아이유 노래 찾아줘"
NLU 개발 과정에서 가장 어려운 것은 도메인 중의성(Domain Ambiguity)을 해소하는 것이다
MUSIC
Intent
Classifier
Entity
Extraction
24. “아이유 찾아줘“???
NUGU 스피커 - 뮤직메이트에서 아이유 노래 검색
BTV x NUGU - BTV에서 아이유 나온 예능 찾아줘
KIDS폰 - 위키에서 아이유에 대해서 알려줘
Tmap x NUGU - 티맵에서 아이유 찾아줘
1) Domain Invocation Word (Open NLU)
- Alexa : ASK NETFLIX, PLAY MICHAEL JACKSON
- NUGU : 비스타 커텐 열어줘
2) No Domain Invocation Word (Built-in NLU)
- N-best & Re-ranking + Top Query 자질
25. 기계학습은 모르는 것을 모른다고 하는 것이 제일 어렵다
Out-of-Domain In-Domain
Out-of-Service
In-Service
Rejection Types
- Out-of-Domain (OOD) : 미지원 영역 (예, 택시 호출)
- Out-of-Service (OOS) : 지원 영역이지만 미지원 기능 (예, 카톡 읽기)
26. Shu, L. et al., "DOC: Deep Open Classification of Text Documents", EMNLP-2017, 2017
Sigmoid Func. Normalize Threshold filtering
Estimated score
Estimation
probability
(sum=1)
Classifier
Predicted
label
n-best
27. Training
Training Corpus
Built-in dictionary
In-Domain
1-Domain Anomaly Detection
OOD
OOD
온도가 몇 도야
싼 주유소로 가자
BTV 1박 2일 재생
아이유 노래 틀어줘
Classification
Model
Contents Words Detection
온도, 기온, 날씨, 강수량 등
Feature Extraction
Language Modeling
p(온도|BOS) = 0.xxx
p(가|온도,BOS) = 0.xxx
p(몇|온도, 가) = 0.xxx
…
Anomaly DetectionInput Sentence Feature Extraction
Domain Entity Detection
Build-in Entity
User Entity
28. Still Ambiguity & Context ...
Chitchat ...
Less Data, Good Performance ...