잠재의미분석 (LSA - Latent Semantic Analysis)
https://youtu.be/GVPTGq53H5I?feature=shared
pizza가 ramen 보다 hamburger랑 유사하다는걸 어떻게 알까?
- pizza
- pizza hamburger cookie
- hamburger
- ramen
- sushi
- ramen sushi
Bag of words를 이용한다면 단어의 의미를 파악하지 못하고 단어 빈도수 기반이기에 서로 의미가 비슷하다는 걸 모른다.
Similarity(pizza, hamburger) = 0
Similarity(pizza, ramen) = 0
pizza | hamburger | cookie | ramen | sushi | |
pizza | 1 | 0 | 0 | 0 | 0 |
pizza hamburger cookie | 1 | 1 | 1 | 0 | 0 |
hamburger | 0 | 1 | 0 | 0 | 0 |
ramen | 0 | 0 | 0 | 1 | 0 |
sushi | 0 | 0 | 0 | 0 | 1 |
ramen sushi | 0 | 0 | 0 | 1 | 1 |
TF-IDF 또한 마찬가지. pizza와 hamburger가 같은 단어를 가지고 있지 않기 때문에 유사도 = 0으로 나오게 된다.
TF-IDF와 Bag of words는 words 기반이지만, LSA 는 토픽 기반의 유사도를 측정한다.
LSA로 유사도 구하는 과정
word-document matrix = "A"
pizza | pizza hamburger cookie | hamburger | ramen | sushi | ramen sushi | |
(word) | d1 | d2 | d3 | d4 | d5 | d6 |
pizza | 1 | 1 | 0 | 0 | 0 | 0 |
hamburger | 0 | 1 | 1 | 0 | 0 | 0 |
cookie | 0 | 1 | 0 | 0 | 0 | 0 |
ramen | 0 | 0 | 0 | 1 | 0 | 0 |
sushi | 0 | 0 | 0 | 0 | 1 | 0 |
A 를 특이값 분해를 통해 세개의 곱으로 나눠줄 수 있다.
- word matrix for topic
- Topic Strength (시그마 매트릭스)
- Document matrix for topic (Vt)
세 개 중 Topic Strength와 Document matrix for topic 행렬에서 토픽 분류를 할 수 있는데,
Topic Strength 행렬은 토픽 중요도에 따라 내림차순으로 정렬이 되는데,,, t1, t2가 주요 토픽이다.
Ignore less than 1.7 토픽 2개만 남기고 나머지는 없앤다.
머신러닝 - 20. 특이값 분해(SVD)
이번 장에서는 특이값 분해(SVD)에 대해 알아보겠습니다. 고유값 분해에 대해 알고 있어야 특이값 분해를 이해할 수 있습니다. 고유값 분해를 잘 모르시는 분은 이전 장을 참고해주시기 바랍니다
bkshin.tistory.com
주요 토픽 2개를 가지고 (시그마, VT)를 곱해 계산하면
pizza | pizza hamburger cookie | hamburger | ||||
d1 | d2 | d3 | d4 | d5 | d6 | |
t1 | 0.57 | 1.57 | 0.57 | 0 | 0 | 0 |
t2 | 0 | 0 | 0 | 0.68 | 0.68 | 1.36 |