(1๊ฐ•) MRC Intro & Python Basics

Course Objective

์ด๋Ÿฌํ•œ ์งˆ๋ฌธ์— ๋Œ€ํ•ด ๋‹ต์„ ์ž˜ ๋‹ต๋ณ€ํ•˜๋Š” ํŒ€์ด ์ตœ์ข… ์šฐ์Šนํ•˜๊ฒŒ ๋œ๋‹ค!

1.Introduction to MRC

์ด๋ฒˆ ์„น์…˜์—์„œ๋Š” ์ง€๋ฌธ์ด ์ฃผ์–ด์ง€๊ณ  ์ด์— ๋Œ€ํ•œ ์งˆ๋ฌธ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๋‹ต์„ ํ•˜๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด๋ณธ๋‹ค. ์ดํ›„์—๋Š” ์ง€๋ฌธ์ด ๋ฐฉ๋Œ€ํ•˜๊ฒŒ ์ฃผ์–ด์ง€๊ฑฐ๋‚˜, ์ฃผ์–ด์ง€์ง€ ์•Š์„ ๋•Œ ๋‹ต์„ ํ•˜๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“ค ๊ฒƒ์ž„

MRC์˜ ์ข…๋ฅ˜

1. Extractive Answer Datasets

  • ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์ด ํ•ญ์ƒ ์ฃผ์–ด์ง„ ์ง€๋ฌธ์— ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.

  • SQuAD, KorQuAD, NewsQA ๋“ฑ์ด ์žˆ๋‹ค.

2. Descriptive / Narrative Answer Datasets

  • ๋‹ต์ด ์ง€๋ฌธ ๋‚ด์—์„œ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์งˆ๋ฌธ์„ ๋ณด๊ณ  ์ƒ์„ฑ๋œ ํ˜•ํƒœ

  • MS MARCO, Narrative QA

3. Multiple-choice Datasets

  • ์งˆ์˜์— ๋Œ€ํ•œ ๋‹ต์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ answer candidates ์ค‘ ํ•˜๋‚˜๋กœ ๊ณ ๋ฅด๋Š” ํ˜•ํƒœ

  • MCTest

MRC Datasets

  • ๋งŽ์€ ์—ฐ๊ตฌ๊ฐ€ ์‹œ์ž‘๋˜๋ฉด์„œ 18๋…„๋„ ๋ถ€ํ„ฐ๋Š” ๋งŽ์€ ๋ฐ์ดํ„ฐ์…‹์ด ๊ณต๊ฐœ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

Challenge

MRC์—์„œ ์–ด๋ ค์šด ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ๋ชจ๋ธ ์ž…์žฅ์—์„œ๋Š” P1์— ๋Œ€ํ•œ ๋‹ต๋ณ€์€ ์ฐพ๊ธฐ๊ฐ€ ์‰ฝ์ง€๋งŒ P2์— ๋Œ€ํ•œ ๋‹ต๋ณ€์€ ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์งˆ๋ฌธ์— ์กด์žฌํ•˜๋Š” ๋‹จ์–ด๋ฅผ ์ง€๋ฌธ์—์„œ ์ฐพ๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ

  • Coreference๋Š” ์ง€์นญ๋Œ€๋ช…์‚ฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๋ฌธ์žฅ ๋‚ด์—์„œ ๊ทธ๊ฒƒ, ์ €๊ฒƒ์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋ฅผ ์•Œ์•„์•ผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ, ์ง€๋ฌธ๋‚ด์— ๋‹ต๋ณ€์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๋„ MRC์˜ Challenge ์ด๋‹ค.

  • ์‹ค์ œ๋กœ ์ง€๋ฌธ์—์„œ๋Š” ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์—†์ง€๋งŒ, ์งˆ๋ฌธ๊ณผ ์ง€๋ฌธ์— ๋™์ผํ•˜๊ฑฐ๋‚˜ ์œ ์‚ฌํ•˜๊ฒŒ ์กด์žฌํ•˜๋Š” ๋‹จ์–ด๋“ค ๋•Œ๋ฌธ์— ๋ชจ๋ธ์ด ํ—ท๊ฐˆ๋ คํ•œ๋‹ค.

  • ๋ชจ๋ธ์ด ๋‹ต๋ณ€ ๋ชจ๋ฅด๊ฒ ๋‹ค๊ณ  ํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์€ ๋‹ต๋ณ€์ผ ๊ฒƒ์ด๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์„œ๋ฅผ ํ•œ๋ฒˆ์— ์ฐธ์กฐํ•ด์•ผ๋งŒ ๋‹ต์„ ๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์ด๋‹ค.

  • ์œ„ ๋ฌธ์ œ์˜ ๋‹ต์€ ์„ธ ๋ฌธ์„œ๋ฅผ ๋ชจ๋‘ ๋ณด์ง€ ์•Š์œผ๋ฉด ๋งํ•  ์ˆ˜ ์—†๋‹ค.

