---
title: "Dirichlet Distribution & Latent Dirichlet Allocation"
output: html_notebook
---

```{r}
## topic : Dirichlet Distribution
## main reference : http://bab2min.tistory.com/567
## https://www.slideshare.net/clauwa/topic-models-lda-and-correlated-topic-models
```

```{r}
#1. 베이즈 추론 
#   - 잘 모르는 사건이 일어날 확률을 가정하고, 실제로 그 사건에 대해 관측함으로써, 더 정확한 확률을 계산하는 것 
```
![](/Users/CA/Downloads/bay.png)

```{r}
#1.1 베이즈 추론 순서 
#  a. 어떤 사건이 발생할 확률을 가정한다.
#  b. 그리고 추가적인 관측이 발생하면
#  c. 관측된 사건을 통해 그 사건이 발생할 확률을 더 정확하게 추론한다.
```

```{r}
#1.2 주요 개념
#1.2.1 사전 확률 : 관측에 의거하지 않고 가정하는 특정 사건이 일어날 확률. '왠지 이 사건은 이런 분포를 따를 것 같다'는 느낌적인 느낌
#1.2.2 관측 : 사건이 실제로 발생한것
#1.2.3 사후 확률 : 실제 관측된 사건을 가지고 해당 사건이 일어날 확률을 더 정확하게 계산한것
#1.2.4 사후 확률 ∝ 가능도 × 사전 확률
```


```{r}
# 시뮬레이션
#
# 1. 첫번째 사전 확률 Prior(p) = 1 
y = rep(1, 1001)
x = seq(0,1,0.001)
plot(x, y)
```

```{r}
# 2. 첫번째 가능도 Likelihood(p)
curve(3*x^2*(1-x), 0, 1)
```

```{r}
#3. 사후확률은 사전확률 * 가능도에 비례하므로, Posterior(p) ∝ 3*x^2*(1-x)

#4. 두번째 가능도 ( 두번째 관측 결과 )
curve(2*x*(1-x), 0, 1)
```

```{r}
#5. 두번째 사후확률 = #3의 사후확률 * #4의 가능도 ( #3의 사후확률이 이번에는 사전확률 ) 
curve(3*x^2*(1-x) * 2*x*(1-x), 0, 1)
```


```{r}
# 5 회 반복 하면, 특정 확률값으로 집중됨 

curve(3*x^2*(1-x) * 2*x*(1-x) * 2*x*(1-x) * 2*x*(1-x) * 2*x*(1-x) * 2*x*(1-x) * 2*x*(1-x), 0, 1)
```

```{r}
# 위의 확률 분포의 모습은 beta distribution 의 모습과 같다. beta(9,8) 
# (1,1) -> (4,3) -> .... -> (9,8)
# 하이퍼파라미터 : α = (A사건이 일어난 횟수 + 1), β = (B사건이 일어난 횟수 + 1)
pl.beta <- function(a,b, asp = if(isLim) 1, ylim = if(isLim) c(0,1.1)) {
  if(isLim <- a == 0 || b == 0 || a == Inf || b == Inf) {
    eps <- 1e-10
    x <- c(0, eps, (1:7)/16, 1/2+c(-eps,0,eps), (9:15)/16, 1-eps, 1)
  } else {
    x <- seq(0, 1, length = 1025)
  }
  fx <- cbind(dbeta(x, a,b), pbeta(x, a,b), qbeta(x, a,b))
  f <- fx; f[fx == Inf] <- 1e100
  matplot(x, f, ylab="", type="l", ylim=ylim, asp=asp,
          main = sprintf("[dpq]beta(x, a=%g, b=%g)", a,b))
  abline(0,1,     col="gray", lty=3)
  abline(h = 0:1, col="gray", lty=3)
  legend("top", paste0(c("d","p","q"), "beta(x, a,b)"),
         col=1:3, lty=1:3, bty = "n")
  invisible(cbind(x, fx))
}

pl.beta(9,8)
```

