System and methods for prioritizing mobile media player files

Abstract
Disclosed are embodiments of systems and methods for prioritizing mobile media player files by providing for the automated addition and/or deletion of media items for a mobile media player. In some embodiments, a statistical method may be provided for inferring which media items on a mobile media player should be deleted based on, for example, user taste data. In some embodiments, new media items may be loaded onto a user's mobile media player by creating one or more playlists from a playlist builder. The playlist(s) may be created by using user taste data. Rankings may also be created to determine an order for deletion of the media items currently on a mobile media player and/or for addition of new media items to the device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS

Understanding that drawings depict only certain preferred embodiments of the invention and are therefore not to be considered limiting of its scope, the preferred embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:



FIG. 1 is a flowchart of one embodiment of a method for the automated deletion of media items from a portable media player.



FIG. 2 is a flowchart of one implementation of a probability computation process.



FIG. 3 is a flowchart of another embodiment of a method for the automated deletion of media items from a portable media player.



FIG. 4 is a flowchart of one embodiment of a method for the automated deletion of media items from a portable media player and selection and addition of new media items to the player.







DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In the following description, certain specific details of programming, software modules, user selections, network transactions, database queries, database structures, etc., are provided for a thorough understanding of the specific preferred embodiments of the invention. However, those skilled in the art will recognize that embodiments can be practiced without one or more of the specific details, or with other methods, components, materials, etc.


In some cases, well-known structures, materials, or operations are not shown or described in detail in order to avoid obscuring aspects of the preferred embodiments. Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in a variety of alternative embodiments. In some embodiments, the methodologies and systems described herein may be carried out using one or more digital processors, such as the types of microprocessors that are commonly found in PC's, laptops, PDA's and all manner of other desktop or portable electronic appliances.


Disclosed are embodiments of systems and methods for prioritizing mobile media player files. Some embodiments of the invention may provide systems and methods for automated deletion of files, such as media items, from a mobile media player. In some embodiments, a statistical method may be provided for inferring which media items on a mobile media player should be deleted based upon, for example, user taste data. Deletion of these files provides free space for new media items to be placed on the media player. One or more user taste parameters, intended playback scenarios, and/or explicitly specified user preferences may be combined to rank items from highest to lowest deletion priority to meet a required space constraint.


Some embodiments of the invention may also, or alternatively, provide methods or systems for filling a mobile media player with media items. In some embodiments, the auto-fill operation may be automatically performed at a designated time and/or before a significant event, such as at the beginning of the day or before a trip. The new media items loaded on the device may be selected to be responsive to the user's taste preferences, in some cases as influenced by the anticipated event. The new media items may also be selected, and current items on the device deleted, based in part on merging user taste data accumulated on the device since the last fill with user historical and community taste data on a system host server.


In one embodiment of a system according to the invention, one or more mobile media players are provided. Each mobile media player is configured to play media items in a media item playlist. A playlist modification component is provided, which may be configured to receive a media item playlist from a given user's mobile media player, analyze user taste data associated with the mobile media player, and modify the media item playlist using the user taste data. A network transmission component may also be provided to transfer media items to the mobile media player and delete media items from the mobile media player in accordance with the modified media item playlist. If desired, the modified media item playlist may also be downloaded to the mobile media player.


The playlist modification component may also be configured to rank the media items in the media item playlist according to the user taste data analysis. In such embodiments, the network transmission component may also be configured to delete media items from the mobile media player according to a similar ranking. The playlist modification component may also comprise a playlist builder configured to build one or more playlists from the user taste data. The playlist builder may be configured to rank the media items in at least one playlist from the user taste data. When the media items in a playlist are so ranked, the network transmission component may be configured to download media items to the mobile media player according to their ranking. The system may therefore rank media items for deletion and/or for addition to a mobile media player.


In some embodiments, the playlist modification component may further be configured to compare the user taste data with user taste data from a previous session to identify changed user taste data. The playlist modification component may then modify the media item playlist using the changed user taste data.


In one embodiment of a method according to the invention, a media item playlist is received from a mobile media player. User taste data associated with a user of the mobile media player may also be received and analyzed. A recommended playlist may then be generated from the analysis of the user taste data. The recommended playlist may then be compared with the media item playlist and modified using the comparison with the media item playlist. This comparison and modification may involve, for example, removing media items from the recommended playlist that are already on the media item playlist. The media items in the recommended playlist, or a subset of the media items in the recommended playlist, may then be ranked. This ranking may comprise the order in which the media items are to be ultimately transferred to the mobile media player. Of course, this does not necessarily mean that all of the items in the ranked list must be transferred. Indeed, space constraints, special user demands, etc., may dictate that less than all of the ranked media items be transferred. Media items in the media item playlist may also be ranked in the order in which they are to be removed from the mobile media player. However, again, this does not require that all ranked items be removed. One or more media items may then be deleted from the mobile media player in an order according to their rankings, and one or more media items may be transferred to the mobile media player in an order according to their rankings.


The media item playlist may also be modified to reflect the media items removed from the mobile media player and the media items transferred to the mobile media player. The modified media item playlist may then also be transferred to the mobile media player.


