티스토리 뷰
Paper/ASR
[Paper 리뷰] Adapting Whisper for Code-Switching through Encoding Refining and Language-Aware Decoding
feVeRin 2025. 4. 28. 17:51반응형
Adapting Whisper for Code-Switching through Encoding Refining and Language-Aware Decoding
- Code-Switching Automatic Speech Recognition은 여전히 seamless language switch 측면에서 한계가 있음
- CS-Whisper
- Whisper를 기반으로 encoder의 intra-sentence switching을 향상하기 위해 Encoder Refiner를 도입
- 각 decoder layer에서 language-specific decoding information을 얻기 위해 서로 다른 language prompt를 가진 Language-Aware Adapter를 활용
- 논문 (ICASSP 2025) : Paper Link
1. Introduction
- Pre-trained model을 통해 Automatic Speech Recognition (ASR) task를 보다 효과적으로 활용할 수 있음
- ASR pre-training은 크게 Self-Supervised Learning (SSL)이나 Weak-Supervision Training으로 수행됨
- 먼저 SSL은 massive unlabeled data를 사용하여 model을 pre-training 함
- BUT, SSL-pre-trained model은 ASR task를 directly perform 할 수 없으므로 labeled dataset에 대한 fine-tuning이 필요함 - Whisper와 같은 weak-supervision training은 large speech-transcription data를 활용하여 training 됨
- 결과적으로 SSL method와 달리 ASR task를 directly perform 할 수 있음
- 먼저 SSL은 massive unlabeled data를 사용하여 model을 pre-training 함
- 한편으로 code-switching (CS)은 speech signal 내에서 language를 switching 하는 것을 의미함
- BUT, paired data의 부족으로 인해 기존 ASR model은 CS task에 한계가 있음
- ASR pre-training은 크게 Self-Supervised Learning (SSL)이나 Weak-Supervision Training으로 수행됨
-> 그래서 encoder, decoder adaptation을 통해 CS-ASR 성능을 향상한 CS-Whisper를 제안
- CS-Whisper
- CS capability를 향상하기 위해 stronger temporal modeling structure를 가지는 Encoding Refiner를 도입
- Additional CTC layer를 통해 encoder refiner는 better language-switching encoding을 학습하도록 guide 됨 - 추가적으로 Language-Aware decoding을 적용하여 decoder를 개선
- 서로 다른 language prompt를 가지는 두 set의 adapter를 각 decoder layer에 insert 하여 language-specific decoding information을 capture 함
- CS capability를 향상하기 위해 stronger temporal modeling structure를 가지는 Encoding Refiner를 도입
< Overall of CS-Whisper >
- Whisper를 기반으로 Encoding Refiner, Lagnuage-Aware Decoding을 적용한 CS-ASR model
- 결과적으로 기존보다 뛰어난 성능을 달성
2. Preliminary
- Adapter
- Adapter는 neural network module에 domain-specific layer를 추가하는 additive parameter-efficient fine-tuning method에 해당함
- Low-resource condition의 경우, adapter parameter만 adjusting 하여 full fine-tuning 수준의 성능을 얻을 수 있음
- 대표적으로 LoRA는 input보다 작은 hidden dimension을 가지는 fully-connected network를 활용하여 다음과 같이 adaptation process를 수행함:
(Eq. 1) $\mathbf{e}'=\mathbf{e}+\text{Adapter}(\mathbf{e})$
- $\mathbf{e}$ : input embedding, $\mathbf{e}'$ : adapted embedding
- Low-resource condition의 경우, adapter parameter만 adjusting 하여 full fine-tuning 수준의 성능을 얻을 수 있음
- Low-Resource Language Adaptation
- Large-scale pre-trained multilingual ASR model을 downstream task에 적용하기 위해서는 target-domain data에 대한 fine-tuning이 필요함
- BUT, large model을 fine-tuning 하는 경우 time-consuming, overfitting, catastrophic forgetting 문제가 발생할 수 있음
- 이때, adapter-based adaptation을 사용하면 catastophic forgetting을 방지하고 training time을 줄일 수 있음 - 따라서 adapter는 일반적으로 각 Transformer encoder, decoder layer의 attention, FFN 뒤에 추가됨:
(Eq. 2) $\mathbf{h}'=\text{SelfAtt}(\mathbf{h})+\text{Adapter}(\text{SelfAtt}(\mathbf{h}))$
$\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, \mathbf{h}''=\text{MLP}(\mathbf{h}')+\text{Adapter}(\text{MLP}(\mathbf{h}'))$
- $\mathbf{h}$ : last module의 input feature/embedding
- $\mathbf{h}',\mathbf{h}''$ : 각각 self-attention mechanism, MLP layer의 adapted embedding
- BUT, large model을 fine-tuning 하는 경우 time-consuming, overfitting, catastrophic forgetting 문제가 발생할 수 있음
3. Method
- CS-Whisper는 Encoding Refining과 Language-Aware Decoding을 활용하여 구성됨
- Encoder refiner는 encoder의 intra-sentence switching capability를 향상함
- Language-aware decoding은 decoder가 두 language를 distinguish 하는데 도움을 줌
- Encoding Refining
- Adaptation을 위해 각 encoder layer의 self-attention 다음에 adapter가 add 되고, MLP는 language switching을 학습함
- 여기서 논문은 Whisper encoder의 encoding capability를 향상하기 위해 Encoder Refiner를 도입함
- 구조적으로는 LSTM layer, CTC로 구성됨
- LSTM layer는 temporal modeling capability를 통해 encoder output을 refining 하여 encoded embedding을 capture 하는 데 사용되고, CTC는 encoder refiner의 language switching 학습을 지원함
- 그러면 Encoder Refiner의 refining process는:
(Eq. 3) $\mathbf{h}'_{enc}=\text{LSTM}(\mathbf{h}_{enc})$
- $\mathbf{h}_{enc}$ : encoder의 last hidden states output, $\mathbf{h}'_{enc}$ : refined encoding - Encoder Refiner의 training loss는:
(Eq. 4) $\mathcal{L}_{CTC}=\text{CTC}(\hat{\mathbf{y}},\mathbf{h}'_{enc})$
- $\hat{\mathbf{y}}$ : text token
- LSTM은 해당 CTC loss를 통해 supervise 됨 - Fine-tuning 시 overall training loss는:
(Eq. 5) $\mathcal{L}_{enc\text{-}ref}=\alpha*\mathcal{L}_{att}+(1-\alpha)*\mathcal{L}_{CTC}$
- $\mathcal{L}_{att}$ : attention-based decoder loss, $\mathcal{L}_{CTC}$ : CTC loss, $\alpha$ : hyperparameter
- 여기서 논문은 Whisper encoder의 encoding capability를 향상하기 위해 Encoder Refiner를 도입함
- Language-Aware Decoding
- Language-aware adapter는 decoder가 두 language를 잘 distinguish 하도록 각 decoder layer의 self-attention, MLP 다음에 insert 됨
- 먼저 shared self-attention process는 2개의 language-aware embedding을 처리함:
(Eq. 6) $\mathbf{h}_{dec\text{-}zh}=\text{Adapter}_{zh1}(\text{SelfAtt}(\mathbf{p}_{zh},\hat{\mathbf{y}}_{1:t-1}))$
$\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, \mathbf{h}_{dec\text{-}en}=\text{Adapter}_{en1}(\text{SelfAtt}(\mathbf{p}_{en},\hat{\mathbf{y}}_{1:t-1}))$
- $\mathbf{p}_{zh}, \mathbf{p}_{en}$ : language-specific prompt embedding - 다음으로 shared frozen cross-attention process는 2개의 language-aware embedding을 처리함:
(Eq. 7) $\mathbf{h}'_{dec\text{-}zh}=\text{CrossAtt}(\mathbf{h}_{dec\text{-}zh},\mathbf{h}'_{enc})$
$\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, \mathbf{h}'_{dec\text{-}en}=\text{CrossAtt}(\mathbf{h}_{dec\text{-}en},\mathbf{h}'_{enc})$
- $\mathbf{h}'_{enc}$ : encoder refiner output - 최종적으로 두 embedding은 서로 다른 adapter로 adapt 됨:
(Eq. 8) $\mathbf{h}''_{dec\text{-}zh}=\text{Adapter}_{zh2}(\text{MLP}(\mathbf{h}'_{dec\text{-}zh}))$
$\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, \mathbf{h}''_{dec\text{-}en}=\text{Adapter}_{en2}(\text{MLP}(\mathbf{h}'_{dec\text{-}en}))$
- 서로 다른 language prompt를 통해 guide 되는 language-specific adapter를 사용하면, decoder는 attention-based decoding 중에 해당 language에 focus 할 수 있음 - 추가적으로 논문은 decoder end에 lightweight fusion module을 add 함
- 해당 fusion module은 linear layer를 사용하여 두 language-specific embedding에 대한 weight를 estimate 함:
(Eq. 9) $\text{weights}'_{zh}=\text{Softmax}(\text{Linear}_{zh}(\mathbf{y}_{dec\text{-}zh}))$
$\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, \text{weights}'_{en}=\text{Softmax}(\text{Linear}_{en}(\mathbf{y}_{dec\text{-}en}))$
- $\mathbf{y}_{dec\text{-}zh}, \mathbf{y}_{dec\text{-}en}$ : last decoder layer에서 추출된 language-specific embedding - $\text{weights}'_{zh}, \text{weights}'_{en}$은 fusion을 위해 다음과 같이 estimate 됨:
(Eq. 10) $\mathbf{y}'_{mix}=\text{weights}'_{zh}*\mathbf{y}_{dec\text{-}zh}+\text{weights}'_{en}*\mathbf{y}_{dec\text{-}en}$
- $\mathbf{y}'_{mix}$ : decoder의 final fused output
- 해당 fusion module은 linear layer를 사용하여 두 language-specific embedding에 대한 weight를 estimate 함:
- 그러면 language-aware decoding의 training loss는:
(Eq. 11) $\mathcal{L}_{dec}=\mathcal{L}_{att}+\text{CE}(\mathbf{h}''_{dec\text{-}zh},\mathbf{p}_{zh})+ \text{CE}(\mathbf{h}''_{dec\text{-}en},\mathbf{p}_{en})$ - 결과적으로 encoding refining, language-aware decoding을 모두 사용한 training loss는:
(Eq. 12) $\mathcal{L}_{final}=\lambda*\mathcal{L}_{dec}+(1-\lambda)*\mathcal{L}_{CTC}$
- $\lambda$ : hyperparameter
- 먼저 shared self-attention process는 2개의 language-aware embedding을 처리함:
4. Experiments
- Settings
- Dataset : SEAME
- Comparisons : Whisper, CTC-LID, Attention-Guided Whisper
- Results
- 전체적으로 CS-Whisper의 성능이 가장 뛰어남
- Encoding refining, Language-aware decoding을 모두 사용하는 경우 성능 향상이 가능함
반응형
'Paper > ASR' 카테고리의 다른 글
댓글