빅데이터 혁신융합대학

Bigdata University

Bigdata University

Contents Module

토픽 모델링이란?

등록일 2022-06-27

[빅데이터 연재/기고 1]

사람들의 관심사를 알고 싶다! 빅데이터를 이용한 토픽 분석


토픽 모델링이란?

 

야마다 아키히코

언어학 박사 / 자연어처리전공

 

 



 저 멀리 학생들이 삼삼오오 모여 즐거운 듯 이야기하고 있는 것이 보인다그 때 나는 어떤 생각이 스칠까? ‘저들은 무슨 이야기를 하고 있을까?’ 이다.

 우리에게는 대중들이 관심을 갖고 있는 화제를 알고 싶은 욕구가 있다몇몇 친구들의 모임에서는 기본적으로 한 개 이상의 화제가 존재한다그런데 사람들의 모임이 커지면 어떨까? 강의실 안에서는 몇 가지 화제가 있는가회사 전체에는 어떠한가? 부서마다 관심사가 다르고 화제도 그만큼 다양할 것이다그렇게 모임의 규모가 커질수록 화제도 다양해진다. 그렇다면 이 세계 전체에서는 어떨까? 상상을 초월하는 화제가 존재하고 있을 것이다.

 세상 사람들이 어떤 주제에 관심을 갖고 있는지를 아는 것은 마케팅 전략을 세울 때에나, 미디어가 어떤 콘텐츠를 방송해야 할지 계획을 세울 때어떤 연구를 해서 논문을 쓸 지를 결정할 때, 어떤 블로그 게시물을 작성할 지를 결정할 때 등 다양한 장면에서 매우 중요하다세상 사람들이 관심 있는 내용에 집중해서 일을 진행할 때 큰 성과를 얻을 가능성이 높기 때문이다.

 그렇다면 우리는 셀 수 없이 많은 세상의 화제를 어떻게 파악할 것인가여기서 필요한 것이 바로 빅데이터 분석이며, 특히 이번에 소개하고자 하는 토픽 모델링이다.

 

 

[토픽 모델링이란?]

 

 토픽 모델링은 문서 속에 숨겨져 있는 주제(토픽)를 자동적으로 결정하는 모델이다. 작동원리는 우리가 신문 기사를 보면서 그 기사의 토픽이 무엇인지를 결정하는 과정과 비슷하다. 우리는 어떻게 기사의 주제를 파악할까? 어떤 기사에서 '손흥민', '득점왕', ‘프리미어 리그라는 단어들이 많이 발견됐다면 그 기사의 주제는 축구에 관한 것으로 판단할 수 있다. 또 다른 기사에 '딥러닝', '파이썬', '자바', '인공지능'이라는 단어가 많이 발견됐다면 주제는 컴퓨터 또는 데이터 사이언스에 관한 것이라고 판단할 수 있을 것이다.

 이렇게 단어 중심의 빈도 기반 정보를 바탕으로 문서 속에 숨겨져 있는 토픽의 확률을 도출하는 것이 토픽 모델링의 간단한 원리다.

 토픽 모델을 설명하기 위해서는 빠질 수 없는 것이 Latenet Dirichlet Allocation(LDA)이라는 모델이다. LDA2003Blei들에 의해 발표된 토픽 모델로, 많은 연구에서 사용되고 있다. LDA는 다항 분포와 딜리클리 분포에 의해 문서 데이터가 형성되어 있다는 가정 하에 각 단어에 대한 확률 분포와 각 문서에 대한 확률 분포를 구하는 모델이다.

 토픽 모델은 아무리 많은 데이터(주로 문서 데이터)가 있어도 토픽별로 분류해준다. 그래서 세상의 이슈에 대해 알고 싶다면 SNS 등의 데이터를 대량으로 모아 토픽 모델로 분석하면 되는 것이다(물론 실제적으로는 세상 모든 데이터를 모으는 것은 불가능하기 때문에 자신이 알기 원하는 특정한 분야에 대해서 데이터를 모아 토픽 모델링으로 분석해야 한다).

 

[사용 방법]

 LDA의 원리를 완전히 이해하려면 수학과 통계적인 지식을 요구하기 때문에 쉽지 않지만 LDA를 사용하는 것은 용이하다. 파이썬에서는 scikit-learn이나 gensim이라고 하는 라이브러리를 사용하면 몇 줄의 코드로 끝난다. 아래 <그림 1>gensim 라이브러리를 이용해 LDA를 실행할 때의 핵심적인 코드이다(물론 실행코드 전까지 데이터를 전처리하는 과정이 필요하다). 몇 개의 파라미터를 확인할 수 있다.

 

 

<그림 1>


자세한 설명은 gensim 공식 사이트(https://radimrehurek.com/gensim/)를 참고하기 바란다.

 

 



[결과 도출]

 

<1> LDA 결과

Topic

각 분류를 대표하는 단어 (상위 5)

1

, 확진자, 신규, 기준, 접종, , 확진, 검사, 오늘, 마스크

2

정부, 변경, 시작, 건강, 뮤지컬, 영화, 공연장, 캐스팅, 그램, 조심

3

문자, 재난, 시청, 발생, 백신, 방역, 군청, , 확진자, 예방

4

사람, , 진짜, , 이후, 지금, 생각, 공연, 아직,

 

 



<그림 2> pyLDAvis

 

 


 <1>LDA에 의해 얻어진 출력 결과이다. 이번에 사용한 데이터는 코로나를 포함한 2022612일부터 618일까지의 트위터이다. 1>을 보면, 토픽 1은 확진자의 수에 관한 것이고, 토픽 2는 정부의 방역 정책, 토픽 3은 문자에 관한 것, 그리고 토픽 4는 재난지원금을 받은 사람에 대한 부러움을 나타낸 것임을 알 수 있다. 이번에는 데이터 수가 많지 않았지만 비교적 의미 있는 분류를 할 수 있었다. 토픽 그룹 간의 위치적 관계에 대해서도 pyLDAvis라는 라이브러리를 사용하면 <그림 2>와 같은 시각화된 결과도 얻을 수 있다.

 

 

[한계점]

 실제로 이 모델을 이용하여 연구한 입장으로서 솔직한 이야기를 하자면LDA 모델은 완전히 기계가 자력으로 분류하는 모델(비지도 학습이라는 모델)이기 때문에 인간이 이해하기 어려운 분류 결과가 나올 경우가 많다. 그리고 파라미터나 전처리 방법의 차이가 출력 결과에 미치는 영향이 매우 큰 모델이기도 하다.


 토픽의 수를 몇 개로 설정할 것인지는 연구자가 설정한다. 물론 최적의 토픽 수를 결정하는 데 참고할 수 있는 지표(Perplexity, Coherence scores(CV, UMASS, UCI, word 2vec)는 있지만 결국은 연구자의 통찰력에 달려있다고 생각한다. 유명하고 신뢰성 높은 모델이긴 하지만 안정적인 결과를 얻고, 의미 있는 내용을 도출하기 위해서는 연구자의 많은 경험과 훈련, 깊은 사고가 필요하다. 머신러닝이라고 하는 기술의 발전은 훌륭하지만 역시 연구자라는 인간의 중요성을 재차 느끼게 한다.


 사람들의 관심사를 찾아낸다는 것은 거의 모든 영역에서 중요하다. 여러분이 관심 있는 데이터를 모아 토픽 분석을 통해 세상의 관심사를 파악하고 필요를 충족시키는 데에 이 글이 작은 도움이 되기를 바란다. 데이터를 모으는 구체적인 방법에 대해서는 앞으로 하나씩 소개하도록 하겠다.