US11138262B2ActiveUtilityA1

Context-aware music recommendation methods and systems

Assignee: MELODIA INCPriority: Sep 21, 2016Filed: Sep 21, 2017Granted: Oct 5, 2021
Est. expirySep 21, 2036(~10.2 yrs left)· nominal 20-yr term from priority
Inventors:Omid Aryan
G06N 7/01G06F 16/638G06N 20/00G06F 16/64G06N 7/005
45
PatentIndex Score
1
Cited by
14
References
20
Claims

Abstract

A method and system for a real-time and context-aware music recommendation system is disclosed. A plurality of data samples generated from an application in a user device of a user for a plurality of audio files are received. One or more probability distributions over the plurality of audio files are computed based on one or more pre-defined criteria. The one or more pre-defined criteria based on the plurality of data samples. A ranking of the plurality of audio files is determined from the one or more probability distributions over audio files. One or more audio files from the ranking of the plurality of audio files to the user through a User Interface (UI) of the user device in the application are recommended.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A computer-implemented method, comprising:
 receiving, by a processing system, a plurality of data samples generated from an application in a user device of a user for a plurality of audio files, wherein the plurality of data samples comprises a plurality of contextual features associated with the user, wherein the plurality of contextual features is of interest for determining a ranking of the plurality of audio files, wherein the plurality of contextual features comprise one or more of the following: a date or a weather condition, wherein the plurality of data samples is determined at least in part from at least one chance in at least one contextual feature of the plurality of contextual features of the user collected utilizing a plurality of sensing modules; 
 computing, by the processing system, one or more probability distributions over the plurality of audio files based on one or more pre-defined criteria, the one or more pre-defined criteria based on the plurality of data samples, wherein computing a probability distribution of the one or more probability distributions comprises: 
 from the received plurality of data samples, collecting at least one of: information of a time period elapsed since last playback of each audio file of the plurality of audio files, 
 information of a number of times each audio file is played in a pre-determined time period; 
 information of a number of times each audio file is liked, and 
 information of a number of times each audio file is disliked; and 
 computing probability value for each audio file of the plurality of audio files based on collected information to compute the probability distribution; 
 determining, by the processing system, a ranking of the plurality of audio files based on the one or more probability distributions over the plurality of audio files; 
 recommending, by the processing system, one or more audio files from the ranking of the plurality of audio files to the user through a User Interface (UI) of the user device in the application; and 
 playing back the one or more audio files through the UI of the user device. 
 
     
     
       2. The method as claimed in  claim 1 , wherein computing a probability distribution of the one or more probability distributions comprises:
 forming a graph comprising a plurality of nodes and a plurality of edges, each node representing an audio file and an edge of the plurality of edges representing a weighted summation of a set of similarity factors between a pair of audio files connected by the edge; 
 determining a set of overlapping communities, wherein each community comprises a set of nodes from the plurality of nodes within the graph and each node in the graph belongs to at least one community; 
 determining, for each node of the plurality of nodes, a community vector comprising K number of elements for the set of overlapping communities, K being a number of communities in the set of overlapping communities, wherein an element of the K number of elements for a node of the plurality of nodes denotes whether the node belongs to a community corresponding to the element; 
 determining a prediction vector comprising K number of prediction values, wherein a prediction value of the K number of prediction values represents a probability of an ideal audio file belonging to a community corresponding to the prediction value; and 
 computing the probability distribution over the plurality of audio files based on a closeness measure between each of community vectors for the plurality of nodes and the prediction vector. 
 
     
     
       3. The method as claimed in  claim 2 , wherein the prediction vector is determined based on training a machine learning model based on the plurality of contextual features associated with the user. 
     
     
       4. The method as claimed in  claim 3 , wherein the machine learning model is trained based on receiving one or more data points associated with the plurality of audio files, the one or more data points being liking and disliking provided by the user through the UI of the user device for the plurality of audio files, in addition to the contextual features associated with each data point. 
     
     
       5. The method as claimed in  claim 2 , wherein the set of similarity factors between the pair of audio files connected by the edge is determined based on at least one of:
 one or more audio features, the one or more audio features comprising a tempo, a rhythm, a loudness, and a pitch; and 
 one or more non-audio features, the one or more non-audio features comprising one or more data points provided by the user for the plurality of audio files for a predetermined time interval. 
 
     
     
       6. The method as claimed in  claim 1 , wherein computing a probability distribution of the one or more probability distributions comprises:
 forming a graph comprising a plurality of nodes and a plurality of edges, each node representing an audio file and an edge of the plurality of edges representing a weighted summation of a set of similarity factors between a pair of audio files connected by the edge; 
 determining a set of overlapping communities, wherein each community comprises a set of nodes from the plurality of nodes within the graph and each node in the graph belongs to at least one community; 
 determining, for each node of the plurality of nodes, a community vector comprising K number of elements for the set of overlapping communities, K being a number of communities in the set of overlapping communities, wherein an element of the K number of elements for a node of the plurality of nodes denotes whether the node belongs to a community corresponding to the element; 
 determining a prediction vector at a time step ‘i ’ based on an equation
     Y   (i) =(α mV   (i−1) )+((1−α) Y   (i−1) ),
 
 
 
       wherein ‘α’ is a predetermined scalar value, 
       wherein ‘m’ is a positive scalar value if the audio file listened to by the user at a time step ‘i−1’ is liked by the user through the UI of the user device and a negative scalar value if the audio file is disliked by the user, and 
       wherein ‘Y (1) ’ is the prediction vector determined at each time step ‘i’ based on the community 
       vector ‘V’ associated with the audio file the user listened to at the time step ‘i−1’; and
 computing the probability distribution over the plurality of audio files based on a closeness measure between each of community vectors for the plurality of nodes and the prediction vector. 
 
     
     
       7. The method as claimed in  claim 6 , wherein the set of similarity factors between the pair of audio files connected by the edge is determined based on at least one of:
 one or more audio features, the one or more audio features comprising a tempo, a rhythm, a loudness, and a pitch; and 
 one or more non-audio features, the one or more non-audio features comprising one or more data points provided by the user for the plurality of audio files for a predetermined time period. 
 
     
     
       8. The method as claimed in  claim 1 , wherein computing a probability distribution of the one or more probability distributions comprises:
 forming a directed graph comprising a plurality of nodes and a plurality of directed edges, each node representing an audio file and a directed edge from the plurality of directed edges originating from a first node to a second node representing a first audio file corresponding to the first node being played and liked before a second audio file corresponding to the second node being played and liked; 
 assigning a weight, with a scalar value between zero and one, to each directed edge based on a time lapse between a playback of the first audio file and a playback of the second audio file; 
 at a time step ‘i’ determining a successive score for each node to measure successiveness to an audio file corresponding to each node listened to at a preceding time step ‘i−1’ based on the directed graph; 
 at the time step ‘i’ computing a path score for each node based on the successive score determined at the time step ‘i’ and a preceding path score computed at the preceding time step ‘i−1’; and computing the probability distribution over the plurality audio files based on corresponding path score associated with each audio file at the time step ‘i’. 
 
     
     
       9. The method as claimed in  claim 8 , wherein a successive score for a node ‘n’ representing an audio file at a time step ‘i’ is determined based on an equation 
       
         
           
             
               
                 u 
                 n 
                 
                   ( 
                   i 
                   ) 
                 
               
               = 
               
                 
                   ∑ 
                   
                     p 
                     = 
                     1 
                   
                   
                     P 
                     n 
                   
                 
                 ⁢ 
                 
                   
                     ∏ 
                     
                       j 
                       = 
                       1 
                     
                     
                       E 
                       p 
                     
                   
                   ⁢ 
                   
                     W 
                     
                       ( 
                       
                         p 
                         , 
                         j 
                       
                       ) 
                     
                   
                 
               
             
           
         
         Wherein ‘P n     (i)   ’ is a total number of existing simple paths from audio files listened to at time step ‘I’ to the audio file corresponding to the node ‘n’, 
         wherein ‘E p ’ is a total number of directed edges on a corresponding path ‘p’, and 
         wherein ‘W (pj) ’; represents a weight of the j th  edge of the path ‘p’. 
       
     
     
       10. The method as claimed in  claim 8 , wherein a path score for the node ‘n’ at the time step ‘i’ is determined based on an equation
     r   n     (i)   =(α u   n     (i−1)   )+((1−α) r   n     (i −1)   ),
 
 wherein ‘α’ is a predetermined scalar value, 
 wherein ‘u’ corresponds to a succession score for the node ‘n’ and 
 wherein ‘r n ’ corresponds to the path score for the node ‘n’ at the time step based on the succession score and a path score for the node ‘n’ at the preceding time step ‘i−1’. 
 
     
     
       11. The method as claimed in  claim 1 , wherein determining the ranking comprising:
 assigning weights to each of the one or more probability distributions; and 
 combining the one or more probability distributions based on assigned weights to form the ranking of the plurality of audio files. 
 
     
     
       12. The method as claimed in  claim 1 , wherein the plurality of data samples comprises listening patterns of the plurality of audio files associated with the user. 
     
     
       13. The method as claimed in  claim 1 , wherein the plurality of data samples includes information of feedback of the user on the plurality of audio files, wherein the feedback for an audio file comprises at least a like or a dislike of the audio file. 
     
     
       14. A processing system, comprising:
 at least one processor; 
 
       a communication interface, controlled by the at least one processor, to communicate with a user device associated with a user; and 
       a memory having stored therein machine executable instructions, that when executed by the at least one processor, cause the processing system to: 
       receive, by a processing system, a plurality of data samples generated from an application in a user device of a user for a plurality of audio files, wherein the plurality of data samples comprises a plurality of contextual features associated with the user, wherein the plurality of contextual features is of interest for determining a ranking of the plurality of audio files, wherein the plurality of contextual features comprise one or more of the following: a date or a weather condition, wherein the plurality of data samples is determined at least in part from at least one change in at least one contextual feature of the plurality of contextual features of the user collected utilizing a plurality of sensing modules;
 compute one or more probability distributions over the plurality of audio files based on one or more pre-defined criteria, the one or more pre-defined criteria based on the plurality of data samples, wherein the processing system is caused to compute a probability distribution of the one or more probability distributions by: 
 from the received plurality of data samples, collecting at least one of: 
 
       information of a time period elapsed since last playback of each audio file of the plurality of audio files, 
       information of a number of times each audio file is played in a pre-determined time period;
 information of a number of times each audio file is liked, and 
 information of a number of times each audio file is disliked; and 
 
       computing probability value for each audio file of the plurality of audio files based on collected information to compute the probability distribution; 
       determine a ranking of the plurality of audio files based on the one or more probability distributions over the plurality of audio files;
 recommend one or more audio files from the ranking of the plurality of audio files to the user through a User Interface (UI) of the user device in the application; and 
 play back the one or more audio files through the UI of the user device. 
 
     
     
       15. The processing system as claimed in  claim 14 , wherein the processing system is caused to compute a probability distribution of the one or more probability distributions by:
 forming a graph comprising a plurality of nodes and a plurality of edges, each node representing an audio file and an edge of the plurality of edges representing a weighted summation of a set of similarity factors between a pair of audio files connected by the edge; 
 determining a set of overlapping communities, wherein each community comprises a set of nodes from the plurality of nodes within the graph and each node in the graph belongs to at least one community; 
 determining, for each node of the plurality of nodes, a community vector comprising K number of elements for the set of overlapping communities, K being a number of communities in the set of overlapping communities, wherein an element of the K number of elements for a node of the plurality of nodes denotes whether the node belongs to a community corresponding to the element; 
 determining a prediction vector comprising K number of prediction values, wherein a prediction value of the K number of prediction values represents a probability of an ideal audio file belonging to a community corresponding to the prediction value; and 
 computing the probability distribution over the plurality of audio files based on a closeness measure between each of community vectors for the plurality of nodes and the prediction vector. 
 
     
     
       16. The processing system as claimed in  claim 14 , wherein the processing system is caused to compute a probability distribution of the one or more probability distributions by:
 forming a graph comprising a plurality of nodes and a plurality of edges, each node representing an audio file and an edge of the plurality of edges representing a weighted summation of a set of similarity factors between a pair of audio files connected by the edge; 
 determining a set of overlapping communities, wherein each community comprises a set of nodes from the plurality of nodes within the graph and each node in the graph belongs to at least one community; 
 determining, for each node of the plurality of nodes, a community vector comprising K number of elements for the set of overlapping communities, K being a number of communities in the set of overlapping communities, wherein an element of the K number of elements for a node of the plurality of nodes denotes whether the node belongs to a community corresponding to the element; 
 determining a prediction vector at a time step ‘i’ based on an equation
     Y   (i) =(α mV   (i−1) )+((1−α) Y   (i−1) ),
 
 
 
       wherein ‘α’ is a predetermined scalar value, 
       wherein ‘m’ is a positive scalar value if the audio file listened to by the user at a time step ‘i−1’ is liked by the user through the UI of the user device and a negative scalar value if the audio file is disliked by the user, and 
       wherein ‘Y (i)’  is the prediction vector determined at each time step based on the community vector ‘V’ associated with the audio file the user listened to at the time step ‘i−1’; and
 computing the probability distribution over the plurality of audio files based on a closeness measure between each of community vectors for the plurality of nodes and the prediction vector. 
 
     
     
       17. The processing system as claimed in  claim 14 , wherein the processing system is caused to compute a probability distribution of the one or more probability distributions by:
 forming a directed graph comprising a plurality of nodes and a plurality of directed edges, each node representing an audio file and a directed edge from the plurality of directed edges originating from a first node to a second node representing a first audio file corresponding to the first node being played and liked before a second audio file corresponding to the second node being played and liked; 
 assigning a weight, with a scalar value between zero and one, to each directed edge based on a time lapse between a playback of the first audio file and a playback of the second audio file; 
 at a time step ‘i’, determining a successive score for each node to measure successiveness to an audio file corresponding to each node listened to at a preceding time step ‘i−1’ based on the directed graph; 
 at the time step ‘i’, computing a path score for each node based on the successive score determined at the time step ‘i’ and a preceding path score computed at the preceding time step ‘i−1’; and 
 computing the probability distribution over the plurality audio files based on corresponding path score associated with each audio file at the time step ‘i’. 
 
     
     
       18. The processing system as claimed in  claim 14 , wherein the processing system is caused to determine the ranking by:
 assigning weights to each of the one or more probability distributions; and 
 combining the one or more probability distributions based on assigned weights to form the ranking of the plurality of audio files. 
 
     
     
       19. The processing system as claimed in  claim 14 , wherein the plurality of data samples comprises at least one of:
 listening patterns of the plurality of audio files associated with the user; and 
 information of feedback of the user on the plurality of audio files, wherein the feedback for an audio file comprises at least a like or a dislike of the audio file. 
 
     
     
       20. A computer program product comprising at least one computer-readable storage medium, the computer-readable storage medium comprising a set of instructions which, when executed by one or more processors, cause a processing system to:
 receive, by a processing system, a plurality of data samples generated from an application in a user device of a user for a plurality of audio files, wherein the plurality of data samples comprises a plurality of contextual features associated with the user, wherein the plurality of contextual features is of interest for determining a ranking of the plurality of audio files, wherein the plurality of contextual features comprise one or more of the following: a date or a weather condition, wherein the plurality of data samples is determined at least in part from at least one change in at least one contextual feature of the plurality of contextual features of the user collected utilizing a plurality of sensing modules; 
 compute one or more probability distributions over the plurality of audio files based on one or more pre-defined criteria, the one or more pre-defined criteria based on the plurality of data samples, wherein the processing system is caused to compute a probability distribution of the one or more probability distributions by: 
 from the received plurality of data samples, collecting at least one of: 
 
       information of a time period elapsed since last playback of each audio file of the plurality of audio files, 
       information of a number of times each audio file is played in a pre-determined time period;
 information of a number of times each audio file is liked, and 
 information of a number of times each audio file is disliked; and 
 computing probability value for each audio file of the plurality of audio files based on collected information to compute the probability distribution; 
 determine a ranking of the plurality of audio files based on the one or more probability distributions over the plurality of audio files; 
 recommend one or more audio files from the ranking of the plurality of audio files to a user through a User Interface (UI) of the user device in the application; and 
 play back the one or more audio files through the UI of the user device.

Join the waitlist — get patent alerts

Track US11138262B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.