Social networking services provide a platform for the dissemination of information among people who share like interests. Each user of a social networking service has a representation, or profile, that allows the user to interact with other users over the Internet. Social networking has become a means for connecting and communicating digitally in real-time.
Amongst the leading social networking services is a platform for sharing information in segments, or microblogs, often with a limitation on the number of characters used in a particular segment. Other services provide a platform for sharing digital information that includes images in addition to text and numeric characters. With millions of users worldwide posting billions of segments of information per day, social networking services represent a vast information fountain. However, only a small portion of the information posted via these social networking services on a daily basis receive engagement from the wider community.
Accordingly, it would be advantageous to have an apparatus and method for providing users of social networking services with a means for receiving engagement from the community in response to the information shared.
This Summary is provided to introduce a selection of representative concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used in any way that would limit the scope of the claimed subject matter.
Briefly, various aspects of the subject matter described herein are directed towards predicting the likelihood of a response. A social element is received by a prediction mechanism. A feature set is generated for the social element. A prediction is generated using the feature set and a prediction model
Another aspect is directed towards response prediction. A prediction mechanism is configured to analyze a social element and generate a prediction associated with the social element using a prediction model.
Yet another aspect is directed towards training a response predictor. A feature value extractor is configured to extract one or more feature values form one or more social elements. A feature vector generator is configured to generate one or more feature vectors for the one or more social elements using the one or more feature values extracted by the feature value extractor. A prediction model is configured to generate a prediction using the one or more feature vectors generated.
Other advantages may become apparent from the following detailed description when taken in conjunction with the drawings.
The present invention is illustrated by way of example and not limited in the accompanying figures, in which like reference numerals indicate similar elements. The advantageous embodiments, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an advantageous embodiment of the present disclosure when read in conjunction with the accompanying drawings, wherein:
Various aspects of the technology described herein are generally directed towards predicting whether or not a social element will receive a response from the social community. As will be understood, a social element may be a digital communication, such as a microblog or other content communication, such as a Tweet® for example, that is posted to a social networking service, such as Twitter® for example.
While the various aspects described herein are exemplified with a social environment directed towards predicting whether or not a social element will receive a response from the social community, it will be readily appreciated that other environments and communities may benefit from the technology described herein. For example, the various aspects described herein may be used to predict whether or not a medical question will receive a response from an online medical community in a medical environment.
Thus, as will be understood, the technology described herein is not limited to any type of environment or community for the dissemination and investigation of information. As such, the present invention is not limited to any particular embodiments, aspects, concepts, protocols, structures, functionalities or examples described herein. Rather, any of the embodiments, aspects, concepts, protocols, structures, functionalities or examples described herein are non-limiting, and the present invention may be used in various ways that provide benefits and advantages in prediction of responses to digital information.
With reference now to the figures and in particular with reference to
The prediction mechanism 102 may have a number of modes, including a training mode and a prediction mode. The training mode is an offline mode. The prediction mode may be an online or offline mode. For illustrative purposes, the prediction mechanism 102 is depicted in the offline training mode. In the training mode, the prediction mechanism 102 trains a predictor to be used in a prediction mode for predicting the likelihood of a response to an information post, such as, without limitation, a Tweet® or status update, for example.
In this illustrative embodiment, the prediction mechanism 102 includes a trainer 104. In the social environment 100, the prediction mechanism 102 interacts with a social graph 106. The social graph 106 is based on a platform, or online service, that includes a representation of each user of that platform, the social links for each user, and a variety of additional services and information. The social graph 106 may be based on, for example, without limitation, a social networking service such as Twitter®.
The social graph 106 includes a plurality of social elements 108. The plurality of social elements 108 may include, for example, without limitation, user representations or profiles, user broadcasted information or posts, and/or any other suitable information provided by the social graph 106. In one illustrative embodiment, the plurality of social elements 108 includes a plurality of microblog posts 110.
In the training mode, the trainer 104 uses training information 112 to train the prediction model 114. The training information 112 includes, without limitation, training data 116, a sentiment lexicon 118, a stop word list 120, hashtag salience scores 122, and word salience scores 124.
Training data 116 consists of a subset of social elements 126. In the training mode, the trainer 104 inputs the subset of social elements 126 from the plurality of social elements 108 provided by the social graph 106 into the training information 112. The subset of social elements 126 may be mined from one or more logs, and/or collected over a suitable period of time, from the plurality of social elements 108 provided by the social graph 106, for example. The subset of social elements 126 may comprise, without limitation, a collection of microblog posts, a collection of status updates, user profiles, time and date associated with each posting, information associated with whether or not each particular post and/or update received a response, and/or any other suitable information provided by the social graph 106, for example. In one illustrative embodiment, the subset of social elements 126 includes a subset of microblog posts 128.
In one example implementation, the sentiment lexicon 118 comprises a collection of positive words and negative words. The stop word list 120 comprises a collection of words such as pronouns and articles. The hashtag salience scores 122 comprises a collection of hashtags, each with a corresponding feature value that indicates the importance of each hashtag with regard to eliciting a response. In one illustrative example, a feature value associated with a particular hashtag may be a binary value indicating either a yes or no as to the importance of that particular hashtag. In another illustrative example, a feature value associated with a particular hashtag may be granular, or scaled, such as a value between one and ten for example, indicating the degree of importance for that particular hashtag. The hashtag salience scores 122 may be generated using a sample of social elements, such as Tweets®, including social elements that did and did not receive a response. In one illustrative embodiment, for each hashtag in the sample of social elements, the ratio of the social elements containing that hashtag that did receive a response and the social elements containing that hashtag that did not receive a response is found, rounded to the nearest integer to get a number, and that number is then defined as a feature of that hashtag.
The word salience scores 124 comprises a collection of words and/or bigrams, each with a corresponding feature that indicates whether each words and/or bigram is of importance with regard to eliciting a response. The word salience scores 124 may be generated in a manner similar to that of the hashtag salience scores 122.
The training information 112 may be used in the offline mode to train the prediction model 114 that a predictor will use in a prediction mode to predict the likelihood of a response to a social element. The training information 112 is input into a feature value extractor 130. Feature value extractor 130 uses one or more feature extraction algorithms to extract one or more feature values 132 for the subset of microblog posts 128 using one or more of the subset of social elements 126, the sentiment lexicon 118, the stop word list 120, the hashtag salience scores 122, and the word salience scores 124. Each social element input into the feature value extractor 130 has a corresponding number of feature values that are then input into a feature vector generator 134. The feature vector generator 134 uses the one or more feature values 132 extracted by the feature value extractor 130 to generate a feature vector 136 for each social element input into the feature value extractor 130. In an illustrative embodiment, each microblog post will have a corresponding feature vector generated by the feature vector generator 134, for example. A feature vector may be comprised of one or more features corresponding to the microblog post, for example. The feature vectors for the training data, along with the information about whether or not each post from the subset of microblog posts 128 received a response, are used to train the prediction model 114. The prediction model 114 is a response prediction model, or a trained classifier, that is configured to enable a predictor to predict the likelihood of a new social element eliciting a response. Trainer 104 uses the feature vectors generated for the training data along with one or more training algorithms and other information associated with the subset of social elements 126 to train the prediction model 114. The training algorithms may include, without limitation, a Boosted Decision Tree classifier, a Maximum Entropy classifier, a weighted perceptron classifier, a Support Vector Machine classifier, and/or any other suitable algorithm for classification. Once the prediction model 114 has been trained, the prediction model 114 is capable of operating in a prediction mode to predict the likelihood of responses for any social element, such as a microblog post, for example.
With reference now to
In the prediction mode, the prediction mechanism 202 predicts the likelihood of a response to an information post, such as, without limitation, a Tweet® or status update, for example. The prediction mechanism 202 includes a predictor 204. The prediction mechanism 202 may interact with a social graph 206. The social graph 206 may be an implementation of the social graph 106 in
The one or more feature values 218 for the microblog post 214 are input into the feature vector generator 220. The feature vector generator 220 may be an illustrative implementation of the feature vector generator 134 in
In one illustrative embodiment, the prediction 228 may be in the form of a “yes” or “no” definitive answer to the likelihood of the microblog post 214 eliciting a response. In another illustrative embodiment, the prediction 228 may be in the form of a probability, of the microblog post 214 eliciting a response.
As used herein, the phrase “at least one of”, when used with a list of items, means that different combinations of one or more of the items may be used and only one of each item in the list may be needed. For example, “at least one of item A, item B, and item C” may include, for example, without limitation, item A or item A and item B. This example also may include item A, item B, and item C or item B and item C.
As used herein, when a first component is connected to a second component, the first component may be connected to the second component without any additional components. The first component also may be connected to the second component by one or more other components. For example, one electronic device may be connected to another electronic device without any additional electronic devices between the first electronic device and the second electronic device. In some cases, another electronic device may be present between the two electronic devices connected to each other.
The different advantageous embodiments recognize and take into account that current social networks provide a vast smorgasbord of information and digital communication. Billions of posts are disseminated but only a portion of those ever garner a response from the pertinent community.
Thus, various aspects of the subject matter described herein are directed towards response prediction. A prediction mechanism is configured to analyze a social element and generate a prediction associated with the social element using a prediction model.
Another aspect is directed towards predicting the likelihood of a response. A social element is received by a prediction mechanism. A feature set is generated for the social element. A prediction is generated using the feature set and a prediction model.
Yet another aspect is directed towards training a response predictor. A feature value extractor is configured to extract one or more feature values from one or more social elements. A feature vector generator is configured to generate one or more feature vectors for the one or more social elements using the one or more feature values extracted by the feature value extractor. A prediction model is configured to generate a prediction using the one or more feature vectors generated.
With reference now to
Feature value extractor 300 may include a number of feature modules for processing the one or more social elements 302 received from a social graph, such as social graph 106 in
For illustrative purposes, the discussion of the feature modules will be described as processing Tweets®. However, the one or more social elements 302 may include any type of social element, such as a status update, a microblog post, a question, and/or any other suitable element, for example. In an offline mode the feature modules of the feature value extractor 300 may process a plurality of social elements at one time. In an online mode the feature modules of the feature value extractor 300 may process one social element at a time.
The historical feature module 306 processes a Tweet® to generate a feature value that corresponds to the history associated with the Tweet®. The history associated with a Tweet® may include, for example, without limitation, information about the user who posted the Tweet®, information about past Tweets® from that user, information about the history of the lexical items identified in the Tweet®, and/or any other suitable historical information. For example, the historical feature module 306 may process a Tweet® to generate an output such as a ratio of Retweeted Tweets® by the same user.
The social network feature module 308 processes a Tweet® to generate a feature value that corresponds to the social relationship associated with the author of the Tweet®. For example, the social network feature module 308 may process a Tweet® to generate an output such as a number of followers of the user of the Tweet®.
The aggregate language feature module 310 processes a Tweet® to generate a feature value that corresponds to the lexical items contained in the Tweet®. For example, the aggregate language feature module 310 may process a Tweet® to generate an output such as whether the Tweet® contain a specific hashtag or whether the Tweet® contain a mention of a particular word.
The content feature module 312 processes a Tweet® to generate a feature value that corresponds to the stop words contained in the Tweet®. Stop words may be, for example, without limitation, pronouns, articles, tokens, and/or any other suitable stop word. A stop word may be a language feature that is used to form a sentence, phrase, or thought, but does not convey content from the perspective of language analysis. For example, the content feature module 312 may process a Tweet® to generate an output such as the number of stop words in the Tweet® or the number of pronouns in the Tweet®.
The posting time feature module 314 processes a Tweet® to generate a feature value that corresponds to the timestamp associated with the Tweet®. For example, the posting time feature module 314 may process a Tweet® to generate an output such as a local time of day of the Tweet®, a day of the week of the Tweet ®, or whether or not the Tweet® was posted on a workday versus a weekend or holiday.
The sentiment feature module 316 processes a Tweet® to generate a feature value that corresponds to the sentiment contained in the Tweet®. Sentiment may refer to positive and negative words, feelings, emotions, and/or any other sentiment. For example, the sentiment feature module 316 may process a Tweet® to generate an output such as the number of positive words in the Tweet® or the number of negative words in the Tweet®.
The illustration of the feature value extractor 300 in
With reference to
The process begins by inputting training information including one or more social elements into a feature value extractor (operation 402). The training information may be input by a trainer, such as trainer 104 in
The process generates one or more feature values for the one or more social elements using the feature value extractor (operation 404). Each of the one or more feature values may correspond to the one or more social elements. The feature value extractor may use a number of algorithms in association with a number of feature modules to generate the one or more feature values.
The process inputs the one or more feature values into a feature vector generator (operation 406). The process then generates one or more feature vectors for the one or more social elements using the one or more feature values (operation 408). The feature vector generator uses the one or more feature values for each of the one or more social elements to generate a feature vector for each of the one or more social elements.
The process trains a prediction model using the one or more feature vectors (operation 410), with the process terminating thereafter. The prediction model may be, for example, a trained classifier configured to enable a predictor, such as predictor 204 in
With reference now to
The process begins by inputting a new social element into a feature value extractor (operation 502). The new social element may be, for example, without limitation, a Tweet®, a microblog post, a status update, and/or any other suitable digital communication. The new social element may be input by the predictor 204 of the prediction mechanism 202 in
The process generates one or more feature values for the new social element using the feature value extractor (operation 504). The process inputs the one or more feature values into a feature vector generator (operation 506). The feature vector generator may be an illustrative implementation or instance of the feature vector generator 220 in
The process generates a feature vector for the new social element using the one or more feature values (operation 508). The process then generates a prediction using the feature vector and a prediction model (operation 510), with the process terminating thereafter. In one illustrative example, the feature vector generated for the social element received and the prediction model may both be input into a decoder, such as the decoder 224 in
In another illustrative example, the prediction model may directly output the prediction. The prediction may be in the form of a definitive in some illustrative examples, such as a “yes” or “no” as to the likelihood of generating a response based on the social element received. In another illustrative embodiment, the prediction may be in the form of a probability, such as a percentage of likelihood that a response will be generated based on the social element received.
In yet another illustrative example, the process may input a plurality of new social elements for prediction as to whether or not each of the plurality of new social elements will receive a response. The prediction mode may be implemented in an offline environment in the illustrative example of processing a plurality of new social elements.
The flowcharts and block diagrams in the different depicted embodiments illustrate example architecture, functionality, and operation of some possible implementations of apparatus, methods and computer program products. In this regard, each block in the flow diagram or block diagrams may represent a module, segment, or portion of computer usable or readable program code, which comprises one or more executable instructions for implementing the specified function or functions. In some alternative implementations, the function or functions noted in the block may occur out of the order noted in the figures. For example, in some cases, two blocks shown in succession may be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
The different advantageous embodiments can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment containing both hardware and software elements. Some embodiments are implemented in software, which includes but is not limited to forms, such as, for example, firmware, resident software, and microcode.
Furthermore, the different embodiments can take the form of a computer program product accessible from a computer usable or computer readable medium providing program code for use by or in connection with a computer or any device or system that executes instructions. For the purposes of this disclosure, a computer usable or computer readable medium can generally be any tangible apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The computer usable or computer readable medium can be, for example, without limitation an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, or a propagation medium. Non limiting examples of a computer readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk, and an optical disk. Optical disks may include compact disk—read only memory (CD-ROM), compact disk—read/write (CD-RAN) and DVD.
Further, a computer usable or computer readable medium may contain or store a computer readable or usable program code such that when the computer readable or usable program code is executed on a computer, the execution of this computer readable or usable program code causes the computer to transmit another computer readable or usable program code over a communications link. This communications link may use a medium that is, for example without limitation, physical or wireless.
A data processing system suitable for storing and/or executing computer readable or computer usable program code will include one or more processors coupled directly or indirectly to memory elements through a communications fabric, such as a system bus. The memory elements may include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some computer readable or computer usable program code to reduce the number of times code may be retrieved from bulk storage during execution of the code.
Input/output or I/O devices can be coupled to the system either directly or through intervening I/O controllers. These devices may include, for example, without limitation to keyboards, touch screen displays, and pointing devices. Different communications adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Non-limiting examples are modems and network adapters are just a few of the currently available types of communications adapters.
The different advantageous embodiments recognize and take into account that current social networks provide a vast smorgasbord of information and digital communication. Billions of posts are disseminated but only a portion of those ever garner a response from the pertinent community.
Thus, the different advantageous embodiments provide an apparatus and methods for predicting the likelihood of a response for a social element, such as a post or other digital communication disseminated into the online community.
The description of the different advantageous embodiments has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the embodiments in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. Further, different advantageous embodiments may provide different advantages as compared to other advantageous embodiments. The embodiment or embodiments selected are chosen and described in order to best explain the principles of the embodiments, the practical application, and to enable others of ordinary skill in the art to understand the disclosure for various embodiments with various modifications as are suited to the particular use contemplated.
With reference now to
The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to: personal computers, server computers, hand-held or laptop devices, tablet devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The invention may be described in the general context of computer- executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, and so forth, which perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in local and/or remote computer storage media including memory storage devices.
With reference to
The computer 610 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the computer 610 and includes both volatile and nonvolatile media, and removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by the computer 610. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above may also be included within the scope of computer-readable media.
The system memory 630 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 631 and random access memory (RAM) 632. A basic input/output system 633 (BIOS), containing the basic routines that help to transfer information between elements within computer 610, such as during start-up, is typically stored in ROM 631. RAM 632 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 620. By way of example, and not limitation,
The computer 610 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media, described above and illustrated in
The computer 610 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 680. The remote computer 680 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 610, although only a memory storage device 681 has been illustrated in
When used in a LAN networking environment, the computer 610 is connected to the LAN 671 through a network interface or adapter 670. When used in a WAN networking environment, the computer 610 typically includes a modem 672 or other means for establishing communications over the WAN 673, such as the Internet. The modem 672, which may be internal or external, may be connected to the system bus 621 via the user input interface 660 or other appropriate mechanism. A wireless networking component 674 such as comprising an interface and antenna may be coupled through a suitable device such as an access point or peer computer to a WAN or LAN. In a networked environment, program modules depicted relative to the computer 610, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
An auxiliary subsystem 699 (e.g., for auxiliary display of content) may be connected via the user interface 660 to allow data such as program content, system status and event notifications to be provided to the user, even if the main portions of the computer system are in a low power state. The auxiliary subsystem 699 may be connected to the modem 672 and/or network interface 670 to allow communication between these systems while the main processing unit 620 is in a low power state.
While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention.