[NLP] 6. Topic Modeling์ด๋?
์๋ณธ ๊ฒ์๊ธ: https://velog.io/@euisuk-chung/NLP-6.-Topic-Modeling์ด๋
-
Topic Modeling์ด๋?
๋ณธ ๊ฐ์๋ DSBA ๊ฐํ์ฑ ๊ต์๋์ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ฌ ์์ฑ๋์์ต๋๋ค.
Topic Modeling์ ๊ธฐ๊ณ ํ์ต ๋ฐ ์์ฐ์ด ์ฒ๋ฆฌ ๋ถ์ผ์์ ๋ฌธ์ ์งํฉ ๋ด์์ ์ ์ฌ์ ์ธ ์ฃผ์ (Latent Topic)๋ฅผ ๋ฐ๊ฒฌํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํต๊ณ์ ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ์ ๋๋ค.
- ์ฃผ์ด์ง ๋ฌธ์์์ ๋ฐ๋ณต์ ์ผ๋ก ๋ฑ์ฅํ๋ ๋จ์ด ํจํด์ ๋ถ์ํ์ฌ ๋ฌธ์๋ฅผ ํน์ ์ฃผ์ ๋ก ๋ถ๋ฅํ๋ ์ญํ ์ ํฉ๋๋ค.
Topic Modeling์ ํ์ฉํ๋ฉด ๋ฐฉ๋ํ ๋ฌธ์ ๋ฐ์ดํฐ์์ ์ ์ฌ์ ์ธ ์๋ฏธ ๊ตฌ์กฐ(Latent Structure)๋ฅผ ์๋์ผ๋ก ํ์ตํ ์ ์์ต๋๋ค.
- ํนํ, ๋น์ง๋ ํ์ต(Unsupervised Learning) ๊ธฐ๋ฐ์ผ๋ก ์๋ํ๊ธฐ ๋๋ฌธ์ ์ฌ์ ์ ๋ ์ด๋ธ๋ง๋ ๋ฐ์ดํฐ ์์ด๋ ํ์ฉํ ์ ์์ต๋๋ค.
์ด๋ฌํ ํน์ฑ์ผ๋ก ์ธํด ๋ฐ์ดํฐ ๋ ์ด๋ธ์ด ๋ถ์กฑํ ์ํฉ์์ ์ ์ฉํ๊ฒ ํ์ฉ๋ ์ ์์ผ๋ฉฐ, ๋ฌธ์ ๋ถ๋ฅ
, ์ถ์ฒ ์์คํ
, ์ ๋ณด ๊ฒ์
๋ฑ์ ๋ค์ํ ์์ฉ ๋ถ์ผ์์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
์ฃผ์ ํน์ง
- ๋ฌธ์ ๋ด์์ ์ฃผ์ ์ฃผ์ ๋ฅผ ์ถ์ถํ๋ ๊ธฐ๋ฒ
- ๋น์ง๋ ํ์ต(Unsupervised Learning)์ ๊ธฐ๋ฐ์ผ๋ก ์๋
- ๋จ์ด ๊ฐ์ ์ถํ ๋น๋์ ๊ด๊ณ๋ฅผ ๋ถ์ํ์ฌ ์ฃผ์ ๋ถํฌ(Topic Distribution)๋ฅผ ๋์ถ
- ๋ด์ค ๊ธฐ์ฌ, ์ฐ๊ตฌ ๋ ผ๋ฌธ, ๊ณ ๊ฐ ๋ฆฌ๋ทฐ ๋ฑ์ ๋๋์ ๋ฌธ์ ๋ฐ์ดํฐ์์ ์ฃผ์ ์ฃผ์ ๋ฅผ ์๋์ผ๋ก ๋ถ๋ฅํ๋ ๋ฐ ํ์ฉ๋จ
- ๋ฌธ์ ๋ด์ ๋จ์ด ์ถํ ํจํด์ ๊ธฐ๋ฐ์ผ๋ก ์๋ฏธ์ ๊ตฌ์กฐ๋ฅผ ์ฐพ์๋ด์ด ์จ๊ฒจ์ง ๊ด๊ณ๋ฅผ ๋๋ฌ๋ผ ์ ์์
2. Topic Modeling์ ์ ๊ทผ๋ฒ
Topic Modeling์ ์ํํ๋ ๋ค์ํ ์ ๊ทผ๋ฒ์ด ์กด์ฌํฉ๋๋ค.
- ํฌ๊ฒ
ํ๋ ฌ ๋ถํด(Matrix Factorization)
๊ธฐ๋ฐ ์ ๊ทผ๊ณผํ๋ฅ ๋ชจ๋ธ(Probabilistic Model)
๊ธฐ๋ฐ ์ ๊ทผ์ผ๋ก ๋๋ ์ ์์ต๋๋ค.
-
ํ๋ ฌ ๋ถํด ๊ธฐ๋ฐ(Matrix Factorization) ์ ๊ทผ
- Singular Value Decomposition (SVD) ๊ธฐ๋ฐ ์ฐจ์ ์ถ์ ๊ธฐ๋ฒ ํ์ฉ
- ๋จ์ด์ ๋ฌธ์ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ฐจ์ ๊ณต๊ฐ์์ ํด์
- Example
- Latent Semantic Analysis (LSA)
- Non-negative Matrix Factorization (NMF)
-
ํ๋ฅ ๋ชจ๋ธ(Probabilistic Model) ๊ธฐ๋ฐ ์ ๊ทผ
- ๋ฌธ์์ ๋จ์ด๊ฐ ํ๋ฅ ์ ํ ํฝ ๋ถํฌ๋ฅผ ๋ฐ๋ฅด๋ ํ๋ฅ ๋ชจ๋ธ
- ๋ฒ ์ด์ฆ ์ถ๋ก ์ ์ด์ฉํ์ฌ ๋ฌธ์์ ํ ํฝ ๋ถํฌ๋ฅผ ํ์ต
- Example
- Probabilistic Latent Semantic Analysis (pLSA)
- Latent Dirichlet Allocation (LDA)
2.1 ํ๋ ฌ ๋ถํด ๊ธฐ๋ฐ(Matrix Factorization) ์ ๊ทผ
-
์ ์:
- ํ๋ ฌ ๋ถํด ๊ธฐ๋ฐ ์ ๊ทผ(Matrix Factorization Approach)์ ๋ฌธ์-๋จ์ด ํ๋ ฌ(Term-Document Matrix)์ ํ๋ ฌ ๋ถํด(Matrix Factorization) ๊ธฐ๋ฒ์ ํตํด ์ ์ฐจ์ ์ ์ฌ ์๋ฏธ ๊ณต๊ฐ(Latent Semantic Space)์ผ๋ก ๋ณํํ๋ ๋ฐฉ์์ ๋๋ค.
-
ํต์ฌ ๊ฐ๋ :
- ๊ณ ์ฐจ์ ๋ฌธ์-๋จ์ด ํ๋ ฌ์ ์ ์ฐจ์ ์ ์ฌ ์๋ฏธ ๊ณต๊ฐ์ผ๋ก ์์ถ ํ์ฌ ์ฃผ์ ๋ฅผ ์ถ์ถํ๋ ๋ฐฉ์
-
SVD, NMF ๋ฑ์ ๊ธฐ๋ฒ์ ํตํด ํ๋ ฌ์ ๋ถํดํ๊ณ ์ด๋ฅผ ํตํด ์ฃผ์ ๋ฅผ ํ์ต
SVD
: Singular Value DecompositionNMF
: Non-negative Matrix Factorization
- ๋จ์ด์ ๋ฌธ์ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ฒกํฐ ๊ณต๊ฐ ๋ด์์ ์์น์ ์ผ๋ก ๋ถ์
-
์ฃผ์ ๊ธฐ๋ฒ:
-
Latent Semantic Analysis (LSA)
- Singular Value Decomposition (SVD)์ ํ์ฉํ์ฌ ๋ฌธ์-๋จ์ด ํ๋ ฌ์ ๋ถํด
- ๋จ์ด์ ๋ฌธ์๋ฅผ ์ ์ฐจ์ ๋ฒกํฐ ๊ณต๊ฐ์ ๋งคํํ์ฌ ์๋ฏธ์ ์ ์ฌ์ฑ์ ๋ถ์
- ์ ๊ท ๋ถํฌ๋ฅผ ๊ฐ์ ํ๋ฉฐ, ํ๋ฅ ์ ํด์์ด ์ด๋ ต๋ค๋ ๋จ์ ์ด ์์
-
Non-negative Matrix Factorization (NMF)
- ๋ฌธ์-๋จ์ด ํ๋ ฌ์ ๋น์์ ํ๋ ฌ(Non-negative Matrix)๋ก ๋ถํดํ์ฌ ์๋ฏธ๋ฅผ ํด์
- ๋ชจ๋ ์์๊ฐ 0 ์ด์์ด๋ฏ๋ก ํด์์ด ์ง๊ด์ ์ด๋ฉฐ ์๋ฏธ์ ์ธ ํ ํฝ์ ์ถ์ถํ๋ ๋ฐ ์ ๋ฆฌ
-
(์ฐธ๊ณ ) Singular Value Decomposition (SVD)๋ Non-negative Matrix Factorization (NMF)๋ ์ฐจ์์ถ์ ๊ธฐ๋ฒ์ ์ผ์ข ์ด๋ผ๊ณ ๋ด๋ ๋ฌด๋ฐฉํฉ๋๋ค. (=> ์ด๋ ๋ ๊ธฐ๋ฒ ๋ชจ๋ Matrix๋ฅผ ๋ถํดํ๊ธฐ ๋๋ฌธ)
- ์ด์ ๊ด๋ จํ์ฌ ์ข์ ์ฐธ๊ณ ์๋ฃ๊ฐ ์์ด์ ๊ณต์ ํฉ๋๋ค. ์๋ ํด๋น ๋ด์ฉ์ ๋ํด์ ๋ค๋ฃฐ ์์ ์.
-
์ฅ์ :
โ ์ฐ์ฐ ์๋๊ฐ ์๋์ ์ผ๋ก ๋น ๋ฅด๊ณ ๊ตฌํ์ด ์ฉ์ดํจ
โ ๋ ธ์ด์ฆ ์ ๊ฑฐ ๋ฐ ์๋ฏธ์ ์์ถ์ด ๊ฐ๋ฅํ์ฌ ๋ฌธ์ ๊ฐ ์ ์ฌ์ฑ ๋ถ์์ ์ ํฉ
โ ์ฐจ์ ์ถ์๋ฅผ ํตํด ๋ฌธ์์ ๋จ์ด์ ๊ด๊ณ๋ฅผ ์๊ฐ์ ์ผ๋ก ๋ถ์ ๊ฐ๋ฅ
-
๋จ์ :
โ ํ๋ฅ ๊ธฐ๋ฐ ์ ๊ทผ์ด ์๋๋ฏ๋ก ๋ถํ์ค์ฑ์ ๋ค๋ฃจ๊ธฐ ์ด๋ ค์
โ ์ ๊ท ๋ถํฌ๋ฅผ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ์ค์ ๋ฐ์ดํฐ์ ๋ถํฌ๋ฅผ ๋ฐ์ํ์ง ๋ชปํ ๊ฐ๋ฅ์ฑ์ด ์์
โ ์๋ก์ด ๋ฌธ์๋ฅผ ์ถ๊ฐํ๋ฉด ๊ธฐ์กด ๋ชจ๋ธ์ ๋ค์ ํ์ตํด์ผ ํจ
2.2 ํ๋ฅ ๋ชจ๋ธ(Probabilistic Model) ๊ธฐ๋ฐ ์ ๊ทผ
-
์ ์:
- ํ๋ฅ ๋ชจ๋ธ ๊ธฐ๋ฐ ์ ๊ทผ(Probabilistic Model Approach)์ (1) ๋ฌธ์๋ ์ฌ๋ฌ ๊ฐ์ ์ ์ฌ์ ์ธ ์ฃผ์ (Topic)๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, (2) ๊ฐ ์ฃผ์ ๋ ํน์ ๋จ์ด์ ํ๋ฅ ์ ๋ถํฌ๋ฅผ ๋ฐ๋ฅธ๋ค๋ ๊ฐ์ ํ์ ๋ฌธ์ ๋ด ๋จ์ด์ ์ฃผ์ ๋ถํฌ๋ฅผ ์ถ๋ก ํ๋ ๋ฐฉ์์ ๋๋ค.
-
ํต์ฌ ๊ฐ๋ :
- ๋ฌธ์๋ ์ฌ๋ฌ ๊ฐ์ ์ฃผ์ (Topic)๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ ์ฃผ์ ๋ ํน์ ๋จ์ด๋ค์ ๋ถํฌ๋ฅผ ๊ฐ์ง
- ์ฃผ์ด์ง ๋ฌธ์์์ ๋จ์ด๊ฐ ์์ฑ๋ ํ๋ฅ ์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๋ถํฌ๋ฅผ ์ถ์
- ๋ฒ ์ด์ฆ ์ถ๋ก (Bayesian Inference)์ ํ์ฉํ์ฌ ํ๋ฅ ์ ํ ํฝ ๋ชจ๋ธ๋ง ์ํ
-
์ฃผ์ ๊ธฐ๋ฒ:
-
Probabilistic Latent Semantic Analysis (pLSA)
- ๋ฌธ์์ ๋จ์ด ์ถํ ํ๋ฅ ์ ์ ์ฌ์ ์ธ ์ฃผ์ (Topic) ๋ถํฌ๋ฅผ ์ด์ฉํ์ฌ ์ค๋ช
-
ํ๋ฅ ๋ชจ๋ธ์ ์ด์ฉํด **๋ฌธ์-ํ ํฝ ๋ถํฌ P(zโฃd)P(z d)P(zโฃd)** ๋ฐ **ํ ํฝ-๋จ์ด ๋ถํฌ P(wโฃz)P(w z)P(wโฃz)**๋ฅผ ํ์ต - EM(Expectation-Maximization) ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉํ์ฌ ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ์
-
- ๋ฌธ์์ ๋จ์ด ์ถํ ํ๋ฅ ์ ์ ์ฌ์ ์ธ ์ฃผ์ (Topic) ๋ถํฌ๋ฅผ ์ด์ฉํ์ฌ ์ค๋ช
-
Latent Dirichlet Allocation (LDA)
- pLSA์ ํ๊ณ๋ฅผ ๊ฐ์ ํ ๋ฒ ์ด์ง์ ํ๋ฅ ๋ชจ๋ธ
- ๋ฌธ์์ ํ ํฝ ๋ถํฌ(ฮธ\thetaฮธ)์ ํ ํฝ์ ๋จ์ด ๋ถํฌ(ฯ\phiฯ)๋ฅผ Dirichlet ๋ถํฌ์์ ์ํ๋ง
- Gibbs Sampling ๋๋ ๋ณ๋ถ ์ถ๋ก (Variational Inference)์ ์ฌ์ฉํ์ฌ ํ๋ฅ ์ ์ถ์
-
-
์ฅ์ :
โ ๋ฌธ์ ๋ด์์ ๊ฐ ์ฃผ์ ์ ํ๋ฅ ์ ๋ถํฌ๋ฅผ ํ์ตํ ์ ์์
โ ์๋ก์ด ๋ฌธ์๊ฐ ์ถ๊ฐ๋์ด๋ ๊ธฐ์กด ๋ชจ๋ธ์ ์ฌํ์ตํ ํ์ ์์ด ์ฌ์ ํ์ต๋ ์ฃผ์ ๋ถํฌ๋ฅผ ํ์ฉ ๊ฐ๋ฅ
โ ๋ฒ ์ด์ง์ ์ ๊ทผ์ ํ์ฉํ๋ฉด ๋ฐ์ดํฐ์ ๋ถํ์ค์ฑ์ ๋ณด๋ค ์ ๋ฐ์ํ ์ ์์
-
๋จ์ :
โ ํ์ต ๊ณผ์ ์ด ์๋์ ์ผ๋ก ๋ณต์กํ๊ณ ๊ณ์ฐ ๋น์ฉ์ด ๋์
โ Gibbs Sampling ๋๋ Variational Inference๋ฅผ ์ฌ์ฉํด์ผ ํ๋ฏ๋ก ๋๊ท๋ชจ ๋ฐ์ดํฐ์์๋ ํ์ต ์๊ฐ์ด ๊ธธ์ด์ง ์ ์์
โ ์ฃผ์ ์(K)๋ฅผ ์ฌ์ ์ ์ ํด์ผ ํ๋ฉฐ, ์ด๋ฅผ ์๋ชป ์ค์ ํ๋ฉด ๋ชจ๋ธ ์ฑ๋ฅ์ด ์ ํ๋ ์ ์์
๐ ํ๋ ฌ ๋ถํด ์ ๊ทผ vs ํ๋ฅ ๋ชจ๋ธ ์ ๊ทผ ๋น๊ต ์ ๋ฆฌ
๊ตฌ๋ถ | ํ๋ ฌ ๋ถํด (Matrix Factorization) | ํ๋ฅ ๋ชจ๋ธ (Probabilistic Model) |
---|---|---|
ํต์ฌ ์์ด๋์ด | ๋ฌธ์-๋จ์ด ํ๋ ฌ์ ์ ์ฐจ์์ผ๋ก ์์ถ | ๋ฌธ์๋ ์ฌ๋ฌ ๊ฐ์ ์ฃผ์ ๋ก ๊ตฌ์ฑ๋๋ฉฐ ๊ฐ ์ฃผ์ ๋ ํน์ ๋จ์ด์ ํ๋ฅ ์ ๋ถํฌ๋ฅผ ๊ฐ์ง |
์ฃผ์ ๊ธฐ๋ฒ | LSA (SVD), NMF | pLSA, LDA |
๊ฒฐ๊ณผ ํด์ ๋ฐฉ์ | ์ ํ ๋์ ๊ธฐ๋ฐ | ํ๋ฅ ๊ธฐ๋ฐ |
ํ๋ฅ ์ ํด์ ๊ฐ๋ฅ ์ฌ๋ถ | โ (ํ๋ฅ ๋ชจ๋ธ์ด ์๋) | โ (ํ๋ฅ ์ ๋ชจ๋ธ) |
์๋ก์ด ๋ฌธ์ ์ฒ๋ฆฌ | ๊ธฐ์กด ๋ชจ๋ธ์ ๋ค์ ํ์ตํด์ผ ํจ | ๊ธฐ์กด ๋ชจ๋ธ์ ํ์ฉ ๊ฐ๋ฅ |
๊ณ์ฐ ๋น์ฉ | ์๋์ ์ผ๋ก ๋ฎ์ | ์๋์ ์ผ๋ก ๋์ |
์ ์ฉ ์ฌ๋ก | ๊ฒ์ ์์ง, ์ถ์ฒ ์์คํ , ๋ฌธ์ ์ ์ฌ๋ ๋ถ์ | ๋ฌธ์ ๋ถ๋ฅ, ํ ํฝ ํ์, ํธ๋ ๋ ๋ถ์ |
๋จ์ | ํ๋ฅ ์ ํด์์ด ์ด๋ ค์ | ๊ณ์ฐ ๋น์ฉ์ด ๋๊ณ ํ์ต์ด ๋ณต์กํจ |
(์ฐธ๊ณ ) Naรฏve Approach (MLE, Maximum Likelihood Estimation)
ํน์ ๋ฌธ์ (Document, d)์์ ๋จ์ด (Word, w)๊ฐ ๋ฑ์ฅํ ํ๋ฅ ์ MLE(์ต๋ ์ฐ๋ ์ถ์ )๋ก ๊ตฌํ๋ ๋ฐฉ๋ฒ.
- MLE๋ ํ๋ฅ ๋ชจ๋ธ ๊ธฐ๋ฐ ์ ๊ทผ๋ฒ ์ค ๊ฐ์ฅ ๋จ์ํ ๋ฐฉ์์ผ๋ก ๋ณผ ์ ์์ต๋๋ค.
- ํ์ง๋ง, LDA๋ pLSA์ ๋ฌ๋ฆฌ ์ ์ฌ ๋ณ์(Latent Variable) ๊ฐ๋ ์ด ์์ผ๋ฉฐ, ๋จ์ํ ๋ฌธ์๋ณ ๋จ์ด ์ถํ ๋น๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฅ ์ ๊ณ์ฐํ๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ธ Topic Modeling๊ณผ๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
- ์์ด๋์ด:
- ๋ฌธ์ ๋ด ๋จ์ด์ ๋จ์ ๋น๋์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋น ๋จ์ด๊ฐ ํน์ ๋ฌธ์์์ ๋ฐ์ํ ํ๋ฅ ์ ์ง์ ๊ณ์ฐ
-
ํ๊ณ์ :
- MLE๋ ๋จ์ํ ๋น๋ ๊ธฐ๋ฐ ํ๋ฅ ์ถ์ ๋ฐฉ๋ฒ์ผ๋ก ์ง๊ด์ ์ด์ง๋ง, ์ผ๋ฐํ ์ฑ๋ฅ์ด ๋ถ์กฑํ ์ ์์ต๋๋ค.
- ๋ฌธ์ ๋ด์ ์๋ ๋จ์ด๋ ํ๋ฅ ์ด 0์ผ๋ก ์ค์ ๋๋ฉฐ, ๋ฐ์ดํฐ์ ํฌ์์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ด๋ ต์ต๋๋ค.
-
๋ณด์ ๋ฐฉ๋ฒ:
- Zero-Frequency Problem (๋น๋ 0 ๋ฌธ์ )๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ, ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์ค๋ฌด๋ฉ(Smoothing) ๊ธฐ๋ฒ์ด ํ์ํฉ๋๋ค.
โ Zero-Frequency Problem (๋น๋ 0 ๋ฌธ์ )์ด๋?
Zero-Frequency Problem์ ํ์ต ๋ฐ์ดํฐ์ ์๋ ๋จ์ด๋ ๋จ์ด ์กฐํฉ์ด ๋ฑ์ฅํ์ ๋ ํ๋ฅ ์ด 0์ด ๋์ด ๋ชจ๋ธ์ด ์ผ๋ฐํ๋์ง ๋ชปํ๋ ๋ฌธ์ ์ ๋๋ค.
- ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ค์ํ ์ค๋ฌด๋ฉ(Smoothing) ๊ธฐ๋ฒ์ด ์ฌ์ฉ๋๋ฉฐ, ๋ฐ์ดํฐ์ ํฌ์์ฑ ์ ๋์ ๋ฐ๋ผ ์ ์ ํ ๋ฐฉ๋ฒ์ ์ ํํด์ผ ํฉ๋๋ค.
- ๊ฐ๋จํ ๋ฌธ์ ํด๊ฒฐ์๋ Add-k ์ค๋ฌด๋ฉ(Laplace)์ด ์ ์ ํฉ๋๋ค.
- ๋ฐ์ดํฐ ํฌ์์ฑ์ด ๋์ ๊ฒฝ์ฐ์๋ Good-Turing ์ค๋ฌด๋ฉ์ด ํจ๊ณผ์ ์ ๋๋ค.
- ์ค์ ์ธ์ด ๋ชจ๋ธ์์ ๊ฐ์ฅ ์ฑ๋ฅ์ด ์ข์ ๋ฐฉ๋ฒ์ Kneser-Ney ์ค๋ฌด๋ฉ์ ๋๋ค.
- ๋ฐ๋ผ์, ์ค๋ฌด๋ฉ ๊ธฐ๋ฒ์ ์ ์ฉํ๋ฉด ํฌ์ํ ๋ฐ์ดํฐ์์๋ ์ธ์ด ๋ชจ๋ธ์ด ๋ณด๋ค ์ผ๋ฐํ๋ ํ๋ฅ ์ ์ถ์ ํ ์ ์์ผ๋ฉฐ, ๊ฒ์, ๋ฒ์ญ, ํ ์คํธ ์์ฑ ๋ฑ ๋ค์ํ NLP ์์ ์์ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
์ค๋ฌด๋ฉ ๊ธฐ๋ฒ | ํน์ง | ์ฅ์ | ๋จ์ |
---|---|---|---|
Additive Smoothing (Add-k) | ๋ชจ๋ ๋น๋์ ์์ ๊ฐ์ ์ถ๊ฐ | ๊ตฌํ์ด ๊ฐ๋จ | ๊ณผ๋ํ๊ฒ ๊ท ๋ฑํ ํ๋ฅ ๋ถํฌ |
Good-Turing Smoothing | ๋น๋ 0์ธ ๋จ์ด๋ฅผ ๋ฎ์ ๋น๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ถ์ | ํฌ์ํ ๋ฐ์ดํฐ์ ์ ํฉ | ๋์ ๋น๋์ ๋จ์ด์ ์ ์ฉ์ด ์ด๋ ค์ |
Kneser-Ney Smoothing | ๋ฌธ๋งฅ ๋ด ์ฌ์ฉ ๋น๋๋ฅผ ๊ณ ๋ ค | ๊ฐ์ฅ ํจ๊ณผ์ ์ด๊ณ ์ ํ๋ ๋์ | ๊ตฌํ์ด ๋ณต์ก |
์์์ Topic Modeling์ ๋ถ๋ฅํด๋ดค์ผ๋ ์ด์ ๊ฐ๊ฐ์ ์ปจ์ ์ ๋ํด์ ์์ธํ๊ฒ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
-
Latent Semantic Analysis (LSA)
3.1. Latent Structure (์ ์ฌ ๊ตฌ์กฐ)
3.1.1 ๊ฐ๋
-
๋ฐ์ดํฐ๋ฅผ ํ๋ ฌ๋ก ํํํ๋ฉด, ํ๋ ฌ์ ํฌ๊ธฐ๊ฐ ๋๋ฌด ํฌ๊ฑฐ๋, ๋๋ฌด ๋ณต์กํ์ฌ ๋ถ์์ด ์ด๋ ต๊ฑฐ๋, ๋ช ํํ ๊ตฌ์กฐ๊ฐ ๋๋ฌ๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์.
- ์ด๋ฌํ ๋ฐ์ดํฐ๋ฅผ ๋ ์ฝ๊ฒ ํด์ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ํ์ํจ.
-
Latent Structure(์ ์ฌ ๊ตฌ์กฐ)๋ ๋ฐ์ดํฐ ์์ ์จ๊ฒจ์ง ํจํด์ด๋ ๊ตฌ์กฐ๋ฅผ ์ฐพ์๋ด๋ ๊ณผ์ ์ ์๋ฏธํจ.
- ์ด๋ฅผ ํตํด, ๋ณด๋ค ๋จ์ํ๊ณ ์๋ฏธ ์๋ ํํ์ ์ป์ ์ ์์.
3.1.2 ๋ฌธ์ ์
- ๋ฐ์ดํฐ ํ๋ ฌ์ด ๋๋ฌด ํฌ๋ค (Too large).
- ๋ฐ์ดํฐ๊ฐ ๋๋ฌด ๋ณต์กํ๋ค (Too complicated).
- ๋ฐ์ดํฐ๊ฐ ๊ตฌ์กฐ์ ์ผ๋ก ๋ช ํํ์ง ์๋ค (Lack of structure).
- ๊ฒฐ์ธก๊ฐ์ด๋ ์ก์์ด ํฌํจ๋ ์ ์์ (Missing Entries, Noisy Entries).
3.1.3 ํด๊ฒฐ์ฑ : Latent Structure ์ฐพ๊ธฐ
- ๋ ๊ฐ๋จํ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํํํ ์ ์์๊น?
- ๋ฐ์ดํฐ์ ์จ๊ฒจ์ง ์ ์ฌ์ ์ธ ๊ตฌ์กฐ(Latent Structure)๊ฐ ์์๊น?
- ์ด๋ฌํ ๊ตฌ์กฐ๋ฅผ ์ด๋ป๊ฒ ์ฐพ์ ์ ์์๊น?
3.2. Matrix Decomposition (ํ๋ ฌ ๋ถํด)
3.2.1 ๊ฐ๋
- ๋ฐ์ดํฐ ํ๋ ฌ์ ๋จ์ํํ์ฌ, ์๋ ๋ฐ์ดํฐ์ ์ค์ํ ๊ตฌ์กฐ๋ง์ ์ ์งํ๋ ์์ ํ๋ ฌ๋ก ๋ถํดํ๋ ๊ณผ์ .
- ํ๋ ฌ ๋ถํด๋ฅผ ์ํํ๋ฉด ์๋ณธ ๋ฐ์ดํฐ๋ณด๋ค ๋ ์์ ์ฐจ์์ ํํ์ ๋ง๋ค ์ ์์ผ๋ฉฐ, ์๋ฏธ ์๋ ํจํด์ ์ฐพ์๋ผ ์ ์์.
3.2.2 ์ํ์ ํํ
AโA^=Lโ RA \approx \hat{A} = L \cdot RAโA^=Lโ R
- AAA : ์๋ณธ ๋ฐ์ดํฐ ํ๋ ฌ
- A^\hat{A}A^ : ๊ทผ์ฌ๋ ํ๋ ฌ
- LLL : ์ผ์ชฝ ํ๋ ฌ (Left Factor, nโ qn ยท qnโ q) โ ์ ์ฌ ๋ณ์(Topics)์ ๋ฌธ์ ๊ด๊ณ
- RRR : ์ค๋ฅธ์ชฝ ํ๋ ฌ (Right Factor, mโ qm ยท qmโ q) โ ์ ์ฌ ๋ณ์(Topics)์ ๋จ์ด ๊ด๊ณ
- qqq : ์ ์ฌ ์ฐจ์(Latent Dimension) โ ์ฃผ์ (Topics)์ ๊ฐ์
3.2.3 ํน์ง
- ๋ฐ์ดํฐ ํฌ๊ธฐ๋ฅผ ์ค์ โ ๊ณ์ฐ๋์ ๊ฐ์์ํด.
- ์ ์ฌ ์๋ฏธ ๊ตฌ์กฐ(Latent Structure)๋ฅผ ์ถ์ถ โ ํจํด์ ๋ถ์ํ๋ ๋ฐ ์ ์ฉ.
- ๊ฐ ์์๋ค์ด ์ ์ฌ ์ฃผ์ ๋ฅผ ๋ฐ์ โ ์๋ฏธ ์๋ ๋ฐ์ดํฐ ํํ ๊ฐ๋ฅ.
3.3. LSA (Latent Semantic Analysis)
3.3.1 ๊ฐ๋
- LSA๋ ํ๋ ฌ ๋ถํด๋ฅผ ์ด์ฉํ์ฌ ๋ฌธ์์ ๋จ์ด ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ฌ ์๋ฏธ ๊ณต๊ฐ์์ ๋ถ์ํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
- Topic modeling ์์ LSA๋, Singular Value Decomposition (SVD, ํน์ด๊ฐ ๋ถํด)์ ์ฌ์ฉํ์ฌ ๋ฌธ์-๋จ์ด ํ๋ ฌ์ ์ ์ฐจ์ ๊ณต๊ฐ์ผ๋ก ๋ณํํจ.
โ Singular Value Decomposition (SVD, ํน์ด๊ฐ ๋ถํด)๋?
- Singular Value Decomposition (SVD, ํน์ด๊ฐ ๋ถํด)๋ ํ๋ ฌ์ ์ธ ๊ฐ์ ์ง๊ต ํ๋ ฌ์ ๊ณฑ์ผ๋ก ๋ถํดํ๋ ์ ํ ๋์ ๊ธฐ๋ฒ์ ๋๋ค.
- ์ด๋ฅผ ํตํด ๊ณ ์ฐจ์์ ํ๋ ฌ์ ์ ์ฐจ์ ์ ์ฌ ์๋ฏธ ๊ณต๊ฐ์ผ๋ก ๋ณํํ ์ ์์ผ๋ฉฐ,
์ฐจ์ ์ถ์
,๋ ธ์ด์ฆ ์ ๊ฑฐ
,๋ฐ์ดํฐ ์์ถ
๋ฑ์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.- SVD์ ํต์ฌ ์๋ฆฌ
- ํ๋ ฌ์ ๋ ์์ ์๋ฏธ ์๋ ๊ตฌ์ฑ ์์๋ก ๋ถํดํ์ฌ ์ฃผ์ํ ํจํด์ ์ถ์ถ
- ๋ฐ์ดํฐ ์ฐจ์์ ์ค์ด๋ ๋์์ ์ค์ํ ์ ๋ณด๋ง ์ ์ง ๊ฐ๋ฅ
- ํน์ด๊ฐ(Singular Value)์ ์ฌ์ฉํ์ฌ ํ๋ ฌ์ ๊ฐ์ฅ ์ค์ํ ๊ตฌ์กฐ๋ฅผ ํ์ต
๐ SVD ์์ ์ ๋ฆฌ
SVD๋ฅผ ํตํด ์ ๋ ฅ ํ๋ ฌ AAA๋ ์ธ ๊ฐ์ ํ๋ ฌ๋ก ๋ถํด๋๋๋ฐ, ๊ฐ ํ๋ ฌ์ ์๋ก ๋ค๋ฅธ ์ญํ ์ ํฉ๋๋ค.
A=UฮฃVTA = U \Sigma V^TA=UฮฃVT
๐ฌ ๊ธฐํธ ์ค๋ช
-
AAA (์ ๋ ฅ ํ๋ ฌ, mรnm \times nmรn)
- ๋ฐ์ดํฐ๋ฅผ ํฌํจํ ์๋ณธ ํ๋ ฌ (Original Matrix)
- ์ด ํ๋ ฌ์ ํ(row)๊ณผ ์ด(column) ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง
-
UUU (์ผ์ชฝ ์ง๊ต ํ๋ ฌ, mรmm \times mmรm)
- A์ ์ด(column) ๋ฐฉํฅ์ผ๋ก ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ์ฃผ์ฑ๋ถ(Principal Component)์ ๋ํ๋
- ์ฆ, UUU์ ์ด ๋ฒกํฐ๋ค์ A์ ์ด ๋ฒกํฐ๋ค์ ์๋ก์ด ์ง๊ต ๊ธฐ์ (orthonormal basis)๋ก ํํํ๋ ์ญํ
- ๊ฐ ํ(row)์ ์๋์ AAA์ ํ์ ์๋ก์ด ๊ธฐ์ ์์ ํํํ ๊ฒ
- ๊ฐ ์ด(column)์ A์ ์ฃผ์ํ ํน์ง(feature)์ ๋ํ๋ด๋ ๋ฒกํฐ (Aํ๋ ฌ์ ์ด์ ์ฃผ์ฑ๋ถ)
- ์: ๊ณ ์ ์ผ๊ตด(Face Recognition) ๋ถ์์์ ํน์ ์ผ๊ตด ํน์ง์ ๋ํ๋ด๋ ๋ฒกํฐ
- A์ ์ด(column) ๋ฐฉํฅ์ผ๋ก ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ์ฃผ์ฑ๋ถ(Principal Component)์ ๋ํ๋
-
ฮฃ\Sigmaฮฃ (๋๊ฐ ํ๋ ฌ, mรnm \times nmรn)
- A์์ ์ค์ํ ์ ๋ณด(ํน์ด๊ฐ, Singular Value)๋ฅผ ํฌํจํ๋ ํ๋ ฌ
- ๋๊ฐ ์์๋ง ์กด์ฌํ๋ฉฐ, ๋๊ฐ์ ์ ๊ฐ(ํน์ด๊ฐ)์ A์ ์ฃผ์ํ ํจํด(Principal Components)์ ๊ฐ๋๋ฅผ ๋ํ๋
- ํฐ ํน์ด๊ฐ(Singular Value)์ผ์๋ก ๋ฐ์ดํฐ์์ ์ค์ํ ์ ๋ณด
- ์์ ํน์ด๊ฐ์ ๋
ธ์ด์ฆ๋ ๋ ์ค์ํ ์ ๋ณด๋ฅผ ์๋ฏธ
- ์: ์์ถ(compression) task์์ ์์ ํน์ด๊ฐ์ ์ ๊ฑฐํ๋ฉด ์ค์ํ ์ ๋ณด๋ง ์ ์ง๋จ
-
VTV^TVT (์ค๋ฅธ์ชฝ ์ง๊ต ํ๋ ฌ, nรnn \times nnรn)
- A์ ํ(row) ๋ฐฉํฅ์ผ๋ก ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ์ฃผ์ฑ๋ถ์ ๋ํ๋
- ์ฆ, VTV^TVT์ ํ ๋ฒกํฐ๋ค์ A์ ํ ๋ฒกํฐ๋ค์ ์๋ก์ด ์ง๊ต ๊ธฐ์ ์์ ํํ
- ๊ฐ ์ด(column)์ ์๋์ AAA์ ์ด์ ์๋ก์ด ๊ธฐ์ ์์ ํํํ ๊ฒ
- ๊ฐ ํ(row)์ A์ ์ฃผ์ํ ํน์ง(feature)์ ๋ํ๋ด๋ ๋ฒกํฐ (Aํ๋ ฌ์ ํ์ ์ฃผ์ฑ๋ถ)
- ์: ๋ฌธ์ ๋ถ์์์ ์ฃผ์ (Topic)๋ฅผ ๋ํ๋ด๋ ๋ฒกํฐ
- A์ ํ(row) ๋ฐฉํฅ์ผ๋ก ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ์ฃผ์ฑ๋ถ์ ๋ํ๋
(์ฐธ๊ณ ) ๐ SVD ๊ธฐํํ์ ํด์
๐ SVD๋ ๋ณธ์ง์ ์ผ๋ก A๋ผ๋ ์ ํ ๋ณํ์ โ
ํ์ (Rotation)
โํฌ๊ธฐ ์กฐ์ (Scaling)
โ๋ค์ ํ์ (Rotation)
โํ๋ ๊ณผ์ ์ผ๋ก ํด์ํ ์ ์์ต๋๋ค.A=UฮฃVTA = U \Sigma V^TA=UฮฃVT
- 1๏ธโฃ VTV^TVT: ๊ธฐ์ ๋ณํ (Basis Change)
- ๋ฐ์ดํฐ(ํ๋ ฌ A)๋ฅผ ์ ์ ํ ์ง๊ต ์ขํ๊ณ(Orthogonal Basis)๋ก ๋ณํ
- ์ฆ, ์๋ ์ขํ๊ณ์์ ์๋ก์ด ์ขํ๊ณ๋ก ๋ณํํ๋ ์ญํ
- 2๏ธโฃ ฮฃ\Sigmaฮฃ: ์ถ ๋ฐฉํฅ ์ค์ผ์ผ๋ง (Scaling along Principal Axes)
- ๊ฐ ์ขํ์ถ ๋ฐฉํฅ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณํ(ํฌ๊ธฐ ์กฐ์ )
- ์ฆ, ์ค์ํ ์ถ(Principal Component) ๋ฐฉํฅ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋๋ฆฌ๊ณ ์ค์ด๋ ์ญํ
- 3๏ธโฃ UUU: ๋ค์ ํ์ (Final Rotation back to original space)
- ๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ ์ขํ๊ณ๋ก ํ์ ๋ณํ
- ๐ก ์ฆ, SVD๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ค ์ ์ ๋ ฌ๋ (์ง๊ต) ์ขํ๊ณ๋ก ๋ณํํ๊ณ , ๊ทธ ์์์ ์ฃผ์ถ์ ๋ฐ๋ผ ํฌ๊ธฐ ์กฐ์ ํ ํ, ๋ค์ ์๋ ๊ณต๊ฐ์ผ๋ก ๋ณํํ๋ ๊ณผ์ ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค.
์ด์ง ๊ฐ๋ ์ ์ธ ์ด์ผ๊ธฐ๋ฅผ ํ๋ค๊ฐ ์์ผ๋ก ๋น ์ก๋๋ฐ ๋ค์ LSA์ ๋ํด์ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
- LSA๋ ๋ฌธ์-๋จ์ด ํ๋ ฌ(document-term matrix)์ SVD๋ฅผ ์ ์ฉํ์ฌ ์จ๊ฒจ์ง ์๋ฏธ(latent semantics)๋ฅผ ์ถ์ถํ๋ ๊ธฐ๋ฒ์ ๋๋ค.
-
LSA๋ฅผ ํตํด ์๋์ ๊ฐ์ ๊ฒ๋ค์ ์ํํ ์ ์์ต๋๋ค:
- ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ์์นํํ๊ณ , ๋ฌธ์-๋จ์ด ํ๋ ฌ๋ก ํํ
- SVD๋ฅผ ์ ์ฉํ์ฌ ์ค์ํ ์๋ฏธ๋ง ๋จ๊ธฐ๊ณ , ๋ ธ์ด์ฆ ์ ๊ฑฐ
- ์ฐจ์ ์ถ์๋ฅผ ํตํด ๋ฌธ์ ๊ฐ ์๋ฏธ์ ์ ์ฌ๋๋ฅผ ํ์
3.3.2 LSA์ ์ํ์ ํํ
ํ๋ ฌ๋ถํด ๊ธฐ๋ฒ(SVD)์ธ LSA๋ฅผ ์์์ผ๋ก ํํํ๋ฉด ์๋์ ๊ฐ์ด ๋ํ๋ผ ์ ์์ต๋๋ค:
AโUkฮฃkVkTA \approx U_k \Sigma_k V_k^TAโUkโฮฃkโVkTโ
- AAA (Term-Document Matrix): ๋จ์ด-๋ฌธ์ ํ๋ ฌ (์ ๋ ฅ ๋ฐ์ดํฐ)
- UkU_kUkโ (Left Singular Vectors): ๋จ์ด์ ์ฃผ์ (Topic) ๊ฐ์ ๊ด๊ณ
- ฮฃk\Sigma_kฮฃkโ (Singular Values, ํน์ด๊ฐ ํ๋ ฌ): ์ฃผ์ ์ ์ค์๋๋ฅผ ๋ํ๋
- VkTV_k^TVkTโ (Right Singular Vectors): ๋ฌธ์์ ์ฃผ์ (Topic) ๊ฐ์ ๊ด๊ณ
3.3.3 LSA์ ์ฃผ์ ๊ณผ์
Step 1: ์๋ณธ ํ๋ ฌ AAA๋ฅผ SVD๋ก ๋ถํด
AโUkฮฃkVkTA \approx U_k \Sigma_k V_k^TAโUkโฮฃkโVkTโ
-
์ฌ๊ธฐ์ kkk๋ ์ ํํ ์ ์ฌ ์ฐจ์์ ์
- ๋ณดํต kkk๋ฅผ ๊ธฐ์กด ์ฐจ์๋ณด๋ค ์๊ฒ ์ค์ ํ์ฌ ์๋ฏธ ์๋ ์ ๋ณด๋ง ์ ์ง.
-
Uk,ฮฃk,VkTU_k, \Sigma_k, V_k^TUkโ,ฮฃkโ,VkTโ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ ํ๋ ฌ์ ๊ทผ์ฌํจ.
Step 2: ์ฃผ์ด์ง ํ๋ ฌ AkA_kAkโ๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ ๋ถ์
UkTAk=UkTUkฮฃkVkT=IฮฃkVkT=ฮฃkVkTU_k^T A_k = U_k^T U_k \Sigma_k V_k^T = \mathbf{I} \Sigma_k V_k^T = \Sigma_k V_k^TUkTโAkโ=UkTโUkโฮฃkโVkTโ=IฮฃkโVkTโ=ฮฃkโVkTโ
- ์ด ๊ณผ์ ์์ ๋ฐ์ดํฐ์ ์ค์ํ ์๋ฏธ(์ ์ฌ ์๋ฏธ)๋ฅผ ๋ณด์กดํ๋ฉด์ ์ฐจ์์ ์ถ์ํจ.
Step 3: ๋ฐ์ดํฐ ๋ถ์์ ํ์ฉ
LSA๋ฅผ ํตํด ๋์ถ๋ ๊ฐ๊ฐ์ ํ๋ ฌ์ ํ์ฉํ์ฌ ๋ฐ์ดํฐ ๋ถ์์ ์ํํ ์ ์์ต๋๋ค.
-
LSA์์ ๋ถํด๋ ํ๋ ฌ (UkU_kUkโ, ฮฃk\Sigma_kฮฃkโ, VkTV_k^TVkTโ)์ ๋ค์ํ ๋ฐฉ์์ผ๋ก ํ์ฉ๋ ์ ์์ผ๋ฉฐ, ๋ํ์ ์ธ ์์ฉ ์ฌ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Image Source : https://medium.com/analytics-vidhya/what-is-topic-modeling-161a76143cae
1๏ธโฃ UkU_kUkโ: โํ ํฝ๋ณ ์ฃผ์ ๋จ์ด ์ฐพ๊ธฐโ
๐ ๋ชฉ์ : ๊ฐ ํ ํฝ(์ ์ฌ ์๋ฏธ)์ ๋ํํ๋ ๋จ์ด๋ฅผ ์ถ์ถํ์ฌ ์ฃผ์ ๋ฅผ ํด์ํ๊ธฐ ์ํจ.
๐ค ์ค๋ช : UkU_kUkโ๋ ๋จ์ด์ ํ ํฝ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ํ๋ ฌ๋ก, ํน์ ์ฃผ์ ๋ฅผ ๊ตฌ์ฑํ๋ ์ค์ํ ๋จ์ด๋ค์ ํ์ ํ ์ ์์ต๋๋ค.
- ์ด๋ฅผ ํ์ฉํ๋ฉด ํ ํฝ ๋ชจ๋ธ๋ง์ ํตํด ๊ฐ ์ฃผ์ ๋ฅผ ๋ํํ๋ ๋จ์ด๋ฅผ ์ถ์ถํ ์ ์์ต๋๋ค.
๐ ํ์ฉ ์์:
- ๋ด์ค ๊ธฐ์ฌ์์ ์ฃผ์ ๋ณ ํต์ฌ ํค์๋ ์ถ์ถ
- ๋ ผ๋ฌธ, ๋ฆฌ๋ทฐ ๋ฐ์ดํฐ์์ ์ฃผ์ ํ ํฝ์ ๋ถ์
2๏ธโฃ VkV_kVkโ: โ๋ฌธ์ ๊ฐ ์ ์ฌ๋ ๊ณ์ฐโ
๐ ๋ชฉ์ : ๋ฌธ์ ๊ฐ์ ์๋ฏธ์ ์ ์ฌ๋๋ฅผ ๊ณ์ฐํ์ฌ ๋น์ทํ ๋ฌธ์๋ฅผ ์ฐพ๊ธฐ ์ํจ.
๐ค ์ค๋ช : VkV_kVkโ๋ ๋ฌธ์์ ํ ํฝ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ํ๋ ฌ์ ๋๋ค.
- ์ด๋ฅผ ํ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ์ ์๋ฏธ์ ์ ์ฌ๋๋ฅผ ๊ณ์ฐํ์ฌ ๋น์ทํ ๋ฌธ์๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
๐ ํ์ฉ ์์:
- ๋ด์ค ๊ธฐ์ฌ ์ค ๋น์ทํ ๋ด์ฉ์ ๋ค๋ฃฌ ๋ฌธ์ ์ถ์ฒ
- ๋ ผ๋ฌธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ์ฌํ ์ฐ๊ตฌ ๋ ผ๋ฌธ ์ถ์ฒ
- ๊ณ ๊ฐ ๋ฆฌ๋ทฐ์์ ๋น์ทํ ์๊ฒฌ์ ๊ฐ์ง ๋ฆฌ๋ทฐ ๊ตฐ์งํ
3๏ธโฃ VkV_kVkโ: โ์๋ฏธ ๊ธฐ๋ฐ ๊ฒ์ (Query Expansion)โ
๐ ๋ชฉ์ : ๋จ์ ํค์๋ ๋งค์นญ์ด ์๋, ์๋ฏธ์ ์ผ๋ก ์ฐ๊ด๋ ๋ฌธ์๋ฅผ ์ฐพ๊ธฐ ์ํจ.
๐ค ์ค๋ช : VkV_kVkโ๋ฅผ ํ์ฉํ๋ฉด ๋จ์ ํค์๋ ๋งค์นญ์ด ์๋, ์๋ฏธ์ ์ผ๋ก ๊ด๋ จ ์๋ ๋ฌธ์๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค.
- ์ด๋ ์ ํต์ ์ธ ๊ฒ์ ์์ง๊ณผ ๋ฌ๋ฆฌ ์๋ฏธ์ ์ ์ฌ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ํ์ฅํ๋ ์ญํ ์ ํฉ๋๋ค.
๐ ํ์ฉ ์์:
- ์ฌ์ฉ์๊ฐ โAI ์ฃผ์ ์์ฅโ์ ๊ฒ์ํ๋ฉด โ์๋น๋์ ์ฃผ๊ฐ ํ๋ฝโ, โ๋ฐ๋์ฒด ์ฃผ์ ๋ณ๋โ ๊ฐ์ ๋ฌธ์ ์ถ์ฒ
- ๊ณ ๊ฐ์ด โ๋ฐฐ์ก ๋ฆ์โ์ ๊ฒ์ํ๋ฉด โ๋ฐฐ์ก ์ง์ฐ ๋ณด์ ์ ์ฑ โ ๋ฌธ์ ์ถ์ฒ
- ๋ ผ๋ฌธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ โ๊ฐํ ํ์ตโ์ ๊ฒ์ํ๋ฉด โ๋ฅ๋ฌ๋ ๊ธฐ๋ฐ ๊ฐํ ํ์ตโ ๋ ผ๋ฌธ๋ ์ถ์ฒ
3.4 LSA์ ํน์ง
โ ์ฅ์ :
- ์ฐจ์ ์ถ์๋ฅผ ํตํด ์ก์์ ์ ๊ฑฐํ๊ณ ์ค์ํ ์๋ฏธ ๊ตฌ์กฐ๋ง ์ ์งํ ์ ์์.
- ๋จ์ด ๊ฐ ์๋ฏธ์ ์ ์ฌ์ฑ์ ์ฐพ์ ์ ์์ (์: Synonym, ์๋ฏธ์ ์ผ๋ก ๊ฐ๊น์ด ๋จ์ด๋ค์ ์ ์ฌํ๊ฒ ๋ถ์).
- ๊ฒ์, ์ถ์ฒ ์์คํ , ๋ฌธ์ ๋ถ๋ฅ ๋ฑ์ ํ์ฉ ๊ฐ๋ฅ.
โ ํ๊ณ:
- ํ๋ฅ ์ ๋ชจ๋ธ์ด ์๋๋ฏ๋ก, ๊ฒฐ๊ณผ ํด์์ด ์ด๋ ค์ (ํ๋ฅ ๊ธฐ๋ฐ ๋ชจ๋ธ์ธ LDA์ ๋น๊ต๋จ).
- ์๋ก์ด ๋ฌธ์์ ๋ํ ์ผ๋ฐํ๊ฐ ์ด๋ ค์ โ ๊ธฐ์กด ํ์ต ๋ฐ์ดํฐ๊ฐ ๋ณํ๋ฉด ๋ค์ ํ์ตํด์ผ ํจ.
- ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ ๊ท ๋ถํฌ๋ฅผ ๋ฐ๋ฅธ๋ค๊ณ ๊ฐ์ ํจ โ ์ค์ ์์ฐ์ด ๋ฐ์ดํฐ์ ๋ถํฌ์ ๋ค๋ฅผ ์ ์์.
3.5 LSA์ ์ค์ต
๋ค์์ LSA ์ฝ๋ ์ค์ต์ ๋๋ค.
- ์ค์ ์ต์ ๋ด์ค ๊ธฐ์ฌ๋ฅผ ๊ฐ์ ธ์์ ์ด๋ฅผ ๋ฐํ์ผ๋ก LSA๋ฅผ ์ํํด๋ณด์์ต๋๋ค.
- ๊ธฐ์ฌ ์ ๋ชฉ : ๋ฅ์ํฌ๊ฐ ๋ญ๊ธธ๋ ์๋น๋์๊ฐ ๋ํญ๋ฝํด?โฆ์ค๊ตญ AI ๋ํ (ํ๊ฒจ๋ )
- ๋งํฌ : https://www.hani.co.kr/arti/international/international_general/1179929.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.decomposition import TruncatedSVD
from sklearn.feature_extraction.text import TfidfVectorizer
# 1. ๋ด์ค ๊ธฐ์ฌ ๋ฐ์ดํฐ ์ค๋น (์์ ๋ฌธ์)
documents = [
"์ค๊ตญ์ ์ ๋น์ฉ ์ธ๊ณต์ง๋ฅ(AI) ๋ฅ์ํฌ(DeepSeek)์ ๋ฑ์ฅ์ ์๋น๋์ ๋ฑ ๋ฏธ๊ตญ์ ์ธ๊ณต์ง๋ฅ(AI) ๊ด๋ จ ๋น
ํ
ํฌ ๊ธฐ์
๋ค์ด ํ๋ค๋ฆฌ๊ณ ์๋ค.",
"๋ฅ์ํฌ ๋ฑ์ฅ์ ๊ธฐ์กด ์ธ๊ณต์ง๋ฅ ๊ธฐ์
๋ค์ ๊ฒฝ์๋ ฅ์ด ์์ฌ๋ฐ์ผ๋ฉฐ ์ต์
์ ์ฃผ๊ฐ ํญ๋ฝ์ด ์ผ์ด๋ฌ๋ค.",
"์ค๊ตญ์ด ๊ฐ์ธ๊ณ ๋ฐ์ด๋ ์ฑ๋ฅ์ ์ธ๊ณต์ง๋ฅ์ ๊ฐ๋ฐํจ์ผ๋ก์จ, ์ด ๋ถ์ผ์์ ๋ฏธ๊ตญ์ ์์ค ์ ์๋ค๋ ๋ถ์๋ ๋์จ๋ค.",
"27์ผ ๋ฏธ๊ตญ ์ฆ์์์๋ ์ฑ์งํผํฐ(ChatGPT) ๋ฑ ์์ฑํ ์ธ๊ณต์ง๋ฅ ์ถ์ ์ดํ ์ฆ์์์ ์ต๋ ๋น
ํ
ํฌ ๊ธฐ์
์ผ๋ก ์ฑ์ฅํ ์๋น๋์๊ฐ ๋ฌด๋ ค 17% ํญ๋ฝํด, 5890์ต๋ฌ๋ฌ๊ฐ ์ฆ๋ฐ๋๋ค.",
"์๋น๋์ ๋ฑ ๋ฏธ ์ฆ์์์ ๋น์ค์ด ํฐ ๋น
ํ
ํฌ ๊ธฐ์
๋ค์ด ์ผ์ ํ ํญ๋ฝํ๋ฉฐ ๋์ค๋ฅ ์ง์๋ 3.1%, ์์ค์คํผ(S&P)500 ์ง์๋ 1.5%๋ ๋จ์ด์ก๋ค.",
"ํ์ง๋ง, ๋น
ํ
ํฌ ๊ธฐ์
์ด ํธ์
๋์ง ์์ ๋ค์ฐ์กด์ค ์ง์๋ 0.7% ์ฌ๋๋ค.",
"ํนํ, ์ธ๊ณต์ง๋ฅ ๋ฐ ๋ฐ๋์ฒด ๊ด๋ จ์ฃผ๋ก ๊ตฌ์ฑ๋ ํ๋ผ๋ธํผ์ ๋ฐ๋์ฒด์ง์๋ 9.15%๋ ํญ๋ฝํด, ์ง๋ํด 9์3์ผ 7.75% ์ดํ ์ต๋๋ก ๋จ์ด์ก๋ค.",
"์ด ์ง์๊ฐ 9% ์ด์ ํญ๋ฝํ๊ธฐ๋ ์ฝ๋ก๋19 ์ถฉ๊ฒฉ์ด ๊ฐํด์ก๋ ์ง๋ 2020๋
3์18์ผ ์ดํ ์ฒ์์ด๋ค."
]
# 2. TF-IDF ๋ฒกํฐํ
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(documents)
# 3. LSA ์ ์ฉ (SVD๋ฅผ ์ฌ์ฉํ์ฌ ์ฐจ์ ์ถ์)
num_topics = 2 # 2๊ฐ์ ์ฃผ์ ์ฃผ์ ์ถ์ถ
svd = TruncatedSVD(n_components=num_topics)
X_lsa = svd.fit_transform(X)
# 4. ๋จ์ด-ํ ํฝ ํ๋ ฌ (U_k)
terms = vectorizer.get_feature_names_out()
word_topic_matrix = pd.DataFrame(svd.components_.T, index=terms, columns=[f"Topic {i+1}" for i in range(num_topics)])
# 5. ๋ฌธ์-ํ ํฝ ํ๋ ฌ (V_k)
document_topic_matrix = pd.DataFrame(X_lsa, index=[f"Doc {i+1}" for i in range(len(documents))], columns=[f"Topic {i+1}" for i in range(num_topics)])
# 6. ์ฃผ์ ํ ํฝ ๋ณ ์์ ๋จ์ด ํ์ธ (๊ฐ์ฅ ์ค์ํ ๋จ์ด 10๊ฐ ์ถ๋ ฅ)
print("๐ LSA ํ ํฝ ๋ณ ์ฃผ์ ๋จ์ด")
for i in range(num_topics):
print(f"\n๐น Topic {i+1}")
print(word_topic_matrix[f"Topic {i+1}"].abs().sort_values(ascending=False).head(10))
# 7. ๋ฌธ์-ํ ํฝ ๋ถํฌ ์๊ฐํ
plt.figure(figsize=(10, 6))
sns.heatmap(document_topic_matrix, annot=True, cmap="coolwarm", fmt=".2f")
plt.title("๋ฌธ์๋ณ ํ ํฝ ๋ถํฌ (LSA ๊ธฐ๋ฐ)")
plt.xlabel("ํ ํฝ")
plt.ylabel("๋ฌธ์")
plt.show()
# 8. ๊ฒฐ๊ณผ ์ถ๋ ฅ
print("\n๐ LSA ๋จ์ด-ํ ํฝ ํ๋ ฌ (U_k)")
print(word_topic_matrix)
print("\n๐ LSA ๋ฌธ์-ํ ํฝ ํ๋ ฌ (V_k)")
print(document_topic_matrix)
์ฝ๋ ์ค๋ช
-
TF-IDF ๋ฒกํฐํ๋ฅผ ํตํด ๋ฌธ์๋ฅผ ์์นํ๋ ๋ฒกํฐ๋ก ๋ณํ (A ์์ฑ)
-
SVD๋ฅผ ์ฌ์ฉํ์ฌ ์ฐจ์ ์ถ์ (๐=2)
-
์ฝ์ฌ์ธ ์ ์ฌ๋(Cosine Similarity) ๋ฅผ ๊ณ์ฐํ์ฌ ๋ฌธ์ ๊ฐ ์ ์ฌ๋ ์ธก์
-
์ ์ฌ๋ ํ๋ ฌ์ ์ถ๋ ฅํ์ฌ ๋ฌธ์ ๊ฐ์ ๊ด๊ณ๋ฅผ ํ์ธ
๋ถ์ ์ํ
(1) UkU_kUkโ, ฮฃk\Sigma_kฮฃkโ, VkV_kVkโ ๋ถํด ๊ฒฐ๊ณผ
-
์ ์ฝ๋๋ฅผ ๋๋ฆฌ๋ฉด ๊ฐ๊ฐ ๋ค์๊ณผ ๊ฐ์ด UkU_kUkโ, ฮฃk\Sigma_kฮฃkโ, VkV_kVkโ๊ฐ ๋์ถ๋์ด ๋์ค๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
- ๋จ์ด-ํ ํฝ ํ๋ ฌ (UkU_kUkโ)
- Topic Importance (๐บ)
- ๋ฌธ์-ํ ํฝ ํ๋ ฌ (VkV_kVkโ)
(2) Topic ๋ถํด ๊ฒฐ๊ณผ - truncated svd (k=2)
- LSA๋ฅผ ํตํด ๋ด์ค ๊ธฐ์ฌ์์ 2๊ฐ์ ์ฃผ์ ํ ํฝ์ ์ถ์ถํ์ต๋๋ค.
-
Topic 1
: โAI & ์ฆ์ ํญ๋ฝ ๊ด๋ จโ=> โAI ๊ธฐ์ ๋ฐ ์ฆ์ ํญ๋ฝ ๊ด๋ จ ๋ด์คโ๋ก ํด์ ๊ฐ๋ฅ
-
Topic 2
: โ์ฆ์ ๋ฐ ๋ค์ฐ์กด์ค ์์น/ํ๋ฝ ๊ด๋ จโ=> โ์ฆ์ ๋ณํ์ ๋ค์ฐ์กด์ค ๊ด๋ จ ๋ด์คโ๋ก ํด์ ๊ฐ๋ฅ
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
๐ LSA ํ ํฝ ๋ณ ์ฃผ์ ๋จ์ด
๐น Topic 1
์ง์๋ 0.314311
์ธ๊ณต์ง๋ฅ 0.287213
๋น
ํ
ํฌ 0.274496
ai 0.218333
๊ธฐ์
๋ค์ด 0.198402
์๋น๋์ 0.198402
์ฆ์์์ 0.170829
๋จ์ด์ก๋ค 0.167795
๋ฑ์ฅ์ 0.163324
๋ฅ์ํฌ 0.163324
Name: Topic 1, dtype: float64
๐น Topic 2
์ง์๋ 0.374815
์ธ๊ณต์ง๋ฅ 0.248398
์ฌ๋๋ค 0.207143
ํ์ง๋ง 0.207143
์์ 0.207143
๋ค์ฐ์กด์ค 0.207143
๊ธฐ์
์ด 0.207143
ํธ์
๋์ง 0.207143
๋ฅ์ํฌ 0.196706
๋ฑ์ฅ์ 0.196706
Name: Topic 2, dtype: float64
(3) ๋ฌธ์(๋ฌธ์ฅ) ๋ณ ํ ํฝ ๋ถํฌ
๋ค์์ ๋ด์ค ๊ธฐ์ฌ์ ๊ฐ ๋ฌธ์ฅ๋ค์ด ๊ฐ๊ฐ ์ด๋ค topic์ ์ฐ๊ด์ฑ์ ๋๋์ง ๋ถ์ํ ๊ทธ๋ฆผ์ ๋๋ค.
์๋์ ๊ฐ์ด ํด์ํด๋ณผ ์ ์์ต๋๋ค:
- Doc 1, 5 โ Topic 1๊ณผ ๊ฐํ ์ฐ๊ด์ฑ (AI & ์ฆ์ ํญ๋ฝ ๊ด๋ จ ๋ด์ค)
- Doc 5, 6 โ Topic 2์ ๊ฐํ ์ฐ๊ด์ฑ (์ฆ์ & ๋ค์ฐ์กด์ค ๊ด๋ จ ๋ด์ค)
- Doc 3์ ๊ฑฐ์ ๋ ๊ฐ์ ํ ํฝ๊ณผ ์ฐ๊ด์ด ์์ (์ผ๋ฐ์ ์ธ ๋ด์ฉ์ด๊ฑฐ๋ LSA์์ ์๋ฏธ์ ๊ด๊ณ๊ฐ ๋ฎ์ ๋ฌธ์)
- Doc 2, 7 โ Topic 1๊ณผ ๋ฐ์ ํ ๊ด๊ณ, ํ์ง๋ง Topic 2์๋ ๋ฐ๋ ์ฑํฅ (์ฆ, AI ์ค์ฌ ๋ด์ค์ผ ๊ฐ๋ฅ์ฑ ๋์)
๐ (์ฌํ) ์ถ๊ฐ ๋ถ์ ์๋๋ฆฌ์ค
- ์์์ ์ ์ํด๋ณด์๋ โStep 3: ๋ฐ์ดํฐ ๋ถ์์ ํ์ฉโ์ ๋ํด์ ์ข ๋ ์ฌํ์๊ฒ ๋ถ์ํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ด ๋ถ์์ ํด๋ณด์ค ์ ์์ต๋๋ค.
1๏ธโฃ UkU_kUkโ : ํ ํฝ๋ณ ์ฃผ์ ๋จ์ด ์ฐพ๊ธฐ
1 2 3 4 5 6 top_n_words = 5 lsa_topic_words = {} for i in range(num_topics): lsa_topic_words[f"Topic {i+1}"] = word_topic_matrix[f"Topic {i+1}"].abs().sort_values(ascending=False).head(top_n_words) lsa_topic_words_df = pd.DataFrame(lsa_topic_words) lsa_topic_words_df
2๏ธโฃ VkV_kVkโ : ๋ฌธ์ ๊ฐ ์ ์ฌ๋ ๊ณ์ฐ
1 2 3 4 from sklearn.metrics.pairwise import cosine_similarity doc_similarity = cosine_similarity(document_topic_matrix) doc_similarity_df = pd.DataFrame(doc_similarity, index=[f"Doc {i+1}" for i in range(len(documents))], columns=[f"Doc {i+1}" for i in range(len(documents))]) doc_similarity_df
3๏ธโฃ VkV_kVkโ : ์๋ฏธ ๊ธฐ๋ฐ ๊ฒ์
1 2 3 4 5 6 7 8 query = ["AI ์ฃผ์ ์์ฅ"] query_vector = vectorizer.transform(query) # TF-IDF ๋ณํ query_lsa = svd.transform(query_vector) # LSA ๋ณํ query_similarity = cosine_similarity(query_lsa, X_lsa) top_n = 3 most_relevant_docs = query_similarity.argsort()[0][-top_n:][::-1] for _doc in most_relevant_docs: print(documents[_doc])
4. Probabilistic Latent Semantic Analysis (pLSA)
4.1 pLSA์ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ
- Latent Semantic Analysis(LSA)๋ Singular Value Decomposition(SVD)์ ์ฌ์ฉํ์ฌ ๋ฌธ์์ ๋จ์ด ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ฐจ์ ๋ฒกํฐ ๊ณต๊ฐ์ผ๋ก ํํํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
ํ์ง๋ง LSA๋ ๋ค์๊ณผ ๊ฐ์ ํ๊ณ๋ฅผ ๊ฐ์ง๊ณ ์์์ต๋๋ค.
-
์ ํ ๋ชจ๋ธ์ ํ๊ณ
- LSA๋ ํ๋ ฌ ๋ถํด ๊ธฐ๋ฐ์ ์ ํ ๋ชจ๋ธ๋ก, ๋จ์ด์ ๋ฌธ์์ ๊ด๊ณ๋ฅผ ๋จ์ํ ๋ฒกํฐ ๊ณต๊ฐ์์ ํํํฉ๋๋ค.
- ํ์ง๋ง ์ธ์ด ๋ฐ์ดํฐ๋ ์ข ์ข ๋น์ ํ์ ์ธ ๊ด๊ณ๋ฅผ ๊ฐ์ง๋ฉฐ, ๋จ์ํ ํ๋ ฌ ์ฐ์ฐ๋ง์ผ๋ก๋ ์๋ฏธ์ ๊ตฌ์กฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์ตํ๊ธฐ ์ด๋ ต์ต๋๋ค.
- LSA๋ ํ๋ ฌ ๋ถํด ๊ธฐ๋ฐ์ ์ ํ ๋ชจ๋ธ๋ก, ๋จ์ด์ ๋ฌธ์์ ๊ด๊ณ๋ฅผ ๋จ์ํ ๋ฒกํฐ ๊ณต๊ฐ์์ ํํํฉ๋๋ค.
-
ํ๋ฅ ์ ํด์์ ๋ํดํจ
- LSA์ ๊ฒฐ๊ณผ๋ ๋ฒกํฐ ๊ฐ์ผ๋ก ๋ํ๋๋ฉฐ, ์ด๋ฅผ ํ๋ฅ ์ ์ธ ์๋ฏธ๋ก ํด์ํ๊ธฐ ์ด๋ ต์ต๋๋ค.
- ์๋ฅผ ๋ค์ด, ํน์ ๋ฌธ์๊ฐ ํน์ ํ ํฝ์ ํฌํจํ ํ๋ฅ ์ด๋ ํน์ ๋จ์ด๊ฐ ํน์ ํ ํฝ์์ ๋ฐ์ํ ํ๋ฅ ๋ฑ์ ์ถ๋ก ํ๋ ๊ฒ์ด ์ด๋ ต์ต๋๋ค.
- LSA์ ๊ฒฐ๊ณผ๋ ๋ฒกํฐ ๊ฐ์ผ๋ก ๋ํ๋๋ฉฐ, ์ด๋ฅผ ํ๋ฅ ์ ์ธ ์๋ฏธ๋ก ํด์ํ๊ธฐ ์ด๋ ต์ต๋๋ค.
-
์๋ก์ด ๋ฌธ์ ์ผ๋ฐํ ๋ถ๊ฐ๋ฅ
- LSA๋ ๊ณ ์ ๋ ๋ฌธ์-๋จ์ด ํ๋ ฌ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ตํ๊ธฐ ๋๋ฌธ์, ํ์ต๋์ง ์์ ์๋ก์ด ๋ฌธ์๊ฐ ๋ฑ์ฅํ๋ฉด ๊ธฐ์กด ๋ชจ๋ธ์ ํ์ฅํ๋ ๊ฒ์ด ์ด๋ ต์ต๋๋ค.
- ์๋ก์ด ๋ฌธ์๋ฅผ ์ฒ๋ฆฌํ๋ ค๋ฉด ๊ธฐ์กด ํ๋ ฌ์ ๋ค์ ๊ตฌ์ฑํ๊ณ ๋ค์ SVD๋ฅผ ์ํํด์ผ ํฉ๋๋ค.
- LSA๋ ๊ณ ์ ๋ ๋ฌธ์-๋จ์ด ํ๋ ฌ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ตํ๊ธฐ ๋๋ฌธ์, ํ์ต๋์ง ์์ ์๋ก์ด ๋ฌธ์๊ฐ ๋ฑ์ฅํ๋ฉด ๊ธฐ์กด ๋ชจ๋ธ์ ํ์ฅํ๋ ๊ฒ์ด ์ด๋ ต์ต๋๋ค.
-
๋ฉ๋ชจ๋ฆฌ ๋ฐ ๊ณ์ฐ๋ ๋ฌธ์
- SVD ์ฐ์ฐ์ O(nยณ)์ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ฉฐ, ๋ฌธ์ ์๊ฐ ๋ง์์ง์๋ก ๊ณ์ฐ๋์ด ๊ธ๊ฒฉํ ์ฆ๊ฐํฉ๋๋ค.
- ๋ฐ๋ผ์ ๋๊ท๋ชจ ๋ฐ์ดํฐ์ ์์ LSA๋ฅผ ์ ์ฉํ๋ ๊ฒ์ ํ์ค์ ์ผ๋ก ์ด๋ ค์ด ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
- SVD ์ฐ์ฐ์ O(nยณ)์ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ฉฐ, ๋ฌธ์ ์๊ฐ ๋ง์์ง์๋ก ๊ณ์ฐ๋์ด ๊ธ๊ฒฉํ ์ฆ๊ฐํฉ๋๋ค.
์์ ๊ฐ์ LSA์ ํ๊ณ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Probabilistic Latent Semantic Analysis (pLSA)๊ฐ ๋ฑ์ฅํ์์ต๋๋ค.
4.2 pLSA ๊ฐ๋
- pLSA๋ ํ๋ฅ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฌธ์ ๋ด ๋จ์ด๊ฐ ์ ์ฌ์ ์ธ ํ ํฝ(Latent Topics)์ ์ํด ์์ฑ๋๋ค๊ณ ๊ฐ์ ํ๋ ๊ธฐ๋ฒ์
๋๋ค.
- ์ฆ, ํน์ ๋ฌธ์์ ํฌํจ๋ ๋จ์ด๋ ํด๋น ๋ฌธ์์ ์ฃผ์ (ํ ํฝ)๋ก๋ถํฐ ํ๋ฅ ์ ์ผ๋ก ์์ฑ๋๋ค๋ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฆ ๋๋ค.
๐ pLSA์ ํต์ฌ ๊ฐ์
- ๋ฌธ์๋ ์ฌ๋ฌ ๊ฐ์ ํ ํฝ(Topic)์ผ๋ก ๊ตฌ์ฑ๋๋ค.
- ๊ฐ ํ ํฝ์ ํน์ ๋จ์ด๋ค์ ํ๋ฅ ๋ถํฌ(Word Distribution)๋ฅผ ๊ฐ์ง๋ค.
- ๊ฐ ๋จ์ด๋ ํน์ ํ ํฝ์์ ๋ฐ์ํ ํ๋ฅ ์ ๊ฐ์ง๋ฉฐ, ๋ฌธ์ ๋ด ๋จ์ด ๋ถํฌ๋ ์ด๋ฌํ ํ ํฝ ๋ถํฌ์ ํผํฉ์ผ๋ก ํํ๋๋ค.
pLSA์ ํ๋ฅ ๋ชจ๋ธ ๊ตฌ์กฐ
- pLSA๋ ๋ฌธ์ ddd์์ ๋จ์ด www๊ฐ ๋ฐ์ํ ํ๋ฅ ์ ์๋์ ๊ฐ์ด ์ ์ํฉ๋๋ค.
P(wโฃd)=โzP(zโฃd)P(wโฃz)P(w | d) = \sum_{z} P(z | d) P(w | z)P(wโฃd)=zโโP(zโฃd)P(wโฃz) |
-
P(zโฃd)P(z d)P(zโฃd) : ๋ฌธ์ ddd๊ฐ ํน์ ํ ํฝ zzz๋ฅผ ํฌํจํ ํ๋ฅ -
P(wโฃz)P(w z)P(wโฃz) : ํน์ ํ ํฝ zzz์์ ๋จ์ด www๊ฐ ๋ฑ์ฅํ ํ๋ฅ - zzz : ์ ์ฌ ํ ํฝ (Latent Topic)
์ฆ, ๋ฌธ์ ๋ด ๋จ์ด๋ ๋ฌธ์์ ํ ํฝ ๋ถํฌ์ ํ ํฝ ๋ด ๋จ์ด ๋ถํฌ์ ์กฐํฉ์ผ๋ก ์์ฑ๋ฉ๋๋ค.
4.3 pLSA์ ํ์ต ๋ฐฉ๋ฒ: EM ์๊ณ ๋ฆฌ์ฆ
- pLSA์ ํ์ต ๊ณผ์ ์ Expectation-Maximization(EM) ์๊ณ ๋ฆฌ์ฆ์ ํตํด ์ํ๋ฉ๋๋ค.
๐ค Expectation-Maximization(EM) ์๊ณ ๋ฆฌ์ฆ์ด๋?
EM ์๊ณ ๋ฆฌ์ฆ์ ๋ชจ์์ ๊ดํ ์ถ์ ๊ฐ์ผ๋ก ๋ก๊ทธ๊ฐ๋ฅ๋(log likelihood)์ ๊ธฐ๋๊ฐ์ ๊ณ์ฐํ๋ ๊ธฐ๋๊ฐ (E) ๋จ๊ณ์ ์ด ๊ธฐ๋๊ฐ์ ์ต๋ํํ๋ ๋ชจ์ ์ถ์ ๊ฐ๋ค์ ๊ตฌํ๋ ์ต๋ํ (M) ๋จ๊ณ๋ฅผ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ์ ์ฉํ๋ค. ์ต๋ํ ๋จ๊ณ์์ ๊ณ์ฐํ ๋ณ์๊ฐ์ ๋ค์ ๊ธฐ๋๊ฐ ๋จ๊ณ์ ์ถ์ ๊ฐ์ผ๋ก ์ฐ์ธ๋ค.
์ถ์ฒ : wikipedia EM ์๊ณ ๋ฆฌ์ฆ (๋งํฌ)
1) E-Step (Expectation Step)
-
E-Step์์๋ ํ์ฌ์ ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ(P(zโฃd)P(z d)P(zโฃd)์ P(wโฃz)P(w z)P(wโฃz))๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฌ ๋ณ์(Latent Variable)์ธ P(zโฃd,w)P(z d, w)P(zโฃd,w)๋ฅผ ์ถ์ ํฉ๋๋ค. - ์ด๋ ์ฃผ์ด์ง ๋ฌธ์ ddd์ ๋จ์ด www์ ๋ํด ํน์ ํ ํฝ zzz๊ฐ ์ ํ๋ ํ๋ฅ ์ ๊ณ์ฐํ๋ ๊ฒ์ ๋๋ค.
-
์์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
P(zโฃd,w)=P(zโฃd)P(wโฃz)โzโฒP(zโฒโฃd)P(wโฃzโฒ)P(z d, w) = \frac{P(z d) P(w z)}{\sum_{zโ} P(zโ d) P(w zโ)}P(zโฃd,w)=โzโฒโP(zโฒโฃd)P(wโฃzโฒ)P(zโฃd)P(wโฃz)โ + P(zโฃd)P(z d)P(zโฃd): ย ย ย ย - ๋ฌธ์ ddd์์ ํ ํฝ zzz๊ฐ ์ ํ๋ ํ๋ฅ
-
P(wโฃz)P(w z)P(wโฃz): - ํ ํฝ zzz์์ ๋จ์ด www๊ฐ ์์ฑ๋ ํ๋ฅ
-
โzโฒP(zโฒโฃd)P(wโฃzโฒ)\sum_{zโ} P(zโ d) P(w zโ)โzโฒโP(zโฒโฃd)P(wโฃzโฒ): - ๋ชจ๋ ๊ฐ๋ฅํ ํ ํฝ zโฒzโzโฒ์ ๋ํด ๋ฌธ์ ddd์ ๋จ์ด www๊ฐ ์ฃผ์ด์ก์ ๋์ ํ๋ฅ ์ ํฉ
- ์ด ๋จ๊ณ์์๋ ํ์ฌ์ ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ๋จ์ด๊ฐ ํน์ ํ ํฝ์์ ์์ฑ๋ ํ๋ฅ ์ ๊ณ์ฐํฉ๋๋ค.
2) M-Step (Maximization Step)
-
M-Step์์๋ E-Step์์ ๊ณ์ฐ๋ P(zโฃd,w)P(z d, w)P(zโฃd,w)๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ์ธ P(zโฃd)P(z d)P(zโฃd)์ P(wโฃz)P(w z)P(wโฃz)๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค. -
**๋ฌธ์-ํ ํฝ ๋ถํฌ P(zโฃd)P(z d)P(zโฃd) ์ ๋ฐ์ดํธ:** P(zโฃd)=โwn(w,d)P(zโฃd,w)โw,zn(w,d)P(zโฃd,w)P(z d) = \frac{\sum_{w} n(w, d) P(z d, w)}{\sum_{w, z} n(w, d) P(z d, w)}P(zโฃd)=โw,zโn(w,d)P(zโฃd,w)โwโn(w,d)P(zโฃd,w)โ -
**ํ ํฝ-๋จ์ด ๋ถํฌ P(wโฃz)P(w z)P(wโฃz) ์ ๋ฐ์ดํธ:** P(wโฃz)=โdn(w,d)P(zโฃd,w)โwโฒ,dn(wโฒ,d)P(zโฃd,wโฒ)P(w z) = \frac{\sum_{d} n(w, d) P(z d, w)}{\sum_{wโ, d} n(wโ, d) P(z d, wโ)}P(wโฃz)=โwโฒ,dโn(wโฒ,d)P(zโฃd,wโฒ)โdโn(w,d)P(zโฃd,w)โ
-
-
์ฌ๊ธฐ์ n(w,d)n(w, d)n(w,d)๋ ๋ฌธ์ ddd์์ ๋จ์ด www์ ๋ฐ์ ํ์๋ฅผ ๋ํ๋ ๋๋ค.
-
P(zโฃd)P(z d)P(zโฃd): ๋ฌธ์ ddd์์ ํ ํฝ zzz๊ฐ ์ ํ๋ ์๋ก์ด ํ๋ฅ -
P(wโฃz)P(w z)P(wโฃz): ํ ํฝ zzz์์ ๋จ์ด www๊ฐ ์์ฑ๋ ์๋ก์ด ํ๋ฅ
-
-
์ด ๋จ๊ณ์์๋ E-Step์์ ๊ณ์ฐ๋ P(zโฃd,w)P(z d,w)P(zโฃd,w)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์-ํ ํฝ ๋ถํฌ์ ํ ํฝ-๋จ์ด ๋ถํฌ๋ฅผ ์ฌ๊ณ์ฐํฉ๋๋ค.
3) ๋ฐ๋ณต ์ํ
- E-Step๊ณผ M-Step์ ๋ฐ๋ณต์ ์ผ๋ก ์ํํ๋ฉด์ ๋ชจ๋ธ์ ๋ก๊ทธ ๊ฐ๋ฅ๋(Log-Likelihood)๊ฐ ์๋ ดํ ๋๊น์ง ํ์ต์ ์งํํฉ๋๋ค.
- ๋ก๊ทธ ๊ฐ๋ฅ๋๋ ๋ชจ๋ธ์ด ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ผ๋ง๋ ์ ์ค๋ช ํ๋์ง๋ฅผ ๋ํ๋ด๋ ์งํ๋ก, ์ด ๊ฐ์ด ๋ ์ด์ ํฌ๊ฒ ๋ณํ์ง ์์ผ๋ฉด ํ์ต์ ์ข ๋ฃํฉ๋๋ค.
๐ป ํ์ต ๊ณผ์ ์์ฝ
- Initialization:
P(zโฃd)P(z d)P(zโฃd)์ P(wโฃz)P(w z)P(wโฃz)๋ฅผ ์์์ ๊ฐ์ผ๋ก ์ด๊ธฐํํฉ๋๋ค.
- E-Step (Expectation Step):
ํ์ฌ์ P(zโฃd)P(z d)P(zโฃd)์ P(wโฃz)P(w z)P(wโฃz)๋ฅผ ์ฌ์ฉํ์ฌ P(zโฃd,w)P(z d, w)P(zโฃd,w)๋ฅผ ๊ณ์ฐํฉ๋๋ค. - ์ด๋ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฌ ๋ณ์(Latent Variable)๋ฅผ ์ถ์ ํ๋ ๊ณผ์ ์ ๋๋ค.
- M-step (Maximization Step):
E-Step์์ ๊ณ์ฐ๋ P(zโฃd,w)P(z d, w)P(zโฃd,w)๋ฅผ ์ฌ์ฉํ์ฌ P(zโฃd)P(z d)P(zโฃd)์ P(wโฃz)P(w z)P(wโฃz)๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค. - ์ด๋ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ผ๋ฏธํฐ๋ฅผ ์ต๋ํํ๋ ๊ณผ์ ์ ๋๋ค.
- Iteration/Convergence:
- ์ข ๋ฃ/์๋ ดํ ๋๊น์ง E-Step๊ณผ M-Step์ ๋ฐ๋ณต์ ์ผ๋ก ์ํํฉ๋๋ค.
- ๊ฐ iteration์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก, ๋ฅ๋ฌ๋์ epoch๊ณผ ์ ์ฌํ ์ญํ ์ ํฉ๋๋ค.
Image Source: https://www.geeksforgeeks.org/ml-expectation-maximization-algorithm/
4.4 pLSA์ ์ฅ์
-
ํ๋ฅ ์ ํด์ ๊ฐ๋ฅ
- ๋ฌธ์์ ๋จ์ด์ ๊ด๊ณ๋ฅผ ํ๋ฅ ์ ์ธ ๋ฐฉ์์ผ๋ก ๋ชจ๋ธ๋งํ์ฌ ํ ํฝ๊ณผ ๋จ์ด ๊ฐ์ ์๋ฏธ์ ๊ด๊ณ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์ ๊ฐ๋ฅ.
-
์๋ก์ด ๋ฌธ์์ ๋ํ ์ผ๋ฐํ ๊ฐ๋ฅ
-
LSA๋ ์๋ก์ด ๋ฌธ์๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ด๋ ค์ ์ง๋ง, pLSA๋ ํ์ต๋ ํ ํฝ-๋จ์ด ๋ถํฌ P(wโฃz)P(w z)P(wโฃz)๋ฅผ ์ ์งํ๋ฉด์ **์๋ก์ด ๋ฌธ์์ ํ ํฝ ๋ถํฌ P(zโฃd)P(z d)P(zโฃd)๋ฅผ ์ถ์ **ํ ์ ์์.
-
-
์ธ์ด ๋ชจ๋ธ๋ง์ ๋ ์ ํฉํ ๊ตฌ์กฐ
- ๋ฌธ์ ๋ด ๋จ์ด ๋ฐ์์ ์์ฑ ๋ชจ๋ธ(Generative Model)๋ก ํด์ํ ์ ์์ด, ๋ณด๋ค ์์ฐ์ค๋ฌ์ด ๋ฌธ์ ๋ถ๋ฅ ๋ฐ ์ ๋ณด ๊ฒ์์ด ๊ฐ๋ฅ.
4.5 pLSA์ ํ๊ณ
-
์ค๋ฒํผํ ๋ฌธ์
-
pLSA๋ ๊ฐ ๋ฌธ์ ddd์ ๋ํด ๊ฐ๋ณ์ ์ธ ํ๋ฅ ๋ถํฌ P(zโฃd)P(z d)P(zโฃd)๋ฅผ ํ์ตํด์ผ ํ๋ฏ๋ก, ๋ฌธ์ ์๊ฐ ์ฆ๊ฐํ ์๋ก ๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ ์๋ ๋น๋กํ์ฌ ์ฆ๊ฐ. - ์ด๋ ๋ฐ์ดํฐ๊ฐ ์ ์ ๊ฒฝ์ฐ ์ค๋ฒํผํ (Overfitting) ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์.
-
-
Bayesian ํ๋ฅ ๋ชจ๋ธ์ด ์๋
- pLSA๋ ๋จ์ํ ์ต๋์ฐ๋์ถ์ (MLE, Maximum Likelihood Estimation)์ ๊ธฐ๋ฐ์ผ๋ก ํ์ตํ๋ฏ๋ก, ์ฌ์ ํ๋ฅ (Prior Distribution) ์ ์ฉ์ด ์ด๋ ต๋ค.
-
์ฆ, pLSA๋ ๋ฌธ์-ํ ํฝ ๋ถํฌ P(zโฃd)P(z d)P(zโฃd)๋ฅผ ์ง์ ์ต์ ํํ๋ ๋ฐฉ์์ด๋ฏ๋ก, ๋ชจ๋ธ์ ์ผ๋ฐํ ์ฑ๋ฅ์ด ๋ถ์กฑํจ.
-
LDA(Latent Dirichlet Allocation)์ ๋ฑ์ฅ
- ์ด๋ฌํ ํ๊ณ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Latent Dirichlet Allocation(LDA)์ด ์ ์๋จ.
- LDA๋ pLSA์ ํ์ฅ ๋ชจ๋ธ๋ก, ๋๋ฆฌํด๋ ๋ถํฌ(Dirichlet Distribution)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์-ํ ํฝ ๋ถํฌ๋ฅผ ์ ๊ทํํ์ฌ ์ค๋ฒํผํ ์ ์ํํ๊ณ ์ผ๋ฐํ ์ฑ๋ฅ์ ํฅ์.
5. Latent Dirichlet Allocation (LDA)
5.1 LDA์ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ: ์ pLSA์์ LDA๋ก ๋ฐ์ ํ๋๊ฐ?
Probabilistic Latent Semantic Analysis(pLSA)๋ ๊ธฐ์กด์ LSA๊ฐ ๊ฐ์ง๋ ๋ฌธ์ ์ (ํ๋ฅ ์ ํด์ ๋ถ๊ฐ๋ฅ, ์ผ๋ฐํ ๋ถ๊ฐ๋ฅ, ๊ณ์ฐ๋ ๋ฌธ์ )์ ํด๊ฒฐํ๋ ๋ฐ ๊ธฐ์ฌํ์ง๋ง, ์ฌ์ ํ ๋ค์๊ณผ ๊ฐ์ ํ๊ณ๋ฅผ ์ง๋๊ณ ์์์ต๋๋ค.
-
ํ๋ผ๋ฏธํฐ ์ ์ฆ๊ฐ ๋ฌธ์ (Overfitting)
-
pLSA๋ ํ์ต ๋ฐ์ดํฐ์ ์ํ ๋ฌธ์๋ง๋ค ๋ณ๋์ ๋ฌธ์-ํ ํฝ ๋ถํฌ P(zโฃd)P(z d)P(zโฃd)๋ฅผ ์ถ์ ํด์ผ ํฉ๋๋ค. - ๋ฐ๋ผ์ ๋ฌธ์ ์ DDD๊ฐ ๋ง์์ง์๋ก ๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ ์๋ ๋น๋กํ์ฌ ์ฆ๊ฐํ์ฌ, ๊ณผ์ ํฉ(Overfitting) ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋๋ค.
-
-
์ผ๋ฐํ ๋ฌธ์ (Lack of Generative Model)
- pLSA๋ ์๋ก์ด ๋ฌธ์์ ๋ํ ํ๋ฅ ๋ถํฌ๋ฅผ ์ถ๋ก ํ๊ธฐ ์ด๋ ต์ต๋๋ค.
-
ํ์ต ๋ฐ์ดํฐ์ ์๋ ์๋ก์ด ๋ฌธ์์ ๋ํด P(zโฃd)P(z d)P(zโฃd)๋ฅผ ๋ฐ๋ก ์ถ์ ํ ์ ์๊ธฐ ๋๋ฌธ์, ์๋ก์ด ๋ฌธ์๋ฅผ ์ฒ๋ฆฌํ๋ ค๋ฉด ํ์ต ๊ณผ์ ์ ๋ค์ ์ํํด์ผ ํฉ๋๋ค.
-
์ฌ์ ํ๋ฅ (Prior) ๋ถ์ฌ
- pLSA๋ ์์ํ ์ต๋์ฐ๋์ถ์ (Maximum Likelihood Estimation, MLE)์ ๊ธฐ๋ฐ์ผ๋ก ํ์ต๋๋ฏ๋ก, ์ ์ ํ ์ฌ์ ํ๋ฅ (Prior Distribution)์ด ๋ถ์ฌํ ๋ชจ๋ธ์ ๋๋ค.
- ์ด๋ ๋ชจ๋ธ์ ์ผ๋ฐํ ์ฑ๋ฅ์ ์ ํ์ํฌ ์ ์์ผ๋ฉฐ, ๋ถ์์ ํ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Latent Dirichlet Allocation (LDA)์ด ์ ์๋์์ต๋๋ค.
- LDA๋ ๋ฒ ์ด์ง์ ํ๋ฅ ๋ชจ๋ธ(Bayesian Probabilistic Model)์ ๊ธฐ๋ฐ์ผ๋ก, ๋ฌธ์-ํ ํฝ ๋ถํฌ์ ํ ํฝ-๋จ์ด ๋ถํฌ์ Dirichlet ๋ถํฌ(Dirichlet Prior)๋ฅผ ์ ์ฉํ์ฌ ๋ชจ๋ธ์ ์ผ๋ฐํ ์ฑ๋ฅ์ ๋์์ต๋๋ค.
5.2 LDA ๊ฐ๋
LDA๋ ๋ฌธ์ ๋ด ๋จ์ด๊ฐ ์ฌ๋ฌ ์ ์ฌ์ ์ธ ํ ํฝ(Latent Topics)์์ ์์ฑ๋์๋ค๊ณ ๊ฐ์ ํ๋ ์์ฑ ๋ชจ๋ธ(Generative Model)์ ๋๋ค.
- ์ฆ, ๋ฌธ์๋ ์ฌ๋ฌ ๊ฐ์ ํ ํฝ(Topic)์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ ํ ํฝ์ ํน์ ๋จ์ด๋ค์ ํ๋ฅ ๋ถํฌ(Word Distribution)๋ฅผ ๊ฐ์ง๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
-
๋ฌธ์ ์์ฑ์ ๊ฐ์ :
- ๊ฐ ๋ฌธ์๋ ํ๋ ์ด์์ ํ ํฝ์ด ํผํฉ๋ ํํ๋ก ์กด์ฌํ๋ฉฐ, ๊ฐ ๋จ์ด๋ ํด๋น ๋ฌธ์์ ํ ํฝ๋ค ์ค ํ๋์์ ์์ฑ๋จ.
- ๊ฐ ํ ํฝ์ ํน์ ๋จ์ด๋ค์ ํ๋ฅ ๋ถํฌ๋ฅผ ๊ฐ์ง๋ฉฐ, ๋จ์ด๊ฐ ํน์ ํ ํฝ์์ ๋ฐ์ํ ํ๋ฅ ์ ํ์ต.
-
๋ฌธ์ ํด๊ฒฐ ๋ชฉํ:
- ์ฃผ์ด์ง ๋ฌธ์ ์งํฉ(Corpus)์์ ๊ฐ ๋ฌธ์๊ฐ ์ด๋ค ํ ํฝ์ ํฌํจํ๋์ง๋ฅผ ์ถ์ .
- ๊ฐ ๋ฌธ์์ ํฌํจ๋ ํ ํฝ ๋ถํฌ(ฮธd\theta_dฮธdโ) ๋ฐ ๊ฐ ํ ํฝ์์ ๋ฑ์ฅํ๋ ๋จ์ด ๋ถํฌ(ฯk\phi_kฯkโ)๋ฅผ ์ถ๋ก .
- ํน์ ๋ฌธ์ ๋ด์์ ๊ฐ ๋จ์ด๊ฐ ์ด๋ค ํ ํฝ์ ํ ๋น๋์๋์ง ์ถ์ .
5.3 LDA์ ๋ฌธ์ ์์ฑ ๊ณผ์
LDA๋ ๋ฌธ์๊ฐ ์๋์ ๊ฐ์ ์ ์ฐจ๋ฅผ ํตํด ์์ฑ๋๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
1) ์ด๊ธฐ ์ค์
- ํ ํฝ ๋ถํฌ (ฮธd\theta_dฮธdโ)
- ๋ฌธ์ ddd์ ํ ํฝ ๋ถํฌ๋ Dirichlet ๋ถํฌ Dir(ฮฑ)Dir(\alpha)Dir(ฮฑ)์์ ์ํ๋ง.
- ๋จ์ด ๋ถํฌ (ฯk\phi_kฯkโ)
- ํ ํฝ kkk์ ๋จ์ด ๋ถํฌ๋ Dirichlet ๋ถํฌ Dir(ฮฒ)Dir(\beta)Dir(ฮฒ)์์ ์ํ๋ง.
2) ๋ฌธ์ ์์ฑ ์ ์ฐจ
- ๋ฌธ์ ddd์ ๋ํด, ํ ํฝ ๋ถํฌ ฮธd\theta_dฮธdโ๋ฅผ Dirichlet ๋ถํฌ Dir(ฮฑ)Dir(\alpha)Dir(ฮฑ)์์ ์ํ๋ง.
- ๊ฐ ๋จ์ด wdnw_{dn}wdnโ์ ๋ํด:
- ํ ํฝ zdnz_{dn}zdnโ ์ ํ: ๋ฌธ์์ ํ ํฝ ๋ถํฌ ฮธd\theta_dฮธdโ์์ ์ํ๋ง.
- ๋จ์ด wdnw_{dn}wdnโ ์ ํ: ์ ํ๋ ํ ํฝ zdnz_{dn}zdnโ์ ๋จ์ด ๋ถํฌ ฯzdn\phi_{z_{dn}}ฯzdnโโ์์ ์ํ๋ง.
3) ์ํ์ ํํ
LDA์ ์ ์ฒด ๋ฌธ์ ์์ฑ ๊ณผ์ ์ ํ๋ฅ ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ํํ๋ฉ๋๋ค:
P(W,Z,ฮธ,ฯโฃฮฑ,ฮฒ)=โd=1DP(ฮธdโฃฮฑ)โk=1KP(ฯkโฃฮฒ)โn=1NdP(zdnโฃฮธd)P(wdnโฃฯzdn)P(W, Z, \theta, \phi | \alpha, \beta) = \prod_{d=1}^{D} P(\theta_d | \alpha) \prod_{k=1}^{K} P(\phi_k | \beta) \prod_{n=1}^{N_d} P(z_{dn} | \theta_d) P(w_{dn} | \phi_{z_{dn}})P(W,Z,ฮธ,ฯโฃฮฑ,ฮฒ)=d=1โDโP(ฮธdโโฃฮฑ)k=1โKโP(ฯkโโฃฮฒ)n=1โNdโโP(zdnโโฃฮธdโ)P(wdnโโฃฯzdnโโ) |
- WWW : ๋จ์ด ์งํฉ
- ZZZ : ๋จ์ด์ ํ ํฝ ํ ๋น
- ฮธ\thetaฮธ : ๋ฌธ์์ ํ ํฝ ๋ถํฌ
- ฯ\phiฯ : ํ ํฝ์ ๋จ์ด ๋ถํฌ
5.4 LDA์ ํ์ต ๋ฐ ์ถ๋ก
LDA์ ์ฃผ์ ๋ฌธ์ ๋ ๊ด์ธก๋ ๋จ์ด WWW๋ง์ ๊ธฐ๋ฐ์ผ๋ก ์ ์ฌ ๋ณ์ ฮธ,ฯ,Z\theta, \phi, Zฮธ,ฯ,Z๋ฅผ ์ถ์ ํ๋ ๊ฒ์ ๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด LDA์์๋ ๋ค์๊ณผ ๊ฐ์ ํ์ต ๋ฐฉ๋ฒ์ด ์ฌ์ฉ๋ฉ๋๋ค.
1) Collapsed Gibbs Sampling
- LDA์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ถ๋ก ๊ธฐ๋ฒ์ผ๋ก, ๋จ์ด-ํ ํฝ ํ ๋น ๋ณ์ ZZZ๋ฅผ ์ํ๋งํ์ฌ ฮธ\thetaฮธ์ ฯ\phiฯ๋ฅผ ์ถ์ ํฉ๋๋ค.
- ์กฐ๊ฑด๋ถ ํ๋ฅ ์ ๊ธฐ๋ฐ์ผ๋ก ์ํ๋ง์ ์ํํ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ์ต์ ํํฉ๋๋ค.
P(zdn=kโฃZโdn,W,ฮฑ,ฮฒ)โnd,kโdn+ฮฑโkโฒ(nd,kโฒโdn+ฮฑ)โ nk,wโdn+ฮฒโwโฒ(nk,wโฒโdn+ฮฒ)P(z_{dn} = k | Z_{-dn}, W, \alpha, \beta) \propto \frac{n_{d,k}^{-dn} + \alpha}{\sum_{kโ} (n_{d,kโ}^{-dn} + \alpha)} \cdot \frac{n_{k,w}^{-dn} + \beta}{\sum_{wโ} (n_{k,wโ}^{-dn} + \beta)}P(zdnโ=kโฃZโdnโ,W,ฮฑ,ฮฒ)โโkโฒโ(nd,kโฒโdnโ+ฮฑ)nd,kโdnโ+ฮฑโโ โwโฒโ(nk,wโฒโdnโ+ฮฒ)nk,wโdnโ+ฮฒโ |
- nd,kโdnn_{d,k}^{-dn}nd,kโdnโ : ๋ฌธ์ ddd์์ ํ ํฝ kkk๊ฐ ํ ๋น๋ ๋จ์ด์ ์ (ํ์ฌ ๋จ์ด ์ ์ธ)
- nk,wโdnn_{k,w}^{-dn}nk,wโdnโ : ํ ํฝ kkk์์ ๋จ์ด www๊ฐ ๋ฑ์ฅํ ํ์ (ํ์ฌ ๋จ์ด ์ ์ธ)
2) Variational Inference
- Gibbs Sampling๋ณด๋ค ๋น ๋ฅธ ๊ทผ์ฌ ์ถ๋ก ๋ฐฉ๋ฒ์ผ๋ก, ELBO(Evidence Lower Bound)๋ฅผ ์ต๋ํํ๋ ๋ฐฉ์.
- LDA๋ฅผ ํ๋ฅ ์ ๊ทธ๋ํ ๋ชจ๋ธ๋ก ํด์ํ์ฌ ๋ณ๋ถ ๋ถํฌ q(ฮธ,ฯ,Z)q(\theta, \phi, Z)q(ฮธ,ฯ,Z)๋ฅผ ์ต์ ํ.
-
๊ฒฐ๋ก
Topic Modeling์ ๋น์ ํ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํํ๊ณ ์๋ฏธ๋ฅผ ๋ฐ๊ฒฌํ๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฒ์ผ๋ก, ๋ฌธ์ ๋ด ์จ๊ฒจ์ง ์ฃผ์ ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ถ์ถํ ์ ์์ต๋๋ค.
-
LSA, pLSA, LDA์ ๊ฐ์ ๋ํ์ ์ธ ๊ธฐ๋ฒ๋ค์ ๊ฐ๊ฐ์ ํน์ฑ๊ณผ ํ๊ณ๋ฅผ ๊ฐ์ง๋ฉฐ, ํ์ฉ ๋ชฉ์ ๊ณผ ๋ฐ์ดํฐ ํน์ฑ์ ๋ฐ๋ผ ์ ์ ํ ๋ฐฉ๋ฒ์ ์ ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- LSA๋ ์ ํ ๋์ ๊ธฐ๋ฐ ํ๋ ฌ ๋ถํด ๊ธฐ๋ฒ์ผ๋ก ๊ณ์ฐ์ด ๋น ๋ฅด๊ณ ์ง๊ด์ ์ด์ง๋ง, ํ๋ฅ ์ ํด์์ด ์ด๋ ต๊ณ ์๋ก์ด ๋ฌธ์ ์ฒ๋ฆฌ์ ํ๊ณ๊ฐ ์์ต๋๋ค.
- pLSA๋ ํ๋ฅ ๋ชจ๋ธ์ ๋์ ํ์ฌ ๋ฌธ์ ๋ด ํ ํฝ ๋ถํฌ๋ฅผ ๋ณด๋ค ์ ๊ตํ๊ฒ ๋ชจ๋ธ๋งํ์ง๋ง, ์ค๋ฒํผํ ๋ฌธ์ ์ ์ผ๋ฐํ์ ์ด๋ ค์์ด ์กด์ฌํฉ๋๋ค.
- LDA๋ ๋ฒ ์ด์ง์ ์ถ๋ก ์ ํ์ฉํ์ฌ ๋ฌธ์์ ํ ํฝ์ ๊ด๊ณ๋ฅผ ํ๋ฅ ์ ๋ชจ๋ธ๋งํ๋ฉฐ, ์ผ๋ฐํ ์ฑ๋ฅ์ด ์ฐ์ํ๊ณ ๋ค์ํ ๋ณํ ๋ชจ๋ธ์ด ๊ฐ๋ฐ๋๋ฉด์ ๋์ฑ ๊ฐ๋ ฅํ ์ฑ๋ฅ์ ๋ฐํํ๊ณ ์์ต๋๋ค.
-
Topic Modeling์์ ํต์ฌ์ ์ธ ์์๋ ์ ์ ํ ํ ํฝ ๊ฐ์ ์ค์ ์ด๋ฉฐ, ํ ํฝ ๊ฐ์๊ฐ ์ ์ ํ์ง ์์ผ๋ฉด ๊ณผ์ ํฉ(Overfitting) ํน์ ์๋ฏธ์ ํผ๋์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
- Perplexity, Coherence Score, Human Evaluation ๋ฑ์ ๋ฐฉ๋ฒ์ ํ์ฉํ์ฌ ์ต์ ์ ํ ํฝ ๊ฐ์๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ต๊ทผ ์ฐ๊ตฌ์์๋ LDA๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๋ณํ ๋ชจ๋ธ๋ค์ด ๋ฑ์ฅํ๋ฉด์ ์ฑ๋ฅ์ด ๋์ฑ ํฅ์๋๊ณ ์์ต๋๋ค.
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค ๐