← notes

Multimodal & Personalized 대화형 음악 추천

2026-01-25 · recsys, conversational-recsys

Just Ask for Music (JAM): Multimodal and Personalized Natural Language Music Recommendation, github

Dataset

JAM

![[jam-framework.png|425]]

  1. 초기 임베딩 획득
    • 사용자 임베딩 u~\tilde{\mathbf{u}}는 CF임베딩으로 사용자의 long-term music preferences를 반영
    • 쿼리 임베딩 q~\tilde{\mathbf{q}}는 ModernBert-base와 같은 텍스트 인코더를 통해 자연어 쿼리에서 추출되어 사용자의 short-term intent를 나타냄
    • 아이템 임베딩 t~i\tilde{\mathbf{t}}_i는 오디오, 가사, CF 등 다양한 모달리티에 대해 미리 계산된 임베딩 세트
  2. 공유 Latent Space로의 투영
    • 각 초기 임베딩은 1-layer feed-forward neural network를 통해 dd차원의 공유 latent space로 투영
      • u=Wu~u~\mathbf{u} = \mathbf{W}_{\tilde{u}} \tilde{\mathbf{u}}
      • q=Wq~q~\mathbf{q} = \mathbf{W}_{\tilde{q}} \tilde{\mathbf{q}}
      • ti=Wt~it~i\mathbf{t}_i = \mathbf{W}_{\tilde{t}_i} \tilde{\mathbf{t}}_i
    • 여기서 u,q,tiRd\mathbf{u}, \mathbf{q}, \mathbf{t}_i \in \mathbb{R}^d
  3. 다중 모달 아이템 임베딩 통합 (t^\hat{\mathbf{t}})
    • 여러 모달리티별 아이템 임베딩 ti\mathbf{t}_i를 단일 t^\hat{\mathbf{t}}로 통합하기 위해 세 가지 전략을 탐색
      • Averaging (AvgMixing): 모든 모달리티 임베딩의 단순 평균
        • t^=1Nmoditi\hat{\mathbf{t}} = \frac{1}{N_{mod}} \sum_i \mathbf{t}_i
      • Cross-Attention (CrossMixing): 쿼리 임베딩 q~\tilde{\mathbf{q}}를 사용하여 각 모달리티의 기여도를 동적으로 가중
        • t^=iα(t~i,q~)ti\hat{\mathbf{t}} = \sum_i \alpha(\tilde{\mathbf{t}}_i, \tilde{\mathbf{q}}) \mathbf{t}_i
        • 여기서 α(t~i,q~)=Softmax((Wkeyt~i)(Wqueryq~)d)\alpha(\tilde{\mathbf{t}}_i, \tilde{\mathbf{q}}) = \text{Softmax}\left(\frac{(\mathbf{W}_{key}\tilde{\mathbf{t}}_i)^\top (\mathbf{W}_{query}\tilde{\mathbf{q}})}{\sqrt{d}}\right)
      • Sparse Mixture of Experts (MoEMixing): Noisy Top-K gating 메커니즘을 사용하여 최대 K개의 모달리티만 활성화되게 함
        • t^=iα(t~i,q~)ti\hat{\mathbf{t}} = \sum_i \alpha(\tilde{\mathbf{t}}_i, \tilde{\mathbf{q}}) \mathbf{t}_i
        • 여기서 α(t~i,q~)=Softmax(KeepTopK(H(t~i,q~)))\alpha(\tilde{\mathbf{t}}_i, \tilde{\mathbf{q}}) = \text{Softmax}(\text{KeepTopK}(H(\tilde{\mathbf{t}}_i, \tilde{\mathbf{q}}))) 이며, H(t~i,q~)H(\tilde{\mathbf{t}}_i, \tilde{\mathbf{q}})는 게이팅 네트워크의 출력을 포함
  4. 손실 함수
    • BPR (Bayesian Personalized Ranking) recommendation loss와 유사하게, 긍정적인 (u,q,t^)(\mathbf{u}, \mathbf{q}, \hat{\mathbf{t}}) 삼중항의 유사성을 최대화하고 부정적인 (u,q,t^neg)(\mathbf{u}, \mathbf{q}, \hat{\mathbf{t}}_{neg}) 삼중항의 유사성을 최소화하여 모델을 학습
    • L=(u,q,t)Dlogσ(sim(u+q,t^)sim(u+q,t^neg))L = -\sum_{(u,q,t) \in D} \log \sigma \left( \text{sim}(\mathbf{u} + \mathbf{q}, \hat{\mathbf{t}}) - \text{sim}(\mathbf{u} + \mathbf{q}, \hat{\mathbf{t}}_{neg}) \right)
      • 여기서 sim\text{sim}은 dot product임

Experiment

![[jam-ex.png|450]] ![[jam-tsne.png|425]]