4. ⓒ NAVER Connect Foundation
1.Stage 3 : DST 경연 과정
1.1 About Dialogue State Tracking
1.2 경연에 사용했던 모델, 전략 및 성과
1.2.1 DST Model 분류 : SUMBT, TRADE, SOM-DST
1.2.2 검증전략 : Domain Transition을 고려한 검증전략
1.2.3 전략 1 : Model Architecture
1.2.4 전략 2 : Data Input
1.2.5 전략 3 : Generation Output
1.2.6 전략 4 : Hard Voting Ensemble
1.3 Wrap-Up
1.3.1 느낀 점
1.3.2 아쉬웠던 점
4
2.Stage 3+𝜶𝜶 : KLUE 에의 적용 과정
2.1 KLUE – WOS Dataset 벤치마크 스코어 도출
2.1.1 KLUE 데이터셋 공개 및 후속작업 논의
2.1.2 KLUE 데이터셋 소개 및 DST 벤치마크
2.1.3 DST 모델 – PLM 모델별 벤치마크 스코어 도출
2.2 KLUE – WOS Dataset 개선
2.2.1 Wos-v1 Dataset EDA : Ontology & Dialogues
2.2.2 Contributing : Issue 제기 및 Pull Request
5. ⓒ NAVER Connect Foundation
Chapter 1
Stage 3:
DST 경연 과정
5
1-1. About Dialogue State Tracking
6. ⓒ NAVER Connect Foundation
Part l. DST 경연과정
6
1.1 Dialogue State Tracking
<slot-value pairs>
User System
“안녕하세요. 서울 서쪽에 한식당을 예약하고 싶은데요.”
“안녕하세요. 원하시는 가격대가 있으실까요?”
“가격은 상관없어요. 야외석이 있고,
주차장이 있으면 좋겠네요.”
“쓰리플러스가 좋네요.
일요일 18:28에 두 명 예약해주세요.”
“식스타임즈와 쓰리플러스가 있습니다.
어디로 하시겠어요?”
식당-지역-서울 서쪽 ▶ 식당-종류-한식당 ▶ 식당-가격대-don’t care ▶ 식당-야외석 유무-yes ▶
식당-주차 가능-yes ▶ 식당-이름-쓰리플러스 ▶ 식당-예약 요일-일요일 ▶ 식당-예약시간-18:28 ▶
식당-예약 명수-2
Dialogue State Tracking?
7. ⓒ NAVER Connect Foundation 7
1.1 Dialogue State Tracking
Public LB 기준 JGA 0.8088 – 2위
Private LB 기준 JGA 0.7154 – 2위
→ 최종 2위
Result
Part l. DST 경연과정
8. ⓒ NAVER Connect Foundation
Chapter 1
Stage 3:
DST 경연 과정
8
1-2. 경연에 사용했던 모델, 전략 및 성과
9. ⓒ NAVER Connect Foundation 9
1.2.1 DST Model 분류
Ontology-based DST
(Classification)
Open-vocab based DST
(Generation / Extraction)
SUMBT
TRADE,
SOM-DST
Taxonomy of DST models
Part l. DST 경연과정
10. ⓒ NAVER Connect Foundation 10
Ontology
: 각 Slot j가 가질 수 있는 Value의 후보군을 정의해둔 정보
Ontology-based model
- Ontology가 미리 정의되어 있다.
- 모든 Value는 “Ontology 안에서만 등장한다”는 가정을 한다.
- 일종의 Prior Knowledge로 활용할 수 있다!
1.2.1 DST Model 분류
숙소-가격대
저렴
적당
비싼
none
dontcare
숙소-주차 가능
yes
no
none
dontcare
Ontology
<Slot> <Values>
Ontology-based DST (Classification)
utterance ontology Dialogue State
Part l. DST 경연과정
11. ⓒ NAVER Connect Foundation 11
1.2.1 DST Model 분류
Open-vocab
: Ontology의 존재를 가정하지 않는다.
Open-vocab based model
- Ontology Volume이 증가해도 복잡도가 증가하지 않는다.
- Unseen value를 Tracking하기 용이하다.
- Value에 대한 확률적인 표현을 Generation 혹은
Extraction(Like MRC)을 통해 한다.
Open-vocab based DST (Generation / Extraction)
친구를 만나느라 샵샵샵,
술판오브디스코,
…
Vocabulary
쓰리플러스,
어차피자,
…
Ontology
utterance ontology Dialogue State
Part l. DST 경연과정
12. ⓒ NAVER Connect Foundation 12
1.2.2 전략
Overall
TRADE
모델 구조 개선
SOM-DST
구현
ENSEMBLE
전략
Part l. DST 경연과정
13. ⓒ NAVER Connect Foundation 13
Part l. DST 경연과정
1.2.2 검증전략 : Domain Transition을 고려한 검증전략
Domain 비율을 고려한 Validation Set 생성
Single
Domain
Multi
Domain
(# 2)
Multi
Domain
(# 3)
Train Set
(# 7,000)
23%
44%
32%
Single
Domain
Multi
Domain
(# 2)
Multi
Domain
(# 3)
23%
44%
32%
Single
Domain
Multi
Domain
(# 2)
Multi
Domain
(# 3)
33%
33%
33%
Train/Validation
Split (10%)
Validation Set
(# 700)
균등분할 Domain 비율을 고려한 분할
14. ⓒ NAVER Connect Foundation 14
Part l. DST 경연과정
1.2.3 전략 1 : Model Architecture
Encoder 부분의 구조 변경: BiGRU → Pretrained BERT Encoder
utterances
subword
BiGRU BERT
Original TRADE New TRADE
JGA 기준 0.02 이상의 Score 향상
15. ⓒ NAVER Connect Foundation 15
Part l. DST 경연과정
1.2.3 전략 1 : Model Architecture
Gate 개수 변경 : 3 gates → 5 gates
Boolean type이 많은 WoS dataset의 특징을 고려하여,
“yes” 와 “no”를 추가한 5개의 gate로 변경하여 적용함.
JGA 기준 0.7321 → 0.7359 (0.0038↑)
16. ⓒ NAVER Connect Foundation 16
Part l. DST 경연과정
1.2.4 전략 2 : Data Input
segment_id 추가: Context와 Current text의 구분
Pretrained BERT Encoder
Context Current
[0, 0, 0, 0, …, 0]
기존 segment_id
[0, 0, 0, 0, …, 0] [1, 1, 1, 1, …, 1]
새로운 segment_id
JGA 기준 0.7150 → 0.7265 (0.0115↑)
17. ⓒ NAVER Connect Foundation
Pretrained BERT encoder
동쪽
17
Part l. DST 경연과정
Context Random Masking : Task Difficulty ↑
Current utterance
[SEP]
##에
[MASK]
서울
[CLS] …
Dialogue Context 중 임의로 n개 mask
1.2.4 전략 2 : Data Input
JGA 기준 0.7265 → 0.7359 (0.0094↑)
18. ⓒ NAVER Connect Foundation 18
Part l. DST 경연과정
System, User 발화 구분
특수기호 ‘#’ 과 ‘*’ 을 이용해 시스템 발화와 유저 발화 구분
SYS UTTERANCE
[SEP] …
USER
UTTERANCE
[SEP] SYS UTTERANCE
[SEP]
SYS UTTERANCE
# …
USER
UTTERANCE
* SYS UTTERANCE
#
1.2.4 전략 2 : Data Input
JGA 기준 0.7359 → 0.7425 (0.0066↑)
19. ⓒ NAVER Connect Foundation 19
Part l. DST 경연과정
1.2.5 전략 3 : Generation Output
Generation Output : Post-Processing
<Token Decoding 과정에서 발생하는 문제>
Regex 및 replace 를 사용하여 후처리 및 보정
JGA 기준 0.7106 → 0.7150 (0.0044↑)
20. ⓒ NAVER Connect Foundation 20
Hard Voting with Model Predictions
1.2.6 전략 4: Hard Voting Ensemble
k=2
k=3
k=4
k=5
k=7
k=8
SOM-DST
prev.
Best k=2 k=3
k=4 k=7 k=8
prev.
Best k=2
k=4 k=5 k=8
TRADE Example
Final Prediction
['관광-지역-서울 동쪽, '숙소-이름-행복 호텔', '숙소-종류-호텔']
['관광-지역-서울 동쪽, '숙소-이름-행복 호텔', '숙소-종류-호텔']
['관광-지역-서울 동쪽, '숙소-이름-행복 호텔', '숙소-종류-호텔']
['관광-지역-서울 동쪽, '숙소-이름-행복 호텔', '숙소-종류-호텔']
['관광-지역-서울 동쪽, '숙소-이름-행복 호텔', '숙소-종류-호텔']
9
['관광-지역-서울 남쪽, '숙소-이름-행복 호텔', '숙소-종류-호텔']
['관광-지역-서울 남쪽, '숙소-이름-행복 호텔', '숙소-종류-호텔']
2
Voting
Part l. DST 경연과정
21. ⓒ NAVER Connect Foundation 21
Voting 방식 : 다수결 우선, 혼란스러울 때는 the Wiser the Better.
A = 4
D = 1
B = 3
C = 3
B = 3
C = 3
A = 3
D = 2
W W
if max(count) < 4 :
1.2.6 전략 4: Hard Voting Ensemble Part l. DST 경연과정
22. ⓒ NAVER Connect Foundation 22
1.2.6 전략 4: Hard Voting Ensemble Part l. DST 경연과정
성과
0.7535
0.7665
0.7696
0.7834
0.8001
0.8055
0.8088
0.72
0.73
0.74
0.75
0.76
0.77
0.78
0.79
0.8
0.81
0.82
TRADE SOM-DST TRADE + SOM-DST 9 TRADE + SOM-DST 10 TRADE + SOM-DST 11
single best model ensemble
23. ⓒ NAVER Connect Foundation
Chapter 1
Stage 3:
DST 경연 과정
23
1-3. Wrap-Up
24. ⓒ NAVER Connect Foundation 24
1.3.1 Wrap-Up : 느낀 점
① 팀워크의 중요성
팀원이 3명이긴 했지만 대
회 막바지까지 협업이 굉장
히 잘 되었다.
(기존 모델 발전 + 새로운 모델
구현 등)
소통과정 중에 새로운 아이
디어와 인사이트를 지속적
으로 얻을 수 있었다.
Part l. DST 경연과정
② 새로운 모델의 구현 시도
SOM-DST, Transformer-
DST 등 최신 모델 조사 및
구현
이를 통해 DST 모델 아키텍
처에 대한 이해도가 전반적
으로 높아졌다.
새로운 모델의 아이디어를
기존 모델에 차용하는 등의
방법을 시도할 수 있었다.
25. ⓒ NAVER Connect Foundation 25
1.3.2 Wrap-Up : 아쉬웠던 점 Part l. DST 경연과정
① 인원의 부족
앙상블 시 모델을 추가할수
록 성능이 향상되었으나, K-
Fold를 충분히 하지 못했다.
팀원 전원이 모든 Task를
수행해야 했기 때문에, 분업
이 완벽하게 이루어지지 못
했다.
② Dataset에 기반한 개선
시도 부족
모델의 예측 결과를 바탕으
로 Dataset EDA를 수행한
결과, 다양한 개선 가능성이
존재했었다.
그러나 이를 실제로 모델에
적용시켜보지 못한 아쉬움
이 남았다.
26. ⓒ NAVER Connect Foundation 26
2-1. KLUE – WOS Dataset 벤치마크 스코어 도출
Chapter 2
Stage 3+𝛼𝛼 :
KLUE 에의 적용 과정
27. ⓒ NAVER Connect Foundation
Part ll. KLUE에의 적용 과정
27
2.1.1 KLUE 데이터셋 공개 및 후속작업 논의
2021 / 05 / 21 KLUE 공개
웅성👥👥👤👤👥👥뭐야..👤👤👥👥👥👥
👤👤👥👥👥👥👤👤👥👥 KLUE 공개됐대..
👥👥👥👥👤👤👥👥
뭐야..👤👤👥👥👤👤 👤👤👥👥👤👤👥👥👤👤👤👤👥👥👥👥
👤👤👥👥👤👤👥👥👤👤👥👥👥👥👤👤👥👥웅성웅성..👤👤👥👥
웅성웅성..👤👤👥👥 KLUE가 뭐
야..👤👤👥👥👤👤👥👥👤👤
👥👥👤👤👥👥👥👥👤👤👥👥 👤👤👥👥👤👤
👥👥👥👥👤👤👥👥👤👤👥👥👤👤👥👥
뭐야..👤👤👥👥👤👤
28. ⓒ NAVER Connect Foundation 28
What’s in KLUE ?
2.1.2 KLUE 데이터셋 소개 및 DST 벤치마크 Part ll. KLUE에의 적용 과정
29. ⓒ NAVER Connect Foundation 29
KLUE – WOS dataset & DST Benchmark
2.1.2 KLUE 데이터셋 소개 및 DST 벤치마크 Part ll. KLUE에의 적용 과정
30. ⓒ NAVER Connect Foundation 30
모델별 Benchmark Score
2.1.3 DST 모델 – PLM 모델별 벤치마크 스코어 도출 Part ll. KLUE에의 적용 과정
TRADE
(improved version)
SOM-DST
KLUE/
BERT-base
KLUE/
RoBERTa-base
KLUE/
RoBERTa-large
Test Set
Dev Set
(* Test Set 벤치마크는 KLUE
Leader Board 공개 시
수행할 예정입니다.)
inference
31. ⓒ NAVER Connect Foundation 31
모델별 Benchmark Score
2.1.3 DST 모델 – PLM 모델별 벤치마크 스코어 도출 Part ll. KLUE에의 적용 과정
DST
Model
Pretrained
Language
Model
Epoch
Batch
Size
Learning
Rate
JGA
Slot
F1
TRADE
(improved)
KLUE/
BERT-base
30 4 3e-5 0.6401 0.9521
TRADE
(improved)
KLUE/
RoBERTa-base
30 4 1e-5 0.6311 0.9486
TRADE
(improved)
KLUE/
RoBERTa-large
30 4 1e-5 0.7119 0.9625
SOM-DST
KLUE/
BERT-base
50 16
enc : 4e-5
dec : 1e-4
0.6620 0.9552
SOM-DST
KLUE/
RoBERTa-base
50 16
enc : 4e-5
dec : 1e-4
0.6301 0.9503
SOM-DST
KLUE/
RoBERTa-large
30 4
enc : 1e-5
dec : 1e-4
0.6548 0.9566
32. ⓒ NAVER Connect Foundation 32
모델별 Benchmark Score : Epoch별 JGA 비교
2.1.3 DST 모델 – PLM 모델별 벤치마크 스코어 도출 Part ll. KLUE에의 적용 과정
DST
Model
Pretrained
Language
Model
Epoch JGA
Slot
F1
TRADE
KLUE/
BERT-base
5 0.4899 0.9186
TRADE
KLUE/
RoBERTa-base
5 0.4748 0.9155
TRADE
KLUE/
RoBERTa-large
5 0.5049 0.9211
TRADE
(improved)
KLUE/
BERT-base
5 0.5216 0.9279
TRADE
(improved)
KLUE/
BERT-base
10 0.6220 0.9478
TRADE
(improved)
KLUE/
RoBERTa-base
5 0.5048 0.9227
TRADE
(improved)
KLUE/
RoBERTa-base
10 0.5464 0.9324
TRADE
(improved)
KLUE/
RoBERTa-large
5 0.5100 0.9262
TRADE
(improved)
KLUE/
RoBERTa-large
10 0.5961 0.9411
33. ⓒ NAVER Connect Foundation 33
Benchmark Score 분석 결과
2.1.3 DST 모델 – PLM 모델별 벤치마크 스코어 도출 Part ll. KLUE에의 적용 과정
(* SOM-DST의 경우 RoBERTa-large는
batch_size=4로 동일 선상에서 비교가 어려움.)
14 epoch
34. ⓒ NAVER Connect Foundation 34
2-2. KLUE – WOS Dataset 개선
Chapter 2
Stage 3+𝛼𝛼 :
KLUE 에의 적용 과정
35. ⓒ NAVER Connect Foundation 35
WOS-v1 Dataset(Dev Set)의 문제점 파악
2.2.1 WOS-v1 Dataset EDA : Ontology & Dialogues Part ll. KLUE에의 적용 과정
Ontology Dialogues
1. Mixed Ontologies
2. Wrong Ontologies
3. Simple Mistakes
4. Time/Location
Problems
Dev Set 의 약 11.3%
36. ⓒ NAVER Connect Foundation 36
WOS-v1 Dataset의 문제점 : Ontology – 1. Mixed Ontologies
2.2.1 WOS-v1 Dataset EDA : Ontology & Dialogues Part ll. KLUE에의 적용 과정
[서울중앙성원]
[남산골 한옥 마을]
wos-v1_dev_00091
"안녕하세요? 이럴순없는대
라는 식당을 화요일 7:45에
1명 예약이 가능한가요?"
wos-v1_dev_00770
"네 검색결과 호스텔 제이제이
라는 숙소가 현재 예약 가능한
숙소로 안내됩니다.”
37. ⓒ NAVER Connect Foundation 37
WOS-v1 Dataset의 문제점 : Ontology – 2. Wrong Ontologies
2.2.1 WOS-v1 Dataset EDA : Ontology & Dialogues Part ll. KLUE에의 적용 과정
다중표기 문제
(정식명칭 : “홍대입구역“)
잘못 표기된 라벨
(“동대문역사문화공원역”,
“신도림역”)
38. ⓒ NAVER Connect Foundation 38
WOS-v1 Dataset의 문제점 : Dialogues – 3. Simple Mistakes
2.2.1 WOS-v1 Dataset EDA : Ontology & Dialogues Part ll. KLUE에의 적용 과정
< wos-v1_dev_00593 >
“네 명동역의 위잉키친 조회됩니다. 치킨윙
이 대표 메뉴고, 평점도 좋습니다. 예약 도
와드릴까요?“
“네 그럽시다. 같은 날 같은 인원입니다. 14
시 50분으로 좀 부탁드립니다.”
state: [‘식당-이름-위잉치킨‘]
< wos-v1_dev_00134 >
“말씀하신 조건에 평점 5점의 강남이네 게
스트하우스가 있습니다. 이곳으로 예약도
와드릴까요?”
“네 그럼 일요일부터 2일간 4명으로 예약
부탁합니다.”
state : [‘숙소-이름
-강남이네 게스트 하우스’]
< wos-v1_dev_00020 >
“화요일로 예약완료되셨으며 예약번호
는 YXPD4입니다. 더 필요한 정보 있으
세요?”
“네 예약번호는 말씀주셨고... 자세한
주소도 알려주시구요, 같은 지역에 한식
당도 좀 찾아주실 수 있나요?”
state : [‘식당-지역-서울 중앙‘]
< wos-v1_dev_00020 >
“서울 여행중인데, 적당한 가격대의 에
어비엔비를 알아봐야해서요. 지역은
편한데로 알아봐주세요. 서울내에만
위치하여 있으면 됩니다.”
state : [‘숙소-가격대-저렴‘]
1 오타
3 Missing State
2 띄어쓰기
4 Wrong State
39. ⓒ NAVER Connect Foundation 39
WOS-v1 Dataset의 문제점 : Dialogues – 4. Time/Location Problems
2.2.1 WOS-v1 Dataset EDA : Ontology & Dialogues Part ll. KLUE에의 적용 과정
< wos-v1_dev_00235 >
“가까운 역은 광화문역이며, 도보 2
분 거리에 충무공 이순신 동상이 있
습니다.”
“그럼 숙소가 있는 역에서 광화문역
가려면 중간에 환승 해야하나요?”
state: [‘지하철-출발지-국회의사당역‘,
‘지하철-도착지-광화문역]
< wos-v1_dev_00374 >
“네 여러 곳 조회됩니다. 그 중 여
의나루역에서 도보 2분으로 가까
운 여의도 한강공원은 어떠세요?“
“아 좋아요. 그럼 아까 식당에서 공
원으로 지하철로 갈 수 있나요?”
state: [‘지하철-출발지-건대입구역’,
‘지하철-도착지-여의나루역’]
< wos-v1_dev_00343 >
“그럼 광진구에 끌린닭이라는 치
킨집이 있는데 어떠세요? 가격은
인당 만오천원으로 대표 메뉴는
치즈볼인데 맛있기로 유명한 곳
입니다.“
“좋아요. 곧 출발 할 거니까 9시 50
분으로 2명 예약해주세요.”
state: [‘식당-예약 요일-토요일‘]
< wos-v1_dev_00925 >
“안녕하세요. 찾으시는 조건에 맞
는 곳이 한 곳 있습니다. 종로구
에 있는 투투 모엘인데 예약해드
릴까요?”
“네. 오늘부터 3일 예약 해주세요.”
state: [‘숙소-예약 요일-화요일‘]
장소 유추 문제 시간 유추 문제
1 2
언급한 장소 근처의 지하철역 유추 불가 기준 대화 시점의 부재 :
‘오늘‘이 무슨 요일인지 유추 불가
40. ⓒ NAVER Connect Foundation 40
WOS-v1 Dataset 개선방안 제안
2.2.1 WOS-v1 Dataset EDA : Ontology & Dialogues Part ll. KLUE에의 적용 과정
분류 문제점 개선방안
Ontology
1. Mixed Ontologies 붙어 있는 Ontology 분리하기
2. Wrong Ontologies
다중표기 및 오표기된 명칭 모두
공식 명칭으로 일원화
Dialogues
3. Simple Mistakes
오타, 띄어쓰기 및
잘못된 라벨링 수정/보완
4. Time/Location
Problems
장소 : Knowledge Base 거쳐 메타정보 추가
시간 : 대화 시점에 대한 메타정보 추가
Dev Set Edited Dev Set