<aside>
💡 사회현상 분석 프로젝트를 위해 공부했던 Dynamic Word Embedding 에 대해 정리하고자 한다. 이번 포스팅은 DWE으로 불리는 'Dynamic Word Embeddings for Evolving Semantic Discovery' 논문의 내용을 바탕으로 참고 자료와 함께 다시 정리한 내용이다.
</aside>
1. Introduction
- ‘word embedding’ 은 비슷한 의미의 단어가 기하학적으로 가까운 저차원 벡터로 단어를 표현하는 것
- 이러한 방법들은 일반적으로 시간적 요인을 고려하지 않으며, 단어가 시간에 걸쳐 정적이라고 가정
- 언어는 사회적, 지리적, 역사적 환경에 따라 단어의 의미적 연관성이 변화하면서 진화함
- 본 논문에서 제안하는 방법을 통해, 다른 시간 프레임에 있는 각 단어를 다른 벡터로 표현함으로써 시간이 지남에 따라 진화하는 단어의 의미와 단어 간 연관성을 더 잘 이해할 수 있음
- 하지만, 서로 다른 기간에 대해 서로 다른 word embedding을 학습하는 데 있어 현실적인 문제가 따름
- 시간에 따른 word embedding을 공동으로 학습하는 방법으로 Alignment problem를 고려할 필요 없음
- 또한, 모든 time slice에서 동시에 temporal embedding을 학습하고 정규화 조건을 적용하여 시간에 따른 embedding 변화를 부드럽게 하는 방법을 제안
2. Methodology
- 모든 documents의 $t$-th time slice의 corpus를 $\mathcal{D}$ = $({\mathcal{D}_1},\,\mathcal{D}_2\;,...\mathcal{D}_t)$ 로 정의
- 각각의 $\mathcal{D}$ 의 length는 다를 수 있음으로, 전체 어휘를 고려한 vocabulary $\mathcal{V}$ = $\{w_1,\,w_2, ...\, w_V\}$ 구성
- 모든 $\mathcal{D}$ 에서 $\mathcal{V}$ 를 구성 함으로 반드시 $w \in \mathcal{V}$ $and$ $w \in \mathcal{D}_t$ 가 아닐수 있음
즉, 전체 시점에 대한 사전을 정의하기 때문에 특정시점($\mathcal{D}_t$) 에서 어떠한 어휘($w$)가 등장 하지 않을 수 있음
- 어휘 $w$ 에 대한 static embedding(e.g. word2vec, glove) $u_w$로 정의 (embedding dim size = $d$ )
- $i$-th row가 $u_{wi}(t)$의 embedding vector 에 해당 모든 단어의 embedding 행렬을 $U(t)$ 로 정의
즉, $t$ 시점의 $\mathcal{V}$에 대한 static embedding
- time-tagged corpus에서, 각 단어와 각 시점에 대한 low-dimensional vector representation을 찾는것이 목표
2.1 Time-agnostic word embeddings
- static word embedding에서 의미적으로 유사한 단어는 말뭉치에서 유사한 neighboring structure를 뜀
- neighboring structure는 window size내에서 동시 등장하는 단어의 빈도로 캡처됨
$$
u^T_wu_c \approx PMI(\mathcal{D},L)_{w,c} = log(\frac{\#(w,c)\,\cdot \,|\mathcal{D}| }{\#(w)\,\cdot \, \#(c)})
$$