As used herein, a “user recommender” is a module integrated in a community of users, the main function of which is to recommend users to other users in that community. There may be a set of items in the community for the users of the community to interact with. There may also be an item recommender to recommend other items to the users. Examples of recommender systems that may be used in connection with the embodiments set forth herein are described in U.S. patent application Ser. No. 11/346,818 titled “Recommender System for Identifying a New Set of Media Items Responsive to an Input Set of Media Items and Knowledge Base Metrics,” and U.S. patent application Ser. No. 11/048,950 titled “Dynamic Identification of a New Set of Media Items Responsive to an Input Mediaset,” both of which are hereby incorporated by reference.


As used herein, the term “media data item” is intended to encompass any media item or representation of a media item. A “media item” is intended to encompass any type of media file which can be represented in a digital media format, such as a song, movie, picture, e-book, newspaper, segment of a TV/radio program, game, etc. Thus, it is intended that the term “media data item” encompass, for example, playable media item files (e.g., an MP3 file), as well as metadata that identifies a playable media file (e.g., metadata that identifies an MP3 file). It should therefore be apparent that in any embodiment providing a process, step, or system using “media items,” that process, step, or system may instead use a representation of a media item (such as metadata), and vice versa.


Examples of processes and systems for the automated removal of media items from a mobile media player will now be discussed in greater detail. Typically, the memory available for storing media items on a mobile media player is a limited resource which must be managed. When loading new media items, a user must frequently decide whether to overwrite, or otherwise remove, media items currently stored on the device to make room for new media items. The process for loading new media items can be expedited and simplified for a user if each of the media items on a device, or a subset of the media items on a device, can be automatically ranked according to current user interest in retaining them. Given the ranking, existing items can be automatically deleted from least desirable to most desirable until either the amount of required space, or a threshold of desirability, is reached. The freed space is then available for loading new media items. Examples of processes and systems for automatically adding media items to a mobile media player will be discussed infra.


Examples of methods for inferring free space based on statistical regression are described herein. An example regression model for attaching a probability of deletion to each item in the device will be introduced. An example method for estimating the parameters of the model responsive to user preferences will then be outlined. Finally, example deterministic and random schemes for deleting items using the statistical regression values will be described.


Inferring “free space” on a mobile device by statistical regression:


Assume the total space available for storing media items on a mobile device is ST bytes and that the device memory currently includes items m1, m2, . . . , mN requiring space:

SU=s(m1)+s(m2)+ . . . +s(mN)


The task is to determine which items mi1, mi2, . . . , miL to discard, the space used by the remaining items

SR=s(m1)+ . . . +s(mi1−1)+s(mi1+1)+ . . . +s(mi2−1)+s(mi2+1)+


and the resulting free space

SF=ST−SR


available for new items.


Generalized Linear Regression Model:


One approach to doing this uses standard statistical regression with a generalized linear model. The decision to delete an item is represented as a binary random variable y, such that a sample instance “yi=1” means delete item mi and “yi=0” means retain item mi. We assume that the value of y is predicted by a vector of measurable covariates X=[x1, x2, . . . , xK], which need not be binary.


The covariates X predict y probabilistically. That is,

Pr{y=1|X=[x1, x2, . . . , xK]}=F0x01x12x2+ . . . +βKxk)=FX)


where we assume x0=1 for notational convenience and F(x) is a monotonic increasing function that ranges from F(−∞)=0 to F(∞)=1. The covariates X can be any measurable properties of the items reflecting user taste that increase or decrease the probability of deleting an item.


Remembering y is a binary random variable, it can be shown that

E{y|X, β}=1*Pr{y=1|X, β}+0+Pr{y=0|X, β}=FX)


This is mathematically equivalent to saying that the random variable y is described by the equation

y=FX)+ε


where ε is a random variable with cumulative distribution F(y).


Multinomial Generalization of the Linear Model:


The basic linear model can be further extended into a linear model in nonlinear functions of the covariates by simply replacing the covariate vector X by a new nonlinear covariate vector

X′=[g1(X), g2(X), . . . , gL(X)]=G(X)


in the general formulation of the model, so that

y=FG(X))+ε.


This nonlinear model can be much harder to solve if one seeks to find an optimal multinomial function G(X) rather than just the parameter vector β. The R computational environment supports this nonlinear extension in the generalized linear model solver, where G(X) is a vector multinomial function.


Estimating Model Parameters:


In the most common case, we don't know the vector β of model parameters a priori, but must instead derive an estimate β′ given a set of examples (y1, x1), (y2, X2), . . . , (yN, XN), N>>M. Typically, this is done using maximum likelihood methods, which incorporate specific mathematical techniques to deal with certain details that arise in real applications. However, it may be unlikely in the present application that there will be a set of examples (y1, x1), (y2, X2), . . . , (yN, XN) we can use to derive an estimate for the parameter vector β′=[β′1, β′2, . . . , β′k]. Instead, one must either specify ad hoc values for β or use alternative methods for producing these values. One practical method is to quantify informal logical rules for retaining or deleting items.


Arithmetization of Logical Expressions:


One simple approach is to assume that the variables X are values for a set of metrics X which can be computed for each media item and that we have a logical function custom character(X) which informally describes the rules in terms of the metrics for deciding whether an item should be retained or deleted. Using the standard methods of Boolean algebra, we can reduce custom character(X) to a “sum-of-products” logical form:

custom character(X)=z1(X)v z2(X)v . . . v zk(X)


where each zi(X) is a conjunction of some subset of the metrics X, e.g.:

zi(X)=x2Λx5Λx7


We can translate the Boolean function custom character(X) to a weighted multinomial function in the values X of the metrics X

βG(X)=β1z12z2+ . . . +βkzk−½


