728x90

이번 논문은 Speech-XLNet: Unsupervised acoustic model pretraining for self-attention networks [1]이며, 마찬가지로 NLP에서 사용되는 XLNET [2]의 기법들을 speech recognition에 적용하였음

하지만, XLNET에서 중요시 되는 ordering, permutation, Two-stream self-attention 관련 된 부분의 설명이 너무 너무 많이 부족함

또한 github도 공개가 되어 있지 않기 때문에 실제로 해당 결과물에 대한 신뢰도가 많이 떨어지는 상태인 것을 감안하고 읽어야 하며, 개념적인 부분만 체크하기 위해 리뷰함

Overview

- XLNet과 유사한 pretraining scheme인 "Speech-XLNet" 제안

- Self-attention network (SAN)을 위한 permutation-based autoregressive (AR) acoustic model pre-training scheme 제안

- Speech-XLNet은 factorization order의 가능한 모든 permutation과 관련하여 음성 특징 시퀀스의 예상 log likelihood를 최대화 함

- Frame 순서를 셔플링함으로써 permutation은 bi-directional contextual information 및 글로벌 구조를 캡처하는데 도움이 되며, autoencoding 음향 모델링과 AR의 장점을 모두 활용하면서 단점을 피할 수 있음

 

Related works

1. AR 모델에 대한 제약 2가지

주변 음성 프레임
- 인접한 음성 frame은 상관 관계가 높기 때문에 이러한 local smoothness를 활용하면 이미 다음 frame을 예측하기에 충분할 수 있음
- 따라서 regularization이 없으면 pre-training 과정에서 global 구조를 포착하는데 어려움이 있을 수 있음
- AR pre-training은 또한 seq2seq 작업에 도움이 되는 bi-directional context information으로 어려움을 겪을 수 있음


2. Masking method의 단점

- Pre-training 중에 BERT에서 사용하는 0값으로 masking 된 frame은 fine-tuning process에서 사용되는 labeled 데이터에는 존재하지 않음
- 이로 인해 사전 훈련-미세 조정 불일치가 발생할 수 있음
- BERT는 non-masking frame이 주어지면 예측 된 frame이 서로 독립적이라고 가정하므로 AR 모델에서 사용되는 곱 규칙을 사용하여 joint probability distribution을 모델링 할 수 없음

 

3. XLNet과의 차이점

1) Next sentence prediction과 segment recurrence mechanism을 사용하지 않음
- 두 방법 모두 연속 된 문장에서 long-distance dependencies를 추출하는 데 사용됨
- 그러나 음성 인식 데이터 셋에서의 다른 발화는 일반적으로 서로 독립적이기 때문에 관계가 없음

 

2) Word token이 아닌 frame masking reconstruction
- Classification task에서 regression task 작업으로 XLNet 조정

3) Dynamic permutation 전략 사용
- XLNet은 데이터 전처리 중에 한 번 permutation을 수행함
- 반대로 Speech-XLNet은 음성 sequence가 trainer에 공급 될 때마다 permutation 순서를 재생성함
- 따라서 각 training의 epoch에 공급되는 모든 sequence에 대해 서로 다른 permutation을 사용하기 때문에 훈련 데이터의 양이 증가함

 

Proposed method

1. Model architecture

- Speech-XLNet의 encoder와 decoder는 XLNet과 Transformer와 같음

 

2. Proposed SAN/HMM and end-to-end SAN in the pre-training models

1) SAN/HMM

- 하이브리드 모델은 pre-training 중 아래 그림의 frame-stacking을 진행하지 않는데, 이는 downstream task에 대한 frame level의 alignment 정보를 얻어야 하기 때문임

- Frame-stacking을 하면 HMM기반의 align이 되지 않기 때문에 SAN/HMM에서는 frame-stacking을 사용하지 않음

- 위의 frame-stacking은 4개의 subsampling이 5개로 stack됨을 보임

 

2) SAN

- 반면 SAN은 align 정보가 필요하지 않기 때문에 pre-training 시에도 sequence length와 연산 속도를 줄여주는 frame-stacking을 사용함

 

3. Pre-train objective function

- XLNet과는 달리, Speech-XLNet은 다음 acoustic frame을 "예측함"

$min_\theta\mathbb{E}_{o\sim\mathcal{O}_{T}[\Sigma_{t=1}^T\mathcal{L}(o_t,\hat{y}_{t|o<t})]}$

- 여기에서 $\mathcal{O}_T$는 길이 $T$인 sequence의 가능한 모든 permutation 집합임

- $O=[o_1,o_2,...,o_T]$이고, $o_t$는 $t$번째 element이고, $o_{<t}$는 permutation $O\in\mathcal{O}_T$의 첫 번째 $t-1$요소임

- $\theta$는 parameter 집합을 나타냄

- $\hat{y}_t|o_{<t}$는 permutation 순서 $o_{<t}$의 이전 frame이 주어진 예측 프레임을 뜻함

 

- Permutation 된 sequence의 꼬리 부분에 있는 frame의 마지막 20% 만 예측하도록 선택함
- $T$를 시퀀스 길이로, $e$를 선택한 frame 수라 할 때, objective function을 아래와 같이 지정함

$min_\theta\mathbb{E}_{o\sim\mathcal{O}_T[\Sigma_{t=T-e+1}^T\mathcal{L}(o_t,\hat{y}_{t|o<t})]}$

 

4. Two-stream self-attention

- Query stream은 pre-training에서만 사용되고, fine-tuning에서는 제거됨

- 나머지 설명은 해당 논문에 없음

 

Experimental setups

1. Pre-processing

- Kaldi로부터 CMVN을 적용한 40-dimensional log-Mel filterbanks 사용

 

2. Hybrid ASR on TIMIT

1) SNN/HMM

- 8개의 attention head의 block당 6개의 self-attention block이 있음
- $d_{model}$은 512로, $d_{ffn}$은 2048로, 드롭 아웃은 0.1로, Huber 손실은 0.1로, optmizer는 Adam 사용

 

2) Pre-training
- LibriSpeech, TED-LIUM release2 및 WSJ-si284를 사용, 배치 크기는 6000 frame으로 할당

 

3) Fine-tuning

- 4000 frame의 배치 크기로 Hybrid SAN/HMM 설정에서 Cross Entropy loss로 fine-tuning
- Frame level alignment는 1936개의 senone cluster가 있는 triphone GMM/HMM과 함께 Kaldi s5 레시피를 사용하여  얻음

3. End-to-End transformer ASR on WSJ

1) Architecture

- 12개의 인코더, 6개의 디코더로 구성되어 있으며, 각기 4개의 attention head가 있음
- $d_{model}$은 256, $d_{ffn}$은 2048, Adam 사용
- Target 텍스트의 출력 알파벳은 총 32개의 classes (26 개의 대문자, 아포스트로피, 마침표, 공백, unknown token, <sos>, <eos>)
- 연속 된 3개의 프레임 stacking, 3개 sub-sampling

2) Baseline
- Fine-tuning process와 동일한 설정으로 scratch training
- Beam search는 beam size 15 및 length penalty 0.6으로 수행

3) 평가 데이터
- WSJ-si284

 

Results

1. PER results

- Pre-trained된 SAN은 초기 epoch에서 weight가 임의로 초기화 된 SAN보다 훨씬 빠르게 수렴
- SAN은 hyperparameter에 매우 민감하지만 proposed된 pre-trained 된 SAN의 성능은 훨씬 더 안정적임을 보임

 

2. Results of hybrid ASR on TIMIT

- 무작위로 초기화 된 weight로 training이 끝나면 모든 head의 attention score는 위의 그림 (c)에서 명확한 대각선 패턴을 나타내며, 이것은 현재 프레임 주변의 제한된 컨텍스트만 탐색됨을 의미함
- 그림 (d)에서 두 번째 head의 attention score는 확률 분포가 모두 대각선을 벗어나는데, 논문에서 저자들은 이는 관심 분포가 downstream task에 유용한 일부 "global"구조를 학습다고 주장함

 

3. Reporting WERs from 5 of settings

 

1) SCRATCH

- 무작위로 초기화 된 weight로 Baseline을 end-to-end 훈련

2) WSJ-Perm, LIBRI-Perm

- 81h WSJ-si284 및 960h LibriSpeech를 사용하여 Speech-XLNet으로 인코더 pre-training 이후 fine-tuning

3) WSJ-NoPerm, LIBRI-NoPerm

- Pre-training 중 permutation 폐기한 결과

 

- 당연히 Pre-training에서 가장 많은 데이터로 학습 된 LIBRI-PERM이 좋은 성능을 봉미

 

Conclusion

- NLP의 XLNet의 개념을 이용한 Speech-XLNet

하지만...

- 해당 논문의 Two-stream self-attention 부분은 page 용량 문제로 언급이 하나도 되어 있지 않음

- 그리고 기존 XLNET에 비해 마지막 20% 부분만 permutation으로 사용

- Permutation order가 어느 정도 사용 되었는지도 설명이 나와 있지 않은 채이기에 알 수 없음

- Github 공개 되어 있지 않아서 신빙성 많이 떨어지는 논문

- 쓸데 없는 ablation으로 paper 채우는 듯한 노력이 보임 (대체 learning rate에 대한 ablation처럼 보이는 실험이 왜 진행되었는지 알 수 없음)

 

Reference

[1] Song, Xingchen, et al. "Speech-XLNet: Unsupervised Acoustic Model Pretraining for Self-Attention Networks." Proc. Interspeech 2020 (2020): 3765-3769.

[2] Yang, Zhilin, et al. "XLNet: Generalized Autoregressive Pretraining for Language Understanding." Advances in Neural Information Processing Systems 32 (2019): 5753-5763.

 

 

728x90
728x90

본 논문은 Audio ALBERT: A lite BERT for self-supervised learning of audio representation [1]이며, NLP에서 사용된 ALBERT [2]의 개념을 speech에 적용한 논문임

즉 모델 사이즈를 줄이고 성능을 유지할 수 있는 경량화가 주 목적임

 

Overview

- Self-supervised speech representation model의 lite 버전 제안

- Light-weight representation extractor를 2개의 downstream task에 제안 (speaker and phoneme classification)

- Parameter의 수를 줄이면서도 모델의 강력함을 유지하였던 NLP 도메인의 ALBERT기반 모델

- AALBERT (Audio-ALBERT)는 91%의 적은 parameters의 크기로 거대한 모델인 Mockingjay [3](kaen2891.tistory.com/85?category=462780)과 비슷한 성능을 달성함

- 또한, 꼭 마지막 layer가 좋은 성능을 보장하지 않는 것을 밝혀냄 (즉 중간 layer도 대체가 가능하단 이야기)

 

Related works

1. Weight sharing

- [2, 4] 논문은 매개 변수를 줄이고 줄이지 않은 모델 대비 비슷한 성능을 달성하기 위해 여러 layer에 weight sharing 메커니즘을 적용하는 small Transformer model을 구축함

- [5] 논문은 더 빠른 추론을 위해 Transformer model의 인접 layer에 있는 이전 layer의 attention 가중치를 재사용함과 동시에 기계 번역 성능을 유지함

- [6] 논문은 입력 및 출력 임베딩을 연결하여 성능 저하 없이 매개 변수 감소에 대해 성공함

- Universal Transformer [7]은 Transformer와 RNN의 이점을 활용하여 많은 수의 매개변수를 줄이면서도 layer간 weight를 sharing 하였음

 

