AI Engineer World's Fair 2026

Teaching LLMs to Speak Spotify — Yves Raimond & Jacqueline Wood, Spotify

Read the talk

Teaching LLMs to Speak Spotify

Yves Raimond and Jacqueline Wood explain how Spotify connects language models to its catalog, preserves their language abilities during training, and evaluates recommendations that users can steer and question.

From a talk by Yves Raimond and Jacqueline Wood

At a glance

Ideas worth remembering

  • Natural-language controls let listeners correct the interpretation of listening history and express interests that their past behavior does not yet capture.

  • Semantic IDs connect catalog entities to the LLM’s vocabulary, allowing one response to contain both a recommendation identifier and a natural-language explanation.

  • NEO grounds new catalog embeddings against a frozen backbone before multitask tuning. Spotify’s ablations show why task performance and retained language capabilities need separate attention.

  • Decoding choices serve different goals: constraints can restrict eligible content, while Spotify favored beam search over top-p sampling for recommendation accuracy despite added latency.

  • Evaluation must cover intent, fit and explanation accuracy. Grounding LLM judges in listener profiles and past behavior makes those judgments better informed, especially for ambiguous requests.

From assembling playlists to shaping an experience

Matching a listener to something worth hearing becomes difficult when the choices span more than 100 million music tracks, plus videos, podcasts and audiobooks. Yves Raimond opens with the scale Spotify reported at the time of the recording: about 760 million monthly active users across 184 markets. The challenge is both the size of the catalog and the variety of intentions a listening session can contain.

Source frame: From assembling playlists to shaping an experience
Source frame: From assembling playlists to shaping an experience

Spotify’s first personalization mechanism was human curation: people assembled playlists around particular tastes. At the time of the talk, the service contained about 10 billion playlists. Recommendation systems then turned curation and other signals into suggestions that could reach individual listeners at scale, with Discover Weekly serving as the familiar example.

The next step, which Spotify calls generative personalization, adds an interactive layer to that matching process. A ranked list predicts what someone might want. A language-capable system can also consider whether the recommendation fits the current context, accept a correction, explain a choice, and generate parts of the experience around it. Raimond describes this as a move toward reasoning and steerability: the listener can tell the system what it missed rather than communicate only through subsequent plays and skips.

0:501:00
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:12 · section reference included

Give the listener a way to correct the model

The product examples introduce progressively different kinds of control:

  • Spotify DJ: A personalized music session can change direction while it is running. The listener taps a control and tells the algorithm what they want next.
  • Prompted playlists: A request can be broad or detailed. One example asks for bands playing in San Francisco that night; another asks for music to accompany a run. The running example shapes the presentation as well as the selections, including an introduction and different phases of the run.
Source frame: Give the listener a way to correct the model
Source frame: Give the listener a way to correct the model

An editable taste profile addresses a more persistent problem: listening history can describe the device’s household rather than one person’s preferences. Raimond’s example is Disney music played by his children on shared devices. Those plays enter the history, but their presence does not mean he wants Disney recommendations for himself. The profile exposes what the algorithm has understood in natural language, giving him a place to explain who those plays belong to.

The correction changes the meaning of an existing signal. The listening events still happened; the user supplies the missing context that they reflect the children’s taste. Raimond describes the intended result as the algorithm taking that edit into account so it avoids recommending the music in the wrong context. The same editing channel can express a future goal—exploring a genre, learning about a topic or getting into a language—before listening history contains much evidence of that interest.

Personal podcasts extend generation to the content itself. The announced example is a daily brief about what is happening in the listener’s community, generated on a daily cadence. These examples occupy different product stages in the recording: the taste profile had launched in New Zealand, with more markets planned, while personal podcasts were described as coming soon.

4:054:10
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

4:05 · section reference included

Teach the model a vocabulary for Spotify’s catalog

A shared system called the Large Taste Model sits behind the applications Raimond has described. It combines historical interaction and content knowledge with prediction, reasoning and user prompts. At the time of the talk, Spotify reported daily interaction with the system by about one in four US Premium subscribers, along with gains on autoplay, podcast discovery and interaction with DJ messages. Those gains are described qualitatively here, so they do not establish a numerical comparison between the products.

Source frame: Teach the model a vocabulary for Spotify’s catalog
Source frame: Teach the model a vocabulary for Spotify’s catalog