where each zi is the product of the values of the metrics in the corresponding conjunction zi, e.g.:

zi(X)=x2x5x7


There are various ways for choosing the values βi for this translation of the Boolean function custom character(X). One way, if we assume that each xi is a bounded, non-negative quantity, is to let each βi be the reciprocal of the product of the upper bounds of the value for the metrics in the corresponding product, e.g.:

βi=1/[sup(x2) sup(x5) sup(x7)]


This monotonic model can be extended to include negated logical variables custom characterxi by representing the metric value for a negated logical variable as

˜xi=sup(xi)−xi


Some Example Metrics:


As developed here, the model can include as a component any metric which is predictive of whether an item should be retained or deleted. One class of predictive covariates are popularity metrics including:


1) The total number of plays p(t) at any point in time, perhaps normalized by the total expected number of plays P, (i.e., p(t)/P).


2) The recent rate of plays r(t)=[p(t)−p(t−Δt)]/Δt.


3) The recent rate of skips s(t)=[q(t)−q(t−Δt)]/Δt, where q(t) is the number of times the listener has prematurely terminated playback of the item.


Another class of predictive covariates are based on the similarity between an item i and some candidate new items j1, j2, . . . , jm. One type of similarity metric is based on metadata. Suppose we have a set of/metadata items (e.g., genre, year, label) for each item and we denote the values of the metadata items for item i as m1i, m2i, . . . , mii. We can define the meta-data similarity between items i and j as

η(i, j)=msim(m1i, m1j)+msim(m2i, m2j)+ . . . +msim(mii, mjj)


where the function msim(mii, mjj) evaluates to “1” if mii and mjj are considered to be similar and “0” otherwise. Given the item i and some candidate new items j1, j2, . . . , jm, we can use as another component of the model:


4) The q-mean metadata similarity η(i)={[η(i, j1)q+η(i, j2)q+ . . . +η(i, jl)q]/l}1/q


Note that for q=1, q→0, q=−1, and q→∞, the q-mean reduces to the arithmetic mean, geometric mean, harmonic mean, and maximum (norm), respectively. Furthermore, one could also take the minimum of the η(i, jl) as a similarity metric.


In addition to metadata similarity, in those cases where we have an independent similarity measure 0≦μ(i,j)≦1 between items i and j, we can define


5) The q-mean relational similarity μ(i)={[μ(i, j1)q+μ(i, j2)q+ . . . +μ(i, jl)q]/l}1/q


Finally, if we let U(i,j) denote the vector of similarities μ(i,l) l≠i, j for item i, we can define the cosine similarity between U(i,j) and U(j,i) as

ρ(i,j)=custom characterU(i,j), U(j,i)custom character/∥U(i,j)∥ ∥U(j,i)∥


In some cases, one may want to include only the component similarities μ(i, l) for the new items j1, j2, . . . , jm in the similarity vectors U(i,j) and U(j,i). Using these component similarities ρ(i,j) we can define


6) The q-mean cosine similarity ρ(i)={[ρ(i, j1)q+ρ(i, j2)q+ . . . +ρ(i, jl)q]/l}1/q


Other metrics, and techniques for combining measurable metrics on an item into a probability value, including those involving the arithmetization of a logical function custom character(X) which informally describes whether an item should be retained or deleted, are also within the spirit of the method for deducing the probability that an item should be retained or deleted, as described herein.


Item Deletion Methods:


Once we have a coefficient vector β, we can determine which items to delete in one of two ways:


Deterministic deletion:


In the deterministic approach, the actual decision di whether to delete item m1 is determined by the predicted E{yi|Xi, β}=F(βXi) as







d
i

=

