Machine Reading Comprehension - newlife-js/Wiki GitHub Wiki
by KAIST ์๋ฏผ์ค ๊ต์๋
Machine Reading Comprehension(MRC)
์ฃผ์ด์ง ์ง๋ฌธ์ ์ดํดํ๊ณ , ์ฃผ์ด์ง ์ง์์ ๋ต๋ณ์ ์ถ๋ก ํ๋ ๋ฌธ์
MRC Datasets ์ข ๋ฅ
- Extractive Answer Datasets: ์ง์์ ๋ํ ๋ต์ด ํญ์ ์ฃผ์ด์ง ์ง๋ฌธ์ segment(span)๋ก ์กด์ฌ
(์ง๋ฌธ์ ํด๋น ๋จ์ด๊ฐ ๊ทธ๋๋ก ์กด์ฌํ๋ ๊ฒฝ์ฐ) - Descriptive/Narrative Answer Datasets: ๋ต์ด ์ง๋ฌธ ๋ด์์ ์ถ์ถํ span์ด ์๋, ์ง์๋ฅผ ๋ณด๊ณ ์์ฑ๋ sentence(free-form)์ ํํ
- Multiple-choice Datasets: ์ง์์ ๋ํ ๋ต์ ์ฌ๋ฌ ๊ฐ์ answer candidates ์ค ํ๋๋ก ๊ณ ๋ฅด๋ ํํ
Challenges
- ๋จ์ด๋ค์ ๊ตฌ์ฑ์ด ์ ์ฌํ์ง๋ ์์ง๋ง ๋์ผํ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ ๊ฒฝ์ฐ
- ๋ต์ด ์ง๋ฌธ์ ์๋ ๊ฒฝ์ฐ
- Multi-hop reasoning(์ฌ๋ฌ ๊ฐ์ documnet์์ supporting fact๋ฅผ ์ฐพ์์ผ์ง๋ง ๋ต์ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ)
โป KorQuAD: ์ง์์๋ต/๊ธฐ๊ณ๋ ํด ํ๊ตญ์ด ๋ฐ์ดํฐ์
Extraction-based MRC
Metric
- Exact Match Score: GT์ character๊ฐ ๊ฐ์ผ๋ฉด 1, ์๋๋ฉด 0
- F1 score: GT์์ token overlap์ F1์ผ๋ก ๊ณ์ฐ
Preprocessing
- Context์ Question์ concatenation
- Tokenization + Special Token(CLS, SEP, UNK, PAD ๋ฑ)
- Attention mask: ์ ๋ ฅ sequence์์ ํ์ํ ์ ๋ณด๊ฐ ์๋ ๋ถ๋ถ์ 1๋ก, ์๋ ๋ถ๋ถ์ 0์ผ๋ก(PAD, ์ง๋ฌธ ๋ฑ)
- ์ ๋ต token์ ์์น ํํ
- ์ถ๋ ฅ ๋ ์ด์ด ๊ตฌ์ฑ
Pre-training & Fine-tuning
BERT๋ก Contextualized Embedding์ ๊ตฌ์ฑ(pre-training)
๊ฐ ํ ํฐ์ด ๋ต์ ์์ ํ ํฐ์ผ ํ๋ฅ / ๋ ํ ํฐ์ผ ํ๋ฅ ์ ์ถ๋ ฅํ๋๋ก classification(fine-tuning)
Post-processing
- ๋ถ๊ฐ๋ฅํ ๋ต ์ ๊ฑฐํ๊ธฐ(end๊ฐ start๋ณด๋ค ์์ ์๋ ๊ฒฝ์ฐ, position์ด context์ ์ํ์ง ์๋ ๊ฒฝ์ฐ ๋ฑ)
- score(logit)์ด ๊ฐ์ฅ ํฐ ์์ธก์ ์ถ๋ ฅ
Passage Retrieval
์ง๋ฌธ์ ๋ํ ๋ต์ ํฌํจํ ๋ฌธ์(passage)๋ฅผ ์ฐพ๋ ๊ฒ
Overview
query์ passage๋ฅผ ์๋ฒ ๋ฉํ ๋ค ์ ์ฌ๋๋ก ๋ญํน์ ๋งค๊ธฐ๊ณ , ๊ฐ์ฅ ๋์ passage ์ ํ
Sparse Embedding
0์ด ๋๋ถ๋ถ์ธ vector๋ก embedding
- Bag-of-Words: ๋จ์ด๊ฐ ์กด์ฌํ๋ฉด 1, ์์ผ๋ฉด 0(n-gram์ ์ฌ์ฉํ๊ธฐ๋ ํจ)
๋จ์ด๊ฐ ๋ง์์ง์๋ก space ์ฆ๊ฐ, n-gram์ n ์ปค์ง์๋ก ์ฆ๊ฐ - TF-IDF(Term Frequency - Inverse Document Frequency): ๋จ์ด์ ๋ฑ์ฅ ๋น๋์ ๋จ์ด๊ฐ ์ ๊ณตํ๋ ์ ๋ณด์ ์์ผ๋ก ๊ฐ์ค์น ๋ถ์ฌ
TF: ๋จ์ด ๋ฑ์ฅ ํ์ / word ์(or 1)
IDF: log(document ์ / ๋จ์ด๊ฐ ๋ฑ์ฅํ document์ ์)
์ฟผ๋ฆฌ์ ๋ฌธ์์ TF-IDF ๋ด์ ์ผ๋ก ์ ์ฌ๋๋ฅผ ๊ณ์ฐํ ์ ์์
โป BM25: TF-IDF๋ฅผ ๋ฐํ์ผ๋ก ๋ฌธ์์ ๊ธธ์ด๊น์ง ๊ณ ๋ คํ scoring
ํ๊ณ
์ฐจ์์ ์๊ฐ ๋งค์ฐ ํผ
๋๋ถ๋ถ์ element๊ฐ 0์ผ๋ก ๊ตฌ์ฑ๋์ด ๋นํจ์จ์
term ๊ฐ์ ์ ์ฌ์ฑ์ ๊ณ ๋ คํ์ง ๋ชปํจ
Dense Embedding
์์ ์ฐจ์์ ๊ณ ๋ฐ๋ ๋ฒกํฐ
๊ฐ ์ฐจ์์ด ํน์ term์ ๊ฐ๋ฆฌํค์ง ์์ผ๋ฉฐ ๋๋ถ๋ถ์ ์์๊ฐ non-zero
๋จ์ด์ ์ ์ฌ์ฑ์ ํํํ ์ ์์
Dense Encoder
๋ณดํต pretrained BERT encoder๋ฅผ ์ฌ์ฉ
๋ฌธ์ ์ ์ฒด๋ฅผ ํ๋์ vector(CLS ํ ํฐ์ output)๋ก ๋ํ๋ด์ด question์์ ๋์จ vector์ ๋น๊ต
์ฐ๊ด๋ passage(positive sampling)์๋ ๊ฑฐ๋ฆฌ๋ฅผ ์ขํ๊ณ
์ฐ๊ด๋์ง ์์ passage(negative sampling)์๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ์ด์ผ ํจ
โ Objective function: Positive passage์ ๋ํ negative log likelihood loss
MIPS(Maximum Inner Product search)
๋ด์ ์ด ๊ฐ์ฅ ํฐ(์ ์ฌ์ฑ์ด ํฐ) vector๋ฅผ ์ฐพ๋ ๊ฒ
๋ชจ๋ passage embedding์ ๋ํด์ ๋ด์ ๊ตฌํ๋(brute-force) ๊ฒ์ ๋งค์ฐ ๋นํจ์จ์
- compression: Scalar Quantization(SQ)
vector๋ฅผ ์์ถํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ(4byte float -> 1byte unsigned integer) - pruning: Inverted File(IVF)
search space๋ฅผ ์ค์ฌ ์๋ ๊ฐ์ (clustering + inverted file)
์ ์ฒด vector space๋ฅผ k๊ฐ์ cluster๋ก ๋๋๊ณ ๊ทธ ์์์ search
inverted file: ๊ฐ cluster์ ์์น์ ์ด์ ์ํ๋ vector๋ค์ ์ ๋ณด
โป FAISS: Facebook์์ ๋ง๋ efficient similarity search ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Open-Domain Question Answering(ODQA)
Open-domain: supporting evidence๊ฐ ์กด์ฌํ์ง ์๋ ์ง๋ฌธ์ ๋ํด ๋ต์ ํจ
web์ด๋ wiki์์ ์ ๋ณด๋ฅผ ์ฐพ์์ ๋ต์ ํ๋ ๋ฌธ์
Retriever-Reader Approach
Retriever: ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ด๋ จ ๋ฌธ์๋ฅผ ๊ฒ์
Reader: ๊ฒ์๋ ๋ฌธ์์์ ์ง๋ฌธ์ ํด๋นํ๋ ๋ต์ ์ฐพ์๋
- knowledge source: ๊ตฌ์กฐํ๋์ง ์์ ๋ฌธ์๋ก ์ด๋ฃจ์ด์ง corpus(์ํคํผ๋์ ๋ฑ)
- Distant supervision: ์ง๋ฌธ-๋ต๋ณ๋ง ์๋ ๋ฐ์ดํฐ์ ์์ MRC ํ์ต ๋ฐ์ดํฐ ๋ง๋ฆ
์ถ๋ก
retriever๊ฐ ์ง๋ฌธ๊ณผ ๊ฐ์ฅ ๊ด๋ จ์ฑ ๋์ 5๊ฐ ๋ฌธ์ ์ถ๋ ฅ
reader๋ 5๊ฐ ๋ฌธ์๋ฅผ ์ฝ๊ณ ๋ต๋ณ์ ์์ธก
๋ต๋ณ ์ค ๊ฐ์ฅ score๊ฐ ๋์ ๊ฒ์ ์ต์ข
๋ต์ผ๋ก ์ฌ์ฉ
Reducing Bias
training์ SQuAD์ฒ๋ผ context์ ๋ฌด์กฐ๊ฑด ๋ต์ด ์๋ ๋ฐ์ดํฐ๋ง ์กด์ฌํ๋ค๋ฉด...
training์ ์ฃผ์ ์ text์ ์ฃผ์ ๊ฐ ๋ง์ด ๋ค๋ฅด๋ค๋ฉด...
-
train negative examples: ํ๋ จํ ๋ ์๋ชป๋ ์์๋ ๋ณด์ฌ์ค
corpus ๋ด์์ ๋๋คํ๊ฒ ๋ฝ๊ธฐ, ์ข ๋ ํท๊ฐ๋ฆฌ๋ negative ์ํ ๋ฝ๊ธฐ -
add [no answer] bias: ์ ๋ ฅ ์ํ์ค์ 1๊ฐ ํ ํฐ์ ๋ํด์, start-end ํ๋ฅ ์ด ํด๋น ํ ํฐ์ ๊ฐ๋ฆฌํค๋ฉด no answer์ ์ถ๋ ฅํ๋๋ก
Anotation Bias
๋ฐ์ดํฐ ์ ์ ๋จ๊ณ์์์ bias
์ง๋ฌธ์ ํ๋ ์ฌ๋์ด ๋ต์ ์๊ณ ์๊ธฐ ๋๋ฌธ์ ์ง๋ฌธ๊ณผ evidence ๋ฌธ๋จ ์ฌ์ด์ ๋ง์ ๋จ์ด๊ฐ ๊ฒน์น๋ bias ๋ฐ์
ํ์ต ๋ฐ์ดํฐ์ ๋ถํฌ ์์ฒด๊ฐ bias(์ ๋ช
ํ wiki, article ๋ฑ..)
Closed-book QA
๋๋์ ์ง์ ์์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ ํ์ต๋ ์ธ์ด ๋ชจ๋ธ์ด ๊ทธ ์ง์์ ๊ธฐ์ตํ๊ณ ์์ ๊ฒ์ด๋ผ ๊ฐ์
search ๊ณผ์ ์์ด ๋ฐ๋ก ์ ๋ต ์์ฑ
T5(Text-to-Text Format)
input์ task ์ ์๊ฐ ๊ฐ์ด ๋ค์ด๊ฐ
T5์ QA๋ฅผ fine-tuning ์ ์ฉํ๋๋ ์ ํ๋๋ผ..