- Layer 간의 weight sharing 메커니즘은 layer 축 방향으로 적용된 RNN으로 간주 할 수 있음

- Weight sharing은 더 빠른 추론 및 훈련 속도를 가져올 뿐만 아니라 유사한 성능을 유지할 수 있다는 장점이 있음

 

2. Probing task

- Probing은 인코더가 representation에 특정 정보를 포함하는지에 대한 여부를 측정하는 기술 [8-10]
- Probing은 조사 할 representation을 추출하고, downstream task에 대한 representation을 기반으로 간단한 classifier를 구축하고, classifier의 성능을 측정하여 수행 됨
- ASR 의 hidden state에서 음성 합성하는 방식 또한 프로빙 방법 중 하나임 [9]

 

3. Redundancy in parameter

- 매개 변수의 중복을 measure하기 위해 Jensen-Shannon Divergence (JSD)를 사용함

- JSD는 두 확률 분포의 유사도를 0~1사이로 나타내는 방법임

- JSD를 사용하여 각 Transformer layer의 attention score의 유사도를 평가함

- Multi-head attention의 경우, 각각의 head 마다 JSD로 계산 후 평균을 취함

 

4. Mockingjay 분석

JSD of attention distribution in Mockingjay's layer

- 그림은 Mockingjay-6L를 나타내며, 몇 몇 attention heads가 다른 layer와 매우 다른게 보이지만 (어두운 파란색), 대부분의 layer들은 매우 비슷함

- 각 layer의 파라미터가 서로 다르지만, 비슷한 attention 분포를 보임

- 저자는 이러한 현상을 parameter 중복 현상으로 추측하고 있으며, layer들 간의 weight-sharing으로 해결하려 함

 

Proposed method

1. AALBERT model architecture

- Input: Mel-spectrogram

- Mockingjay처럼 Downsampling을 1/3 진행하여 length를 1/3, dimension을 240으로 설정

- Mockingjay와 마찬가지의 masked acoustic model 설정

- Masking 된 frame work에 log-linear spectrogram으로 복원되도록 pre-training을 진행함

AALBERT model architecture

- 위의 그림처럼, Mockingjay는 layer를 N번 반복하는데 비해, AALBERT는 weight-sharing으로 반복하는 방식으로 취함

 

2. Reducing method

- 모든 layer의 parameter를 서로 공유함

- AALBERT는 같은 Bidirectional Transformer encoder인 Mockingjay에 비해 훨씬 적은 parameter만 요구됨

- 모든 실험은 아래의 표처럼 Mockingjay의 Large model인 12개의 layer로 진행되며, linear spectrogram을  pre-training의 reconstruction objective로 설정하고 실험

3. Downstream task

1) Feature extraction

- Pre-train된 모델의 모든 parameter는 downstream task에서 모두 freezing 함

- Pre-train된 모델로부터 representation을 fix 시켜서 추출하여 simple한 network로 downstream task 진행

- 이 때, 1-1) 마지막 layer만을 사용 1-2) ELMo 에서 제안한 weighted sum 접근법을 이용하여 마지막 layer가 아닌 다양한 layer를 융합하여 실험을 진행함

 

2) Fine-tuning

- 전체 모델의 parameter는 downstream task에서 추가 학습이 진행됨

- 이 기법은 classifier의 성능을 향상시킴

 

3) Prediction

- 2개의 MLP로 예측 진행

 

4. Probing

- Pre-train된 네트워크에서 얼마나 잘 encoding 되었는지 probing 함

- 이를 위해, 3개의 다른 prediciton layer를 이용하여 평가를 진행함: linear, one-fully-connected, two fully-connected layers

- Prediction layer는 pre-train된 모델로부터 representation을 입력받아 downstream task로 훈련되고, 이 때 upstream인 pre-train된 모델의 parameter는 freezing 시킴

- Classifier의 성능을 probing을 함으로써 각각의 layer의 representation의 정보가 풍부한지에 대해 평가함

 

Experimental setups

1. Downstream task

- 1개의 phoneme classification task와 3개의 speaker classification task에 대한 실험 진행

- 이 때 loss는 Cross Entropy 사용

 

2. Parameter

- 160-dimension의 acoustic feature를 사용하여 downstream task 진행 (80-dimensional log mel-spectrogram and its delta)

- Cepstral Mean and Variance Noramlization (CMVN) 적용

 

3. Hyperparameters

- 아래의 표와 같은 세팅으로 진행

4. Dataset

- LibriSpeech를 사용하였으며, train-clean-360으로 pre-training 함

- Train-clean-360과 train-clean-100 셋이 phoneme과 speaker classification을 위해 downstream task에 사용되었으며, 이때 train/valid/test는 8:1:1의 비율로 나뉘어 학습됨

- Montreal Forced Aligner [11]를 사용하여 LibriSpeech의 영문장을 72 phoneme class로 변환함

 

Results

1. Phoneme classification

1) classifier

- 2개의 MLP layer를 prediction하기 위해 사용 (72 classes)

 

2) 결과

Phoneme classification accuracy of AALBERT and Mockingjay

- Fine-tuning과 weighted-sum case에서, AALBERT는 Mockingjay에 비해 적은 parameter수로 comparable한 classification accuracy 성능을 보임

- 12개의 layer가 있는 AALBERT와 Mockingjay는 각각의 3, 6개의 layer에 비해 더 좋은 성능을 보이지 못함

- 6개의 layer가 pre-training에 쓰인 train-clean-360를 커버하기에 충분한 것으로 보임

- 즉, 더 많은 unlabled data를 pre-training에 사용하였으면, 더 오르지 않았을까? 로 예상해볼 수 있음

- Mockingjay 리뷰(kaen2891.tistory.com/85?category=462780)와 마찬가지로, featurue-extraction과 fine-tuning 모두 labeled data가 더 많이 쓰임에 따라 성능이 오름을 볼 수 있음

- 또한, Mockingjay와 AALBERT 모두 비슷한 성능을 내는 것을 볼 수 있음

 

2. Utterance-level speaker classification

1) Number of speaker

- LibriSpeech의 train-clean-360의 화자 수는 921명이며, train-clean-100은 251명임

 

2) Results of both feature-extraction and fine-tuning

- 위의 두 그림에 사용된 classifier는 mean-pooling이 포함된 linear layer가 적용되었음

- AALBERT가 91%의 적은 parameter 수를 갖음에도 불구하고 Mockingjay와 비슷한 성능을 보임

 

3. Probing tasks

각 layer의 representation에 포함된 phoneme 및 speaker 정보의 양을 조사하기 위한 작업

1) setting

- LibriSpeech의 train-clean-100 dataset을 downstream task에 사용 (해당 데이터셋은 pre-training stage에 사용 X)

- AALBERT-6L과 Mockingjay-6L에 대해 probing 진행

- Proposed에 언급한 것처럼 3개의 다른 classifier를 사용하여 model을 probing함 (linear, one hidden layer, two hidden layers)

Probing task

2) Phoneme probing results (그림 위의 부분들)

- 같은 pre-training 모델로부터 채용된 3개의 다른 probing 모델이 같은 trend를 보임 (그림 위의 파란색들, 빨간색들)

- Layer가 깊어질수록, phoneme 정보는 처음에 증가하였다가 나중에 다시 내리는 경향을 보임

- Mockingjay-6L은 더 얕은 probing 모델에 대해 좋은 성능을 달성

- AALBERT-6L은 probing 모델이 더 깊어질수록 좋은 성능을 달성

 

3) Speaker probing results

- AALBERT-6L의 5번째 layer가 가장 많은 speaker 정보를 담고 있음

- Mockingjay-6L의 4번째 layer가 최고의 성능을 달성함

- 가장 마지막 layer가 아닌 중간 단의 layer에서의 representation이 모두 다른 probing 작업에서 성능이 뛰어남

- 이 말인 즉슨, 마지막 layer가 pre-train 훈련 작업에 적합하지 않을 수 있음을 암시함

- 즉, 중간 layer에서 추출된 representation은 downstream 작업에 더 적합 할 수 있음을 보임 

 

4. Attention distribution in AALBERT

- JSD measuring 기반의 attention 분포 분석 (아래 그림)

- 그림 8a는 <layer 1과 2>, <layer 3과 4>, <layer 5와 6> 사이의 JSD measuring 기반의 attention 분포가 매우 유사함을 보임

- 그림 8b는 JSD 기반의 평가가 대각선 및 그 주변의 분포가 매우 유사함을 보이며, layer 1과 6의 차이가 많음을 보임

- 그림 8c는 JSD 기반의 평가가 앞의 3개 layer와 뒤의 3개의 layer들 간 각각의 차이가 비슷함을 보였으며, 이 두 세트의 차이가 많이 발생함을 보임

- 그림 8d와 8e는 <layer 1과 2>, <layer 3과 4>, <layer 5와 6> 간의 차이가 매우 작음을 보였지만, 각각의 세트별 차이가 큼을 보임

- 이 결과는 동일한 parameter가 다른 layer에 대해 완전히 다른 attention 분포를 유발할 수 있음을 보임

 

Conclusion

- 해당 논문에서는, parameter를 줄인 AALBERT를 제안하였음

- NLP의 ALBERT에서 영감을 받은 AALBERT는 layer들 간의 weight-sharing 기법을 통해 기존의 큰 모델인 Mockingjay와 비교하였을 때 성능이 크게 하락하지 않는 모습을 보였음

 

Reference

[1] Chi, Po-Han, et al. "Audio albert: A lite bert for self-supervised learning of audio representation." 2021 IEEE Spoken Language Technology Workshop (SLT). IEEE, 2021.

[2] Lan, Zhenzhong, et al. "ALBERT: A Lite BERT for Self-supervised Learning of Language Representations." International Conference on Learning Representations. 2019.

[3] Liu, Andy T., et al. "Mockingjay: Unsupervised speech representation learning with deep bidirectional transformer encoders." ICASSP 2020-2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2020.

[4] Dabre, Raj, and Atsushi Fujita. "Recurrent stacking of layers for compact neural machine translation models." Proceedings of the AAAI Conference on Artificial Intelligence. Vol. 33. No. 01. 2019.

[5] Xiao, Tong, et al. "Sharing attention weights for fast transformer." arXiv preprint arXiv:1906.11024 (2019).

[6] Press, Ofir, and Lior Wolf. "Using the output embedding to improve language models." arXiv preprint arXiv:1608.05859 (2016).

[7] Dehghani, Mostafa, et al. "Universal transformers." arXiv preprint arXiv:1807.03819 (2018).

[8] Jawahar, Ganesh, Benoît Sagot, and Djamé Seddah. "What does BERT learn about the structure of language?." ACL 2019-57th Annual Meeting of the Association for Computational Linguistics. 2019.

[9] Li, Chung-Yi, Pei-Chieh Yuan, and Hung-Yi Lee. "What does a network layer hear? analyzing hidden representations of end-to-end asr through speech synthesis." ICASSP 2020-2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2020.

[10] Belinkov, Yonatan, Ahmed Ali, and James Glass. "Analyzing phonetic and graphemic representations in end-to-end automatic speech recognition." arXiv preprint arXiv:1907.04224 (2019).

[11] McAuliffe, Michael, et al. "Montreal Forced Aligner: Trainable Text-Speech Alignment Using Kaldi." Interspeech. Vol. 2017. 2017.

