Client playlist generation
AssigneeMicrosoft Corporation
InventorChristopher B. Weare
Life of this patent
Estimating the term…
Abstract
Client playlist generation is described. In embodiments, relationships between media assets are determined to identify similar media assets that can be included in an automatic playlist of the similar media assets. Projection vectors of the asset-to-asset relationships can be generated for each of the media assets, where a projection vector for a media asset identifies the similar media assets. The projection vectors are then communicated to a client device that utilizes the projection vectors to generate the automatic playlist for any one of the media assets that is selected as a starting media asset of the automatic playlist.
Claims19
A computer-implemented method, comprising:
- determining asset-to-asset relationships to identify similar media assets that can be included in an automatic playlist of the similar media assets;
- generating projection vectors of the asset-to-asset relationships for each of the media assets utilizing random projection, each projection vector for a media asset initialized to a dimension length for elements of the projection vector that identifies the similar media assets, and for each of the similar media assets:
- applying a hashing algorithm to an asset identifier that is unique to a similar media asset to derive an integer number;
- utilizing a random number generator to generate a series of random numbers for the similar media asset from the integer number, the series of random numbers that are generated corresponding to the dimension length of the projection vector;
- generating a product by multiplying one of the random numbers by a weight of the asset-to-asset relationship between the media asset and the similar media asset, the weight of the asset-to-asset relationship indicating a similarity between the media asset and the similar media asset;
- adding the product to the projection vector for the media asset at a next position index in the projection vector;
- and
- quantizing the product for each element of the projection vector for the media asset to produce a binary representation of the elements;
- and
- communicating the projection vectors for each of the media assets to a client device that is configured to utilize the projection vectors to generate the automatic playlist for any one of the media assets that is selected as a starting media asset of the automatic playlist.
A music service provider, comprising:
- storage media configured to maintain media asset relationship data that identifies music tracks;
- a communication device configured to communicate projection vectors to a client device that is configured to utilize the projection vectors to generate an automatic playlist for any one of the music tracks that is selected as a starting music track of the automatic playlist;
- at least a memory and a processor that implement an asset model generation service configured to:
- determine track-to-track relationships from the media asset relationship data to identify similar music tracks that can be included in the automatic playlist of the similar music tracks;
- generate the projection vectors of the track-to-track relationships for each of the music tracks utilizing random projection, each projection vector for a music track initialized to a dimension length for elements of the projection vector that identifies the similar music tracks, and for each of the similar music tracks:
- apply a hashing algorithm to a track identifier that is unique to a similar music track to derive an integer number;
- generate a series of random number from a numbers for the track identifier from the integer number that is unique to a similar music track, the series of random number numbers that are generated corresponding to the dimension length of the projection vector;
- generate a product by multiplying one of the random number numbers by a weight of the track-to-track relationship between the music track and the similar music track, the weight of the track-to-track relationship indicating a similarity between the music track and the similar music track;
- add the product to the projection vector for the music track at a next position index in the projection vector, the product being added to the projection vector as an element of the projection vector;
- and
- quantize the product for each element of the projection vector for the music track to produce a binary representation of the elements as either zero (0) or positive one (+1).
A client device, comprising:
- a storage media configured to maintain a library of music tracks and projection vectors of track-to-track relationships for each of the music tracks, a projection vector for a music track identifying similar music tracks;
- at least a memory and a processor that implement a playlist generator configured to:
- communicate a request to a music service provider for the projection vectors when the client device is on-line and configured for communication with the music service provider;
- receive the projection vectors from the music service provider that generates the projection vectors of the track-to-track relationships for each of the music tracks by random projection, each projection vector for a music track initialized to a dimension length for elements of the projection vector that identifies the similar music tracks, and for each of the similar music tracks:
- apply a hashing algorithm to a track identifier that is unique to a similar music track to derive an integer number;
- utilize a random number generator to generate a series of random numbers between negative one (−1) and positive one (+1) for the similar music track from the integer number, the series of random numbers that are generated corresponding to the dimension length of the projection vector;
- generate a product by multiplying one of the random numbers by a weight of the track-to-track relationship between the music track and the similar music track, the weight of the track-to-track relationship indicating a similarity between the music track and the similar music track;
- and
- add the product to the projection vector for the music track at a next position index in the projection vector;
- quantize the product for each element of the projection vector for the music track to produce a binary representation of the elements;
- and
- utilize the projection vectors to generate an automatic playlist for any one of the music tracks that is selected as a starting music track of the automatic playlist, the automatic playlist configured to be generated when the client device is off-line from the music service provider.
Dependencies are inferred from the claim text.