[토픽 모델링] Relational Topic Model

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

어쩌다보니 토픽 모델링만 진득허니 파고 있는 블로거입니다. 오늘 살펴볼 토픽 모델은 링크(혹은 더 나아가 네트워크)를 예측해낼 수 있는 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


단도직입적인 RTM 모형 설명

전반적인 모형은 sLDA와 거의 동일합니다. 차이점이 있다면 sLDA는 1개의 문헌당 1개의 응답변수를 모델링했다면, RTM은 매 문헌쌍마다 1개의 응답변수를 모델링했다는 것이죠. 


sLDA 모형을 복습해봅시다. sLDA의 생성 모형은 다음과 같아요.


각각의 토픽에 대해

  • β를 파라미터로 하는 디리클레 분포를 따라 V개의 단어 분포를 뽑아낸다.
    (φ ~ Dir(β))
각각의 문헌에 대해
  1. α를 파라미터로 하는 디리클레 분포를 따라 T개의 주제 분포를 뽑아낸다.
    (θ ~ Dir(α))
  2. 모든 단어에 대해, 주제 분포에서 주제 하나를 뽑고, 그 주제의 단어 분포에서 단어 하나를 뽑아낸다.
    (z ~ Mult(θ), w ~ Mult(φ_z))
  3. 문헌 내의 주제 비중에 η를 내적한 값을 평균으로 하고, σ를 표준편차로 하는 정규분포에서 응답 변수 y를 뽑아낸다.
    (y ~ N(η·Avg(z), σ²))


RTM의 생성 모형은 다음과 같아요.(sLDA에서 무엇이 달라졌는지 찾아보시길!)


각각의 토픽에 대해

  • β를 파라미터로 하는 디리클레 분포를 따라 V개의 단어 분포를 뽑아낸다. 
    (φ ~ Dir(β))
각각의 문헌에 대해
  1. α를 파라미터로 하는 디리클레 분포를 따라 T개의 주제 분포를 뽑아낸다. 
    (θ ~ Dir(α))
  2. 모든 단어에 대해, 주제 분포에서 주제 하나를 뽑고, 그 주제의 단어 분포에서 단어 하나를 뽑아낸다. 
    (z ~ Mult(θ), w ~ Mult(φ_z))
모든 문헌쌍에 대해
  1. 두 문헌 쌍의 주제 비중을 연결 확률 함수(link probability function) Ψ에 넣어 응답 변수 y를 뽑아낸다. 
    (y ~ Ψ(d, d`))

이제 핵심은 '연결 확률 함수를 어떻게 정의할까' 겠지요? 저자들은 로지스틱형지수형 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 쪽의 결과가 실제 인용과 잘 일치하는 것을 확인할 수 있습니다.


RTM의 확장 : gRTM

2013년에 Chang의 RTM을 조금 더 일반화하여 확장한 모델 Generalized RTM이 등장하였습니다. ( Chen, N., Zhu, J., Xia, F., & Zhang, B. (2013). Generalized relational topic models with data augmentation. learning17, 36-6. )

위에서 설명한 RTM은 두 문헌 d와 d'의 연결 확률을 계산하기 위해 Avg_z(d)와 Avg_z(d')을 요소별로 곱하여 사용했습니다. 즉 토픽이 3개라고 할때, 두 문헌의 1번-1번, 2번-2번, 3번-3번 토픽끼리의 관계만을 사용하는 것이죠. 이는 크게 2가지 한계가 있습니다.

  1. 서로 다른 토픽끼리의 관계는 고려하지 않는다
  2. 연결이 항상 대칭적이다(비대칭적 관계를 모델링할 수 없다)
이를 해결하기 위해 gRTM에서는 계수로 사용하는 η를 주제 개수인 K차원이 아니라 K*K차원으로 정의하였습니다. 그리고 

두 문헌의 주제 간의 관계를 가 아니라

로 계산하여 d의 K개의 토픽이 d`의 K개의 토픽과 가지는 관계를 모두 고려하도록 하였습니다.

이렇게 K개의 요소 간 곱을 K*K 행렬의 계산으로 확장하여 (추정해야할 파라미터는 제곱으로 늘어났지만) 서로 다른 토픽 간의 관계도 고려하면서, 방향성까지 확보하였죠. 


앞서 설명했듯이 RTM은 문헌으로부터 링크를 예측할 수 있으므로, 텍스트 데이터가 포함된 네트워크를 분석하는데 굉장히 유용하게 사용될 수 있습니다. 대표적인 것이 인용관계 네트워크지만, 이 밖에도 SNS, 웹 페이지 등등 사실 상 네트워크 구조를 이루는 모든 대상에 사용할 수 있겠죠. 아주 흥미롭네요!

이 댓글을 비밀 댓글로
    • 2018.04.13 06:28
    비밀댓글입니다