SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Latent
Dirichlet
Allocation
David M. Blei | Andrew Y. Ng | Michael I. Jordan
ㅎㅇ
모델 개요
토픽별 단어의 분포
문서별 토픽의 분포
각 문서에 어떤 주제들이 존재하는지에 대한 확률모형
글쓰기의 과정
글감, 주제 정하기 어떤 단어를 쓸까?
사람
LDA 의 가정
말뭉치(corpus)로부터
얻은 토픽의 분포로부터 토픽 선정
선정된 토픽에 해당하는
단어들을 뽑아서 쓰자!
실제로 이런다는건아니고 이렇게 될 것이라 가정한다는것
반대방향으로 생각해보자
현재 문서에 등장한 단어들은 어떤 토픽에서 나온 단어들일까?
명시적으로 알기가 어려움
LDA를 활용하여 말뭉치 이면에 존재하는 정보를 추론해 낸다.
그럼 D의 Dirichlet는 뭐야?
LDA의 L은 latent 잠재정보를 알아낸다는것
일단 디리클레라는 분포가 있다는것만 알고 넘어가자
Architecture
말뭉치 전체
문서의 갯수
전체 토픽의 수
(하이퍼 파라미터)
d번째 문서의
단어 수
유일한 관찰가능 변수
문서 생성 과정
모델의 변수
ϕk 는 k번째 토픽의 단어비중을 나타내는 벡터
말뭉치 전체 단어 개수만큼의 길이를 갖게됨.
ϕ1 ϕ2 ϕ3
각 entry value는 해당 단어가 k번째 토픽에서
차지하는 비중을 나타냄
각 요소는 확률이므로 열의 총 합은 1이 된다.
아키텍처를 살펴보면 ϕk 는 하이퍼 파라미터 β 의
영향을 받고 있음. 이는 LDA에서 토픽의 단어비중 ϕk 이 디리클레 분포를
따른다는 가정을 취하기 때문. 자세한 이론적 내용은 잠시 후에
모델의 변수
θd 는 d번째 문서가 가진 토픽 비중을 나타내는 벡터
전체 토픽 개수 K만큼의 길이를 갖게됨.
θ1 각 entry value는 k번째 토픽이 해당 d번째
문서에서 차지하는 비중을 나타냄
각 요소는 확률이므로 각 행의 총 합은 1이 된다.
아키텍처를 살펴보면 θd 는 하이퍼 파라미터 α 의
영향을 받고 있음. 이는 LDA에서 문서의 토픽 비중 θd 역시 디리클레 분포를
따른다는 가정을 취하기 때문. 자세한 이론적 내용은 잠시 후에
θ2
θ3
θ4
θ5
θ6
모델의 변수
zd,n 는 d번째 문서의 n번째 단어가 어떤 토픽에 해당하는지 할당해주는 역할
예컨데 세번째 문서의 첫번째 단어는 Topic2일 가능성이 가장 높다고 할 수 있음
wd,n 은 문서에 등장하는 단어를 할당해 주는 역할.
직전 예시에서 z_3,1이 실제로 Topic2에 할당되었다고 했을때, Topic2의 단어분포 가운데
Money의 확률이 가장 높으므로 w_3,1은 Money가 될 가능성이 가장 높음
동시에 영향을 받음zd,nϕk
Architecture
말뭉치 전체
문서의 갯수
전체 토픽의 수
(하이퍼 파라미터)
d번째 문서의
단어 수
유일한 관찰가능 변수
LDA의 inference
지금까지는 LDA가 가정하는 문서생성과정과 잠재변수들의 역할을 살펴보았다.
이제는 반대로 관측된 W_d,n을 가지고 잠재변수를 추정하는 inference 과정을 살펴보자.
LDA는 토픽의 단어분포와 문서의 토픽분포의 결합으로 문서 내 단어들이 생성됨을 가정하고 있다.
실제 관측된 문서 내 단어를 가지고 우리가 알고 싶은 토픽의 단어 분포, 문서의 토픽 분포를 추정할 것
문서 생성 과정이 합리적이라면 이 결합확률이 매우 클 것
ϕk θd
LDA의 inference
여기에서 하이퍼 파라미터 알파와 베타, 그리고 관찰 가능한 w_d,n을 제외한 모든 변수가 미지수.
p(z, ϕ, θ|w)결국, 를 최대로 만드는 z, ϕ, θ 를 찾는것이 목적
그런데 여기에서 분모에 해당하는 p(w) 를 바로 구할수 없기 때문에 깁스 샘플링 활용
Dirichlet Distribution
Dirichlet Distribution
Dirichlet Distribution
Dirichlet Distribution
Dirichlet Distribution
LDA의 깁스 샘플링
LDA 에서는 나머지 변수는 고정시킨 채 한 변수만을 변화시키되, 불필요한 변수를 제외하는 collapsed gibbs sampling 기법 활용한다.
쉽게 말해서, z만 구하면 phi와 theta는 z를 활용하여 구할수 있기 때문에 z만 구하겠다는 것
LDA의 깁스 샘플링 과정을 수식으로 표현하면 다음과 같다.
i번째 단어의 토픽정보를 제외한 모든 단어의 토픽정보
LDA의 깁스 샘플링
LDA의 깁스 샘플링
LDA의 깁스 샘플링
LDA의 깁스 샘플링
LDA의 깁스 샘플링
LDA의 깁스 샘플링
LDA의 깁스 샘플링
실제 계산 과정
실제 계산 과정
초기조건 깁스 샘플링 활용하여 p(z1,2) 구하기
실제 계산 과정
이 예시에서 z_1,2는 Topic1에 할당될 가능성이 가장 크다.
하지만 확률적인 방식으로 토픽을 할당하기 때문에 무조건 Topic1에 할당된다고 할 수는 없음
실제 계산 과정
결과적으로 z_1,2 가 Topic1에 할당되었다고 가정해보면 Doc1의 토픽분포 첫번째 토픽의 단어분포 는 다음과 같다.θ1 ϕ1
디리클레 파라미터의 역할
A는 d번째 문서가 k번째 토픽과 맺고 있는 연관성 강도를 나타냄
B는 d번째 문서의 n번째 단어(w_d,n)가 k번째 토픽과 맺고 있는 연관성 강도를 나타냄
이전 예시에서 Topic2에 할당된 단어가 하나도 없는 상황이 있었다. (n_1,2 = 0)
원래대로라면 첫번째 문서가 Topic2와 맺고있는 연관성 강도, A는 0이어야 할 것,
A가 0이되면 z_d,i가 Topic2가 될 확률 또한 0이게 된다.
디리클레 파라미터의 역할
하지만 하이퍼 파라미터 알파 덕분에 A가 아예 0이되는 상황을 방지할 수 있게 됨.
일종의 Smoothing 역할. 알파가 클수록 토픽들의 분포가 비슷해지고 작을수록 특정 토픽이 크게 나타나게 됨.
Latent
Dirichlet
Allocation
David M. Blei | Andrew Y. Ng | Michael I. Jordan
ㅂㅇ