Jacqueline Wood, a staff machine learning engineer at Spotify, then explains a core component: semantic IDs. Spotify starts with existing content embeddings, such as embeddings of podcast episodes. A quantization algorithm converts those representations into discrete tokens. The tokens become additional entries in an open-weight LLM’s vocabulary, allowing catalog entities and ordinary language to appear within the same model.

Consider the request for a podcast about morality. The prompt includes the natural-language request and the listener’s history represented as semantic IDs. The trained model responds with a semantic ID identifying a relevant podcast episode and a natural-language explanation of why it suits that listener. The catalog representation makes the recommendation addressable; the language representation lets the user express intent and receive an explanation.

How does a language request connect to a specific episode? The flow below shows the two kinds of input meeting inside one model and the two kinds of output leaving it. The listening history supplies personal context alongside the topic request; the response carries both a catalog identity and an explanation.

How it fits togetherA podcast request in two vocabularies

A podcast about morality

Natural-language intent and semantic-ID history jointly produce an episode identifier and a personalized explanation.

6:536:55
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

6:51 · section reference included

NEO separates learning the catalog from learning the tasks

Adding tokens does not by itself teach the model what they mean or how to recommend them. NEO, Spotify’s four-stage training recipe, separates those jobs. The semantic foundation stage constructs meaningful semantic IDs and adds them to the LLM vocabulary. Domain grounding then learns mappings from semantic IDs to text, from text to semantic IDs, and combinations of the two, aligning the new token embeddings with the model’s existing language embedding space.

Source frame: NEO separates learning the catalog from learning the tasks
Source frame: NEO separates learning the catalog from learning the tasks

The important restriction is what can change during grounding. Spotify freezes the LLM backbone, including its original weights and embeddings, and trains only the new semantic-ID embeddings. The catalog vocabulary must learn to fit into an existing language system. This protects the pretrained model’s core language abilities from catastrophic forgetting while the new tokens acquire meaning.

Capability induction follows with multitask instruction tuning on Spotify tasks, including next-item recommendation and retrieval. At this point the recipe unfreezes the model and supports full-parameter or adapter-based fine-tuning. An optional fourth stage adds further post-training, such as reinforcement-learning fine-tuning. The sequence lets the model learn the catalog’s language before adapting its behavior across recommendation tasks.

When does the backbone become trainable? The diagram makes the ordering visible: catalog construction precedes a restricted embedding-learning stage, followed by task adaptation with the model unfrozen. The freeze applies to domain grounding, rather than to the entire training recipe.

How it fits togetherNEO’s training sequence

Construct semantic IDs and extend the vocabulary

The new catalog embeddings learn against a frozen language model before the model adapts to Spotify’s tasks.

9:339:39
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

9:33 · section reference included

The ablations explain why the stages stay separate

Multitask training raises an obvious concern: could learning several jobs make the model worse at each one? Spotify compared the shared model with single-task variants and found that it matched or exceeded their performance across the tested tasks. Audiobooks were a particularly useful case. As a newer content type at Spotify, they benefited from learning shared with other catalog items and tasks, including podcast recommendations. Wood presents this as evidence that multitask learning can help cold-start entities.

Source frame: The ablations explain why the stages stay separate
Source frame: The ablations explain why the stages stay separate

The recipe ablations test different reasons for keeping the stages:

  • Remove domain grounding: Skipping the frozen-backbone grounding stage degraded performance.
  • Combine grounding and task learning: Folding grounding into multitask instruction tuning also degraded performance.
  • Remove pretraining: Starting from a randomly initialized backbone produced the largest performance drop. The pretrained LLM contributes useful knowledge beyond the added catalog tokens.

Continued pretraining exposes a subtler failure. It caused only minimal degradation on the task-specific evaluation, yet the natural-language and world-knowledge capability results fell to essentially zero in the presented evaluation. Frozen-backbone grounding retained those capabilities while still learning semantic IDs. The practical consequence is that recommendation accuracy alone could conceal damage to the abilities needed to understand requests and explain results. The talk does not identify the language evaluation or its scoring scale, so the near-zero result should remain scoped to that experiment.

Wood reports that the findings held with both Qwen and Llama backbones. That comparison supports the staged training approach beyond one model family, while keeping the claim within the backbones Spotify tested.

11:3111:37
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

11:31 · section reference included

Choose decoding for useful recommendations

