N-gram ์ธ์ด ๋ชจ๋ธ์ ์ฒ์๋ถํฐ ๊ตฌํํ๋ ์ข ํฉ ๊ฐ์ด๋๋ฅผ ํตํด ์์ฐ์ด ์ฒ๋ฆฌ์ ํต์ฌ ๊ฐ๋ ์ ์ดํด๋ณด์ธ์.
NLP์ ๊ธฐ๋ฐ ๊ตฌ์ถ: N-gram ์ธ์ด ๋ชจ๋ธ ๊ตฌํ ์ฌ์ธต ๋ถ์
์ธ๊ณต ์ง๋ฅ์ด ์ง๋ฐฐํ๋ ์๋์, ์ฃผ๋จธ๋ ์ ์ค๋งํธ ์ด์์คํดํธ๋ถํฐ ๊ฒ์ ์์ง์ ๊ตฌ๋ํ๋ ์ ๊ตํ ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ฅด๊ธฐ๊น์ง ์ธ์ด ๋ชจ๋ธ์ ์ด๋ฌํ ํ์ ์ ๋ง์ ๋ถ๋ถ์ ์ด๋๋ ๋ณด์ด์ง ์๋ ์์ง์ ๋๋ค. ํด๋ํฐ์ด ๋ค์์ ์ ๋ ฅํ๋ ค๋ ๋จ์ด๋ฅผ ์์ธกํ ์ ์๊ณ ๋ฒ์ญ ์๋น์ค๊ฐ ํ ์ธ์ด๋ฅผ ๋ค๋ฅธ ์ธ์ด๋ก ์ ์ฐฝํ๊ฒ ๋ณํํ ์ ์๋ ์ด์ ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฌํ ๋ชจ๋ธ์ ์ค์ ๋ก ์ด๋ป๊ฒ ์๋ํ ๊น์? GPT์ ๊ฐ์ ๋ณต์กํ ์ ๊ฒฝ๋ง์ด ๋ฑ์ฅํ๊ธฐ ์ ์, ๊ณ์ฐ ์ธ์ดํ์ ๊ธฐ๋ฐ์ ์๋ฆ๋ต๊ฒ ๋จ์ํ๋ฉด์๋ ๊ฐ๋ ฅํ ํต๊ณ์ ์ ๊ทผ ๋ฐฉ์์ธ N-gram ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ต๋๋ค.
์ด ์ข ํฉ ๊ฐ์ด๋๋ ์ผ์ฌ์ฐฌ ๋ฐ์ดํฐ ๊ณผํ์, ์ํํธ์จ์ด ์์ง๋์ด ๋ฐ ํธ๊ธฐ์ฌ ๋ง์ ๊ธฐ์ ์ ํธ๊ฐ๋ฅผ ์ํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๊ธฐ๋ณธ์ผ๋ก ๋์๊ฐ N-gram ์ธ์ด ๋ชจ๋ธ ๋ค์ ์จ๊ฒจ์ง ์ด๋ก ์ ๋ฐํ๊ณ ์ฒ์๋ถํฐ ํ๋๋ฅผ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ค์ฉ์ ์ด๊ณ ๋จ๊ณ๋ณ ์ค๋ช ์ ์ ๊ณตํ ๊ฒ์ ๋๋ค. N-gram์ ์ดํดํ๋ ๊ฒ์ ๋จ์ํ ์ญ์ฌ๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ์ด ์๋๋ผ ์์ฐ์ด ์ฒ๋ฆฌ(NLP)์ ํํํ ๊ธฐ๋ฐ์ ๊ตฌ์ถํ๋ ๋ฐ ์ค์ํ ๋จ๊ณ์ ๋๋ค.
์ธ์ด ๋ชจ๋ธ์ด๋ ๋ฌด์์ธ๊ฐ์?
ํต์ฌ์ ์ผ๋ก ์ธ์ด ๋ชจ๋ธ(LM)์ ์ผ๋ จ์ ๋จ์ด์ ๋ํ ํ๋ฅ ๋ถํฌ์ ๋๋ค. ๋ ๊ฐ๋จํ ๋งํด์, ์ฃผ์ ์๋ฌด๋ ๋ค์๊ณผ ๊ฐ์ ๊ทผ๋ณธ์ ์ธ ์ง๋ฌธ์ ๋ตํ๋ ๊ฒ์ ๋๋ค. ์ผ๋ จ์ ๋จ์ด๊ฐ ์ฃผ์ด์ง๋ฉด ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ์ด ๋์ ๋ค์ ๋จ์ด๋ ๋ฌด์์ธ๊ฐ์?
๋ค์ ๋ฌธ์ฅ์ ์๊ฐํด ๋ณด์ธ์. "ํ์๋ค์ ___์ ์ด์์ต๋๋ค."
์ ํ๋ จ๋ ์ธ์ด ๋ชจ๋ธ์ "์ฑ ", "๋ ธํธ๋ถ" ๋๋ "๋ง์"๊ณผ ๊ฐ์ ๋จ์ด์ ๋์ ํ๋ฅ ์ ํ ๋นํ๊ณ "๊ดํฉ์ฑ", "์ฝ๋ผ๋ฆฌ" ๋๋ "๊ณ ์๋๋ก"์ ๊ฐ์ ๋จ์ด์๋ ๊ฑฐ์ 0์ ๊ฐ๊น์ด ๊ทนํ ๋ฎ์ ํ๋ฅ ์ ํ ๋นํฉ๋๋ค. ์ธ์ด ๋ชจ๋ธ์ ๋จ์ด ์ํ์ค์ ๊ฐ๋ฅ์ฑ์ ์ ๋ํํจ์ผ๋ก์จ ๊ธฐ๊ณ๊ฐ ์ธ๊ฐ์ ์ธ์ด๋ฅผ ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ์ดํด, ์์ฑ ๋ฐ ์ฒ๋ฆฌํ ์ ์๋๋ก ํฉ๋๋ค.
์ด๋ฌํ ์์ฉ ๋ถ์ผ๋ ๊ด๋ฒ์ํ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ์ผ์์ ์ธ ๋์งํธ ์ํ์ ํตํฉ๋์ด ์์ต๋๋ค.
- ๊ธฐ๊ณ ๋ฒ์ญ: ์ถ๋ ฅ ๋ฌธ์ฅ์ด ๋์ ์ธ์ด์์ ์ ์ฐฝํ๊ณ ๋ฌธ๋ฒ์ ์ผ๋ก ์ ํํ๋๋ก ํฉ๋๋ค.
- ์์ฑ ์ธ์: ์์ฑํ์ ์ผ๋ก ์ ์ฌํ ๊ตฌ๋ณ(์: "์์ฑ ์ธ์" ๋ "๋ฉ์ง ํด๋ณ์ ๋ง์น๋ค").
- ์์ธก ํ ์คํธ ๋ฐ ์๋ ์์ฑ: ์ ๋ ฅํ ๋ ๋ค์ ๋จ์ด ๋๋ ๊ตฌ๋ฅผ ์ ์ํฉ๋๋ค.
- ๋ง์ถค๋ฒ ๋ฐ ๋ฌธ๋ฒ ์์ : ํต๊ณ์ ์ผ๋ก ๊ฐ๋ฅ์ฑ์ด ๋ฎ์ ๋จ์ด ์ํ์ค๋ฅผ ์๋ณํ๊ณ ํ๋๊ทธ๋ฅผ ์ง์ ํฉ๋๋ค.
N-gram ์๊ฐ: ํต์ฌ ๊ฐ๋
N-gram์ ์ฃผ์ด์ง ํ ์คํธ ๋๋ ์์ฑ ์ํ์์ 'n'๊ฐ์ ํญ๋ชฉ์ผ๋ก ๊ตฌ์ฑ๋ ์ธ์ ํ ์ํ์ค์ ๋๋ค. 'ํญ๋ชฉ'์ ์ผ๋ฐ์ ์ผ๋ก ๋จ์ด์ด์ง๋ง ๋ฌธ์, ์์ ๋๋ ์ฌ์ง์ด ์์์ผ ์๋ ์์ต๋๋ค. N-gram์ 'n'์ ์ซ์๋ฅผ ๋ํ๋ด๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ํน์ ์ด๋ฆ์ผ๋ก ์ด์ด์ง๋๋ค.
- ์ ๋๊ทธ๋จ(n=1): ๋จ์ผ ๋จ์ด. (์: "The", "quick", "brown", "fox")
- ๋ฐ์ด๊ทธ๋จ(n=2): ๋ ๋จ์ด์ ์ํ์ค. (์: "The quick", "quick brown", "brown fox")
- ํธ๋ผ์ด๊ทธ๋จ(n=3): ์ธ ๋จ์ด์ ์ํ์ค. (์: "The quick brown", "quick brown fox")
N-gram ์ธ์ด ๋ชจ๋ธ์ ๊ธฐ๋ณธ ์์ด๋์ด๋ ์ด์ 'n-1' ๋จ์ด๋ฅผ ์ดํด๋ด์ผ๋ก์จ ์ํ์ค์ ๋ค์ ๋จ์ด๋ฅผ ์์ธกํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ฌธ์ฅ์ ์ ์ฒด ๋ฌธ๋ฒ์ ๋ฐ ์๋ฏธ์ ๋ณต์ก์ฑ์ ์ดํดํ๋ ค๊ณ ์๋ํ๋ ๋์ , ๋ฌธ์ ์ ์ด๋ ค์์ ๊ทน์ ์ผ๋ก ์ค์ด๋ ๋จ์ํ๋ ๊ฐ์ ์ ํฉ๋๋ค.
N-gram ๋ค์ ์จ๊ฒจ์ง ์ํ: ํ๋ฅ ๋ฐ ๋จ์ํ
๋ฌธ์ฅ(๋จ์ด ์ํ์ค W = wโ, wโ, ..., wโ)์ ํ๋ฅ ์ ๊ณต์์ ์ผ๋ก ๊ณ์ฐํ๊ธฐ ์ํด ํ๋ฅ ์ ์ฐ์ ๊ท์น์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
P(W) = P(wโ) * P(wโ|wโ) * P(wโ|wโ, wโ) * ... * P(wโ|wโ, ..., wโโโ)
์ด ๊ณต์์ ์ ์ฒด ์ํ์ค์ ํ๋ฅ ์ด ์์ ์ค๋ ๋ชจ๋ ๋จ์ด๊ฐ ์ฃผ์ด์ง ๊ฐ ๋จ์ด์ ์กฐ๊ฑด๋ถ ํ๋ฅ ์ ๊ณฑ์ด๋ผ๊ณ ๋ช ์ํฉ๋๋ค. ์ํ์ ์ผ๋ก ํ๋นํ์ง๋ง ์ด ์ ๊ทผ ๋ฐฉ์์ ์ค์ฉ์ ์ด์ง ์์ต๋๋ค. ๊ธด ์ด์ ๋จ์ด ๊ธฐ๋ก์ด ์ฃผ์ด์ง ๋จ์ด์ ํ๋ฅ ์ ๊ณ์ฐํ๋ ๊ฒ(์: P(๋จ์ด | "The quick brown fox jumps over the lazy dog and then..."))์ ์ ๋ขฐํ ์ ์๋ ์ถ์ ์ ํ๊ธฐ์ ์ถฉ๋ถํ ์์ ๋ฅผ ์ฐพ๊ธฐ ์ํด ์์ฒญ๋ ์์ ํ ์คํธ ๋ฐ์ดํฐ๊ฐ ํ์ํฉ๋๋ค.
๋ง๋ฅด์ฝํ ๊ฐ์ : ์ค์ฉ์ ์ธ ๋จ์ํ
์ด๊ฒ์ด N-gram ๋ชจ๋ธ์ด ๊ฐ์ฅ ์ค์ํ ๊ฐ๋ ์ธ ๋ง๋ฅด์ฝํ ๊ฐ์ ์ ๋์ ํ๋ ๊ณณ์ ๋๋ค. ์ด ๊ฐ์ ์ ๋จ์ด์ ํ๋ฅ ์ด ์ด์ ๋จ์ด์ ๊ณ ์ ๋ ์์๋ง ์์กดํ๋ค๊ณ ๋ช ์ํฉ๋๋ค. ์ฆ๊ฐ์ ์ธ ์ปจํ ์คํธ๊ฐ ์ถฉ๋ถํ๋ค๊ณ ๊ฐ์ ํ๊ณ ๋ ๋จผ ๊ธฐ๋ก์ ์ญ์ ํ ์ ์์ต๋๋ค.
- ๋ฐ์ด๊ทธ๋จ ๋ชจ๋ธ(n=2)์ ๊ฒฝ์ฐ ๋จ์ด์ ํ๋ฅ ์ ์ด์ ๋จ์ด ํ๋์๋ง ์์กดํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
P(wแตข | wโ, ..., wแตขโโ) โ P(wแตข | wแตขโโ) - ํธ๋ผ์ด๊ทธ๋จ ๋ชจ๋ธ(n=3)์ ๊ฒฝ์ฐ ๋ ๊ฐ์ ์ด์ ๋จ์ด์ ์์กดํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
P(wแตข | wโ, ..., wแตขโโ) โ P(wแตข | wแตขโโ, wแตขโโ)
์ด ๊ฐ์ ์ ๋ฌธ์ ๋ฅผ ๊ณ์ฐ์ ์ผ๋ก ๋ค๋ฃจ๊ธฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค. ๋ ์ด์ ๋จ์ด์ ์ ํํ ์ ์ฒด ๊ธฐ๋ก์ ๋ณผ ํ์ ์์ด ๋ง์ง๋ง n-1๊ฐ์ ๋จ์ด๋ง ์์ผ๋ฉด ํ๋ฅ ์ ๊ณ์ฐํ ์ ์์ต๋๋ค.
N-gram ํ๋ฅ ๊ณ์ฐ
๋ง๋ฅด์ฝํ ๊ฐ์ ์ด ์ ์ฉ๋ ์ํ์์ ์ด๋ฌํ ๋จ์ํ๋ ํ๋ฅ ์ ์ด๋ป๊ฒ ๊ณ์ฐํ ๊น์? ์ต๋ ์ฐ๋ ์ถ์ (MLE)์ด๋ผ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. ์ฆ, ํ๋ จ ํ ์คํธ(๋ง๋ญ์น)์ ๊ฐ์์์ ์ง์ ํ๋ฅ ์ ์ป๋๋ค๋ ์๋ฏธ์ ๋๋ค.
๋ฐ์ด๊ทธ๋จ ๋ชจ๋ธ์ ๊ฒฝ์ฐ, ๋จ์ด wแตข๊ฐ ๋จ์ด wแตขโโ ๋ค์ ์ฌ ํ๋ฅ ์ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐ๋ฉ๋๋ค.
P(wแตข | wแตขโโ) = Count(wแตขโโ, wแตข) / Count(wแตขโโ)
๋จ์ด: ๋จ์ด A ๋ค์์ ๋จ์ด B๊ฐ ํ์๋ ํ๋ฅ ์ "A B" ์์ด ํ์๋ ํ์๋ฅผ ๋จ์ด "A"๊ฐ ์ด ํ์๋ ํ์๋ก ๋๋ ๊ฐ์ ๋๋ค.
์์ ๋ง๋ญ์น๋ฅผ ์๋ก ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. "The cat sat. The dog sat."
- Count("The") = 2
- Count("cat") = 1
- Count("dog") = 1
- Count("sat") = 2
- Count("The cat") = 1
- Count("The dog") = 1
- Count("cat sat") = 1
- Count("dog sat") = 1
"The" ๋ค์์ "cat"์ด ์ฌ ํ๋ฅ ์ ๋ฌด์์ธ๊ฐ์?
P("cat" | "The") = Count("The cat") / Count("The") = 1 / 2 = 0.5
"cat" ๋ค์์ "sat"์ด ์ฌ ํ๋ฅ ์ ๋ฌด์์ธ๊ฐ์?
P("sat" | "cat") = Count("cat sat") / Count("cat") = 1 / 1 = 1.0
์ฒ์๋ถํฐ ๋จ๊ณ๋ณ ๊ตฌํ
์ด์ ์ด ์ด๋ก ์ ์ค์ ๊ตฌํ์ผ๋ก ๋ณํํด ๋ณด๊ฒ ์ต๋๋ค. Python๊ณผ ๊ฐ์ ์ธ์ด๋ก ์ง์ ๋งคํ๋์ง๋ง ์ธ์ด์ ๊ตฌ์ ๋ฐ์ง ์๋ ๋ฐฉ์์ผ๋ก ๋จ๊ณ๋ฅผ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
1๋จ๊ณ: ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ๋ฐ ํ ํฐํ
์๋ฌด๊ฒ๋ ์ ์ ์์ผ๋ ค๋ฉด ํ ์คํธ ๋ง๋ญ์น๋ฅผ ์ค๋นํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ๋ชจ๋ธ์ ํ์ง์ ํ์ฑํ๋ ์ค์ํ ๋จ๊ณ์ ๋๋ค.
- ํ ํฐํ: ํ ์คํธ ๋ณธ๋ฌธ์ ํ ํฐ(์ด ๊ฒฝ์ฐ ๋จ์ด)์ด๋ผ๋ ๋ ์์ ๋จ์๋ก ๋ถํ ํ๋ ํ๋ก์ธ์ค. ์๋ฅผ ๋ค์ด "The cat sat."์ ["The", "cat", "sat", "."]๊ฐ ๋ฉ๋๋ค.
- ์๋ฌธ์ ๋ณํ: ๋ชจ๋ ํ ์คํธ๋ฅผ ์๋ฌธ์๋ก ๋ณํํ๋ ๊ฒ์ด ํ์ค ๊ดํ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ชจ๋ธ์ด "The"์ "the"๋ฅผ ๋ ๊ฐ์ ๋ค๋ฅธ ๋จ์ด๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋ฐฉ์งํ์ฌ ๊ฐ์๋ฅผ ํตํฉํ๊ณ ๋ชจ๋ธ์ ๋์ฑ ๊ฐ๋ ฅํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
- ์์ ๋ฐ ์ค์ง ํ ํฐ ์ถ๊ฐ: ์ด๊ฒ์ ์ค์ํ ๊ธฐ์ ์ ๋๋ค. <s>(์์) ๋ฐ </s>(์ค์ง)์ ๊ฐ์ ํน์ ํ ํฐ์ ๊ฐ ๋ฌธ์ฅ์ ์์๊ณผ ๋์ ์ถ๊ฐํฉ๋๋ค. ์์? ์ด๋ฅผ ํตํด ๋ชจ๋ธ์ ๋ฌธ์ฅ์ ๋งจ ์ฒ์์ ์๋ ๋จ์ด์ ํ๋ฅ (์: P("The" | <s>))์ ๊ณ์ฐํ๊ณ ์ ์ฒด ๋ฌธ์ฅ์ ํ๋ฅ ์ ์ ์ํ ์ ์์ต๋๋ค. ์์ ๋ฌธ์ฅ "the cat sat."์ ["<s>", "the", "cat", "sat", ".", "</s>"]๊ฐ ๋ฉ๋๋ค.
2๋จ๊ณ: N-gram ๊ณ์ฐ
๊ฐ ๋ฌธ์ฅ์ ๋ํ ์ ๋ฆฌ๋ ํ ํฐ ๋ชฉ๋ก์ด ์์ผ๋ฉด ๋ง๋ญ์น๋ฅผ ๋ฐ๋ณตํ์ฌ ๊ฐ์๋ฅผ ์ป์ต๋๋ค. ์ด์ ๊ฐ์ฅ ์ ํฉํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ N-gram(ํํ๋ก ํ์๋จ)์ด ํค์ด๊ณ ํด๋น ๋น๋๊ฐ ๊ฐ์ธ ๋์ ๋๋ฆฌ ๋๋ ํด์ ๋งต์ ๋๋ค.
๋ฐ์ด๊ทธ๋จ ๋ชจ๋ธ์ ๊ฒฝ์ฐ ๋ ๊ฐ์ ๋์ ๋๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
unigram_counts: ๊ฐ ๊ฐ๋ณ ๋จ์ด์ ๋น๋๋ฅผ ์ ์ฅํฉ๋๋ค.bigram_counts: ๊ฐ ๋ ๋จ์ด ์ํ์ค์ ๋น๋๋ฅผ ์ ์ฅํฉ๋๋ค.
ํ ํฐํ๋ ๋ฌธ์ฅ์ ๋ฐ๋ณตํฉ๋๋ค. ["<s>", "the", "cat", "sat", "</s>"]์ ๊ฐ์ ๋ฌธ์ฅ์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ ๋๊ทธ๋จ์ ๋ํ ๊ฐ์ ์ฆ๊ฐ: "<s>", "the", "cat", "sat", "</s>".
- ๋ฐ์ด๊ทธ๋จ์ ๋ํ ๊ฐ์ ์ฆ๊ฐ: ("<s>", "the"), ("the", "cat"), ("cat", "sat"), ("sat", "</s>").
3๋จ๊ณ: ํ๋ฅ ๊ณ์ฐ
๊ฐ์ ๋์ ๋๋ฆฌ๊ฐ ์ฑ์์ก์ผ๋ฏ๋ก ์ด์ ํ๋ฅ ๋ชจ๋ธ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ์ด๋ฌํ ํ๋ฅ ์ ๋ค๋ฅธ ๋์ ๋๋ฆฌ์ ์ ์ฅํ๊ฑฐ๋ ์ฆ์์์ ๊ณ์ฐํ ์ ์์ต๋๋ค.
P(wordโ | wordโ)์ ๊ณ์ฐํ๋ ค๋ฉด bigram_counts[(wordโ, wordโ)] ๋ฐ unigram_counts[wordโ]์ ๊ฒ์ํ๊ณ ๋๋๊ธฐ๋ฅผ ์ํํฉ๋๋ค. ์ข์ ๋ฐฉ๋ฒ์ ๊ฐ๋ฅํ ๋ชจ๋ ํ๋ฅ ์ ๋ฏธ๋ฆฌ ๊ณ์ฐํ๊ณ ๋น ๋ฅด๊ฒ ์กฐํํ ์ ์๋๋ก ์ ์ฅํ๋ ๊ฒ์
๋๋ค.
4๋จ๊ณ: ํ ์คํธ ์์ฑ(์ฌ๋ฏธ์๋ ์์ฉ ํ๋ก๊ทธ๋จ)
๋ชจ๋ธ์ ํ ์คํธํ๋ ์ข์ ๋ฐฉ๋ฒ์ ์ ํ ์คํธ๋ฅผ ์์ฑํ๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ํ๋ก์ธ์ค๋ ๋ค์๊ณผ ๊ฐ์ด ์๋ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด ์์ ํ ํฐ <s>์ ๊ฐ์ ์ด๊ธฐ ์ปจํ ์คํธ๋ก ์์ํฉ๋๋ค.
- <s>๋ก ์์ํ๋ ๋ชจ๋ ๋ฐ์ด๊ทธ๋จ๊ณผ ๊ด๋ จ ํ๋ฅ ์ ์ฐพ์๋ด ๋๋ค.
- ์ด ํ๋ฅ ๋ถํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ ๋จ์ด๋ฅผ ๋ฌด์์๋ก ์ ํํฉ๋๋ค(ํ๋ฅ ์ด ๋์ ๋จ์ด๋ ์ ํ๋ ๊ฐ๋ฅ์ฑ์ด ๋ ํฝ๋๋ค).
- ์ปจํ ์คํธ๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค. ์๋ก ์ ํ๋ ๋จ์ด๊ฐ ๋ค์ ๋ฐ์ด๊ทธ๋จ์ ์ฒซ ๋ฒ์งธ ๋ถ๋ถ์ด ๋ฉ๋๋ค.
- ์ค์ง ํ ํฐ </s>๋ฅผ ์์ฑํ๊ฑฐ๋ ์ํ๋ ๊ธธ์ด์ ๋๋ฌํ ๋๊น์ง ์ด ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ณตํฉ๋๋ค.
๋จ์ํ N-gram ๋ชจ๋ธ์์ ์์ฑ๋ ํ ์คํธ๊ฐ ์๋ฒฝํ๊ฒ ์ผ๊ด์ฑ์ด ์์ ์ ์์ง๋ง ์ข ์ข ๋ฌธ๋ฒ์ ์ผ๋ก ๊ทธ๋ด๋ฏํ ์งง์ ๋ฌธ์ฅ์ ์์ฑํ์ฌ ๊ธฐ๋ณธ ๋จ์ด ๊ฐ์ ๊ด๊ณ๋ฅผ ํ์ตํ์์ ๋ณด์ฌ์ค๋๋ค.
ํฌ์์ฑ์ ๋ฌธ์ ์ ํด๊ฒฐ์ฑ : ์ค๋ฌด๋ฉ
๋ชจ๋ธ์ด ํ๋ จ ์ค์ ๋ณธ ์ ์ด ์๋ ๋ฐ์ด๊ทธ๋จ์ ํ ์คํธํ๋ ๋์ ๋ง๋๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ์๋ฅผ ๋ค์ด, ํ๋ จ ๋ง๋ญ์น์ "the purple dog" ๊ตฌ๋ฌธ์ด ํฌํจ๋์ง ์์ ๊ฒฝ์ฐ:
Count("the", "purple") = 0
์ด๊ฒ์ P("purple" | "the")๊ฐ 0์์ ์๋ฏธํฉ๋๋ค. ์ด ๋ฐ์ด๊ทธ๋จ์ด ํ๊ฐํ๋ ค๋ ๋ ๊ธด ๋ฌธ์ฅ์ ์ผ๋ถ์ธ ๊ฒฝ์ฐ, ๋ชจ๋ ํ๋ฅ ์ ํจ๊ป ๊ณฑํ๋ฏ๋ก ์ ์ฒด ๋ฌธ์ฅ์ ํ๋ฅ ์ด 0์ด ๋ฉ๋๋ค. ์ด๊ฒ์ด 0-ํ๋ฅ ๋ฌธ์ , ์ฆ ๋ฐ์ดํฐ ํฌ์์ฑ์ ํํ์ ๋๋ค. ํ๋ จ ๋ง๋ญ์น์ ๊ฐ๋ฅํ ๋ชจ๋ ์ ํจํ ๋จ์ด ์กฐํฉ์ด ํฌํจ๋์ด ์๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ์ ๋นํ์ค์ ์ ๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ค๋ฌด๋ฉ์ ๋๋ค. ์ค๋ฌด๋ฉ์ ํต์ฌ ์์ด๋์ด๋ ๋ณธ N-gram์์ ์ฝ๊ฐ์ ํ๋ฅ ์ง๋์ ๊ฐ์ ธ์ ๋ณธ ์ ์ด ์๋ N-gram์ ๋ฐฐํฌํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋จ์ด ์ํ์ค๊ฐ ์ ํํ 0์ ํ๋ฅ ์ ๊ฐ์ง ์๊ฒ ๋ฉ๋๋ค.
๋ผํ๋ผ์ค(Add-One) ์ค๋ฌด๋ฉ
๊ฐ์ฅ ๊ฐ๋จํ ์ค๋ฌด๋ฉ ๊ธฐ์ ์ ๋ผํ๋ผ์ค ์ค๋ฌด๋ฉ์ด๋ฉฐ, add-one ์ค๋ฌด๋ฉ์ด๋ผ๊ณ ๋ ํฉ๋๋ค. ์์ด๋์ด๋ ๋งค์ฐ ์ง๊ด์ ์ ๋๋ค. ์ค์ ๋ก ํ๋ ๊ฒ๋ณด๋ค ๊ฐ๋ฅํ ๋ชจ๋ N-gram์ ํ ๋ฒ ๋ ๋ณธ ์ฒํฉ๋๋ค.
ํ๋ฅ ์ ๋ํ ๊ณต์์ด ์ฝ๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค. ๋ถ์์ ๊ฐ์์ 1์ ๋ํฉ๋๋ค. ํ๋ฅ ์ด ์ฌ์ ํ 1์ด ๋๋๋ก ํ๋ ค๋ฉด ์ ์ฒด ์ดํ(V)์ ํฌ๊ธฐ๋ฅผ ๋ถ๋ชจ์ ์ถ๊ฐํฉ๋๋ค.
P_laplace(wแตข | wแตขโโ) = (Count(wแตขโโ, wแตข) + 1) / (Count(wแตขโโ) + V)
- ์ฅ์ : ๊ตฌํ์ด ๋งค์ฐ ๊ฐ๋จํ๋ฉฐ 0์ ํ๋ฅ ์ ๋ณด์ฅํ์ง ์์ต๋๋ค.
- ๋จ์ : ํนํ ํฐ ์ดํ๋ก, ๋ณด์ด์ง ์๋ ์ด๋ฒคํธ์ ๋๋ฌด ๋ง์ ํ๋ฅ ์ ๋ถ์ฌํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฌํ ์ด์ ๋ก ๋ ๋ฐ์ ๋ ๋ฐฉ๋ฒ์ ๋นํด ์ค์ ๋ก ์ฑ๋ฅ์ด ์ข์ง ์์ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
Add-k ์ค๋ฌด๋ฉ
์ฝ๊ฐ์ ๊ฐ์ ์ Add-k ์ค๋ฌด๋ฉ์ผ๋ก, 1์ ๋ํ๋ ๋์ ์์ ๋ถ์ ๊ฐ 'k'(์: 0.01)๋ฅผ ๋ํฉ๋๋ค. ์ด๊ฒ์ ๋๋ฌด ๋ง์ ํ๋ฅ ์ง๋์ ์ฌํ ๋นํ๋ ํจ๊ณผ๋ฅผ ์ํํฉ๋๋ค.
P_add_k(wแตข | wแตขโโ) = (Count(wแตขโโ, wแตข) + k) / (Count(wแตขโโ) + k*V)
add-one๋ณด๋ค ๋ซ์ง๋ง ์ต์ ์ 'k'๋ฅผ ์ฐพ๋ ๊ฒ์ ์ด๋ ค์ธ ์ ์์ต๋๋ค. ๊ตฟ ํ๋ง ์ค๋ฌด๋ฉ ๋ฐ Kneser-Ney ์ค๋ฌด๋ฉ๊ณผ ๊ฐ์ ๊ณ ๊ธ ๊ธฐ์ ์ด ์์ผ๋ฉฐ, ์ด๋ ๋ง์ NLP ํดํท์์ ํ์ค์ด๋ฉฐ ๋ณด์ด์ง ์๋ ์ด๋ฒคํธ์ ํ๋ฅ ์ ์ถ์ ํ๋ ๋ฐ ํจ์ฌ ๋ ์ ๊ตํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
์ธ์ด ๋ชจ๋ธ ํ๊ฐ: ํผ๋๋
N-gram ๋ชจ๋ธ์ด ์ข์์ง ์ด๋ป๊ฒ ์ ์ ์์๊น์? ๋๋ ํน์ ์์ ์ ๋ํด ํธ๋ผ์ด๊ทธ๋จ ๋ชจ๋ธ์ด ๋ฐ์ด๊ทธ๋จ ๋ชจ๋ธ๋ณด๋ค ๋ ๋์์ง? ํ๊ฐ๋ฅผ ์ํ ์ ๋์ ์งํ๊ฐ ํ์ํฉ๋๋ค. ์ธ์ด ๋ชจ๋ธ์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์งํ๋ ํผ๋๋์ ๋๋ค.
ํผ๋๋๋ ํ๋ฅ ๋ชจ๋ธ์ด ์ํ์ ์ผ๋ง๋ ์ ์์ธกํ๋์ง๋ฅผ ์ธก์ ํ ๊ฒ์ ๋๋ค. ์ง๊ด์ ์ผ๋ก ๋ชจ๋ธ์ ๊ฐ์ค ํ๊ท ๋ถ๊ธฐ ๊ณ์๋ก ์๊ฐํ ์ ์์ต๋๋ค. ๋ชจ๋ธ์ ํผ๋๋๊ฐ 50์ด๋ฉด ๊ฐ ๋จ์ด์์ ๋ชจ๋ธ์ด 50๊ฐ์ ๋ค๋ฅธ ๋จ์ด์์ ๊ท ์ผํ๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์ ํํด์ผ ํ๋ ๊ฒ์ฒ๋ผ ํผ๋์ค๋ฝ๋ค๋ ์๋ฏธ์ ๋๋ค.
ํผ๋๋ ์ ์๊ฐ ๋ฎ์์๋ก ์ข์ต๋๋ค. ์ด๋ ๋ชจ๋ธ์ด ํ ์คํธ ๋ฐ์ดํฐ์ ๋ "๋๋"๋ค๋ ๊ฒ์ ๋ํ๋ด๋ฉฐ ์ค์ ๋ก ๋ณด์ด๋ ์ํ์ค์ ๋ ๋์ ํ๋ฅ ์ ํ ๋นํฉ๋๋ค.
ํผ๋๋๋ ํ ์คํธ ์งํฉ์ ์ญ ํ๋ฅ ์ ๋จ์ด ์๋ก ์ ๊ทํํ์ฌ ๊ณ์ฐ๋ฉ๋๋ค. ๊ณ์ฐ์ ๋ ์ฝ๊ฒ ํ๊ธฐ ์ํด ๋ก๊ทธ ํ์์ผ๋ก ํํ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์์ธก๋ ฅ์ด ์ข์ ๋ชจ๋ธ์ ํ ์คํธ ๋ฌธ์ฅ์ ๋์ ํ๋ฅ ์ ํ ๋นํ์ฌ ๋ฎ์ ํผ๋๋๋ฅผ ์ป์ต๋๋ค.
N-gram ๋ชจ๋ธ์ ์ ํ ์ฌํญ
๊ธฐ๋ณธ์ ์ธ ์ค์์ฑ์๋ ๋ถ๊ตฌํ๊ณ N-gram ๋ชจ๋ธ์๋ NLP ๋ถ์ผ๋ฅผ ๋ ๋ณต์กํ ์ํคํ ์ฒ๋ก ์ด๋ ์ค์ํ ์ ํ ์ฌํญ์ด ์์ต๋๋ค.
- ๋ฐ์ดํฐ ํฌ์์ฑ: ์ค๋ฌด๋ฉ์ ์ฌ์ฉํ๋๋ผ๋ N์ด ํด์๋ก(ํธ๋ผ์ด๊ทธ๋จ, 4-gram ๋ฑ) ๊ฐ๋ฅํ ๋จ์ด ์กฐํฉ์ ์๊ฐ ํญ๋ฐ์ ์ผ๋ก ์ฆ๊ฐํฉ๋๋ค. ๋๋ถ๋ถ์ ํ๋ฅ ์ ์์ ์ ์ผ๋ก ์ถ์ ํ๊ธฐ์ ์ถฉ๋ถํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
- ์ ์ฅ: ๋ชจ๋ธ์ ๋ชจ๋ N-gram ๊ฐ์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ดํ์ N์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ด๋ฌํ ๊ฐ์๋ฅผ ์ ์ฅํ๋ ๋ฐ ํ์ํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ฒญ๋๊ฒ ์ปค์ง ์ ์์ต๋๋ค.
- ์ฅ๊ฑฐ๋ฆฌ ์ข ์์ฑ ์บก์ฒ ๋ถ๊ฐ๋ฅ: ์ด๊ฒ์ด ๊ฐ์ฅ ์ค์ํ ๊ฒฐํจ์ ๋๋ค. N-gram ๋ชจ๋ธ์ ๋งค์ฐ ์ ํ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํธ๋ผ์ด๊ทธ๋จ ๋ชจ๋ธ์ ๋จ์ด๋ฅผ ๋ ์์น ์ด์ ์ ์ ๋ํ๋ ๋ค๋ฅธ ๋จ์ด์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ฅ์ ์๊ฐํด ๋ณด์ธ์. "์ฌ๋ฌ ๋ฒ ์คํธ์ ๋ฌ ์์ค์ ์ฐ๊ณ ์ธ๋ด ๋๋ผ์ ์์ ๋ง์์์ ์์ญ ๋ ์ ์ฐ ์๊ฐ๋ ์ ์ฐฝํ ___์ ๊ตฌ์ฌํฉ๋๋ค." ๋ง์ง๋ง ๋จ์ด๋ฅผ ์์ธกํ๋ ค๋ ํธ๋ผ์ด๊ทธ๋จ ๋ชจ๋ธ์ ์ปจํ ์คํธ "์ ์ฐฝํ๊ฒ ๊ตฌ์ฌํ๋ค"๋ง ๋ด ๋๋ค. "์๊ฐ" ๋๋ ์์น์ ๋ํ ์ง์์ด ์์ผ๋ฉฐ, ์ด๋ ์ค์ํ ๋จ์์ ๋๋ค. ๋ฉ๋ฆฌ ๋จ์ด์ง ๋จ์ด ๊ฐ์ ์๋ฏธ์ ๊ด๊ณ๋ฅผ ์บก์ฒํ ์ ์์ต๋๋ค.
N-gram ๋๋จธ: ์ ๊ฒฝ ์ธ์ด ๋ชจ๋ธ์ ์๋ฒฝ
ํนํ ์ฅ๊ฑฐ๋ฆฌ ์ข ์์ฑ์ ์ฒ๋ฆฌํ ์ ์๋ค๋ ์ด๋ฌํ ์ ํ ์ฌํญ์ RNN(์ํ ์ ๊ฒฝ๋ง), LSTM(Long Short-Term Memory) ๋คํธ์ํฌ ๋ฐ ํนํ ํ์ฌ ์ง๋ฐฐ์ ์ธ ๋ณํ๊ธฐ(BERT ๋ฐ GPT์ ๊ฐ์ ๋ชจ๋ธ์ ๊ตฌ๋ํ๋ ๋ชจ๋ธ)์ ๊ฐ์ ์ ๊ฒฝ ์ธ์ด ๋ชจ๋ธ์ ๊ฐ๋ฐ์ ์ํ ๊ธธ์ ์ด์์ต๋๋ค. ์ด๋ฌํ ํน์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ค๊ณ๋์์ต๋๋ค.
์ ๊ฒฝ ๋ชจ๋ธ์ ํฌ์ํ ๊ฐ์์ ์์กดํ๋ ๋์ ์๋ฏธ์ ๊ด๊ณ๋ฅผ ์บก์ฒํ๋ ๋จ์ด์ ์กฐ๋ฐํ ๋ฒกํฐ ํํ(์๋ฒ ๋ฉ)์ ํ์ตํฉ๋๋ค. ๋ด๋ถ ๋ฉ๋ชจ๋ฆฌ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ํจ์ฌ ๋ ๊ธด ์ํ์ค์ ๋ํ ์ปจํ ์คํธ๋ฅผ ์ถ์ ํ์ฌ ์ธ๊ฐ ์ธ์ด์ ๋ด์ฌ๋ ๋ณต์กํ๊ณ ์ฅ๊ฑฐ๋ฆฌ ์ข ์์ฑ์ ์ดํดํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก : NLP์ ๊ธฐ์ด ๊ธฐ๋ฅ
ํ๋ NLP๋ ๋๊ท๋ชจ ์ ๊ฒฝ๋ง์ด ์ง๋ฐฐํ๊ณ ์์ง๋ง N-gram ๋ชจ๋ธ์ ๋ง์ ์์ ์ ๋ํ ํ์์ ์ธ ๊ต์ก ๋๊ตฌ์ด์ ๋๋๋๋ก ํจ๊ณผ์ ์ธ ๊ธฐ๋ณธ ์์๋ก ๋จ์ ์์ต๋๋ค. ์ธ์ด ๋ชจ๋ธ๋ง์ ํต์ฌ ๊ณผ์ ์ ๋ํ ๋ช ํํ๊ณ ํด์ ๊ฐ๋ฅํ๋ฉฐ ๊ณ์ฐ์ ์ผ๋ก ํจ์จ์ ์ธ ์๊ฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ณผ๊ฑฐ์ ํต๊ณ์ ํจํด์ ์ฌ์ฉํ์ฌ ๋ฏธ๋๋ฅผ ์์ธกํฉ๋๋ค.
N-gram ๋ชจ๋ธ์ ์ฒ์๋ถํฐ ๊ตฌ์ถํจ์ผ๋ก์จ NLP ์ปจํ ์คํธ์์ ํ๋ฅ , ๋ฐ์ดํฐ ํฌ์์ฑ, ์ค๋ฌด๋ฉ ๋ฐ ํ๊ฐ์ ๋ํ ๊น์ด ์๋ ๊ธฐ๋ณธ ์๋ฆฌ์ ์ดํด๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์ด ์ง์์ ๋จ์ํ ์ญ์ฌ์ ์ธ ๊ฒ์ด ์๋๋ผ ํ๋ AI์ ์ฐ๋ ์์ ๋ง์ฒ๋ฃจ๊ฐ ๊ตฌ์ถ๋ ๊ฐ๋ ์ ๊ธฐ๋ฐ์ ๋๋ค. ์ด๋ ์ธ์ด๋ฅผ ํ๋ฅ ์ ์ํ์ค๋ก ์๊ฐํ๋๋ก ๊ฐ๋ฅด์น๋ฉฐ, ์ด๋ ์๋ฌด๋ฆฌ ๋ณต์กํ๋ ๋ชจ๋ ์ธ์ด ๋ชจ๋ธ์ ๋ง์คํฐํ๋ ๋ฐ ํ์์ ์ธ ๊ด์ ์ ๋๋ค.