Weitere ähnliche Inhalte

Was ist angesagt?

巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table について巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table について
Haruka Ozaki
 

Was ist angesagt? (20)

協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
 
巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table について巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table について
 
Bloom filter
Bloom filterBloom filter
Bloom filter
 
『データベースのどこが問題?』を時間かけずにレスポンス・タイム分析(RTA)!
『データベースのどこが問題?』を時間かけずにレスポンス・タイム分析(RTA)!『データベースのどこが問題?』を時間かけずにレスポンス・タイム分析(RTA)!
『データベースのどこが問題?』を時間かけずにレスポンス・タイム分析(RTA)!
 
私を SKI に連れてって
私を SKI に連れてって私を SKI に連れてって
私を SKI に連れてって
 
ゲート方式量子コンピュータの概要
ゲート方式量子コンピュータの概要ゲート方式量子コンピュータの概要
ゲート方式量子コンピュータの概要
 
最大流 (max flow)
最大流 (max flow)最大流 (max flow)
最大流 (max flow)
 
Cartesian Closed Category
Cartesian Closed CategoryCartesian Closed Category
Cartesian Closed Category
 
オトナのpandas勉強会(資料)
オトナのpandas勉強会(資料)オトナのpandas勉強会(資料)
オトナのpandas勉強会(資料)
 
