[토픽 모델링] 파칭코 할당 모형과 계층적 LDA 모형

Posted by 적분 ∫2tdt=t²+c
2017.12.20 17:04 그냥 공부

오늘 살펴볼 토픽 모델은 여러 계층의 주제들을 모델링할 수 있는 모델들입니다. LDA와 같은 기본적인 토픽 모델의 경우 주제가 한 계층밖에 없어서 모든 주제가 동등한 계층에 위치할 수 밖에 없습니다. 하지만 실제 의미적으로 따져볼 때 주제들 중에는 엄연히 넓은 범위를 포괄하는 상위주제도 있고, 특수한 부분만을 가리키는 하위주제도 있게 마련이죠. 예를 들어 '과학'이라는 상위 주제 밑에는 '물리학', '화학', '생물학' 등의 하위주제가 포함될 수 있듯 말입니다.

이렇게 계층적인 주제를 모델링하기 위한 모형으로 크게 파칭코 할당(Pachinko Allocation, PAM) 모형과 계층적 LDA(Hierarchical LDA, hLDA) 모형, 그리고 이 둘을 합친 계층적 파칭코 할당(Hierarchical Pachinko Allocation, hPAM) 모형 등이 있습니다. 이번 포스팅에서는 이 모형들에 대해서 간략하게 알아보는 시간을 가지도록 하겠습니다.


파칭코 할당 모형[각주:1]

사실 이 모형에 대해서 알게 된 이유는 이름이 너무 특이해서였습니다. 파칭코(パチンコ, Pachinko)라고 하면... 일본의 도박 밖에 생각이 안나는데 이게 왜 토픽 모델의 이름으로 쓰였을까요? 논문을 읽어보면서 깨달았는데, 파칭코라는 이름은 이 모형에서 문헌을 생성하는 과정이 파칭코와 유사하다고 해서 붙여진 이름이라고 합니다. 후에 곰곰히 생각해보니, 정말 모형의 특성을 잘 반영하도록 지은 이름이더라구요. 그러니 일단 파칭코에 대해 알아보면서 파칭코 모형에 대한 감을 잡아봅시다.
파칭코는 처음에는 쇠구슬로 하는 게임을 가리키는 표현으로 쓰이다가, 도박 산업이 커지면서 일본의 도박 산업 전반을 가리키는 표현을 의미가 확장되었다고 합니다. 논문에서 쓴 파칭코라는 표현은 최초의 파칭코, 즉 쇠구슬로 하는 핀볼 게임류를 가리키는 것입니다. 제일 위에서 구슬이 떨어지면서 중간중간에 놓인 막대를 따라 이리 튕기고 저리 튕겨서 최종 지점으로 떨어지는 것을 상상해보시면 도움이 될것입니다.

쉬운 이해를 위해서 설명용 애니메이션을 만들어보았습니다. 이렇게 제일 위(첫번째 계층)에서 출발한 구슬은 막대에 걸려서 다음 계층으로 가게 되고, 또 다음 계층에서 막대에 걸려, 그 다음 계층으로... 이렇게 이것을 반복하다가 최종적으로 제일 아래 계층으로 빠져나옵니다. 여기서 제일 꼭대기의 계층을 문헌, 제일 아래 계층을 단어, 그리고 중간의 계층들이 주제가 됩니다. 구슬은 하나의 단어가 되구요. 이정도면 감을 잡으셨겠죠.

파칭코 할당의 가장 큰 특징은 상위 계층의 주제가 확률적으로 하위 계층의 주제 여럿을 포함할 수 있다는 것입니다. 위의 그림에서 #A는 #1, #2로만 연결되는 것으로 나타나지만, 실제로 엄밀하게 따지자면 파칭코 할당에서는 #A는 #1, #2, #3을 모두 포함할 확률을 가지고 있습니다. 마찬가지로 위의 그림에서 #2은 b, c로만 연결되는것으로 보이지만, 실제 모형에서는 #2는 a, b, c, d를 모두 포함할 확률을 가지고 있는 것이구요. 이렇듯 상위 계층의 주제가 하위 계층을 여럿을 포함할 수 있도록 LDA를 다계층으로 확장한 것이 파칭코 할당 모형입니다. (이런 형태를 DAG(Directed Acyclic Graph, 비순환 방향성 그래프)로 표현할 수 있는데요, 다음에 설명할 hLDA가 Tree에 대응하는것에 비해 파칭코 할당은 이보다 더 유연한 DAG에 대응한다는것 참고하시면 되겠습니다.)

