어쩌다보니 토픽 모델링만 진득허니 파고 있는 블로거입니다. 오늘 살펴볼 토픽 모델은 링크(혹은 더 나아가 네트워크)를 예측해낼 수 있는 RTM(Relational Topic Model)예요. 전에 설명한 sLDA 모델이 각각의 텍스트로부터 각각의 텍스트에 속한 응답변수를 학습하는데에 사용되었다면, 이번 RTM 모델은 각각의 텍스트로부터 각각의 텍스트 쌍에 속하는 응답변수(연결 확률)를 학습하는데 사용된다는 점이 차이점입니다. 이미 다 말해버렸네요. 사실 이것만 이해하면 어려울게 전혀 없는 모형입니다.
이 포스팅은 다음 논문과 슬라이드를 바탕으로 작성되었습니다.
Chang, J., & Blei, D. (2009, April). Relational topic models for document networks. In Artificial Intelligence and Statistics (pp. 81-88).
https://www.slideshare.net/perseid/supervised-and-relational-topic-models
전반적인 모형은 sLDA와 거의 동일합니다. 차이점이 있다면 sLDA는 1개의 문헌당 1개의 응답변수를 모델링했다면, RTM은 매 문헌쌍마다 1개의 응답변수를 모델링했다는 것이죠.
sLDA 모형을 복습해봅시다. sLDA의 생성 모형은 다음과 같아요.
각각의 토픽에 대해
RTM의 생성 모형은 다음과 같아요.(sLDA에서 무엇이 달라졌는지 찾아보시길!)
각각의 토픽에 대해
이제 핵심은 '연결 확률 함수를 어떻게 정의할까' 겠지요? 저자들은 로지스틱형과 지수형 2가지를 제안했습니다.
이를 계산하기 위해 먼저 각 문헌의 평균 주제 비중 (Avg_z(d)라고 쓰겠습니다.)을 알아야 합니다. 이는 해당 문헌에 속한 각각 주제별 단어수를 전체 단어의 수로 나눠서 얻습니다. 예를 들어 전체 단어가 10개인데 주제 #0이 5개, 주제 #1이 3개, 주제 #2가 2개로 분포되어 있다면 이 문헌의 평균 주제 비중은 (0.5, 0.3, 0.2)가 됩니다.
이 때 두 문헌의 연결 확률은 로지스틱형에서는 다음과 같이 계산됩니다.
(가운데 ○는 요소별 곱, σ(x)는 시그모이드 함수)
만약 Avg_z(d) = (0.5, 0.3, 0.2), Avg_z(d') = (0.1, 0.1, 0.8)이고, η = (1, -1, 1), ν = 0 라고 하고 위 값을 계산해보자면, (1, -1, 1) · (0.5*0.1, 0.3*0.1, 0.2*0.8) + 0 이므로, 0.05 - 0.03 + 0.16 = 0.18이 되고 이 값을 sigmoid에 넣은 0.5448이 두 문헌 d, d'가 연결될 확률입니다.
지수형은 로지스틱과 동일하지만 함수만 지수함수로 바뀐 형태입니다.
이 연결 확률 함수들은 두 문헌이 얼마나 주제적으로 일치하는지에 계수 η와 상수항 ν을 합쳐 하나의 확률값을 계산해냅니다. 두 문헌이 주제적으로 일치한다고 하더라고, 일치하는 주제가 무엇이냐에 따라 연결이 될수도 안될수도 있기 때문에(예를 들어 굉장히 두 문헌이 일반적인 주제면에서 일치하는 경우와 매우 특정한 좁은 주제면에서 일치하는 경우를 생각해봅시다. 전자는 주제가 일치도가 높아도 연결되지 않을 확률이 높지만, 후자는 주제 일치도가 낮아도 일치할 확률이 높겠죠?) 이를 잘 반영하는 식이라고 볼 수 있겠네요.
저자들은 Variational Inference 방법과 파라미터 최적화를 위해 ELBO(evidence lower bound)를 사용했지만, 다른 토픽모델들이 그러하듯 이 역시 깁스 샘플링 과정으로 추론도 가능합니다. 깁스 샘플링과 BFGS를 이용한 Java 구현은 여기서 찾아볼 수 있습니다.
RTM은 문헌 집합과 문헌들 간의 연결(논문이라면 citation, 웹이라면 hyperlink, SNS라면 친구관계 등등)을 입력으로 받아서 그 연결 패턴을 학습합니다. 그리고 새로운 문헌들이 들어오면 새로운 문헌들끼리의 연결 가능성, 혹은 새로운 문헌과 기존 문헌간의 연결 가능성을 예측해주죠. 네트워크 이론에서 다루는 링크 예측을 토픽 모델링을 통해서 수행할 수 있다는 것이 가장 큰 가능성입니다.
Chang이 논문에서 제시한 결과들을 함께 살짝 살펴보겠습니다.
RTM 및 LDA+회귀를 통해서 뽑힌 해당 논문과 연결 가능성이 높은 논문 Top8을 표로 정리해놨군요. 굵게 되어있는것이 실제로 인용을 통해 연결된 논문이구요. 두 경우 모두 RTM 쪽의 결과가 실제 인용과 잘 일치하는 것을 확인할 수 있습니다.
2013년에 Chang의 RTM을 조금 더 일반화하여 확장한 모델 Generalized RTM이 등장하였습니다. ( Chen, N., Zhu, J., Xia, F., & Zhang, B. (2013). Generalized relational topic models with data augmentation. learning, 17, 36-6. )
위에서 설명한 RTM은 두 문헌 d와 d'의 연결 확률을 계산하기 위해 Avg_z(d)와 Avg_z(d')을 요소별로 곱하여 사용했습니다. 즉 토픽이 3개라고 할때, 두 문헌의 1번-1번, 2번-2번, 3번-3번 토픽끼리의 관계만을 사용하는 것이죠. 이는 크게 2가지 한계가 있습니다.
두 문헌의 주제 간의 관계를 가 아니라
로 계산하여 d의 K개의 토픽이 d`의 K개의 토픽과 가지는 관계를 모두 고려하도록 하였습니다.
이렇게 K개의 요소 간 곱을 K*K 행렬의 계산으로 확장하여 (추정해야할 파라미터는 제곱으로 늘어났지만) 서로 다른 토픽 간의 관계도 고려하면서, 방향성까지 확보하였죠.
앞서 설명했듯이 RTM은 문헌으로부터 링크를 예측할 수 있으므로, 텍스트 데이터가 포함된 네트워크를 분석하는데 굉장히 유용하게 사용될 수 있습니다. 대표적인 것이 인용관계 네트워크지만, 이 밖에도 SNS, 웹 페이지 등등 사실 상 네트워크 구조를 이루는 모든 대상에 사용할 수 있겠죠. 아주 흥미롭네요!
코퍼스 내에서 알려지지 않은 새로운 명사(미등록어)를 추출하기 (3) | 2018.09.02 |
---|---|
[토픽 모델링] 가우시안 LDA 모델 - Word2Vec과 결합한 LDA (5) | 2018.08.05 |
[토픽 모델링] LDA에 용어 가중치를 적용하기 (8) | 2018.06.26 |
[언어모델] HPYLM : 계층적 피트만-요 언어 모델 (0) | 2018.03.16 |
[잠재 디리클레 할당 파헤치기] 2.5. 디리클레-다항분포와 마법의 폴리아 항아리 (7) | 2018.02.13 |
[토픽 모델링] 단어의 순서를 고려하는 모형들 - Topical N Gram (0) | 2018.02.04 |
댓글 영역