証明プログラミング入門2
証明プログラミング入門2証明プログラミング入門2
証明プログラミング入門2
 
Retail Face Analysis Inside-Out
Retail Face Analysis Inside-OutRetail Face Analysis Inside-Out
Retail Face Analysis Inside-Out
 
ユーザーサイド情報検索システム
ユーザーサイド情報検索システムユーザーサイド情報検索システム
ユーザーサイド情報検索システム
 
論文紹介: Cuckoo filter: practically better than bloom
論文紹介: Cuckoo filter: practically better than bloom論文紹介: Cuckoo filter: practically better than bloom
論文紹介: Cuckoo filter: practically better than bloom
 
ラムダ計算入門
ラムダ計算入門ラムダ計算入門
ラムダ計算入門
 
ゲームボーイ向けOSの作り方
ゲームボーイ向けOSの作り方ゲームボーイ向けOSの作り方
ゲームボーイ向けOSの作り方
 
ベアメタルで実現するSpark&Trino on K8sなデータ基盤
ベアメタルで実現するSpark&Trino on K8sなデータ基盤ベアメタルで実現するSpark&Trino on K8sなデータ基盤
ベアメタルで実現するSpark&Trino on K8sなデータ基盤
 
∞-gram を使った短文言語判定
∞-gram を使った短文言語判定∞-gram を使った短文言語判定
∞-gram を使った短文言語判定
 
証明プログラミング超入門
証明プログラミング超入門証明プログラミング超入門
証明プログラミング超入門
 
文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)
文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)
文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
 

Mehr von KyeongUkJang

Mehr von KyeongUkJang (20)

Photo wake up - 3d character animation from a single photo
Photo wake up - 3d character animation from a single photoPhoto wake up - 3d character animation from a single photo
Photo wake up - 3d character animation from a single photo
 
YOLO
YOLOYOLO
YOLO
 
AlphagoZero
AlphagoZeroAlphagoZero
AlphagoZero
 
GoogLenet
GoogLenetGoogLenet
GoogLenet
 
GAN - Generative Adversarial Nets
GAN - Generative Adversarial NetsGAN - Generative Adversarial Nets
GAN - Generative Adversarial Nets
 
Distilling the knowledge in a neural network
Distilling the knowledge in a neural networkDistilling the knowledge in a neural network
Distilling the knowledge in a neural network
 
Gaussian Mixture Model
Gaussian Mixture ModelGaussian Mixture Model
Gaussian Mixture Model
 
CNN for sentence classification
CNN for sentence classificationCNN for sentence classification
CNN for sentence classification
 
Visualizing data using t-SNE
Visualizing data using t-SNEVisualizing data using t-SNE
Visualizing data using t-SNE
 
Playing atari with deep reinforcement learning
Playing atari with deep reinforcement learningPlaying atari with deep reinforcement learning
Playing atari with deep reinforcement learning
 
Chapter 20 - GAN
Chapter 20 - GANChapter 20 - GAN
Chapter 20 - GAN
 
Chapter 20 - VAE
Chapter 20 - VAEChapter 20 - VAE
Chapter 20 - VAE
 
Chapter 20 Deep generative models
Chapter 20 Deep generative modelsChapter 20 Deep generative models
Chapter 20 Deep generative models
 
Chapter 19 Variational Inference
Chapter 19 Variational InferenceChapter 19 Variational Inference
Chapter 19 Variational Inference
 
Natural Language Processing(NLP) - basic 2
Natural Language Processing(NLP) - basic 2Natural Language Processing(NLP) - basic 2
Natural Language Processing(NLP) - basic 2
 
