상세 컨텐츠

본문 제목

[토픽 모델링] Dynamic Topic Model

그냥 공부

by ∫2tdt=t²+c 2020. 5. 10. 00:37

본문

LDA 토픽 모델링이 개발된 뒤 처음 적용된 분야는 학술 문헌 분석과 관련된 곳이었습니다. 수없이 쏟아지는 논문들에서 중요한 주제들을 찾아내서 분류하는 작업에 LDA가 널리 쓰였지요. LDA가 학술 문헌 분석에 성공적으로 쓰이자, 트렌드 분석에도 토픽모델링을 사용하려는 시도가 등장하기 시작했습니다. 대표적인 것이 Topic over Time과 Dynamic Topic Model인데, 본 포스팅에서는 Dynamic Topic Model에 대해서 살펴보도록 하겠습니다.

Blei, D. M., & Lafferty, J. D. (2006, June). Dynamic topic models. In Proceedings of the 23rd international conference on Machine learning (pp. 113-120).

기본 아이디어

Dynamic Topic Model(DTM)의 아이디어는 사실 매우 간단합니다. 예를 들어 2000년부터 2009년까지, 즉 10년 사이에 작성된 문헌 집합이 있다고 합시다. 10년 간의 주제 변화를 분석하기 위해 먼저 연도별로 문헌 집합을 나눕니다. 그러면 2000년에 작성된 문헌 집합부터 2009년에 작성된 문헌 집합까지 총 10개의 집합이 나오겠지요? 이제 각 집합별로 LDA 토픽 모델링을 실시하는 것이죠. 주제 개수를 20개로 정했다고 칩시다. 그러면 각 연도별로 주제가 20개씩 뽑혀서 총 20개 x 10년 = 200개의 주제가 나오게 되겠죠? 

그런데 200개의 주제가 서로 제각각일테니, 이러면 트렌드 분석을 할 수가 없습니다. 적어도 연도별로 주제가 연결되면서 변하는게 보여야 트렌드를 분석할 수 있으니깐요. 그래서 한 가지 제약 조건을 추가합니다. 2001년도의 n번째 주제는 2000년도의 n번째 주제와 비슷해야 합니다.(n은 1~20 사이의 숫자) 마찬가지로 2002년도의 n번째 주제는 2001년도의 n번째 주제와 비슷해야하구요. 이런 식으로 현재 연도의 주제들이 전년도의 주제들과 크게 다르지 않아야 한다는 조건을 추가하면, 시기별로 주제가 어떻게 변화하는지, 그 주제에 속하는 문헌의 비율이 어떻게 변화하는지 알아낼 수 있겠죠?

이것이 Dynamic Topic Model의 기본 아이디어입니다. 사실 저자인 David Blei는 처음 이 모델을 개발할때 LDA Sequential Model이라는 이름을 사용했습니다. 순차적인 문헌 데이터를 위한 LDA라는 거죠. 어찌보면 이 이름이 모형의 본질을 더 잘 드러내는것 같기도 합니다.

수식으로 다시 쓰기

기본 아이디어는 위에서 설명했으니, 이를 수식으로 다시 써보겠습니다.

$ \alpha_t ~\sim~ \textbf N\left( \alpha_t | \alpha_{t-1}, \sigma^2 I \right) $

$ \Phi_{k,t} ~\sim~ \textbf N\left( \Phi_{k,t} | \Phi_{k,t-1}, \beta^2 I \right) $

$ \eta_{d,t} ~\sim~ \textbf N\left(\eta_{d,t} | \alpha_t, \psi^2 I \right)  $

$ Z_{d,n,t} ~\sim~ \textrm{Mult}\left(Z_{d,n,t} | \textrm{softmax}(\eta_{d,t}) \right) $

$ W_{d,n,t} ~\sim~ \textrm{Mult}\left(W_{d,n,t} | \textrm{softmax}(\Phi_{Z_{d,n,t},t}) \right) $

여기서 t는 연도를 나타내는 1~T사이의 정수, k는 주제를 나타내는 1~K사이의 정수입니다. $\alpha_t$ 는 t연도 문헌들의 주제별 편향도를 결정하는 벡터, $\Phi_{k,t}$는 t연도의 k번째의 주제의 단어 분포를 결정하는 벡터입니다. $\eta_{d,t}$는 t연도의 d번째 문헌의 주제 분포를 결정하는 벡터입니다. 그리고 $Z_{d,n,t}$는 t연도의 d번째 문헌의 n번째 단어가 속한 주제(1~k사이의 값이겠죠.), $W_{d,n,t}$는 t연도의 d번째 문헌의 n번째 단어의 실제 단어가 되겠습니다.

