[논문이야기] Interpretable Topic Analysis ②

단어 간 맥락을 반영하려는 시도들 그중 ‘GloVe’, LSA와 Word2Vec의 장점은 살리고, 단점은 보완한다 토픽의 구조를 반영하는 ‘GRF’, ‘GTRF’

Policy Korea

[논문이야기] Interpretable Topic Analysis ①에서 이어집니다

AI(Artificial Intelligence)분야에서 가장 먼저 떠오르는 교수님은 누가 있을까요? 저는 앤드류 응(Andrew Ng) 교수님이 떠오릅니다. 왜 그런진 모르겠지만 언젠가부터 주변에서 앤드류 응 교수의 강의, 인터뷰, 논문을 봤다고 얘기하는 사람들이 늘어나기 시작했습니다. 지금 생각해보면 앤드류 응 교수의 논문이 2000년 대 초반에 나왔다는 것을 생각하면, 최근 들어 이 교수의 명성을 접하게 돼 제가 좀 늦었구나 하는 생각이 들기도 하네요. 신기하게도 제 논문의 토픽 모델링(topic modeling)은 앤드류 응 교수님의 LDA(잠재 디리클레 할당, Latent Dirichlet Allocation) 논문에서 처음 시작했습니다.

LDA는 ‘맥락’을 반영하지 못한다

LDA의 경우 토픽(topic)의 비율(분포)를 베타 분포(beta distribution)으로 가정하고, 이 가정 하에서 모든 문서의 단어들 topic을 임시로 배정해줍니다. 그 후에는 토픽에서 차지하는 각 단어를 바탕으로 사전 파라미터(prior parameter)에 대한 계산을 했을 때 이를 쿨백-라이블러 발산(KL-divergence)으로 변화량을 측정하고 그 차이가 계속 좁혀질 때까지 또 다시 topic의 배치를 바꾸고 수렴하는지 확인하는 과정을 반복합니다. 한편 LDA는 깁스 샘플링(gibbs sampling)을 사용하기 때문에 후술할 NVI(Neural Network Variational Inference)과는 상당한 차이가 존재합니다.

이렇게 어려운 용어를 쓰면서 결국 하고 싶은 것은 뭐냐구요? LDA를 통해 문서라는 말뭉치(corpus)에서 토픽을 찾겠다는 것입니다. 즉 연구자가 k 개의 토픽들이 문서를 만든다는 설정을 해준다면 LDA 모델은 토픽 추출을 위한 학습을 해나갑니다.

LDA 계산의 가장 큰 맹점은 ‘단어의 순서와 앞 뒤에 따른 관계를 조건적으로 독립’으로 가정한다는 것입니다. 이해하기 쉽게 표현하면, LDA를 활용하게 되면 상대방이 어떤 얘기를 하고 있었는지에 상관없이 제가 다음에 할 말은 전혀 새로운 종류의 토픽에 속하게 된다는 것입니다. 주제 B와 C에 대해 얘기하고 있었는데 그런 맥락은 고려하지 않고 A에 대해 이야기를 한다는 것이죠. 즉 LDA는 ‘맥락’을 반영하지 못한다는 치명적인 단점이 있습니다.

LDA를 통해 분류된 문서 토픽들. 맥락 상 중간의 ‘new public facilities’는 분명 같은 토픽으로 분류돼야 하지만, new만 동떨어진 토픽으로 분석된 것을 확인할 수 있다

문서 전반의 정보를 모두 활용하는 LSA

한편 LSA(Latent Semantic Analysis, 잠재 의미 분석)는 LDA의 단점을 상당 부분 보완합니다. 즉 단어와 단어, 단어와 문서, 문서와 문서의 ‘관계’를 특이값 분해(Singular Vector Decomposition, SVD)로 풀어낸 것이죠.

여기서 원리는 간단합니다. 여러 문서(document)가 있는 상황에서, 문서 내의 단어가 동시에 측정 됐는지 여부를 그래프 상으로 표현하고, $n \times m$ 행렬을 SVD로 분류해서 뽑아내면 단어(word)를 나타내는 고유 벡터(eigen vector)와 문서를 나타내는 고유 벡터들이 벡터 공간(vector space), 즉 문서의 맥락 안에서 얼만큼 비중이 있는지를 나타내는 고윳값(eigen value)을 뽑아낼 수 있게 됩니다.

SVD를 활용한 LSA 계산법

LSA는 SVD라는 간단한 계산으로 이뤄지는 베이직한 모델임에도 불구하고, 말뭉치(corpus) 전체의 통계적인 정보를 모두 활용한다는 점에서 주목할만한 방법론이라고 할 수 있습니다. 그러나 여기에도 단점은 있습니다. 앞서 언급했듯 LSA는 빈도수(count)기반의 TF-IDF 행렬을 활용하며, 이 행렬의 요소가 단어가 나온 ‘횟수’에 불과하기 때문에 단어 의미를 유추하는 데 있어서는 성능이 떨어진다는 것입니다.

문서 전반에서, 단어적 맥락을 반영하는 워드 임베딩 기법, GloVe