728x90
728x90

본 논문의 제목은 Mockingjay: Unsupervised speech representation learning with deep bidirectional transformer encoders [1] 이며, 앞서 소개한 DeCoAR(kaen2891.tistory.com/84) 의 Self-supervised learning 개념을 이용하여 reconstruction task를 Transformer로 진행하면서 representation learning을 진행한 논문임

또한, BERT의 MLM (Masked language model) 개념을 MAM (Masked acoustic model) task로 적용하였음

 

 

Overview

1. Mockingjay라는 새로운 음성 representation learning 방법 제시

- Bidirectional Transformer encoder를 이용하여 대규모 unlabeled 음성을 활용하여 pre-traning 진행

- BERT와 비슷한 Masked Acoustic Model (MAM) 소개

 

2. Pretext (pre-training)

- 음성의 일정 frame에 대해 masking (0값)을 씌우고, pre-training의 모델은 해당 masking된 frame의 original frame을 reconstruction loss를 사용하여 예측

 

3. Downstream task

- 기존 Supervised에서 널리 쓰인 MFCC기반의 phoneme classification, speaker recognition 보다 제안한 Mockingjay의 fine-tuning이 더 좋은 성능을 보임

 

Proposed method

1. MAM pre-training task

- BERT 와 유사함

Masked Acoustic Model

- Input: 80-dimensional mel-spectrogram

- Output: Prediction head를 거친 vector들

 

1) Masking frame에 대한 확률적 policy

Mockingjay's probabilistic policy for masking frames

- BERT와 상당히 유사함

- 전체 frame의 15%에 대하여, 

-- 80%의 확률로 선택된 15%에 대해 0값으로 masking

-- 10%의 확률로 선택된 15%에 대해 다른 frame과 교체

-- 10%의 확률로 선택된 15%에 대해 아무것도 안함

 

2) Input feature: masked spectrogram

Masking 된 spectrogram
Masking 된 spectrogram

 

2. Prediction Head

Prediction head

- 위의 그림 처럼 0값, 즉 masking 된 frame은 Mockingjay를 통과 후 Prediction head를 한 번 더 거침

- Prediction head는 2개의 FFN과 layer-normalization으로 구성되어 있음

- Prediction head의 Input은 마지막 encoder layer가 됨

 

3. Representation learning

Representation learning

- Prediciton head의 output은 masking 된 input의 original frame과의 L1 loss 통해 representation learning이 진행됨

- 즉, Mockingjay의 keypoint는 masking, changing된 input frame이 통과된 output Prediction head와 real frames 들 간의 L1 loss를 사용하여 reconstruction을 배우게 됨

- 이에 대한 visualization은 아래와 같음

Representation learning in Mockingjay

4. Consecutive Masking and Downsampling

Downsampling and consecutive masking

- 해당 논문에서, sequence의 길이를 줄임과 동시에 더 긴 범위에 걸쳐 masking을 하기 위하여 위의 그림과 같이 연속적인 masking을 제안하였음

 

1) Downsampling

- Downsampling의 경우, 연속된 음성 $n$개를 $R_{factor}$계수를 사용하여 $n$개의 frame을 하나로 stack 함

- 즉, (80, 1000)의 shape을 갖는 spectrogram을 $R_{factor}=3$을 사용하면 (240, 334)가 됨

- 수식으로 나타내면, $X\in{\mathbb{R}^l*d}\rightarrow\hat{X}\in{\mathbb{R}^{\frac{l}{a}*ad}}$로 됨

- 여기에서 $l$은 음성 발화 길이이며, $a$는 $R_{factor}$, $d$는 dimension임

 

2) Consecutive masking

- 더 긴 범위에 걸쳐 masking을 진행하기 위해 위의 그림처럼 3개를 진행함

- 기존의 Random masking 15% + consecutive $C_{num}$이 추가되는 방식

- 논문에서는 $C_{num}$에 대해 Base=7, Large=3을 사용

 

5. Final model flow

Mockingjay model flow

1) 무작위 마스킹 15% + Consecutive $C_{num}$ 적용

2) $R_{factor}$를 사용하여 frame length를 줄임 (sub-sampling)

3) Projection layer를 사용하여 240-dimension에서 768-dimension으로 변경 ($H_{dim}=768$)

4) Sinusoidal positional encoding 적용

5) Bidirectional Transformer encoder 통과

- Base ($L=3$), Large ($L=12$)

- 12개의 multi-head attention 사용 ($A_{num}=12$)

- FFN에는 3072-dimension으로 구성 ($F_{dim}=3072$)

6) Prediction head로 representation 추출

- Prediction head는 오로직 pre-training (upstream task)에서만 사용됨

- 768-dimension -> 80-dimension

7) L1 loss를 사용하여 선택된 15%의 prediction head와 ground-truth frame간의 reconstruction error를 계산하여 최소화함

 

6. Downstream task

1) Feature extraction

Feature extraction of Mockingjay

- Mockingjay model를 freezing시키고, 마지막 Prediction head를 그대로 사용함

- 이 위에 classifier 1개를 추가하여 ASR 평가

 

2) Weighted sum from all layers

- 마찬가지로 Mockingjay model를 freezing 시킴

- 1)에서는 마지막 layer를 가져다 썼다면, 여기에서는 ELMo [2]에서 제안된 것 처럼 모든 hidden layer의 weighted sum을 하여 사용함

Feature extraction and weighted sum from all layers

 

3) Fine-tuning

- 이 task에서는, pre-trained 된 Mockingjay를 downstream task의 initial weight로 두고 같이 학습 진행

Fine-tuning task

 

Experimental setups

총 3가지의 downstream task 실험에 대해 진행 (즉, pre-train 이후 label 있는 데이터로 진행한 것임)

 

1) Phoneme classification (72 classes)

- Train 셋: LibriSpeech 360-hour, Test 셋: LibriSpeech test-clean

 

2) Speaker recognition (63 classes)

- Train 셋: 90% of LibriSpeech 100-hour, Test 셋: 10% of LibriSpeech 100-hour

 

3) Sentiment classification on spoken content

- 도메인과 상관없음을 보이기 위해 다른 데이터셋을 이용하여 평가 진행: MOSEI [3]

Results

 

1) Phoneme classification

- Mel-spectrogram을 사용한 linear phone classifiers

- Montreal Forced Aligner [4]를 사용하여 label을 얻었으며, 이를 기반으로 평가 진행

Results of phone classification

- Downstream task의 labeled data가 늘어날 수록 전체적인 성능은 올라감

- 적은 양 대비 제안한 Fine-tuning의 결과가 가장 좋았음

- 360시간 모두를 사용하여도 Supervised 및 APC [5]를 능가함

 

2) Speaker recognition

Results of speaker and sentimental accuracy

- 1개의 RNN classifier를 사용하여 downstream task 진행

- Fine-tuning 결과는 98.05%로서 가장 좋은 성능을 얻었음

 

3) Sentiment classification on spoken content

- 1개의 RNN classifier를 사용하여 downstream task 진행

- Mockingjay로 부터 weighted sum 하여 freezing시킨 feature extractor가 가장 높은 성능인 71.05%를 달성함

 

Conclusion

- 이전의 방법들은 과거의 frame에 의존하거나 미래의 frame에 의존하는 Contrastive learning 기반의 방법인 CPC [5](kaen2891.tistory.com/77?category=462780), wav2vec [6](kaen2891.tistory.com/79?category=462780), APC [7]들이었음

- 제안한 Mockingjay는 과거와 미래의 정보를 공동으로 조건화하여 현재 frame을 예측하도록 설계함

- 예측 frame과 Ground-truth frame 간의 MAM을 사용하여 L1 loss 기반의 reconstruction을 통해 representation learning 제안

- 실험 결과는 fine-tuning 결과가 효과가 있음을 보임

 

Reference

[1] Liu, Andy T., et al. "Mockingjay: Unsupervised speech representation learning with deep bidirectional transformer encoders." ICASSP 2020-2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2020.

[2] Peters, Matthew, et al. "Deep Contextualized Word Representations." Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers). 2018.

[3] Zadeh, AmirAli Bagher, et al. "Multimodal language analysis in the wild: Cmu-mosei dataset and interpretable dynamic fusion graph." Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2018.

[4] McAuliffe, Michael, et al. "Montreal Forced Aligner: Trainable Text-Speech Alignment Using Kaldi." Interspeech. Vol. 2017. 2017.

[5] Oord, Aaron van den, Yazhe Li, and Oriol Vinyals. "Representation learning with contrastive predictive coding." arXiv preprint arXiv:1807.03748 (2018).

[6] Schneider, Steffen, et al. "wav2vec: Unsupervised pre-training for speech recognition." arXiv preprint arXiv:1904.05862 (2019).

[7] Chung, Yu-An, et al. "An unsupervised autoregressive model for speech representation learning." arXiv preprint arXiv:1904.03240 (2019).

728x90
728x90

본 논문의 제목은 Deep Contextualized Acoustic Representations For Semi-Supervised Speech Recognition [1]이며, DeCoAR 라고도 불림

Semi-supervised를 진행 하기 위해 ELMo [2]의 개념과 bidirectional 방법을 채용하여 음성 frame의 미래와 과거를 contextualized 하여 복원하는 pretext task를 거친 후 freezing하여 fine-tuning으로 기존의 supervised learning 보다 좋은 성능을 내는 것을 보임

 

Overview

1. Semi-supervised 음성 인식을 위한 DeCoAR이라는 네트워크 제안

- 많은 양의 레이블이 없는 음성만을 사용하여 효율적이고 context-aware 한 acoustic representation을 학습하는 SSL 프레임워크 제안

 

2. Pretext

- Forward와 backward LSTM을 사용하여 acoustic representation learning 수행

- 이전 및 미래의 context frame에 해당하는 temporal 하게 slicing된 filterbank (Mel-spectrogram) 들을 복원하는 작업을 통해 feature learning 수행

 

3. Downstream task

- Pretext (pre-training)의 parameter들을 고정시킨 뒤 맨 뒷단에 output layer와 CTC loss를 추가하여 fine-tuning 작업 수행

 

Proposed method

전체 모델 그림

DeCoAR

1. Related word - ELMo

- 본 논문은 ELMo로부터 영감을 받아 제안되었음

- $T$ tokens ($w_1,w_2,...,w_T$)가 주어졌을 때, forward language model은 chain rule decomposition을 이용하여 output 확률을 계산하며, 아래와 같음

$p(w_1,w_2,...,w_T)$=$\prod_{t=1}^Tp(w_k|w_1,w_2,...,w_{t-1})$

- 마찬가지로 backward language model은 아래의 식과 같이 미래의 context $w_{t+1},...,w_T$에서 token $w_t$의 확률을 모델링하여 sequence 확률을 계산함

$p(w_1,w_2,...,w_T)$=$\prod_{t=1}^Tp(w_t|w_{t+1},w_{t+2},...,w_T)$

- ELMo는 위의 forward 와 backward language model의 joint log-likelihood를 최대화 하는 방식으로 학습되며 아래의 식과 같음

$\Sigma_{t=1}^T[logp(w_t|w_1,w_2,...,w_{t-1};\Theta_x,\Theta_{LSTM}^\rightarrow,\Theta_s)]$ + $logp(w_t|w_{t+1},w_{t_2},...,w_T;\Theta_x,\Theta_{LSTM}^\leftarrow,\Theta_s)$