DTM으로부터 문헌이 생성되는 과정을 정리하면 다음과 같습니다:

  1. T개의 연도에 대해서 $\alpha_t$를 뽑는다.
    T개의 연도 내 K개의 주제에 대해서 $\Phi_{k,t}$를 뽑는다.
    그리고 T개의 연도 내의 모든 문헌 d에 대해서 $\eta_{d,t}$를 뽑는다.

  2. t 연도의 문헌 d에 대해서 다음과 같이 단어를 생성한다.
    a.먼저 주제 k를 뽑는다. 주제는 다항 분포 $\textrm{softmax}(\eta_{d,t})$에서 뽑는다.
    b. 그리고 뽑힌 주제 k를 이용해 단어 w를 뽑는다. 단어 w는 다항분포 $\textrm{softmax}(\Phi_{k,t})$에서 뽑는다.
    c. 뽑은 w를 쓴다. a로 돌아가 계속 반복

LDA의 생성과정과 거의 유사합니다. (까먹으신 분들은 LDA관련 포스팅을 복습하시는걸 추천합니다.) 달라진 점은 연도에 따라 주제 k를 뽑는 분포, 단어 w를 뽑는 분포가 달라진 다는 것이지요. 자, 이제 수식을 하나하나 뜯어보면서 그 의미를 명확하게 분석해봅시다.

$ \alpha_t ~\sim~ \textbf N\left( \alpha_t | \alpha_{t-1}, \sigma^2 I \right) $

위 식은 $\alpha_t$가 어떻게 결정되는지를 설명합니다. $\textbf N\left( \alpha_t | \alpha_{t-1}, \sigma^2 I \right)$은 $\alpha_t$가 평균은 $\alpha_{t-1}$이고 분산은 $\sigma^2$인 정규분포에서 뽑힌다는 뜻입니다. 우리는 $\alpha_t$가 정확하게 무슨 값이 될지는 모르지만, 그 값이 될 수 있는 후보들의 잠재적인 평균이 $\alpha_{t-1}$라는 걸 알 수 있습니다. 즉, 이전 시점의 $\alpha$와 다음 시점의 $\alpha$가 유사하게 될 거라고 알 수 있습니다. 단 완전 똑같지는 않을텐데, 그것은 이 분포의 분산인 $\sigma^2$ 때문입니다. 이 분산이 클수록 분포는 옆으로 넓게 퍼질것이고, 분산이 작을수록 분포는 평균점에 몰릴 것입니다. 따라서 이 값에 따라 현재 시점의 $\alpha$가 이전 시점과 얼마나 차이가 날지가 결정됩니다.

$ \Phi_{k,t} ~\sim~ \textbf N\left( \Phi_{k,t} | \Phi_{k,t-1}, \beta^2 I \right) $

다음 식은 $ \Phi_{k,t}$가 어떻게 결정되는지를 설명합니다. 사실 위 식과 쌍둥이입니다. 아예 동일한 구조지요. 마찬가지로 분산인 $\beta^2$ 값에 따라 현재 시점의 $\Phi$가 이전 시점과 얼마나 차이가 날지가 결정됩니다. 

$ \eta_{d,t} ~\sim~ \textbf N\left(\eta_{d,t} | \alpha_t, \psi^2 I \right)  $

이 식은 문헌별로 실제 주제 분포를 결정하는 $\eta$가 어떻게 뽑히는지를 보여줍니다. t연도의 문헌 d의 주제 분포 $\eta_{d,t}$는 전적으로 그 시점의 $\alpha_t$에 의해서 결정됩니다. 그러나 역시 약간 차이가 있을수 있는데 이는 분산인 $\psi^2$에 의해서 결정되지요. 어쨌든 t연도에 작성된 문헌들은 그 연도의 주제 경향성인 $\alpha_t$를 따라간다는 것이 중요합니다.

$ Z_{d,n,t} ~\sim~ \textrm{Mult}\left(Z_{d,n,t} | \textrm{softmax}(\eta_{d,t}) \right) $

