๊ฐ์
ํฌ์ ๋ฒกํฐ(Sparse Vector)๋ ๋๋ถ๋ถ์ ์ฐจ์์ด 0์ธ ๊ณ ์ฐจ์ ๋ฒกํฐ๋ก, ๋ฐ์ดํฐ๋ฅผ ์์น์ ์ผ๋ก ํํํ๋ ์ ํต์ ์ธ ๋ฐฉ์์ด๋ค. ๊ฐ ์ฐจ์์ ๋ช ์์ ์ธ ํน์ง(์: ํน์ ๋จ์ด, n-gram, ์นดํ ๊ณ ๋ฆฌ)์ ๋์๋๋ฉฐ, ํด๋น ํน์ง์ด ์กด์ฌํ ๋๋ง 0์ด ์๋ ๊ฐ์ ๊ฐ์ง๋ค.
์๋ฅผ ๋ค์ด, ์ดํ ํฌ๊ธฐ๊ฐ 10,000์ธ Bag-of-Words ๋ฒกํฐ๋ 10,000์ฐจ์์ ๊ฐ์ง์ง๋ง, ํน์ ๋ฌธ์๋ ์๋ฐฑ ๊ฐ์ ๋จ์ด๋ง ํฌํจํ๋ฏ๋ก ๋๋ถ๋ถ์ ๊ฐ์ด 0์ด๋ค. ํฌ์ ๋ฒกํฐ๋ ์ ํต์ ์ธ ์ ๋ณด ๊ฒ์๊ณผ ํ ์คํธ ๋ถ๋ฅ์์ ๋๋ฆฌ ์ฌ์ฉ๋์ด ์๋ค.
ํน์ฑ
- ๊ณ ์ฐจ์: ๋ณดํต ์์ฒ์์ ์๋ง ์ฐจ์
- ๋์ ํฌ์์ฑ: ๋๋ถ๋ถ์ ๊ฐ์ด 0 (๋ณดํต 95% ์ด์)
- ๋ช ์์ ํํ: ๊ฐ ์ฐจ์์ด ์๋ ค์ง ํน์ง์ ์ง์ ๋์
- ํด์ ๊ฐ๋ฅ: ์ด๋ค ํน์ง์ด ํ์ฑํ๋์๋์ง ๋ช ํํ ํ์ธ ๊ฐ๋ฅ
์์ฑ ๋ฐฉ๋ฒ
Bag-of-Words
๋จ์ด์ ๋ฑ์ฅ ์ ๋ฌด๋ ๋น๋๋ฅผ ๋ฒกํฐ๋ก ํํํ๋ค. ์ดํ ํฌ๊ธฐ๋งํผ์ ์ฐจ์์ ๊ฐ์ง๋ฉฐ, ๋ฌธ์์ ๋ฑ์ฅํ ๋จ์ด์ ํด๋นํ๋ ์ฐจ์๋ง ๊ฐ์ ๊ฐ์ง๋ค.
์๋ฅผ ๋ค์ด, ์ดํ๊ฐ [โ์ฌ๊ณผโ, โ๋ฐ๋๋โ, โ์ค๋ ์งโ]์ด๊ณ ๋ฌธ์๊ฐ โ์ฌ๊ณผ ๋ฐ๋๋ ์ฌ๊ณผโ๋ผ๋ฉด, ๋ฒกํฐ๋ [2, 1, 0]์ด ๋๋ค.
One-Hot Encoding
๋จ ํ๋์ ์ฐจ์๋ง 1์ด๊ณ ๋๋จธ์ง๋ ๋ชจ๋ 0์ธ ๊ทน๋จ์ ์ธ ํฌ์ ๋ฒกํฐ๋ค. ์ฃผ๋ก ๋ฒ์ฃผํ ๋ฐ์ดํฐ๋ฅผ ํํํ ๋ ์ฌ์ฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์์ [โ๋นจ๊ฐโ, โํ๋โ, โ์ด๋กโ]์์ โํ๋โ์ [0, 1, 0]์ผ๋ก ํํ๋๋ค.
TF-IDF
TF-IDF๋ ๋จ์ด์ ์ค์๋๋ฅผ ๋ฐ์ํ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ ํฌ์ ๋ฒกํฐ๋ฅผ ์์ฑํ๋ค. ๊ฐ ์ฐจ์์ ๋จ์ด์ ๋์ํ๋ฉฐ, ๊ฐ์ TF-IDF ์ ์๋ค.
๋ฌธ์์์ ์์ฃผ ๋ฑ์ฅํ์ง๋ง ์ ์ฒด ๋ฌธ์ ์งํฉ์์๋ ๋๋ฌธ ๋จ์ด์ ๋์ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ์ฌ, ๋จ์ ๋น๋๋ณด๋ค ์๋ฏธ ์๋ ํํ์ ์ ๊ณตํ๋ค.
N-gram
์ฐ์๋ n๊ฐ ๋จ์ด์ ์กฐํฉ์ ํน์ง์ผ๋ก ์ฌ์ฉํ๋ค. ๋จ์ผ ๋จ์ด๋ณด๋ค ๋ ๋ง์ ๋ฌธ๋งฅ ์ ๋ณด๋ฅผ ๋ด์ง๋ง, ์ฐจ์์ด ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํ๋ค.
์๋ฅผ ๋ค์ด, bi-gram (n=2)์ โ๋จธ์ ๋ฌ๋โ, โ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆโ ๊ฐ์ ๋จ์ด ์์ ํน์ง์ผ๋ก ์ฌ์ฉํ๋ค.
BM25
BM25๋ ํฌ์ ๋ฒกํฐ ๊ธฐ๋ฐ์ ํ๋ฅ ์ ๋ญํน ํจ์๋ก, TF-IDF๋ฅผ ๊ฐ์ ํ์ฌ ์ฉ์ด ๋น๋ ํฌํ์ ๋ฌธ์ ๊ธธ์ด ์ ๊ทํ๋ฅผ ์ ์ฉํ๋ค.
์ฅ์
- ํด์ ๊ฐ๋ฅ์ฑ: ๊ฐ ์ฐจ์์ด ๊ตฌ์ฒด์ ์ธ ํน์ง(๋จ์ด, n-gram)์ ๋์ํ์ฌ ๋ชจ๋ธ ๊ฒฐ์ ์ ์ถ์ ํ๊ธฐ ์ฝ๋ค
- ์ ํํ ๋งค์นญ: ํค์๋ ๊ธฐ๋ฐ ๊ฒ์์์ ์ ํํ ์ผ์น๋ฅผ ์ฐพ๋ ๋ฐ ์ ๋ฆฌํ๋ค
- ์ ์ฅ ํจ์จ์ฑ: 0์ด ์๋ ๊ฐ๋ง ํค-๊ฐ ์์ผ๋ก ์ ์ฅํ๋ฉด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํ ์ ์๋ค
- ๊ตฌํ ๋จ์์ฑ: ๋ณต์กํ ํ์ต ์์ด ๊ท์น ๊ธฐ๋ฐ์ผ๋ก ์์ฑ ๊ฐ๋ฅํ๋ค
- ๋๋ฉ์ธ ์ง์ ํ์ฉ: ์ ๋ฌธ๊ฐ๊ฐ ์ ์ํ ํน์ง์ ์ง์ ๋ฐ์ํ ์ ์๋ค
๋จ์
- ์๋ฏธ ์ดํด ๋ถ์กฑ: โ์๋์ฐจโ์ โ์ฐจโ๋ฅผ ์์ ํ ๋ค๋ฅธ ํน์ง์ผ๋ก ์ทจ๊ธํ๋ค
- ๋ฌธ๋งฅ ๋ฌด์: ๋จ์ด ์์๋ ๋ฌธ๋งฅ ์ ๋ณด๋ฅผ ์๋๋ค
- ์ฐจ์์ ์ ์ฃผ: ๊ณ ์ฐจ์์ผ๋ก ์ธํด ๊ฑฐ๋ฆฌ ๊ณ์ฐ์ด ๋นํจ์จ์ ์ด๋ค
- ํฌ์์ฑ ๋ฌธ์ : ์๋ก์ด ๋จ์ด๋ ๋๋ฌธ ์กฐํฉ์ ์ฒ๋ฆฌํ๊ธฐ ์ด๋ ต๋ค
- ๋์์ด ๋ฏธ์ฒ๋ฆฌ: ์ ์ฌํ ์๋ฏธ์ ๋จ์ด๋ค์ ๋ณ๊ฐ์ ํน์ง์ผ๋ก ๊ฐ์ฃผํ๋ค
์ฌ์ฉ ์ฌ๋ก
์ ํต์ ๊ฒ์ ์์ง
ํค์๋ ๊ธฐ๋ฐ ๋ฌธ์ ๊ฒ์์์ ํฌ์ ๋ฒกํฐ๋ฅผ ์ฌ์ฉํ๋ค. ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฒ์์ด์ ๋ฌธ์์ ํฌํจ๋ ๋จ์ด๋ฅผ ์ง์ ๋งค์นญํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ๋๋ค.
์ ๋ณด ๊ฒ์ ๋ญํน
BM25 ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ด ํฌ์ ๋ฒกํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฒ์ ๊ฒฐ๊ณผ์ ์์๋ฅผ ๊ฒฐ์ ํ๋ค. Elasticsearch, Apache Lucene ๋ฑ ์ฃผ์ ๊ฒ์ ์์ง์์ ๊ธฐ๋ณธ ๋ญํน ํจ์๋ก ์ฌ์ฉ๋๋ค.
ํน์ง ์์ง๋์ด๋ง
์ ํต์ ์ธ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ(์: Logistic Regression, SVM)์ ์ ๋ ฅ ํน์ง์ผ๋ก ํฌ์ ๋ฒกํฐ๋ฅผ ์ฌ์ฉํ๋ค. ํ ์คํธ ๋ถ๋ฅ, ์คํธ ํํฐ๋ง, ๊ฐ์ฑ ๋ถ์ ๋ฑ์ ํ์ฉ๋๋ค.
๋ก๊ทธ ๋ถ์
์์คํ ๋ก๊ทธ๋ ๋ณด์ ์ด๋ฒคํธ์์ ๋ช ์์ ํจํด์ ํ์งํ ๋ ํฌ์ ๋ฒกํฐ๋ฅผ ์ฌ์ฉํ๋ค. ํน์ ํค์๋๋ ํจํด์ ์ถํ์ ์ถ์ ํ๊ธฐ์ ์ ํฉํ๋ค.
์ถ์ฒ ์์คํ
ํ์ ํํฐ๋ง์์ ์ฌ์ฉ์-์์ดํ ์ํธ์์ฉ ํ๋ ฌ์ ํฌ์ ๋ฒกํฐ๋ก ํํํ๋ค. ๋๋ถ๋ถ์ ์ฌ์ฉ์๊ฐ ์์์ ์์ดํ ๋ง ํ๊ฐํ๋ฏ๋ก ์์ฐ์ค๋ฝ๊ฒ ํฌ์ํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ค.
๋ฐ์ง ๋ฒกํฐ์์ ๋น๊ต
ํฌ์ ๋ฒกํฐ๋ ๋ช ์์ ํน์ง ํํ๊ณผ ํด์ ๊ฐ๋ฅ์ฑ์์ ๊ฐ์ ์ ๊ฐ์ง์ง๋ง, ์๋ฏธ์ ์ดํด๊ฐ ๋ถ์กฑํ๋ค. ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ๋ฐ์ง ๋ฒกํฐ๊ฐ ๊ฐ๋ฐ๋์์ผ๋ฉฐ, ์ต๊ทผ์๋ ๋ ๋ฐฉ์์ ๊ฒฐํฉํ ํ์ด๋ธ๋ฆฌ๋ ์ ๊ทผ์ด ์ฃผ๋ชฉ๋ฐ๊ณ ์๋ค.