논문리뷰

[논문리뷰] Hybrid Transformers for MSS (ICASSP 2023)

syveany 2026. 4. 27. 00:22

다른 논문 읽다가 발견한 논문...

내용이 흥미로워 보이고 4쪽이라 부담이 부담이 적을 듯하여 잠깐 읽어보려고 한다.

(읽으면서 깨달음. 부담이 적긴 개뿔 모르는 개념들 연쇄작용 일어나서 해결하느라 미쳐버리고 잇음)

https://arxiv.org/pdf/2211.08553

 

Architecture 까지만 읽었다.

0. Abstract

MSS(Music Source Separation) task에서 long range context 정보가 필요한가, 아니면 local acoustic feature만으로 충분한가?

다른 분야에서는 attention 기반의 transformer가 long sequence에 대한 정보들을 잘 통합하는 능력을 보여줬다.

그래서 우리는 Hybrid Transformer Demucs (HT Demucs)를 제안한다.

Hybrid Demucs 구조를 바탕으로, 가장 안쪽 레이어를 *cross-domain transformer 인코더로 대체했다.

* Cross-domain transformer: 같은 도메인에서는 self-attention, 다른 도메인에서는 cross-attention

 

MUSDB 데이터셋에서는 성능이 안 좋은데 추가로 데이터를 800개 썼더니 그냥 H Demucs보다 **SDR이 0.45dB 올랐다.

Sparse attention kernel로 receptive field 확장하고 각 소스별로 fine-tuning 했더니 MUSDB+에서 SDR9.20dB로 소타 찍었다!

** SDR: Signal-to-Distortion Ratio. 모델이 분리한 소리가 얼마나 깨끗한지 측정함. $10 \log(\frac{\| s \|^2}{\| s - \hat{s} \|^2})$

 

Sparse attention kernel로 receptive field 확장했다는 게 뭔 소리임?

fine-tuning을 하면 했지 각 소스별로 했다는 건 뭐임?

둘 다 뒤에 나오겠지..?

 

1. Introduction

2015 Signal Separation Evaluation Campaign (SiSEC) 이후에 MSS는 노래를 4갈래(드럼, 베이스, 보컬, other)로 분리시키는 모델을 만드는 데에 집중했다.

이때 성능평가에서는 주로 MUSDB18를 사용한다. 150개 곡으로 구성되어있고 *HQ랑 non-HQ 버전이 있다.

* HQ: High-Quality. 고음질

학습용 데이터는 87개곡밖에 없다. 이는 transformer를 사용하는 vision이나 nlp task들과 비교하면 엄청 작은 양이다.

근데 SS(Source Separation) task에서 짧은 context와 긴 context 모두 중요하다.

기존의 Conv-Tasnet는 1초정도만 보고, Demucs는 최대 10초정도로 더 넓게 본다.

하지만 context를 간접적으로만 활용한다는 한계가 있다.

그래서 이 연구에서는 transformer 구조를 사용해서 어떻게 context를 잘 활용할 수 있는지, 그리고 데이터가 얼마나 필요한지 연구한다.

 

Section3에서 HT Demucs 구조를 설명하고, Section4에서 dataset를 설명한다.

Section5에서는 다양한 조건들(depth, channel 수, context 길이, augmentation 등)에서 HT Demucs를 평가한다.

 

(깃헙: https://github.com/facebookresearch/demucs) (오 해봐야지)

 

2. Related Work

MSS 방법은 크게 spectrogram 기반과 waveform 기반으로 나뉜다.

최근에는 두 표현을 모두 사용해서 처리하는 Hybrid 모델도 사용된다.

 

Spectrogram 기반 모델

Open-Unmix: bi-LSTM + FC 구조로 spectrogram의 mask를 예측함

D3Net: Dilated convolution 블럭 + dense connection 구조

Band-Split RNN: Complex spectrogram + dual-path RNN 로 각각 특정 주파수 대역 처리함 (SOTA). mix만 사용해서 데이터 증강

Spleeter: U-Net 기반 모델. 25,000개 30초 데이터

 

Waveform 기반 모델

Wave-U-Net: 최초

Demucs: time-domain U-Net 구조. 인코더 디코더 사이에 bi-LSTM이 있음

Conv-TasNet: Residual dilated convolution으로 mask 예측

 

Hybrid 모델 (최근)

KUIELAB-MDX-NET: 모델 섞기

Hybrid Demucs: Shared backbone + bi-U-Net 구조 (최근 MDX MSS 에서 1등했지만 지금은 Band-Split RNN에게 성능 밀림)

 

(+ 음성 분리 task에서 SepFormer가 transformer를 사용했지만 8kHZ 5초 처리하는데 11GB 필요하기 때문에 44.1kHZ는 버거움)

 

3. Architecture

Hybrid Demucs를 기반으로 하는 Hybrid Transformer Demucs를 제안한다.

Hybrid Demucs는 원래 U-Net 2개(각각 encoder 5개 decoder 5개)로 이루어져있다.

5번째 encoder를 거친 다음에 T랑 Z가 합쳐져서 6번째 layer로 들어가고, 첫 번째 decoder도 같이 쓴 다음에 다시 T, Z로 나눠진다.

Z의 출력을 iSTFT로 waveform 으로 변환한 다음에 T랑 합친다.

 

Hybrid Transformer Demucs는 제일 중간에 있는 2개 레이어(local attention, bi-LSTM)를 cross-domain Transformer Encoder로 대체한다.

하나하나 자세히 살펴보자.

 

아래 왼쪽은 Transformer encoder layer 1개이다.

보면 norm → self-attention → *layer scale 곱하기 → residual → norm → FF → layer scale 곱하기 → residual → 전체 norm

로 되어있다. (+ 입출력 차원=384, attention head 수 =8)

* Layer scale: attention/FFN 출력을 채널별로 약하게 조절해서 더하는 가중치 행렬

Cross-attention Encoder Layer도 그냥 self-attention 대신 cross-attention을 넣은 구조이다.

 

이걸 사용해서 아래 오른쪽과 같이 depth 5의 cross-domain Transformer Encoder를 구성한다.

T랑 Z에서 self-attention하고 cross-attention을 번갈아서 넣은 것이다.

입력에 각각 1D, 2D sinusodial positional encoding을 추가하고 spectrogram은 reshape 해서 sequence 처럼 처리한다.

 

 

2D Z 랑 1D T를 병렬로 처리하기 때문에 Hybrid Demucs보다 유연하다.

(기존에는 STFT window, hop length, stride, padding 등을 세밀하게 조정해야 했었음)

 

그리고 O(n^2) 문제를 해결하기 위해서 *Locally Sensitive Hashing(LSH)을 한 다음에 **sparse attention kernel에 넣는다.

* LSH: 비슷한 것끼리 묶는 방법. 여기서는 bucket 4개로 LSH를 32번 함. 최소 k번 같은 bucket에 속한 애들끼리 묶는 거임

** sparse attention kernel: softmax 전에 -∞로 마스킹해서 통과 후 값을 0으로 만들어버림. 여기서는 90%로 설정함

 

 

---

끝~

처음에는 뭔소린지 하나도 눈에 안 들어오다가 몇 번 읽으니 이제 알겠다. 갈 길이 멀다 후