[NLP] ๋ฌธ์ฅ ์ ๋ถ๋ฅ ๋ชจ๋ธ
๋ฌธ์ฅ ์ ๋ถ๋ฅ ๋ชจ๋ธ ์ ๋ฆฌ
์์ฐ์ด์ฒ๋ฆฌ์ ์์ ์ค ํ๋์ธ ๋ฌธ์ฅ ์ ๋ถ๋ฅ ๋ชจ๋ธ์ ๊ตฌํํ๊ธฐ ์ ์, ์ฐ์ ๋ฌธ์ฅ ์ ๋ถ๋ฅ ๋ชจ๋ธ์ ๋ํด ์์๋ณด์.
๋ณธ chapter์์๋ ๋ฌธ์ฅ ์ ๋ถ๋ฅ(sentence pair classification)์ ๋ํ ์๋ก ์์ฐ์ด ์ถ๋ก (natural language inference, NLI) ๊ณผ์ ๋ฅผ ์ค์ตํ๋ค.
"๋ฌธ์ฅ ์ ๋ถ๋ฅ๋ ๋ฌธ์ฅ 2๊ฐ๊ฐ ์ฃผ์ด์ก์ ๋ ํด๋น ๋ฌธ์ฅ ์ฌ์ด์ ๊ด๊ณ๊ฐ ์ด๋ค ๋ฒ์ฃผ์ผ์ง ๋ถ๋ฅํ๋ ๊ณผ์ ๋ค."
์์ฐ์ด ์ถ๋ก ์ 2๊ฐ์ ๋ฌธ์ฅ(๋๋ ๋ฌธ์)์ด ์ฐธ(entailment), ๊ฑฐ์ง(contradiction), ์ค๋ฆฝ ๋๋ ํ๋จ ๋ถ๊ฐ(neutral)์ธ์ง ๊ฐ๋ ค๋ด๋ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์์ entailment๋ 'ํจ์', contradiction์ '๋ชจ์'์ผ๋ก ๋ฒ์ญ๋๊ธฐ๋ ํ๋ค.
์๋์ ์์๋ฅผ ์ดํด๋ณด๋ฉด
-
๋ ์ถ๊ทผํ์ด + ๋ ๋ฐฑ์์ผ โ ๊ฑฐ์ง
-
๋ ์ถ๊ทผํ์ด + ๋ ๊ฐ๋ฐ์์ผ โ ์ค๋ฆฝ
์ด๋ฒ ์ค์ต์์ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ ์
์คํ
์ด์ง์์ ๊ณต๊ฐํ NLI๋ฐ์ดํฐ์
* ์ด๋ค.
์ด ๋ฐ์ดํฐ์
์ ์ ์ (premise)์ ๋ํ ๊ฐ์ค(hypothesis)์ด ์ฐธ์ธ์ง, ๊ฑฐ์ง์ธ์ง, ์ค๋ฆฝ์ธ์ง ์ ๋ณด๊ฐ ๋ ์ด๋ธ(gold_label)๋ก ์ฃผ์ด์ ธ ์๋ค.
*klue-benchmark.com/tasks/68/overview/description
์ด๋ฒ chapter์์ ๋ง๋ค NLI ๊ณผ์ ์ํ ๋ชจ๋ธ์ ์ ์ ์ ๊ฐ์ค 2๊ฐ ๋ฌธ์ฅ์ ์
๋ ฅ์ผ๋ก ํ๊ณ , ๋ ๋ฌธ์ฅ์ ๊ด๊ณ๊ฐ ์ด๋ค ๋ฒ์ฃผ์ผ์ง ํ๋ฅ ์ ์ถ๋ ฅํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ถ๊ฒฉ์ ์ ๋นํ ํ์ฒ๋ฆฌ ๊ณผ์ ์ ๊ฑฐ์ณ ์ฐธ(entailment), ๊ฑฐ์ง(contradiction), ์ค๋ฆฝ(neutral) ๋ฑ ์ฌ๋์ด ๋ณด๊ธฐ์ ์ข์ ํํ๋ก ๊ฐ๊ณตํด ์ค๋ค.
๋ชจ๋ธ ๊ตฌ์กฐ
๋ณธ chapter์์ ์ฌ์ฉํ๋ ๋ฌธ์ฅ ์ ๋ถ๋ฅ ๋ชจ๋ธ์ ์ ์ ์ ๊ฐ์ค ๋ ๋ฌธ์ฅ์ ๊ฐ๊ฐ ํ ํฐํํ ๋ค [CLS] + ์ ์ + [SEP] + ๊ฐ์ค + [SEP] ํํ๋ก ์ด์ด ๋ถ์ธ๋ค.
์ฌ๊ธฐ์์ CLS๋ ๋ฌธ์ฅ ์์์ ์๋ฆฌ๋ ์คํ์
ํ ํฐ, SEP๋ ์ ์ ์ ๊ฐ์ค์ ์๋ก ๊ตฌ๋ถํด ์ฃผ๋ ์คํ์
ํ ํฐ์ด๋ค.
์ด๋ฅผ BERT ๋ชจ๋ธ์ ์
๋ ฅํ๊ณ ๋ฌธ์ฅ ์์ค์ ๋ฒกํฐ(pooler_output)๋ฅผ ๋ฝ๋๋ค. ์ด ๋ฒกํฐ์ ์ ์ ์ ๊ฐ์ค์ ์๋ฏธ๊ฐ ์์ถ๋์ด ์๋ค.
์ฌ๊ธฐ์ ์์ ์ถ๊ฐ ๋ชจ๋์ ๋ง๋ถ์ฌ ๋ชจ๋ธ ์ ์ฒด์ ์ถ๋ ฅ์ด [์ ์ ์ ๋ํด ๊ฐ์ค์ด ์ฐธ์ผ ํ๋ฅ , ์ ์ ์ ๋ํด ๊ฐ์ค์ด ๊ฑฐ์ง์ผ ํ๋ฅ , ์ ์ ์ ๋ํด ๊ฐ์ค์ด ์ค๋ฆฝ์ผ ํ๋ฅ ] ํํ๊ฐ ๋๋๋ก ํ๋ค.
๊ทธ๋ฆผ 1. ๋ฌธ์ฅ ์ ๋ถ๋ฅ

