- 영어만 실험 하였음.
- 실제 데이터: Genius dataset (5000K)
- songform tag가 달려있는 데이터가 존재
- pre-defined songforms: [verse, chorus, pre-chorus, post-chorus, bridge] 에 해당하는 태그를 가지고 있는 것만 추출
- 특수문자 제외 등의 pre-process
- toxicity높은 것 제외
- Training set: 340K
Methodology
- Input text → SentenceBert → GPT2의 가장 맨 앞에 embedding으로 직접 넣음.
- keyword extraction 하여 앞에 넣는 방식 x
- Training시에는 전체 가사의 sentence embedding 넣어서 학습
- Inference시에는 input text의 sentence embedding 넣어서 추론.
- Decoder-only training / inference
- Phrase / Line / ngram / word 단위로 granularity 설정.
- Line단위를 설정함으로써, phrase내에서 문장의 끝을 모델에게 알려줄 수 있음.
- ngram만 사용한 모델은 문장 끝 설정이 불가
- Training: Random tree-traversal plan generation: 가사의 처음부터 진행하며 random plan구성
- 20% 확률로 phase단위 선택
- 80% 확률로 line 단위 선택
- 20%확률로 line을 ngram/word 단위로 분리
- 50%확률로 Single word
- 50%확률로 ngram. ⇒ 1~8개 단어 random mix.
- 80%확률로 line온전히 사용
- syl:1~syl:999
마찬가지로, infilling도 multi-granularity로 가능.
- Training Input Sample
- Output Sample