이제 실제로 문헌 내의 단어를 생성하기 위해 주제를 뽑는 부분입니다. 여기서 softmax는 다음과 같이 임의의 실수 벡터를 확률로 바꾸어주는 함수라고 생각하시면 됩니다.

$ \textrm{softmax}(x) = y, ~~\textrm{where}~ y_k = \frac{\exp(x_k)}{\sum_{k'} \exp(x_{k'})} $

즉, softmax는 [0, 1, 2]라는 벡터가 입력되면, 각 벡터에 exp를 취해 [1, 2.72, 7.39]를 만들어주고, 전체 합이 1이 되도록 정규화하여 [0.09, 0.24, 0.67]로 만들어주는 일을 합니다. 이를 통해 실수 범위였던 입력값이 0~1 사이로 한정되고, 또 전체 합이 1이 되어 확률분포로 사용할 수 있게 됩니다. 굳이 복잡하게 softmax를 사용하는 이유는, 이를 사용하지 않으려면 애초에 $\eta$를 뽑을때 그 벡터 값이 0~1사이가 되고, 합이 1이 되도록 설정해야하는데, 이를 만족하는 분포를 찾기가 어렵기 때문입니다. (-∞에서 ∞까지 모든 값이 나올 수 있는 정규분포 같은 건 꿈도 꿀 수 없죠).

다시 Z를 뽑는 것으로 돌아가서, t연도의 문헌 d에서 주제 k가 뽑힐 확률은 전적으로 $\eta_{d,t}$에 의존합니다. $\eta_{d,t}$의 softmax에 의해 결정이 되므로, $\eta_{d,t}$에서 큰 값을 가지는 쪽이 뽑힐 확률이 큽니다. 즉, K=5라 가정하고, $\eta_{d,t}$가 [0.1, 0.4, 0.7, -0.5, 1.1]라 하면 이 문헌에서는 1.1로 가장 큰 값을 가지는 다섯번째 주제가 뽑힐 가능성이 큽니다. -0.5로 가장 작은 값을 가지는 네번째 주제가 뽑힐 가능성은 낮은거구요. 특정 주제 k가 뽑혔다고 치면 이제 여기서 단어를 생성할 수 있습니다.

$ W_{d,n,t} ~\sim~ \textrm{Mult}\left(W_{d,n,t} | \textrm{softmax}(\Phi_{Z_{d,n,t},t}) \right) $

이 식은 단어 w가 어떻게 생성되는지를 설명합니다. 바로 위 식과 거의 똑같은데요, 이번에는 $\textrm{softmax}(\Phi_{Z_{d,n,t},t})$가 핵심입니다. t시점의 문헌 d에서 쓰이는 어떤 단어 w는 전적으로 $\Phi_{Z_{d,n,t},t}$에 의존합니다. 즉 그 단어가 뽑힐 주제 $Z_{d,n,t}$와 단어가 뽑히는 연도 t에 대응하는 주제별 단어 분포인 $\Phi$에서 단어가 뽑히는 것이지요.

여기까지 DTM 모형의 식을 파헤쳐보았습니다. 그럼 실제 모형을 따라서 샘플링을 진행하여 핵심 파라미터인 $\alpha$, $\Phi$, $\eta$, Z, W를 구하는게 이제 관건이 될텐데요, 아쉽게도 LDA와는 다르게 굉장히 복잡합니다. 이는 Z와 W를 뽑을때 의존하는 softmax 때문입니다. softmax 때문에 exp함수가 끼어들면서 위 식을 깔끔하게 풀어서 소거시키는게 불가능하기 때문에 위 식들을 만족하는 파라미터를 뽑는게 어렵습니다. 그래서 저자는 변분추론(Variational Inference)이라는 우회법을 사용하였습니다.

우회법을 우회하기

변분추론으로 DTM을 샘플링하는 것은 연산량이 많아 병렬화되기 어려운 부분이 있어 그 규모를 키우는데 한계가 있었습니다. 그래서 DTM 논문이 나온지 10년째 되는해에 Stochastic Gradient Langevin Dynamics(SGLD)를 통해 연산량을 줄이고 병렬화를 가능하게 한 기법이 소개되었습니다.

사실 SGLD가 정확하게 뭘 하는 것이고, 어떻게 문제를 해결했는지는 잘 모르겠습니다만, 다음 논문에 따라 코드를 구현하니 실제로 작동이 되더라구요. 따라서 이 포스팅에서도 SGLD에 대한 정확한 설명은 생략합니다.