At inference time, generating catalog tokens creates two different questions: does the output identify valid content, and is that content a good recommendation? Spotify tested beam search with and without constrained decoding. Without constraints, 98% of generated semantic IDs were valid. That measures identifier validity, not recommendation quality.

Source frame: Choose decoding for useful recommendations
Source frame: Choose decoding for useful recommendations

Constrained decoding adds some latency but can also enforce a desired content subset, such as recommending only new content. Separately, top-p sampling significantly hurt accuracy compared with beam search in Spotify’s tests. The team accepted beam search’s additional latency because its accuracy tradeoff worked better for the recommendation task.

NEO’s combination brings grounded catalog items, natural-language steering, search, recommendation and explanation into one system, with tool-free inference for these capabilities. Wood reports production use in podcast discovery, where the model helped listeners move beyond habitual patterns toward unfamiliar content. This gives the shared model a practical purpose beyond consolidating tasks: it can connect what a person already listens to with something they would not ordinarily find.

14:0314:05
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

14:03 · section reference included

A judge needs context about the listener too

The ending returns to a problem that grows with the product’s capabilities: how do you judge the result? Traditional offline recommendation metrics can indicate whether a user interacted with content. They cannot fully answer whether a recommendation makes sense for that user, whether its explanation is accurate, or whether it follows the user’s intent. A system that produces explanations needs evaluation of those explanations as well as the selected items.

Source frame: A judge needs context about the listener too
Source frame: A judge needs context about the listener too

LLM judges can assess those qualities, but Spotify found that they need meaningful grounding to align with human preferences. Two examples supply different kinds of context:

  • Listening-history profiles: For podcast recommendations, Spotify summarizes a user’s listening history into a textual profile and passes it to the judge. The reported alignment with human preferences was 75%.
  • Behavior on similar queries: For search, the judge receives similar queries and the user’s past interactions with them. Spotify reported a 5% increase in alignment overall and a 91% increase for ambiguous queries. Past behavior is especially useful when the query alone leaves the intended meaning unclear.

The final example uses grounded judges to expand Cranfield-style evaluation collections. Candidates from multiple sources enter a shared pool, which a human would ordinarily rank. Human ranking is expensive, so Spotify invested in grounding an LLM judge and reported agreement of 0.87 with human system rankings. These evaluation figures describe separate tests: the talk does not specify their datasets or sample sizes, whether the 5% and 91% increases are relative changes or percentage-point gains, or which agreement metric produced 0.87. They should therefore retain their individual meanings rather than be compared as interchangeable scores.

The training and evaluation problems meet here. A recommender needs grounded catalog knowledge to turn a request into an item; a judge needs grounded listener context to assess whether that item fits. Teaching an LLM to speak Spotify consequently involves preserving its language abilities, giving it a catalog vocabulary, adapting it to recommendation tasks, and supplying enough context to evaluate the experience it produces.

16:1016:13
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

16:10 · section reference included

