U.S. patent application number 14/249252 was filed with the patent office on 2015-10-15 for automatic generation of online media stations customized to individual users.
This patent application is currently assigned to Apple Inc.. The applicant listed for this patent is Apple Inc.. Invention is credited to Michael Froimowitz Greenzeiger, Ayman Khalil, Greg Labmeier.
Application Number | 20150293925 14/249252 |
Document ID | / |
Family ID | 54265212 |
Filed Date | 2015-10-15 |
United States Patent
Application |
20150293925 |
Kind Code |
A1 |
Greenzeiger; Michael Froimowitz ;
et al. |
October 15, 2015 |
AUTOMATIC GENERATION OF ONLINE MEDIA STATIONS CUSTOMIZED TO
INDIVIDUAL USERS
Abstract
An online media station can be automatically generated based on
a user's media preference data. Media preference data can include a
user's media item purchase history. The media preference data is
analyzed and media preference clusters are generated from the
analyzed media preference data. Generated media preference clusters
are ranked based on a predetermined set of ranking rules. The top
ranked media preference clusters are selected dependent upon the
user's number of slots available for customized media stations. One
or more media station seeds are selected from each media preference
cluster selected based on a set of predetermined selection rules.
An algorithmic media station is automatically generated from the
one or more media station seeds and provided to an electronic
device of the user.
Inventors: |
Greenzeiger; Michael
Froimowitz; (Sunnyvale, CA) ; Khalil; Ayman;
(San Francisco, CA) ; Labmeier; Greg; (Sunnyvale,
CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Apple Inc. |
Cupertino |
CA |
US |
|
|
Assignee: |
Apple Inc.
Cupertino
CA
|
Family ID: |
54265212 |
Appl. No.: |
14/249252 |
Filed: |
April 9, 2014 |
Current U.S.
Class: |
707/734 |
Current CPC
Class: |
G06F 16/435 20190101;
G06F 16/635 20190101; G06F 16/60 20190101; G06F 16/9535 20190101;
G06F 16/4393 20190101; G06F 16/35 20190101 |
International
Class: |
G06F 17/30 20060101
G06F017/30 |
Claims
1. A computer-implemented method for automatically generating a
customized media station on an electronic device comprising:
analyzing a user's media preference data; generating media
preference clusters from the analyzed media preference data;
ranking the generated media preference clusters based on a set of
predetermined ranking rules; selecting the top ranked media
preference clusters dependent upon the user's number of slots
available for customized media stations; selecting one or more
media station seeds from each media preference cluster selected
based on a set of predetermined selection rules; generating an
algorithmic media station customized to the user from the one or
more media station seeds from each media preference cluster
selected; and providing the generated algorithmic media station
customized to the user to the electronic device of the user.
2. The method of claim 1, wherein the set of predetermined ranking
rules dictate ranking the generated media preference clusters based
on at least one of a number of media items contained in the media
preference clusters, a most recent play time of the media items in
the media preference clusters, and user ratings assigned to media
items in the media preference clusters.
3. The method of claim 1, wherein the set of predetermined
selection rules dictate selecting media station seeds based on at
least one of a determined number of media items authored by a
common artist that are within the media preference clusters, a
minimum threshold value of times an artist must appear within the
media preference clusters, and top artists in the media preference
clusters.
4. The method of claim 1, wherein the media preference data
comprises a user's media item purchase history.
5. The method of claim 1, wherein analyzing the user's media
preference data further comprises: inferring, from demographic and
geographic location of the user, a musical preference of the
user.
6. The method of claim 1, wherein the selecting one or more media
station seeds further comprises: determining that a first artist
included in at least one of the selected media preference clusters
is a heat seeker; and selecting the first artist as one of the one
or more media station seeds.
7. The method of claim 1, further comprising: providing a
preexisting editorial station to the electronic device of a user,
wherein one or more of the media station seeds selected is an
artist of the editorial station.
8. The method of claim 1, wherein the predetermined selection rules
dictate selection of the one or more media station seeds based on a
determined popularity of the one or more media station seeds.
9. An automatic media station generation system comprising: a
processor; and a computer-readable storage medium having stored
therein instructions which, when executed by the processor, cause
the processor to perform operations comprising: analyze a user's
media preference data; generate media preference clusters from the
analyzed media preference data; rank the generated media preference
clusters based on a set of predetermined ranking rules; select the
top ranked media preference clusters dependent upon the user's
number of slots available for customized media stations; select one
or more media station seeds from each media preference cluster
selected based on a set of predetermined selection rules; generate
an algorithmic media station customized to the user from the one or
more media station seeds from each media preference cluster
selected; and provide the generated algorithmic media station
customized to the user to the electronic device of the user.
10. The system of claim 9, wherein the set of predetermined ranking
rules dictate ranking the generated media preference clusters based
on at least one of a number of media items contained in the media
preference clusters, a most recent play time of the media items in
the media preference clusters, and user ratings assigned to media
items in the media preference clusters.
11. The system of claim 9, wherein the set of predetermined
selection rules dictate selecting media station seeds based on at
least one of a determined number of media items authored by a
common artist that are within the media preference clusters, a
minimum threshold value of times an artist must appear within the
media preference clusters, and top artists in the media
clusters.
12. The system of claim 9, wherein the media preference data
comprises a user's media item purchase history.
13. The system of claim 9, wherein analyzing the user's media
preference data further comprises: inferring, from demographic and
geographic location of the user, a musical preference of the
user.
14. The system of claim 9, wherein the instructions further cause
the processor to: determine that a first artist included in at
least one of the selected media preference clusters is a heat
seeker; and select the first artist as one of the one or more media
station seeds.
15. The system of claim 9, wherein the instructions further cause
the processor to: provide a preexisting editorial station to the
electronic device of a user wherein one or more of the media
station seeds selected is an artist of the editorial station.
16. The system of claim 9, wherein the predetermined selection
rules dictate selection of the one or more media station seeds
based on a determined popularity of the one or more media station
seeds.
17. A non-transitory computer-readable storage medium having stored
therein instructions which, when executed by a processor, cause the
processor to perform operations comprising: analyzing a user's
media preference data; generating media preference clusters from
the analyzed media preference data; ranking the generated media
preference clusters based on a set of predetermined ranking rules;
selecting the top ranked media preference clusters dependent upon
the user's number of slots available for customized media stations;
selecting one or more media station seeds from each media
preference cluster selected based on a set of predetermined
selection rules; generating an algorithmic media station customized
to the user from the one or more media station seeds from each
media preference cluster selected; and providing the generated
algorithmic media station customized to the user to the electronic
device of the user.
18. The non-transitory computer-readable storage medium of claim
17, wherein the set of predetermined ranking rules dictate ranking
the generated media preference clusters based on at least one of a
number of media items contained in the media preference clusters, a
most recent play time of the media items in the media preference
clusters, and user ratings assigned to media items in the media
preference clusters.
19. The non-transitory computer-readable storage medium of claim
17, wherein the set of predetermined selection rules comprises
selecting media station seeds based on at least one of a determined
number of media items authored by a common artist that are within
the media preference clusters, a minimum threshold value of the
number of times an artist must appear within the media preference
clusters, and top artists in the media clusters.
20. The non-transitory computer-readable storage medium of claim
17, wherein the media preference data comprises a user's media item
purchase history.
21. The non-transitory computer-readable storage medium of claim
17, wherein analyzing the user's media preference data further
comprises: inferring, from demographic and geographic location of
the user, a musical preference of the user.
22. The non-transitory computer-readable storage medium of claim
17, wherein the instructions further cause the computing device to:
determine that a first artist included in at least one of the
selected media preference clusters is a heat seeker; and select the
first artist as one of the one or more media station seeds.
23. The non-transitory computer-readable storage medium of claim
17, wherein the instructions further cause the computing device to:
provide a preexisting editorial station to the electronic device of
a user wherein one or more of the media station seeds selected is
an artist of the editorial station.
24. The non-transitory computer-readable storage medium of claim
17, wherein the predetermined selection rules dictate selection of
the one or more media station seeds based on a determined
popularity of the one or more media station seeds.
Description
TECHNICAL FIELD
[0001] The present disclosure relates to media stations and more
specifically to the automatic generation of media stations
customized to individual users.
BACKGROUND
[0002] Traditional media stations, such as online radio stations,
are a music streaming and automated music recommendation service,
typically provided via an online web browser or computer
application. Online media stations are an increasingly popular
medium for distributing music content over the internet. Online
media stations play musical selections of a certain genre based on
a user's artist selection. The user may provide positive or
negative feedback for songs chosen by the online media station,
which are taken into account when the online media station selects
future songs. Other online media stations similar to the online
media station selected by the user are recommended to the user
based on the musical artist the user originally selected.
[0003] As online media stations become more popular a wider variety
of customers begin to engage with online media stations. Users can
create online media stations and have the best results when they
are involved in creating the online media station. However, not all
customers are technically savvy enough to create their own online
media station with satisfactory results. Additionally, technically
savvy customers may not be willing to put in the initial time and
effort into tuning their stations during the early stage of usage.
Accordingly, an improved method of generating online media stations
is needed.
SUMMARY
[0004] Additional features and advantages of the disclosure will be
set forth in the description which follows, and in part will be
obvious from the description, or can be learned by practice of the
herein disclosed principles. The features and advantages of the
disclosure can be realized and obtained by means of the instruments
and combinations particularly pointed out in the appended claims.
These and other features of the disclosure will become more fully
apparent from the following description and appended claims, or can
be learned by the practice of the principles set forth herein.
[0005] Disclosed are systems, methods, devices, and non-transitory
computer-readable storage media for automatically generating online
media stations. To automatically generate an online media station,
a user's media preference data is analyzed to create media
preference clusters. In some embodiments the media preference
clusters can be created using a clustering algorithm such as a
k-means algorithm.
[0006] The media preference clusters are ranked according to a set
of predetermined rules. In some embodiments the media preference
clusters are ranked according to the characteristics of the media
items contained within the clusters. In some embodiments the media
preference clusters are ranked according to a user's interaction
with the media items contained within the clusters. In other
embodiments, the media preference clusters are ranked according to
the characteristics of the clusters themselves.
[0007] The top ranked media preference clusters are selected for
media station generation depending on the user's number of slots
available for customized media stations. Each media preference
cluster selected is used to generate a corresponding media
station.
[0008] A media station seed selection module selects one or more
media station seeds from each media preference cluster selected.
The selected media station seed or seeds are used as inputs into a
media station generation module. Using the media station seed or
seeds as inputs, the media station generation module automatically
generates an online media station customized for the user.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] In order to describe the manner in which the above-recited
and other advantages and features of the disclosure can be
obtained, a more particular description of the principles briefly
described above will be rendered by reference to specific
embodiments thereof which are illustrated in the appended drawings.
Understanding that these drawings depict only exemplary embodiments
of the disclosure and are not therefore to be considered to be
limiting of its scope, the principles herein are described and
explained with additional specificity and detail through the use of
the accompanying drawings in which:
[0010] FIG. 1 illustrates a general purpose computing environment
in which multiple computing devices can be configured to
communicate with each other to automatically generate media
stations;
[0011] FIG. 2 illustrates ranking media preference clusters,
selecting media preference clusters for media station generation,
and selecting a media station seed or seeds from each media
preference cluster selected;
[0012] FIG. 3 illustrates automatically generating online media
stations customized for the user from the selected media station
seed or seeds;
[0013] FIG. 4 illustrates an exemplary method embodiment of
automatically generating online media stations customized for the
user; and
[0014] FIGS. 5A and 5B illustrate exemplary possible system
embodiments.
DETAILED DESCRIPTION
[0015] Various embodiments of the disclosure are discussed in
detail below. While specific implementations are discussed, it
should be understood that this is done for illustration purposes
only. A person skilled in the relevant art will recognize that
other components and configurations may be used without parting
from the spirit and scope of the disclosure.
[0016] The disclosed technology addresses the need in the art for
automatically generating online media stations based on a user's
media preference data. To automatically generate an online media
station, a user's media preference data is analyzed to create media
preference clusters. In some embodiments the media preference
clusters can be created using a clustering algorithm such as a
k-means algorithm.
[0017] The media preference clusters are ranked according to a set
of predetermined ranking rules. In some embodiments, the media
preference clusters are ranked according to the characteristics of
the media items contained within the clusters. In some embodiments,
the media preference clusters are ranked according to a user's
interaction with the media items contained within the clusters. In
some embodiments, the media preference clusters are ranked
according to the characteristics of the clusters themselves.
[0018] The top ranked media preference clusters are selected for
media station generation depending on the user's number of slots
available for customized media stations. Each media preference
cluster selected is used to generate a corresponding media
station.
[0019] A media station seed selection module selects one or more
media station seeds from each media preference cluster selected.
The selected media station seed or seeds are used as inputs into a
media station generation module. Using the selected media station
seed or seeds as inputs, the media station generation module
automatically generates online media stations customized for the
user.
[0020] FIG. 1 illustrates an exemplary system configuration 100 in
which multiple computing devices can be configured to communicate
with each other to create and perform a media station on a client
device. A media station can be a sequence of media items that can
be played or executed by a media station player application on a
client device. Some non-limiting examples of media items can
include songs, podcasts, television shows, movies, games,
audiobooks, educational courses, and/or video. Other media items
are also possible. A media station player can be any application
capable of media item playback, such as a component of a webpage, a
plug-in, a client-side application, etc.
[0021] In some embodiments, a media station can be a continuous
sequence of media items that are chosen by a media station creation
algorithm, such that as one media item completes playback a next
media item begins. The playback process of a continuous media item
stream can continue until a user takes an action to terminate or
temporarily delay the playback, such as quitting the media player
application, switching to a different media station, pausing
playback, or skipping a media item. A media station can be
homogeneous or heterogeneous. That is, a media station can be
designed to playback media items all of the same media type or of
different media types. For example, a homogeneous media station can
playback only audio media items or only video media items. In
another example, a heterogeneous media station can playback a mix
of audio media items and video media items. In some embodiments,
the various media items can be presented concurrently such that
presentation of one media item overlaps with presentation with a
different media item.
[0022] A user can create a media station by selecting a media
station seed or seeds from which to generate the media station.
Some non-limiting examples of media station seeds are songs,
videos, artists, albums, a genre of music or film, actors, etc. The
media station plays algorithmic selections of a certain genre based
on the user's initial selection. The user then provides positive or
negative feedback for media items chosen by the media station,
which are taken into account when the media station selects future
media items. Typically, a user experiences the best results for
media stations generated when the user provides his own media
station seed or seeds to generate the media station from.
[0023] In some instances, a user has not provided a media station
seed or seeds to generate a media station from. The user may either
be too busy to take the time to make a selection or may not be
technically savvy enough to create their own online media station
with satisfactory results. Additionally, technically savvy
customers may not be willing to put in the initial time and effort
into tuning their stations during the early stage of usage.
[0024] To provide the benefits of a customized online media station
to the user, a customized online media station may be automatically
generated without requiring a user to select a media station seed
or seeds. By identifying relationships between the media items in a
users media preference data, clusters of media items may be created
to reflect different groups and genres among the media items. Some
non-limiting examples of media preference data are a user's
purchase history of music, a user's purchase history of
applications, a user's purchase history of videos, songs and videos
contained within a user's media library, etc. The clusters of media
items may be ranked to identify the clusters closest related to the
user's media preference. The top ranked media preference clusters
are selected for media station generation depending on the user's
number of slots available for customized media stations. Each media
preference cluster selected is used to generate a corresponding
media station.
[0025] One or more media station seeds may be selected from each
media preference cluster selected. The selected media station seed
or seeds may in turn be used as inputs to automatically generate
online media stations. The online media stations generated are
automatically provided to the user without requiring the user to
select a media station seed or seeds.
[0026] To accomplish this, the user's media item purchase history
may be analyzed to create media preference clusters. The media
preference clusters created indicate a relationship between the
media items analyzed in the users purchase history. The media
preference clusters can be created using a clustering algorithm
such as a k-means algorithm, etc.
[0027] The media preference clusters are ranked according to a set
of predetermined rules to identify the clusters that are most
closely related to the user's media preference. In some
embodiments, the media preference clusters are ranked according to
the characteristics of the media items contained within the
clusters. In other embodiments, the media preference clusters are
ranked according to a user's interaction with the media items
contained within the clusters. In other embodiments, the media
preference clusters are ranked according to the characteristics of
the clusters themselves.
[0028] For example, the media preference clusters may be ranked
according to the number of media items contained within the
clusters. In some embodiments, the media preference clusters may be
ranked according to the clusters with the most recently played
media items. In some embodiments, the media preference clusters may
be ranked according to the clusters with the most recently
purchased media items. In some embodiments, media preference
clusters may be ranked according to billboard popularity of the
artists within the cluster. Additional priority may be provided to
media preference clusters that include artists who are identified
as heat seekers or artists that are already members of a
preexisting editorial station. A heat seeker artist is a new and
developing artist that has been identified or highlighted for
sales. In some embodiments, the media preference clusters may be
ranked according to the clusters with the most media items with
high user ratings.
[0029] The top ranked media preference clusters are selected for
media station generation depending on the user's number of slots
available for customized media stations. Each media preference
cluster selected is used to generate a corresponding media
station.
[0030] A media station seed selection module selects one or more
media station seeds from each media preference cluster selected.
The media station seed or seeds selected are used as inputs into a
media station generation module. Using the media station seed or
seeds as inputs, the media station generation module automatically
generates online media stations customized for the user.
[0031] In some embodiments, user media item purchase data either is
not available or does not exist for a given user. In this scenario,
alternative inputs are analyzed to generate media preference
clusters for the user. For example, application purchase data of a
given user may be used as an alternative to user media item
purchase history to generate media preference clusters. In some
embodiments, the songs in a user's media library could also be used
to generate media preference clusters for the user. In other
embodiments, media item play data and media item purchase data from
users with matching gender, age range, and geographical location
are pooled and used to generate media preference clusters for the
user.
[0032] A media station can also be configured to play or present
invitational content, such as advertisements, within the media
stream. An invitational content item can include content found in a
media item, such as a song or a video, but an invitational content
item can also include targeted content and/or content designed to
elicit a response from a user. Therefore an invitational content
item and a media item can be distinct item types, each of which can
be presented in a media station.
[0033] In some embodiments, the invitational content can be used as
a source of revenue and/or to subsidize a media station so that the
media items can be provided to end users free of charge or for a
reduced fee. The invitational content can be presented within a
media station using a variety of techniques. In some cases,
invitational content can be presented to a user in a manner that
prevents or blocks the playback of a next media item or a next
segment of a media item. For example, upon the completion of the
playback of a music item, but before beginning playback of a new
music item, an invitational content item can be presented in the
media stream. Invitational content can also be displayed in
conjunction with a media item or media item representation. For
example, an invitational content item can be presented in a banner
ad displayed with a music album cover or during the playback of a
television show.
[0034] Further, in some embodiments, the invitational content can
include an interactive segment that can be presented concurrently
with one or more media items. The interactive segment can be
configured such that a user can interact with the invitational
content without disrupting playback of media items being presented
concurrently. A user can thus interact with various features and
views of the interactive segment during the playback of a media
item without disrupting the media item. For example, in some
embodiments, the interactive segment can be a rich media
advertisement that includes various views and screens which a user
can navigate through while listening to an audio media item.
[0035] A downside to presenting both invitational content and media
items, either simultaneously or sequentially, when the invitational
content is not related to the media items is that a user may equate
the media item with the invitational content. For example, a user
may think that an invitational content provider endorses a
particular media item, or that a media item provider has authorized
the use of the media item to promote an offering associated with
the invitational content. To decrease the potential for confusion,
the media station can also include bumper content, which can be
presented concurrently with the interactive invitational content,
but just prior to resuming playback of a media item.
[0036] A bumper content item can be an intermediary content item
that is used to transition from invitational content to a media
item, thereby creating user awareness that the media item is not
related to an item of invitational content that the user may also
be experiencing. For example, a bumper content item can be an audio
message such as "now back to the music" that is used to transition
between invitational content to an audio media item. Thus a user
that is interacting with the interactive segment of an item of
invitational content will be made aware that the upcoming media
item is not related to the item of invitational content, even
though the user is experiencing both concurrently.
[0037] To facilitate providing a media station to be performed by a
client device, multiple computing devices can be connected to a
communication network 110 and configured to communicate with each
other through use of the communication network 110. The
communication network 110 can be any type of network, including a
local area network ("LAN"), such as an intranet, a wide area
network ("WAN"), such as the internet, or any combination thereof.
Further, the communication network 110 can be a public network, a
private network, or a combination thereof. The communication
network can also be implemented using any type or types of physical
media, including wired communication paths and wireless
communication paths associated with one or more service providers.
Additionally, the communication network 110 can be configured to
support the transmission of messages formatted using a variety of
protocols.
[0038] A computing device can be any type of general computing
device capable of network communication with other computing
devices. For example, the computing device can be a personal
computing device such as a desktop or workstation, a business
server, or a portable computing device, such as a laptop, smart
phone, or tablet personal computer. The computing device can
include some or all of the features, components, and peripherals of
computing device 500 of FIG. 5A.
[0039] To facilitate communication with other computing devices,
the computing device can also include a communication interface
configured to receive a communication, such as a request, data,
etc., from another computing device in network communication with
the computing device and pass the communication along to an
appropriate module running on the computing device. The
communication interface can also be configured to send a
communication to another computing device in network communication
with the computing device.
[0040] As illustrated, a client device 105 can be configured to
communicate with a media station server 125 to perform a media
station on the client device 105. For example, a media player
application 115 running on the client device 105 can be configured
to communicate with a media station module 130 on the media station
server 125 to request, receive and perform a media station. A media
station player can be any application capable of media item
playback, such as a component of a webpage, a plug-in, a
client-side application, etc.
[0041] The media station module 130 can be configured to create a
media station to be performed on a client device. For example, the
media station module 130 can be configured to assemble the media
station by selecting media items, invitational content items and
bumper items to be performed on the client device in a specified
order. For example, the media station server 125 can include a
media item database 135, a bumper content database 145 and an
invitational content database 150, each configured to store
multiple media items, bumper content items, and invitational
content items respectively. The media station module 130 can be
configured to communicate with the databases to select media items,
bumper content items and invitational content to be performed as
part of the media station.
[0042] Although the media item database 135, bumper content
database 145 and the invitational content database 150 are
illustrated separately, this is just one possible embodiment and is
not meant to be limiting. In some embodiments, the databases can be
combined as one database or any other possible combination.
[0043] Alternatively, in some embodiments, the multiple databases
can be hosted on separate computing devices and the media station
module 130 can be configured to communicate with the various
computing devices to assemble the media station. For example, in
some embodiments, the system can include an invitational content
server 170 in network communication with the media station server
125 and the media station module 130 can be configured to
communicate with the invitational content server 170 to request
invitational content to be included in the media station. In some
embodiments, the invitational content server 170 can transmit the
invitational content to the media station server 125 where it can
be assembled into the media station. In some embodiments, the
invitational content server 170 can transmit the invitational
content directly to the client device 105.
[0044] In some embodiments, the media station module 130 can be
configured to transmit the assembled media station to the client
device 105 where it can be performed by the media player
application 115. For example, the media station module 130 can be
in continuous communication with the media player application 115
to transmit the media station to be performed by the media player
application 115.
[0045] In some embodiments, the media station module 130 can be
configured to transmit the media station to the client device 105
in segments. For example, the media station module 130 can be
configured to communicate with the client device to transmit an
assembled segment of the media station which can be stored on the
client device 105 and performed by the media player application
115. For example, the client device 105 can include a media station
database 120 configured to store the received media station and the
media player application 115 can be configured to communicate with
the media station database 120 to retrieve the stored media
station. In this type embodiment, the media station module 130 can
be configured to periodically update the client device 105 by
transmitting further assembled segments of the media station.
[0046] In some embodiments, the media station can be assembled at
the client device 105 rather than at the media station server 125.
For example, the media station module 130 can be running on the
client device 105 and can be configured to request media items,
bumper content items and invitational content from the media
station server 125, or any other computing device. The received
media items, bumper content items and invitational content can be
stored in the media station database 120 and the media station
module 130 can be configured to communicate with the media station
database 120 to retrieve the stored media items, bumper content
items and invitational content to assemble the media station. In
this type of embodiment, the media station module 130 running on
the client device 105 can be configured to periodically request
further media items, bumper content items and invitational content
to be delivered to the client device.
[0047] The media station module 130 can be configured to assemble
the media station based upon media station assembly rules. The
media station assembly rules can dictate which media items,
invitation content items and bumper content items should be
selected for the media station as well as the sequential order in
which they should be presented by the media player application
115.
[0048] In some embodiments, a media station customized to a user
may be created automatically without requiring any user input of
media station seeds. In some embodiments, the user's media item
purchase history may be analyzed to create media preference
clusters. The media preference clusters are ranked according to a
set of predetermined rules to identify the clusters that are most
closely related to the user's media preference. The top ranked
media preference clusters are selected for media station generation
depending on the user's number of slots available for customized
media stations.
[0049] Each media preference cluster selected is used to generate a
corresponding media station. Media station seed selection module
165 selects one or more media station seeds from each media
preference cluster selected. The selected media station seed or
seeds are used as inputs into media station generation module 155.
Using the media station seed or seeds as inputs, the media station
generation module 155 automatically generates online media stations
customized for the user. The media station generation module 155
can be configured to create a customized media station to be
performed on a client device.
[0050] To accomplish this, media station server 125 can include
clustering module 175 configured to create media preference
clusters from a user's media preference data. Media preference data
can be any data that indicates a user's media preferences, i.e.
likes and/or dislikes regarding media items. Some non-limiting
examples of media preference data are a users purchase history of
music, a users purchase history of applications, a users purchase
history of videos, songs and videos contained within a users media
library, positive or negative feedback for media items, media
stations a user has created in the past, etc.
[0051] To create the media preference clusters, clustering module
175 can be configured to use media preference data gathered from
the user. In some embodiments, media station server 125 can include
media preference database 185, which is configured to store media
preference data gathered from the user. Clustering module 175 can
be configured to create the media preference clusters using any
clustering method known in the art. For example, in some
embodiments, the media preference clusters can be created using a
k-means algorithm. Clustering module 175 can create the media
preference clusters by using the media preference data as input in
the k-means algorithm. For example, the media preference data
gathered from the user can represent a unique data point or
observation, and clustering module 175 can use a k-means algorithm
to cluster the various observations. The resulting clusters can be
the media preference clusters. In some embodiments, purchased media
items are clustered in n-space using genre, mood, era, origin, and
tempo using metadata with multiple possible dimensions for each of
these categories. For example, in terms of the genre category, an
analyzed song may be determined to be 70% rock, 20% hip hop and 10%
country. This data forms a matrix in which songs are classified
using any number of standardized clustering algorithms.
[0052] In some embodiments, user media item purchase data either is
not available or does not exist for a given user. In this scenario,
media preference data includes alternative inputs which are
analyzed to generate media preference clusters for the user. For
example, application purchase data of a given user may be used as
an alternative to user media item purchase history to generate
media preference clusters. In some embodiments, the songs in a
user's media library could also be used to generate media
preference clusters for the user. In other embodiments, media item
play data and media item purchase data from users with matching
gender, age range, and geographical location are pooled and used to
generate media preference clusters for the user.
[0053] FIG. 2 illustrates automatically generating media preference
clusters from a users media preference data, ranking the media
preference clusters, selecting the media preference clusters, and
selecting one or more media station seeds from each media
preference cluster selected. As shown, four media preference
clusters 205, 210, 215, and 220 have been generated using
clustering module 175 and the media preference database 185. For
the purposes of this illustration, media preference clusters have
all been generated from the user's media preference data
specifically, the user's purchase history.
[0054] The media preference clusters are ranked according to a set
of predetermined ranking rules. In some embodiments the media
preference clusters are ranked according to the characteristics of
the media items contained within the clusters. In other embodiments
the media preference clusters are ranked according to a users
interaction with the media items contained within the clusters. In
other embodiments, the media preference clusters are ranked
according to the characteristics of the clusters themselves.
[0055] For example, the media preference clusters may be ranked
according to the number of media items contained within the
clusters. In some embodiments, the media preference clusters may be
ranked according to the clusters with the most recently played
media items. In some embodiments, the media preference clusters may
be ranked according to the clusters with the most recently
purchased media items. In some embodiments, media preference
clusters may be ranked according to billboard popularity of the
artists within the cluster. Additional priority may be provided to
media preference clusters that include artists who are identified
as heat seekers or artists that are already members of a
preexisting editorial station. A heat seeker artist is a new and
developing artist that has been identified or highlighted for
sales. In some embodiments, the media preference clusters may be
ranked according to the clusters with the most media items with
high user ratings.
[0056] The four media preference clusters 205, 210, 215 and 220 all
include media items found within the users analyzed purchase
history. In this illustration, the generated media preference
clusters each reflect a specific genre of music, and the media
items contained within the clusters have characteristics that lend
themselves to the genre of music of the cluster.
[0057] As illustrated by slot 1 225 and slot 2 230, two slots are
available for the user's custom stations. Media preference clusters
205 and 210 have been selected as the top ranked clusters and thus
are placed in the two available slots for the user's custom
stations. Media preference cluster 205 achieved the highest ranking
by containing the highest number of songs among the four clusters.
Media preference cluster 210 did not contain as many songs as media
preference cluster 205. However, although media preference cluster
210 is a smaller cluster in size compared to media preference
cluster 205, media preference cluster 210 also achieved a high
ranking because it contained the most songs which were recently
played within a cluster. As such, media preference clusters 205 and
210 are selected as the top ranked clusters from which media
station seed or seeds 235 and 240 are selected from.
[0058] The media station seed or seeds 235 and 240 are selected
from their corresponding media preference clusters 205 and 210
respectively by a set of predetermined selection rules. Some
non-limiting examples of media station seeds are songs, videos,
artists, albums, genres of music or film, actors, etc. In some
embodiments, the media selection rules can dictate selecting a
media station seed or seeds based on the number of instances of the
media station seed in a media preference cluster. For example, a
media station seed such as an artist can be selected based on the
number of media items authored by the artist that are in the media
preference cluster. In some embodiments, the media selection rules
can dictate selecting a media station seed or seeds based on
whether a media station seed has been designated as a heat seeker.
For example, the media selection rules can dictate that artists
and/or songs designated as a heat seeker be selected as a media
station seed. In some embodiments, the media selection rules can
dictate selecting a media station seed or seeds based on the
popularity of a media item. For example, the media selection rules
can dictate that artists and/or songs designated as billboard top
100 be selected as a media station seed. In other instances, there
may be some minimum threshold value of occurrence within a cluster
that an artist must overcome to be considered as a candidate for
selection as a media station seed.
[0059] In some embodiments, one or more media station seeds 235 and
240 may be selected to seed the media station generation module
155. In some instances, selecting multiple media station seeds 235
and 240 provides superior results in creating a customized media
station. For example, selecting multiple artists as media station
seeds that have a long discography record of music in multiple
styles or genres provide superior results because the multiple
artists cause the customized station to hone in on the subset of
music from the artist which the user prefers.
[0060] In some embodiments, only one media station seed 235 and 240
may be selected to seed the media station generation module 155. In
some instances, the generated media preference clusters may only
yield one media station seed due to the amount of media preference
data available. Although utilizing multiple media stations to seed
the media station generation module is the preferred approach, a
media station may still be generated with only one media station
seed.
[0061] FIG. 3 illustrates automatically providing a media station
seed or seeds to the media station generator to automatically
generate a customized media station for a user. In some
embodiments, a media station seed or seeds 305 are selected from
generated media preference clusters 205, 210, 215 and 220. Some
non-limiting examples of media station seeds are songs, videos,
artists, albums, genres of music or film, actors, etc.
[0062] In some embodiments, multiple media station seeds are
selected from generated media preference clusters 205 and 210.
Utilizing multiple seeds may provide superior media station
generation results because the media station generation module 155
can more accurately hone in on the subset of the music from the
artists which the user prefers.
[0063] As illustrated, the media station seed or seeds 305 are
provided to the media station generator 310 as inputs for
automatically generating a customized media station. In some
embodiments the media station generator 310 generates algorithmic
media stations. The media station generator can be configured to
generate an algorithmic media station based on an algorithm that
uses one or more media station seeds 305 as input. For example,
when provided with a media station seed such as an artist, the
media station generation module can generate a media station
including media items authored by the seed artist as well as media
items authored by the artists determined to be similar or related
to the provided seed artist. Likewise, when provided with a media
station seed such as a song, the media station generation module
can generate a media station that includes the seed song as well as
songs that are similar to the provided seed song.
[0064] The media station generator 310, using the media station
seed or seeds 305 as inputs, automatically generates a customized
media station for the user. The customized media station 315
created can be performed on a client device. The customized media
station 315 created may be an algorithmic media station providing a
sequence of media items that can be played or executed by a media
station player application on a client device.
[0065] In some embodiments, an existing editorial station that has
a similar profile i.e. genre, mood, era, etc., to the cluster of
songs used for media station generation or the media station seeds
used for media station generation may be substituted in place of a
customized algorithmic media station.
[0066] FIG. 4 illustrates an exemplary method embodiment of
automatically generating an online media station for a user. As
shown, the method begins at block 405 where a user's media
preference data is analyzed. Some non-limiting examples of media
preference data are a user's purchase history of music, a user's
purchase history of applications, a user's purchase history of
videos, songs and videos contained within a users media library,
etc. In some embodiments, user media item purchase data either is
not available or does not exist for a given user. In this scenario,
alternative inputs are analyzed to generate media preference
clusters for the user. For example, application purchase data of a
given user may be used as an alternative to user media item
purchase history to generate media preference clusters. In some
instances, the songs in a user's media library could also be used
to generate media preference clusters for the user. In other
embodiments, media item plays from users with matching gender, age
range, and geographical location are pooled and used to generate
media preference clusters for the user.
[0067] Upon analyzing the user's media preference data, the method
continues to block 410 where media preference clusters are
generated from the user's media preference data. To generate the
media preference clusters, clustering module 175 can be configured
to use media preference data gathered from the user. In some
embodiments, media station server 125 can include media preference
database 185, which is configured to store media preference data
gathered from the user. Clustering module 175 can be configured to
create the media preference clusters using any clustering method
known in the art. For example, in some embodiments, the media
preference clusters can be created using a k-means algorithm.
Clustering module 175 can create the media preference clusters by
using the media preference data as input in the k-means algorithm.
For example, the media preference data gathered from the user can
represent a unique data point or observation, and clustering module
175 can use a k-means algorithm to cluster the various
observations. The resulting clusters can be the media preference
clusters.
[0068] At block 415 the generated media preference clusters are
ranked according to a set of predetermined ranking rules. In some
embodiments the media preference clusters are ranked according to
the characteristics of the media items contained within the
clusters. In other embodiments the media preference clusters are
ranked according to a user's interaction with the media items
contained within the clusters. In other embodiments, the media
preference clusters are ranked according to the characteristics of
the clusters themselves.
[0069] For example, the media preference clusters may be ranked
according to the number of media items contained within the
clusters. In other embodiments, the media items may be ranked
according to the clusters with the most recently played media
items. In some embodiments, the media preference clusters may be
ranked according to the clusters with the most recently purchased
media items. In some embodiments, media preference clusters may be
ranked according to how popular the artists are within the cluster.
Additional priority may be provided to artists who are identified
as heat seekers or artists that are already members of a
preexisting editorial station. A heat seeker artist is a new and
developing artist that has been identified or highlighted for
sales.
[0070] Upon ranking the generated media preference clusters, the
method continues to block 420 where the top ranked media preference
clusters are selected for media station generation depending on the
user's number of slots available for customized media stations.
Each media preference cluster selected is used to generate a
corresponding media station.
[0071] Upon selecting the media preference clusters to generate a
media station from, the method continues to block 425 where one or
more media station seeds are selected from each media preference
cluster selected. One or more media station seeds 235 and 240 are
selected from the each media preference cluster selected 205 and
210 by a set of predetermined selection rules. Some non-limiting
examples of media station seeds are songs, videos, artists, albums,
genres of music or film, actors, etc. In some embodiments, the
media selection rules can dictate selecting a media station seed or
seeds based on the number of instances of the media station seed in
a media preference cluster. For example, a media station seed such
as an artist can be selected based on the number of media items
authored by the artist that are in the media preference cluster. In
some embodiments, the media selection rules can dictate selecting a
media station seed or seeds based on whether a media station seed
has been designated as a heat seeker. For example, the media
selection rules can dictate that artists and/or songs designated as
a heat seeker be selected as a media station seed. In some
embodiments, the media selection rules can dictate selecting a
media station seed or seeds based on the popularity of a media
item. For example, the media selection rules can dictate that
artists and/or songs designated as billboard top 100 be selected as
a media station seed. In other instances, there may be some minimum
threshold value of occurrence within a cluster that an artist must
overcome to be considered as a candidate for selection as a media
station seed.
[0072] In some embodiments, it can be possible to only utilize one
media station seed.
[0073] After a media station seed or seeds are selected, at block
430 a media station is generated from the media station seed or
seeds. In some embodiments the media station generator 310
generates algorithmic media stations. The media station seed or
seeds selected are used as inputs into a media station generation
module. Using the media station seed or seeds as inputs, the media
station generation module automatically generates an online media
station customized for the user.
[0074] At block 435, the generated media station is provided to an
electronic device of the user. The customized media station created
may be an algorithmic media station providing a sequence of media
items that can be played or executed by a media station player
application on a client device.
[0075] FIG. 5A, and FIG. 5B illustrate exemplary possible system
embodiments. The more appropriate embodiment will be apparent to
those of ordinary skill in the art when practicing the present
technology. Persons of ordinary skill in the art will also readily
appreciate that other system embodiments are possible.
[0076] FIG. 5A illustrates a conventional system bus computing
system architecture 500 wherein the components of the system are in
electrical communication with each other using a bus 505. Exemplary
system 500 includes a processing unit (CPU or processor) 510 and a
system bus 505 that couples various system components including the
system memory 515, such as read only memory (ROM) 520 and random
access memory (RAM) 525, to the processor 510. The system 500 can
include a cache of high-speed memory connected directly with, in
close proximity to, or integrated as part of the processor 510. The
system 500 can copy data from the memory 515 and/or the storage
device 530 to the cache 512 for quick access by the processor 510.
In this way, the cache can provide a performance boost that avoids
processor 510 delays while waiting for data. These and other
modules can control or be configured to control the processor 510
to perform various actions. Other system memory 515 may be
available for use as well. The memory 515 can include multiple
different types of memory with different performance
characteristics. The processor 510 can include any general purpose
processor and a hardware module or software module, such as module
1 532, module 2 534, and module 3 536 stored in storage device 530,
configured to control the processor 510 as well as a
special-purpose processor where software instructions are
incorporated into the actual processor design. The processor 510
may essentially be a completely self-contained computing system,
containing multiple cores or processors, a bus, memory controller,
cache, etc. A multi-core processor may be symmetric or
asymmetric.
[0077] To enable user interaction with the computing device 500, an
input device 545 can represent any number of input mechanisms, such
as a microphone for speech, a touch-sensitive screen for gesture or
graphical input, keyboard, mouse, motion input, speech and so
forth. An output device 535 can also be one or more of a number of
output mechanisms known to those of skill in the art. In some
instances, multimodal systems can enable a user to provide multiple
types of input to communicate with the computing device 500. The
communications interface 540 can generally govern and manage the
user input and system output. There is no restriction on operating
on any particular hardware arrangement and therefore the basic
features here may easily be substituted for improved hardware or
firmware arrangements as they are developed.
[0078] Storage device 530 is a non-volatile memory and can be a
hard disk or other types of computer readable media which can store
data that are accessible by a computer, such as magnetic cassettes,
flash memory cards, solid state memory devices, digital versatile
disks, cartridges, random access memories (RAMs) 525, read only
memory (ROM) 520, and hybrids thereof.
[0079] The storage device 530 can include software modules 532,
534, 536 for controlling the processor 510. Other hardware or
software modules are contemplated. The storage device 530 can be
connected to the system bus 505. In one aspect, a hardware module
that performs a particular function can include the software
component stored in a computer-readable medium in connection with
the necessary hardware components, such as the processor 510, bus
505, display 535, and so forth, to carry out the function.
[0080] FIG. 5B illustrates a computer system 550 having a chipset
architecture that can be used in executing the described method and
generating and displaying a graphical user interface (GUI).
Computer system 550 is an example of computer hardware, software,
and firmware that can be used to implement the disclosed
technology. System 550 can include a processor 555, representative
of any number of physically and/or logically distinct resources
capable of executing software, firmware, and hardware configured to
perform identified computations. Processor 555 can communicate with
a chipset 560 that can control input to and output from processor
555. In this example, chipset 560 outputs information to output
565, such as a display, and can read and write information to
storage device 570, which can include magnetic media, and solid
state media, for example. Chipset 560 can also read data from and
write data to RAM 575. A bridge 580 for interfacing with a variety
of user interface components 585 can be provided for interfacing
with chipset 560. Such user interface components 585 can include a
keyboard, a microphone, touch detection and processing circuitry, a
pointing device, such as a mouse, and so on. In general, inputs to
system 550 can come from any of a variety of sources, machine
generated and/or human generated.
[0081] Chipset 560 can also interface with one or more
communication interfaces 590 that can have different physical
interfaces. Such communication interfaces can include interfaces
for wired and wireless local area networks, for broadband wireless
networks, as well as personal area networks. Some applications of
the methods for generating, displaying, and using the GUI disclosed
herein can include receiving ordered datasets over the physical
interface or be generated by the machine itself by processor 555
analyzing data stored in storage 570 or 575. Further, the machine
can receive inputs from a user via user interface components 585
and execute appropriate functions, such as browsing functions by
interpreting these inputs using processor 555.
[0082] It can be appreciated that exemplary systems 500 and 550 can
have more than one processor 510 or be part of a group or cluster
of computing devices networked together to provide greater
processing capability.
[0083] For clarity of explanation, in some instances the present
technology may be presented as including individual functional
blocks including functional blocks comprising devices, device
components, steps or routines in a method embodied in software, or
combinations of hardware and software.
[0084] In some embodiments the computer-readable storage devices,
mediums, and memories can include a cable or wireless signal
containing a bit stream and the like. However, when mentioned,
non-transitory computer-readable storage media expressly exclude
media such as energy, carrier signals, electromagnetic waves, and
signals per se.
[0085] Methods according to the above-described examples can be
implemented using computer-executable instructions that are stored
or otherwise available from computer readable media. Such
instructions can comprise, for example, instructions and data which
cause or otherwise configure a general purpose computer, special
purpose computer, or special purpose processing device to perform a
certain function or group of functions. Portions of computer
resources used can be accessible over a network. The computer
executable instructions may be, for example, binaries, intermediate
format instructions such as assembly language, firmware, or source
code. Examples of computer-readable media that may be used to store
instructions, information used, and/or information created during
methods according to described examples include magnetic or optical
disks, flash memory, USB devices provided with non-volatile memory,
networked storage devices, and so on.
[0086] Devices implementing methods according to these disclosures
can comprise hardware, firmware and/or software, and can take any
of a variety of form factors. Typical examples of such form factors
include laptops, smart phones, small form factor personal
computers, personal digital assistants, and so on. Functionality
described herein also can be embodied in peripherals or add-in
cards. Such functionality can also be implemented on a circuit
board among different chips or different processes executing in a
single device, by way of further example.
[0087] The instructions, media for conveying such instructions,
computing resources for executing them, and other structures for
supporting such computing resources are means for providing the
functions described in these disclosures.
[0088] Although a variety of examples and other information was
used to explain aspects within the scope of the appended claims, no
limitation of the claims should be implied based on particular
features or arrangements in such examples, as one of ordinary skill
would be able to use these examples to derive a wide variety of
implementations. Further and although some subject matter may have
been described in language specific to examples of structural
features and/or method steps, it is to be understood that the
subject matter defined in the appended claims is not necessarily
limited to these described features or acts. For example, such
functionality can be distributed differently or performed in
components other than those identified herein. Rather, the
described features and steps are disclosed as examples of
components of systems and methods within the scope of the appended
claims.
* * * * *