Bhadury, A., Chen, J., Zhu, J., & Liu, S. (2016, April). Scaling up dynamic topic models. In Proceedings of the 25th International Conference on World Wide Web (pp. 381-390).

SGLD에서는 요즘 딥러닝에서 널리 쓰이는 Stochastic Gradient Descent를 사용해 특정 조건을 만족하는 분포를 최적화합니다. 이를 위해서 step size(=learning rate)를 잘 잡을 필요가 있습니다. 일반적으로 $\epsilon_i ~= ~a(b+i)^{-c}$꼴로 step size를 잡는다고 합니다. 여기서 i는 iteration의 횟수이고, a, b, c는 사전에 설정하는 하이퍼 파라미터입니다. 이 때 a, b, c는 $a > 0$,    $b \ge 0$,    $0.5 < c \le 1$라는 조건을 만족해야 합니다. 그러면 학습이 진행되며 iteration 횟수가 증가함에 따라 $\epsilon_i$는 점차 감소하게 되고, 다소 무작위하게 흔들리던 파라미터 값들도 안정되어 수렴하게 된다고 합니다.

실험을 해봅시다

먼저 위 논문에서 사용했던것처럼 NIPS 데이터를 가지고 실험을 진행해보았습니다. 데이터는 1990년부터 2002년까지 총 13개의 연도로 구성되어 있구요, 원 데이터는 https://github.com/Arnie0426/FastDTM/tree/master/NIPS_data 에서 확인하실 수 있습니다. 토픽 개수 K = 10으로 설정했습니다. 다음은 결과 중 아무 주제 4개나 뽑아서 연도별로 어떻게 변화하는지를 정리해본것 입니다.

#0 #1 #2 #3
1990 learning, figure, image, control, motion neural, cells, cell, firing, networks region, human, chain, input, class model, function, algorithm, learning, state
1991 learning, figure, image, control, motion neural, networks, cell, cells, firing human, region, chain, domains, input model, function, algorithm, state, learning
1992 learning, figure, image, control, motion neural, networks, cells, cell, firing chain, region, human, mouse, precursor model, function, algorithm, learning, time
1993 figure, control, image, motion, model neural, networks, data, cell, cells input, human, region, chain, data learning, model, function, time, algorithm
1994 model, figure, control, image, motion neural, data, networks, training, models input, human, region, data, class learning, function, time, state, algorithm
1995 learning, model, figure, control, image neural, networks, function, data, training input, data, human, region, neural state, algorithm, learning, function, time
1996 model, figure, learning, control, image neural, function, algorithm, networks, space data, input, density, mixture, class state, algorithm, learning, function, time
1997 model, figure, control, learning, network function, algorithm, space, models, figure data, density, input, variables, mixture state, current, direction, figure, test
1998 model, figure, control, learning, network function, algorithm, input, figure, models data, variables, gaussian, density, bayesian direction, head, cells, velocity, current
1999 model, figure, control, network, learning function, algorithm, input, figure, space data, training, error, number, problem gaussian, direction, parameters, moving, position
2000 model, network, figure, control, models figure, function, input, models, algorithm data, function, algorithm, error, training gaussian, data, variables, models, sequence
2001 model, network, figure, control, models synaptic, firing, neurons, input, neuron data, algorithm, function, figure, training gaussian, data, variables, parameters, models
2002 model, network, figure, output, networks neurons, synaptic, neuron, spike, sound training, number, error, results, case data, gaussian, parameters, kernel, models

데이터가 NIPS 논문들이다보니 대부분 다 인공신경망에 관한 내용들이 나와서 비전공자로써는 주제를 알아보기가 쉽지 않습니다만, 연도에 따라 각 주제가 조금씩 변화하고 있다는 것은 확인할 수 있습니다.

SGLD에서 사용하는 step size에 따른 학습 경과 차이도 비교해보았습니다. $b = 0.1, c = 0.55$로 고정해둔 상태에서 $a$값을 변화시켜가면서 Log-Likelihood가 어떻게 변화하는지 살펴보았습니다.

