EP2883173A1 - Demographic and media preference prediction using media content data analysis - Google Patents
Demographic and media preference prediction using media content data analysisInfo
- Publication number
- EP2883173A1 EP2883173A1 EP14725803.2A EP14725803A EP2883173A1 EP 2883173 A1 EP2883173 A1 EP 2883173A1 EP 14725803 A EP14725803 A EP 14725803A EP 2883173 A1 EP2883173 A1 EP 2883173A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- data
- segment
- interest
- list
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000007405 data analysis Methods 0.000 title description 3
- 235000019640 taste Nutrition 0.000 claims abstract description 113
- 239000013598 vector Substances 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000012360 testing method Methods 0.000 claims abstract description 20
- 238000012549 training Methods 0.000 claims abstract description 17
- 230000000694 effects Effects 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 11
- 238000005070 sampling Methods 0.000 claims description 9
- 238000001914 filtration Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 abstract description 6
- 238000003860 storage Methods 0.000 description 16
- 238000012706 support-vector machine Methods 0.000 description 10
- 238000013459 approach Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 5
- 230000009193 crawling Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 239000011435 rock Substances 0.000 description 2
- 230000036962 time dependent Effects 0.000 description 2
- 125000000174 L-prolyl group Chemical group [H]N1C([H])([H])C([H])([H])C([H])([H])[C@@]1([H])C(*)=O 0.000 description 1
- SUYHYHLFUHHVJQ-UHFFFAOYSA-N Menazon Chemical compound COP(=S)(OC)SCC1=NC(N)=NC(N)=N1 SUYHYHLFUHHVJQ-UHFFFAOYSA-N 0.000 description 1
- 241000736235 Polemonium reptans Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 235000013361 beverage Nutrition 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000007519 figuring Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
Definitions
- Example aspects of the present invention generally relate to predicting demographics and/or taste preferences from music or other media data.
- a name or title is obtained from a taste profile. There is an index into a data set based on the name or title, and a set of terms and corresponding term weights associated with the name or title are retrieved.
- a sparse vector is constructed based on the set of terms and term weights.
- the sparse vector is input to a training model including target data.
- the target data includes a subset of test data which has a correspondence to a predetermined target metric of data (e.g., demographic data).
- a respective binary value and confidence level is output for each term, corresponding to an association between the term and the target metric.
- FIG. 1 is a representative view of a system in which some embodiments of the invention may be implemented.
- FIG. 2 illustrates a representative view of a set of musical data for an artist according to an example embodiment.
- FIG. 3 illustrates a representative view of a taste profile according to an example embodiment.
- FIG. 4 depicts a representative view of inverted indices for terms associated with musical data according to an example embodiment.
- FIG. 5 is a flowchart diagram showing an exemplary procedure for predicting demographic data.
- FIGs. 6A-6G are representative views of results from predicting demographic data according to example embodiments.
- FIG. 7 is a block diagram of a device for use with various example embodiments of the invention.
- the example embodiments of the invention presented herein are directed to methods, systems and computer program products for predicting demographic data. This description is not intended to limit the application of the example embodiments presented herein. In fact, after reading the following description, it will be apparent to one skilled in the relevant art(s) how to implement the following example embodiments in alternative embodiments, such as such as a services-based environment, a web media-based environment, etc.
- FIG. 1 illustrates a representative view of a system in which some embodiments of the invention may be implemented.
- the environment comprises several modules, which may be embodied as, for example, computer hardware elements executing software, as described below with respect to FIG. 7.
- the system includes management modules 101, which control processing including taste profile analysis.
- management modules 101 retrieve terms and weights associated with an artist, song title, or other preference of a user, and use the terms and weights to predict demographic data or other taste preferences, as described more fully below.
- Taste profiles 103 contains records indicating the music taste (or other tastes) of users.
- each taste profile is a representation of musical activity, and may include a wide range of information such as artist plays, song plays, skips, dates of listen by the user, songs per day, playlists, play counts, start/stop/skip data for portions of a song or album, contents of collections, user rankings, preferences, or other mentions received via a client device, or other media plays, such as websites visited, book titles, movies watched, playing activity during a movie or other presentations, ratings, or terms corresponding to the media, such as "comedy", “sexy”, etc. Further details of the taste profile are described below with respect to FIG. 3.
- Data source 105 contains records as inverted indices in which terms are indexes to documents for artist names or song titles. For example, the terms “Sexy”, “R&B”, and “Dance” might index to a document for artist "Beyonce", as described more fully below with respect to FIG. 4.
- records can be implemented in any other way that allows fast retrieval of desired information.
- Data source 107 is a data set which contains (1) documents over various domains, such as artists and titles, and (2) terms and weights associated with each artist and/or each title.
- FIG. 2 illustrates an example document 201 according to such a data set.
- the document 201 contains a document ID 203 which uniquely identifies the document.
- the domain concerns musical artists.
- document 201 contains an artist ID 205, an artist name 207, and a list of descriptions 209 related to a subject of the domain under consideration, in this case the artist.
- Each description is a term-weight pair, where the term describes the subject and the weight indicates how closely the term describes the subject.
- Data source 107 may store a wide range of terms associated with each artist name or song title, and may be updated at regular intervals, e.g., once per week or month.
- one example embodiment might include a data set including over 10,000 terms for each artist from various sources of data about music (or other media such as books, movies or games), along with associated weights.
- the terms may be weighted based on how important, how often mentioned or how closely related the term is to the artist.
- the terms may contain information about location, genre, style, marketing classifications, sales predictions, reviews, chat room dialogue transcriptions, biographies, recent news articles, time-dependent popularity and familiarity data, cultural analysis data, and the like.
- the artist "Beyonce” might be associated with a vector of terms including "R&B", “sexy”, “dance”, etc., with corresponding weights of .8, .6 and .5.
- “Aphex Twin” might be represented not by a single entity, but rather by a vector of terms with probabilities, e.g., ["idm”:0.9, “glitch”:0.5, “hardcore”: 0.2], etc. Additional information regarding generation of terms and weights can be found in U.S. Patent No. 7,772,478, entitled “Understanding Music", the contents of which are incorporated by reference herein.
- U.S. Patent No. 7,772,4708 entitled “Understanding Music”, the contents of which are incorporated by reference herein.
- the usage of a song, artist, movie, etc. in a taste profile to determine predictive qualities can be enhanced by expanding these media items into descriptive terms and using those terms as the inputs to the predictive model.
- API 109 is an application programming interface used to communicate with a client device to receive or transmit information. For example, API 109 receives a query seeking a prediction of demographic data, and returns a query result. To that end, API 109 may perform user authentication or other user-related activities. In addition, API 109 may present a user interface to a client device or interact with a client device to receive input and display output.
- User database 111 contains records having identification information of users.
- "user” may correspond to a customer such as an advertising entity who submits a query via a client device regarding which demographics are associated with particular musical tastes.
- "user” may also correspond to a person or group whose musical tastes are being examined, as described more fully below. In either case, a user may or may not be required to register and/or input other data to the database.
- FIG. 3 illustrates an entry in taste profiles 103, which contains records indicating user musical (or other) tastes.
- a taste profile is a representation of musical activity, and includes a wide range of information such as artist plays, song plays, skips, ratings by the user, date of listen by the user, songs per day, playlists, play counts, start/stop/skip data for portions of a song or album, contents of collections, user rankings, preferences, or mentions, etc.
- the taste profile data includes, in addition to an artist name or a song title, one or more of the following: length of listening activity for a song, length of listening activity for an album, and user actions during song or album play, such as fast forwarding, track skipping, stopping or pausing the song, or other media plays, such as websites visited, book titles, movies watched, playing activity during a movie or other presentations, ratings, or terms corresponding to the media, such as "comedy”, "sexy”, etc.
- a taste profile can represent a single user or multiple users. Conversely, a single user or entity can have multiple taste profiles. For example, one taste profile could be generated in connection with a user's song play activity, whereas another separate taste profile could be generated for the same user based the user's selection of songs/artists for a playlist.
- taste profile data can also contain third party data about users (anonymous or otherwise) via the use of key- value information.
- third party data can be examined to create anonymous users and anonymous taste profiles based on mentions of a song title or an artist.
- a third-party audio streaming service can update taste profiles based on song
- Events such as streaming of a new song.
- An artist name or song title in a taste profile may be resolved from multiple different textual representations in a taste profile.
- an artist or song might be commonly represented by multiple nicknames, abbreviations, formats, misspellings, aliases, and the like.
- the system may take raw text which might include these abnormalities and resolve them to a formal artist or song title. Such resolution could be performed in a server performing other aspects of the invention, or could be performed off-site in another device.
- priority or preference values for a particular song or artist can be stored in the taste profile and can be weighted more heavily if, for example, an artists or song is listened to more frequently, or if a user has identified favorite artists or songs.
- the disclosure refers mainly to using musical data such as artist name or song title for purposes of clarity, it should be understood that the disclosure is not limited thereto.
- demographic data could be predicted based on another media preference (e.g. , book, movie or game preference) instead of musical data.
- mentions from social media networks, user settings, playlists or favorites lists can be obtained by crawling or mining this information from the web or other user data to determine preferences related to types of content other than music, for example, book, movie or game titles.
- the data set and corresponding terms and weights can be one of a musical data set, a book data set, a movie data set, a game data set, or some combination thereof.
- user preference data is independent of a taste profile, and is simply be gathered based on generic data analysis (e.g., number of mentions, etc.).
- a prediction is based on the book, movie or game data.
- the taste profile database 103 is updated continuously. For example, a record is added when a user listens to a new song, and the record is updated when an update of the user preference for the song is received via a client device.
- the information received from the client device is stored in the database, the correct "matched" metadata is added, and a play count is initialized. For example, a taste profile update with "Britney Spears - Oops" gets resolved to the actual song ID and metadata for "Britney Spears" and "Oops, I Did It Again", with a play count of 1.
- a fingerprint code e.g. , an audio fingerprint code
- the system can resolve the fingerprint code to metadata and discard the fingerprint code.
- taste profiles 103 contains records indicating the music taste (or other tastes) of users. Each taste profile is a representation of musical activity, and may include a wide range of information. Taste profiles 103 can be implemented as one or more relational databases or in any other way that allows fast query processing and scaling.
- a record 301 in taste profiles 103 contains a taste profile ID 303 corresponding to a user.
- the record 301 may further contain various fields identifying a song, such as an artist ID 305 identifying the performer of the song, a play count 307, and an album number or track number identifying the medium of the song (not shown).
- the record 301 may contain various fields indicating a user's affinity for the song, such as a play count 307 and a review.
- Each record 301 in the taste profile is used to produce, for each taste profile ID 303, a list of terms, where the length of the list generally ranges between 1 and 100,000.
- Each record 301 can be implemented as a covering index residing in RAM for fast random access by management modules 101.
- FIG. 4 illustrates a representative view of inverted indices stored in data source 105, which is an index database containing records as inverted indices in which terms are indexes to documents.
- data source 105 is an index database containing records as inverted indices in which terms are indexes to documents.
- records can be implemented in any other way that allows fast retrieval of desired information.
- An inverted index 403 can be generated for any term that appears in the documents in the document database 107. The term is then mapped to the list of documents that contain the term.
- the inverted indices in data source 105 allow the artists, songs or other subjects in music domains that might be associated with terms corresponding to a user's music experience to be identified quickly.
- the system also contains an application programming interface (API) 109.
- API application programming interface
- the API 109 takes a request from a client device, and authenticates users included in the request against the user database 111. Upon successful authentication, the request is passed to the management module 101. After the management module 101 performs processing to fulfill the request and sends the processing result back to the network, the API 109 outputs the processing result to the client device.
- API application programming interface
- Other databases may be communicatively linked to management modules 101. Such additional databases may store music requests each corresponding to one or more users, each representing a list of documents over a specific domain that is associated with specific users. Still other databases may contain records mapping a user to the list of records in the taste profile database 103.
- FIG. 5 is a flowchart diagram showing an exemplary procedure for predicting data.
- this exemplary embodiment predicts demographic data from a wide range of information corresponding to the artist or song title.
- a name or title is obtained from a taste profile.
- An index into a data set is included, which is based on the name or title.
- a set of terms and corresponding term weights associated with the artist name or song title are retrieved from the profile, and the terms and term weights are used to construct a sparse vector.
- the sparse vector is input to a training model including target data, where the target data includes a subset of test data which has a correspondence to a predetermined target metric of data (e.g., demographic data).
- a respective binary value and confidence level is output for each term, corresponding to an association between the term and the target metric.
- the value does not need to be binary.
- regression can be performed with a class such as "income” or "age” on a 0. .. 1 scale with truth vectors having explicit numbers instead of a binary yes/no.
- an artist or song title is obtained from a taste profile. While the disclosure herein may refer to a single artist or song title for purposes of conciseness, it should be understood that the demographic prediction might often be from multiple artists or song titles. For example, in one
- the demographic data may be predicted for all of the artists or song titles in a taste profile or across multiple taste profiles.
- a taste profile is a representation of musical activity, and includes a wide range of information such as playlists, play counts, start/stop/skip data for portions of a song or album, contents of collections, user rankings, preferences, or mentions, etc.
- a taste profile can represent a single user or a multiple users.
- a single user or entity can have multiple taste profiles. For example, one profile could be generated in connection with a user's song play activity, whereas another separate profile for the same user could be generated based on the user's selection of songs/artists for a playlist, among others.
- publicly available data can be tied to the taste profile. For example, social media sites can be examined to create anonymous users and anonymous taste profiles.
- a database may store a wide range of terms associated with each artist name or song title. For example, one example embodiment might include over 10,000 terms for each artist and associated weights, based on how important, how often mentioned or how closely related the term is to the artist, including location, genre and style, biography, recent news articles, time-dependent popularity and familiarity data, cultural analysis data, and son on. For example, the artist "Beyonce” might be associated with a vector of terms including "fast tempo", “R&B", “sexy” etc., with corresponding weights of 4.5, 4.2 and 2.5. Additional information regarding generation of terms and weights can be found in U.S. Patent No.
- a sparse vector is constructed based on the obtained terms and weights.
- each non-zero term corresponding to the artist or song title (or each artist or song title, if there are multiple) is combined to form a vector, with each dimension of the vector being a retrieved term, e.g., "sexy".
- the taste profile includes multiple artists or song titles
- the sparse vector is constructed from all of the terms in the musical data set corresponding to all artists or songs in the taste profile.
- the sparse vector represents an entity's ⁇ e.g., a user's) musical identity. All non-zero terms across all artists in the taste profile are combined to form the vector.
- the weight of that term can be increased by, for example, adding the individual weights together for that term, by multiplying the probabilities, or by placing them in a Gaussian or other distribution and
- the sparse vector is input to a training model, for example by a support vector machine (SVM).
- SVM support vector machine
- the training model is based on machine learning from ground truths from a random selection of data where target (demographic) data has been filled in and is held back during evaluation so that the evaluation task has never seen the input data before.
- a training model might use a database of one million taste profiles, which, as mentioned above, include snapshots of detailed listening activity and artist preference, alongside other demographic data and media preference data from various publicly available sources.
- One half of the one million might be test data for which certain ground truths are known, i.e., person x likes classical and country music, and falls under the demographic categories of male and 25-40 years of age.
- the test data has an even distribution of false and positive examples, e.g., half of each.
- Exemplary data found in a training model is shown below, with the artist and song plays as the source data, and the remaining fields listing target demographic metrics.
- the test data can comprise a set of data determined to be associated with the target metric, as a ground truth for the learning model.
- the learning model trains on these ground truths, and then predicts demographics for new (input) taste profiles based on the model.
- Each target metric e.g., male gender
- Each target metric is treated as a binary classification with multiple buckets each being a separate classifier, although regression is possible for certain classes (age, location) to get mean absolute error (MAE) instead of an Fl measure.
- the training model may use support vector machines (SVM) to train a model of profiles to a class output.
- SVM support vector machines
- multiple instances of a taste profile can be used, and a non-linear distance function (e.g., the kernel method) can be used as a target function.
- the value of the evaluation kernel for new data is the "score" for the affinity between a new taste profile and the target.
- a linear SVM can be used for Vector A and a Gaussian RBF kernel SVM can be used for Vector B.
- Automatic regularization detection can also be used as described in U.S. Patent No.
- the training model may give an output class of 0 or 1 (positive or negative) for each input sparse vector, along with a confidence interval from the SVM classifier expressed as an absolute value.
- a positive output class indicates that this taste profile is part of the class predetermined in the ground truth (e.g. , male gender), and the absolute value is the amount of confidence in that relation between the taste profile and the class.
- the confidence value associated with the SVM classifier could be used to filter results. For example, results or output could be filtered to only those terms with a confidence level above a set threshold. In such a case, a tradeoff between accuracy and coverage can be managed by varying the threshold.
- the artist or title (or all of the artists or titles in the sparse vector) can be evaluated as a classifier based on the output.
- the system may examine the predictions using, for example, an Fl measure or false positive/negative rates, etc., to determine the accuracy of the prediction for a given song title or album name.
- the Fl measure computes a single blended measure of precision (how often the prediction was relevant) and recall (how much of the - Ir relevant data was correctly predicted). Therefore, if very few of the test set is over the age of 80, a "dumb" classifier could simply never predict that age bracket and get very high scores— Fl counters this by figuring in the statistics of the dataset.
- graph data from social networks can be utilized to build predictive models of audience segmentation or brand affinity, based on media preference (e.g. music taste).
- the target metric can be a segment or brand affinity (e.g., "concerts" or
- the predictive model can be enhanced by using follower graph data from social networks.
- a “segment” refers to one or more individual brands or accounts.
- a segment such as “concerts” may contain many brands such as particular venues or ticketing companies.
- the target metric is a brand or segment affinity. For example, it may be desirable to determine if a particular user has an affinity for TicketMasterTM. Since musical data embedded in a taste profile may not necessarily be sufficient to easily predict such brand or segment affinity, this embodiment gathers musical affinity data from social networks to aid in the prediction.
- social networks and media sites expose a "social graph" - the connections between friends, followers, and concepts or media or brands that the person chooses to like or follow.
- a particular user's graph is defined as the set of accounts they follow or are following.
- a TwitterTM account can follow a musician, a brand, a publication, or other people. As such, it is possible to quickly gather connections between musicians and other brands by finding colocation in the graph for large amounts of people or accounts.
- a name or title is obtained from a taste profile.
- a sparse vector is constructed based on the set of terms and term weights.
- a target brand or segment of interest is identified.
- a first list of accounts who follow the brand or segment of interest is generated by examining social media data, and a second list is generated of what additional entities are followed by accounts in the first list.
- the second list is filtered through a space mapping that maps entities to names or titles from taste profiles, to generate a subset of test data having a correspondence to the target brand or segment of interest.
- the sparse vector is input to a training model including target data.
- the target data includes the subset of test data having a correspondence to the target brand or segment of interest.
- a segment can contain many individual brands or accounts.
- a segment for "concerts" can contain multiple venues or ticketing companies.
- a list of accounts e.g., people
- TicketMasterTM is followed by 1 18,000 people, and a number of these accounts may be retrieved for a predictive model.
- the number of accounts selected for the list of accounts may be a function of the size of the data, the complexity of the problem, and so on. For example, in one example case only 5,000 accounts or so may be necessary to generate a good predictive model, but in more complex cases, more may be necessary.
- a first list of accounts is generated by selecting people who follow the target brand or segment of interest in a random sampling fashion. Nevertheless, in some cases, the sampling may not be exactly "random", as the sampling may include additional features such as choosing or filtering for "quality" users (e.g., non-spammers or fake accounts) and the like.
- a second list is generated by determining additional entities that are followed by the accounts comprising the first list.
- the second list is filtered through an ID space mapping that maps entities to names or titles from taste profiles. Thus, for example, it can be determined that a random account follows TicketmasterTM and a set of musicians.
- the ID space mapping generally, is a method to convert an artist name or song title or a song analysis to a unique identifier that can be used across many different databases.
- the unique identifier has a high probability of being actually unique, that is, there is low chance of overlap due to a song of a different quality or an artist misspelling or collaboration.
- the identifier can be used to translate between other database entries and formats that a user or administrator might not have control over.
- an ID space mapping scheme has a one-to- one mapping between a musical entity (e.g., artist or song title) and an ID, where different components provide different information.
- an example ID might be "ARHAWPX1 187B99274F".
- "AR” might correspond to a "type code” indicating the type of entity being represented by the ID.
- artists might be represented by “AR”, for songs, “SO”, releases, “RE”, and so on.
- the type code is, in this example, a two letter code that identifies the type in the ID itself, which helps quickly identify without a database lookup what entity the ID refers to.
- the next component in the example ID above, "HAWPX” can be a random string generated by a machine on boot of a process that generates new IDs. This string is formed from a dictionary of upper case letters.
- the random generator triggers once per process, and allows a user or system to trace back an ID generator to the process.
- the final component in the example ID above, "1 187B99274F”, is a hexadecimal representation of the time in the operating system since the UNIX epoch, with an assurance that if the time is the same as the last generated ID, 1 is added to the number.
- the above scheme is simply an example, and other schemes and/or mappings could be used.
- the random string may be compressed to 24 bits using hexavigesimal encoding and combined with the ten least significant digits of a time code to provide a 64-bit ID number which is useful for database storage.
- songs are the musical entity for one-to-one ID mapping
- the system might take into account a more specific definition of a "song" for a more robust set of data.
- a "song” might be defined specifically as a single recorded work, such that a live version of a song and the original song get different IDs, or a cover version of a song (same composition ID) has a different song ID than the original.
- input song files might be referred to as " “ tracks” (type code TR) to delineate them from songs.
- a song has many tracks, often hundreds, with each one slightly different, such as different radio edits, mastering, re-releases, different encodings, and the like.
- any input new track can be processed to create an audio fingerprint, which is matched against the closest matching track.
- the track's song can then be looked up, and the new track can be assigned same song ID, whereas if there is no matching track, a new song ID can be created.
- a text indexing system can be used to quickly match out a few candidates and then filter using a set of rules. For example, rules might include replacing punctuation like " ⁇ &" with "and”, etc., using metaphone or soundex " sounds-like” matching to see if words were spelled incorrectly, and removing stop words like the, or "D.J". If given both songs and artists, the song data can be used to see if a differently spelled artist has songs with that title.
- sets of artists and songs may be input from partners and customers.
- a table of the native ID scheme can be maintained alongside the newly generated ID.
- partners or customers can query for data with any other foreign ID. Quite often, due to the high quality nature of a fingerprint, many tracks from a customer might point to the same song. If a "foreign" ID is used that points to an expired or merged ID, the foreign ID can be redirected to the proper canonicalized ID, and the multiple track IDs from a customer can be reported given a single unique song ID.
- records may need to be updated or deleted. For example, merges (two separate IDs that were determined to be the same entity) can be tracked by a table that keeps the old ID around. If a user queries for a merged-out ID, the proper (new) ID can be returned instead. In another example, if an entity is deleted, the corresponding ID can be maintained so it is not reused.
- an accurate match between a social media account and a corresponding artist name and identifier can be obtained, for example, using a combination of web crawling and/or artist name matching as described in U.S. Patent Application No. 13/850,044, entitled “Named Entity Extraction From a Block of Text", the contents of which are incorporated by reference herein.
- an addition to the taste profile can be generated, in which each account has a set of n artists as well as a brand or segment affiliation.
- the taste profile can then be used to train a predictive model as described above, adding new segments or brands whenever needed.
- spam detection or other measures may be added in order to identify and eliminate for false or misleading information, and in particular, to eliminate false or suspicious accounts.
- many accounts on social networks may be false, either to boost numbers for a brand or to spam users with messages. For example, 10,000 followers of a particular brand might appear to all follow the exact same set of people, and all appear to have fake names.
- false or suspicious accounts can be identified by, for example, examining the number of accounts that follow suspicious accounts (e.g., whether the account has less than a threshold number of followers), or by determining how active the accounts are on the social network in question (e.g., whether the account has less than a threshold amount of activity). The false or suspicious account can then be eliminated.
- the invention is not limited to prediction based on ground truths or predetermined labels.
- the machine learning can also be conducted without ground truths.
- clusterings are produced instead of predictions.
- the system may find that people that listen frequently to classical music also tend to listen earlier in the morning, people who listen for less than a minute to each song tend to not pay bills, etc.
- the output is generally a clustering of behavioral data.
- taste groups e.g., 80s, country, R&B
- affinity groups e.g., influencer, hipster, mainstream
- Taste profiles can be clustered into useful buckets using an unsupervised method, i.e., one without predetermined ground truths. This method inputs a large set of taste profile data and uses an unsupervised clustering approach that creates k new buckets to place new data in (with k being chosen beforehand). Unsupervised clustering finds latent variables in data, and may show new ways of categorizing an audience, although the buckets are not labeled in any necessarily understandable way.
- latent taste clusters are generated from taste profile data corresponding to one or more anonymous users and including at least an artist name or a song title.
- An artist name or a song title is obtained from a taste profile stored in taste profile data corresponding to one or more anonymous users.
- a sparse vector is constructed based on the terms and term weights. The sparse vector is input to a clustering procedure, and one or more latent taste clusters are output based on the clustering.
- a taste clustering prediction procedure such as that mentioned above could operate on the same data as for the demographic prediction procedure, with the exception that there is no ground truth (i.e., no training data is required).
- the clustering procedure could comprise, for example, K-means or Latent Dirichlet Allocation (LDA) clustering trained on taste profile data to represent hidden variables in the group of profile data. The results can be evaluated, for example, by seeing how cleanly the generated clusters maintain divisions, such as whether folk music and rock music remained neatly segregated between clusters.
- K-means Latent Dirichlet Allocation
- FIGs. 6A to 6G are representative views of results from predicting demographic data according to example embodiments.
- FIG. 6A shows demographic data predicted based on simple data.
- age bracket and gender can be predicted from web browsing data, e.g., sites visited and the content of the sites visited, reaching Fl scores of 0.8 for gender and 0.4 for age bracket.
- predicting gender from writing style on movie reviews reaches an accuracy of about 73%.
- log material such as page title and IP address is matched against registration data from a news website, yielding a break-even point of .7 for gender and .42 for age bracket.
- FIGs. 6B to 6G depict various sample outcomes according to example embodiments of the invention.
- Vector A is a vector based merely on the words making up the names of artists or songs that a user has listened to, and is shown for comparison with the more robust Vector B.
- Vector B corresponds to the more robust sparse vector discussed above, namely, based on a database storing, e.g., over 10,000 terms for each artist and/or song, along with associated weights.
- FIGS. 6B to 6G depict the differences between two vectors of each taste profile representing the music listening as the input to the training model.
- Vector A is a "bag of words" term approach where every song or artist either exists or does not exist. For example, anonymous user X is
- Vector B takes far more data for all of those artists and songs and arranges it in a far more descriptive set of musical data, including genre descriptors, similar artists, words used to describe the artists and songs, popularity, and so on.
- the vector B data is composed of a combination of artist data with weights with term data from cultural analysis as described above and in U.S. Patent No. 7,772,478.
- a linear SVM can be used for Vector A and a Gaussian RBF kernel SVM can be used for Vector B.
- Automatic regularization detection can also be used as described in U.S. Patent No.
- FIGS. 6B to 6G depict accuracy on the vector A approach and the vector B approach, alongside (in some cases) other methods.
- Some target types such as movie and book preference require bucketing into genre/style specific clusters.
- the music service task (FIG. 6E) looked at anonymous users who listed a preference for a music service like Spotify, Rdio, Rhapsody or MOG, vs. not mentioning one (or having any activity related to such a service) and then the same for radio services such as iHeartRadio or Pandora. Music preference seems to be a reliable predictor for subscribing to a radio service, but perhaps not yet for a streaming service.
- the Vector A approach on streaming received an Fl of 0.
- Relationship status (FIG. 6G) ordinarily comes from a lot of messy data from various sources. This data was cleaned as best as possible and three major buckets were identified: “single,” “married” and “in a relationship.” For example, “seeing someone” or “engaged” went to “in a relationship,” “alone forever” went to 'single,” “domestic partnership” went to “married” and so on. It can be seen that while it is difficult accurately predicting married vs. not or "in a relationship", there is better performance at predicting single (again, note that the score does take into account the very high bias of our test set mostly self reporting as “single.”). In this case, additional music data being gathered may help.
- FIG. 7 is a block diagram of a general and/or special purpose computer 700, which may be a general and/or special purpose computing device, in accordance with some of the example embodiments of the invention.
- the computer 700 may be, for example, a user device, a user computer, a client computer and/or a server computer, among other things.
- the computer 700 may include without limitation a processor device 710, a main memory 725, and an interconnect bus 705.
- the processor device 710 may include without limitation a single microprocessor, or may include a plurality of microprocessors for configuring the computer 700 as a multi-processor system.
- the main memory 725 stores, among other things, instructions and/or data for execution by the processor device 710.
- the main memory 725 may include banks of dynamic random access memory (DRAM), as well as cache memory.
- DRAM dynamic random access memory
- the computer 700 may further include a mass storage device 730, peripheral device(s) 740, portable non-transitory storage medium device(s) 750, input control device(s) 780, a graphics subsystem 760, and/or an output display interface 770.
- a mass storage device 730 peripheral device(s) 740, portable non-transitory storage medium device(s) 750, input control device(s) 780, a graphics subsystem 760, and/or an output display interface 770.
- all components in the computer 700 are shown in FIG. 7 as being coupled via the bus 705.
- the computer 700 is not so limited.
- Devices of the computer 700 may be coupled via one or more data transport means.
- the processor device 710 and/or the main memory 725 may be coupled via a local microprocessor bus.
- the mass storage device 730, peripheral device(s) 740, portable storage medium device(s) 750, and/or graphics subsystem 760 may be coupled via one or more input/output (I/O) buses.
- the mass storage device 730 may be a nonvolatile storage device for storing data and/or instructions for use by the processor device 710.
- the mass storage device 730 may be implemented, for example, with a magnetic disk drive or an optical disk drive. In a software embodiment, the mass storage device 730 is configured for loading contents of the mass storage device 730 into the main memory 725.
- the portable storage medium device 750 operates in conjunction with a nonvolatile portable storage medium, such as, for example, a compact disc read only memory (CD-ROM), to input and output data and code to and from the computer 700.
- a nonvolatile portable storage medium such as, for example, a compact disc read only memory (CD-ROM)
- the software for storing information may be stored on a portable storage medium, and may be inputted into the computer 700 via the portable storage medium device 750.
- the peripheral device(s) 740 may include any type of computer support device, such as, for example, an input/output (I/O) interface configured to add additional functionality to the computer 700.
- the peripheral device(s) 740 may include a network interface card for interfacing the computer 700 with a network 720.
- the input control device(s) 780 provide a portion of the user interface for a user of the computer 700.
- the input control device(s) 780 may include a keypad and/or a cursor control device.
- the keypad may be configured for inputting alphanumeric characters and/or other key information.
- the cursor control device may include, for example, a handheld controller or mouse, a trackball, a stylus, and/or cursor direction keys.
- the computer 700 may include the graphics subsystem 760 and the output display 770.
- the output display 770 may include a cathode ray tube (CRT) display and/or a liquid crystal display (LCD).
- the graphics subsystem 760 receives textual and graphical information, and processes the information for output to the output display 770.
- Each component of the computer 700 may represent a broad category of a computer component of a general and/or special purpose computer. Components of the computer 700 are not limited to the specific implementations provided here.
- Software embodiments of the example embodiments presented herein may be provided as a computer program product, or software, that may include an article of manufacture on a machine accessible or machine readable medium having instructions.
- the instructions on the non-transitory machine accessible machine readable or computer-readable medium may be used to program a computer system or other electronic device.
- the machine or computer-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD- ROMs, and magneto-optical disks or other type of media/machine-readable medium suitable for storing or transmitting electronic instructions.
- the techniques described herein are not limited to any particular software configuration. They may find applicability in any computing or processing environment.
- machine-readable shall include any medium that is capable of storing, encoding, or transmitting a sequence of instructions for execution by the machine and that cause the machine to perform any one of the methods described herein.
- machine accessible medium e.g. , any medium that is capable of storing, encoding, or transmitting a sequence of instructions for execution by the machine and that cause the machine to perform any one of the methods described herein.
- speech of software in one form or another (e.g. , program, procedure, process, application, module, unit, logic, and so on) as taking an action or causing a result.
- Such expressions are merely a shorthand way of stating that the execution of the software by a processing system causes the processor to perform an action to produce a result.
- Portions of the example embodiments of the invention may be conveniently implemented by using a conventional general purpose computer, a specialized digital computer and/or a microprocessor programmed according to the teachings of the present disclosure, as is apparent to those skilled in the computer art.
- Appropriate software coding may readily be prepared by skilled programmers based on the teachings of the present disclosure.
- Some embodiments may also be implemented by the preparation of application-specific integrated circuits, field programmable gate arrays, or by interconnecting an appropriate network of conventional component circuits.
- the computer program product may be a storage medium or media having instructions stored thereon or therein which can be used to control, or cause, a computer to perform any of the procedures of the example embodiments of the invention.
- the storage medium may include without limitation a floppy disk, a mini disk, an optical disc, a Blu-ray Disc, a DVD, a CD or CD-ROM, a micro-drive, a magneto-optical disk, a ROM, a RAM, an EPROM, an EEPROM, a DRAM, a VRAM, a flash memory, a flash card, a magnetic card, an optical card, nanosystems, a molecular memory integrated circuit, a RAID, remote data storage/archive/warehousing, and/or any other type of device suitable for storing instructions and/or data.
- some implementations include software for controlling both the hardware of the general and/or special computer or microprocessor, and for enabling the computer or microprocessor to interact with a human user or other mechanism utilizing the results of the example embodiments of the invention.
- software may include without limitation device drivers, operating systems, and user applications.
- Such computer readable media further includes software for performing example aspects of the invention, as described above.
- FIGs. 1-7 are presented for example purposes only.
- the architecture of the example embodiments presented herein is sufficiently flexible and configurable, such that it may be utilized (and navigated) in ways other than that shown in the accompanying figures.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Tourism & Hospitality (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361798827P | 2013-03-15 | 2013-03-15 | |
US13/849,167 US9547679B2 (en) | 2012-03-29 | 2013-03-22 | Demographic and media preference prediction using media content data analysis |
PCT/US2014/025532 WO2014151351A1 (en) | 2013-03-15 | 2014-03-13 | Demographic and media preference prediction using media content data analysis |
Publications (1)
Publication Number | Publication Date |
---|---|
EP2883173A1 true EP2883173A1 (en) | 2015-06-17 |
Family
ID=51580937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP14725803.2A Withdrawn EP2883173A1 (en) | 2013-03-15 | 2014-03-13 | Demographic and media preference prediction using media content data analysis |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP2883173A1 (en) |
WO (1) | WO2014151351A1 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10558935B2 (en) * | 2013-11-22 | 2020-02-11 | California Institute Of Technology | Weight benefit evaluator for training data |
US9953271B2 (en) | 2013-11-22 | 2018-04-24 | California Institute Of Technology | Generation of weights in machine learning |
US9858534B2 (en) | 2013-11-22 | 2018-01-02 | California Institute Of Technology | Weight generation in machine learning |
US10535014B2 (en) | 2014-03-10 | 2020-01-14 | California Institute Of Technology | Alternative training distribution data in machine learning |
US11087210B2 (en) * | 2017-08-18 | 2021-08-10 | MyFitnessPal, Inc. | Context and domain sensitive spelling correction in a database |
CN113837807B (en) * | 2021-09-27 | 2023-07-21 | 北京奇艺世纪科技有限公司 | Heat prediction method, heat prediction device, electronic equipment and readable storage medium |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7772478B2 (en) | 2006-04-12 | 2010-08-10 | Massachusetts Institute Of Technology | Understanding music |
US20100191689A1 (en) * | 2009-01-27 | 2010-07-29 | Google Inc. | Video content analysis for automatic demographics recognition of users and videos |
WO2011032069A2 (en) * | 2009-09-14 | 2011-03-17 | Envio Networks Inc. | Context enhanced marketing of content and targeted advertising to mobile device users |
US20120041969A1 (en) * | 2010-08-11 | 2012-02-16 | Apple Inc. | Deriving user characteristics |
US8495143B2 (en) * | 2010-10-29 | 2013-07-23 | Facebook, Inc. | Inferring user profile attributes from social information |
-
2014
- 2014-03-13 WO PCT/US2014/025532 patent/WO2014151351A1/en active Application Filing
- 2014-03-13 EP EP14725803.2A patent/EP2883173A1/en not_active Withdrawn
Non-Patent Citations (2)
Title |
---|
None * |
See also references of WO2014151351A1 * |
Also Published As
Publication number | Publication date |
---|---|
WO2014151351A1 (en) | 2014-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9406072B2 (en) | Demographic and media preference prediction using media content data analysis | |
US9547679B2 (en) | Demographic and media preference prediction using media content data analysis | |
US11645301B2 (en) | Cross media recommendation | |
US20210141814A1 (en) | Concept-level user intent profile extraction and applications | |
US10250933B2 (en) | Remote device activity and source metadata processor | |
Cheng et al. | Just-for-me: an adaptive personalization system for location-aware social music recommendation | |
US10459904B2 (en) | Real time mapping of user models to an inverted data index for retrieval, filtering and recommendation | |
US10540385B2 (en) | Taste profile attributes | |
Dror et al. | I want to answer; who has a question? Yahoo! answers recommender system | |
Weerkamp et al. | People searching for people: Analysis of a people search engine log | |
WO2014151351A1 (en) | Demographic and media preference prediction using media content data analysis | |
Peled et al. | Matching entities across online social networks | |
Zangerle et al. | Exploiting twitter’s collective knowledge for music recommendations | |
Taneja et al. | Recommendation research trends: review, approaches and open issues | |
Li et al. | Precomputed clustering for movie recommendation system in real time | |
Xiao et al. | Play duration based user-entity affinity modeling in spoken dialog system | |
US11838597B1 (en) | Systems and methods for content discovery by automatic organization of collections or rails | |
Kreutz | Tapping the social stream: inducing language resources for computational social science | |
Bennett | A scalable recommender system for automatic playlist continuation | |
Melchiorre | Explainable and Fair Music Recommender Systems/Author Alessandro B. Melchiorre | |
Ding | On Music and Social Event Recommender Systems | |
Moattari | Implementing a content-based recommender system for news readers | |
Bi | Bayesian Modeling for Analyzing Online Content and Users | |
Schedl et al. | Mining User Generated Data for Music Information Retrieval. | |
Çetinkal | Matching of social media accounts by using public information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20141027 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
DAX | Request for extension of the european patent (deleted) | ||
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: SPOTIFY AB |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
17Q | First examination report despatched |
Effective date: 20180305 |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: SPOTIFY AB |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN |
|
18W | Application withdrawn |
Effective date: 20190131 |