```{r}
# 켤레 사전 분포 ( Conjugate Prior )
```
![](/Users/CA/Downloads/Conjugate.png)

```{r}
# 디클레레 분포 = 2가지 경우만을 다루는 베타분포를 k 가지로 확장한 버전 
# 하이퍼파라미터 = c(α1, α2, ... α_k)
#
# 가위바위보를 3명이서 하는 것에 대한 베이즈 추론 ( with 디클레레 )
# 사전확률 : Dir(0.25, 0.25, 0.5, c(1,1,1) ) = 1.0
# 관측     : (가위,바위,보) = (2,2,1)
# 사후확률 : Dir(0.25, 0.25, 0.5, c(3,3,2) ) = 2.461 ... #=> 친구가 가위/바위/보를 낼 확률이 (0.25, 0.25, 0.5)일 가능도를 계산
```

```{r}
## 기타
library(MCMCpack)
library(Compositional)
library(DirichletReg)


# 1. 
plot(DR_data(ArcticLake[, 1]))
plot(DR_data(ArcticLake[, 1:3]))
plot(DR_data(Rocks[, 1:4]))

# 2. https://rpubs.com/JanpuHou/295096
draw = 10
alpha = c(1,2,3)
dimension = 3
x = rdirichlet(10, c(1,2,3))
x

ddirichlet(x, c(1,2,3))

par(mfrow = c(2,2))
draws <- rdirichlet(200, c(.1,.1,.1) )
bivt.contour(draws)

draws <- rdirichlet(200, c(1,1,1) )
bivt.contour(draws)

draws <- rdirichlet(200, c(10,10,10) )
bivt.contour(draws)

x <- as.matrix( iris[, 1:3] )
x <- x / rowSums(x)
head(iris)
bivt.contour(x)

```

```{r}
# Topic Modeling & 베이즈 추론 with Dirichlet Distribution
#
# 가정 
# 1. Document 는 여러개의 Topic 을   포함
# 2. Topic    은 여러개의 Words 를   포함 
# 3. Word     는 특정     Topic 들에 포함됨.
#
# 문서 생성 과정
# A. Document 에 들어갈 Topic 들을 결정 ( 주제 분포 결정 )
# B. Topic들 중 하나를 고름 ( 주제 선정 ) 
# C. 주제에 포함된 단어 중 하나를 선택 ( 단어 선정 )
# D. Document 에 Word 추가 
# E. B~D 반복 
#
# 관측 : only Word ( not Topics / Words per Topic )
# 관측된 Word 로 부터 주제분포 , 주제별 단어분포를 "추론" 해야함 ! ( 통계적 추론 ) ==> 베이즈 추론 
#
# 다항분포 1 : 주제들에서 하나를 고르는 행위 ( 켤레 사전 분포 : Dirichlet )
# 다항분포 2 : 주제별 단어에서 하나를 고르는 행위 ( 켤레 사전 분포 : Dirichlet )
```
![](/Users/CA/Downloads/plate.png)

```{r}
# θ, φ 는 Dirichlet 분포 
# α 는 θ 의 하이퍼파라미터 ( 주제 )
# β 는 φ 의 하이퍼파라미터 ( 주제별 단어 )
#
# LDA 시 우리가 결정해야 하는 값 : 하이퍼파라미터 α, β, 와 주제갯수 K 
# LDA 결과로 얻는 값 : Z 와 θ,φ 
#
# 1. 초기 사전 확률을 가정하고 
# 2. 단어 W를 관측해나가면서 단어마다 적절한 주제를 부여하여 Z 값을 정함 ( 관측 )
# 3. 가능도에 따라 Dirichlet 업데이트
# 4. 2 ~ 3 반복 
# 5. 가능한 모든 경우에 대해, 가능도가 가장 높은 Z 값을 결정 
```
![](/Users/CA/Downloads/dirichlet.png)
```{r}
# P(Z) ~~ θ , P(W|Z) ~~ φ 
# p(W) Z 와 상관없는 constant 이므로 don't care  
# 사후 확률 ∝ 가능도 × 사전 확률
```