$a=0.015$인 경우 빠르게 학습이 완료되어 LL=-8 즈음에서 수렴하는걸 확인할 수 있었습니다. 반면 $a < 0.015$인 경우 조금 느리게 학습이 진행되지만 결국에는 비슷한 값으로 수렴한다는 걸 확인할 수 있구요. 위 차트에서는 표기하지 못했지만 $a > 0.05$ 인 경우에는 step size가 너무 커져서 오히려 모델이 수렴하지 못하고 발산하는 현상이 나타났습니다. DTM을 SGLD로 학습하려면 (특히 잘 수렴하면서도 빠르게 학습하려면) 적당한 크기의 $a$값을 찾는게 중요하겠습니다.


호기심이 생겨서 한국어 뉴스데이터(2016년3월~2017년3월)로도 같은 실험을 진행해보았습니다. 이번에는 월별로 데이터를 나눠 총 13개 구간을 만들었고, 토픽 개수는 16으로 늘려보았습니다.

#0 #1 #2 #3 #4
2016-03 단일화, 대표, 유세, 지지, 위원장 북한, 미국, 중국, 분석, 방문 투표, 서울, 지원, 한국, 정부 무소속, 곳, 핵실험, 핵무장, 4차핵실험 유권자, 운동, 최영일, 분열, 이슈
2016-04 대표, 지지, 유세, 단일화, 조사 북한, 중국, 미국, 발사, 방문 투표, 정부, 경선, 한국, 일본 무소속, 곳, 핵실험, 안보리, 추가도발 유권자, 최영일, 김대중, 이슈, 분열
2016-05 위원장, 대표, 임을위한행진곡, 참석, 청와대 북한, 김정은, 당대회, 방문, 미국 정부, 일본, 한국, 행사, 여야 핵실험, 곳, 무소속, 4차핵실험, 안보리 최영일, 국회의장, 유권자, 김대중, 소통
2016-06 위원장, 대표, 조사, 청와대, 지지 북한, 중국, 미국, 발사, 미사일 정부, 회의, 논의, 한국, 미 무소속, 안보리, 곳, 핵실험, 4차핵실험 국회의장, 개헌, 최영일, 유권자, 최고위원
2016-07 대표, 위원장, 청와대, 조사, 이정현 북한, 중국, 미국, 우수석, 미사일 배치, 정부, 한국, 미, 발표 터키, 에르도안, 라오스, 러, 핵실험 최영일, 개헌, 최고위원, 개입, 정병국
2016-08 대표, 청와대, 위원장, 이정현, 조사 북한, 중국, 우수석, 미국, 발사 정부, 일본, 한국, 배치, 고말 안보리, 핵실험, G20정상회의, 비준, 라오스 최고위원, 호남, 지도부, 신임, 여야
2016-09 대표, 청와대, 위원장, 참석, 조사 북한, 중국, 미국, 핵, 국제사회 제재, 정부, 지진, 미, 한국 핵실험, 라오스, 핵무장, 안보리, 한진해운 국정감사, 여당, 최영일, 이정현대표, 호남
2016-10 청와대, 수사, 조사, 대표, 위원장 북한, 미국, 중국, 사건, 인권 정부, 요구, 한국, 고말, 추진 송전장관, 필리핀, 억원, 힐러리, 훈련 개헌, 국정감사, 국정, 미르, K스포츠재단
2016-11 청와대, 수사, 조사, 대표, 참석 사건, 절차, 변호사, 북한, 결정 요구, 행진, 추진, 고말, 이날 트럼프당선자, 협정, 도널드트럼프, 미국대선, 군사정보보호협정 퇴진, 국정, 집회, 박근혜, 추천
2016-12 청와대, 수사, 조사, 황권한대행, 대표 헌재, 헌법재판소, 절차, 열리다, 사건 요구, 행진, 고말, 9일, 이날 탄핵안가결, 탄핵안표결, 답변서, 대위, 위증 퇴진, 가결, 탄핵안, 박근혜, 개헌
2017-01 수사, 조사, 청와대, 대표, 전대표 헌재, 인위원장, 헌법재판소, 결정, 변호사 정부, 개혁, 한국, 일본, 고말 위증, 정씨, 트럼프당선자, 국정원, 국조특위 블랙리스트, 개헌, 귀국, 소환, 구속
2017-02 수사, 탄핵, 청와대, 조사, 황권한대행 헌재, 재판관, 사건, 결정, 헌법재판소 정부, 일본, 미, 고말, 요청 사장, 국정원, 정씨, 위증, 사찰 자유한국당, 문전대표, 대면조사, 지지율, 안희정지사
2017-03 탄핵, 수사, 슬다, 조사, 청와대 헌재, 선고, 결정, 재판관, 인용 경선, 미사일, 한국, 미, 정부 국정원, 사찰, 사장, 위증, 진료 박근혜, 자유한국당, 개헌, 문전대표, 헌법