- 여기에서 $\Theta_x$는 token representation layer의 parameter이며, $\Theta_s$는 softmax layer의 parameter, $\Theta_{LSTM}^\rightarrow$와 $\Theta_{LSTM}^\leftarrow$는 각각 forward, backward LSTM layer의 파라미터들임

- ELMo에서는 위의 식을 maximizing 하여 최적화 할 수 있고, Speec processing에서는 input data를 acousitc feature $X={x_1,...,x_T}$로 나타내어 위처럼 계산 가능

 

 

2. Proposed DeCoAR (pre-training)

- ELMo의 bidirectionality 방법과 acoustic feature인 frame을 masking 하여 복원하는 reconstruction objective를 결합하여 DeCoAR를 제안함

- Pretext에서는 과거와 미래의 acoustic vector가 주어지면, 이 조각들 (slice)을 예측하도록 모델을 훈련 시킴

- Forward와 backward로 쌓인 LSTM들은 주어진 정답이 없는 $X=(x_1,...,x_T)$ 전체를 input으로 받아 훈련되며, 이 때 $x_T$는 40-dimensional의 log mel filterbank가 사용됨

DeCoAR representation learning

 

- 이렇게 되면, network는 과거와 미래의 매 time step의 $x_t$에 대한 frame들 ($z_t^\rightarrow,z_t^\leftarrow$)을 encode하여 hidden representation을 계산함

- 즉, acoustic feature input인 $(x_1,...,x_T)\in\mathbb{R}^d$이 주어질 때, time step $t$에서 시작하는 각각의 slice들 ($x_t,x_{t+1},...,x_{t+K}$)들의 objective는 아래의 식과 같음

$\mathcal{L}=\Sigma_{i=0}^K|x_{t+i}-FFN_i(z_t^\rightarrow;z_t^\leftarrow)|$

- 여기에서 $[z_t\rightarrow,z_t\leftarrow]\in\mathbb{R}^2h$는 LSTM의 forward와 backward의 concatenated된 states, 즉 BLSTM의 states이며, 

$FFN_i(v)=W_{i,2}ReLU(W_{i,1}v+b_{i,1})+b_{i,2}$

- 는 512 hidden dimension의 position-dependent feed-forward임

- 최종 loss $mathcal{L}$은 전체 시퀀스의 가능한 모든 slice들을 합산 된 것이며, 아래의 식과 같음

$\mathcal{L}=\Sigma_{t=1}^{T-K}\mathcal{L}_t$

 

3. DeCoAR (fine-tuning)

- Fine-tuning은 생각보다 간단한데, 모델이 레이블이 없는 데이터로 DeCoAR의 pre-train을 끝내면, 이 parameter들을 freezing 함

- 이후, reconstruction layer를 제거하고 ($FFN$), 2개의 BLSTM와 CTC loss를 활용하여 fine-tuning을 진행함

DeCoAR fine-tuning 

Experimental setups

1. Data (SSL)

- WSJ와 LibriSpeech 데이터셋 중 하나를 unlabeled data로 간주하여 pre-training으로 사용

 

2. Data (comparison, supervised end-to-end)

- WSJ에서, 30%, 50%, 100%에 대해 label을 주어 ASR 학습

- LibriSpeech에선, 100h, 360h, 460h, 960h에 대해 label을 주어 ASR 학습

 

3. Supervised setup

- Log-mel filterbank feature 사용 (window=25ms, hop=10ms)

- 각 방향마다 512의 hidden dimension을 갖는 6개의 BLSTM 사용

- CTC loss 사용, 72 class

 

4. Semi-supervised setup

- Pre-training: slice size 18 (mask size)으로 두고, reconstruction loss를 사용하여 4개의 BLSTM으로 DeCoAR를 pre-traning

- Fine-tuning: 위에서 얻은 parameter를 freezing, 2개의 BLSTM인 projection layer를 추가하고 CTC loss를 사용하여 tuning함

 

5. Decoding setups

EESEN을 활용한 WFST-based decoding

- CTC label, lexicons, LM 사용 (WSJ의 경우 unpruned trigram LM 사용, LibriSpeech의 경우 4-gram LM 사용)

- AM score는 WSJ의 경우 0.8, LibriSpeech의 경우 1.0으로 설정

- Blank symbol의 prior scale은 두 작업 모두 0.3으로 설정

 

Results

1. Semi-supervised WSJ results

- Fine-tuning with full WSJ results: 

1-1) Pre-training을 하지 않은 supervised의 경우 8.21/5.44%, wav2vec의 (kaen2891.tistory.com/79) 경우 6.84/3.97% 제안한 DeCoAR의 경우 6.30/3.17%의 WER를 획득함

- 상대적 개선률은 각각 42%와 20%임

Semi-supervised WSJ results

2) Fine-tuning with small of WSJ results

- DeCoAR의 feature로부터 fine-tuning된 결과는 supervised learning 된 filterbank보다 훨씬 좋은 성능 달성

- 특히 표 아래의 동일 25, 40에 대해 큰 폭의 차이를 보임

 

2. Semi-supervised LibriSpeech results

- 표 3의 test-clean의 경우, 오직 100시간의 label이 있는 데이터로 fine-tuning을 할지라도, 960시간 전부를 사용한 filterbank, 즉 supervised learning과 비슷한 성능을 보임

- test-other part의 경우, 360시간을 fine-tuning하면 비슷한 성능을 낼 수 있음

- 즉, semi-supervised learning의 우수성을 보이는 표

 

Ablation study

1. Context window size

- Slice 사이즈를 늘리게 되면 masking과 predicting도 그 만큼 더 많이 해야 되는데, 오히려 이것이 성능을 낮추고 학습 시간을 더 소요한다는 단점 발견

- 비슷한 예로, SpanBERT에서는 (자연어 처리 모델) 3.9의 consecutive words 길이인 평균 범위를 마스킹하는 것이 word reconstruction 목표에 이상적이라는 것을 발견하였음

- 본 논문에서는 18개의 slicing size가 best임을 발견함

 

2. Unidirectional versus bidirectional context

- 아래의 표를 통해 양방향/단방향의 성능 차이점에 대해 보임

- 당연히 양방향이 시간이 오래걸리는 만큼 성능이 좋을 것이라는 개인적인 생각

 

Summary

- ASR에 대해 제안 된 준지도 학습 접근법
- Deep contextualized acoustic representation (DeCoAR)을 학습하기 위해 많은 양의 레이블이 지정되지 않은 데이터를 사용하는 deep BLSTM 네트워크 제안
- 이러한 DeCoAR feature는 unlabeled의 representation으로 사용되어 CTC-based E2E ASR 모델을 fine-tuning으로 훈련함
- Supervised learning인 log-mel 필터뱅크 feature 결과 대비 WSJ에서 42 % 상대적 개선을 보였음

 

 

Reference

[1] Ling, Shaoshi, et al. "Deep contextualized acoustic representations for semi-supervised speech recognition." ICASSP 2020-2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2020.

[2] Peters, Matthew, et al. "Deep Contextualized Word Representations." Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long Papers). 2018.

728x90
728x90

본 논문의 제목은 wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations [1] 이며, vq-wav2vec 기법에 Transformer [2] 네트워크 사용 및 BERT의 masking을 audio에 적용한 논문이다.

 

Overview

- BERT [3]의 Masked Language Modeling의 기법인 MLM을 raw speech에 사용

- Self-supervised learning

- 단 10분의 labelled 음성 (40개)으로 fine-tuning하여 LibriSpeech의 clean 5.7 / noisy 10.1 Word error rate 기록

 

Proposed

 

wav2vec 2.0 model architecture

1. Feature Encoder $f$

- 다중 CNN 기반의 encoder $f:\mathcal{X}$$\mathcal{Z}$

- 여기에서 $\mathcal{X}$ 는 입력 raw audio이며, ouptut은 latent speech representation인 $z_1,...,z_T$가 $T$ time-steps 만큼 있음

 

2. Quantization module

- Encoder의 output feature는 양자화 모듈 $\mathcal{Z}$$\mathcal{Q}$을 사용하여 $q_t$로 이산화 됨

- Target의 representation을 self-supervised objective 사용

codebook measuring in wav2ec

- Feature Encoder output $z$는 $I$ $\in$$R^{G*V}$  logit에 매핑되며, 그룹 $G$에 대한 $v$번째 codebook 항목을 선택하는 확률은 위의 식과 같음

- Codebook의 word $i$는 $i=$argmax$_jp_{g,j}$에 의해 선택됨

- Backpropagation에서는 Gumbel-Softmax [4] 출력의 실제 gradient가 사용됨

 

 

 

3. Context network (Transformer)

- Transformer network에 $\mathcal{Z}$가 입력됨: $g:\mathcal{Z}$$\mathcal{C}$

- 전체 시퀀스로부터 representation $c_1,...,c_T$를 정보를 capturing 함

 

3.1 Masking

- 전체 오디오 구간 중 6.5를 randomly choice

- 선택된 $z_t$에서 $z_{t+10}$만큼 masking

- 전체 $T$의 49%가 평균 span length인 299ms로 마스킹 됨

 

 

Objective and loss

 

 

1) BERTmasked language modeling (MLM)과 유사하게 latent speech의 일부분을 masking하며, 모델은 quantized latent audio representation을 맞추는 방식으로 트레이닝이 진행됨

- 이렇게 학습한 후 labeled 된 데이터로 fine-tuning 진행

- 마스킹 된 representation에 대한 quantized latent speech representation 식별하는 식은 아래와 같음

$\mathcal{L}$=$\mathcal{L_m}+\alpha\mathcal{L_d}$

 

2) $\mathcal{L_M}$

모델이 실제 quantized  latent speech representation  K distractor 식별해야하는 대비 손실 Lm.

- Distractors는 동일한 발화의 다른 마스킹 된 시간 단계에서 균일하게 샘플링 됨

- 마스킹 된 시간 단계 $t$를 중심으로 컨텍스트 네트워크 출력 $c_t$가 주어지면, 모델은 $q_t$ 및 $K$개의 distractor를 포함하는 $K+1$ 양자화 된 후보 representation ~$q\in{Q_t}$ 세트에서, 실제 양자화 된 잠재 음성 표현 $q_t$ 식별함

- Distractors는 동일한 발화의 다른 마스킹 된 시간 단계에서 균일하게 샘플링되며, $K = $distractor, 즉 방해 요소임

$\mathcal{L_M}$ = -log$\frac{\exp(sim(c_t,q_t)/\mathcal{k})}{\Sigma\bar{q}~Q_t\exp(sim(c_t,\bar{q})/\mathcal{k})}$

- 여기에서 $sim(a,b)$ = $a^Tb/||a||b||$ 임. 즉 식에서는 $c_t$와 $q_t$의 유사성

 

3) $\mathcal{L_d}$

- 각 $G$코드북에서 $V$항목의 동일한 사용을 권장하기 위한 로스 함수이며, 이를 위해 Contrastive loss 코드북에 의존하여 positive 인 예제와 negative 예제를 모두 나타냄

- 즉, 모델이 코드북 항목을 똑같이 자주 사용하도록 장려하는 다양성 손실 $\mathcal{L_d}$임

- 저자는 speech segmentation의 배치에 걸쳐 각 codebook 대한 평균 소프트 맥스 분포 $l$의 엔트로피를 최대화함으로써 각 $G$코드북에서 $V$항목의 동일한 사용을 권장

