π‘ μ£Όμ : ConvNets for NLP
π ν΅μ¬
- Task : sentence classification
- CNN, 2014 λ Όλ¬Έ, 2017 λ Όλ¬Έ
1οΈβ£ CNN
1. RNN μ λ¬Έμ
β Prefix context λ₯Ό λͺ¨λ ν¬ν¨
β½ the, of .. μ κ°μ prefix context μμ΄ phrase λ₯Ό μ‘μλ΄μ§ λͺ»νλ€.
β½ μ΄μ ν ν°λ€μ λν΄ μ°μ°μ λͺ¨λ μ§νν ν λ€μ ν ν°μ λν΄ μ°μ°μ μ§ννλ€.
β Last hidden state μ μλ―Έκ° μΆμ½λ¨
β½ softmax κ° λ§μ§λ§ step μμλ§ κ³μ°λλ―λ‘ λ§μ§λ§ λ¨μ΄μ μν₯μ λ§μ΄ λ°λλ€ π λ¨μ μ 보μνκΈ° μν΄ LSTM, GRU, Attention κ°μ λͺ¨λΈλ€μ΄ λ±μ₯
2. CNN for text
β main Idea
What if we compute vectors for every possible word subsequence of a certain length?
π λ¬Έμ₯ λ΄ κ°λ₯ν λͺ¨λ λ¨μ΄ subsequence μ representation (벑ν°) μ κ³μ°νλ©΄ μ΄λ¨κΉ (λͺ¨λ κ°λ₯ν μ΄μ μ λν΄ λ²‘ν°λ₯Ό κ³μ°ν΄λ³΄μ)
π μμλ¬Έμ₯μ λν΄ window size κ° 3μΈ tri-gram μΌλ‘ λμΆ κ°λ₯ν word subsequence λ€
π Text CNN μ νν°λ ν μ€νΈμ μ§μμ μΈ μ 보 (λ¨μ΄μ λ±μ₯μμ/λ¬Έλ§₯μ 보) λ₯Ό 보쑴νλ€.
β λ¨μ
β½ μΈμ΄νμ Idea κ° μλλ€ π ν΄λΉ κ΅¬λ¬Έμ΄ λ¬Έλ²μ μΌλ‘ μ³μμ§ νλ¨ν μ μλ€.
β½ CNN μ λΉμ λΆμΌμ λ§μ΄ μ μ©λ¨
β CNN
β½ μ΄λ―Έμ§μ filter λ₯Ό κ°νμ¬ feature λ₯Ό μΆμΆν΄λ
2οΈβ£ 1d Convolution for Text
1. 1d Conv
β filter μ μ΄λλ°©ν₯μ΄ μμλλ‘λ§ μ΄λ π 1d
β½ input : λ¬Έμ₯ λ΄ κ° λ¨μ΄λ₯Ό λνλ΄λ dense word vector
β½ fiter size = (word window size) x (word embedding vector size)
β½ input κ³Ό filter λ₯Ό λ΄μ
β½ κ²°κ³Ό 벑ν°κ° shrunk → padding μ μ©
β½ embedding vector μ filter μ dot product λ₯Ό ν΅ν΄ λ¬Έμ₯ 벑ν°λ₯Ό λμΆνλ€.
β½ μ¬μ νλ ¨λ μλ² λ©μ ν΅ν΄ λμΆν embedding vector μ λν΄ 1d Conv μ°μ° μν πν μ€νΈλ νλμ ν ν°μ λνμ¬ μλ² λ©λ κ°λ€μ μ 보λ₯Ό λͺ¨λ ν¬ν¨νμ¬ μλμ° μ¬λΌμ΄λ©μ ν΄μΌνλ―λ‘ ν λ°©ν₯μΌλ‘ μ§ννλ€.
π¨ (7x4) → (3x4 filter) → (5x1)
: 7κ° κ° λ¨μ΄λ 4μ°¨μμΌλ‘ μλ² λ© λ 벑ν°μ΄κ³ ν¬κΈ°κ° 3μΈ μ»€λμ μ¬μ©νμ¬ λ΄μ κ°μ κ³μ°νλ©΄ 5x1 λ¬Έμ₯ 벑ν°κ° λμΆλλ€.
2. padding
β λ¬Έμ₯ κΈΈμ΄ λ³΄μ‘΄
β½ sliding filter μ°μ°μ νκ²λλ©΄ μλμ sequence κΈΈμ΄λ³΄λ€ μμ κΈΈμ΄μ κ²°κ³Όκ° μ°μΆλλ€. κΈ°μ‘΄ sequence κΈΈμ΄λ₯Ό 보쑴νκΈ° μν΄ padding μ νμ¬ filtering μ νλ€.
3. multiple channel 1d Conv
β λ¬Έμ₯ μ 보λ 보쑴
β½ μ¬λ¬ κ°μ νν°λ₯Ό μ μ©νμ¬, μ λ¬Έμ₯μ λν΄ μ 보λ₯Ό λ λ§μ΄ μΆμΆνλ€. (outuput μ°¨μ μ¦κ°)
β½ λν νν°μ ν¬κΈ°λ₯Ό μ‘°μ νμ¬ n-gram μ λ€μν feature λ₯Ό λ§λ€ μ μλ€ (word window size) π λ€μνκ³ λ§μ filter λ₯Ό μ¬μ©νμ¬ output μ°¨μμ λλ¦¬κ³ , feature λ₯Ό λ§μ΄ μ¬μ©ν μλ‘ κΈ°μ‘΄ λ¬Έμ₯μ λν μ 보λμ΄ μ»€μ§λ€.
4. pooling
νΉμ§μ μμ½νλ μν
β Max pooling
π¨ NLP μμλ max pooling μ μ νΈνλ€. μ λ³΄κ° λͺ¨λ ν ν°μ κ³¨κ³ λ£¨ μλ κ²μ΄ μλλΌ sparse νκ² μλ κ²½μ°κ° λ§κΈ° λλ¬Έ!
β average pooling
β K-max pooling , k=2 μΈ κ²½μ°
5. PLUS
β stride
⽠건λλ°λ μΉΈμ ν¬κΈ°
β½ NLP μμλ sequence κΈΈμ΄μ κ°μλ‘ stride 2 μ΄μμ λ§μ΄ μ¬μ©νμ§ μλλ€.
β½ stride 2 → 2μΉΈμ© λ°μ΄κ±΄λ ν©μ±κ³± μ°μ°
β local max pooling
β½ local max pooling
β dilation
β½ Dilated Conv
: λμ λ²μλ₯Ό μ μ νλΌλ―Έν°λ₯Ό ν΅ν΄ ν©μ±κ³± μ°μ°μ μ§ννλ€. μ μ νλΌλ―Έν°λ‘ λ λμ λ²μλ₯Ό λ³Ό μ μκ² ν¨
β½ Dilation rate : filter μ¬μ΄μ κ°κ²©μ λ»νλ€.
β¨ λ¬Έμ₯μ μλ―Έ λ λ§μ΄ μ΄ν΄νλλ‘ νλ ¨νλ λ°©λ²
1. Filter μ ν¬κΈ° μ¦κ°μν€κΈ°
2. Dilated Conv λ‘ ν λ²μ 보λ λ²μ λ리기
3. CNN depth μ¦κ°
3οΈβ£ CNN for sentence Classification
β¨ Goal : Sentence classification
1. Toolkits
β Gated Units
β½ LSTM, GRU μλ μ μ©λ μμ΄λμ΄
β 1x1 Conv
β½ kernel size = 1
β½ μ μ νλΌλ―Έν°λ‘ channel μ μΆμνλ―λ‘ ν¨μ¬ ν¨μ¨μ
β Batch Normalization
β½ Batch λ¨μλ‘ μ κ·ν (νκ· 0, λΆμ°1) : νΉμ batch μμμ convolution output μ mean=0, unit variance λ‘ rescale
β½ νλΌλ―Έν° μ΄κΈ°νμ λ λ―Όκ°ν΄μ§λ©°, νμ΅λ₯ μ λν Tuning μ΄ μ¬μμ§κ³ , λͺ¨λΈμ μ±λ₯ κ²°κ³Όμ ν₯μμ κ°μ Έμ¨λ€.
2. Yoon Kim (2014) : Convolution Neural Networks for Sentence Classification
β One Conv layer and pooling
β½ νλ ¬ μ°μ°μ΄ μλ, λ¨μ΄ 벑ν°λ€μ concat νμ¬ μ°μ°νλ λ°©μμ μ·¨νλ€.
β½ Word vector : k-dimension μΌλ‘ μλ² λ©λ μ¬μ νλ ¨λ λ¨μ΄λ²‘ν°
β½ Sentence : word vectors concatenated
β½ Conv filter : W, over window of h words
β½ n κ°μ λ¨μ΄, h ν¬κΈ°μ window
β½ ν μ±λμ λν μ°μ°μ κ²°κ³Ό : Ci
β½ feature map C λ₯Ό Max pooling νμ¬ κ° μ±λλ§λ€ νλμ κ°μ μ»λλ€. (νΉμ§μΆμΆ) max pooling μ νλ©΄ filter weight μ window size, λ¬Έμ₯ κΈΈμ΄μ λ³νμ κ°ν΄μ§λ€. (κ°μ₯ μ€μν activation μ μ°Ύμλ)
β½ filter size = 2,3,4 μΈ filter λ₯Ό feature map μΌλ‘ κ° 100κ°μ© μ¬μ©νμλ€.
β½ input μΌλ‘ μλ μλ² λ©μΌλ‘ μλ² λ© λ 벑ν°λ₯Ό μ λ ₯ν λ, κΈ°μ‘΄μ pre-trained word vector λ‘ μ΄κΈ°ν μμΌ°κ³ , fine-tuning μ ν κ² (static)κ³Ό μν κ² (non-static) μ λ λ€ μ¬μ©νλ€.
β½ CNN μ ν΅κ³Όν ν pooling ν μ΅μ’ λ²‘ν° z λ₯Ό μννΈλ§₯μ€λ₯Ό ν΅ν΄ μ΅μ’ λΆλ₯λ₯Ό μννλ€.
3. Alexis Conneau (2017) : VD-CNN
NLP λͺ¨λΈλ CNNμ²λΌ κΉμ κ΅¬μ‘°λ‘ λ§λ€ μ μμ΄!
β Deep models
β½ ν μ€νΈ λΆλ₯λ₯Ό μ»΄ν¨ν° λΉμ κ΅¬μ‘°λ‘ μ€νν λ Όλ¬Έ
β½ Character λ¨μλ‘ input μ λ°μ
β½ NLP μμ RNN, Attention λ±μ λͺ¨λΈμ layer κ° deep νμ§ μμ π VGG-Net μ²λΌ deep νκ² μμ보μ!
β½ Model from the character level κΈμ λ¨μλ‘ μλ² λ©μ μ§ννλ€.
βΎ s = 1024 characters, 16 μλ² λ©
βΎ Text size λ padding μ΄λ μ λ¨μ ν΅ν΄ ν μ€νΈ κΈΈμ΄λ₯Ό λμΌνκ² νλ€.
βΎ Local pooling μΌλ‘ λ¬Έμ₯κΈΈμ΄ μΆμ, channel μλ₯Ό 2λ°°λ‘ νμ¬ feature λ λ λ°°λ‘ μ¦κ°μν΄
β½ Convolution block
βΎ 2κ°μ Conv layer
βΎ Batch Norm, ReLU μ μ©
βΎ νν° ν¬κΈ° = 3 , padding μ μ©νμ¬ input κΈΈμ΄ κ³ μ
π λ€μν λ°μ΄ν°μ μ λν΄ μΈ΅μ΄ κΉμ΄μ§μλ‘ μ±λ₯μ΄ κ°μ λ μ μ λμΆ, κ·Έλ¬λ pooling λ°©λ²μ λ°λΌ μ±λ₯μ λ°μ΄ν°μ λ§λ€ μ°¨μ΄κ° μ‘΄μ¬ν¨μ λ°ν
β¨ CNN for NLP
1. feature λ₯Ό ν¬μ°©νλ μμ : tokens → multi-word → expressions → phrases → sentence
2. ꡬνμ΄ μ λμ΄μκ³ μ¬μ©νκΈ° νΈλ¦¬νλ€.
3. 첫λ²μ§Έ λ¨μ΄μ λ§μ§λ§ λ¨μ΄λ₯Ό μ ν¬μ°©νκΈ° μν΄ λ§μ Conv layer κ° νμνλ€.
4. μ 체λ₯Ό 보λ RN (relation network) μ local νκ² ν¬μ°©νλ CNN μ μ₯μ μ ν©μ³ λμ¨κ²μ΄ Self Attention μ΄λ€.
4οΈβ£ Quasi-Recurrent Nueral Network
βΎ CNN κ³Ό RNN μ κ²°ν©ν λͺ¨λΈλ‘, λ λͺ¨λΈμ μ₯μ λ§μ κ°μ Έμ Conv μ Pooling μ ν΅ν΄ sequencial data λ₯Ό λ³λ ¬μ μΌλ‘ μ²λ¦¬νλ€. κ°μ λΆλ₯λ₯Ό μ§ννμ λ, LSTM κ³Ό λΉμ·ν μ±λ₯μ 보μ΄μ§λ§ 3λ°° λΉ λ₯Έ μλλ₯Ό 보μλ€κ³ νλ€!
5οΈβ£ CNN for NLP μ κ΄ν λ€λ₯Έ μ°κ΅¬/μ€ν
'1οΈβ£ AIβ’DS > π NLP' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Glove μ€μ΅ (0) | 2022.05.31 |
---|---|
[cs224n] 12κ° λ΄μ©μ 리 (0) | 2022.05.23 |
ν μ€νΈ λΆμ β‘ (0) | 2022.05.17 |
ν μ€νΈ λΆμ β (0) | 2022.05.14 |
[cs224n] 10κ° λ΄μ© μ 리 (0) | 2022.05.13 |
λκΈ