논문에 포함된 그림을 가져와보았습니다. 이해하는데 많이 도움이 되더라구요. 본 단락의 그림들은 모두 Li, W., & McCallum, A. (2006, June). Pachinko allocation: DAG-structured mixture models of topic correlations. In Proceedings of the 23rd international conference on Machine learning (pp. 577-584). ACM. 에서 가져왔음을 다시 한 번 밝힙니다.

조금 더 추상적이고 수학적인 관점에서 이해해봅시다. (a), (b), (c) 3가지의 비순환 방향성 그래프(각각 2계층, 3계층, 4계층 파칭코 할당 모형)가 있습니다. 각 간선은 한 노드에서 다음 노드로 이동할 확률을 가지고 있습니다. 시작점은 항상 최상위 노드이고, 여기서 출발하여 랜덤하게 최하위 노드로 이동하게 됩니다. 이렇게 최상위 노드에서 출발해서 최하위까지 이동하는 것을 여러 번 반복하면, 최종적으로 각 노드를 지나간 경우가 몇개인지 알게 되겠죠. (a)와 같은 경우 최종 노드를 지난 횟수는 디리클레-다항분포로 표현할 수 있습니다. 

(b)와 같은 경우 r에서 S로 이동하는 것을 문헌별 주제 분포, S에서 V로 이동하는 것을 주제별 단어 분포라고 생각한다면 LDA와 동일한 모형이라는 것을 깨달을 수 있죠. (LDA에서는 한 문헌에 여러 주제를 확률적으로 포함하고, 한 주제가 여러 단어를 확률적으로 포함한다는 것을 상기해봅시다.) 그리고 이 경우는 r-S를 디리클레-다항 분포, S-V를 디리클레-다항 분포로 표현가능하므로, 최종적으로 두 디리클레 분포의 결합으로 전체 모형을 설명할 수 있습니다. (LDA 모형에 대해서는 앞서 여러번 설명했으므로 더 설명하지 않겠습니다.)

(c)의 경우는 4계층 파칭코 할당 모형입니다. 최상위 계층(하나의 문헌)은 그 바로 아래의 계층(상위 주제) 여러개를 확률적으로 포함할 수 있고, 그 계층은 또 그 다음 계층(하위 주제) 여러 개를 확률적으로 포함하고, 마지막으로 그 계층은 최하위 계층(단어) 여러 개를 확률적으로 포함할 수 있죠. 이 경우는 총 3개의 디리클레 분포의 결합으로 전체 모형을 설명할 수 있게 됩니다. 계층이 4개보다 더 늘어나도 마찬가지 방법으로 확장해서 생각할 수 있죠.

LDA가 3계층 파칭코 할당이라는 것이 포인트가 되겠습니다. 즉, 논문에서 제시되는 파칭코 할당은 결국 LDA를 수직적으로 확장한 것이라는 것이죠.


plate notation으로 표현한 4계층 파칭코 할당

LDA에서 s_1 박스 및 z_w3가 추가된 것이라고 볼 수 있습니다. z_w1은 최상위 계층의 노드 할당인데, 최상위 노드는 항상 1개이므로, 항상 같은 값입니다. 즉 신경쓰실거 없구요, z_w2는 상위 주제 할당, z_w3는 하위 주제 할당, w는 실제로 결정되는 최종 단어가 되겠습니다. 참 쉽죠?

파칭코 할당에서 어려운 점은 하이퍼 파라미터 학습입니다. LDA의 경우 설정해야할 하이퍼 파라미터는 α(문헌별 주제 분포)와 β(주제별 단어 분포) 2가지였습니다. 이 파라미터들을 대칭으로 두어도(벡터의 모든 성분이 같은 값이 되도록) 합리적인 결과가 도출되었는데요, 파칭코 할당의 경우 4계층인 경우를 고려해보면, 따져야할 파라미터가 α_1(문헌별 상위 주제 분포), α_k(상위 주제별 하위 주제 분포) , β(주제별 단어 분포)인데, 이 파라미터들을 모두 대칭으로 둘 경우 원치 않는 결과가 나오게 된다고 합니다. 

예를 들어 상위 주제로 '과학', '인문학'이 있고, 그 하위 주제로 '천문학', '생물학', '물리학', '철학', '사학' 등이 있는데, α_k가 대칭적인 경우, '과학'이라는 주제와 '인문학'이라는 주제가 '천문학', '생물학', '물리학', '철학', '사학'을 가지는 비중에 큰 차이가 나지 않는 일이 발생할 수 있습니다. 우리가 원한 결과는 '과학'은 하위 주제로 '천문학', '생물학', '물리학'을 높은 비중으로, '인문학'은 '철학', '사학'을 높은 비중으로 가지는 것인데 말이지요.