```{r}
# Gibbs Sampling
# N차의 자료를 대상으로 확률 분포를 계산은 어려움. .
# 이를 위해 N차의 자료를 1차 자료 N개가 모인것으로 가정하고, 
# 나머지 N-1개를 고정하면 한 차원에 대해서만 자료를 샘플링할 수 있음. 
# 이렇게 N개의 차원에 대해 각각 자료를 샘플링하여 이를 합치면 전체 N차원의 자료를 샘플링한것과 같지 않겠냐는 것이 깁스 샘플링의 아이디어.
```

```{r}
# 문헌 d에 속하는 어떤 단어 m이 주제 j에 속할 확률은 
# 주제 j에 속하는 모든 단어 중에서 단어 m이 차지하는 비중과 문헌 d에 속하는 모든 주제 중 주제 j가 차지하는 비중의 곱에 비례

# 1. 각각의 단어에 임의의 주제를 배정한다
# 2. (잘못됐겠지만) 모든 단어에 주제가 배정되어있고, 그 결과 문헌별 주제 분포와 주제별 단어분포가 결정되었음. 이를 깁스샘플링을 통해서 개선해 나가자.
# 3. n번째 단어를 골라 빼낸다. (나머지 단어들이 모두 적절하게 배정되어 있다고 가정하고)
# 4. 빼낸 단어를 제외하고, 그 단어가 속한 문헌의 주제분포(P(Topic | Document))를 계산하고, 그 단어가 속한 주제의 단어분포(P(Word | Topic))를 계산한다. P(Word | Topic) * P(Topic | Document)를 최대로하는 Topic을 찾아 그 단어에 배정한다.
# 5. n <- n+1로 하고 3번으로 돌아간다.
# 6. 충분히 반복하다 보면 값들이 수렴하고 안정되게 된다. 그럼 끝.
```

```{r}
# https://onlinecourses.science.psu.edu/stat414/node/118
# http://web.stanford.edu/class/stats366/Gibbs.html
library(ellipse)
library(animation)

##########################################Function######
gibbsNimate <- function(NSimul=50, rho=0.5, x0=1, y0=1) {
  ##NSimul=Number of simulations
  ##rho is the correlation
  ##x0 and y0 are the starting values
  ## plot the 95% contour of the theoretical normal
  ##
  plot(ellipse(rho), type="l", main="Bivariate Normal", col="green")
  dev.hold()
  ## initialization
  x <- rep(0, NSimul)
  y <- rep(0, NSimul)
  x[1]=x0
  y[1]=y0
  
  ## Gibbs sampler and plot points
  for(b in 2:NSimul) {
    plot(ellipse(rho), type="l", main="Bivariate Normal")
    points(x[1:(b-1)], y[1:(b-1)])
    dev.hold()
    ## sample the x direction conditional on y
    x[b] <- rnorm(1, rho*y[b-1], sqrt(1-rho^2))
    lines(c(x[b-1], x[b]), c(y[b-1], y[b-1]))
    print(paste( "sample x[b] direction on y[b-1] : ", x[b-1], y[b-1], x[b], y[b-1], sep = " "))
    ## sample the y direction conditional on x
    points(x[b], y[b-1],col="red")
    ani.pause()
    y[b] <- rnorm(1, rho*x[b], sqrt(1-rho^2))
    lines(c(x[b], x[b]), c(y[b-1], y[b]))
    print(paste( "sample y[b] direction on x[b] : ", x[b], y[b-1], x[b], y[b], sep = " "))
    points(x[b], y[b],col="red")
    points(x[b], y[b-1],col="black")
    ani.pause()
  }
  ## return the draws
  return(cbind(x,y))
}
```
```{r fig.show='animate', out.width = '6in'}
#################
oopt = ani.options(interval = 0.5)
gibbsNimate(50,rho=0.5)
```