Read the complete timestamped transcript
  1. 0:01

    [music]

  2. 0:12

    Welcome everyone. Um really glad and

  3. 0:15

    thank you Deven for inviting us as well

  4. 0:17

    to talk today. Uh so um uh Jackie and I

  5. 0:21

    are going to present today about making

  6. 0:23

    LLMs speak Spotify and how we turned our

  7. 0:27

    recommendation system on its head to be

  8. 0:29

    LLM native. Uh just a few quick words

  9. 0:32

    about myself. Uh I joined Spotify a year

  10. 0:35

    ago. Before that I was at Google working

  11. 0:37

    on personalization for Google search and

  12. 0:39

    prior to that I was uh working on

  13. 0:41

    personalization at Netflix.

  14. 0:44

    Um all right so let's dive in. Um

  15. 0:50

    first a couple of numbers to describe

  16. 0:51

    the scale of the problem that we have to

  17. 0:53

    solve. Um Spotify has about I was a

  18. 0:57

    little bit sad not to see it on the DAU

  19. 0:58

    by chart because it should be up there

  20. 1:00

    but it has about 760 million uh active

  21. 1:04

    uh users monthly uh in about 184

  22. 1:08

    markets. But one thing that makes uh the

  23. 1:10

    Spotify personalization problem

  24. 1:11

    particularly challenging is the size of

  25. 1:14

    its catalog. Uh so of course you know

  26. 1:16

    Spotify has basically all music ever

  27. 1:18

    published a bit more than 100 million uh

  28. 1:21

    music tracks but it also has a range of

  29. 1:24

    videos, podcasts and audio books as

  30. 1:26

    well. So the matching problem uh is uh

  31. 1:29

    actually surprisingly uh complicated.

  32. 1:32

    So today what we're going to talk about

  33. 1:34

    Jackie and I is basically the extent of

  34. 1:36

    this matching problem and how we uh how

  35. 1:38

    we are solving it. I'm going to talk

  36. 1:40

    about a little bit of history, the new

  37. 1:42

    phase that we're entering and then

  38. 1:43

    Jackie is going to help us uh go into

  39. 1:46

    the guts of the modes as well to

  40. 1:47

    understand how those things are trained

  41. 1:49

    as well. Uh so a little bit on history.

  42. 1:52

    Uh initially Spotify personalization was

  43. 1:55

    really built around curation. So uh

  44. 1:57

    people basically manually assembling

  45. 1:59

    playlists that target specific taste.

  46. 2:02

    And that's still a very common uh use

  47. 2:04

    case on Spotify. Right now we have about

  48. 2:06

    10 billion playlists with many many uh

  49. 2:09

    created every every hour.

  50. 2:12

    Uh then you know Spotify moved into

  51. 2:14

    taking these creation signals and order

  52. 2:16

    signals and moving into recommendations.

  53. 2:19

    So basically being able to turn these uh

  54. 2:22

    creation signals to something that can

  55. 2:24

    be applied at scale. Uh and a great

  56. 2:26

    example of that would be discover weekly

  57. 2:28

    for example that was launched in 2014 as

  58. 2:30

    one of the one of the early like

  59. 2:33

    recommendation use case on on Spotify.

  60. 2:36

    But the phase that we entering now which

  61. 2:38

    uh uh which we're going to talk about in

  62. 2:40

    more details is something that we call

  63. 2:41

    generative personalization where we are

  64. 2:44

    not only solving a matching problem from

  65. 2:46

    the user to the content. We're also

  66. 2:48

    solving the ability to generate an

  67. 2:50

    experience that is interactively and

  68. 2:52

    dynamically shaped around each user.

  69. 2:58

    And that transition from recommendations

  70. 3:01

    to generative personalization involves a

  71. 3:03

    couple of different uh a couple of

  72. 3:05

    different big shifts. One is move from

  73. 3:08

    moving moving from personalization as

  74. 3:11

    guessing uh where basically you have a

  75. 3:13

    ranking algorithms that spits out a

  76. 3:15

    brand ranked list of entities in your

  77. 3:17

    catalog to personalization as reasoning

  78. 3:19

    that can introspect these results and

  79. 3:22

    really try to understand whether that's

  80. 3:23

    indeed the right match for this user in

  81. 3:25

    this particular context.

  82. 3:28

    The other aspect as well is moving from

  83. 3:31

    blackbox algorithms. uh it's very

  84. 3:33

    difficult to fully introspect a

  85. 3:35

    multi-stage ranking system for example

  86. 3:38

    to transparent and steerable

  87. 3:40

    personalization where the user is always

  88. 3:41

    fully in control. So uh basically giving

  89. 3:45

    the ability to these mods to speak and

  90. 3:48

    understand English.

  91. 3:50

    The other thing that these these systems

  92. 3:52

    can do is uh uh not stopping just at

  93. 3:55

    recommending but also generation of

  94. 3:58

    experiences and explaining as well. uh

  95. 4:00

    and we're going to show a couple of

  96. 4:02

    examples of that.

  97. 4:05

    So one example that uh we launched a

  98. 4:07

    couple of years ago uh so pretty early

  99. 4:10

    in that journey was the Spotify DJ. Uh

  100. 4:12

    so the Spotify DJ is something that you

  101. 4:14

    can spin up that will start playing

  102. 4:16

    music for you of course personalized

  103. 4:18

    uh and but one interesting thing about

  104. 4:21

    it is that since last year you can tap

  105. 4:23

    that button on the bottom uh right and

  106. 4:26

    steer it in whatever direction you see

  107. 4:28

    fit. So at any point you can chime in

  108. 4:30

    and let the algorithm know what you want

  109. 4:32

    and it's going to steer the session in

  110. 4:34

    the in in that in that direction.

  111. 4:37

    Uh another example of what we call

  112. 4:39

    generative personalization is uh

  113. 4:41

    showcased in a prompted playlist here

  114. 4:43

    that Deanch showed a little bit earlier

  115. 4:46

    as well. Uh and here you can you

  116. 4:49

    basically have full unfettered access to

  117. 4:51

    the recommendation algorithm that

  118. 4:53

    Spotify has. uh and you can uh prompt it

  119. 4:56

    with very high level prompts or very

  120. 4:59

    detailed prompts. On the left hand side

  121. 5:01

    here, I have a prompt that tells me uh

  122. 5:03

    create me a playlist of bands that are

  123. 5:04

    playing in San Francisco tonight. Uh so

  124. 5:07

    turns out there's a bunch of good shows

  125. 5:08

    if you're excited to check them out. On

  126. 5:11

    the right hand side, you see a prompt

  127. 5:12

    that is asking for a playlist to

  128. 5:14

    accompany me on my run. And what's

  129. 5:16

    interesting with the right hand side as

  130. 5:17

    well is that you will see that the

  131. 5:19

    experience itself gets dynamically

  132. 5:21

    shaped as a function of the request on

  133. 5:22

    the user to be able to introduce itself

  134. 5:25

    and different phases in my run as well.

  135. 5:29

    Uh, another one that I'm really excited

  136. 5:31

    about, we launched it in New Zealand a

  137. 5:33

    couple of months ago and uh, it's coming

  138. 5:35

    soon in more markets is something called

  139. 5:37

    the taste profile. And that basically

  140. 5:39

    gives you the ability to introspect in

  141. 5:42

    natural language what the Spotify

  142. 5:44

    algorithm has understood about you in a

  143. 5:47

    way that you can edit and refine. Uh, so

  144. 5:49

    if you see something that's missing or

  145. 5:51

    something that's wrong. Uh so for

  146. 5:52

    example one of my edit is that all

  147. 5:55

    Disney music are my kids because we have

  148. 5:57

    a bunch of shared devices at home but

  149. 5:59

    please don't recommend that to me that's

  150. 6:00

    not my taste please. Uh and the

  151. 6:03

    algorithm would then take that into

  152. 6:04

    account uh making sure that we never

  153. 6:06

    recommend this this in the wrong

  154. 6:08

    context. Uh and similarly you can also

  155. 6:11

    use the taste profile to share some more

  156. 6:12

    aspiration uh goals as well. Uh so

  157. 6:15

    getting into a new genre, getting into a

  158. 6:17

    new topic, uh learning about a new

  159. 6:19

    language for example, all of these

  160. 6:20

    things can be can be done.

  161. 6:23

    Uh another one that's coming uh soon uh

  162. 6:25

    which we uh announced very recently is

  163. 6:28

    something called personal podcast where

  164. 6:30

    the the the generative personalization

  165. 6:32

    system doesn't stop at just recommending

  166. 6:33

    and ascending experiences but also

  167. 6:35

    generating content as well. In this

  168. 6:37

    particular example, I'm generating a

  169. 6:39

    daily brief that's uh that's generated

  170. 6:41

    on a cadence daily. Uh and I'm going to

  171. 6:45

    uh let it uh tell me about what's

  172. 6:48

    happening in my community.

  173. 6:51

    All right. So now to go into the guts of

  174. 6:53

    it. So there's one big system that

  175. 6:55

    controls like all of these different

  176. 6:57

    applications I mentioned and we call

  177. 6:58

    that internally some the large taste

  178. 7:00

    model. We're not great at naming these

  179. 7:02

    internal things. Um so it has a couple

  180. 7:05

    of properties. One is that it

  181. 7:06

    understands every historical interaction

  182. 7:08

    piece of content on Spotify. Uh it

  183. 7:11

    combines prediction and reasoning to the

  184. 7:13

    point that I mentioned earlier. So not

  185. 7:15

    only guessing but also reasoning layered

  186. 7:17

    on top and it gives users the ability to

  187. 7:19

    shape and generate experiences in real

  188. 7:21

    time. So it's fully steable and

  189. 7:22

    promptable by uh by users. Um and uh as

  190. 7:27

    of today about one in four US premium

  191. 7:29

    subscribers interact with that system on

  192. 7:31

    a daily basis as well. So that's pretty

  193. 7:32

    exciting. Um, one thing that's exciting

  194. 7:35

    as well to uh is that deploying this

  195. 7:37

    system across existing recommendation

  196. 7:40

    surfaces as well also led to some gains.

  197. 7:42

    Uh, we saw gains on autoplay, we saw

  198. 7:45

    gains on podcast discoveries. Uh, we saw

  199. 7:47

    gains on users interacting with DJ

  200. 7:49

    messages as well. So, we saw pretty

  201. 7:51

    pretty sizable gains across the board as

  202. 7:53

    well by deploying the system. On that

  203. 7:56

    note, I'm going to hand it over to

  204. 7:57

    Jackie to talk to us about what's one of

  205. 8:00

    the core component that underpins this

  206. 8:01

    whole system.

  207. 8:03

    Hi everyone, I'm Jackie or Jacqueline, a

  208. 8:06

    staff machine learning engineer at

  209. 8:08

    Spotify. So let's dive a little bit

  210. 8:11

    deeper and talk about how these models

  211. 8:13

    are actually trained at least at

  212. 8:14

    Spotify. So semantic IDs were presented

  213. 8:18

    in the previous talk, but that is how we

  214. 8:21

    are embedding these openweight LLMs with

  215. 8:25

    knowledge of Spotify's catalog. They are

  216. 8:28

    created by taking existing content

  217. 8:30

    embeddings such as podcast episode

  218. 8:32

    embeddings and applying a quantization

  219. 8:36

    algorithm to convert them to a set of

  220. 8:40

    discrete tokens. We then take a

  221. 8:43

    openweight LLM such as Quen and we

  222. 8:47

    modify its vocabulary to add these new

  223. 8:50

    special tokens and then we fine-tune the

  224. 8:52

    model to be able to understand both

  225. 8:55

    natural language as well as these new

  226. 8:58

    special tokens semantic IDs that

  227. 9:00

    represent Spotify catalog entities. So

  228. 9:03

    we can power experiences such as this

  229. 9:06

    where the user can ask in natural

  230. 9:08

    language for a podcast on morality. And

  231. 9:11

    that is passed to the prompt along with

  232. 9:14

    their listening history represented as

  233. 9:17

    semantic IDs. And the model responds

  234. 9:20

    both with a relevant semantic ID podcast

  235. 9:23

    episode

  236. 9:24

    as well as a natural language

  237. 9:26

    description of why they recommended that

  238. 9:28

    to this user.

  239. 9:33

    So how is this model actually trained?

  240. 9:35

    Um we published a paper linked here

  241. 9:39

    uh describing our training paradigm

  242. 9:42

    called NEO which consists of four

  243. 9:45

    distinct stages. The first I already

  244. 9:48

    covered which is the semantic foundation

  245. 9:52

    stage where we construct meaningful

  246. 9:55

    semantic ID tokens and then add them to

  247. 9:58

    an openway LLM's vocabulary.

  248. 10:01

    The second stage we call domain

  249. 10:04

    grounding in which we align these new

  250. 10:07

    semantic ID token embeddings in the

  251. 10:10

    original language embedding space.

  252. 10:13

    We do this by learning a birectional

  253. 10:16

    mapping between semantic ids to text,

  254. 10:19

    text to semantic ids and any

  255. 10:22

    combination.

  256. 10:26

    And we actually freeze the LLM backbone

  257. 10:29

    at this stage and only train the new

  258. 10:33

    semantic ID embeddings. So the original

  259. 10:36

    model weights and embeddings are frozen

  260. 10:40

    and we just learn those new semantic ID

  261. 10:43

    tokens and this helps us to mitigate

  262. 10:45

    catastrophic forgetting of the

  263. 10:47

    pre-trained LLM's core language

  264. 10:50

    abilities.

  265. 10:52

    The third stage we call capability

  266. 10:54

    induction which is multitask instruction

  267. 10:57

    tuning on tasks that Spotify cares about

  268. 11:00

    such as the ones shown here. next item

  269. 11:03

    recommendation retrieval etc.

  270. 11:07

    This is done by unfreezing the whole

  271. 11:11

    model all of its weights and embeddings

  272. 11:14

    and running either full parameter

  273. 11:16

    fine-tuning or Laura fine-tuning on the

  274. 11:19

    multiple Spotify tasks and then there is

  275. 11:22

    an optional fourth stage to do post-

  276. 11:25

    training such as RL fine-tuning etc.

  277. 11:31

    So, how much of a difference does this

  278. 11:33

    four-stage training paradigm actually

  279. 11:35

    make? I'll dive into a few of the

  280. 11:37

    abilations we've done to investigate

  281. 11:40

    this. First, we assessed whether

  282. 11:44

    multitask training is actually hurting

  283. 11:46

    performance by comparing the multitask

  284. 11:48

    model against single task variance. And

  285. 11:52

    we consistently saw that across our

  286. 11:54

    tasks, the multitask model can match or

  287. 11:57

    actually beat the single task

  288. 12:00

    performance indicating that there is

  289. 12:02

    some positive cross-learning happening

  290. 12:04

    across the tasks. This is particularly

  291. 12:09

    noticeable for audiobook

  292. 12:10

    recommendations. If you look here, which

  293. 12:13

    is a new newer content type at Spotify,

  294. 12:18

    demonstrating that these multitask

  295. 12:20

    models can help with cold start entities

  296. 12:22

    by learning from other items in the

  297. 12:26

    catalog such as podcast recommendations,

  298. 12:28

    how to make meaningful audiobook

  299. 12:30

    recommendations.

  300. 12:33

    Then we did some abilations on the

  301. 12:34

    actual training recipe. We evaluated

  302. 12:37

    both dropping the frozen backbone domain

  303. 12:41

    grounding stage altogether

  304. 12:43

    as well as combining the domain

  305. 12:46

    grounding stage with the capability

  306. 12:48

    induction stage in a multitask

  307. 12:51

    instruction tuning stage that those are

  308. 12:54

    rows A and B here in the middle and we

  309. 12:57

    saw for both of those that it degraded

  310. 12:59

    performance but actually the biggest

  311. 13:01

    drop in performance was from using a

  312. 13:04

    randomly initialized backbone instead of

  313. 13:07

    the pre-trained openweight LLM that we

  314. 13:09

    are using. We also evaluated using

  315. 13:13

    continuous pre-training for the domain

  316. 13:15

    grounding stage. And as you can see,

  317. 13:18

    it's it's minimal actual degradation on

  318. 13:21

    the task specific performance.

  319. 13:23

    But where continuous pre-training really

  320. 13:26

    hits us is on the natural language and

  321. 13:28

    world knowledge capabilities of the

  322. 13:31

    pre-trained backbone LLM we are using.

  323. 13:34

    after we do continuous pre-training, it

  324. 13:36

    goes to essentially zero versus if we do

  325. 13:38

    the frozen backbone domain grounding. We

  326. 13:41

    retain all of that core language ability

  327. 13:43

    and are still able to learn the semantic

  328. 13:45

    ids.

  329. 13:47

    I want to call out that these abilations

  330. 13:49

    were done with Quen, but we also

  331. 13:51

    validated that these findings hold with

  332. 13:54

    Llama. So, it is not specific to the

  333. 13:58

    model backbone, but actually the

  334. 14:00

    training paradigm itself.

  335. 14:03

    And then lastly, we did some

  336. 14:05

    investigation on different inference

  337. 14:07

    strategies and their effect on accuracy

  338. 14:11

    versus latency. We tested beam search

  339. 14:14

    with both constrained decoding and not.

  340. 14:18

    And we saw that even without constrained

  341. 14:20

    decoding, we can generate valid semantic

  342. 14:23

    IDs 98% of the time.

  343. 14:27

    Constrained decoding does add a little

  344. 14:29

    latency overhead, but it's also helpful

  345. 14:32

    for specific cases where you want to

  346. 14:34

    target specific types of content, such

  347. 14:36

    as only make new content

  348. 14:39

    recommendations, for example.

  349. 14:42

    We also compared top P sampling to beam

  350. 14:45

    search and saw that top P sampling

  351. 14:47

    pretty significantly hurts our accuracy.

  352. 14:50

    So although beam search is a little more

  353. 14:54

    latency intensive, we decided that

  354. 14:57

    trade-off worked for us.

  355. 15:02

    So what is meaningful about this? There

  356. 15:05

    have been lots of work in the industry

  357. 15:07

    in the space on generative semantic ID

  358. 15:10

    retrieval, toolbased LLM recommenders,

  359. 15:14

    the plum paper, etc. But NEO is actually

  360. 15:16

    the first example of combining all these

  361. 15:19

    capabilities into one system that

  362. 15:22

    understands grounded catalog items, is

  363. 15:25

    naturally language steerable,

  364. 15:28

    can do search, recommendation,

  365. 15:30

    explanation use cases, as well as

  366. 15:34

    low latency tool-free inference at an

  367. 15:37

    industrial scale.

  368. 15:41

    And we are using this in production

  369. 15:44

    today. Um there's a paper linked as well

  370. 15:47

    here for how we're using this to power

  371. 15:50

    podcast discovery.

  372. 15:53

    What we saw is that using a model train

  373. 15:56

    like this, we can break users out of

  374. 15:58

    their habitual patterns and get them to

  375. 16:01

    listen to more unfamiliar content. And

  376. 16:04

    we saw huge wins online with this.

  377. 16:10

    So none of this works without meaningful

  378. 16:13

    evaluations. So I want to talk about

  379. 16:15

    that a little bit as our recommendations

  380. 16:18

    are becoming more generative and

  381. 16:21

    explanatory.

  382. 16:23

    We our original maybe traditional

  383. 16:28

    offline eval metrics are not sufficient.

  384. 16:32

    Yes, they can tell us whether or not the

  385. 16:34

    user interacted with that content, but

  386. 16:37

    they can't tell us whether or not the

  387. 16:40

    user or that recommendation makes sense

  388. 16:42

    for the user, whether the explanation is

  389. 16:45

    accurate, whether it aligns with the

  390. 16:47

    user's intent, etc. So, that's where LLM

  391. 16:50

    judges really shine. But in our work at

  392. 16:54

    Spotify, we really find that you need to

  393. 16:56

    invest in grounding your LLM judges in

  394. 17:00

    meaningful data. so that they can be

  395. 17:02

    reliable

  396. 17:04

    evaluators that align with human

  397. 17:05

    preferences. So, a few examples um for

  398. 17:09

    evaluating the podcast recommendations

  399. 17:11

    that I just mentioned, we create textual

  400. 17:16

    user profiles summarizing the users's

  401. 17:20

    listening history and that is passed to

  402. 17:22

    the LLM as a judge and we saw that this

  403. 17:25

    corresponded with a 75% alignment

  404. 17:28

    between the LLM judge and human

  405. 17:30

    preferences.

  406. 17:32

    Similarly, you can use actual behavioral

  407. 17:35

    signals to ground these LLM judges. So,

  408. 17:38

    for example, for a search task, you can

  409. 17:42

    for a given query, you can take similar

  410. 17:45

    queries and how the user has interacted

  411. 17:47

    with them in the past and pass that to

  412. 17:49

    the model. And we saw that overall it

  413. 17:52

    increased alignment by 5% but on

  414. 17:56

    ambiguous queries it actually increased

  415. 17:59

    alignment by 91%.

  416. 18:01

    Showcasing the value these this

  417. 18:04

    grounding of the LLM judge plays

  418. 18:07

    especially in ambiguous cases where LLM

  419. 18:10

    judges tend to struggle.

  420. 18:13

    Lastly, we used grounded LM judges to

  421. 18:16

    scale up our Cranfield style

  422. 18:19

    collections.

  423. 18:21

    These are evaluation sets that are

  424. 18:23

    constructed by taking candidates from

  425. 18:26

    multiple different sources, creating a

  426. 18:29

    pool, and then using a human to rank

  427. 18:32

    that pool. However, that human ranking

  428. 18:35

    stage is expensive. So, we invested in

  429. 18:38

    significant grounding for our LM as

  430. 18:40

    judge and are able to have an LLM judge

  431. 18:44

    that aligns with uh human system

  432. 18:46

    rankings

  433. 18:48

    with an agreement value of 0.87.

  434. 18:56

    In summary, um like we're going to hear

  435. 18:58

    a lot about today in all the talks,

  436. 19:01

    there is a new era of personalization

  437. 19:04

    among us. this generative

  438. 19:06

    personalization.

  439. 19:07

    And if you want to power language

  440. 19:11

    steerable personalized recommendations

  441. 19:14

    for your user, this is how we taught

  442. 19:18

    openweight LLMs to speak Spotify. Thank

  443. 19:20

    you.

  444. 19:22

    [applause]

  445. 19:37

    >> [music]