$\mathcal{L_d}=\frac{1}{GV}\Sigma_{g=1}^G-H(\bar{p_g})$

==> $\frac{1}{GV}\Sigma_{g=1}^G\Sigma_{v=1}^V\bar{p}_{g,v}\log\bar{p}_{g,v}$

- $V$ 항목 $e\in\frac{{R^{Vxd}}}{G}$ 가 있는 $G$ 코드북 또는 그룹이 주어지면, 각 코드북에서 하나의 항목을 선택한 뒤, 결과 벡터 $e_1$을 연결함

 

Downstream task

- 저자는 작업의 어휘를 나타내는 $𝐶$ 클래스에 컨텍스트 네트워크 (Transformer) 위에 무작위로 초기화 된 linear proejction을 추가함
- Librispeech의 경우 character target을 위한 29개의 토큰과 word 경계 토큰이 있음
- CTC [5] 손실을 최소화하여 모델을 최적화함

 

Results

Results

- 10분 fine-tuning의 경우 clean 4.8%, noisy 8.2%의 WER 달성

- 1시간 fine-tuning의 경우 clean 2.9%, noisy 5.8%의 WER 달성

- 10시간 fine-tuning의 경우 clean 2.6%, noisy 4.9%의 WER 달성

- 100시간 fine-tuning의 경우 clean 2.0%, noisy 4.0%의 WER 달성

 

 

 

Results

- 960시간 전체 다 사용시, clean 1.8% noisy 3.3%의 WER 달성

 

 

 

[1] Baevski, Alexei, et al. "wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations." Advances in Neural Information Processing Systems 33 (2020).

[2] Vaswani, Ashish, et al. "Attention is All you Need." NIPS. 2017.

[3] Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv preprint arXiv:1810.04805 (2018).

[4] Jang, Eric, Shixiang Gu, and Ben Poole. "Categorical reparameterization with gumbel-softmax." arXiv preprint arXiv:1611.01144 (2016).

[5] Graves, Alex, et al. "Connectionist temporal classification: labelling unsegmented sequence data with recurrent neural networks." Proceedings of the 23rd international conference on Machine learning. 2006.

728x90
728x90

본 논문의 제목은 vq-wav2vec: Self-Supervised Learning of Discrete Speech Representation [1] 이며, vector quantizing 기법 중 codebook을 이용한 online K-means [2], Gumbel-Softmax Trick [3]을 이용하여 continuous 한 data를 discrete 하게 만들어서 복원에 사용한 논문이다. 

 

Overview

- raw audio 세그먼트로부터 discrete representation 학습

- Gumbel-Softmax [3] 또는 온라인 k-mens clustering [2] 사용하여 continuous (dense)한 representation을 양자화 함
- Discretization을 통해 NLP (예: BERT)의 알고리즘을 직접 적용하는 것을 보임

 

Proposed

 

1. Model flow

vq-wav2vec

- Encoder내의 2개의 CNN의 역할 $f:\mathcal{X}$$\mathcal{Z}$, 이를 통해 raw audio segment로부터 representation 추출

- 양자화 모듈: $q:\mathcal{Z}$⟼ $\mathcal{\hat{Z}}$ 을 통해, continuous한 representation을 discrete 하게 변경

- Context network (Decoder):  $g:\mathcal{\hat{Z}}$⟼ $\mathcal{C}$를 통해, 특징 추출 및 aggregation

 

 

2. Encoder

 

Encoder part

- raw audio $X$를 dense representation $Z$로 mapping

- 30ms 단위의 세그먼트로 커팅 하여 encoder의 CNN인 $f$ 통해 feature extraction을 통해 $z$ 추출, 이 때 CNN의 stride는 10ms단위로 진행

- wav2vec과 동일

 

3. Quantizer

- $z$는 $\hat{z}$로 양자화 되는 것이 해당 네트워크의 목적

- Quantizer는 fixed size codebook $e\in{\large{R}}^{V*d}$로부터 $z$를 $\hat{z}=e_i$로 변환함

Quantizer used Gumbel-Softmax, K-means clustering

1) 이 때, One-hot representation의 argmax 값이 미분 가능하도록 변환해주는 Gumbel-Softmax 사용

2) 혹은 VQ-VAE에서 사용한것과 같이 유사한 online K-means clustering 사용 가능

- 해당 논문에서는 2개에 대해 모두 실험

 

 

4. How to pre-training the BERT in vq-wav2vec

 

- Gumbel-Softmax 를 이용하여 얻은 $\hat{z}$로 BERT 학습

- 연속적인 raw audio를 이산화된 speech 토큰의 범위를 마스킹하여 BERT 훈련

- 즉, codebook을 통해서 나온 embedded codebook을 BERT의 입력으로 주어서 음성을 학습함

- 음성을 토큰처럼 일정 길이로 자르고, encoder를 통과하여 quantization하여 나온 codebook에 BERT의 기법인 MLM (Masked Language Modeling) 기법을 사용한 뒤 학습함

 

Results

- log-mel spectrogram 사용한 것 보다 제안한 Self-supervised 기법의 vq-wav2vec의 성능이 좋았음

- 또한, quantization을 통해 discretization 된 음성 token을 활용하여 BERT처럼 학습 시킨 모델의 성능이 가장 좋았음

- 마지막으로, quantization에서 고려한 VQ-VAE에서 사용한 online K-means clustering보다 Gumbel-Softmax Trick의 기법이 더 성능이 좋았음

 

 

 

[1] Baevski, Alexei, Steffen Schneider, and Michael Auli. "vq-wav2vec: Self-Supervised Learning of Discrete Speech Representations." International Conference on Learning Representations. 2020.

[2] van den Oord, Aäron, Oriol Vinyals, and Koray Kavukcuoglu. "Neural Discrete Representation Learning." NIPS. 2017.

[3] Jang, Eric, Shixiang Gu, and Ben Poole. "Categorical reparameterization with gumbel-softmax." arXiv preprint arXiv:1611.01144 (2016).

728x90
728x90

본 논문은 2개를 확실히 다 읽어야 이해가 가능한데, [1] [2] 이다.

 

Overview

 

forward, backward

Gumbel-Softmax는 간단하게 정리하면 아래와 같다.

1) sampling을 하고 싶은데, neural network에서 backpropagation시에 불가능하다. 이를 해결하기 위해 Gumbel-Max Trick을 사용하여 backpropagation이 흐르도록 해주자

2) argmax를 사용하였더니 backpropagation이 흐르지 않는다. 이를 어떻게 해결할까? Softmax를 취하여 해결함과 동시에, continuous하게 relaxation을 하기 위해 temperature $\tau$를 쓰자

 

Method

 

Gumbel-Max Trick & Gumbel-Softmax Trick

1. Gumbel-Max Trick

1) 이전 VQ-VAE에서는 online K-means를 사용하여 codebook을 learning 시켜서 reconstruction하였고, 이 때 reshape된 input이 (32,32,64)였다. 여기에서 이어서 함

- Encoder가 logit을 뱉으면, categorical 한 (32,32,64)이 됨

- 이 logit을 다음으로 넘어가려면 one-hot으로 sampling 해야됨

- Categorical한 distribution이 나오면, 이 중 가장 큰 값이 one-hot vector가 되겠지만, one-hot vector가 항상 deterministic하다는 단점이 있음

 

2) Sampling 사용 이유

- 왜 sampling을 하는가?

- 벡터를 quntization만 하게 되면 noise가 필요 없고 샘플링도 할 필요 없지만, enc-dec가 배우는 도중에 sampling을 하게 되면 확률적으로 노이즈에 의해 다른 vector들이 decoder 입장에서 학습이 잘 될 수 있음

- 이로 인해 loss에 의해 더 많이 뽑히게 되면서 빠르게 수렴할 수 있다는 장점이 있음.

 

3) Sampling 사용이 아닌 deterministic한 one-hot vector만 사용하게 될 경우 

- Sampling 기법이 없으면 매번 큰 애들만 하게 되니까, 그 representation이 만약 정답이 아니라면, optimal solution을 못 구할 수 있다는 우려 및 단점이 있음

- 즉, sampling을 하면 이를 해결할 수 있음. 따라서, noise를 첨가한 뒤, argmax를 취하면 확률적으로 다른 애가 one-hot vector가 될 수 있음

 

4) Method

- 첫번째로, Sampling 된 것을 one-hot vecto로 사용하고 싶은데, sampling 을 하면 gradient가 흐르지 않음

- 이것을 흐르게 하는게 gumbel-max tirick

- Motivation은 Logit에 uniform한 noise를 더하고, 제일 큰 놈을 sampling 하면, 이것이 sampling 한것이랑 같지 않은가?

- 이후 argmax로 뽑으면 되는것이 아닌가? 라는 아이디어임.
- 여기에 Gumbel noise를 넣어야 categorical에서 sampling한 것이랑 Gumbel noise를 합한 뒤 max 인 것을 뽑은 것이 같다고 증명되어 있음

Gumbel Noise


- 이 내용을 사용하고 싶은 것이 이 두 논문임 [1-2]

2. Gumbel-Softmax Trick

- 위의 Gumbel-max trick으로 sampling의 문제인 미분불가능 문제를 해결하면, argmax operation 문제가 남아 있음

- Argmax는 neural networks에서 미분 불가능. 즉 역전파가 흐를 수 없음

- Argmax 문제를 제거하기 위해, Softmax 트릭을 이용하여 제거함

- 즉, Softmax가 argmax를 제거하기 위해 나온 것이므로 (Softmax: 미분 가능, Argmax: 미분 불가능)

 

정리하면, 

- Argmax는 backpropagation이 안되고, Softmax는 이러한 argmax를 제거함과 동시에 미분이 가능하도록 함

- 논문에 나와있는 $\tau$는 temperature임

- 즉, Continuous 하게 relaxation을 하기 위해 temperature가 들어옴

Temperature $\tau$의 역할

- 위의 그림 처럼, $\tau$값이 너무 높으면 무작위 sampling을 하는 역할을 하게 됨

- 반면에, 너무 낮게 되면 One-hot vector처럼 categorical한 값을 갖게 됨

- 논문에서는 처음에 낮은 값에서 시작하여 maximum 2.0값으로 annealing하여 종료함

- 논문에서는 처음에 높은 값에서 시작하여 (maximum 2.0) 낮은 값(0 값 아님)으로 annealing 하여 종료 (수정)

- 이를 통해 아래의 식처럼 Sampling을 자유 자제로 함과 동시에 codebook에서 online K-means로 낮은 vector의 개수(max: 64) 밖에 가지지 못했다면, Gumbel-Softmax Trick을 활용하여 더 많은 값을 사용할 수 있다고 밝힘

 

- 해당 방법을 통해 quantization 기법을 활용함

 

 

[1] Jang, Eric, Shixiang Gu, and Ben Poole. "Categorical reparameterization with gumbel-softmax." arXiv preprint arXiv:1611.01144 (2016).

[2] Maddison, Chris J., Andriy Mnih, and Yee Whye Teh. "The concrete distribution: A continuous relaxation of discrete random variables." arXiv preprint arXiv:1611.00712 (2016).

728x90

'Paper Review > Unsupervised, Self & Semi-supervised' 카테고리의 다른 글