MRC์˜ ํ‰๊ฐ€๋ฐฉ๋ฒ•

  • EM์˜ ๊ฒฝ์šฐ์—๋Š” ๋‹จ์–ด๊ฐ€ ์กฐ๊ธˆ๋งŒ ๋‹ฌ๋ผ๋„ ์ ์ˆ˜๋ฅผ ์•„์˜ˆ ๋ชป๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด F1 Score๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

  • Description answer dataset๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ •ํ™•ํ•œ ๋‹ต์„ ์ฐพ๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค. ๊ทธ๋ ‡๋‹ค ๋ณด๋‹ˆ ๋Œ€๋ถ€๋ถ„ 0์ ์„ ์–ป๊ฒŒ ๋œ๋‹ค.

  • F1์€ ๋‹จ์–ด์˜ Overlap๋งŒ ๋ณด๋‹ค๋ณด๋‹ˆ, ์‹ค์ œ ์™„์„ฑ๋œ ๋ฌธ์žฅ์ด ์–ธ์–ด์ ์œผ๋กœ ์–ด์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋Ÿฌํ•œ ์ ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด BLEU๋‚˜ ROUGE-L์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

  • ROUGE-L์€ ์˜ˆ์ธกํ•œ ๊ฐ’๊ณผ Grount-Truth, GT ์‚ฌ์ด์— overlap์„ ๋ณด๊ธด ํ•˜์ง€๋งŒ, ์ด overlap์„ ๋ณผ ๋•Œ ๋‹จ์–ด๋งˆ๋‹ค ๋ณด๋Š”๊ฒƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์Šค์ฝ”์–ด์˜ ์ •์˜์— ๋”ฐ๋ฅธ n-gram์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‹จ์–ด๊ฐ€ ๊ฒน์น˜๋Š”์ง€๋ฅผ LCS๋ผ๋Š” ๊ฐœ๋…์œผ๋กœ ์ฐพ๊ฒŒ๋œ๋‹ค.

  • BLEU ์—ญ์‹œ n-gram์„ ๋น„๊ตํ•ด์„œ n-gram๋ผ๋ฆฌ ๊ฒน์น˜๋Š” ๋น„์œจ์„ ๊ณ„์‚ฐํ•œ๋‹ค.

    • n์ด ์ฆ๊ฐ€ํ• ์ˆ˜๋ก ๊ฒน์น˜๊ธฐ๋Š” ์‰ฝ์ง€ ์•Š์œผ๋ฏ€๋กœ ์ ์ˆ˜๊ฐ€ ๋‚ฎ์•„์ง€๊ฒŒ๋œ๋‹ค.

2.Unicode & Tokenization

  • ํ•„์š”ํ•  ๋•Œ ๋งˆ๋‹ค ๋ฐ”์ดํŠธ๋ฅผ ์ถ”๊ฐ€ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

  • ํ˜„๋Œ€ ๋ฌธ์ž์˜ ๋Œ€๋ถ€๋ถ„์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

Python์—์„œ Unicode ๋‹ค๋ฃจ๊ธฐ

