U.S. patent application number 14/216877 was filed with the patent office on 2015-01-01 for system and method for scoring and ranking digital content based on activity of network users.
The applicant listed for this patent is James A. Cady, Jordan Michael Green, Jack Isquith, Scott Philip Riggs, Nallan Chakravarthi Suresh. Invention is credited to James A. Cady, Jordan Michael Green, Jack Isquith, Scott Philip Riggs, Nallan Chakravarthi Suresh.
Application Number | 20150006544 14/216877 |
Document ID | / |
Family ID | 52116680 |
Filed Date | 2015-01-01 |
United States Patent
Application |
20150006544 |
Kind Code |
A1 |
Isquith; Jack ; et
al. |
January 1, 2015 |
SYSTEM AND METHOD FOR SCORING AND RANKING DIGITAL CONTENT BASED ON
ACTIVITY OF NETWORK USERS
Abstract
Systems and methods for delivering personalized content streams
over a variety of devices and networks are disclosed. A user's
preferences, customizations, and content are made available to the
user through specialized clients for home, car, office, and
portable environments. In order to enable personalized content
streams on devices that are intermittently connected or that make
use of network bandwidth during off-peak hours, the system
prescribes a distributed content sequencing engine and a
distributed, synchronized user profile and station/channel
definitions. The system is also designed to support players
connected via unidirectional or asymmetric connections such as
satellite radios with or without an upstream data link.
Inventors: |
Isquith; Jack; (La
Crescenta, CA) ; Green; Jordan Michael; (Escondido,
CA) ; Suresh; Nallan Chakravarthi; (Fremont, CA)
; Cady; James A.; (Beaverton, OR) ; Riggs; Scott
Philip; (San Diego, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Isquith; Jack
Green; Jordan Michael
Suresh; Nallan Chakravarthi
Cady; James A.
Riggs; Scott Philip |
La Crescenta
Escondido
Fremont
Beaverton
San Diego |
CA
CA
CA
OR
CA |
US
US
US
US
US |
|
|
Family ID: |
52116680 |
Appl. No.: |
14/216877 |
Filed: |
March 17, 2014 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61792191 |
Mar 15, 2013 |
|
|
|
Current U.S.
Class: |
707/748 |
Current CPC
Class: |
G06F 16/435
20190101 |
Class at
Publication: |
707/748 |
International
Class: |
G06F 17/30 20060101
G06F017/30; G06N 5/04 20060101 G06N005/04 |
Claims
1. (canceled)
2. (canceled)
3. (canceled)
4. (canceled)
5. (canceled)
6. (canceled)
7. (canceled)
8. (canceled)
9. (canceled)
10. (canceled)
11. A system of scoring digital content, the system comprising: a
processor configured to: receive, at a server from a plurality of
user devices, interaction data indicative of interaction of a
corresponding plurality of users with respective ones of a
plurality of content items rendered by the plurality of user
devices wherein the interaction data includes first interaction
data and second interaction data wherein the first interaction data
and the second interaction data are respectively representative of
different first and second user interactions with ones of the
plurality of content items; determine, for each of the plurality of
content items, a total initiation number representing a number of
times that each of the plurality of content items was at least
partially rendered by ones of the plurality of user devices;
determine, for each of the plurality of content items and based at
least upon a portion of the first interaction data associated with
each of the plurality of content items, a first metric count;
determine, for each of the plurality of content items and based at
least upon a portion of the second interaction data associated with
each of the plurality of content items, a second metric count;
determine, for each of the plurality of content items, respective
first and second statistical measures of the first metric count and
the second metric count associated with each of the plurality of
content items; determine, for each of the plurality of content
items, a third statistical measure based upon the total initiation
number associated with each of the plurality of content items; and
determine, based on the first, second and third statistical
measures associated with each of the plurality of content items, a
score for each of the plurality of content items.
12. The system of claim 11, wherein the processor is further
configured to determine includes weighting the first and second
statistical measures using a first weight and a second weight,
respectively.
13. The system of claim 12, wherein the first weight has a positive
value and the second weight has a negative value.
14. The system of claim 12, wherein the determining includes
weighting the third statistical measure using a third weight.
15. The system of claim 14, wherein the third weight is a positive
value.
16. The system of claim 11, wherein the first, second and third
statistical measures are determined for a first time period.
17. The system of claim 16 wherein the first interaction data and
the second interaction data are received in association with
respective rendering times of the respective ones of the plurality
of content items.
18. The system of claim 11, wherein the first interaction data
represents at least one of an indication that one of the plurality
of content items has been completely rendered and an indication
that a user has liked one of the plurality of content items.
19. The system of claim 11, wherein the second interaction data
represents at least one of an indication that a user dislikes one
of the plurality of content items, a user has banned one of the
plurality of content items from future play on one of the user
devices, a user has skipped rendering one of the plurality of
content items, and a user has changed stations during rendering one
of the plurality of content items.
20. The system of claim 11 wherein the processor is further
configured to send the plurality of content items to the plurality
of user devices.
21. (canceled)
22. (canceled)
23. (canceled)
24. (canceled)
25. (canceled)
26. (canceled)
27. (canceled)
28. (canceled)
29. (canceled)
30. (canceled)
31. A method for content scoring, the method comprising: receiving,
at a server from a plurality of user devices, first interaction
data indicative of interaction by a corresponding plurality of
users with a first content item respectively rendered by the
plurality of user devices wherein the first interaction data
includes first rendering frequency data indicative of a number of
times rendering of the first content item was initiated during a
first predetermined time period; receiving, at the server from the
plurality of user devices, second interaction data indicative of
interaction by the corresponding plurality of users with a second
content item respectively rendered by the plurality of user devices
wherein the second interaction data includes second rendering
frequency data indicative of a number of times rendering of the
second content item was initiated during a second predetermined
time period; determining a first content score associated with the
first content item based upon the first interaction data and the
first rendering frequency data; and determining a second content
score associated with the second content item based upon the second
interaction data and second rendering frequency data.
32. The method of claim 31 wherein the first predetermined time
period is identical to the second predetermined time period.
33. The method of claim 31 wherein the determining the first
content score includes generating first weighted interaction data
based upon the first interaction data and first weighting factor
information.
34. The method of claim 33 wherein the determining the second
content score includes generating second weighted interaction data
based upon the second interaction data and second weighting factor
information.
35. The method of claim 31 wherein the first interaction data
further includes finishing information indicative of a number of
times that the first content item was rendered in its entirety
during the predetermined time period.
36. The method of claim 31 wherein the determining the first
content score includes generating first weighted rendering
frequency data based upon the first rendering frequency data and
first weighting factor information.
37. The method of claim 31 wherein the determining the second
content score includes generating second weighted rendering
frequency data based upon the second rendering frequency data and
second weighting factor information.
38. (canceled)
39. (canceled)
40. (canceled)
41. (canceled)
42. (canceled)
43. (canceled)
44. (canceled)
45. (canceled)
46. (canceled)
47. (canceled)
48. (canceled)
49. (canceled)
50. (canceled)
51. (canceled)
52. (canceled)
53. (canceled)
54. (canceled)
55. (canceled)
56. (canceled)
57. (canceled)
58. (canceled)
59. (canceled)
60. (canceled)
61. (canceled)
62. (canceled)
63. (canceled)
64. (canceled)
65. (canceled)
66. A non-transient computer readable medium storing program code
which, when executed by a processor, causes the processor to:
receive, at a server from a plurality of user devices, first
interaction data indicative of interaction of a corresponding
plurality of users with a first content item respectively rendered
by the plurality of user devices; receive, at the server from the
plurality of user devices, second interaction data indicative of
interaction of the corresponding plurality of users with a second
content item respectively rendered by the plurality of user devices
wherein the first content item and the second content item are
associated with a first entity; and determine a first content score
associated with the first entity based upon the first interaction
data and the second interaction data.
67. The non-transient computer readable medium of claim 66 wherein
the program code causes the processor to: receive, at the server
from the plurality of user devices, third interaction data
indicative of interaction of the corresponding plurality of users
with a third content item respectively rendered by the plurality of
user devices; receive, at the server from the plurality of user
devices, fourth interaction data indicative of interaction of the
corresponding plurality of users with a fourth content item
respectively rendered by the plurality of user devices wherein the
third content item and the fourth content item are associated with
a second entity; and determine a second content score associated
with the second entity based upon the first interaction data and
the second interaction data.
68. The non-transient computer readable medium of claim 66 wherein
the first entity comprises an artist.
69. The non-transient computer readable medium of claim 66 wherein
the first entity comprises an album.
70. The non-transient computer readable medium of claim 66 wherein
the first entity comprises a musical genre.
71. The non-transient computer readable medium of claim 66 wherein
the program code causes the processor to determine the first
content score by generating weighted interaction data based upon
the first interaction data and first weighting information.
72. The non-transient computer readable medium of claim 71 wherein
the program code causes the processor to generate weighted
interaction data by determining a statistical measure of the first
interaction data and weighting the statistical measure in
accordance with the first weighting information.
73. A system, comprising: a processor configured to: receive, at a
server from a plurality of user devices, first interaction data
indicative of interaction of a corresponding plurality of users
with a content item respectively rendered by the plurality of user
devices during a first time period; determine a rate of change of
the first interaction data; and predict a predicted content score
associated with the content item based at least upon the rate of
change of the first interaction data.
74. The system of claim 73 wherein the processor is further
configured to determine, based upon the first interaction data, a
rate of change of an initial content score associated with the
content item and to predict, based at least upon the rate of change
of the initial content score and the rate of change of the first
interaction data, the predicted content score.
75. The system of claim 74 wherein the processor is further
configured to predict the predicted content score by performing a
computation using a predictive model for content scoring and the
rate of change of the initial content score.
76. The system of claim 73 wherein the processor is further
configured to determine a rate of change of second interaction data
indicative of other interaction of a corresponding plurality of
users with the content item during the first time period; wherein
the processor predicts the predicted content score further based
upon the rate of change of the second interaction data.
77. The system of claim 73 wherein the content item comprises a
digital music track, the predicting being further based upon at
least one of a musical genre, artist and song length associated
with the track.
78. (canceled)
79. A system, comprising: a processor configured to: receive, at a
server from a plurality of user devices, first interaction data
indicative of interaction of a corresponding plurality of users
with a first content item respectively rendered by the plurality of
user devices during a first time period; determine, based upon the
first interaction data, a predictive model for content scoring; and
predict, using the predictive model, a content score associated
with a second content item based at least in part upon an attribute
of the second content item.
80. The system of claim 79 wherein the second content item
comprises a digital music track and the attribute is included
within the set consisting of: a musical genre, artist and song
length associated with the track.
81. The system of claim 79 wherein the second content item
comprises a digital music track and the attribute is included
within the set consisting of: a date of release, lyric keyword and
performance type associated with the track
82. (canceled)
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to and the benefit of U.S.
Provisional Patent Application No. 61/792,191, entitled SYSTEM AND
METHOD FOR SCORING AND RANKING DIGITAL CONTENT BASED ON ACTIVITY OF
NETWORK USERS, filed Mar. 15, 2013, the disclosure of which is
incorporated herein by reference in its entirety. This application
is related to U.S. patent application Ser. No. 13/838,244, entitled
SYSTEM AND METHOD FOR SCORING AND RANKING DIGITAL CONTENT BASED ON
ACTIVITY OF NETWORK USERS, filed Mar. 15, 2013, the disclosure of
which is incorporated herein by reference in its entirety.
FIELD
[0002] This disclosure relates generally to the distribution of
digital media over networks and broadcast systems. More
particularly but not exclusively, this disclosure relates to
systems and methods for scoring the popularity of digital media
based on listener response and interaction.
BACKGROUND
[0003] The emergence of the Internet, and in particular, broadband
connections, along with efficient media compression techniques has
lead to rapid growth in the distribution of digital media. Digital
audio has preceded digital video in this evolution because its
smaller size allowed easier distribution within the constraints of
the early Internet and storage systems. Webcasters including
Musicmatch, Real Networks, Live365, Launchcast and others began
sending digital audio streams to clients across the Internet. While
the broadcast media (radio and television) was constrained to
relatively small numbers of channels and no interactivity, webcast
radio offered a virtually unlimited number of channels with each
individual user having the capability interact with their
programming.
[0004] Music ranking services have typically focused on radio play
and sales. While radio play is still very popular, more and more
people are listening to music streamed over the Internet and/or
downloaded and pre-cached to various communication devices to be
listened to at a later time. Rankings based on radio play alone
therefore do not take into account a large number of listeners of
these streamed and pre-cached multimedia Internet-based services.
In addition, the radio rankings are generally based solely on which
songs are played by a DJ and do not take into account the number of
listeners actually listening to the songs. In addition, radio does
not offer any way to sense whether a user listens to a song, turns
the radio off when a song is played or changes the channel when a
song is played.
SUMMARY
[0005] Exemplary embodiments of the teachings disclosed herein are
shown in the drawings are summarized below. These and other
embodiments are more fully described in the Detailed Description
section. It is to be understood, however, that there is no
intention to limit the claims to the forms described in this
Summary or in the Detailed Description. One skilled in the art can
recognize that there are numerous modifications, equivalents and
alternative constructions that fall within the spirit and scope of
the disclosed teachings as expressed in the claims.
[0006] In one aspect the disclosure relates to a method and system
of scoring digital content, the method includes receiving, at a
server from a plurality of user devices, interaction data
indicative of interaction of a corresponding plurality of users
with respective ones of a plurality of content items rendered by
the plurality of user devices. The interaction data may include
first interaction data and second interaction data wherein the
first interaction data and the second interaction data are
respectively representative of different first and second user
interactions with ones of the plurality of content items. The
method also includes determining, for each of the plurality of
content items, a total initiation number representing a number of
times that each of the plurality of content items was at least
partially rendered by ones of the plurality of user devices. In
addition, the method includes determining, for each of the
plurality of content items and based at least upon a portion of the
first interaction data associated with each of the plurality of
content items, a first metric count. The method also includes
determining, for each of the plurality of content items and based
at least upon a portion of the second interaction data associated
with each of the plurality of content items, a second metric count
and determining, for each of the plurality of content items,
respective first and second statistical measures of the first
metric count and the second metric count associated with each of
the plurality of content items, Finally, the method includes
determining, for each of the plurality of content items, a third
statistical measure based upon the total initiation number
associated with each of the plurality of content items and
determining, based on the first, second and third statistical
measures associated with each of the plurality of content items, a
score for each of the plurality of content items.
[0007] In another aspect the disclosure relates to a system and
method for content scoring which includes receiving, at a server
from a plurality of user devices, first interaction data. The first
interaction data is indicative of interaction by a corresponding
plurality of users with a first content item respectively rendered
by the plurality of user devices wherein the first interaction data
includes first rendering frequency data indicative of a number of
times rendering of the first content item was initiated during a
first predetermined time period. The method further includes
receiving, at the server from the plurality of user devices, second
interaction data indicative of interaction by the corresponding
plurality of users with a second content item respectively rendered
by the plurality of user devices wherein the second interaction
data includes second rendering frequency data indicative of a
number of times rendering of the second content item was initiated
during a second predetermined time period. In addition, the method
includes determining a first content score associated with the
first content item based upon the first interaction data and the
first rendering frequency data and determining a second content
score associated with the second content item based upon the second
interaction data and second rendering frequency data.
[0008] The disclosure also pertains to a system and method which
involves receiving, at a server from a plurality of user devices,
first interaction data indicative of interaction of a corresponding
plurality of users with a first content item respectively rendered
by the plurality of user devices. The method further involves
receiving, at the server from the plurality of user devices, second
interaction data indicative of interaction of the corresponding
plurality of users with a second content item respectively rendered
by the plurality of user devices wherein the first content item and
the second content item are associated with a first entity. The
method also includes determining a first content score associated
with the first entity based upon the first interaction data and the
second interaction data.
[0009] In another aspect, the disclosure relates to a system
including a processor configured to receive, at a server from a
plurality of user devices, first interaction data indicative of
interaction of a corresponding plurality of users with a content
item respectively rendered by the plurality of user devices during
a first time period. The processor is further configured to
determine a rate of change of the first interaction data and
predict a predicted content score associated with the content item
based at least upon the rate of change of the first interaction
data.
[0010] The disclosure also pertains to a system including a
processor configured to receive, at a server from a plurality of
user devices, first interaction data indicative of interaction of a
corresponding plurality of users with a first content item
respectively rendered by the plurality of user devices during a
first time period. The processor is further configured to
determine, based upon the first interaction data, a predictive
model for content scoring and to predict, using the predictive
model, a content score associated with a second content item based
at least in part upon an attribute of the second content item.
[0011] As previously stated, the above-described embodiments and
implementations are for illustration purposes only. Numerous other
embodiments, implementations, and details of the systems and
methods described herein are easily recognized by those of skill in
the art from the following descriptions and claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Various objects and advantages and a more complete
understanding of the present disclosure and teachings herein are
apparent and more readily appreciated by reference to the following
Detailed Description and to the appended claims when taken in
conjunction with the accompanying Drawings wherein:
[0013] FIG. 1 is an illustration of one embodiment of a system for
providing content to multiple clients in accordance with the
disclosure.
[0014] FIG. 2 is an illustration of one embodiment of components
comprising radio services in accordance with aspects of the
disclosure.
[0015] FIG. 3 is an illustration of one embodiment of a sub-system
of radio services related to content sequencing in accordance with
aspects of the disclosure.
[0016] FIG. 4 is an illustration of one embodiment of a web based
radio client in accordance with aspects of the disclosure.
[0017] FIG. 5 is an illustration of one embodiment of a system
supporting a sometimes connected player in accordance with aspects
of the disclosure.
[0018] FIG. 6 is an illustration of one embodiment of a system
supporting a sometimes connected satellite radio in accordance with
aspects of the disclosure.
[0019] FIG. 7 is flowchart of an exemplary process for determining
ranking scores of content items based on user interactions in
accordance with the disclosure.
DETAILED DESCRIPTION
[0020] Described herein are systems and methods used to judge the
popularity of content (e.g., songs) communicated to user devices
through an Internet-based streaming or pre-caching service. In one
aspect, the disclosed system and method leverages the capability of
Internet-based content streaming and pre-caching services to
receive feedback relating to user interaction with content. In one
embodiment the popularity of content is represented by a score that
is based on a mathematical computation using various listener
interaction parameters. When listeners listen to content online,
they may be allowed to interact with the user application and rate
the content for likes (e.g., "hearts") or dislikes (e.g., "bans"),
or skip a track or change the channel. A server system collects all
the above information for each track rendered though the user
application, and along with the listening frequency, combines these
parameters using weighting factors to create a score for the track.
If a user indicates a positive response to a content item (e.g.,
the user expresses that the item is "liked" and/or the user allows
the content item to be rendered in its entirety), this results in a
positive contribution to the score. Likewise, if a user bans the
content item from being rendered in the future, skips the content
item or, in embodiments in which multiple "stations" of content are
provided, changes stations, this will result in a negative impact
on the score.
[0021] Referring now to FIG. 1, there is shown a system 100 in
which a variety of clients access, over a variety of networks,
services implementing a Radio Service 105 in a manner consistent
with systems and methods described herein. The Radio Service 105
can offer various streams of content matching one or more channel
profiles, genre profiles or personal preference profiles. The Radio
Service 105 also allows devices to pre-cache content to be played
later in addition to streaming real time content.
[0022] Various devices have access to the Radio Service 105. A Web
Based Player 101 is a media player that has a persistent connection
to the Internet and accesses Radio Services 105 via a web-services
interface. A Wireless Networked Player 102 is a media player that
connects periodically or opportunistically to wireless networks,
for example, the IEEE 802.11 family of wireless networks. The
Wireless Networked Player 102 synchronizes content and
personalization profiles while connected, and need not be connected
while rendering personalized radio. This configuration is
especially suitable for hand-held portable media players.
[0023] A Cellular Phone Based Player 103 connects to Radio Services
105 over a Cellular Network 106. Because Cellular networks may be
very busy during peak times but have excess capacity during
off-peak hours, the Cell Phone Based Player 103 client can
synchronize content and/or personalization profiles during off peak
hours, resulting in a more economical use of the network.
[0024] A Satellite Radio 104 can utilize the content sequencing
logic to de-couple the rendering of audio for the end-user from the
reception of content from a Satellite 108. This allows the radio to
build a cache of content during periods of good reception, and to
play back cached content with no audible drop-outs due to loss of
signal in non-real time. The caching of content on this satellite
radio client means that the radio can support more channels than
the bandwidth of the satellite connection could support if
broadcasting in real-time.
[0025] The Satellite Radio 104 may also have other connectivity to
Radio Services 105. For example, if the Satellite Radio 104
additionally has an uplink to Radio Services 105 via an Internet,
Wireless, or Cellular network connection, personalized user profile
changes on the device can be synchronized back to the Radio
Services 105 and ultimately to other clients. In addition,
indications of user interactions during rendering of content can
also be communicated over the uplink. Otherwise, the Satellite
Radio 104 can operate on a non-synchronized local profile, or can
receive a personalized profile edited on other clients and
transmitted across the Satellite link.
[0026] Referring now to FIG. 2, components 200 comprising one
embodiment of Radio Services 105 are detailed. Web Servers 201 and
Web Content Storage 209 serve HTML, Javascript, Images, Macromedia
Flash and/or other objects utilized by web browser clients. Profile
Web Services 202 and a Profile Database 210 store end-user specific
profile information including station customizations, content
preferences, and history of recent end-user playback and other
events.
[0027] Content Sequencing Web Services 203 support content refresh
for clients that cache content, as well as `next track` requests
for thin clients such as browser based players. The Content
Database 211 may be used to catalog the available content.
[0028] Media Ranking Server 204 and Media Storage 212 may be used
to serve content in the form of digital media files, such as are
described in the related applications, to clients. In addition, the
Media Ranking Server 204 receives indications of user interaction
associated with rendering of media content on various communication
devices such as the web based player 101, the wireless player 102,
the cellular phone based player 103 and the satellite radio 104.
The Media Ranking Server 204 determines rankings for the content
using the methods described herein.
[0029] A Broadcast Scheduler 205 decides which tracks should be
sent across the satellite link to Satellite 108 for broadcast to
Satellite Radios 104. Collectively, the web services are available
across the Internet 206 or connected Cellular Networks 207.
[0030] Referring now to FIG. 3, the configuration of one embodiment
of a web-based radio client system 300 is described.
[0031] The web-based radio client system 300 includes one or more
Content Sequencers 304. Content Database 211 and Profile Database
210 provide the data used in Content Sequencer 304. The Content
Database 211 stores a catalog of available radio audio tracks and
may store the Station Definitions 306 of pre-programmed radio
stations.
[0032] A Profile Database 210 stores end-user's Content Ratings and
Preferences 307, Station Settings 308 and Play History 309. In an
exemplary embodiment, this data is expressed as one or more XML
documents or trees (nodes). The Profile Database 210 may store
Station Definitions 306 where the Station Definition can be
custom-made by the end-user. In some embodiments user customization
information including Content Ratings and Preferences, Station
Settings, Play History, and/or other user customization criteria
may be stored in a common user profile in Profile Database 210. In
other embodiments, user customization information may be stored in
one or more separate user profiles.
[0033] In some embodiments, user profiles may be synchronized
between two or more types of clients, facilitating user profile
updating and synchronization across multiple types of clients used
by a particular end-user. For example, in some embodiments user
profiles may be synchronized between a Web Based Player 101 and a
Wireless Networked Player 102, Cell Phone Based Player 103 or
Satellite Radio 104 so that the user profile information on all
synchronized clients are updated to the most recent profile.
Additional details of one embodiment of such synchronization are
further described below with respect to a Sometimes Connected
Player 501.
[0034] Content Sequencer 304 utilizes the Content Database 211 in
conjunction with the Station Definition 306, Content Ratings and
Preferences 307, and Station Settings 308 to create and maintain a
sequence of radio tracks for a particular radio station.
[0035] The Content Sequencer 304 may be used by more specialized
components to deliver various services to the clients. A Content
Refresh Service 301 may utilize the Content Sequencer 304 to
optimize the choice of tracks to download to clients. A primary
specialization in one embodiment is that the Content Refresh
Service 301 typically does not choose tracks that are already in
the client cache.
[0036] Content Sequence Service 302 handles "thin" clients such as
Web Browser based players that do not have their own Content
Sequencer 304. These clients simply request the next radio track
for playback and then stream the indicated track. When the track
finishes, the client requests the subsequent track to play, and so
on.
[0037] Satellite Scheduler 303 multiplexes the output of Content
Sequencer 304 for the stations that are broadcast on the satellite
link. The Satellite Scheduler 303 specializes the Content Sequencer
304 output to optimize the utilization of the satellite link:
content that is most likely to be played by the players and least
likely to already be in the cache is prioritized.
[0038] Referring now to FIG. 4, the configuration of one embodiment
of a web-based radio client system 400 in a manner consistent with
the disclosure is described.
[0039] As shown in FIG. 4, a Web Based Player 101 may be loaded
into a user's web browser 460 in one exemplary embodiment. The Web
Servers 201 load a combination of Javascript programming, Flash
objects, HTML, and similar browser content to implement a media
player in the browser. On Microsoft operating systems, an Active X
control may be employed to drive Windows Media Player or similar
functionality within the browser.
[0040] In alternate embodiments, the Web Based Player functionality
may be embedded in a standalone software client application or
hardware devices such as consumer electronics components for a home
stereo or entertainment system. However, in this configuration, the
Web Based Player is presumed to have a continuous, persistent
network connection.
[0041] The Web Based Player 101 interacts directly with the Profile
Web services 202 to provide information regarding user preferences
as they are indicated by the end user through a user interface 410
of the player 101. The Web Based Player 101 interacts directly with
the Content Sequence Service 302 to get the next track to play in
response to various events triggered by the user interface or the
underlying media player, for example a user initiated request to
skip the current track or the a player report that the current
track has finished.
[0042] The user interface 410 also provides ways for the user to
interact during rendering of the tracks so as to provide feedback
to the Media Ranking Server 204. The interactions can provide
indications of how the user likes or dislikes a track. For example,
the user interface 410 can include a "like" or "heart" button that
can be actuated if the user likes a track. The user interface 410
can also include a "dislike" button that can be actuated by the
user to indicate that they dislike the track. The user interface
410 can also include an "indifferent" button that the user can
actuate to indicate that they have no strong feeling one way or
another about a song. The user interface 410 can also include a
skip button to skip a track currently being rendered. The user
interface 410 also provides a way for the user to change channels
while a track is being rendered.
[0043] The Web Based Player 101 communicates indications of the
user interactions with the user interface 410 to the Media Ranking
Server 204. In one embodiment, the user interaction indications can
be sent to the Media Ranking Server 204 in real time after the
interaction takes place. In this embodiment, the Media Ranking
Server 204 is aware of which track is being rendered on the Web
Based Player 101 when the user interaction takes place and,
therefore, the indication sent to the Media Ranking Server 204 need
not indicate the identity of the track being rendered. In other
embodiments, the user interaction indications can be sent at a
later time and can include a track identifier and a time of
rendering such that the Media Ranking Server 204 can associate a
specific user interaction with a specific track at a specific
time.
[0044] In addition to communicating user interactions to the Media
Ranking Server 204, the Web Based Player 101 can communicate an
indication that a track has finished to the Media Ranking Server.
The Media Ranking Server 204 uses the information received from the
Web Based Player to determine rankings for content using the
methods described herein.
[0045] Referring now to FIG. 5, one embodiment of a configuration
500 supporting a Sometimes Connected Portable Device 501 is
described. The Sometimes Connected Portable Device 501 includes
Wireless Networked Players 102 and Cellular Phone Based Players
103. These players are designed to play and manage personalized
portable radio stations, such as are described in the related
applications, while only intermittently connected to the
network.
[0046] The Sometimes Connected Portable Device 501 synchronizes
profile data including Content Ratings and Preferences 307, Station
Settings 308, and Play History 309 while connected. In one
embodiment the synchronization is bi-directional.
[0047] Once the portable device 501 has synchronized the end-user
profile elements, it can request a content refresh through the
Content Refresh Service 301. In an exemplary embodiment, the
portable device 501 sends its current inventory associated with the
station to refresh to the Content Refresh Service 301. The Content
Refresh Service 301 creates a priority ordered list of content for
the device to download. The device 501 then downloads the indicated
content from the Media Ranking Server 204. Optionally, the device
501 may request the content from a Content Delivery Network 401.
The device uses the acquired content to supplement the given
station. The device then repeats the process for the other
stations.
[0048] The portable device 501 includes a user interface 510. The
user interface 510 provides ways for the user to interact during
rendering of the tracks so as to provide feedback to the Media
Ranking Server 204 in a manner similar to the user interface 410 of
the web based player 101.
[0049] The sometimes connected portable device 501 communicates
indications of the user interactions with the user interface to the
Media Ranking Server 204. Because the portable device 501 is only
connected intermittently to the Media Ranking Server 204, the user
interaction indications are only sent to the Media Ranking Server
204 at a time when the portable device 501 is in a connected state.
For this reason the indications include a track identifier and a
time of rendering such that the Media Ranking Server 204 can
associate a specific user interaction with a specific track at a
specific time.
[0050] In addition to communicating user interactions to the Media
Ranking Server 204, the portable device 501 can communicate an
indication that a track has finished to the Media Ranking Server.
The Media Ranking Server 204 uses the information received from the
portable device 501 to determine rankings for content using the
methods described herein.
[0051] Referring now to FIG. 6, one embodiment of a configuration
600 supporting a Sometimes Connected Satellite Radio 601 is
described. The Sometimes Connected Satellite Radio 701 is similar
to the Sometimes Connected Portable Device 501 shown in FIG. 5,
with the additional capability of receiving content from a
Satellite 108.
[0052] The Satellite Radio 601 includes a user interface 610. The
user interface 610 provides ways for the user to interact during
rendering of the tracks so as to provide feedback to the Media
Ranking Server 204 in a manner similar to the user interfaces 410
and 510 discussed above.
[0053] The satellite radio 601 communicates indications of the user
interactions with the user interface to the Media Ranking Server
204 via a wired or wireless uplink connection different than the
connection to the satellite 108. The satellite radio 601 can
communicate the indications to the Media Ranking Server using any
of the methods described above in reference to the Web Based Player
101 and the portable device 501.
[0054] Referring to FIG. 7, an exemplary process 700 for
determining ranking scores of content items based on user
interactions includes the stages shown. The process 700 can be
performed by various components of FIGS. 2-6. The process 700
starts at stage 705, where a plurality of content items (e.g.,
audio) are communicated to a plurality of user devices. Depending
on the type of user device (e.g., web based player 101, wireless
player 102, cell phone player 103 and satellite radio 104), the
content items can be communicated by one or more of the Media
Ranking Server 204, the satellite 108 via the broadcast scheduler
205, the content refresh service 301 or the content sequence
service 302. The content items can be streamed in real time to the
user devices or pre-cached to the user devices.
[0055] At stage 710, the Media Ranking Server 204 receives
indications of a plurality of different user interactions from the
plurality of user devices. The indications are associated with
respective ones of the plurality of content items communicated to
the user devices at stage 705. In the case of content items that
are streamed in real time, the indications of user interaction need
not identify the content item or the rendering time since the Media
Ranking Server can determine which content items are being streamed
to which user devices. In the case of devices that have pre-cached
content items, the indications of user interaction include an
identifier that identifies the content item with which the user
interaction is associated and optionally, the indications of user
interaction include a time that the interaction occurred.
[0056] Preferably, the indications of user interaction include at
least a first response type and a second response type where the
first and second response types represent different user
interactions. The user interactions represented by the first and
second response types can include interactions that are positive in
terms of increasing a ranking of the associated content item, or
negative in terms of decreasing the ranking of the associated
content item. Positive user interactions can include, but not be
limited to, one or more of the following indications: [0057]
Finishes--indicates that the content item was completed in its
entirety [0058] Likes or Hearts--indicates that the content item
was marked by the listener as a "like" [0059] Starts--indicates
that rendering of a content item was started (used with user
devices that pre-cache content items such that the Media Ranking
Sever could not otherwise determine which content item was being
rendered) [0060] Requests--indicates a user has requested a content
item after hearing the content item [0061] Repeat
Requests--indicates that a user has made multiple requests for the
same content item [0062] Searches--indicates that a user has
searched for a content item
[0063] Negative user interactions can include, but not be limited
to, one or more of the following indications: [0064]
Bans--indicates that a content item or artist was marked as a
"ban", meaning the listener did not want to hear the performance or
artist again [0065] Dislikes--indicates that the content item was
disliked by the listener [0066] Skips--indicates that the listener
skipped to the next track, indicating they were not interested in
listening to the content item to completion [0067] Change
Stations--indicates that the station was changed by the listener
during rendering of the content item
[0068] Some user interactions are neither positive or negative, but
can still be considered in determining a ranking score, such as the
following indication: [0069] Indifference--indicates that listener
has no strong feeling one way or the other about a content item
[0070] In one embodiment, a listener is limited to just one Like,
Heart or Dislike indication for each rendering of a content item.
In this way a user cannot overly influence the rankings by
inputting multiple indications.
[0071] At stage 715, the Media Ranking Server 204 determines a
total number of instances where rendering was at least initiated
for each content item at the plurality of user devices. This
determination can be made by totaling the number of times a content
item was streamed in real time to one of the user devices and the
number of Start indications received from user devices that
pre-cached the content item and then initiated rendering of the
cached content item.
[0072] In one embodiment, the total number of initiation instances
for each content item is scaled in order to arrive at a measure
between 0 and 1, referred to as a fractional Start metric or
S.sub.f. In this embodiment, the total number of initiation
instances for each content item can be divided (scaled) by the
total number of initiation instances that the content item in the
top 99.sup.th percentile position exhibited. For example, if there
were 100 content items and the second most rendered content item
(the 99.sup.th percentile position) experienced 1,000,000
initiations, then the total number of initiation instances for each
of the content items would be divided by 1,000,000. The resulting
scaled total initiation measure would be capped at 1.0 for any
content items with more than 1,000,000 initiations (i.e., the top
1%). The fractional Start metric can be calculated with the follow
relationship:
S f = log ( S S 99 * ) ( 1 ) ##EQU00001##
[0073] where S is the total number of initiation instances for a
particular content item, S.sub.99* is the number of initiation
instances for the content item in the 99.sup.th percentile position
of all content items in the ranking dataset, and S.sub.f is the
fractional Start metric.
[0074] In one embodiment, the total number of initiations for a
single content item resulting from one user can be limited to a
maximum number for a specified period of time. This limitation
could prevent a user from skewing the rankings of a content item.
For example, if the total number of initiations is determined for a
one week period, a number of initiations for one user for one
content item can be limited to 7, that is one per day.
[0075] At stage 720, the Media Ranking Server 204 determines a
metric count for at least a portion of the plurality of user
interactions for which indications are received at stage 710. The
metric counts determined at stage 720 can include any of the
following, depending on the scoring algorithm used to determine
ranking scores at stag 735, as described below: [0076] 1) Finishes
(F)--the number of times the rendering of the content item was
completed in its entirety [0077] 2) Likes or Hearts (H)--the number
of times the content item was indicated by listeners as a "like"
[0078] 3) Dislikes (D)--the number of times the content item was
indicated by the listeners as a "dislike" [0079] 4) Bans (B)--the
number of times the performance or artist was marked as a "ban",
meaning the listener did not want to hear the performance or artist
again [0080] 5) Skips (Sk)--the number of times the listener
skipped to the next track, indicating they were not interested in
listening to the performance to completion [0081] 6) Change
Stations (CS)--the number of times the station was changed by the
listener during the playing of the performance
[0082] In one embodiment, the metric counts for the user
interactions of each content item that are determined at stage 720
are scaled by the total number of initiations (S) for each
particular content item in order to arrive at a fractional measure
for the metric count having values between 0 and 1. The fractional
metric counts can be determined at stage 720 using the following
relations:
F f = log ( F S ) , ( 2 ) ##EQU00002##
[0083] where F.sub.f is the fractional metric count for
Finishes
H f = log ( H S ) , ( 3 ) ##EQU00003##
[0084] where H.sub.f is the fractional metric count for Likes or
Hearts
D f = log ( D S ) , ( 4 ) ##EQU00004##
[0085] where D.sub.f is the fractional metric count for
Dislikes
B f = log ( B S ) , ( 5 ) ##EQU00005##
[0086] where B.sub.f is the fractional metric count for Bans
Sk f = log ( Sk S ) , ( 6 ) ##EQU00006##
[0087] where Sk.sub.f is the fractional metric count for Skips
CS f = log ( CS S ) , ( 7 ) ##EQU00007##
[0088] where CS.sub.f is the fractional metric count for Change
Stations.
[0089] At stage 725, the Media Ranking Server 204 determines a
metric count statistical measure for each of the metric counts, or
fractional metric counts. The metric count statistical measure can
take the form of a Z-value for each of the metric counts, where
Z-value is a statistical measure defined by the deviation of the
value from the mean in terms of standard deviations. The various
Z-values can be obtained from the following equation:
Z i = i - .mu. i .sigma. i ( 8 ) ##EQU00008##
[0090] Here i is the fractional metric count in question (e.g.
F.sub.f, H.sub.f, D.sub.f, B.sub.f, Sk.sub.f, CS.sub.f, etc.), as
given by equations (2)-(7) above, .mu..sub.i is the mean of the
metric across the dataset for all content items, and a, is the
standard deviation of the metric across the dataset for all content
items.
[0091] At stage 730, the Media Ranking Server 204 determines an
initiation statistical measure for each of the content items based
on the total number of initiation instances (Starts (S) or
fractional Starts (S.sub.f)) determined at stage 715. The
initiation statistical measure can be determined in a way similar
to the metric count statistical measures by using equation (8)
above. However, for the initiation statistical measure, i is the
fractional Starts S.sub.f, as determined at stage 715 using
equation (1), for the content item of interest, .mu..sub.i is the
mean of the fractional Starts S.sub.f across the dataset for all
content items, and a, is the standard deviation of the fractional
Starts S.sub.f across the dataset for all content items
[0092] At stage 735, the Media Ranking Server 204 determines a
ranking score for each of the content items based on the metric
count statistical measures, and the initiation statistical measure.
In one embodiment, a raw ranking score for each content item is
determined using the following relation:
R=aZ.sub.s+bZ.sub.f+cZ.sub.h+dZ.sub.b+eZ.sub.sk+fZ.sub.cs (9)
[0093] where a, b, c, d, e and f, are weights. In one exemplary
embodiment, the weights in equation (9) for the raw ranking score R
are set as follows:
a=0.45,b=0.20,c=0.35,d=-0.15,e=-0.25 and f=-0.05 (10a-10f)
[0094] The weights a, b and c are positive and are associated with
the positive feedback metrics while the weights d, e and f are
negative and are associated with negative feedback metrics. The
weights were chosen such that a+b+c (all the positive metrics)
equals 1.0. The negative weights e, f and g were chosen to be
smaller than 1.0 (e.g., 0.45 in this example). The raw ranking
score is then scaled to be in a range from 0 to 100. The final
score, in this one exemplary embodiment, can be obtained by a
scaling equation, where x is a scaling constant, set at 0.4 for
this embodiment:
Score = 100 1 + x - R ( 11 ) ##EQU00009##
[0095] The ranking scores can be determined, for example, on a
weekly or biweekly basis. Equation (11) is only exemplary and other
scaling methods can be used. For example, the Media Ranking Server
204 can scale the score with a linear model going from 0 to 100
such as,
Score = 100 * R - Min ( R ) Max ( R ) - Min ( R ) ( 12 )
##EQU00010##
where Min and Max are the minimum and maximum raw ranking score R
across the entire dataset of content items.
[0096] Alternatively, the scaled ranking score can be determine
with a function similar to a logistic:
Score=50*(erf(x*(R+y))+1) (13)
where x and y are scaling constants.
[0097] The process 700, at stages 725 and 730, uses a Z-value for
normalizing. However, other statistical measures such as median,
percentile ranks etc., can be used to achieve similar
normalization. For example, the following relation can be used to
normalize metric counts instead of the Z-value method described
above:
ZZ i = i - Md i P 75 i - P 25 i ( 14 ) ##EQU00011##
[0098] Here P.sub.75i and P.sub.25i are the 75.sup.th and 25.sup.th
percentile metric counts, respectively, and Md.sub.i is the median
metric count for the i.sup.th metric for a content item.
[0099] The ranking determined at stage 735 can be communicated to
DJs involved in selection of content associated with stations or
channels rendered by the user devices. The rankings could, for
example, be used by DJs to adjust the frequency at which certain
content is played. Similarly, the Content Sequencing Web Service
203 and/or the Content Sequencer 304 could be adapted to result in
similar frequency adjustments based on the ranking scores.
[0100] The process 400 is exemplary only and modifications to the
process can be made without departing from the scope of the methods
described herein. For example, stages may be omitted, added or
rearranged.
[0101] The weights shown in equations 10a-10f above were created
using domain knowledge, but other suitable weights can be created
through various optimization processes as well. For example, an
optimization routine could be created to maximize the predictive
capabilities of a predictive model. A predictive model for
predicting the ranking score of a yet-to-be-rendered content item
can be created using supporting data such as artist, genre, lyrics,
time of year etc. The score may be predicted using a non-linear
regression model (e.g., Random Forests) using the score as the
dependent variable and a set of predictors as independent
variables. In a typical modeling process, one would compute the
score for data over a specified time span, the score as a function
of days since first play over consecutive time partitions after
release to look at score progression over time, and also compute
the predictor variables for that time span.
[0102] Two exemplary types of prediction that may be possible
include 1) prediction before the release of the content item, and
2) prediction soon after the release based on early returns to
determine what the long term score can become. For pre-release
prediction, predictor variables can include, but not be limited to,
genre of performance, artist, label, date of release, length of
song, keywords in lyrics, type of performance (e.g. concert, studio
recording) etc., which can then be used in a regression model to
predict the score. For post-release prediction, a predictor can use
the above variables along with variables indicating ramp-up
velocity (score change rate over time, start rate over time, heart
rate over time etc.). In this way, the most impactful metrics will
have the highest weight in the model.
[0103] Some embodiments of the systems and methods described herein
may include computer software and/or computer hardware/software
combinations configured to implement one or more processes or
functions associated with the methods such as those described above
and/or in the related applications. These embodiments may be in the
form of modules implementing functionality in software and/or
hardware software combinations. Embodiments may also take the form
of a computer storage product with a computer-readable medium
having computer code thereon for performing various
computer-implemented operations, such as operations related to
functionality as describe herein. The media and computer code may
be those specially designed and constructed for the purposes of the
claimed systems and methods, or they may be of the kind well known
and available to those having skill in the computer software arts,
or they may be a combination of both.
[0104] Examples of computer-readable media within the spirit and
scope of this disclosure include, but are not limited to: magnetic
media such as hard disks; optical media such as CD-ROMs, DVDs and
holographic devices; magneto-optical media; and hardware devices
that are specially configured to store and execute program code,
such as programmable microcontrollers, application-specific
integrated circuits ("ASICs"), programmable logic devices ("PLDs")
and ROM and RAM devices. Examples of computer code may include
machine code, such as produced by a compiler, and files containing
higher-level code that are executed by a computer using an
interpreter. Computer code may be comprised of one or more modules
executing a particular process or processes to provide useful
results, and the modules may communicate with one another via means
known in the art. For example, some embodiments of systems
described herein may be implemented using assembly language, Java,
C, C#, C++, or other programming languages and software development
tools as are known in the art. Other embodiments of the described
systems may be implemented in hardwired circuitry in place of, or
in combination with, machine-executable software instructions.
[0105] The foregoing description, for purposes of explanation, used
specific nomenclature to provide a thorough understanding of the
claimed systems and methods. However, it will be apparent to one
skilled in the art that specific details are not required in order
to practice the systems and methods described herein. Thus, the
foregoing descriptions of specific embodiments of the described
systems and methods are presented for purposes of illustration and
description. They are not intended to be exhaustive or to limit the
claims to the precise forms disclosed; obviously, many
modifications and variations are possible in view of the above
teachings. The embodiments were chosen and described in order to
best explain the principles of the described systems and methods
and their practical applications, they thereby enable others
skilled in the art to best utilize the described systems and
methods and various embodiments with various modifications as are
suited to the particular use contemplated. It is intended that the
following claims and their equivalents define the scope of the
systems and methods described herein.
* * * * *