wav2vec 2.0 리뷰  (0) 2021.04.12
vq-wav2vec 리뷰  (2) 2021.04.11
VQ-VAE 리뷰  (0) 2021.04.11
wav2vec 리뷰  (0) 2021.04.11
Contrastive Predictive Coding (CPC) 리뷰  (1) 2021.04.11
728x90

본 논문의 제목은 Neural Discrete Representation Learning [1] 이며, vector quantizing 기법, codebook 등을 사용하여 continuous한 data를 discrete하게 representation 추출이 가능한 기법을 제안한 논문이다. 본 논문에서는 clustering 기법으로 해당 벡터를 분류하였지만, 이 논문 외에도 Gumbel-Softmax [2] 등을 사용하여 더 higher 한 dimension의 codebook을 사용할 수 있음을 밝힌다. 

 

Overview

- 연속적 (continuous) 데이터 특성에서 이산 (discrete)으로 학습

- auto-encoder 혹은 VAE의 bottleneck 부분인 latent space에서 뽑힌 latent vector들을 codebook 형태로 embedding 한 후, 제한된 수의 코드북 vector를 이용하여 data를 reconstruction

 

Proposed method

 

VQ-VAE model architecture

Learning from Continuous to Discrete

- 모델은 입력 $x$로부터 받아 인코더를 통해 출력 $z_e(x)$를 생성함

- 이 때, discrete latent variable $z$는 shared embedding space인 $e$로부터 가장 가까운 neighborhood와의 distance 계산에 의해 결정됨. 즉 가장 가까운 vector로 결정

- 여기에서 $e$인 embedding space를 codebook으로 불리우며, $e\in{R^{K*D}}$이며, 여기에서 $K$는 discrete latent space의 size가 됨 (즉, $K$-way categorical)

- 그림에서 $D$는 각각의 latent embedding vector인 $e_i$의 차원 수

- 종합적으로, $K$개의 embedding vector가 존재하며, 이를 수식으로 나타내면 $e_i\in{R^D}, i\in{1,2,...,K}$가 됨

 

Figure from Dongseong Hwang

해당 내용을 풀어서 나타내면 위의 그림 처럼 될 수 있음

- $K$는 one-hot vector의 개수가 되며, $d$는 one-hot vector의 dimension이 됨

1) (e.g., 이미지) 이미지로부터 CNN을 통해 풀링되어 reshape되어 32x32가 64개가 discrete하게 됨

2) 위로부터 각 각에 인덱스가 1개씩 뽑히고, 이게 one-hot vector가 되기 위해 K-means clustering에 의해 distance 계산

3) 가장 가까운 녀석을 찾은 뒤

4) dictionary에 해당 $e_1,...,e_K$로 insertion

5) 원래 이미지로 복원하기 위해 다시 reshape 이후

6) 1번과의 reconstruction loss 계산

 

- 즉, 코드북은 dimension이 512이고, 총 64개의 one-hot vector가 있음 

- 이것은 latent vector랑 가장 가까운 녀석이 무엇인지 뽑음 (여기에서 online k-mean을 쓰고, Euclidean distance로 measuring하여 뽑음)

- 이 식으로부터 디코더가 사진을 다시 복원하는데, 즉 가장 가까운 녀석이 뽑혔기 때문에 encoder와 decoder가 비슷해 짐

 

Loss

VQ-VAE loss

 

- 모델이 잘 학습되면, $z_e(x)$랑 $z_q(x)$가 거의 비슷해짐

- loss가 타고 오면, codebook은 학습 시킬 수 있고, argmin으로 들어오는 것은 gradient가 못 흐름

- 그러므로 gradient를 복사하며, 이것이 encoder로 끌고 들어감 (stop gradient --> sg)

 

1) 전체적인 로스
- X=이미지, $z_q(x)$가 latent space, 전체 decoder (recon)

 

2) Codebook
- Stop gradient이며, $e$가 코드북

- Encoder로부터 뽑혀 나온 녀석에 stop gradient 걸고 codebook 업데이트

- 즉, encoder에서 만들어진 녀석과 비슷해지도록 함 (codebook --> encoder)

 

3) Commitment

- Encoder를 codebook 처럼 학습시킴 (encoder --> codebook)

 

 

[1] van den Oord, Aäron, Oriol Vinyals, and Koray Kavukcuoglu. "Neural Discrete Representation Learning." NIPS. 2017.

728x90

'Paper Review > Unsupervised, Self & Semi-supervised' 카테고리의 다른 글

wav2vec 2.0 리뷰  (0) 2021.04.12
vq-wav2vec 리뷰  (2) 2021.04.11
Gumbel-Softmax 리뷰  (4) 2021.04.11
wav2vec 리뷰  (0) 2021.04.11
Contrastive Predictive Coding (CPC) 리뷰  (1) 2021.04.11
728x90

본 논문의 제목은 wav2vec: Unsupervised Pre-Training for Speech Recognition [1] 이며, CPC 기법을 사용하여 unsupervised로 representation learning을 제안한 논문이다.

 

Overview

Raw audio representation을 unsupervised로 학습하여 음성 인식을 위한 사전 교육을 제안함
- 다량의 unlabeled 오디오 데이터에 대해 학습되며, 결과 representation 은 AM 학습을 개선하는데 사용
- 이 모델은 simple multi-layer CNN으로 구성되어 있으며, Negative contrastive loss 기반의 이진 분류 task를 통해 사전학습 됨

- Contrastive loss 사용

 

Proposed method

 

- 오디오 신호가 입력으로 주어지면 모델을 최적화하여 주어진 신호 context에서 향후 샘플 예측
- CPC처럼, raw waveform 샘플 $𝑥$를 feature representation $𝑧$로 인코딩함

- 이후 암시적으로 밀도 비율 $\frac{p(z_{i+k}|z_i,...,z_{i-r})}{p(z_{i+k})}$를 모델링하여 데이터 분포 $p(x)$를 정확하게 모델링 함

Encoder

1) Encoder는 raw waveform을 latent space에 embedding 함

Encoder part

 

 

- Raw audio sample $x_i\in X$가 주어지면, 5-layer CNN으로 parameterized된 encoder 네트워크 $f:X$↦ $Z$ 를 적용함

- 커널 크기 [10, 8, 4, 4, 4]와 strides [5,4,2,2,2]로 적용

 

2) Encoder의 출력은 16kHz 오디오의 약 30ms를 인코딩
- 이로 인해 Feature representation $𝑧_𝑖∈𝑍$임
- CNN-encoder를 통과한 striding 결과는 10ms마다 representation $𝑧_𝑖$로 됨
- Causal convolution with 512개 채널, group normalization [2], ReLU

3) 2개의 추가 linear transformation 사용 (Large model)

 

4) Group normalization
- Single normalization group을 사용하는 group normalization와 동일한 각 샘플에 대해 특성 및 시간 차원에서 모두 정규화 함
- 입력의 스케일링과 오프셋에 변하지 않는 정규화 체계 사용

 

Context network

- Context network $g:Z$↦$C$encoder의 출력에 적용

Context network part

- 다중 latent representation $z_i,...,z_{i_v}$를 receptive field 크기 $v$에 대한 single contextualized 된 tensor $c_i=g(z_i,...,z_{i_v})$ 로 변환함

- Kernel size 3, stride19개의 CNN layer로 구성

- 총 수용 필드는 약 210ms

- Causal convolution with 512개 채널, group normalization, ReLU 로 구성

 

Large model
- Kernel size가 증가하는 12개의 계층(2,3,…,13)으로 구성된 large context network도 실험
- 이럴 경우 aggregator에 skip-connections 도입
- 마지막 context network 계층의 총 수용 필드는 약 810ms

 

Objective, Loss

1) Objective

- 각 단계에 대한 Contrastive loss를 최소화하여 proposal 분포 $p_n$ 에서 추출한 샘플 $\hat{z}$ 으로부터 향후  $k=1,...,K$ 단계의 샘플 $z_{i+k}$ 를 구별하도록 모델을 훈련함

 

$\mathcal{L}_k$ = $-\Sigma_i($log$\sigma(z_{i+k}^Th_k(c_i)))+\lambda\large{E}_{\hat{z}~p_n}[$log$\sigma(-\hat{z}^Th_k(c_i))]$...(1)

 

- Sigmoid $\sigma$$x$ = $\frac{1}{1+exp(-x)}$

- $\sigma(z_{i+k}^Th_k(c_i))$는 $z_{i+k}$가 실제 표본일 확률

- $c_i$에 적용되는 각 step $k$에 대해 단계별 affine transformation인 $h_k(c_i)$ = $W_kc_i+b_k$를 적용

 

2) Loss

- $\mathcal{L}$=$\Sigma_{k=1}^K\mathcal{L}_k$를 최적화하여, 다른 단계 step에 대해 식 (1)을 합산

- 각 오디오 시퀀스에서 추출된 것을 uniform 하게 선택하여, 10개의 Negative sample을 샘플링 후 예상치 추정

- 즉, proposal 분포인 $p_n(z)=\frac{1}{T}$가 됨 ($T$는 오디오 시퀀스 길이, $\lambda$를 Negative로 설정)

- 기법은 CPC와 같음

 

3) Fine-tuning

- 훈련 후, AM에 log-mel spectrogram 대신 context 네트워크로부터 생성된 representation인 $c_i$를 사용

 

Experiments

1) Phoneme recognition on TIMIT
- WSJ92 81시간, LibriSpeech clean 80시간, LibriSpeech 960시간 모두 pre-training (시간 별 비교)

 

2) 기준 AM
- Log-mel spectrogram 25ms window, 10ms overlap

- Wav2letter ++ toolkit [3] --> AM 교육 및 평가를 위해 사용
- TIMIT 평가를 위해, character-based wav2letter++ setup
- 7 consecutive blocks of CNN (kernel size 5 with 1,000 channels)
- PReLU 비선형 및 0.7 dropout rate 사용
- 최종 representation: 39-dimensional phoneme probability, 표준 영어 알파벳, 아포스트로피 및 마침표, 두 개의 반복문자 (ann -> an1) 및 단어 경계로 사용되는 침묵 토큰등을 포함하여 31개의 자소에 대한 확률 예측

 

3) Metric
- WER (world error rate), LER (letter error rate)

 

4) 오디오 시퀀스 처리
- 오디오 시퀀스는 길이별로 그룹화 되며, 각 프레임은 최대 150k frame 크기 (150,000 == 10초 이내)
- 최대 150k 프레임 크기 또는 배치에서 가장 짧은 시퀀스의 길이 중 더 작은 길이로 cut
- 오디오 시퀀스의 시작 또는 끝에서 음성 신호를 제거함
- 매 epoch 마다 다시 샘플링함
- 즉, 증강 기법 중 하나로 볼 수 있으며, 훈련 데이터의 평균 25%를 제거함

 

5) Pre-training 학습 관련

- SGD with learning rate 5.6 + gradient clipping

- 1,000 epochs with batch size of 64 audio sequences

- V100 GPU x 8EA

- 4-gram LM로 체크 포인트 평가 후 조기 종료 사용

 

6) Downstream task (TIMIT)

- Train on si284, validate on nov93dev and test on nov92

- All training samples time: around three hours

- Learning rate 0.12, momentum 0.9

- Training 1,000 epochs with batch size of 16 audio sequences

 

7) Decoding 기법