위의 단어 간 순서, 즉 ‘맥락적 종속성’을 반영하기 위한 모델로는 글로브(Global Vectors for Word Representation, Glove)가 있습니다. 글로브는 단어 간 맥락적 관계를 반영하는 단어 벡터 표현, 즉 워드 임베딩(word embedding) 방법론입니다. 이는 Word2Vec이 ‘맥락은 반영하지만, 문서 전체의 정보를 반영하지 못한다’는 한계를 극복하고 장점만 살린다는 취지에서 개발된 모델이기도 합니다. 즉 말뭉치 전체의 통계 정보를 반영하면서도, 밀집 표현(dense representation)을 통해 단어 간 유사도를 내적으로 쉽게 계산해보겠다는 것입니다. 이를 위해 Glove는 아래 목적함수 J를 최소화하는 임베딩 벡터를 찾아내는 것을 목표로 합니다.

GloVe의 목적함수 J위 목적함수의 복잡한 수식 도출 과정은 생략하고 직관만 전달한다면, GloVe의 핵심은 ‘임베딩된 두 단어 벡터의 내적’이 ‘전체 말뭉치의 동시등장확률’이 되도록 한다는 것으로 요약할 수 있습니다. 이는 목적함수에 최소제곱법(Least Square Estimation)을 취해줌과 동시에, 언어 데이터를 인풋으로 하는 모델 특성상 빈번하게 발생하는 과적합(overfitting)을 방지하기 위해 적절한 가중치 $f(X_{ij})$를 곱해줌으로써 표현됩니다.

한편 GlovE 모델에 다양한 텍스트를 대량으로 학습시켜 광범위한 언어 규칙과 패턴을 포착할 수 있도록 해야합니다. 이렇게 학습된 모델은 다양한 작업 및 도메인에 걸쳐 일반화 가능한 단어 표현을 이해하고 활용할 수 있게 됩니다.

이렇게 LDA부터 GloVe까지 토픽 모델링 기술의 변천사를 언급한 이유는, GloVe를 통해 ‘문서의 정보를 충분히 반영한’ 임베딩 벡터가 본 논문의 핵심 알고리즘인 GNTM(Graph Neural Topic Model)의 입력값으로 들어가게 되기 때문입니다.

단어간 ‘그래프 관계’를 살펴보는 방법, Word Graph

지금까지 살펴본 기술들(LDA,LSA,GloVe)은 곧 단어들의 독립성(independency) 가정에 대한 한계점을 보완하기 위해 설계된 모델들이었습니다. 다시 말해 각 단어 간의 ‘맥락’을 반영하기 위한 워드 임베딩 기법의 단계적 발전으로 볼 수 있습니다. 이번에는 Word Graph를 활용해 단어간 관계를 확인해보고자 합니다.

앞서 논의한 GloVe 와 후술될 Word Graph는 단어 간 관계를 이해해보겠다는 측면에서는 공통적입니다. 그러나 GloVe를 통해 계산된 임베딩 단어 벡터는 유클리드 공간에 매핑되는 한편, Word Graph를 통해 파악되는 문서 내 그래프 구조는 비유클리드 공간에서 정의됩니다. 이를 통해 Word Graph는 유클리드에서 정의되는 기존 수치형 데이터가 미처 발견하지 못하는 ‘숨겨진’ 관계를 찾아낼 수 있습니다(한성수 연구원님 글 참고).

단어간 관련성을 Word Graph를 통해 계산 및 시각화할 수 있다

그렇다면 ‘주변에 있는 단어와의 관계를 나타내는 구조’는 도대체 어떻게 계산할 수 있을까요? 우선 GRF(Global Random Field)는 단어 내 토픽의 가중치와, 그래프를 연결하는 엣지(edge) 내 토픽들의 정보를 바탕으로 문서 내 그래프 구조를 표현합니다. 이는 아래와 같습니다.

GRF. $p(G)$: 그래프 발생 확률, $w$: 단어, $w’, w”$: 주변 단어, $z_w’, z_w”$: 단어 w가 속하는 topic

여기서 중요한 부분은 엣지의 마지막 항 부분에서 이들의 합이 1이 아니라는 것입니다. w’가 topic 1에 해당할 경우 w’’가 해당하는 모든 경우의 수의 합은 1이 되겠지만 w’는 topic 1 말고도 다른 topic에 할당될 수 있기 때문이죠. 그래서 정규화(normalization) 역할을 하는 엣지의 총 개수 |E|가 분모로 곱해진 것입니다.

Li et al (2014)가 제시한 위 GTRF 또한 GRF와는 크게 다르지 않습니다. 이제 topic z의 분포(distribution)가 $\theta$에 따른 조건부 분포(conditional distribution)가 됐으며 이들을 학습 및 추론하는 과정 또한 EM 알고리즘이 똑같이 적용됩니다. 이를 통해 계산된 $p_{GTRF}(z|\theta)$는 두 토픽이 연관이 있을 확률을 의미합니다. 즉 주변 단어인 $w’$와 $w”$가 똑같은 토픽으로 배정받는지, 또는 다른 토픽으로 배정받는지를 모두 고려해 그래프 구조의 확률을 구하는 것으로 이해할 수 있습니다.

[논문이야기] Interpretable Topic Analysis ③로 이어집니다

Similar Posts