{



1






user





specifies





that





item





should





be





deleted






0






user





specifies





that





item





should





be





retained






1







if





E


{



y
i



X
i


,
β

}


>

B





otherwise











where Xi is the vector of measured factors for item mi, and the threshold 0≦B≦1 is a threshold of desirability for retaining items, or is selected such that the resulting free space Sf is large enough to meet whatever other space requirements that might be externally imposed.


Random deletion


The random approach uses the binary random variable yi directly. That is, the decision di to delete item m1 is the random variable












d
i

=

{



1






user





specifies





that





item





should





be





deleted






0






user





specifies





that





item





should





be





retained







y
i






otherwise










where Pr{yi=1|Xi}=F(βXi). Given F(βXi), standard computational techniques can be used to generate sample instances of a binary random variable yi with the required binary distribution Pr{yi=1} and Pr{yi=0}.


Because deletion is a random process, the amount of resulting free space Sf also is a random variable in this approach. Meeting a desired objective for the resulting amount of free space Sf≧Sf can be more complex than for the deterministic approach. This may be handled by generating a vector of sample instances

Y(n)=[y1, y2, . . . , yN],


doing the indicated deletions, and evaluating the resulting free space Sf. The process may then be repeated as necessary until the requirement Sf≧Sf is met. Alternatively, one could sequentially generate vectors of sample instances Y(1), Y(2), . . . not doing deletions, until the deletions specified by the particular instance Y(m) result in enough free space to meet the requirement Sf≧Sf.


Described above are illustrative methods and systems for intelligently deleting media items on a mobile player device based on user taste preferences to free storage space on the device for new media items. Some embodiments use predictive covariates Xi=[x1, x2, . . . , xk], which are metrics for the user taste preferences, to arrive at a probabilistic decision yi as to whether each media item mi on the device should be deleted. The covariates Xi can include metrics of local taste data uploaded from the mobile player to the system host, as well as community taste measures gathered and maintained by the system host from a community of users. Similarly, the method could be incorporated in the mobile device and driven by metrics supplied to it by the system host, or reside on the system host and the final deletion decision transmitted to the mobile device.


An example of a method for automatic deletion of media items from a mobile media player is shown in the flowchart of FIG. 1. As shown in the figure, media item play data is recorded in a portable media player in step 502. A user then makes a request to download new media items and/or create free space on the device in step 504. The media items on the device are then ranked based upon assigned probability values, as indicated at 506. The process of deleting items then begins at 508, starting from the highest (or lowest, depending upon how the ranking is structured) ranked media item on the list. Once a media item has been deleted, the system may check to see if a threshold value has been reached at 512. If the threshold value has been reached, the sequence terminates. If not, a check is made as to whether the requested space on the device has been made available, as indicated at 510. If the requested space is not yet free, the next item on the list is deleted. If so, the sequence terminates.


An example of a probability computation process is shown in the flowchart of FIG. 2. As shown in the figure, a probability model is selected at 514. Then, local and/or community metrics are applied to determine a covariate coefficient vector, as indicated at 516. A probability of deletion value is then assigned to each media item on the portable media player at 518. The deletion values are then applied to the deletion method, as previously described, at 520.


Another example of a method for automatic deletion of media items from a mobile media player is shown in the flowchart of FIG. 3. As shown in the figure, media item play data is recorded in a portable media player in step 602. A user then makes a request to download new media items and/or create free space on the device in step 604. Probability values for deletion of each of the media items, or a subset of the media items, on the portable media player are then accessed at 606. The process of randomly deleting items based upon the computed probabilities then begins at 608. Once a media item has been deleted, the system may check to see if a threshold value has been reached at 612. If the threshold value has been reached, the sequence terminates. If not, a check is made as to whether the requested space on the device has been made available, as indicated at 610. If the requested space is not yet free, the next item on the list is deleted. If so, the sequence terminates.


Methods for auto-filling a mobile media player will now also be described in greater detail. In one embodiment, a plurality of portable media players each have access to a central server or the like. Each user may initially obtain and install software on a local computer. Each user may also provide taste data to the server.


After the initialization phase described above, a user can establish communication between the host server and his or her media player, typically by connecting the media player with a computer networked to access the host server. The user can then issue a “start” command to start the auto-fill process. Alternatively, the system may be configured to automatically start the process upon being connected with a media player. In some versions, this step can also include retrieval of local user taste data, such as play counts, play sequences, media item ratings, etc., from the mobile device. Still other examples of user taste data are set forth elsewhere in this disclosure.


In some versions, a list of the media items currently on the mobile device may also be transferred to the host server. The host server may then supply the user taste data to an independent playlist-builder system, which may use any retrieved user taste data, historical user taste data, and/or the list of the media items from the mobile device to provide the host server with playlists of media items responsive to the user's taste preferences. These playlists may comprise media items in any media libraries available to the user and known to the playlist-builder system. Typically, these libraries will include the media items licensed to the user and stored on the server for access by the user.


Once the host server has been supplied with the playlists, the host server may retrieve a list of the media items currently on the mobile device (if this list wasn't previously retrieved). The list of new media items to be loaded onto the device is then reconciled with the list of media items currently on the device to determine how much space must be freed on the device to accommodate the new media items and which media items should be deleted. The media items selected for removal are then deleted and the new media items are loaded onto the device.


Although the foregoing steps can be performed repetitively ad infinitum without further explicit user intervention, at times the user may want to adjust user preferences to change the auto-fill behavior. For example, a user may wish to provide special user instructions, such as instructions to mark certain media items stored in the device as “do not delete” or “always delete.” Alternatively, a user may wish to provide additional user taste data associating user tastes with a specific activity, such as data in the form of requesting that a selection of media items or a genre of media items be for “running,” “dinner,” or “work.” As still another example, a user may wish to provide temporal user taste data associating a selection of media items or a genre of media items with an upcoming date or event.


As indicated previously, some embodiments of the system may be configured to assume that the host server has access to a playlist-builder system which automatically generates playlists based on user-supplied preferences in response to a query by the host server. Some examples of such systems known to those skilled in the art include U.S. Pat. Nos. 6,993,532 titled “Auto Playlist Generator” and 6,526,411 titled “System and Method for Creating Dynamic Playlists.” Additional examples can be found in U.S. Patent Application Publication Nos. 2002/0082901 titled “Relationship Discovery Engine,” 2003/0221541 titled “Auto Playlist Generation with Multiple Seed Songs,” and 2005/0235811 titled “Systems for and Methods of Selection, Characterization and Automated Sequencing of Media Content.” Each of the foregoing patents and published patent applications are hereby incorporated by reference. In preferred embodiments, the playlist builder will accept user taste data in multiple forms, such as one or more of the following:


1. Tags—Tags are pieces of information separate from, but related to, an object. In the practice of collaborative categorization using freely chosen keywords, tags are descriptors that individuals assign to objects.


2. Media items or media item lists—Lists of tracks, movies, etc. that are of the same type as the items to be transferred to the portable device.


3. Special item lists—For example, items the user explicitly bans, items an intelligent system using user feedback implicitly bans, items the user explicitly requests to be on the device.


4. Meta-data—Text-based data that is regularly associated with an item to classify it (e.g., genre, year, purchase date).


5. Ratings—User-defined value judging the quality of the item.


6. Events—Temporal-based features which can be inferred from a calendar (e.g., a Yahoo® calendar).


7. Serendipity—User-defined value indicating the user's preference of non-popular content in their play stream.


8. Plays model—A model of the item play behavior of the user, such as the number of times a user plays a media item before becoming tired of it, the user's expected playcount profile for an item across time, and/or percentage of a playlist or media item a user plays before switching to another.


9. Play Stream—Time-stamped record of media player interaction, including statistics, such as items played to completion, skipped, re-started, and/or deleted.


10. Play count—Number of times a media item has been played over a given period of time.


11. Temporal Data—Preferences implicitly or explicitly associated with a time instance or event, such as time of day or day of the week.


12. Subscribed influences—User-defined external taste inputs which help define the desired experience (e.g., friends' tastes, media items defined by an expert such as a DJ, etc.).


13. Ambient noise—User environment noise level sensed by the device.


14. Discovery value—User-defined value for indicating the media items never played by the user that may be introduced into the media consumption experience.


15. Re-discovery value—User-defined value for indicating the media items that the user has not played recently, which may be introduced into the media consumption experience.


Given one or more playlists generated by a playlist-builder system in response to a query, the host server may then determine the set of media items included in those playlists and execute an auto-fill process, an example of which is depicted in FIG. 4. Initiation 702 of the autofill process may be in response to a single user action, such as connecting the mobile device to the host server, or the receipt of an explicit “start” indication from the user. A playlist builder may then receive user taste data 720 and use the data to generate one or more playlists, as indicated at 704.


Once the playlist(s) have been provided, the host server can enumerate 706 the set of media items on those playlists and then reconcile 708 that set of media items with the set of media items currently on the device. The host may determine which of the new media items are already on the device and remove them from the list of items to be loaded. In some embodiments, these media items may also be removed from consideration for deletion. The host server may then use a method to effectively rank the media items on the device as to the probability they should be deleted based on how compatible they are with the user taste data supplied to the playlist builder system. This ranking may then be used to select the media items to be loaded onto the device. The host server may also rank the media items in an analogous way as to the probability they should be deleted from the player.


Using the ranking information for the new media items, the host server may, as shown at 710, select the item with the highest probability it should be loaded from the list of new media items. Items may then be deleted 712 from the media player until enough space is available for the most compatible of the new items using the method described below, after which media items are loaded 714 onto the media player. This process of selecting 710, deleting 712, and loading 714 is repeated until, for example, the available time for the auto-fill operation has expired, as indicated at 716, all items on the device have been deleted, as indicated at 718, or the entire new set of media items has been loaded onto the device, as indicated at 722. Alternatively, in circumstances where there is no time limit on the load process, the deletion process 712 may delete enough items from the device to free enough space to load as many of the new items as the device capacity, or a preselected number of items, will accommodate. A user may also dictate that a particular subset of memory be used for new items and free that amount of space. The loading process 714 may then load as many of the new media items as the available space on the device permits in a single operation.


Finally, for media players which also accept downloads of playlists, the playlist(s) may be edited to remove any new items which could not be loaded and then the playlist(s) loaded onto the device, as indicated at 724 and 726, respectively.


In some embodiments, media items may be randomly chosen and deleted to free enough storage space on the media player to accommodate the new media items. In other embodiments, the media items currently on the player may be ranked in terms of how compatible they are with the criteria used to generate the playlists of new media items to be loaded on the device. These media items may then be preferentially deleted based on that ranking. The same process can also be applied to the playlist items to provide an inverse ranking of the new media items to cause the most desirable items to be loaded first. In this way, the most desirable subset of new items will be loaded in the event that the entire set of new media items cannot be loaded due to, for example, time or space limitations.


As previously described, a statistical method for inferring which media items on the player should be deleted based on metrics of user taste preferences may be applied. The method may model the conditional probability of the binary decision y that an item should be deleted (y=1) in terms of a the computed value X for an n-vector of item metrics X:

Pr{y=1|X=[x1, x2, . . . xK]}=FG(X))


where G(X) is an m-vector of non-linear functions of the metrics and β is a vector of m weighting values for linearly combining the components of G(X) into a scalar value. The component functions G(X) are from a particular class of function such the decision variable y has a particular type of generalized linear model

y=FG(X))+ε


where F(x) is a monotonic, non-decreasing “link” function that maps (−∝, ∝) into the interval (0,1), and ε is a zero-mean random variable that is assumed to have a relevant distribution (although the auto-deletion process operates oblivious to the distribution of ε).


Given a specified F(x), β, and G(X), the host server ranks the media items on the player which are candidates for deletion and the new items to be loaded by first computing F(βG(X)) for each item in both sets. A common choice of F(x) is the logistic function

F(x)=1/(1+e−x)


It should be appreciated that since F(x) is a monotonic, non-decreasing function, the items can be ranked by the computed values F(βG(X)), with the values βG(X) used as first round tie-breakers when the values F(βG(X)) for two items are identical and the values of βG(X) for those items differ. When the F(βG(X)) and the values of βG(X) both agree for the two items, any preferred method can be used to rank one before the other, including a random choice. In this way, the ranking of the media items in a set by values of F(βG(X)) is seen to be identical to the ranking of those items by values βG(X), the latter being a ranking linked explicitly to the computed metrics.


Another method for computing the metrics X=[x1, . . . , xK] assumes that the items are to be ranked based on a set of item attributes a1, a2, . . . , aK such as those described above in the discussion about playlist building, and a set of preference values p1, p2, . . . , pK that range between 0 (strong preference) and 1 (weak preference). The degree to which an item satisfies attribute ak may be computed as

xk=h(ak)[100−90pk]+(1−h(ak))u(pk)


where h(ak)=1 if the item has attribute ak and h(ak)=0 otherwise, and U(pk)=0 if pk=0 and u(pk)=5 otherwise. The media items on the device may then be ranked for possible deletion by the values

βG(X)=50k−(x1+ . . . +xk)


Similarly, the new items may be inverse ranked according to the same values.


The ranking of media items on the device during the reconciliation process 708 establishes the relative probability that items will be deleted. In the deletion process 712, items are actually deleted in a deterministic or probabilistic fashion by, for example, methods described herein. The deterministic and probabilistic methods used for deletion may also be applied to process 712 for selecting items in sequence from the set of new items to increase the diversity of user experiences in repeated auto-filling operations.


The above description fully discloses the invention including preferred embodiments thereof. Without further elaboration, it is believed that one skilled in the art can use the preceding description to utilize the invention to its fullest extent. Therefore the examples and embodiments disclosed herein are to be construed as merely illustrative and not a limitation of the scope of the present invention in any way.


It will be obvious to those having skill in the art that many changes may be made to the details of the above-described embodiments without departing from the underlying principles of the invention. Therefore, it is to be understood that the invention is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims.


The scope of the present invention should, therefore, be determined only by the following claims.

Claims
  • 1. A computer-implemented method for the automated selection and loading of media items from a computer into a mobile media player device, the method comprising: receiving a media item current playlist from a mobile media player;receiving current user taste data associated with a user of the mobile media player;generating a recommended playlist from the user taste data;ranking the media items in the recommended playlist responsive to the user taste data;determining an amount of memory storage space available on the mobile media player for storing new items;removing as many media items from the mobile media player, as necessary to free memory space sufficient to accommodate at least the highest ranked one of the ranked media items, wherein the media items are removed from the mobile media player according to the current user taste data;downloading at least one media item on the recommended playlist into memory on the mobile media player, beginning with a highest ranked one of the media items; andrepeating said downloading step, in descending rank order of the media items, until the amount of memory storage space available on the mobile media player for storing new items is insufficient to add the next item.
  • 2. The method of claim 1, wherein the current user taste data comprises at least one of a metric indicative of the total number of plays for one or more media items in the current media item playlist, a metric indicative of a recent rate of plays for one or more media items in the current media item playlist, and a metric indicative of a recent rate of skips for one or more media items in the current media item playlist.
  • 3. The method of claim 1, and further comprising: automatically selecting at least one media item of the current playlist of media items for deletion, without user intervention, to increase the memory space available on the mobile media player for storing new items;automatically deleting the media items selected for deletion from the mobile media player; andupdating the determination of the amount of memory storage space available on the mobile media player.
  • 4. The method of claim 3, and wherein: selecting of media items for deletion includes ranking the current playlist items responsive to the current user taste data; anddeleting the media items selected for deletion includes deleting at least one media item from the mobile media player, beginning with a lowest ranked one of the media items; andrepeating said deleting step, in ascending rank order of the media items.
  • 5. The method of claim 4, and wherein said deleting step includes skipping a media item marked for retention by the user so that the marked media item remains stored on the mobile media player.
  • 6. The method of claim 4, wherein said ranking of the current playlist media items is determined responsive to current user play data recorded on the mobile media player device, comprising at least one of a metric indicative of the total number of plays for one or more media items in the current media item playlist, a metric indicative of a recent rate of plays for one or more media items in the current media item playlist, and a metric indicative of a recent rate of skips for one or more media items in the current media item playlist.
  • 7. The method of claim 5, and further comprising: selecting a subset of the recommended playlist of media items, based on the highest rankings;determining an amount of memory storage space necessary for storing the subset of media items on the mobile media player;comparing the amount of memory storage space available on the mobile media player for storing new items; andif the amount of memory storage space necessary exceeds the memory storage space available, deleting media items from the mobile media player to make space for new items.
  • 8. A method for the automated modification of a mobile media player playlist, the method comprising: receiving a current media item playlist from a mobile media player;receiving user taste data associated with a user of the mobile media player;generating a recommended playlist for the user;comparing the recommended playlist with the current media item playlist to remove duplicates;ranking one or more media items in the recommended playlist in an order in which the media items are to be transferred to the mobile media player;ranking one or more media items in the current media item playlist in an order in which the media items are to be removed from the mobile media player;removing media items from the mobile media player to make space for loading new media items, wherein media items are removed from the mobile media player according to their rankings without explicit user input or selection; andtransferring media items to the mobile media player, wherein media items are transferred to the mobile media player according to their rankings.
  • 9. The method of claim 8, wherein said ranking media items in the current media item playlist in an order in which the media items are to be removed from the mobile media player includes ranking the media items stored on the mobile media player according to a probability of deletion from the mobile media player, responsive to implicit current user interest in retaining them, without explicit user input or user selections.
  • 10. The method of claim 9 wherein the implicit user interest for each media item currently stored on the mobile media player is quantified using a linear regression model responsive to a vector of selected covariates, wherein the covariates comprise measurable properties or metrics of the media items reflecting user taste that increase or decrease a probability of deleting the media item.
  • 11. The method of claim 10 wherein the covariates are selected from a first class of metrics comprising 1) a total number of plays p(t) at any point in time, 2) a recent rate of plays r(t)=[p(t)−p(t−Δt)]/Δt, and 3) a recent rate of skips s(t)=[q(t)−q(t−Δt)]/Δt, where q(t) is the number of times the listener has prematurely terminated playback of the item.
  • 12. The method of claim 11 wherein the number of plays p(t) is normalized relative to a total number of plays P, (i.e., p(t)/P).
  • 13. The method of claim 11 wherein the covariates are selected from a second class of metrics responsive to metadata similarity between one of the media items and a set of candidate new items j1, j2, . . . , jm.
  • 14. A computer-implemented method for the automated selection and deletion of digital media items stored in memory on a mobile media player without explicit user input, the method comprising: establishing a temporary communication link, wired or wireless, between the mobile media player and a computer;uploading to the computer a current playlist of media items m1, m2, . . . mN stored on the mobile media player;uploading to the computer current play data associated with stored media items m1, m2, . . . mN;ranking the media items for retention or deletion from the media player responsive to the current play data;wherein said ranking includes quantifying implicit user interest for each media item currently stored on the media player by applying a linear regression model responsive to a vector of selected covariates, wherein the covariates comprise measurable properties or metrics of the media items reflecting user taste that increase or decrease a probability of deleting the media item; andsequentially deleting media items from the player in order of the said ranking.
  • 15. The method of claim 14 wherein the predictive covariates include at least one of a metric indicative of the total number of plays for one or more media items in the current media item playlist, a metric indicative of a recent rate of plays for one or more media items in the current media item playlist, and a metric indicative of a recent rate of skips for one or more media items in the current media item playlist.
RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Patent Application No. 60/772,957 filed Feb. 13, 2006, and titled “Auto-Filling a Mobile Media Playback Device.” This application also claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Patent Application No. 60/772,147 filed Feb. 10, 2006, and titled “Freeing Space for New Media Items on a Mobile Media Playback Device Based on Inferred User Taste.” Both of the foregoing provisional patent applications are incorporated herein by specific reference.

US Referenced Citations (160)
Number Name Date Kind
5375235 Berry Dec 1994 A
5483278 Strubbe Jan 1996 A
5583763 Atcheson Dec 1996 A
5724521 Dedrick Mar 1998 A
5754939 Herz May 1998 A
5758257 Herz May 1998 A
5890152 Rapaport Mar 1999 A
5918014 Robinson Jun 1999 A
5950176 Keiser Sep 1999 A
6000044 Chrysos Dec 1999 A
6047311 Ueno Apr 2000 A
6112186 Bergh Aug 2000 A
6134532 Lazarus Oct 2000 A
6345288 Reed Feb 2002 B1
6347313 Ma Feb 2002 B1
6349339 Williams Feb 2002 B1
6381575 Martin Apr 2002 B1
6430539 Lazarus Aug 2002 B1
6434621 Pezzillo Aug 2002 B1
6438579 Hosken Aug 2002 B1
6487539 Aggarwal et al. Nov 2002 B1
6526411 Ward Feb 2003 B1
6532469 Feldman Mar 2003 B1
6577716 Minter Jun 2003 B1
6615208 Behrens Sep 2003 B1
6647371 Shinohara Nov 2003 B2
6687696 Hofmann Feb 2004 B2
6690918 Evans Feb 2004 B2
6751574 Shinohara Jun 2004 B2
6785688 Abajjan Aug 2004 B2
6842761 Diamond Jan 2005 B2
6850252 Hoffberg Feb 2005 B1
6914891 Ha et al. Jul 2005 B2
6931454 Deshpande et al. Aug 2005 B2
6941324 Plastina Sep 2005 B2
6947922 Glance Sep 2005 B1
6987221 Platt Jan 2006 B2
6990497 O'Rourke Jan 2006 B2
6993532 Platt et al. Jan 2006 B1
7020637 Bratton Mar 2006 B2
7021836 Bratton Apr 2006 B2
7072846 Robinson Jul 2006 B1
7082407 Bezos Jul 2006 B1
7096234 Plastina Aug 2006 B2
7111240 Crow Sep 2006 B2
7120619 Drucker Oct 2006 B2
7127143 Elkins Oct 2006 B2
7136866 Springer, Jr. Nov 2006 B2
7139723 Conkwright Nov 2006 B2
7180473 Horie Feb 2007 B2
7194421 Conkwright Mar 2007 B2
7197472 Conkwright Mar 2007 B2
7236941 Conkwright Jun 2007 B2
7256341 Plastina Aug 2007 B2
7302419 Conkwright Nov 2007 B2
7358434 Plastina Apr 2008 B2
7363314 Picker Apr 2008 B2
7392212 Hancock Jun 2008 B2
7403769 Kopra Jul 2008 B2
7415181 Greenwood Aug 2008 B2
7457862 Hepworth Nov 2008 B2
7478323 Dowdy Jan 2009 B2
7493572 Card Feb 2009 B2
7505959 Kaiser Mar 2009 B2
7546254 Bednarek Jun 2009 B2
7568213 Carhart Jul 2009 B2
7574513 Dunning Aug 2009 B2
7580932 Plastina Aug 2009 B2
7644077 Picker Jan 2010 B2
20010056434 Kaplan Dec 2001 A1
20020002899 Gjerdingen Jan 2002 A1
20020082901 Dunning et al. Jun 2002 A1
20020152117 Cristofalo Oct 2002 A1
20020178223 Bushkin Nov 2002 A1
20020194215 Cantrell Dec 2002 A1
20030033321 Schrempp Feb 2003 A1
20030055689 Block Mar 2003 A1
20030120630 Tunkelang Jun 2003 A1
20030212710 Guy Nov 2003 A1
20030220100 McElhatten et al. Nov 2003 A1
20030221541 Platt Dec 2003 A1
20030229537 Dunning Dec 2003 A1
20040003392 Trajkovic Jan 2004 A1
20040068552 Kotz Apr 2004 A1
20040073924 Pendakur Apr 2004 A1
20040128286 Yasushita Jul 2004 A1
20040139064 Chevallier Jul 2004 A1
20040247715 Polson Dec 2004 A1
20040263337 Terauchi et al. Dec 2004 A1
20050060350 Baum Mar 2005 A1
20050075908 Stevens Apr 2005 A1
20050091146 Levinson Apr 2005 A1
20050102610 Jie May 2005 A1
20050114357 Chengalvarayan May 2005 A1
20050141709 Bratton Jun 2005 A1
20050154608 Paulson Jul 2005 A1
20050193014 Prince Sep 2005 A1
20050193054 Wilson Sep 2005 A1
20050195696 Rekimoto Sep 2005 A1
20050203807 Bezos et al. Sep 2005 A1
20050210101 Janik Sep 2005 A1
20050216855 Kopra Sep 2005 A1
20050223039 Kim Oct 2005 A1
20050235811 Dukane Oct 2005 A1
20050256867 Walther Nov 2005 A1
20050276570 Reed Dec 2005 A1
20060015571 Fukuda et al. Jan 2006 A1
20060015904 Marcus Jan 2006 A1
20060018208 Nathan Jan 2006 A1
20060018209 Drakoulis Jan 2006 A1
20060020062 Robinson Jan 2006 A1
20060026263 Raghavan et al. Feb 2006 A1
20060053077 Mourad Mar 2006 A1
20060062094 Nathan Mar 2006 A1
20060067296 Bershad Mar 2006 A1
20060074750 Clark Apr 2006 A1
20060080356 Burges Apr 2006 A1
20060095516 Wijeratne May 2006 A1
20060100978 Heller et al. May 2006 A1
20060112098 Renshaw May 2006 A1
20060168616 Candelore Jul 2006 A1
20060173910 McLaughlin Aug 2006 A1
20060173916 Verbeck Aug 2006 A1
20060195462 Rogers Aug 2006 A1
20060195521 New Aug 2006 A1
20060253874 Stark Nov 2006 A1
20060277098 Chung Dec 2006 A1
20060288044 Kashiwagi Dec 2006 A1
20060288367 Swix Dec 2006 A1
20070016507 Tzara Jan 2007 A1
20070043829 Dua Feb 2007 A1
20070100690 Hopkins May 2007 A1
20070136264 Tran Jun 2007 A1
20070156677 Szabo Jul 2007 A1
20070203790 Torrens Aug 2007 A1
20070244880 Martin Oct 2007 A1
20070250429 Walser Oct 2007 A1
20070250761 Bradley Oct 2007 A1
20070271286 Purang Nov 2007 A1
20070294096 Randall Dec 2007 A1
20080004948 Flake Jan 2008 A1
20080004990 Flake Jan 2008 A1
20080027881 Bisse Jan 2008 A1
20080046317 Christianson Feb 2008 A1
20080077264 Irvin Mar 2008 A1
20080082467 Meijer Apr 2008 A1
20080133601 Cervera Jun 2008 A1
20080155588 Roberts Jun 2008 A1
20080220855 Chen Sep 2008 A1
20080270221 Clemens Oct 2008 A1
20090024504 Lerman Jan 2009 A1
20090024510 Chen Jan 2009 A1
20090073174 Berg Mar 2009 A1
20090076939 Berg Mar 2009 A1
20090076974 Berg Mar 2009 A1
20090083307 Cervera Mar 2009 A1
20090089222 Ferreira Apr 2009 A1
20090106085 Raimbeault Apr 2009 A1
20090210415 Martin Aug 2009 A1
20090276368 Martin Nov 2009 A1
Foreign Referenced Citations (20)
Number Date Country
1 050 833 Aug 2000 EP
1 231 788 Aug 2002 EP
1420388 May 2004 EP
11052965 Feb 1999 JP
2002108351 Apr 2002 JP
2002320203 Oct 2002 JP
2003255958 Oct 2003 JP
2004221999 Aug 2004 JP
2005027337 Jan 2005 JP
2002025579 Apr 2002 KR
WO03051051 Jun 2003 WO
WO2004070538 Aug 2004 WO
WO2005013114 Feb 2005 WO
WO2006052837 May 2006 WO
WO2006075032 Jul 2006 WO
WO2006114451 Nov 2006 WO
WO2007134193 May 2007 WO
WO2007075622 Jul 2007 WO
WO2007092053 Aug 2007 WO
WO20090149046 Dec 2009 WO
Related Publications (1)
Number Date Country
20090132453 A1 May 2009 US
Provisional Applications (2)
Number Date Country
60772147 Feb 2006 US
60772957 Feb 2006 US