본 글은 K-MOOC의 인공지능 수학 고급(Advanced Mathematics for AI) 강의를 듣고 요약한 글입니다.
Problem
d1: Romeo
and Juliet
d2: Juliet
O happy
dagger
d3: Romeo
die
d by dagger
d4: Live
free
or die
that is the New-Hampshire
's motto
d5: Did you know New-Hampshire
is in New-England
NMF를 통해서 문서들 간의 숨어있는 의미를 찾아보자.
Data Representaion
이전 1-1. Data-Representation과 동일하게 행렬로 표현을 할테지만, 이번에는 문서-단어가 아닌 단어-문서 행렬(AV×D)로 표현해보자.
| d1 | d2 | d3 | d4 | d5 |
---|
romeo | 1 | 0 | 1 | 0 | 0 |
juliet | 1 | 1 | 0 | 0 | 0 |
happy | 0 | 1 | 0 | 0 | 0 |
dagger | 0 | 1 | 1 | 0 | 0 |
live | 0 | 0 | 0 | 1 | 0 |
die | 0 | 0 | 1 | 1 | 0 |
free | 0 | 0 | 0 | 1 | 0 |
new-hampshire | 0 | 0 | 0 | 1 | 1 |
Nonnegative Matrix Factorization
K=2로 설정하고 결과를 보면 다음과 같다.
W8×2=⎣⎢⎢⎢⎢⎡0.0830.000⋮1.2850.6680.767⋮0.000⎦⎥⎥⎥⎥⎤←romeojuliet⋮new−hampshire
(H2×5)T=⎣⎢⎢⎢⎢⎢⎡0.0000.0000.1820.8870.2590.7471.0390.8920.0000.000⎦⎥⎥⎥⎥⎥⎤←d1d2d3d4d5
First cluster
w1=[0.083,0.000,…,1.285]T
h1=[0.000,0.000,0.182,0.892,0.259]
w1에서 가장 숫자가 큰 세 단어는 new-hampshire, die, live 이며
h1에서 해당 문서들은 d4, d5, d3 이다.
이는 d4, d5, d3가 하나의 클러스터로 묶일 수 있고, 이를 대표하는 단어가 new-hampshire, die, live 라는 것이다.
Second cluster
위와 같은 방법을 w2와 h2에 적용하면
d2, d3, d1이 하나의 클러스터로 묶이며, 이를 대표하는 단어가 dagger, juliet, romeo라는 것을 알 수 있다.
이러한 방법을 통해 수많은 대용량 데이터를 쉽게 계산할 수 있으며,
이런 기법을 Topic Modeling이라고 부른다.