티스토리 뷰

반응형

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으로 수행됨
      1. 먼저 SSL은 massive unlabeled data를 사용하여 model을 pre-training 함
        - BUT, SSL-pre-trained model은 ASR task를 directly perform 할 수 없으므로 labeled dataset에 대한 fine-tuning이 필요함
      2. Whisper와 같은 weak-supervision training은 large speech-transcription data를 활용하여 training 됨
        - 결과적으로 SSL method와 달리 ASR task를 directly perform 할 수 있음
    • 한편으로 code-switching (CS)은 speech signal 내에서 language를 switching 하는 것을 의미함
      - BUT, paired data의 부족으로 인해 기존 ASR model은 CS task에 한계가 있음

-> 그래서 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 함

< 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 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

3. Method

  • CS-Whisper는 Encoding Refining과 Language-Aware Decoding을 활용하여 구성됨
    • Encoder refiner는 encoder의 intra-sentence switching capability를 향상함
    • Language-aware decoding은 decoder가 두 language를 distinguish 하는데 도움을 줌 

Encoder Refiner, Language-Aware Adaptation

- Encoding Refining

  • Adaptation을 위해 각 encoder layer의 self-attention 다음에 adapter가 add 되고, MLP는 language switching을 학습함
    • 여기서 논문은 Whisper encoder의 encoding capability를 향상하기 위해 Encoder Refiner를 도입함
      1. 구조적으로는 LSTM layer, CTC로 구성됨
      2. 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

- 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 함
      1. 해당 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
      2. $\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
    • 그러면 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

4. Experiments

- Settings

  • Dataset : SEAME
  • Comparisons : Whisper, CTC-LID, Attention-Guided Whisper

- Results

  • 전체적으로 CS-Whisper의 성능이 가장 뛰어남

Model 성능 비교

  • Encoding refining, Language-aware decoding을 모두 사용하는 경우 성능 향상이 가능함

Encoding Refining, Language-Aware Decoding 효과

 

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Total
Today
Yesterday