같은 텍스트로 만들었지만 서로 다른 결과를 내놓는 토픽 모델링. 권오성.
지난 한글 토픽 모델링 실험기 ②[링크]에서 29년 치 ‘동성애’ 관련 기사 1만2873개에 대한 토픽 모델링 분석과 그 결과 주요 토픽이 1990년 ‘에이즈’에서 2018년 ‘인권’으로 급격히 바뀌는 것을 보여 드렸다. 그러면서 끝에 “(이렇게 만들어지는 토픽 모델이) 분석 때마다 바뀔 수 있다”는 황당한 이야기를 남겼다. 할 때마다 결과가 달라진다면 그 결과를 어떻게 쓸 수 있는가? 그리고 그 이유는 무엇인가? 이번 글에선 이에 대해 다루고자 한다.
토픽 모델링에 대해 복습하면 이렇다. 토픽 모델링이란 방대한 문서를 ‘토픽’이라는 추상적인 무엇인가로 요약해 주는 인공지능(기계 학습 알고리즘)이다. 여기서 토픽이란 단어들의 묶음이다(기계는 사람처럼 “무슨 토픽입니다”하고 말하지 못한다. 그저 단어의 묶음을 제시할 뿐이다). 예를 들어 ‘김치’에 대한 글에는 ‘배추’나 ‘한국’, ‘맛’과 같은 단어가 자주 나올 가능성이 크다. 인공지능은 문서들을 학습해서 이렇게 ‘배추’, ‘한국’, ‘맛’과 같은 단어들을 하나의 묶음으로 제시하고, 우리는 이를 보고 ‘아~ 이 문서들은 김치에 대해 다루고 있구나’하고 유추할 수 있다.
그런데 특정 조건을 주지 않으면 이 결과가 매번 달라진다. 실제 사례로 어떻게 다른지 보자. 다음 10개의 링크는 예시로 쓴 똑같은 1만2873개 동성애 관련 기사로 만든 각각 다른 모델들의 시각화이다.
[링크1]
[링크2]
[링크3]
[링크4]
[링크5]
[링크6]
[링크7]
[링크8]
[링크9]
[링크10]
훑어보면 우선 눈에 띄는 왼쪽 방울들의 크기와 위치가 모두 다른 것을 알 수 있다.
[링크1]은 실험기①과 ②에서 예로 든 모델이다. ‘사랑’, ‘사람’, ‘자신’, ‘여성’ 등의 단어로 이루어진 19번 토픽이 가장 크고, 연도별로 쪼개서 살펴보면 에이즈 토픽(1990년)에서 인권 토픽(2018년)으로 주요 비중의 토픽이 변화한 그 모델이다. 그런데
[링크2]를 보면 모양과 구성이 좀 다르다. 가장 큰 토픽은 15번인데, 주요 단어는 ‘사랑’, ‘자신’, ‘작품’, ‘이야기’, ‘소설’… 등이다. ‘사랑’, ‘자신’ 등은 [링크1]의 가장 큰 19번 토픽과 같지만 ‘이야기’와 ‘소설’ 등의 단어는 새로 등장한 것이다. 이 때문에 15번 토픽은 ‘사랑에 대한 소설이나 이야기’에 대한 토픽으로 보인다.
[링크3]은 더 다르다. 가장 큰 토픽이 13번인데 위치도 정중앙일 뿐 아니라 단어도 ‘사회’, ‘인간’, ‘가족’, ‘여성’, ‘가정’ 등으로 판이하다. ‘사회나 가족 같은 인간 공동체’에 대한 토픽으로 보인다. 나머지 링크들도 찬찬히 살펴보면 토픽의 구성과 위치가 모두 제각각이다.
같은 텍스트를 같은 분석법(토픽 모델링)으로 돌렸는데 이렇게 결과가 다른 이유는 무엇인가? 쉬운 설명이 있다. 토픽 모델링 인공지능이 학습하는 방법에 ‘무작위’(랜덤) 요소가 들어있기 때문이다. 이를 좀 들여다보자면, 토픽 모델링의 학습 방법에 대해 보다 자세한 설명이 필요하다. 단순하게 설명하면 이렇다. 토픽 모델링 인공지능은 최초 학습을 시작할 때 모든 문서에 있는 모든 단어를 각각 무작위 토픽에 일단 배정한다. 그다음, 각 단어를 하나씩 짚어가면서 그게 잘 배정됐는지 가늠해 보는 것이다. 가늠하는 방식은 가늠하는 단어를 제외한 다른 모든 단어가 각각 맞는 토픽에 배정됐다 가정했을 때 해당 단어가 맞는 토픽에 배정됐는지 검증하는 방식이다. 이를 통해 잘못 배정되었으면 가장 적절한 토픽으로 소속을 바꾸어 준다. 이 작업을 반복해서 최종적으로 우리에게 모델을 내놓는다.
처음엔 모든 단어를 무작위 토픽에 배정하였으니 당연히 배정된 토픽은 이상할 것이다(예를 들면 ‘배추’ 같은 단어가 ‘개’나 ‘조국’ 같이 전혀 생뚱맞은 단어와 같이 들어가 있을 것이다). 더군다나 검증 역시 다른 단어들이 다 이상하게 배정되어 있으니 또 이상한 토픽에 배정하게 될 것이다. 하지만 토픽 모델링 알고리즘은 이를 계속해서 반복하다 보면 통계적으로 점차 자주 같이 등장하는 단어는 같은 토픽으로 배정되도록 짜여 있다. 그래서 최종 결과는 우리가 보기에 그럴듯하게(‘배추’, ‘한국’, ‘맛’과 같은 단어가 한 토픽에 들어가게) 나오는 것이다.
하지만 아무리 반복을 한다 해도 초기에 배정한 무작위 토픽이 다르면 그 최종 결과도 다르게 되어 있다. 또한 토픽 모델링은 확률 이론에 기반을 두고 있다. 이 모델에서 단어별로 제시하는 수치는 같이 등장할 ‘확률’이지 어떤 고정된 숫자가 아니다. 이것이 매번 결과가 다른 이유이다.
그렇다고 이것이 조절 불가능한 것은 아니다. 무작위 요소를 분석자가 지정할 수 있는데(즉 매번 단어의 초기 배정 토픽이 같게 할 수 있는데) 이를 지정해 두면 다음에 다른 사람이 같은 토픽 모델링을 돌려도 똑같은 결과가 나온다.
코드[링크]를 보는 경우 LdaModel이라는 부분에서 ‘random state’라는 항목이 이를 결정하는 부분이다. 여기에 특정 숫자를 배정하면 인공지능이 매번 무작위한 결과를 내는 게 아니라 같은 모델을 생산한다.
하지만 비록 재현이 가능하다 해도 매번 결과가 달라지는데 대체 무엇을 결과로 보아야 한단 말인가? 링크1에서 링크10 사이에 무엇이 동성애 기사에 대한 정확한 토픽 모델링인가? 사실 답은 ‘정답이 없다’라는 데에 있다. 각 모델은 모두 최초 주어진 무작위 토픽에서 텍스트(기사 1만2873개)를 통해 무언가를 학습한 결과이다. 즉 각각 텍스트에 대한 어떤 ‘진실’을 담고 있는 것이다. 우리는 이 가운데 필요한 부분을 취하는 것이다.
또 우리가 말을 쓰는 방식을 생각해 보면 이는 현실과 통하는 측면이 있다. 예를 들어 각각 한 문장으로 쓰인 아주 짧은 3개의 문서를 가정해 보자. ‘1. 강아지는 자기 집에 산다.’ ‘2. 개와 강아지의 관계는 고양이와 고양이 새끼와 같다.’ ‘3. 고양이는 집을 사랑하는 동물이다.’ 여기서 2개의 토픽을 뽑는다면 어떻게 뽑아야 할까? 첫째, ‘강아지’와 ‘고양이’라는 동물별 토픽을 뽑을 수도 있을 것이다. 다른 하나는 ‘강아지와 고양이’, 그리고 ‘집’이라는 대상별 토픽을 뽑을 수도 있을 것이다. 인간의 문자(자연어)란 이렇게 중의적이다. 3개 문서만 해도 그런데 수십, 수만 개의 문서를 토픽으로 분류한 결과가 다양한 것은 그럴 법하지 않은가.
또 각 토픽 모델이 모두 완전히 제각각인 것은 아니다. 위 링크 10개를 비교해 보아도 공통되는 지점이 나타난다. 차이는 있지만 같은 텍스트를 바탕으로 했기 때문에 일종의 패턴이 나타나는 것이다. 우선 찾아낸 것은 이렇다. 크고 작은 차이는 있지만 각 모델에서 ‘사랑’이나 ‘자신’과 관련되는 토픽은 그 주변에 ‘이야기’, ‘소설’, ‘영화’와 같은 예술과 관련된 토픽이 같이 나타난다. 즉 사랑과 상상력이 중요한 무리를 이루는 것이다. 그 대척점에는 ‘차별’, ‘인권’과 같은 토픽이 나타나며 그 주변에 ‘교회’, ‘동성’, ‘군대’와 같은 토픽이 자리 잡고 있다. 즉 현실적 갈등이 첨예한 부분들이 있는 것이다. 그 사이에 ‘클린턴’, ‘부시’와 같은 미국 정치와 관련된 토픽, ‘결혼’이나 ‘사회’ 등과 같은 이슈의 토픽들이 자리하고 있는 양상을 보인다.
이런 여러 토픽 모델을 비교함으로써 분석자는 대상 텍스트에 대해 보다 깊은 이해를 할 수 있다. 그리고 하나나 둘의 토픽만 봤을 때 저지를 수 있는 잘못된 일반화의 오류를 최소화할 수 있는 것이다. 그리고 이런 전체적인 그림을 바탕으로 해서 보다 자신이 관심 있는 부분에 대해(어떤 분석자는 동성애 가운데 ‘결혼’이라는 토픽의 위치에 관심이 있을 수 있고 어떤 이는 ‘동성애 축제’에 관심이 있을 수 있다) 어떤 형태로 토픽이 다루어지고 위치하는지 알아낼 수 있다. 즉 토픽 모델링은 하나뿐인 답을 주진 못하지만, 알고자 하는 바에 대한 그림을 줄 수는 있다.
사실 이렇게 명확한 답이 없는 특징이 토픽 모델링만의 이례적인 것은 아니다. 아예 이런 알고리즘들을 두고
‘비결정적 알고리즘’(non-deterministic algorithm)이라는 분류까지 있을 정도다. 우리는 컴퓨터란 ‘일관된다’고 생각한다. 시간에 의한 마모 없이 늘 같은 조건에는 같은 결과를 내놓을 것이란 기대다. 그것이 알고리즘 가운데 다수를 차지하는 ‘결정적 알고리즘’의 특징이다. 하지만 매번 결과가 바뀌는 알고리즘도 있다. 토픽 모델링과 같이 알고리즘에 포함된 무작위 요소나 확률적 요소 등 때문에 그럴 수 있다. 이런 비결정적 알고리즘의 대표적인 것이 인공지능 알고리즘 가운데 비지도 학습의 대명사인 ‘k-평균 알고리즘’이다. 더블린 대학교의 존 켈러허(John Kelleher)와 브렌던 티어니(Brendan Tierney)는 저서 <데이터 과학>에서 “이 때문에 일반적으로 k-평균 알고리즘은 여러 번 돌린 뒤, 어떤 군집이 데이터 과학자가 지닌 도메인 지식과 이해에서 가장 합리적인지 다른 결과들을 비교해 (결론을) 결정하게 된다”고 설명한 바 있다.
권오성 기자 sage5th@hani.co.kr
본 보도는 한국언론진흥재단 빅카인즈의 지원을 받았습니다.