욱이의 냉철한 공부

[NLP 개념정리] Word Embedding 개요 본문

데이터과학/개념 : NLP

[NLP 개념정리] Word Embedding 개요

냉철한 욱 2020. 4. 16. 17:13

* 자료출저 및 참고논문

- 강의

Coursera Andrew Ng 교수님 인터넷 강의

- 논문

Lingusitic Regularities in Continuous Space Word Representations

 

 


 

 

목차

Introduction to Word Embedding

1. Word Representation(Sparse Representation, Local Representation)

-> Word Embedding(Dense Representation, Distributed Representation)

2. Using Word embeddings

3. Properties of Word embeddings

4. Embedding matrix

 

 


 

 

1. Word Representation(Sparse Representation, Local Representation)

- Word Representation(Sparse Representation, Local Representation)

단어들을 벡터로 표현

Word Representation은 1아니면 0으로 표현하는 1-hot 인코딩을 사용.

즉 총 10000개의 단어가 있다하면 10000개의 벡터값중 단어의 해당값만 1이고 나머지는 0

- Word Representation(Sparse Representation, Local Representation) 약점

각 단어를 하나의 개체로 여기고, 알고리즘이 교차 단어를 일반화시키지 못함.

예를 들어 (오렌지, 사과)의 유사성(관계)

(남성, 여성), (왕, 퀸)의 유사성(관계)처럼 가깝지 않음

즉 (오렌지, 사과)의 유사성(관계)를 표현해줄 무엇인가가 없음.

=> 그리하여 모든 단어들을 이용하여 유사성(관계)를 알아낼 수 있는 특징적인 표현을 학습하는 것이 필요

그것이 바로 Word Embedding

- Word Embeddings(Dense Representation, Distributed Representation)

(오렌지, 사과)의 많은 특징들은 실제로 동일하거나 아주 비슷한 가치를 지님

그리하여 이 특징들을 알아내도록 학습하면, (오렌지,사과)유사성(관계)를 알 수 있음.

이 특징들은 예를 들어 아래 표에서 300개(특징 개수)의 목록으로 표현

예를 들어 (오렌지, 사과) Food(특징)에서는 매우 높은 값이라는 것을 확인 할 수 있음

=>

이를 통해 오렌지 쥬스가 어떤 것(어떤 특징과 어떤 관계를 맺고 있는, 새로운 차원)이라는 것을 알아낼 수 있는 확률이 증가

즉 사과 주스도 어떤 것(새로운 차원)이라는 것을 쉽게 알아냄. 이 어떤 것(새로운 차원)을 알아내는 것이 학습이라 한다.

다른 단어들도 마찬가지로 학습하여 일반화(표현) 가능하다.

그러므로 Word Representation보다 다른 단어를 일반화(표현) 가능

- Word Embeddings의 특징

Word Represnetation : [000000000000010000000000........... ] 10000개 까지

Word Embedding : [1 ,0.3 ,2 , 0.5, ...............] 300개 까지

1) 특징1 : Dense Representation

단순한 Word RepresentationSparse Representation 이였다.

벡터의 대부분이 0(원핫인코딩)으로 표현된 희소표현이었다는 뜻이다.

이것은 공간적 낭비와, 내적시 를 유사성(관계)찾아내지 못하는 단점이 있다. 0하고 곱해지는 경우가 많으니깐..

하지만 Word Embedding어떤 것(새로운 차원)을 통한 Dense Representation이다.

Word Embedding은 0 ,1(원핫인코딩)이 아닌 어떤 것(새로운 차원)를 표현하는 실수값으로 이루어져있다.

이 실수값이 계산하면서 유사성(관계)를 찾아낼 수 있고, 곱해도 0이 되어지지 않는다.

그리고 이 어떤 것(새로운 차원)으로 이루어진 벡터는 빽빽하게 밀집되어 있는 벡터이며,

저차원으로 이루어진다. (10000개 -> 300개)

그리하여 Dense Representation 이라고 명칭한다.

2) 특징2 : Distributed Representation

Word Embedding빽빽하게 밀집되어 있는 벡터이며, 저차원으로 이루어진다

이를 통해 300개의 여러 어떤 것(새로운 차원)에 유사성(관계)를 계산할 수 있는 단어의미를 내장하게 된다.

이처럼 여러 곳에 단어의미를 분포한다 하여 Distributed Representation이라고 한다.

 

 

- Visualizing Word Embedding : t-SNE 알고리즘

이러한 특징들은 해석하기 쉽지 않음.

하지만 2차원 공간에 내장함으로써 시각화는 가능

즉 300차원의 특징공간을 2차원의 공간으로 만들어냄.

Embeddings라는 단어도 이 차원 축소 시각화에서 유래됨.

2. Using word embeddings

- ex) Named entity recognition example

