# US 10,872,110 B2 · Systems, apparatuses, methods and computer-readable medium for automatically generating playlists based on taste profiles

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,872,110 B2
- Document ID: US10872110B2
- Status: Granted
- Kind: B2
- Application number: 15/212,961
- Filed: 2016-07-18
- Published: 2016-11-10
- Granted: 2020-12-22
- Earliest claimed: 2015-03-03
- Assignees: Spotify AB
- Applicants: Spotify AB
- Inventors: Matthew S. Ogle; Christopher Johnson; Edward J. Newett; Paul S. Yu
- Web page: https://patentgrep.com/patent/US10872110B2

## CPC

- G06F 16/4387: {by the use of playlists}
- G06F 16/635: Filtering based on additional data, e.g. user or group profiles
- G06N 5/04: Inference or reasoning models
- G06N 20/00: Machine learning
- G06Q 10/10: Office automation; Time management
- G06Q 30/0271: {Personalized advertisement}
- G06Q 30/0631: {Recommending goods or services}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

Methods, systems and computer program products for periodically generating a personalized playlist of media objects based on a most recent taste profile of a user. An N-dimensional latent factor vector that defines a taste profile of a user is constructed and matched to an M-dimensional latent factor vector that defines attributes of a media object. A playlist including the first media object is generated based on the matching.

## Claims

### Claim 1

A computer-implemented method for generating playlists, comprising the steps of:
receiving activity records associated with a media content play history of a user, the activity records containing activity information based on actions of the user and context information defining a context in which each of the actions was performed;
retrieving intent signals from the activity records, the intent signals indicating a level of intention in the actions of the user, wherein the level of intention is based, in part, on the context information;
selecting a first media object from the media content play history;
constructing an N-dimensional latent factor vector based on the activity records and the intent signals associated with the first media object, wherein N is an integer and the N-dimensional latent factor vector defines attributes of the first media object,
identifying a first playlist including the first media object;
identifying, within the first playlist, a second media object that is not in the media content play history and has attributes defined by an M-dimensional latent factor vector, wherein M is an integer and the M-dimensional latent factor vector matches the N-dimensional latent factor vector based on one or more relationships between the latent factor vectors;
generating a second playlist including the second media object;
recording feedback associated with interactions of the user with the first playlist and the second playlist;
feeding the feedback to at least one latent factor model used to construct any one of (i) the N-dimensional latent factor vector, (ii) the M-dimensional latent factor vector, or (iii) a combination of (i) and (ii); and
updating the second playlist using the at least one latent factor model.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the step of identifying, within the first playlist, the second media object comprises computing a dot product of the N-dimensional latent factor vector and the M-dimensional latent factor vector to determine the M-dimensional latent factor vector matches the N-dimensional latent factor.

### Claim 3 (depends on 1)

The method according to claim 1, further comprising the step of:
publishing the first playlist and the second playlist onto a playlist database accessible over a network.

### Claim 4 (depends on 1)

The method according to claim 1, further comprising the step of:
filtering out noise during the construction of the N-dimensional latent factor vector.

### Claim 5 (depends on 1)

The method according to claim 1, further comprising the step of:
generating a visual signal indicator to provide a visual notification that a personalized playlist has been generated based on the N-dimensional latent factor vector.

### Claim 6

A system for generating playlists, comprising:
one or more processors configured to:
receive activity records associated with a media content play history of a user, the activity records containing activity information based on actions of the user and context information defining a context in which each of the actions was performed;
retrieve intent signals from the activity records, the intent signals indicating a level of intention in the actions of the user, wherein the level of intention is based, in part, on the context information;
select a first media object from the media content play history;
construct an N-dimensional latent factor vector based on the activity records and the intent signals associated with the first media object, wherein N is an integer and the N-dimensional latent factor vector defines attributes of the first media object,
identify a first playlist including the first media object;
identify, within the first playlist, a second media object that is not in the media content play history and has attributes defined by an M-dimensional latent factor vector, wherein M is an integer and the M-dimensional latent factor vector matches the N-dimensional latent factor vector based on one or more relationships between the latent factor vectors;
generate a second playlist including the second media object;
record feedback associated with interactions of the user with the first playlist and the second playlist;
feed the feedback to at least one latent factor model used to construct any one of (i) the N-dimensional latent factor vector, (ii) the M-dimensional latent factor vector, or (iii) a combination of (i) and (ii); and
update the second playlist using the at least one latent factor model.

### Claim 7 (depends on 6)

The system according to claim 6, wherein the one or more processors are further configured to compute the dot product of the N-dimensional latent factor vector and the M-dimensional latent factor vector.

### Claim 8 (depends on 6)

The system according to claim 6, wherein the one or more processors are further configured to publish the first playlist and the second playlist onto a playlist database accessible over a network.

### Claim 9 (depends on 6)

The system according to claim 6, wherein the one or more processors are further configured to filter out noise during the construction of the N-dimensional latent factor vector.

### Claim 10 (depends on 6)

The system according to claim 6, wherein the one or more processors are further configured to generate a visual signal indicator to provide a visual notification that a personalized playlist has been generated based on the N-dimensional latent factor vector.

### Claim 11

A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which, when executed by an electronic device with one or more processors, cause the electronic device to perform the steps of:
receiving activity records associated with a media content play history of a user, the activity records containing activity information based on actions of the user and context information defining a context in which each of the actions was performed;
retrieving intent signals from the activity records, the intent signals indicating a level of intention in the actions of the user, wherein the level of intention is based, in part, on the context information;
selecting a first media object from the media content play history;
constructing an N-dimensional latent factor vector based on the activity records and the intent signals associated with the first media object, wherein N is an integer and the N-dimensional latent factor vector defines attributes of the first media object,
identifying a first playlist including the first media object;
identifying, within the first playlist, a second media object that is not in the media content play history and has attributes defined by an M-dimensional latent factor vector, wherein M is an integer and the M-dimensional latent factor vector matches the N-dimensional latent factor vector based on one or more relationships between the latent factor vectors;
generating a second playlist including the second media object;
recording feedback associated with interactions of the user with the first playlist and the second playlist;
feeding the feedback to at least one latent factor model used to construct any one of (i) the N-dimensional latent factor vector, (ii) the M-dimensional latent factor vector, or (iii) a combination of (i) and (ii); and
updating the second playlist using the at least one latent factor model.

### Claim 12 (depends on 11)

The computer-readable storage medium of claim 11, further having stored thereon a sequence of instructions for causing the one or more processors to perform:
computing the dot product of the N-dimensional latent factor vector and the M-dimensional latent factor vector.

### Claim 13 (depends on 11)

The computer-readable storage medium of claim 11, further having stored thereon a sequence of instructions for causing the one or more processors to perform:
publishing the first playlist and the second playlist onto a playlist database accessible over a network.

### Claim 14 (depends on 11)

The computer-readable storage medium of claim 11, further having stored thereon a sequence of instructions for causing the one or more processors to perform:
filtering out noise during the construction of the N-dimensional latent factor vector.

### Claim 15 (depends on 11)

The computer-readable storage medium of claim 11, further having stored thereon a sequence of instructions for causing the one or more processors to perform:
generating a visual signal indicator to provide a visual notification that a personalized playlist has been generated based on the N-dimensional latent factor vector.