- AM 방출을 디코딩하기 위해, WSJ LM 전용 데이터에 대해서만 학습 된 별도의 LM + lexicon 사용
- 4-gram KenLM LM, word-based CNN LM, character-based CNN LM 사용
- 아래의 식을 최대화하기 위해 Beam search decoder를 사용하여 context 네트워크 𝑐 또는 log-mel filterbank의 출력에서 단어 시퀀스 𝑦를 디코딩 함

 

$max_yf_{AM}(y|c) + \alpha + $log$p_{LM}(y) + \beta|y| - \gamma\Sigma_{i=1}^T[\pi_i='|'] $


- $f_{AM}(y|C)$는 AM, $p_{LM}$은 LM, $\pi=\pi_1,...,\pi_L$은 $y$의 문자

- Hyperparameter인 $\alpha, \beta, \gamma$는 AM, 단어 패널티 및 silence 패널티에 대한 가중치 
- WSJ를 디코딩하기 위해 random search를 사용하여 hyperparameter들을 조정하고, optimized 된 이들의 설정으로 AM 방출
- 단어 기반 LM에 대해 beam size 4,000 및 beam score threshold 250을 사용
- 문자 기반 LM에 대해 beam size 1,500 및 beam score threshold 40을 사용

 

Results

1) Pre-training for the WSJ benchmark

wav2vec results, comparison with the other papers

- WSJ의 오디오 데이터 (레이블 X), clean LibriSpeech (80h), 960 LibriSpeech을 이용한 pre-train
- Log-mel filterbanks 대신 context 네트워크 출력 $c$를 AM에 제공
- 데이터를 더 많이 사용하여 pre-train할 수록 WSJ 벤치마크에서 더 나은 정확도로 이어짐
- Pre-train된 representation은 log-mel filterbanks에 대해 훈련된 character-based 기준에 비해 향상됨
- 당시, SOTA였던 character-based의 Deep Speech2 보다 향상: [4](그림 내 [35])와 비교할 때, 음소 기반 모델만큼 성능이 뛰어남

 

2) Pre-training for the WSJ benchmark
Pre-trained representation의 영향

effective of amount of dataset that used in pre-training

- 약 8시간의 label이 있는 데이터만 사용하여 scratch-training할 경우 nov92에서 36%의 WER 획득
- WSJ의 오디오 데이터에 대한 pre-training은 훨씬 더 큰 LibriSpeech에 비해 성능이 나쁨
- 즉, 더 많은 데이터에 대한 사전 훈련이 좋은 성능을 내는 것을 확인
- 데이터가 증가될수록 성능이 좋아지지만, unlabeled의 LibriSpeech로 pre-training되어 fine-tuning한 모델보다 좋지 못함

3) Pre-training for TIMIT

Results

results of TIMIT downstream task

- TIMIT task에서는 dropout rate가 높은 7-layer wav2letter ++ 모델 사용

- 제안한 unlabeled data로 부터 representation 학습하여 fine-tuning한 모델이 PER에서 가장 좋은 성능을 얻었음

 

Ablation

1) LibriSpeech80시간 pre-training에 대한 분석

effective of number of negative samples

- Table 3Negative 샘플의 수가 늘어날 수록 도움이 되지만, 최대 10개가 한계

- 훈련 시간이 증가될수록 성능이 정체됨

- Negative 샘플의 수가 증가함에 따라 Positive 샘플의 훈련 신호가 감소하기 때문임

 

2) 오디오 시퀀스 cutting을 통한 데이터 증강 효과 분석

analysis of crop sizes

- 배치를 생성할 때 사전 정의된 최대 길이로 시퀀스 cutting
- 150k frame의 자르기 크기가 최상의 성능임을 확인
- 최대 길이를 제한하지 않으면 평균 시퀀스 길이가 약 207k이 되어 정확도가 가장 낮음

 

3) 미래 예측 step
- $K$=12이상일 경우 성능 향상 X
- 훈련 시간만 늘어나고, 성능 개선 없음

 

 

Summary & Major take away

- Fully CNN을 사용하여 ASR에 unsupervised pre-training을 처음 적용하였음
- 이 방식은 fine-tuning시 labeled된 데이터를 적게 사용함에도 불구하고 당시 SOTA였던 character-based ASR 모델인 Deep Speech 2를 능가하였음
- Pre-training을 위한 데이터가 많을수록 성능이 향상 됨

 

- 성능 차이가 CPC에 비해 너무 크게 나기 때문에, 조금 못 미더운 부분이 있다고 개인적으로 생각함

 

 

[1] Schneider, Steffen, et al. "wav2vec: Unsupervised Pre-Training for Speech Recognition." Proc. Interspeech 2019 (2019): 3465-3469.

[2] Wu, Yuxin, and Kaiming He. "Group normalization." Proceedings of the European conference on computer vision (ECCV). 2018.

[3] Collobert, Ronan, Christian Puhrsch, and Gabriel Synnaeve. "Wav2letter: an end-to-end convnet-based speech recognition system." arXiv preprint arXiv:1609.03193 (2016).

[4] Hadian, Hossein, et al. "End-to-end Speech Recognition Using Lattice-free MMI." Interspeech. 2018.

 

728x90

'Paper Review > Unsupervised, Self & Semi-supervised' 카테고리의 다른 글

wav2vec 2.0 리뷰  (0) 2021.04.12
vq-wav2vec 리뷰  (2) 2021.04.11
Gumbel-Softmax 리뷰  (4) 2021.04.11
VQ-VAE 리뷰  (0) 2021.04.11
Contrastive Predictive Coding (CPC) 리뷰  (1) 2021.04.11
728x90

본 논문의 제목은 Representation learning with contrastive predictive coding [1] 이며, CPC라는 unsupervised learning 기법을 제안하였다. 

 

Overview

- 이 논문은 high-dimensional 데이터에서 유용한 representation을 추출하기위한 unsupervised learning 접근법을 제안하였음
- 강력한 auto-regressive 모델을 사용하여 latent space에서 추출된 $z$를 이용하여 미래를 예측하는 representation 학습법 제안
- 미래 샘플을 예측할 때 가장 유용한 정보를 얻기 위해 latent spece를 유도하는 확률적 contrastive loss 사용

Mutual information이란?

Mutual information (figure from Oord)
Mutual information - Contrastive (figure from Oord)

 

Mutual information - Contrastive loss (figure from Oord)

 

Background

- 지도 학습 기반의 end-to-end 네지도 학습 기반의 end-to-end 네트워크는 AI를 발전시키는 것에 성공하였지만, 하지만 데이터 효율성, 견고성 또는 일반화와 같은 많은 과제가 남아있음

 

- 이를 위해 High-level representation 학습이 가능한 Unsupervised 기법이 필요하지만, raw level observation에서 high-level representation 모델링이 어렵고, 이상적인 표현이 무엇인지 명확하지 않으며, 특정 데이터 양식에 대한 추가 감독이나 전문화없이 이러한 표현을 배울 수 있는지 명확하지 않음

 

- Unsupervised 학습을 위한 가장 일반적인 전략 중 하나는 미래를 예측하는 것이며, predict coding 아이디어는 데이터 압축을 위한 신호 처리에서 사용된 오래된 기술 중 하나임

- 또한, 미래나 contextual 정보를 예측하는 unsupervised learning 기법을 제안하고자 함

- 실제로 이러한 아이디어를 사용하여 이웃 단어를 예측하여 단어 표현을 학습한 사례가 있음 (Word2Vec) [2]

 

Proposed method

1) Conditional 예측 모델링을 쉽게 하기 위해 latent embedding space로 high-dimensional data를 압축
- 이 latent space에서 강력한 autoregressive model을 사용하여 미래에 많은 steps을 예측함

- 즉, 고차원 데이터 간에 shared information을 인코딩한 mutual information을 얻기 위해 representation을 학습함

 

2) Noise-Contrastive Estimation[3]에 의존한 loss 함수

- 자연어 모델에서 word embedding을 학습하는데 사용된 것과 유사한 방식으로, loss 함수에 대해 Noise-Contrastive Estimation에 의존하여 전체 모델이 end-to-end 학습 가능하도록 제안

 

3) 결과 모델인 Contrastive Predictive Coding (CPC)를 다양한 task에 적용
- 이미지, 음성, 자연어 및 강화 학습

 

Noise-Contrastive Estimation

1. NCE

1) CBOWSkip-Gram 모델에서 사용하는 비용 계산 알고리즘

- 전체 데이터셋에 대해 SoftMax 함수를 적용하는 것이 아니라 샘플링으로 추출한 일부에 대해서만 적용하는 방법

- $k$개의 대비되는(contrastive) 단어들을 noise distribution에서 구해서 (몬테카를로) 평균을 구하는 것이 기본 알고리즘

Hierarchical SoftMaxNegative Sampling 등 여러 가지 방법 존재

- 일반적으로 단어 개수가 많을 때 사용하고, NCE를 사용하면 문제를 (실제 분포에서 얻은 샘플=Positive)(인공적으로 만든 잡음 분포에서 얻은 샘플=Negative)을 구별하는 이진 분류 문제로 바꿀 수 있게 됨

 

2) Negative Sampling에서 사용하는 목적 함수는 결과값이 최대화될 수 있는 형태로 구성

- 현재(목표, target, positive) 단어에는 높은 확률을 부여하고, 나머지 단어(negative, noise)에는 낮은 확률을 부여해서 가장 큰 값을 만들 수 있는 공식 사용

- 특히, 계산 비용에서 전체 단어를 계산하는 것이 아니라 선택한 k개의 noise 단어들만 계산하면 되기 때문에 효율적

 

2. Hierarchical SoftMax

1) CBOWSkip-Gram 모델은 내부적으로 SoftMax 알고리즘을 사용해서 계산 진행함

- 모든 단어에 대해 계산 및 normalization을 진행하는데, 많은 시간이 걸리는 단점 존재

- 이를 해결하기 위한 Hierarchical SoftMaxNegative Sampling 알고리즘이 있음

 

2) Hierarchical SoftMax

- Hierarchical SoftMax 알고리즘은 계산량이 많은 SoftMax function을 빠르게 계산가능한 multinomial distribution 함수로 대체함

- Word2Vec 논문에서는 사용 빈도가 높은 단어에 대해 짧은 경로를 부여함

 

3. Negative Sampling

1) SoftMax 알고리즘을 몇 개의 샘플에 대해서만 적용하는 알고리즘

- 전체 데이터로부터 일부만 뽑아서 SoftMax 계산을 수행하고 normalization을 진행함

- 이때 현재(목표) 단어는 반드시 계산을 수행해야 하기 때문에 Positive Sample이라 부름

- 나머지 단어를 Negative Sample이라 부름

 

2) Negative Sampling에서는 나머지 단어에 해당하는 Negative Sample 추출 방법이 핵심

- 일반적으로 샘플링은 ‘Noise Distribution’을 정의하고 그 분포를 이용하여 일정 개수를 추출함

 

즉 정리해보면,

CPC = 미래 관찰 예측(예측 코딩) + 확률적 대비 손실의 결합 으로 볼 수 있음

이를 통해, 

- 오랜 시간 동안 data observation의 mutual information을 최대화 할 수 있음
- 여러 시간 간격으로 떨어져 있는 데이터 포인트들에서 shared information을 인코딩하여 representation 학습
- 이러한 feature를 ‘Slow Features’라고 부르며, 이는 시간이 빠르게 지나도 변하지 않는 feature를 의미함
- E.g., 오디오 신호에서 말하는 사람, 비디오 내의 흐름 등

 

Model architecture

