3. Word Embedding : 단어를 저차원의 벡터로 표현
(ex: Word2Vec, GloVe 등)
1. Introduction - Word2Vec
밀집 표현(Dense Representation) : 각 단어의 특징이 표현된 벡터 (저차원)
희소 표현(Sparse Representation) : 단어별 ID 생성 (고차원(단어 개수 만큼의 차원), one-hot encoding)
단점 : 고차원 + 단어 간 유사성을 표현할 수 X
4. (1) CBOW(Continuous Bag of Words) : 주변에 있는 단어로 중간 단어 예측
ex) 문장
“The fat cat sat on the mat”
window size = 2
1. Introduction - Word2Vec
5. [0, 1, 0, 0, 0, 0, 0]
[0, 0, 1, 0, 0, 0, 0]
[0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 1, 0]
[0, 0, 0, 1, 0, 0, 0]
output : 중심 단어
input : 주변 단어
(1) CBOW(Continuous Bag of Words) : 주변에 있는 단어로 중간 단어 예측
1. Introduction - Word2Vec
6. m : window size
V : 문장의 단어 개수 (= 7)
N : hidden layer 크기 (= 5)
(1) CBOW(Continuous Bag of Words) : 주변에 있는 단어로 중간 단어 예측
1. Introduction - Word2Vec
7. =
𝑧 𝑖
𝛴 𝑗ⅇ
𝑧 𝑗
(1) CBOW(Continuous Bag of Words) : 주변에 있는 단어로 중간 단어 예측
1. Introduction - Word2Vec
8. - 학습되는 mechanism은 CBOW와 동일
(2) skip-gram : 중간 단어로 주변에 있는 단어 예측
1. Introduction - Word2Vec
10. 2. Model – data(word vector) 준비
Google News의 1000억 개 단어로 구성된 데이터로 pre-trained된 Word2Vec(CBOW)을 word vector로 이용
(pre-trained된 word vector에 없는 단어는 random하게 벡터 값 초기화)
n: 단어 개수
k: word vector 차원
window size가 다른
여러 filter들 적용한
conv layer 병렬적으로 생성
(filter 크기 : window size * k)
window size = 2
window size = 3
15. 2. Model – step3 : max-over-time pooling
𝑥1
𝑥2
𝑥9
.
.
.
.
.
𝑥1:2
𝑥8:9
𝑥4:6
𝑐 = 𝑐1, … , 𝑐 𝑛−ℎ+1
: feature map
Ƹ𝑐 = max{𝑐}
각 conv layer마다 feature map 개수가 달라짐
→ 각 conv layer마다 feature map 中 가장 큰 값만 사용
각 window size마다 생성
16. 2. Model – step4 : softmax
𝑥1
𝑥2
𝑥9
.
.
.
.
.
𝑥1:2
𝑥8:9
𝑥4:6
softmax function 통해
최종 output 나옴
Ԧ𝑧 = Ƹ𝑐1, ⋯ , Ƹ𝑐 𝑚
m : filter 개수
17. 2.1 Regularization
- Dropout (keep probability p=0.5)
: feature 中 반은 dropout으로 제거 → 2~4% 정확도 향상
(train에서만 사용, test에서는 dropout 하지 않음)
- Test할 때 dropout을 하지 않으므로 𝑤 = 𝑝𝑤 로 rescale
Ԧ𝑦 = 𝑤 ⋅ Ԧ𝑧 + 𝑏
Ԧ𝑧 = Ƹ𝑐1, ⋯ , Ƹ𝑐 𝑚
Ԧ𝑦 = 𝑤 ⋅ ( Ԧ𝑧 ∘ Ԧ𝑟) + 𝑏
masking vector
(dropout 여부를 0, 1[Bernoulli random variable]로 나타내 주는 vector)
dropout
m : filter 개수
∘ : element-wise operation
- 𝑤 2 > 𝑠일 경우 𝑤 2 = 𝑠로 rescale
18. 3. Datasets and Experimental Setup
의미 label 수 문장 평균 길이
dataset
크기
단어 수
pre-trained word
vector에 포함된 단어 수
test set 크기
MR
(Movie Review)
영화 리뷰 문장 2 (긍정/부정) 20 10662 18765 16448 10-fold CV 사용
SST-1
(Stanford Sentiment
Treebank-1)
MR에서 test set 제공
+ label 5개로
5 (매우 긍정/
긍정/보통/부정
/매우 부정)
18 11855 17836 16262 2210
SST-2
(Stanford Sentiment
Treebank-1)
SST-1에서 보통 제거하고
binary label로
2 (긍정/부정) 19 9613 16185 14838 1821
Subj Subjectivity dataset 2 (주관/객관) 23 10000 21323 17913 10-fold CV 사용
TREC 의문문 dataset 6 (질문 종류) 10 5952 9592 9125 500
CR
(Consumer Review)
소비자 리뷰 문장
2 (긍정/부정)
19 3775 5340 5046 10-fold CV 사용
MPQA 의견 2 (의견 극성) 3 10606 6246 6083 10-fold CV 사용
19. 3.1 Hyperparameters and Training
SST-2의 validation set으로 grid search 통해 설정
- Activation function : ReLU
- Filter windows : h = 3, 4, 5
- Feature map : 100개
- Dropout rate : p = 0.5
- L2 constraint : s = 3
- Mini-batch size : 50
3.2 Pre-trained Word Vectors
(앞에서 언급한 내용)
Google News의 1000억 개 단어로 구성된 데이터로 pre-trained된
Word2Vec을 word vector로 이용
* Train 시 CBOW 사용 / word vector 차원: 300차원
* pre-trained된 word vector에 없는 단어는 random하게 벡터 값 초기화
20. 3.3 Model Variations - CNN-rand : word vector가 random으로 초기화
- CNN-static : word2vec 사용 + static
- CNN-non-static : word2vec 사용 + non-static
- CNN-multichannel : word2vec 두 set(channel이라고도 부름) 사용
- 하나는 static, 다른 하나는 non-static
4 Results and Discussion
성능 BAD
21. 4.1 Multichannel vs. Single Channel Models
→ 항상 Multichannel이 single channel model보다 성능이 더 좋은 것은 아니다!
4.2 Static vs. Non-static Representations
→ non-static은 static보다 통사적인 부분까지 고려됨
26. Word2vec이 큰 차이 없었던 이유:
- word2vec이 새로운 feature를 주지만
데이터가 대용량(65만건 이상)이라 데이
터 크기만으로도 충분히 큰 역할을 해서
- 다양한 카테고리를 시험해서 같은 단어
라도 중의적인 표현으로 쓰였기 때문
* 한국어 ver