따라서 적절한 α_k를 학습해야합니다. 이를 추론하기 위해 모멘트 정합(moment matching) 기법을 이용했다고 하는데 자세한 내용은 논문을 참고하시면 되겠습니다.


계층적 LDA 모형[각주:2]

이 모형의 경우 이름만 봐서는 LDA의 계층적 버전인 것처럼 보이지만, 사실 엄밀하게 따지면 HDP-LDA(HDP에 대한 자세한 설명은 여기를 참고하시길 바랍니다.)의 계층적 버전이라고 보는게 더 적절할 듯합니다. 이는 중첩된 중국집 프로세스를 통해서 쉽게 설명될 수 있습니다. (이에 대해서는 이전 글을 참고하시면 되겠네요). 이 모형도 파칭코 할당처럼 계층적인 주제 구조를 모델링하는데요, 파칭코 할당과 다른 점은 크게 3가지입니다.

  1. NCRP(Nested Chinese Restaurant Process)를 이용하여, 비모수적인 학습을 진행함. 즉 파칭코 할당과 달리 각 계층에 속하는 주제의 개수를 설정할 필요가 없고, 학습 과정에서 최적의 주제의 개수를 찾는다
  2. 주제 구조를 DAG가 아니라 트리로 표현하기에 하위 노드가 여러 상위 노드에 의해 공유되지 않음. 즉 주제 #A의 하위 주제로 #1, #2가 있고, #B의 하위 주제로 #3, #4가 있는 경우, #3은 항상 #B에만 속하고, #1은 항상 #A에만 속함.
    그 결과 상위 노드는 확률적으로 여러 하위 노드를 포함하는 것이 아니라, 확률에 따라 그 노드들 중 하나만을 선택하여 포함하게 됨.
  3. 파칭코 모델에서는 단어는 항상 최하위 계층에 위치하고, 단어의 바로 윗 계층만 단어를 포함할 수 있었으나, hLDA에서는 각 계층도 단어를 포함할 수 있음

2번을 좀더 부연설명하자면, 일반 LDA에서는 하나의 문헌은 여러 개의 주제를 포함할 수 있었습니다. 예를 들어 주제가 '생물학', '화학', '물리학' 등이 있다고 할때, 특정 문헌은 생물학 50%, 화학 30%, 물리학 20% 등으로 주제를 비율적으로 가질 수 있었습니다. 이는 파칭코할당에서도 마찬가지입니다. 한 문헌은 상위 주제를 LDA와 마찬가지로 비율적으로 가질 수 있고, 그 상위 주제들도 하위 주제를 비율적으로 가질 수 있었습니다. 그렇지만 계층적 LDA 모형에서는 한 문헌은 오로지 한 경로에 속학 주제들만 가질 수 있습니다


보시면 최상위 주제로 the, of, a, is 등의 불용어집합 Topic 1이 있고, 그 하위에 n, algorithm, time 등의 Topic 1.1 그리고 그 하위에 graph, vertices, edge...가 속하는 Topic 1.1.2 가 있습니다. 이 때 한 문헌은 반드시 말단으로 이르는 경로에 속한 주제들만 가질 수 있습니다. 위의 텍스트 예시는 Topic 1, Topic 1.1, Topic 1.1.2 만 비율적으로 가질 수 있고, 그 밖의 다른 경로에 있는 주제들은 가질 수 없습니다. (단어 아래에 붙은 0, 1, 2는 그 단어가 어느 계층에 속한 것인지를 표현하는 것입니다. 0은 최상위 계층인 Topic 1, 1은 Topic 1.1, 2는 Topic 1.1.2를 가리키겠죠?)

이를 잘 생각해보면, 최상위 계층에는 항상 모든 문헌에서 고르게 등장하는 단어들, 즉 불용어가 나오고, 그 다음 계층에는 특정 문헌집합에서 공통적으로 등장하는 단어들, 또 그 아래 계층에는 더 작은 문헌집합에서 공통적으로 등장하는 단어들... 이 위치하게 될 것이라는 것을 알 수 있습니다. 즉, 단어들 간의 위계 파악(더 나아가 택소노미 자동 구축)에 유용하게 사용할 수 있겠죠.