ํ์คํฌ ๋ชจ๋
pooler_output ๋ฒกํฐ ๋ค์ ๋ถ๋ ์ถ๊ฐ ๋ชจ๋์ ๊ตฌ์กฐ๋ ์๋์ ๊ทธ๋ฆผ๊ณผ ๋์ผํ๋ค. ์ฐ์ pooler_output๋ฒกํฐ (๊ทธ๋ฆผ์์ x) ์ ๋๋กญ์์์ ์ ์ฉํ๋ค.
๊ทธ ๋ค์ ๊ฐ์ค์น ํ๋ ฌ์ ๊ณฑํด pooler_output์ ๋ถ๋ฅํด์ผ ํ ๋ฒ์ฃผ ์๋งํผ์ ์ฐจ์์ ๊ฐ๋ ๋ฒกํฐ๋ก ๋ณํํ๋ค (๊ทธ๋ฆผ์์ net).
๋ง์ผ pooler_output๋ฒกํฐ๊ฐ 768์ฐจ์์ด๊ณ ๋ถ๋ฅ ๋์ ๋ฒ์ฃผ ์๊ฐ 3๊ฐ(์ฐธ, ๊ฑฐ์ง, ์ค๋ฆฝ)๋ผ๋ฉด ๊ฐ์ค์น ํ๋ ฌ์ ํฌ๊ธฐ๋ 768 * 3์ด ๋๋ค.
๊ทธ๋ฆผ 2. ๋ฌธ์ฅ ์ ๋ถ๋ฅ ํ์คํฌ ๋ชจ๋

์ฌ๊ธฐ์ ์ํํธ๋งฅ์ค ํจ์๋ฅผ ์ทจํ๋ฉด ๋ชจ๋ธ์ ์ต์ข
์ถ๋ ฅ (๊ทธ๋ฆผ์์ y) ์ด ๋๋ค.
์ด๋ ๊ฒ ๋ง๋ ๋ชจ๋ธ์ ์ต์ข
์ถ๋ ฅ๊ณผ ์ ๋ต ๋ ์ด๋ธ์ ๋น๊ตํด ๋ชจ๋ธ ์ถ๋ ฅ์ด ์ ๋ต ๋ ์ด๋ธ๊ณผ ์ต๋ํ ๊ฐ์์ง๋๋ก BERT ๋ ์ด์ด๋ฅผ ํฌํจํ ๋ชจ๋ธ ์ ์ฒด๋ฅผ ์
๋ฐ์ดํธ ํ๋ค.
๋ฌธ์ฅ ์ ๋ถ๋ฅ ํ์คํฌ ๋ชจ๋์ ๋ฌธ์ ๋ถ๋ฅ ํ์คํฌ ๋ชจ๋๊ณผ ๊ฑฐ์ ์ ์ฌํ ๋ชจ์ต์ด๋ค.
๋ฌธ์ ๋ถ๋ฅ ๊ณผ์ ๋ฅผ 3๊ฐ ๋ฒ์ฃผ(๊ธ์ , ๋ถ์ , ์ค๋ฆฝ)๋ฅผ ๋ถ๋ฅํ๋ ํ์คํฌ๋ก ์์ ํ๋ค๋ฉด ๋ ๋ชจ๋ ๊ตฌ์กฐ๋ ๋๊ฐ๋ค.
๋ค๋ง ์ฐจ์ด๋ ํ์คํฌ ๋ชจ๋์ ์
๋ ฅ(pooler_output)์ด ๋๋ค.
์ฆ, pooler_output ์ ๋ฌธ์ฅ 1๊ฐ์ ์๋ฏธ๊ฐ ์์ถ๋์ด ์๋ค๋ฉด ๋ฌธ์ ๋ถ๋ฅ, 2๊ฐ์ ์๋ฏธ๊ฐ ๋ดํฌํด ์๋ค๋ฉด ๋ฌธ์ฅ ์ ๋ถ๋ฅ ๊ณผ์ ๊ฐ ๋๋ค.
