Latent Dirichlet Allocation - LDA
Gibbs sampling
\begin{align}
p(z_i = k)
\propto
(n_{d,k}^{-i} + \alpha)
\frac{n_{k,w_i}^{-i} + \beta}
{n_{k}^{-i} + V\beta}
\end{align}
Trong đó:
- \(n_{d,k}\) : số từ trong văn bản d thuộc topic k
- \(n_{k,w}\) : số lần từ w xuất hiện trong topic k
- \(n_k\) : tổng số từ của topic k
- \(-i\) : không tính token i
4. Thuật toán Gibbs Sampling
- Khởi tạo ngẫu nhiên topic cho mỗi từ
- Với mỗi token i:
- Giảm count của topic hiện tại
- Tính xác suất cho từng topic:
$$
p_k =
(n_{d,k}^{-i} + \alpha)
\frac{n_{k,w_i}^{-i} + \beta}
{n_{k}^{-i} + V\beta}
$$
- Chuẩn hóa \(p_k\)
- Lấy mẫu topic mới
- Cập nhật lại các count
- Lặp lại nhiều vòng cho đến khi hội tụ
5. Ước lượng tham số
Phân phối topic của văn bản:
$$
\hat{\theta}_{d,k} =
\frac{n_{d,k} + \alpha}
{N_d + K\alpha}
$$
Phân phối từ của topic:
$$
\hat{\phi}_{k,w} =
\frac{n_{k,w} + \beta}
{n_k + V\beta}
$$
6. Ý nghĩa
- \(\theta_{d,k}\) : xác suất topic k trong văn bản d
- \(\phi_{k,w}\) : xác suất từ w trong topic k
Ví dụ
Cho tập dữ liệu D
- d0: apple banana
- d1: car apple banana
Chọn $$\alpha = 0.5, \beta = 0.1$$
Số topic: K = 2
Số từ vựng: {apple, banana, car}, V = 3
Khởi tạo ngẫu nhiên topic cho từng token
| Token | Document | Word | Topic |
| 0 |
d0 |
apple |
0 |
| 1 |
d0 |
banana |
1 |
| 2 |
d1 |
car |
1 |
| 3 |
d1 |
apple |
0 |
| 4 |
d1 |
banana |
0 |
Document topic count
| Document | Topic 0 | Topic 1 |
| d0 |
1 |
1 |
| d1 |
2 |
1 |
Word topic count
| Word |
Topic 0 |
Topic 1 |
| apple |
2 |
0 |
| banana |
1 |
1 |
| car |
0 |
1 |