하지만 만약 두 주제가 균일하게 섞인 문헌의 경우, 이 모형을 가지고 제대로 분석하기가 어렵다는 한계가 있습니다. 이는 앞서 제시한 2번의 차이점에서 기인하는 것인데, 상위 노드가 하위 노드를 비율적으로 가지는 것이 아니라 하나만 선택할 수 있기 때문에, 예를 들어 '화학'과 '물리학'이 비슷한 비중으로 포함된 문헌의 경우, 둘을 50%, 50%씩 균등하게 포함되어있다고 추론하기 보다는, 둘 중에 하나를 상위 노드로, 그리고 다른 하나를 그 노드의 하위 노드로 추론하게 됩니다. 이런 점에서 볼때 2번 조건은 꽤나 빽빽한 제한이라고 볼 수 있겠습니다.


계층적 파칭코 할당 모형[각주:3]

위에서 설명한 대로 hLDA는 NCRP를 이용해 비모수적 추론을 가능하게 하고, 각각의 노드들도 단어를 포함할 수 있게 하여 단순히 주제 간의 상하 관계만 따지던 파칭코 할당 모형보다 많은 유용성을 보여주었는데요, 하지만 상위 노드가 하위 노드를 여럿을 비율적으로 포함할 수 없다는 한계가 있었습니다. 이를 개선하기 위해 파칭코 할당 모형에서 각 노드들이 단어를 포함할 수 있도록 확장한 모형이 계층적 파칭코 할당 모형입니다. 이들을 그림으로 비교하면 다음과 같겠네요

Mimno, D., Li, W., & McCallum, A. (2007, June). Mixtures of hierarchical topics with pachinko allocation. In Proceedings of the 24th international conference on Machine learning (pp. 633-640). ACM.

PAM은 상위 노드가 여러 하위 노드를 포함할 수 있었지만, 각 노드가 단어를 포함할 수는 없었고, hLDA는 각 노드가 단어를 포함할 수는 있었지만 상위 노드가 여러 하위노드를 포함할 수는 없었습니다. hPAM은 둘 다 됩니다!

4계층 hPAM의 Plate Notation은 위와 같습니다. PAM과 비교했을때 차이점으로는 먼저 주제별 단어분포 φ가 T+t+1개가 되었습니다. 여기서 T는 상위 주제의 수, t는 하위 주제의 수입니다. 그러니깐 최상위 계층 1개, 상위 주제 계층 T개, 하위 주제 계층 t개, 다 합쳐서 T+t+1개의 주제별 단어 분포를 가지는 거죠. 그리고 ζ 분포가 생겼습니다. 얘는 단어를 뽑을 계층에 대한 다항분포를 가집니다. 여기서 l을 뽑아내고, 이 l이 0이면 최상위 계층의 단어분포, 1이면 상위 주제의 단어분포, 2이면 하위 주제의 단어분포에서 뽑는 식으로 노드를 선택합니다. 

이 모형은 굉장히 유연하게 구조를 모델링합니다. 여러 계층을 가지면서, 각 계층이 자유롭게 단어를 포함할 수 있고, 각 노드가 하위 노드 여러 개를 자유롭게 포함할 수 있기 때문에 hLDA처럼 비모수 추론이 아니라는 점만 제외하면, PAM, hLDA를 능가하는 업그레이드 버전이라고 할수 있습니다. (심지어 중국집 프로세스를 적용해서 비모수 추론이 가능하도록 확장하는 것도 가능합니다. 아직 구현을 안했을뿐이지)

다만 모형이 유연하고 강력하다는 것은 거꾸로 얘기하면 사용하기 어렵다는 것이기도 하죠. 다양한 곳에 활용가능하지만, 파라미터를 잘 맞추지 않을 경우 원하는 결과를 얻기 어렵기 때문에 아무 생각없이 써도 괜찮은 결과가 나오는 LDA에 비해 까다롭다고 볼 수도 있겠습니다.


지금까지 계층적 주제 구조를 모델링할 수 있는 토픽 모델들 3가지를 비교 분석해보았습니다. 각 기법들의 차이점을 고려하면서 어느곳에 활용할 수 있을지 생각해보는것도 재미있는 일일듯 합니다.


  1. Li, W., & McCallum, A. (2006, June). Pachinko allocation: DAG-structured mixture models of topic correlations. In Proceedings of the 23rd international conference on Machine learning (pp. 577-584). ACM. [본문으로]
  2. Blei, D. M., Griffiths, T. L., & Jordan, M. I. (2010). The nested chinese restaurant process and bayesian nonparametric inference of topic hierarchies. Journal of the ACM (JACM), 57(2), 7. [본문으로]
  3. Mimno, D., Li, W., & McCallum, A. (2007, June). Mixtures of hierarchical topics with pachinko allocation. In Proceedings of the 24th international conference on Machine learning (pp. 633-640). ACM. [본문으로]
이 댓글을 비밀 댓글로