03 단어 임베딩을 사용하여 텍스트 유사성 계산하기
이 책은 (주)느린생각에서 'Deep Learning Cookbook' 책을 지원 받아 이 책을 교재로 스터디를 진행하였습니다. 이 글은 Deep Learning Cookbook의 3장 <단어 임베딩을 사용하여 텍스트 유사성 계산하기>를 실습을 목적으로 공부한 내용을 정리한 글입니다.
3장의 앞 부분은 다른 스터디원이 정리한 포스트를 참고해 주세요!
Chatper 3.1 단어 임베딩 + 3.4 SVM 시각화 관련 포스트
3.3. 단어 임베딩 시각화
문제
단어 임베딩이 객체 집합을 분할하는 방법
해결
t-SNE(t-distributed stochastic) 알고리즘을 이용하면 300차원과 같은 고차원 공간을 사람이 인지할 수 있는 2차원으로 축소하여, 좀 더 쉽게 해석할 수 있다.
t-SNE으로 300차원 공간을 2차원으로 축소하면 결과는 아래와 같다.
|
|
|
오류가 나므로 파일 이름을 "GoogleNews-vectors-negative300.bin" 으로 변경한 뒤 코드를 실행하면 된다.
고찰
t-SNE 알고리즘은 고차원 공간에서의 정보를 저차원으로 축소하여도 점 사이의 거리(관계)를 유지하도록 최선의 투영 방법을 반복적으로 찾는다. 더 복잡한 경우에는 복잡도 파라미터 (perplexity parameter)를 이용할 수 있으며, 로컬 정확도와 전체 정확도 사이의 균형을 결정하며 클러스터를 생성한다.
책에 서술된 내용은 여기까지이며, 추가로 t-SNE 알고리즘과 복잡도 파라미터에 대해서 정리해 보았습니다.
t-SNE 알고리즘
사람의 눈은 3차원 이상은 시각적으로 인지하기 어렵기 때문에, 고차원 벡터를 시각화하는 것은 기계학습의 주요 고민 중 하나이다. 1960년대부터 고차원 벡터를 시각화하기 위해 차원 축소를 하는 알고리즘인 MDS(Multi-Dimensional Scaling), LLE(Locally Linear Embedding) 등 다양한 방법들이 제안되었다.
PCA(Principal Components Analysis) 또한 고차원 벡터의 거리 정보를 보존하여 저차원으로 축소하는 알고리즘이다. PCA는 차원을 축소할 때 선형 분석 방식을 이용하기 때문에 축소하여 클러스터링된 데이터들이 뭉쳐있어 제대로 구분하기 어렵다. 따라서 클러스터링 간의 변별력을 높이는 데 한계가 있다.
이 문제를 해결할 수 있는 알고리즘이 t-stochastic neighbor embedding (t-SNE, 티스니)이다. t-SNE는 데이터의 비선형 차원을 축소하는 알고리즘으로, Word2vec로 임베딩한 텍스트를 클러스터링이나 2, 3차원으로 축소하여 시각화할 때 사용할 수 있다.
Stochastic Neighbor Embedding (SNE)
2002년에 발표된 Stochastic Neighbor Embedding (SNE)란 고차원 공간에 있는 데이터 x의 이웃 간의 거리(유사도)를 최대한 보존한 저차원의 y를 학습하는 방법론이다. 즉, 원 공간에서 데이터 간의 유사도 p_ij와 임베딩한 데이터 공간에서의 유사도 q_ij를 정의한다.
p j|i 식은 고차원의 원 공간에서 존재하는 i번째 개체 x_i가 주어졌을 때, j번째 이웃인 x_j가 선택될 확률을 의미한다.
q j|i 식은 저차원에 임베딩된 i번 째 개체 yi가 주어졌을 때 j번 째 이웃인 yj가 선택될 확률을 뜻한다.
하지만 이 방법은 crowding problem이 있으며, 이 문제를 해결하고자 Maaten, L. V. D., & Hinton, G.(2008)은 t-SNE을 제안하였다.
논문에서 얘기하는 SNE와 t-SNE의 차이점은 다음과 같다.
1. Cook et al. (2007)이 간략하게 소개한 기울기를 가진 SNE 비용 함수의 대칭 버전을 사용한다.
2. 저차원 공간의 두 점 사이의 유사도를 계산하기 위해 Gaussian 분포보다는 Student-t 분포를 사용한다.
* Student-t 분포는 정규 분포의 평균을 측정할 때 주로 사용되는 분포이다.
The cost function used by t-SNE differs from the one used by SNE in two ways: (1) it uses a symmetrized version of the SNE cost function with simpler gradients that was briefly introduced by Cook et al. (2007) and (2) it uses a Student-t distribution rather than a Gaussian to compute the sim- ilarity between two points in the low-dimensional space.
(이 글은 추후 t-SNE에 대해 더 추가할 예정입니다.)
* 3장 다음 포스트
Deep Learning Cookbook :: Chapter 03 단어 임베딩을 사용하여 텍스트 유사성 계산하기 (2) (feat. SVM)
References
'20. 인공지능과 딥러닝' 카테고리의 다른 글
Deep Learning Cookbook :: 04 위키피디아 외부 링크를 이용한 추천 시스템 구축 (0) | 2019.04.06 |
---|---|
Deep Learning Cookbook :: Chapter 03 단어 임베딩을 사용하여 텍스트 유사성 계산하기 (2) (feat. SVM) (0) | 2019.03.10 |
[논문리뷰] DeepMind의 AlphaGO 논문 톺아보기 (1) | 2019.02.06 |
[딥러닝개념] 딥러닝 효과적으로 학습하기(2) (ft. regularization) (0) | 2019.01.13 |
[딥러닝개념] 딥러닝 효과적으로 학습하기(1) (ft. regularization) (0) | 2019.01.13 |
댓글