Word Embedding으로 학습된 피쳐화된 표현, 즉 내장 벡터를 사용할 수 있다면

Named entity recognition 문제를 일반화하는 학습알고리즘을 쉽게 만들 수 있음.

많은 학습데이터Word Embedding 시킴으로써,

orange와 durian의 관계를, farmer와 cultivator의 관계를 알아낼 수 있음.

더불어 이 둘이 같은 농부, 즉 사람이라는 관계도 알 수 있음.

이를 통해 Named entity recognition 문제를 해결하는 알고리즘을 쉽게 만들 수 있음.

* Named entity recognition 문제 : BRNN

Named entity recognition 문제에서는 BRNN(양방향 RNN)을 사용하면서 학습.

왜냐하면 뒤에 orange farmer가 사람(특징)이라는 것을 인식하기 위해서는

뒤쪽에서부터도 학습하는 알고리즘이 필요함.

양방향 RNN이 필요

- Word embedding과 학습알고리즘 구축 순서

1). Word embeddings 구축

최대한 많은 단어 포함한 텍스트코퍼에서 학습해야함

왜냐하면 최대한 많은 단어들 사이의 관계를 찾은 Word embeddings를 구축하기 위해

2) 새로운 작업으로 옮긴 Word embeddings 구축

상대적으로 낮은 차원 특징의 내장 벡터 구축

 낮은 차원 특징의 내장 벡터는 해당 작업 필요한 특징들로만 구성

3) 새로운 작업에 대한 모델 학습

계속 튜닝하고, 새로운 데이터를 사용하여 조정

작업 2에서의 데이터 세트가 아주 큰 경우에만 이 작업 수행

만약 작다면 세밀하게 조정 어렵.

3. Properties of word embeddings

- Word embeddings의 featured representations를 어떻게 알아낼까?

예를 들어, (왕, 여왕)의 관계에서, 성별이라는 특징에 의해서 그 관계를 규명할 수 있다는 것을 알 수 있음.

그러면 이러한 성별이라는 특징에서 이 관계가 크다, 작다를 어떻게 표현할 수 있을 것인가?

벡터로 (남자, 여자)성별(특징)의 관계를 표현 가능

마찬가지로 (왕, 여왕)성별(특징)의 관계를 표현 가능.

그러면 여기서 (남자 <-> 여자)의 차이와 (왕, ?)의 차이를 같게 만들게 한다면

? 이 무엇인지 알아낼 수 있음.

물론 ?가 우리는 직관적으로 여왕이라는 것을 가정할 수 있음.

이 가정을 (남자-여자 = 왕 - ?(여왕))의 계산을 통해 검증할 수 있음.

이 계산을 우리는 Cosine similarity로 계산을 진행함.

이 계산은 둘 단어들의 차이(남자-여자)(왕-?)가 서로 같다(=)라는 것을 극대화함

남자 여자 관계(성별)관계(성별)가 있는 ?가를 밝혀냄

?가는 당연히 여왕~!

* Cosine similarity 계산방법 이외에도 유클리드 거리 계산방법 등이 있음

 

 

4. Embedding matrix(가중치 매트릭스)

- Word embeddings의 학습과정을 통해 변하는 가중치 matrix

가중치 matrix에서 은 학습될 10000개의 어휘 데이터.

가중치 matrix에서 은 학습되어 나오는 관계(단어 사이의 관계)인 300개의 특징

 

가중치 matrix One-hot-encoding된 Matrix내적된 것이

최종 Embedding matrix

우리의 목표는 가중치 matrix학습하는 것

* 비효율 (이해 필요)

하지만, 이 가중치 matrix를 학습하는 데 있어, 내적은 비효율적

왜냐하면 One-hot-encoding된 Matrix이 1개의 핫 벡터지만, 높은 차원으로 구성되어 있고, 대부분 요소가 0이다. 이런 Matrix와 내적하는 것은 비효율

그래서 효율적인 방법들이 있다. 이것은 나중에

* 생각 정리

1) 최종 가중치 매트릭스(e)는, One-hot-encoding된 Matrix(O) or 단어문서행렬(Term-Document-Matrix) 와 내적을 통해 산출

2) 가중치 매트릭스(e)는 은닉층으로 들어가, 학습대상 단어 수만큼 각각 확률을 output 소프트맥스로 산출.

3) 마지막 아웃풋 소프트맥스조건부확률 이고

조건부확률 식Cosine similarity를 이용한 내적을 통해 만들어짐

조건부확률 식(목적식)을 높이는 방향으로 학습(역전파)이 추진

동시에 가중치매트릭스(e)학습(역전파)을 통해 좋은 값으로 갱신

(고려사항)

차원변화 계속 헷갈림. 표기좀 전부 일치시키지... 관계(피쳐, 뉴런)가 어디는 열이고 어디는 행이고 아우, 앤드류님은 일단 행에다가 표기