한국어 데이터이다보니 훨씬 결과를 알아보기가 쉽긴 합니다. 그런데 이상한 점들이 보이네요. #1 주제의 경우 2016년 3월에는 북한과 관련된 주제였습니다. 그런데 2016년 12월이 되니 갑자기 헌법재판소 & 탄핵과 관련된 주제로 바뀌어 버렸습니다. #2는 분명 투표와 관련된 주제로 시작했는데, 중간에 주제가 바뀌기 시작합니다. #3도 핵실험과 관련된 주제에서 국정원 관련 주제로 바뀌게 되구요. 

이런 현상들은 뉴스라는 데이터의 특수성에서 기인하는 것으로 예상됩니다. 학술논문 데이터와는 달리 뉴스 데이터는 특정 시기에 특정 주제가 몰리는 경향이 강합니다. 16년 전반기에는 북한 관련 뉴스들이 많이 등장했지만, 후반기에는 언론의 관심사가 탄핵으로 넘어가면서 북한 관련 주제들은 데이터 내에서 전혀 찾아볼 수 없게 되어버립니다. 따라서 DTM은 2016년 후반기에서도 북한 관련 주제들을 찾아서 연결해주고 싶지만 그럴 수가 없는 것이죠. 그래서 엉뚱한 주제가 연결되는 거죠. 이번 경우에서는 각 주제의 시기별 변화추이를 분석한다는 DTM의 원대한 목적은 실패하고 말았군요.

따라서 뉴스 데이터처럼 주제가 계속 유지되는게 아니라 시기에 따라 아예 사라져버리는 경우라면 DTM보다는 Topic Over Time 등의 토픽 모델을 쓰는게 나아보입니다. Topic Over Time에서는 주제의 내용 자체는 고정시키는 대신, 주제가 특정 시기에 몰려서 등장할 것이라고 가정을 하기 때문에 시계열에 따라 변동성이 큰 데이터에 적합합니다. DTM은 시간에 따라 주제의 내용이 미묘하게 변하긴 하지만, 그 주제가 어느 정도 계속 유지되는 데이터에서만 적합하구요.

결론

본 포스팅에서는 시계열에 따른 주제의 변화를 분석할 수 있는 Dynamic Topic Model에 대해 살펴보았습니다. DTM은 주제의 추이를 분석할 수 있는 방법을 제공한다는 점에서 유용하지만, 아무 종류의 입력 데이터에 대해서나 이를 달성할 수는 없다는 사실을 알았습니다. 특히 시기에 따라 주제 변동이 커서, 주제가 아예 사라지거나 갑자기 등장하는 경우에는 DTM을 사용시 부적절한 결과를 얻을 수 있습니다. 

이외에도 전체 문헌을 T개의 균등한 구간으로 나눠야하며, 시기에 따른 주제 변화가 일정하다고 가정하는 것도 대표적인 한계점입니다. 전체 데이터를 몇 개 구간으로 나누느냐에 따라 결과가 크게 달라질 수 있고, 너무 잘게 쪼갤 경우 각 시점에 포함되는 문헌의 개수가 적어지기 때문에 분석 결과가 나빠질 가능성도 있지요. 이런 점을 개선한 모델로 Continuous Dynamic Topic Model이 있는데, 이는 전체 문헌을 균등하지 않은 구간으로 나누어 분석할 수 있게 합니다. 따라서 각 문헌이 가지고 있는 작성 시기를 변형 없이 그대로 반영할 수 있습니다.

개인적으로는 DTM이 생성하는 T시점의 주제들과 T+1시점의 주제들이 꼭 연속적으로 이어지지는 않기도 하고, 이 때문에 $\psi, \sigma, \beta$를 정밀하게 조절해야 하는데 이를 잘 결정하는게 꽤 어렵다고 생각합니다. 하이퍼 파라미터를 적당히 설정해도 결과가 괜찮게 나오는 LDA와는 다르게 말이죠. 복잡한 모델보다 단순한 모델이 더 유용한 이유가 여기에 있지 않은가 생각해봅니다.

관련글 더보기

댓글 영역