Within the field of computing, many scenarios involve the presentation of a set of search results in response to a search query submitted by a user. The user may submit the search query against many types of data sets, including a set of web resources (including a small set of pages, such as an intranet or the pages of a website), a set of media objects such as images or musical performances, a set of records in a database, or a set of advertisements for various products and services. The search results may then be presented to the user in many ways (e.g., as a set of uniform resource identifiers (URIs) to the search results comprising web resources, or as a tiled set of thumbnails representing various images selected from an image database.)
A more recent trend within the field of computing is the rise of social networking, wherein users may establish associations representing relationships with other users, and may share data of interest with all or some associated users. In this context, a user may establish a social profile comprising data that identifies various aspects of the user to associated users, such as demographic information, a set of interests such as hobbies or professional skills, and a set of resources that are interesting to the user. The social profile of the user may differ significantly from a private profile of the user, which may include private information that the user does not wish to share with any other users. By contrast, users may consent to having some aspects of his or her social profile more broadly shared; e.g., a user might author a message (such as a personal status, a note about a particular topic, or a message directed to another user) that may initially be accessible only to users who are associated with the user, but may permit an associated user to repost the message for access by all of the users associated with the associated user (e.g., a friend of a user may be permitted to take the user's message and repost it to grant access to the friend's friends.) In this manner, data shared over a social network (and, in particular, data comprising the social profile of a user) may be propagated in select ways to others via the social network.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key factors or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
In view of the widespread use of search engines to apply queries to various data sets and the emerging significance of social networking, it may be advantageous to facilitate the fulfillment of a search query received from a user by utilizing the information comprising the user's social profile. As a first example, the search query may be personalized based on information in the user's social profile, such as the user's interests and demographic information. As a second example, the search query may be personalized based on information in the social profiles of users with whom the user is affiliated. As a third example, the search results of the user, and the user's response to the search results (e.g., reviewing particular search results) may be evaluated, and may subsequently inform the presentation of search results for search queries submitted by other users who are associated with the user.
These and other scenarios suggest some potential advantages of utilizing social network information while handling search queries and search results. In particular, this information may be utilized to adjust the search results of a search query. For example, when the user submits a search query against a data set, a search engine may apply the search query to the data set to retrieve a set of search results. An embodiment of these techniques may then identify one or more topics associated respective the search results, and, based on the social profile of the user, may predict which topics may be of interest to the user. The embodiment may then adjust the search results, such that the search results having a higher probability of appealing to the interests of the user may appear in the set of search results before other search results having a lower probability of interest.
To the accomplishment of the foregoing and related ends, the following description and annexed drawings set forth certain illustrative aspects and implementations. These are indicative of but a few of the various ways in which one or more aspects may be employed. Other aspects, advantages, and novel features of the disclosure will become apparent from the following detailed description when considered in conjunction with the annexed drawings.
The claimed subject matter is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the claimed subject matter. It may be evident, however, that the claimed subject matter may be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to facilitate describing the claimed subject matter.
Within the field of computing, two common scenarios and sets of techniques have arisen that, according to the present disclosure, may share a nexus of functionality. The first scenario involves the application of a search query submitted by a user to a data set to produce a set of search results. Many such search engines have been devised to apply search queries to many types of data sets (e.g., a web search engine configured to index a set of web resources, such as websites of various web pages; a media database configured to index various properties of a set of media objects, such as images, music, or videos; and an advertisement database configured to select advertisements from an advertisement set that are targeted based on the details of a user.) Many types of queries may also be accepted and applied to these data sets, such as keyword queries, natural language queries (sometimes received as speech through a speech recognition engine), logical queries specifying sets of criteria connected by Boolean operators, and queries specified in a search query language, such as a structured query language (SQL) or variant thereof. The search results may also be provided in many forms, such as a simple list of uniform resource identifiers (URIs) of matching web resources, a tiled set of thumbnails of matching images, or a preview of a matching video.
The second scenario involves a social network, where each user may each create a social profile that represents and describes the user, and where the users may then establish associations representing various types of relationships with other users (such as family relationships, friendships, acquaintanceships, and professional or academic relationships.) Users of the social network may also share information with other users via the social network, such as public demographic information (e.g., the individual's age and race), academic and career history, and interests (e.g., hobbies, skills, or preferences in books and music.) Users may also share messages of different types with other users via the social network, such as a status message, a note written about a particular topic, or a public message sent to another user. This context may differ significantly from other contexts involving a user profile, wherein the user may provide private information that is only shared or used in limited circumstances, such as the user's private messages with other users, credit card number, medical information, and private web search history. By contrast, the information comprising the social profile of the user is often intended to be shared. Some such information may be completely public and viewable by anyone, while other information may be shared only with associated users who are associated with the user by a relationship, and still other information may be shared only with a subset of associated users. However, a user may also permit associated users to share some of the information in the social profile with still others (e.g., a user may permit friends to “repost” or republish a message for viewing by any other users who have established associations with the friends.)
These scenarios may arise frequently and in many contexts in the field of computing. For example, a user 12 may, upon submitting a search query 14 for application against a data set 16, discover an interesting search result 20, and may then share the search result 20 with associated users 28 via the social network. However, these tasks often involve distinct actions; e.g., the interactions of the user 12 with the data set 16 may be isolated from and unaffected by the social network of the user 12 except when the user 12 explicitly transfers content from the data set 16 to the social network, and the social profile 22 of the user 12 may not influence the application of the search query 14 to the data set 16.
In view of the prevalence of search engines and social networking in contemporary computing, it may be advantageous to utilize certain aspects of each technique in the performance of the other. In particular, it may be advantageous for a data set 16, while processing a search query 14 submitted by a user 12, to identify data items 18 that may be of interest to the user 12 based on the social profile 22 of the user 12. As a first example, the user 12 may submit a search query 14 including an ambiguous keyword that might correspond to a city, a music band, and a technology product. By examining the social profile 22 of the user 12, the data set 16 may identify that the user 12 is not located anywhere near the city and does not appear to be interested in the type of music produced by the music band, but owns other products manufactured by the technology company that is producing the named product. The data set 16 may therefore determine that the user is more likely referring in the search query 14 to the technology product than the other options. As a second example, if the user 12 enters a search query 14 seeking a recommendation (e.g., “summer vacation cities”), the social profiles 22 of associated users 28 who are associated with the user 12 may be examined to predict an interest in a particular recommendation (e.g., “your friend Beth recently wrote this comment about this city . . . ” and “your friend John recently moved to this city . . . ”), and any search results 20 relating to these recommendations may be emphasized in the search result set presented to the user 12 over other search results 20.
In view of these aspects of search engines and social networking presented herein are techniques for facilitating each service through aspects of the other service. In particular, presented herein are techniques for improving the relevance of search results 20 to a user 12 based on the social profile 22 of the user 12 within the social network. These techniques involve applying the search query 14 to the data set 16 to identify search results 20, which often results in an ordering of the search results 20 based on criteria about the search results (e.g., the coincidence of the details of the search result 20 with the criteria of the search query 14, the reliability or popularity of the source of the search result 20, and the age of the search result 20.) Regarding these search results 20, the techniques presented herein involve evaluating each search result 20 to identify one or more topics associated with each search result 20. The social profile 22 of the user 12 may then be reviewed to predict a user interest of the user 12 in the topics associated with the search results 20. This prediction may involve, e.g., the profile elements 24 stored in the social profile 22 of the user 12 and the associations 26 of the user 12 with associated users 28, as well as the social profiles 22 of the associated users 28. Based on the prediction of user interest of the user 12 in respective search results 20, an embodiment of these techniques may then adjust the search results 20. For example, the search results 20 may be reordered to reflect a sorting based on the predicted user interest in the search results 20. The search results 20 may then be presented to the user 12 in an adjusted manner, such that search results 20 having a higher predicted user interest are presented before search results 20 having a lower predicted user interest. In this manner, the details of the user 12 identified in the social network may be utilized to improve the presentation of the search results 20 to the user 12.
Still another embodiment involves a computer-readable medium comprising processor-executable instructions configured to apply the techniques presented herein. An exemplary computer-readable medium that may be devised in these ways is illustrated in
The techniques presented herein may be devised with variations in many aspects, and some variations may present additional advantages and/or reduce disadvantages with respect to other variations of these and other techniques. Moreover, some variations may be implemented in combination, and some combinations may feature additional advantages and/or reduced disadvantages through synergistic cooperation. The variations may be incorporated in various embodiments (e.g., the exemplary method 40 of
A first aspect that may vary among embodiments of these techniques relates to the scenarios wherein the techniques may be utilized. As a first example, the data set 16 may comprise many types of data items 18, including web resources (such as web pages of various websites) identified by a uniform resource identifier (URI), a set of media objects (such as images, video and audio recordings, and text documents) stored in a media library, and a set of advertisements stored in an advertisement set. As a second example of this first aspect, the search query 14 may be specified in many ways, such as a natural language query, a keyword query, a logical query featuring criteria connected by Boolean logical operations, and a query specified in a structured query language (SQL). As a third example of this first aspect, many types of social profiles 22 may be generated by the user 12 and utilized to predict the user interests 36 of the user 12 in various topics 34 associated with the search results 20, including a professional networking profile and an academic profile. Those of ordinary skill in the art may devise many scenarios wherein the techniques presented herein may be advantageously utilized.
A second aspect that may vary among embodiments relates to the architectures of implementations of these techniques. One such architecture is presented as the exemplary system 66 in the exemplary scenario 60 of
A third aspect that may vary among embodiments of these techniques relates to the manner of identifying topics 34 that are associated with respective search results 14. As a first example, various topics 34 may be associated with one or more topical identifiers, such as a keyword, a name, a tag, or a reference to a list of topics. Identifying the topics 34 associated with a search result 20 may therefore comprise detecting the at least one topical identifier within the search result 20. For example, a status message posted in a social network may include a “hashtag,” comprising a hash symbol followed by the name of the topic 34 (ending with a whitespace character), such as “#tennis” or “#swimming”, so identifying the topic 34 associated with the message may simply comprise detecting the presence of the hashtag and extracting the name of the topic 34. A content item 20 formatted according to a hypertext markup language (HTML) variant may also specify the topical identifiers in a particular tag, such as a meta tag that specifies a set of topical keywords associated with the document. As a second example, an evaluation may be performed on the contents of the search result 20 to identify the topics 34 involved, such as a natural-language evaluation algorithm applied to a textual content item 20 (such as a human-readable web page) or an image evaluation algorithm applied to an image. This evaluation may also include the use of artificial intelligence techniques, such as artificial neural networks or genetic algorithms that have been trained to identify the topics 34 associated with various content items 20, or by involving individuals in the identification of topics 34 associated with content items 20. The evaluation may also utilize various statistical language modeling techniques, such as information extraction techniques, in order to identify the contents of the search result 20 in order to identify related topics 34. Those of ordinary skill in the art may devise many ways of identifying the topics 34 associated with various content items 20 while implementing the techniques presented herein.
A fourth aspect that may vary among embodiments of these techniques relates to the manner of predicting the user interest 36 in the topics 34 associated with various content items 20 based on the social profile 22 of the user 12. As a first example, the social profile 22 of the user 12 may include a large amount of information, including the profile elements 24 that are created by the user 12 (e.g., demographic traits of the user 12, user groups with which the user 12 is involved, and events attended by the user 12.) The aspects of the social profile 22 of the user 12 used in the prediction of user interest 36 may also include the number and types of associations 26 between the user 12 and associated users 28, as well as various data items generated by the user 12 and/or shared by the user 12 with associated users 28 within the social network. The social profiles 22 of the associated users 28 (e.g., demographic traits of the associated users 28, user groups with which the associated users 28 are involved, and events attended by the associated users 28) may also be relevant for inferring the user interests 36 of the user 12; if a friend of the user 12 is interested in a particular topic 36, the user 12 may be interested as well.
In addition, other sources of information about the user 12 may be included in the social profile 22 of the user 12 that is used to identify the user interests 36 of the user 12. For example, the social profile 22 of the user 12 may also include information based on various computing activities of the user 12 and the associated users 28 within the social network; e.g., if the associated users 28 of the user 12 share with the user 12 various content items that are associated with various topics 34, the user interests 36 of the user 12 may be inferred based on which content items the user 12 chooses to view, how long the user 12 spends viewing these content items, and whether the user 12 takes follow-up actions regarding such content items, such as bookmarking, saving, commenting on, or reposting such content items. The social profile 22 of the user 12 may also include information based on the computing activities of the user 12 with the data set 16, such as previously submitted search queries 14 and the actions of the user 12 regarding the search results 20 accordingly presented. The social profile 22 may also include aspects of the user 12 that are inferred from communications of the user 12 within the social network. For example, the user 12 may author a message to another user that references a piece of demographic information about the user 12, particular topics of interest to the user 12, or an event that the user 12 may be attending. The content of respective messages may be evaluated (either when the message is submitted, or when the user interests 36 of the user 12 are evaluated) to identify various user interests 36 expressed therein, and may be included in the social profile 22 of the user 12 to be utilized by the techniques presented herein.
All of these aspects of the social profile 22 of the user 12, as well as the associated users 28 who have associations 26 with the user 12, may be used to predict the user interest 36 of the user 12 in various topics 34. As a second example of this fourth aspect, many techniques may be utilized to perform the prediction based on this diverse set of information. As a first variation, the social profile 22 of the user 12 may be evaluated in the abstract to identify topics 34 in which the user 12 may have a user interest 36, and these topics 34 may be compared with the topics 34 identified with respective search results 20 to select the search results 20 in which the user 12 may have a user interest 36. The evaluation of the social profile 22 may be performed ad hoc, e.g., between selecting the search results 20 in response to the search query 14 and adjusting the search results 20. Alternatively, the evaluation may be performed at an earlier time, such that the set of topics 34 in which the user 12 may have a user interest 36 is available to facilitate the presentation of search results 20 in response to any search queries 14 received from the user 12. An earlier evaluation of the social profile 22 may be advantageous for permitting an indefinitely sophisticated (and potentially resource-consuming) evaluation of the social profile 22 without extending the turnaround time in presenting the search results 20 for a search query 14 (as may occur with ad hoc evaluation), but may be disadvantageous by involving ongoing reevaluation as the social profile 22 of the user 12 changes in order to avoid staleness (e.g., adjusting search results 20 based on an outdated model of the user interests 36 of the user 12.) As a second variation, rather than evaluating the social profile 22 in the abstract, an embodiment may first identify the topics 34 associated with various the search results 20, and may then examine the social profile 22 of the user 12 to predict the user interest 36 of the user 12 in the respective topics 34. For example, upon identifying that a particular search result 20 relates to the topic of tennis, the social profile 22 of the user 12 may be examined to detect any indication that the user 12 has any user interest 36 in tennis. While this variation is performed in an ad hoc manner and may affect the performance of the response to the search query 14, it may be more efficient to check the social profile of the user 12 for interest in particular topics 34 (where such determination is of imminent value) than to generate an exhaustive list of all topics 34 in which the user 12 may have a user interest 36, where only some of these topics 34 may arise in the search results 20.
As a fourth example of this third aspect, the pieces of information comprising the social profile 22 of the user 12 may be used in a direct manner to predict the user interests 36 of the user 12 in various topics 34 (e.g., using the membership of the user 12 in a user group formed to discuss the sport of tennis as a prediction that the user 12 may be interested in a search result 20 associated with the topic 34 of tennis.) Alternatively or additionally, metadata about the components of the social profile 22 of the user 12 may also be utilized in this prediction. As a first variation, the prediction and subsequent adjusting may be based in part on the age of the aspects of the social profile 22 of the user 12. For example, a profile element 24 indicating a user interest 36 in a particular topic 34 that has been recently added by the user 12 may indicate a strong user interest 36 in the topic 34, while a profile element 24 that was added a long time ago may indicate a weaker user interest 36 in the topic 34, particularly if no recently added or updated profile elements 24 indicate a continuing or renewed user interest 36 in the topic 34.
As a second variation of this fourth example of this third aspect, the prediction and subsequent adjusting may be based in part on the nearness of the aspects of the social profile 22 of the user 12. For example, an indication of a user interest 36 in a particular topic 20 expressed by the user 12 may be highly predictive of the user interest 36 of the user 12 in a particular content item 20, but an indication of a user interest 36 in the topic 20 expressed by an associate user 28 may also be predictive (although less strongly predictive.) Additionally, an indication of user interest 36 in a particular topic 20 expressed by an associated user 28 who has a close relationship with the user 12 may be more predictive of the user interests 36 than a similar expression by an associated user 28 who has a more distant relationship with the user 12. This “nearness” factor of the aspect of the social profile 24 to the user 12 may be indicative of the predictiveness of the aspect in the user interest 36 of the user 12 in the topic 20.
As a third variation of this fourth example of this third aspect, the prediction and subsequent adjusting may be based in part on user reviews of a particular topic 20 expressed by the user 12 and/or associated users 18. In addition to merely indicating a user interest 36 in a particular topic 20, a user 12 may attribute a user review to various properties of the topic 20, such as the magnitude of the user interest 36 (e.g., “I'm very interested in product X, but not at all interested in product Y”) or the quality of the topic 20 (e.g., “product X looks like it has much better features than product Y.”) The user rating may be quantitative (e.g., including a rating scale defined by the user 12 or the social network) or qualitative (e.g., inferred from a qualitative comment, such as “the service at restaurant X was great, but not as good as the service at restaurant Y.”) While the existence of the user review in the topic 20 may be predictive of the user interest 36 in the topic 20, the contents of the user review may also be identified and used to predict the user interest 36 in the topic 20 and to adjust accordingly the search results 20. For example, while the detection that many associated users 28 in the social network of the user 12 are posting social data items relating to a particular topic 20 may positively predict a user interest 36 of the user 12 in the topic 20, a more sophisticated evaluation may detect whether such social data items positively or negatively reflect on the topic 20 (e.g., if many friends of the user 12 are posting social data items that are critical of the topic 20, the user 12 might have little or no user interest 36 in the topic 20.)
As a second example illustrated in
As a third example illustrated in
A fourth aspect that may vary among embodiments relates to the manner of adjusting the search results 20 in response to the predicted user interest 36 of the user 12 in the topics 34 associated therewith. Many search engines (such as the data sets 16 described herein) may produce a set of search results 20 in an original order, such as a predicted order of relevance to the search query 14; and in accordance with the present techniques, it may be advantageous to adjust the search results 20 according to the predicted user interest 36 in the topic(s) 34 of each search result 20, based on the information contained in the social profile 22 of the user 12. However, as a first example, the adjusting 56 may be performed while taking into account the original order of the search results 20 identified by the data set 16. As a first variation, if the user interest 36 in two search results 20 is predicted to be equivalent, then these search results 20 may be adjusted according to the relative positions of these search results 20 in the original order generated by the data set 12 (e.g., by positioning one search result 20 before another search result 20 based on the relative relevance of these search results 20 to the search query 14, as determined by the data set 16.) As a second variation, the adjusting 56 may, instead of completely adjusting the search results 20, adjust each search result 20 a limited number of positions within the original order of the search results 20 (e.g., moving each search result 20 up or down a maximum of five positions in the original order.) These variations may therefore respect both the predicted user interest 36 in the respective search results and the relevance of the search results 20 to the user query 14, as indicated by the data set 16 in the original ordering of the search results 20.
As a second example of this fourth aspect, the adjusting of the search results 20 may adjust the indication of the new order in many ways. As a first variation of this second example, where the search results 20 are to be presented in a strict linear order (e.g., a vertical order in descending order of predicted relevance to the search query 14), the adjusting may reposition the search results within the linear order. As a second variation of this second example, if the search results 20 comprise images selected from a data set 16 comprising an image database, the search results 20 may be presented as a tiled set of thumbnails comprising previews of the respective images, with the highest ordered images presented in the center of a search result region of the display and increasingly lower-ordered images radiating out from the center. As a third variation of this second example, if the search results 20 comprise thumbnail representations of images, the adjusting may involve (in addition to selecting new positions for the thumbnails based on the predicted user interest 36) scaling the thumbnails according to the predicted user interest 36, such that the thumbnail corresponding to an image having a comparatively high predicted user interest 36 may appear larger (and more attention-grabbing) than the thumbnail corresponding to an image having a comparatively low predicted user interest 36.
As a third example of this fourth aspect, search results 20 that are predicted as having a comparatively low user interest 36 may be entirely removed from the adjusted result set 20 and from the subsequent presentation of search results 20. For example, an embodiment may compute a user interest score of the predicted user interest 36 of the user 12 in respective search results 20, may compare the user interest score with a user interest score threshold defined by the embodiment, and may remove from the set of search results 20 any search result 20 having a user interest score below the user interest score threshold. Similarly, for search results 20 that involve a topic 34 that is the subject of a user review 94 by a user 12 of the social network (including associated users 28 who have associations with the user 12), a user rating may be computed and compare a user rating threshold defined by the embodiment, and an embodiment of these techniques may remove from the set of search results 20 and the subsequent presentation thereof any search result 20 having a user rating below the user rating threshold. In some scenarios, these thresholds may be set comparatively high, such that only search results 20 having a high predicted user interest 36 and/or a high user rating may be presented, thereby leading to a highly selective presentation of search results 20 to the user 12. One scenario where a high threshold may be advantageous is in the selection and presentation of advertisements. By utilizing a high threshold of predicted user interest 36 in presented advertisements, an embodiment may restrict the presentation of an advertisement to scenarios where the persuasiveness of the advertisement is likely to be high, and may avoid presenting the advertisement in less persuasive circumstances. Additionally, the high threshold of predicted user interest 36 in presented advertisements may reduce the burial of a highly relevant or highly interesting advertisement among less effective advertisements. These advantages may improve the effectiveness of the advertisement (e.g., as measured by click-through rate or ensuing sales per number of presentations of the advertisement.) Those of ordinary skill in the art may devise many techniques for adjusting the search results 20 according to the techniques presented herein.
A fifth aspect that may vary among embodiments of these techniques relates to the presentation of adjusted search results 20 to the user 12. As a first example, the adjusting 54 may be performed by a device operated by the user 12, and the presenting 56 may comprise displaying the search results 20 on a display component of the device. Alternatively, the adjusting 54 may be performed by a different device than that operated by the user 12, and the presenting 56 may comprise sending to a device operated by the user 12 a presentation of the adjusted search results 20, e.g., by generating a web page (such as an HTML document) and delivering it to a device operated by the user 12 for rendering by a web browser executing on the device and displaying on a display component of the device.
As a second example of this fifth aspect, the presenting 56 of search results 20 (in a manner that indicates the adjusting 54 thereof) may be achieved in many ways. As a first variation, the search results 20 may be presented in a linear manner, with the search result 20 having the highest predicted user interest 36 positioned at the top of the presentation, and other search results 20 presented below the first search result 20 in order of decreasing predicted user interest 36. As a second variation, search results 20 comprising images may be presented as a grid of thumbnail representations thereof, with each thumbnail representation being selectable to view the original image. In this second variation, the adjusting 54 of the search results 20 may be indicated by positioning the search result 20 having the highest predicted user interest 36 in a corner (e.g., the upper-left corner) of the grid and positioning the other search results 20 in order of decreasing predicted user interest 36, or by positioning the search result 20 having the highest predicted user interest 36 in the center of the grid and presenting the other search results 20 radiating outward from the center, with the distance from the center inversely proportional to the predicted user interest 36 in the search result 20. Alternatively or additionally, the adjusting 54 may indicate the adjusting of user interest 36 in other ways, e.g., by explicitly indicating the predicted user interest 36 (e.g., with different icons or text labels indicating “high user interest predicted,” “medium user interest predicted,” and “low user interest predicted”), or by scaling the thumbnail representations of search results 20 proportionally to the predicted user interest 36, with the largest thumbnail representations indicating the search results 20 of highest predicted user interest 36.
A particular variation of this second example of this fifth aspect relates to the presentation of search results 20 relating to content items (e.g., the data items 18 that are targeted by the search query 14) along with the presentation of advertisements (e.g., as a technique for achieving sponsorship of the data set 16.) For example, upon receiving a search query 14 from the user 12, an embodiment of these techniques may submit the search query 14 to several data sets 16 of different data set types, including a first data set 16 comprising an index of a set of web resources (e.g., web pages) and a second data set 16 comprising an index of advertisements respectively advertising at least one product or service. Each data set 16 may apply the search query 14 to the indexed data items 18, and the embodiment may generate a presentation of these data items 18 that both fulfills the search query 14 of the user 12 and presents advertisements that may offset the administrative costs of the embodiment. The embodiment may generate this presentation in various ways. As a first example, the embodiment may be configured to present the search results 20 in a visual user interface (such as a web page rendered within a web browser), where the search results 20 comprising web resources are positioned in a first region of the visual user interface, and the search results 20 comprising advertisements are positioned in a second region of the visual user interface that does not overlap the first region. As a second example, the embodiment may be configured to present all of the search results 20 in a region of the visual user interface, where the search results 20 comprising advertisements are interleaved with the search results 20 comprising web resources.
As a third example of this fifth aspect, the presenting 56 of adjusted search results 20 may be performed unobtrusively, e.g., by simply utilizing the social profile 22 of the user 12 and presenting reordered search results 20 without indicating any such use or reordering. Alternatively, the presenting 56 may be adjusted in many ways that explicitly reflect the relationship of the adjusting 56 with the social profile 22 of the user 12. As a first variation of this third example, many types of visual adjusting may be applied to the search results 20. For example, the presenting 56 of search results 20 to the user 12 may involve adjusting respective search results 20 according to one or more presentation adjustments, which may be selected from a set of presentation adjustments, such as adjusting the font size of the search result 20 proportionally to the user interest 36 predicted in the topic 34 of the search result 20; adjusting the font emphasis (e.g., bolding, italicizing, or underlining) associated with the user interest 36 predicted in the topic 34 of the search result 20; adjusting the font color associated with the user interest 36 predicted in the topic 34 of the search result 20 (e.g., presenting search results 20 having higher predicted user interest 36 in bolder or brighter colors); and adjusting a search result border style associated with the user interest 36 predicted in the topic 34 of the search result 20 (e.g., showing thicker or different borders for search results 20 having higher predicted user interest 36.) Many such presentation adjustments may be selected to identify the adjustment of the search results 20 based on the predicted user interest 36 therein.
As a second variation of this third example, where the search results 20 are initially sorted according to an original order, an embodiment may present the search results 20 to the user 12 in a visual user interface (such as a web browser) in the original order, and may also present to the user 12 an offer to adjust the search results 20 in a personalized manner according to the social profile 22 of the user 12; and upon receiving from the user 12 an acceptance of the offer, the embodiment may present the search results 20 to the user 12 in the visual user interface adjusted according to the social profile 22.
As a third variation of this third example, along with the adjusted search results 20, an embodiment may present an adjusting criterion, which may indicate the criterion for adjusting the search result 20 (e.g., the reason for presenting the search result 20 higher or lower in the search result set according to the social profile 22 of the user 12.) For example, the embodiment may present with a search result 20 that was moved up in the order during the adjusting an indication that the search result 20 relates to a topic 34 in which the user 12 expressed an interest in the social profile 22, or in which associated users 12 expressed an interest or a high user review. Similarly, for search results 20 that were moved down among the search results 20 during the adjusting, the embodiment may indicate why the search result 20 was moved down (e.g., “your friends Joe and Mark gave this product low user ratings.”) However, it may be appreciated that, if an embodiment that has access to a large amount of social network information may insert comments about a search result 20 based on the social profiles 22 and computing activities of other users 12 (including associated users 28 and, possibly, more distant users 12 who have associations 26 with the associated users 28 but not the user 12 who submitted the search query 14), it may occasionally be undesirable to annotate a search result 12 with information derived from the social profiles 22 of these other users 12. For example, a topic 34 that is associated with a particular user 12 (e.g., based on semi-private messages sent to other users 12, or based on search queries 14 submitted by the user 12 to search engines) may be politically sensitive, semi-private, or embarrassing to the user 12 if revealed to others without the consent of the user 12. Therefore, it may be undesirable to annotate the search results 20 with this information, in a manner that identifies the user 12, when other users 12 submit search queries 14 associated with the same topic 34 (e.g., “your friend Joe expressed an interest in this sensitive topic.”) However, it may be acceptable to anonymize the annotations of the search results 20 (e.g., “three of your friends and five of their friends expressed an interest in this sensitive topic.”) Therefore, an embodiment of these techniques may be configured to, for topics 34 adjusted according to a user interest 36 predicted according to a computing activity of at least one associated user 28 who is associated with the user 12 through the social profile 22, anonymize the adjusting criteria presented with search results 20.
As a fourth variation of this third example, where the user interest 36 of the user 12 is predicted based on one or more user reviews of the search result 20, an embodiment may present the user review(s) along with the adjusted search result 20. For example, the search result 20 may include the first few lines of a user review submitted for the topic 20 associated with the search result 20 by an associated user 28 having an association 26 with the user 12 (e.g., “this search result relates to a movie, about which your friend Joe wrote the following: . . . ”) Moreover, where the user reviews include a user rating, such as a score, the search result 20 may be annotated with the user ratings or an aggregate thereof (e.g., “the movie described by this search result has an average rating of four stars out of five among your friends.”)
As a fourth example of this fourth aspect, in addition to adjusting the search results 20, an embodiment of these techniques may alter one or more search results 20 based on the social profile 22 of the user 12. For example, one or more data items 18 in the data set 16 may be customizable, such that the data item 18 may be presented as a search result 20 with a customized view relative to particular aspects of the social profile 22 of the user 12. However, when the data item 18 is selected for presentation as a search result 20 in the absence of an accessible social profile 22, or where the social profile 22 of the user 12 is accessible but does not include any information upon which the data item 18 may be customized, the data item 18 may be presented as a search result 20 with an uncustomized view. This example may be particularly advantageous in the context of targeted advertising, where search results 20 comprising advertisements for a product or service may be presented with a customized view of the advertisement based on the social profile 22 of the user 12. For example, the advertisement may be customized based on demographic information of the user 12 (e.g., an advertisement of a television may illustrate the television as displaying a television show that is generally appealing to individuals having similar demographic information as the user 12) or based on the social profiles 22 of associated users 28 who have an association with the user 12 (e.g., “your friends John and Sue recently purchased this product”), or may be present an uncustomized view that generally presents the product or service if the social profile 22 is unavailable or unhelpful in selecting a customized view. In this manner, the search results 20 comprising advertisements that have a high predicted user interest 36 may not only be given higher priority among the search results 20 through adjusting, but may also be specifically targeted to the user 12 based on the social profile 22, thereby increasing the effectiveness of the advertisement. Those of ordinary skill in the art may devise many ways of presenting 56 the search results 20 while implementing the techniques presented herein.
A sixth aspect that may vary among embodiments of these techniques relates to additional uses of the search query 14 in view of the social profile 22 of the user 12. In particular, in addition to presenting search results 20 in response to the search query 14, an embodiment of these techniques may identify one or more topics 34 that are of interest to the user 12 based on the contents of the search query 14, and/or based on the topics 34 associated with search results 20 in which the user 12 expresses an interest (e.g., by visiting, spending time examining, bookmarking, commenting on, or republishing a search result 20.) As a second example, an embodiment may utilize the detected user interests 36 of the user 12 to adjust the search query 14, or to adjust search queries 14 that are subsequently received from the user. For example, if a user 12 is determined to have a particular user interest 36, an embodiment may use this determination to make implicit alterations of the search query 14 (e.g., automatically presuming that if the user 12 is interested in the sport of football and enters a search query for the name of a popular football player, the term “football” may be added to the search query 14 in order to reduce false positives.) The embodiment might also use this information, e.g., to suggest search queries to the user 12 (e.g., “You searched for [name of popular football player]; would you like to restrict this search query to the sport of football?”), or to correct (automatically or by suggestion) misspellings or ambiguities in the search query 14 (e.g., “You searched for ‘fotball’; presumably you meant to search for ‘football’” and “You searched for ‘football’; based on your user interests, this search query is suggested to mean the international sport of soccer instead of the American sport of gridiron.”) Many other uses of the user interests 36 may be devised for application to search queries 14 submitted by the user 12.
As a second example of this sixth aspect, an embodiment of these techniques may be configured to, upon identifying a topic 34 associated with the search query 14, update the social profile 22 of the user 12 to indicate the user interest 36 of the user 12 in the topic 34. However, because the user 12 may not wish to publicize a user interest 36 in every topic 34 associated with his or her search queries 14, the embodiment may be configured to present to the user 12 an offer to update the social profile 22 to indicate the user interest 36 in the topic 34, and to update the social profile 22 only after receiving from the user 12 an acceptance of the offer. As a third example, upon identifying the topic(s) 34 associated with a search query 14 submitted by the user 12, an embodiment may utilize this detected user interest 36 in evaluating other search queries 14 subsequently submitted by associated users 28 of the user 12 associated with the same topics 34 (e.g., by adjusting the search results 20 of the subsequently submitted search queries 14 in view of the earlier submission of the search query 14 by the user 12 and the topics 34 associated therewith.) In this manner, the submission of the search query 14 may be utilized within the social network to document the user interests 36 of the user 12, and/or to improve the presentation of search results 20 of other search queries 14 submitted by other users 12. Those of ordinary skill in the art may devise many additional users of the search query 14 and the topics 34 identified as associated therewith while implementing the techniques presented herein.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
As used in this application, the terms “component,” “module,” “system”, “interface”, and the like are generally intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a controller and the controller can be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.
Furthermore, the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. Of course, those skilled in the art will recognize many modifications may be made to this configuration without departing from the scope or spirit of the claimed subject matter.
Although not required, embodiments are described in the general context of “computer readable instructions” being executed by one or more computing devices. Computer readable instructions may be distributed via computer readable media (discussed below). Computer readable instructions may be implemented as program modules, such as functions, objects, Application Programming Interfaces (APIs), data structures, and the like, that perform particular tasks or implement particular abstract data types. Typically, the functionality of the computer readable instructions may be combined or distributed as desired in various environments.
In other embodiments, device 142 may include additional features and/or functionality. For example, device 142 may also include additional storage (e.g., removable and/or non-removable) including, but not limited to, magnetic storage, optical storage, and the like. Such additional storage is illustrated in
The term “computer readable media” as used herein includes computer storage 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 or other data. Memory 148 and storage 150 are examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVDs) or other optical 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 be accessed by device 142. Any such computer storage media may be part of device 142.
Device 142 may also include communication connection(s) 156 that allows device 142 to communicate with other devices. Communication connection(s) 156 may include, but is not limited to, a modem, a Network Interface Card (NIC), an integrated network interface, a radio frequency transmitter/receiver, an infrared port, a USB connection, or other interfaces for connecting computing device 142 to other computing devices. Communication connection(s) 156 may include a wired connection or a wireless connection. Communication connection(s) 156 may transmit and/or receive communication media.
The term “computer readable media” may include communication media. Communication media typically embodies computer readable instructions 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” may include a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
Device 142 may include input device(s) 154 such as keyboard, mouse, pen, voice input device, touch input device, infrared cameras, video input devices, and/or any other input device. Output device(s) 152 such as one or more displays, speakers, printers, and/or any other output device may also be included in device 142. Input device(s) 154 and output device(s) 152 may be connected to device 142 via a wired connection, wireless connection, or any combination thereof. In one embodiment, an input device or an output device from another computing device may be used as input device(s) 154 or output device(s) 152 for computing device 142.
Components of computing device 142 may be connected by various interconnects, such as a bus. Such interconnects may include a Peripheral Component Interconnect (PCI), such as PCI Express, a Universal Serial Bus (USB), firewire (IEEE 1394), an optical bus structure, and the like. In another embodiment, components of computing device 142 may be interconnected by a network. For example, memory 148 may be comprised of multiple physical memory units located in different physical locations interconnected by a network.
Those skilled in the art will realize that storage devices utilized to store computer readable instructions may be distributed across a network. For example, a computing device 160 accessible via network 158 may store computer readable instructions to implement one or more embodiments provided herein. Computing device 142 may access computing device 160 and download a part or all of the computer readable instructions for execution. Alternatively, computing device 142 may download pieces of the computer readable instructions, as needed, or some instructions may be executed at computing device 142 and some at computing device 160.
Various operations of embodiments are provided herein. In one embodiment, one or more of the operations described may constitute computer readable instructions stored on one or more computer readable media, which if executed by a computing device, will cause the computing device to perform the operations described. The order in which some or all of the operations are described should not be construed as to imply that these operations are necessarily order dependent. Alternative ordering will be appreciated by one skilled in the art having the benefit of this description. Further, it will be understood that not all operations are necessarily present in each embodiment provided herein.
Moreover, the word “exemplary” is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as advantageous over other aspects or designs. Rather, use of the word exemplary is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, if X employs A; X employs B; or X employs both A and B, then “X employs A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims may generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form.
Also, although the disclosure has been shown and described with respect to one or more implementations, equivalent alterations and modifications will occur to others skilled in the art based upon a reading and understanding of this specification and the annexed drawings. The disclosure includes all such modifications and alterations and is limited only by the scope of the following claims. In particular regard to the various functions performed by the above described components (e.g., elements, resources, etc.), the terms used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component (e.g., that is functionally equivalent), even though not structurally equivalent to the disclosed structure which performs the function in the herein illustrated exemplary implementations of the disclosure. In addition, while a particular feature of the disclosure may have been disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application. Furthermore, to the extent that the terms “includes”, “having”, “has”, “with”, or variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising.”