1) 비선형 인코더 $g_{enc}$

- 해당 time step $t$ 기준으로 진행되며, 이후의 값들을 사용하여 예측하지 않음

- 관측치 $x_t$ input sequence를 $z_t=g_{enc}(x_t)$ 로 매핑함

- 이를 통해, 잠재적으로 더 lowertemporal resolution으로 변경됨

 

CPC Encoder

2) Autoregressive model $g_{ar}$

- Latent space의 현재 시간 $t$ 를 포함한 이전의 모든 값들인 $z\le{_t}$ 에 대해 요약

- 이후 Context latent representation인 $c_t=g_{ar}(z\le{_t})$ 를 생성

CPC context nextwork

 

 

- 이때, 생성 모델 $p_k(x_{t+k}|c_t)$사용하여 미래 관측치인 $x_{t+k}$ 를 직접 예측하지 않음

- 대신 다음과 같이 $x_{t+k}$ 와 $c_t$ 사이의 mutual information을 보존하는 식(1)을 활용하여 density 비율을 모델링 함

 

$I(x;c) = \Sigma_{x,c}p(x,c)$log$\frac{p(x_{t+k}|c_t)}{p(x_{t+k})}$…(1)

 

$f_k(x_{t_k},c_t)$$\propto$$\frac{p(x_{t+k}|c_t)}{p(x_{t+k})}$…(2)

 

- 식(2)인 밀도비율 $f$ 는 정규화 되지 않을 수 있으므로, log-bilinear model을 적용함

 

$f_k(x_{t+k},c_t)=$exp$(z_{t+k}^TW_kc_t)$...(3)

 

- 해당 논문에서, linear transformation인 $W_kc_t$ 는 모든 단계 $k$에 대해 다른 $W_k$를 갖는 예측에 사용됨

- 혹은 비선형 네트워크 또는 반복 신경망으로 사용 가능

 

- Density ratio $f(x_{t+k,c_t})$ 와 인코더로 $z_{t_k}$를 추론함으로써 모델이 고차원 분포인 $x_{t_k}$ 를 모델링 하지 않도록 함

- 이 때, $p(x)$ 혹은 $p(x|c)$ 를 직접 평가할 수는 없지만, 위의 분포를 Noise-Contrastive Estimation 혹은 Importance Sampling 방법으로 평가함

- 목표인 Positive 값과 무작위로 샘플링 된 Negative 값의 비교를 기반으로 평가함

- 이를 위해 InfoNCE loss 사용!

 

3) Downstream task

 

$z_t$ 및 $c_t$ 중 하나를 downstream 작업에 대한 representation 으로 사용

- Autoregressive model 출력인 $c_t$는 과거의 extra context가 유용할 경우 사용 (음성 인식, phoneme, speech 등)

- Extra context가 필요하지 않은 다른 경우, $z_t$ 를 사용하는 것이 유용 (비전, 이미지 등)

 

논문에서는 단순화를 위해, 

- Encoder: Strided CNN with ResNet blocks

- Decoder: GRU

을 사용하였고, Masking CNN, Self-attention 등 사용하는 것을 권장

 

 

4) InfoNCE loss

- Encoder와 Autoregressive model 모두 NCE 기반의 Loss로 최적화 되며, 이를 논문에서 InfoNCE라 부름

 

- $p(x_{t+k}|c_t)$ 의 Positive sample 하나와 $proposal$ 분포 $p(x_{t+k})$의 $N-1$ 개의 Negative 샘플을 포함하는 N개의 random sample 집합 $X={x_1,x_2,...,x_N}$이 주어지면, 아래의 식을 최적화함

 

$\mathcal{L}_N$ = $\large{E}_X[$log$\frac{f_k{x_{t+k},c_t}}{\Sigma_{x_j\in{X}f_k{x_j,c_t}}}]$...(4)

 

- 위의 식 loss를 최적화하면 $f_k(x_{t+k},c_t)$ 가 식(2)의 density 비율을 추정함

- 식(4)의 loss는 Positive 샘플을 바르게 분류하는 categorical cross-entropy이며, $\frac{f_k}{\Sigma_Xf_k}$는 모델의 예측임

 

- 위 loss에 대한 최적의 확률을 $p(d=i|X, c_t)$라 할때, $[d=i]$는 샘플 $x_i$의 Positive toavmfdl ehla

- 제안된 분포 $p(x_{t+k})$가 아닌 조건부 분포 $p(x_{t+k}|c_k)$에서 샘플 $x_i$를 추출할 확률은 다음과 같음

 

$p(d=i|X, c_t)$ = $\frac{p(x_i|c_t)\prod_{l\neq{j}p(x_l)}}{\Sigma_{j=1}^Np(x_j|c_t)\prod_{l\neq{j}p(x_l)}}$...(5)

 

 

= $\frac{\frac{p(x_i|c_t)}{p_xi}}{\Sigma_{j=1}^N\frac{p(x_j|c_t)}{p(x_j)}}$...(6)

 

- 식 (4)에서 $f(x_{t+k},c_t)$에 대한 최적값은 $\frac{p(x_{t+k}|c_t)}{p(x_{t+k})}$ 에 비례하며, 이는 Negative 샘플 수인 $N-1$과 무관함

 

Experiments (여기에선 Phoneme recognition에 관해서만 다루겠음)

Using LibriSpeech-100hour train
- Kaldi toolkit 및 LibriSpeech1에서 사전 훈련된 모델을 사용하여 강제 정렬된 시퀀스 사용
- 251명의 서로 다른 화자의 speech 포함

 

Encoder
- 입력 음성 16kHz PCM 그대로 입력 받음
- Strides [5,4,2,2,2], filter-sizes [10,8,4,4,4], 512 차원의 ReLU사용
- Downsampling factor가 160이므로, 음성의 10ms마다 특성 벡터가 사용됨

 

Autoregressive
- 256차원의 GRU RNN 사용
- 모든 시간 단계에서 GRU의 출력은 contrastive loss를 사용하여 12 개의 시간 단계를 예측하는 컨텍스트 𝑐로 사용됨
- 음성 길이는 20480으로 fix

 

Hyperparameters
- Adam optimizer, 2e-4 lr
- Contrastive loss의 negative sample을 추출하는 Minibatch size 8로 GPU 8개 학습 
- 수렴 될 때까지 학습, 대략 300,000 steps 학습

 

Results

1) Predict latents in the future (Figure 3)

미래 예측 step에 따른 정확도

- Time step으로 미래의 latent를 예측하는 모델의 정확도
- Positive sample에 대한 logit이 Negative sample 보다 더 높은 평균 횟수를 가짐
- 거리가 멀어질수록 waveform 예측 정확도가 떨어짐

 

2) Phoneme classification (Table 1)

Phoneme recognition 결과

- 모델 수렴 후 전체 데이터 세트에 대한 GRU (256차원), 즉 𝑐_𝑡의 출력을 추출
- Multi-class linear logistic regression classifier 훈련 (downstream)
- MFCC, CPC, Supervised 모두 같은 네트워크 구조
- GRU 대신 single hidden layer 사용하였을 경우 72.5%

 

3) Two ablation studies of CPC (Table 2)

미래 예측 step에 따른 정확도

- Time step의 거리가 멀어질수록 waveform 예측 정확도가 낮지만, 예측하는 미래 step 수가 멀어질수록 음소 분류 정확도가 높아짐
- 모든 샘플이 동일한 스피커로부터 얻어 졌을 경우, 음소 분류 정확도가 높음을 알 수 있음

 

 

4) Speaker identification

- 동일한 representation의 linear classifier를 사용하여 251명의 speaker identity 수행
- 단순한 linear classifier로 얻은 우수한 정확도를 통해, CPC는 speaker identity와 음성 콘텐츠를 모두 캡처함을 주장

 

t-SNE 비교

Speaker identification에 대한 t-SNE 분포

- GRU의 maximum context 크기는 성능에 큰 영향을 미쳤음
- 더 긴 세그먼트는 더 나은 결과를 제공할 수 있음
- 20480개의 wav length (약 1.3초)에 대한 결과임

 

 

Summary

Contrastive Predictive Coding

 

1) 텍스트, 음성, 비디오, 이미지와 같이 정렬된 순서로 표현할 수 있는 모든 형태의 데이터 적용 가능
2) 여러 시간 간격으로 떨어져 있는 데이터 포인트들 $x_{t:t+k}$ 에서 공유되는 정보를 인코딩
- Representation 학습을 통해 Slow features를 얻고 이를 이용하여 미래의 데이터를 예측함
- 현재의 target을 Positive로 두고 noise 등이 포함 된 Negative들을 구별할 수 있는 InfoNCE loss를 사용하여 미래의 데이터를 예측하도록 함
3) 단일 테스크에서 여러 $k_s$를 사용하여 다양한 시간 척도에서 진화하는 feature들을 캡처함
4) $x_t$에 대한 representation을 계산할 때, encoder 네트워크 위에서 실행되는 Autoregressive Network를 사용하여 과거 context 정보를 encoding 할 수 있음 (미래의 것은 사용 X)

 

 

Conclusion & Major take away

- 최근 이미지 분야의 Self-supervised 에서 널리 사용되는 Contrastive learning에 대하여 분석해보았음

- 음성에 대해서는 미래 예측 step $k$ 에 대해서 사용하고, 이미지에 대해서는 (sequential 하지 않다 보니) 현재의 sample 및 augmented 된 것들이 아닌 다른 class에 대해 negative sample로 간주하여 학습하는 기법임

- 앞으로 리뷰할 논문 및 최근 트렌드가 해당 내용이므로, 반드시 알고 가야 할 기법이었음

- 더 자세한 내용은 코드 리뷰할 필요가 있음

 

My appendix

 

2) Self-supervised learning using contrastive learning (InfoNCE loss), [4]

[4] 논문은 Contrastive Learning에 대해 잘 리뷰한 논문이고, 해당 논문을 참조하면 더 많은 정보를 얻을 수 있을 것 같음

Contrastive learning paradigm [4]
Network flow of contrastive [4]
Video processing with contrastive learning [4]

 

Different architecture pipelines for Contrastive Learning [4]
Pre-training, fine-tuning of Contrastive learning [4]

 

Explanation of InfoNCE loss [4]

 

 

 

[1] Oord, Aaron van den, Yazhe Li, and Oriol Vinyals. "Representation learning with contrastive predictive coding." arXiv preprint arXiv:1807.03748 (2018).

[2] Mikolov, Tomas, et al. "Efficient estimation of word representations in vector space." arXiv preprint arXiv:1301.3781 (2013).

[3] Gutmann, Michael, and Aapo Hyvärinen. "Noise-contrastive estimation: A new estimation principle for unnormalized statistical models." Proceedings of the Thirteenth International Conference on Artificial Intelligence and Statistics. JMLR Workshop and Conference Proceedings, 2010.

[4] Jaiswal, Ashish, et al. "A survey on contrastive self-supervised learning." Technologies 9.1 (2021): 2.

728x90

'Paper Review > Unsupervised, Self & Semi-supervised' 카테고리의 다른 글

wav2vec 2.0 리뷰  (0) 2021.04.12
vq-wav2vec 리뷰  (2) 2021.04.11
Gumbel-Softmax 리뷰  (4) 2021.04.11
VQ-VAE 리뷰  (0) 2021.04.11
wav2vec 리뷰  (0) 2021.04.11

+ Recent posts