← notes

LLM Tool Calling 기반 대화형 음악 추천 시스템

2026-02-11 · recsys, llm, conversational-recsys

TalkPlay-Tools: Conversational Music Recommendation with LLM Tool Calling (2025)

배경

시스템 구조

![[assets/LLM Tool Calling 기반 대화형 음악 추천 시스템/overview.png|586]]

문제 정의

사용자 uu, 프로필 pup_u, 이전 대화 상태 st1s_{t-1}, 현재 쿼리 qtq_t가 주어졌을 때:

Ct=LLM(qt,st1,pu;Ptool,T)\mathcal{C}_t = \text{LLM}(q_t, s_{t-1}, p_u; \mathcal{P}_{tool}, \mathcal{T}) mt=ToolEnv(Ct;D)m_t = \text{ToolEnv}(\mathcal{C}_t; \mathcal{D}) rt=LLM(mt,qt,st1,pu;Presponse)r_t = \text{LLM}(m_t, q_t, s_{t-1}, p_u; \mathcal{P}_{response})

Tools 구성

Boolean Retrieval

Sparse Retrieval

Dense Retrieval

Generative Retrieval

In-Context 정보 구성

추론 시 LLM에 제공되는 4가지 conditioning 정보:

  1. System Prompt: tool calling용과 response generation용 두 가지 별도 프롬프트
    • Tool calling 프롬프트는 3단계 구조: Planning → Retrieval → Reranking
      • Stage 1 (Planning): 어떤 retrieval/reranking tool을 쓸지 rationale과 함께 선택
      • Stage 2 (Retrieval): 선택된 retrieval tool로 최소 topk개의 track_id 수집
      • Stage 3 (Reranking): 선택된 reranking tool로 candidates 재정렬
    • 엄격한 제약: retrieval → reranking 순서 고정, 도구 간 기능 중복 없음
  2. Tool Functions: JSON schema 형태의 tool 목록 (이름, 설명, 파라미터 타입)
  3. User Profiles: 인구통계(User ID, 나이대, 성별) + 최근 청취 5곡의 메타데이터/attributes/Semantic IDs
  4. Previous Conversation History: 이전 쿼리 + 추천 음악(메타데이터+Semantic IDs 포함) + LLM 응답

실험

데이터셋

환경

결과

![[assets/LLM Tool Calling 기반 대화형 음악 추천 시스템/results.png|609]]

Tool 사용 빈도 및 성공률 분석

향후 연구 방향