1-5. NMF Application

Bard·2023년 3월 19일
2
post-thumbnail

본 글은 K-MOOC의 인공지능 수학 고급(Advanced Mathematics for AI) 강의를 듣고 요약한 글입니다.

Problem

d1d_1: Romeo and Juliet
d2d_2: Juliet O happy dagger
d3d_3: Romeo died by dagger
d4d_4: Live free or die that is the New-Hampshire's motto
d5d_5: Did you know New-Hampshire is in New-England

NMF를 통해서 문서들 간의 숨어있는 의미를 찾아보자.

Data Representaion

이전 1-1. Data-Representation과 동일하게 행렬로 표현을 할테지만, 이번에는 문서-단어가 아닌 단어-문서 행렬(AV×DA_{V\times D})로 표현해보자.

d1d_1d2d_2d3d_3d4d_4d5d_5
romeo10100
juliet11000
happy01000
dagger01100
live00010
die00110
free00010
new-hampshire00011

Nonnegative Matrix Factorization

K=2K=2로 설정하고 결과를 보면 다음과 같다.

W8×2=[0.0830.6680.0000.7671.2850.000]romeojulietnewhampshireW_{8\times 2} = \begin{bmatrix} 0.083 & 0.668 \\ 0.000 & 0.767 \\ \vdots & \vdots \\ 1.285 & 0.000 \end{bmatrix} \larr \begin{matrix} \rm{romeo} \\ \rm{juliet} \\ \vdots \\ \rm{new-hampshire} \end{matrix}
(H2×5)T=[0.0000.7470.0001.0390.1820.8920.8870.0000.2590.000]d1d2d3d4d5(H_{2\times 5})^T = \begin{bmatrix} 0.000 & 0.747 \\ 0.000 & 1.039 \\ 0.182 & 0.892 \\ 0.887 & 0.000 \\ 0.259 & 0.000 \end{bmatrix} \larr \begin{matrix} d_1 \\ d_2 \\ d_3 \\ d_4 \\ d_5 \end{matrix}

First cluster

w1=[0.083,0.000,,1.285]Tw_1 = [0.083, 0.000, \ldots, 1.285]^T
h1=[0.000,0.000,0.182,0.892,0.259]h_1 = [0.000, 0.000, 0.182, 0.892, 0.259]

w1w_1에서 가장 숫자가 큰 세 단어는 new-hampshire, die, live 이며
h1h_1에서 해당 문서들은 d4d_4, d5d_5, d3d_3 이다.

이는 d4d_4, d5d_5, d3d_3가 하나의 클러스터로 묶일 수 있고, 이를 대표하는 단어가 new-hampshire, die, live 라는 것이다.

Second cluster

위와 같은 방법을 w2w_2h2h_2에 적용하면

d2d_2, d3d_3, d1d_1이 하나의 클러스터로 묶이며, 이를 대표하는 단어가 dagger, juliet, romeo라는 것을 알 수 있다.

이러한 방법을 통해 수많은 대용량 데이터를 쉽게 계산할 수 있으며,
이런 기법을 Topic Modeling이라고 부른다.

profile
The Wandering Caretaker

0개의 댓글