python2์™€ python3๋Š” ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฒ•์ด ๋‹ค๋ฃจ๋ฏ€๋กœ ์ด๋ฅผ ์œ ์˜ํ•ด์•ผ ํ•œ๋‹ค.

  • ํ•œ๊ตญ์–ด๋Š” ํ•œ์ž ๋‹ค์Œ์œผ๋กœ ์œ ๋‹ˆ์ฝ”๋“œ์—์„œ ๋งŽ์€ ์ฝ”๋“œ๋ฅผ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ์ž๋ชจ๋งŒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ž๋ชจ ์กฐํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์™„์„ฑํ˜• ํ•œ๊ธ€์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด ๋•Œ, ํ•œ๊ธ€์€ ์™„์„ฑํ˜•๊ณผ ์กฐํ•ฉํ˜•์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

  • ๋‚ด๋ถ€์ ์œผ๋กœ ๋‹ค๋ฅด๊ฒŒ ๊ตฌ์„ฑ์ด ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์กฐํ•ฉํ˜•์˜ ๊ฒฝ์šฐ ๊ธธ์ด๊ฐ€ 2์ด๊ณ  ์™„์„ฑํ˜•์˜ ๊ฒฝ์šฐ ๊ธธ์ด๊ฐ€ 1์ด๋‹ค. ๋ˆˆ์œผ๋กœ๋Š” ํŒ๋‹จํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— len ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

ํ† ํฌ๋‚˜์ด์ง•

  • ์˜ˆ์ „์—๋Š” Regular Expression๊ณผ ๊ฐ™์ด ์‚ฌ๋žŒ์ด ์ง์ ‘ ๊ณ ์•ˆํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ† ํฌ๋‚˜์ด์ง•์„ ํ–ˆ์ง€๋งŒ ์ธ๊ฐ„์˜ ์ƒ์‹๊ณผ ์ปดํ“จํ„ฐ์˜ ์ƒ๊ฐ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ž์—ฐ์Šค๋Ÿฌ์šด BPE๋‚˜ Subword ํ† ํฌ๋‚˜์ด์ง• ๋ฐฉ๋ฒ•์ด ์š”์ฆ˜์€ ์ฃผ๋ฅผ ์ด๋ฃจ๊ณ  ์žˆ๋‹ค.

3.Looking into the Dataset

KorQuAD

  • ์ด๋Ÿฐ ๊ตญ๋‚ด ๋ฐ์ดํ„ฐ์…‹์ด ์กด์žฌํ•˜๋ฉด, ๊ฐ๊ด€์ ์ธ ์—ฐ๊ตฌ๊ฒฐ๊ณผ ๋™๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค๋Š” ์žฅ์ ์ด ๋‹ค.

KorQuAD ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

HuggingFace Datasets

  • ์ด๋ ‡๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋ฉด ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋“ค๋„ ๋งค์šฐ ์‰ฝ๊ฒŒ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

KorQuAD ์˜ˆ์‹œ

  • answer_start๊ฐ€ ์žˆ๋Š” ์ด์œ ๋Š” ์‹ค์ œ๋กœ ๋ชจ๋ธ์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ์œ ์ถ”ํ•œ ์œ„์น˜๋ฅผ ๋ช…์‹œํ•ด์ฃผ๊ธฐ ์œ„ํ•จ์ด๋‹ค. ๋™์ผํ•œ ๋‹จ์–ด๊ฐ€ ์กด์žฌํ•˜๋”๋ผ๋„ ํ•ด๋‹น ๋‹จ์–ด์˜ ์œ„์น˜์— ๋”ฐ๋ผ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์ด ๋  ์ˆ˜๋„ ์žˆ๊ณ  ๋˜์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ๋ช…์‹œํ•œ๋‹ค. ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ง€๋Š” ๊ฒฝ์šฐ๋ฅผ strong supervision, ์ฃผ์–ด์ง€์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ฅผ distant supervision ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” dictionary ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ฒŒ ๋œ๋‹ค.

  • ๋‹ค๋งŒ validation์ด๋‚˜ test์—์„œ๋Š” ๊ตํ–ฅ๊ณก๋งŒ์ด ๋‹ต์ด ์•„๋‹ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฐ์ดํ„ฐ์—์„œ๋Š” text์˜ ๊ธธ์ด๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ์ผ ์ˆ˜ ์žˆ๋‹ค.

KorQuAD ํ†ต๊ณ„์น˜

์งˆ๋ฌธ ์œ ํ˜•

๋‹ต๋ณ€ ์œ ํ˜•

Last updated