반응형
위 강의노트는 고려대학교 산업경영공학부 대학원 강필성 교수님의
비정형데이터분석 (Text Analytics) 을 듣고 정리한 강의노트입니다.
Word-level: NNLM
Distributed Representation: Word Embedding
Word Embedding
어떤 단어를 의미론적으로 유사한 단어는 서로 가까운 공간상에 위치하도록 특정 공간의 vector space로 매핑하는 것
Word vectors: one-hot vector
- 가장 단순하고 직관적인 표현
- 특정 단어의 인덱스에 대해 그 단어가 맞으면 1, 아니면 0
$w^{at} = [0,0,1, \dots , 0]$, $w^{zebra} = [0,0,0,\dots, 1]$ - 단어 사이의 유사도가 보존되지 않는다.
$(w^{hotel})^Tw^{motel} = (w^{hotel})^Tw^{cat}=0$
Word vectors: distributed representation
- 단어들을 임의의 차원을 갖는 벡터로 바꾸는 parameterized function(하나의 표현식에 대해 다른 parameter를 사용하여 다시 표현하는 과정)을 찾는다.
$W: words \rightarrow R^n$ , $(n << |V|)$ - 의미론적인 차이가 단어의 벡터 차이에 보존이 된다.
- $v(king) - v(queen) \simeq v(man) - v(woman)$
- $v(walking) - v(walked) \simeq v(swimming) - v(swam)$Neural Network Language Model (NNLM)
Purpose
distributed representation을 통해 one-hot-encoding의 curse of dimensionality(차원의 저주)를 해결
- 각 단어들을 분산된 word feature vector로 표현
- 단어 sequences의 결합 확률 분포를 통해 해당하는 단어들의 조합이 발생할 확률을 계산
- 어떤 feature vector가 좋은 것인가 2. 단어 sequences의 probability가 높게 / 두 가지를 학습하겠다.
Why it works?
우리가 dog and cat
이 (의미적으로나 종합적으로) 비슷한 역할을 한다는 것과 (the,a), (bedroom, room), (is, was), (running,walking)
에 대한 유사성을 안다면 자연스럽게 일반화할 수 있다.
e.g.) The cat is walking in the bedroom 이 하나의 문장을 통해
A
dog
was
running
ina
room
- The cat is
running
ina
room
A
dog
is walking ina
bedroom- The
dog
was
walking in theroom
등을 전부 generation 할 수 있다.
Comparison with Count-based Language Models
Count-based Language Models
- Chain rule에 의해 $w_1$ 부터 $w_t$ 까지 발생할 결합확률분포는 $P(w_1)P(w_2|w_1)P(w_3|w_1w_2) \dots$
- 100번째 단어를 만드는 Language Model을 사용하려면 99개의 단어를 모두 본 다음 100번째 단어를 봐야하는데, 99개 단어 sequence가 같은 조합을 찾기가 거의 불가능함
- Markov assumption: 모두 보는 것이 아닌 기존의 n-gram 만큼만 보고 예측하자
NNLM
- 단어는 특정 공간 $R^n$상의 dense vector이다. ($n << |V|$)
- $w_t \in R^{|V|}$ : One-hot representation of word $\in V$ at time $t$
- $\Rightarrow x_t = Xw_t$ : Word embedding ($X \in R^{n\times |V|}, n < |V|$)
(X가 가져올 look-up table이고 embedding matrix이다.) - 다음 단어를 예측하는 neural network을 학습
($w_1$ 부터 $w_t-1$ 가 주어지면 $w_t$가 과연 $j$일지를 찾고자 하는 것)
NNLM Architecture
- shared parameters across words: look-up table (word embedding이 저장되어 있는 table)은 전부 다 공용으로 사용한다. (각 Matrix $C(w_i)$들이 같은 table에서 왔다는 뜻)
- 초록색의 실선은 모델이 그대로 연결되어있는 부분, 점선은 Optional (output을 만들 때 hidden node를 뛰어넘고 input->output 연결하는 skip connection이 존재할 수도 있다)
Learning NNLM
- 좋은 모델 $f$(전체 단어가 아닌 window에 해당하는)를 찾는 것
e.g.) 5-gram: 앞선 4개에 단어에 대해 5번째 단어를 예측하는 상황에서 확률이 극대화되는 함수 또는 모델 - 제약 조건
- 어떤 조건에서도 이후 단어들이 생성될 확률의 총합은 1
- $f\geq0$ (각 단어가 생성될 확률은 0보다 크거나 같아야 함)
Decompose the function $f$
$f(w_t, \dots w_{t-n+1} = \hat{P}(w_t|w_1^{t-1})$
- A mapping C (look-up table)
- The probability function over words, expressed with C
$f(i, w_t, \dots, w_{t-n+1} = g(i, C(w_t), \dots, C(w_1^{t-1}))$ - The function $f$ is a composition of these two mappings (C and g), with C being shared across all the words in the context
$y = b + Wx+ U \cdot tanh(d + Hx)$
- $Wx$는 optional, $U \cdot tanh(d + Hx)$ 는 필수적인 부분
- $x$는 word features
- $h$는 hidden units 개수
Stochastic gradient ascent
요약
- Word Embedding
단어를 의미가 비슷한 단어끼리 서로 가까운 공간에 위치하도록 매핑하는 것 - Word Vectors
- one-hot vector
- 특정 단어의 인덱스에 대해 그 단어가 맞으면 1, 아니면 0
- 단어 사이의 유사도가 보존되지 않는다. (내적이 무조건 0)
- distributed representation
- 단어들을 임의의 차원을 갖는 벡터로 바꾸는 parameterized function을 찾는다.
- 단어 사이의 유사도가 보존된다.
- one-hot vector
- Neural Network Language Model (NNLM)
- Count-based Language Models
- Chain rule에 의해 $w_1$ 부터 $w_t$ 까지 발생할 결합확률분포를 계산
- 모든 이전 단어들을 보기 힘드니 마르코프 가정을 통해 n개만 보자
- NNLM
- look-up table에서 word embedding을 가져와 다음 단어를 예측하는 neural network을 학습한다.
- 어떤 조건에서도 이후 단어들이 생성될 확률의 총합은 1이고, 각 단어의 확률은 0 이상이다는 제약조건을 가진다.
- Count-based Language Models
반응형
'딥러닝과 자연어처리 (DL & NLP) > 강의노트 - Text Analytics (고려대 강필성 교수님)' 카테고리의 다른 글
[강의노트] 05-3 Text Representation II - Distributed Representation Part 3 (GloVe & FastText) (0) | 2024.07.20 |
---|---|
[강의노트] 05-2 Text Representation II - Distributed Representation Part 2 (Word2Vec) (0) | 2024.07.13 |
[강의노트] 04 Text Representation I - Classic Methods (0) | 2024.07.09 |
[강의노트] 02-3 Text Preprocessing - Part 3 (0) | 2024.06.29 |
[강의노트] 02-2 Text Preprocessing - Part 2 (0) | 2024.06.28 |