Text Representation 2 : Distrubuted Representations
Word Embedding?
어떤 단어를 mapping 시키는 것
언어에서 사용되는 단어를 특정한 공간의 벡터 스페이스로 맵핑
의미론적으로 유사한 단어는 서로 가까운 공간 상에 위치할 것
Count 기반의 모형은 토큰이 13M 차원인데(영어의 경우) 차원이 너무 크고 sparse해 비효율적임
Word vectors : one-hot vector
가장 간단하고 직관적임
특정한 단어에 해당하는 인덱스가 맞으면 1이고 나머지는 0
$\mathbb{R}^{|V|}$
벡터 표현 만들 수 있는 장점 있지만 단어간의 유사성이 보존되지 않음
모텔이나 호텔은 전부 숙박 장소이지만 내적하면 0
Word vectors : distributed representation?
parameterized function을 찾고자 함
특정한 단어들을 임의의 차원을 가진 벡터로 바꿈
$words \rightarrow \mathbb{R}^{n}$
$n << |V|$
더 이상 각각의 요소가 0, 1이 아니라 연속형의 숫자 가짐
의미론적인 차이를 잘 학습된 embedding vector는 보존하고 있음
Neural Network Language Model(NNLM)?
one-hot 차원의 저주 해결
각 단어는 분산 표상에 대한 word feature vector로 표현
단어의 시퀀스들에 대한 결합확률분포 통해 해당 단어들의 조합 발생 확률 계산
특정 단어를 연속형 벡터로 변환시킬 때 어떤 벡터가 좋은 것인지
랭귀지 모델을 통해서 나타나는 단어의 시퀀스들의 확률이 높게 나오도록 만듦
NNML?
dog와 cat이 유사한 역할을 수행한다면 (의미론적은 반려동물, 구조론적으로 명사)
또다른 유사 pair들을 통해 (the, a), (bedroom, room), (is, was), (running, walking)
새로운 형태를 형성
The cat is walking in the bedroom
A dog was running in the room
Count-based Language Model과 비교?
Count 기반의 랭귀지 모델은 기본적으로 이전에 해당하는 조합들이 주어져 있다고 가정 체인룰 사용
$p(w_{1},...,w_{T}) = \Pi_{t=1}^{T}p(w_{t}|w_{1},...,w_{t-1})$
$p(w_{1}) p(w_{2}|w_{1}) p(w_{3}|w_{1},w_{2})...$
한 문장이 100개의 단어로 구성되어 있는데 100번 째 단어 만드는 랭귀지 모델을 사용하려면 99개 단어 다 본 다음에 100번 째 단어 봐야함
Markov assumption 적용해서 과거에 모든 데이터를 보는 게 아니라 기존의 몇 개에 대해서만 봄
n-grams(bi-gram은 이전 단어만 보자)
NNLM?
단어는 특정한 공간 상에서의 dense vectors임
$n << |V|$
$\mathbf{w_{t}} \in \mathbb{R}^{|V|}$ One-hot representation of word $\in$ V at time t
$\mathbf{x_{t}} = \mathbf{X}\mathbf{w_{t}}$ : Word embedding $\mathbf{X} \in \mathbb{R}^{n \times |V|}, \ n < |V|$
다음 단어를 예측하는 neural network 훈련?
$p(w_{t}=j|w_{1},...,w_{t-1})$
$= \frac{exp(\mathbf{p}^{j} \cdot g(\mathbf{x}_1,...,\mathbf{x}_{t-1}) + q^{j})}{
\sum_{j' \in V}exp(\mathbf{p}^{j'} \cdot g(\mathbf{x}_1,...,\mathbf{x}_{t-1}) + q^{j'})}$
$=softmax(\mathbf{P}g(\mathbf{x}_{1},...,\mathbf{x}_{t-1})+\mathbf{q})$
앞서 t-1개의 단어가 주어지면 t번 째 단어가 과연 j일지 찾는 것
분모는 모든 단어가 등장할 확률 값의 합을 1로 만듦
$\mathbf{P}^{j} \in \mathbb{R}^{m}, q^{j} \in \mathbb{R}$ p는 모델을 통해서 나온 파라미터 값, g의 경우는 w 대신에 x라는 embedding 벡터들이 들어갔을 때 composition function
트레이닝 데이터 셋에서 실제 다음번 단어가 가장 확률이 높게 나타나도록 embedding된 벡터와 뉴랄 렛의 weight를 동시에 학습시키는 것이 목적
NNLM 구조?
해당하는 단어에 대해서 Table look-up을 가져옴
shared parameters across words는 v차원과 n차원이 있을 때 어디에 해당하는 단어인지 가져옴. 즉, look-up table(워드 임베딩이 저장되어 있는 테이블)은 우리가 전부 다 공용으로 사용하겠다는 뜻
초록색의 실선은 모델이 그대로 연결되어 있는 부분
초록색 점선은 옵션
아웃풋을 만들 때 인풋에서 히든노드로 갔다가 아웃풋으로 가는 노드는 당연히 존재
히든노드를 뛰어넘고 인풋에서 아웃풋을 연결하는 skip 커넥션이 존재할 수도 안할 수도 있음
Learning NNLM?
NNLM을 학습한다는 뜻은 어떤 좋은 모델 f를 찾음
$f(w_{t},...,w_{t-n+1})=\hat{P}(w_{t}|w_{1}^{t-1})$
f는 전체 단어가 아닌 윈도우에 해당(전체 문장 또는 문서의 단어의 시퀀스가 아닌 앞서 몇 개의 단어를 보고 그 다음 단어를 에측하는 상황임
NNLM 두 가지의 제약 조건?
$w_{1}^{t-1}, \sum_{i=1}|V|f(i, w_{t-1}...w_{t-n+1})=1$
어떠한 조합의 조건에서도 이후 단어들이 생성될 확률의 총 합은 1
$f \geq 0$
각 단어가 생성될 확률은 0보다 크거나 같아야 함
이 모델이 가져야될 조건은 개별적인 단어들에 대한 추정확률은 0보다 커야하고 그 0보다 큰 확률을 다 더했을 때 1이 되어야 함
$f(w_{t},...,w_{t-n+1})=\hat{P}(w_{t}|w_{1}^{t-1})$?
mapping C a.k.a the lookup table V의 i번째 요소에 대해서 $C(i) \in \mathbb{R}^{m}$
C는 |V| X m
C?
m이 열, |V|가 행
|V|?
|
1 |
0 |
0 |
... |
0 |
... |
0 |
0 |
0 |
$w_{1}$
one-hot에서 첫번 째 요소만 1이고 나머지는 전부 0
C에 적용?
|
$w_{1}$ |
||||
|
$w_{|V|}$ |
m차원의 벡터가 바로 $w_{1}$이 주어졌을 때 꺼내서 쓰게 될 $x_{1}$이고 각각의 요소들은 실수
Probability function over words?
look up table에서 임배딩된 벡터 끄집어 내면
윈도우 사이즈에 해당하는 것만큼의 벡터들이 인풋 $C(w_{t-n+1}),...C(w_{t-1})$
이것을 조건부 확률 분포로 바꿔주어야 하고 이를 모든 V에 산출할 수 있어야 함
그리고 산출된 결과물 자체는 실제 t번 째 단어에 대해서 확률이 가장 높도록 나와야 함
g라는 함수는 i번 째 요소가 예측해야 하는 단어가 i번 째일 확률
g 함수 예시?
g(준다|너에게, 나의 입술을, 처음으로)=?
g(지운다|너에게, 나의 입술을, 처음으로)=?
g(맡긴다|너에게, 나의 입술을, 처음으로)=?
한글로 봤을 때 문법적으로 의미론적으로 말이 되는 시퀀스일 경우 다음 단어가 등장할 확률 높게 만들어
$f(i, w_{t-1...w_{t-n+1}})=g(i,C(w_{t-1}),...,C(W_{t-n+1}))$?
w는 단어고 $C(w_{t-1})$은 임배딩된 벡터
모든 상황 안에서 우리가 가지고 있는 임배딩된 벡터는 특정 시점에서는 raw에 각각 단어들을 그대로 꺼내 쓰게 됨
C는 feed-forward 그대로 쓰면 됨
NNLM 학습구조?
one hidden layer
출력은 |V|
$y = b + Wx + U \cdot tanh(d + Hx)$
Wx는 optional
$U \cdot tanh(d + Hx)$는 필수
댓글