Natural Language Processing(NLP) - Basic
Natural Language Processing(NLP) - BasicNatural Language Processing(NLP) - Basic
Natural Language Processing(NLP) - Basic
 
Chapter 17 monte carlo methods
Chapter 17 monte carlo methodsChapter 17 monte carlo methods
Chapter 17 monte carlo methods
 
Chapter 16 structured probabilistic models for deep learning - 2
Chapter 16 structured probabilistic models for deep learning - 2Chapter 16 structured probabilistic models for deep learning - 2
Chapter 16 structured probabilistic models for deep learning - 2
 
Chapter 16 structured probabilistic models for deep learning - 1
Chapter 16 structured probabilistic models for deep learning - 1Chapter 16 structured probabilistic models for deep learning - 1
Chapter 16 structured probabilistic models for deep learning - 1
 
Chapter 15 Representation learning - 2
Chapter 15 Representation learning - 2Chapter 15 Representation learning - 2
Chapter 15 Representation learning - 2
 

Latent Dirichlet Allocation

  • 1. Latent Dirichlet Allocation David M. Blei | Andrew Y. Ng | Michael I. Jordan ㅎㅇ
  • 2. 모델 개요 토픽별 단어의 분포 문서별 토픽의 분포 각 문서에 어떤 주제들이 존재하는지에 대한 확률모형
  • 3. 글쓰기의 과정 글감, 주제 정하기 어떤 단어를 쓸까? 사람 LDA 의 가정 말뭉치(corpus)로부터 얻은 토픽의 분포로부터 토픽 선정 선정된 토픽에 해당하는 단어들을 뽑아서 쓰자! 실제로 이런다는건아니고 이렇게 될 것이라 가정한다는것
  • 4. 반대방향으로 생각해보자 현재 문서에 등장한 단어들은 어떤 토픽에서 나온 단어들일까? 명시적으로 알기가 어려움 LDA를 활용하여 말뭉치 이면에 존재하는 정보를 추론해 낸다. 그럼 D의 Dirichlet는 뭐야? LDA의 L은 latent 잠재정보를 알아낸다는것 일단 디리클레라는 분포가 있다는것만 알고 넘어가자
  • 5. Architecture 말뭉치 전체 문서의 갯수 전체 토픽의 수 (하이퍼 파라미터) d번째 문서의 단어 수 유일한 관찰가능 변수
  • 7. 모델의 변수 ϕk 는 k번째 토픽의 단어비중을 나타내는 벡터 말뭉치 전체 단어 개수만큼의 길이를 갖게됨. ϕ1 ϕ2 ϕ3 각 entry value는 해당 단어가 k번째 토픽에서 차지하는 비중을 나타냄 각 요소는 확률이므로 열의 총 합은 1이 된다. 아키텍처를 살펴보면 ϕk 는 하이퍼 파라미터 β 의 영향을 받고 있음. 이는 LDA에서 토픽의 단어비중 ϕk 이 디리클레 분포를 따른다는 가정을 취하기 때문. 자세한 이론적 내용은 잠시 후에
  • 8. 모델의 변수 θd 는 d번째 문서가 가진 토픽 비중을 나타내는 벡터 전체 토픽 개수 K만큼의 길이를 갖게됨. θ1 각 entry value는 k번째 토픽이 해당 d번째 문서에서 차지하는 비중을 나타냄 각 요소는 확률이므로 각 행의 총 합은 1이 된다. 아키텍처를 살펴보면 θd 는 하이퍼 파라미터 α 의 영향을 받고 있음. 이는 LDA에서 문서의 토픽 비중 θd 역시 디리클레 분포를 따른다는 가정을 취하기 때문. 자세한 이론적 내용은 잠시 후에 θ2 θ3 θ4 θ5 θ6
  • 9. 모델의 변수 zd,n 는 d번째 문서의 n번째 단어가 어떤 토픽에 해당하는지 할당해주는 역할 예컨데 세번째 문서의 첫번째 단어는 Topic2일 가능성이 가장 높다고 할 수 있음 wd,n 은 문서에 등장하는 단어를 할당해 주는 역할. 직전 예시에서 z_3,1이 실제로 Topic2에 할당되었다고 했을때, Topic2의 단어분포 가운데 Money의 확률이 가장 높으므로 w_3,1은 Money가 될 가능성이 가장 높음 동시에 영향을 받음zd,nϕk
  • 10. Architecture 말뭉치 전체 문서의 갯수 전체 토픽의 수 (하이퍼 파라미터) d번째 문서의 단어 수 유일한 관찰가능 변수
  • 11. LDA의 inference 지금까지는 LDA가 가정하는 문서생성과정과 잠재변수들의 역할을 살펴보았다. 이제는 반대로 관측된 W_d,n을 가지고 잠재변수를 추정하는 inference 과정을 살펴보자. LDA는 토픽의 단어분포와 문서의 토픽분포의 결합으로 문서 내 단어들이 생성됨을 가정하고 있다. 실제 관측된 문서 내 단어를 가지고 우리가 알고 싶은 토픽의 단어 분포, 문서의 토픽 분포를 추정할 것 문서 생성 과정이 합리적이라면 이 결합확률이 매우 클 것 ϕk θd
  • 12. LDA의 inference 여기에서 하이퍼 파라미터 알파와 베타, 그리고 관찰 가능한 w_d,n을 제외한 모든 변수가 미지수. p(z, ϕ, θ|w)결국, 를 최대로 만드는 z, ϕ, θ 를 찾는것이 목적 그런데 여기에서 분모에 해당하는 p(w) 를 바로 구할수 없기 때문에 깁스 샘플링 활용
  • 18. LDA의 깁스 샘플링 LDA 에서는 나머지 변수는 고정시킨 채 한 변수만을 변화시키되, 불필요한 변수를 제외하는 collapsed gibbs sampling 기법 활용한다. 쉽게 말해서, z만 구하면 phi와 theta는 z를 활용하여 구할수 있기 때문에 z만 구하겠다는 것 LDA의 깁스 샘플링 과정을 수식으로 표현하면 다음과 같다. i번째 단어의 토픽정보를 제외한 모든 단어의 토픽정보
  • 27. 실제 계산 과정 초기조건 깁스 샘플링 활용하여 p(z1,2) 구하기
  • 28. 실제 계산 과정 이 예시에서 z_1,2는 Topic1에 할당될 가능성이 가장 크다. 하지만 확률적인 방식으로 토픽을 할당하기 때문에 무조건 Topic1에 할당된다고 할 수는 없음
  • 29. 실제 계산 과정 결과적으로 z_1,2 가 Topic1에 할당되었다고 가정해보면 Doc1의 토픽분포 첫번째 토픽의 단어분포 는 다음과 같다.θ1 ϕ1
  • 30. 디리클레 파라미터의 역할 A는 d번째 문서가 k번째 토픽과 맺고 있는 연관성 강도를 나타냄 B는 d번째 문서의 n번째 단어(w_d,n)가 k번째 토픽과 맺고 있는 연관성 강도를 나타냄 이전 예시에서 Topic2에 할당된 단어가 하나도 없는 상황이 있었다. (n_1,2 = 0) 원래대로라면 첫번째 문서가 Topic2와 맺고있는 연관성 강도, A는 0이어야 할 것, A가 0이되면 z_d,i가 Topic2가 될 확률 또한 0이게 된다.
  • 31. 디리클레 파라미터의 역할 하지만 하이퍼 파라미터 알파 덕분에 A가 아예 0이되는 상황을 방지할 수 있게 됨. 일종의 Smoothing 역할. 알파가 클수록 토픽들의 분포가 비슷해지고 작을수록 특정 토픽이 크게 나타나게 됨.
  • 32. Latent Dirichlet Allocation David M. Blei | Andrew Y. Ng | Michael I. Jordan ㅂㅇ