Traditionally, advertisements and other information sources are identified as being relevant to a user based on the user's current behavior, including search queries and page-views, without consideration of the user's intent in a richer context. This approach rarely provides the user with relevant information, as it fails to take into consideration other sources of user information other than the user's current behavior. For instance, when a user submits a query on a search page, in most cases, it is difficult to determine the user's true need or intent based on a single query. The query “Chicago,” for example, has multiple meanings, including a city, a band, and a movie. Even if it is known that the user is referring to the city, the user's true intent is still unknown. For instance, the user may want to travel to Chicago, move to Chicago, find out about current weather conditions in Chicago, may simply want general information about Chicago, or the like.
Further, a future intent of the user typically cannot be determined by solely analyzing the user's current behavior. As an additional example, the search query “camera” may represent a multitude of intents that the user may have in relation to a camera, such as purchasing, selling, reading reviews, repairing, and so on. Providing search results based only on the search query “camera” results in a frustrating user experience, because without knowing more about the user's intent, the user is oftentimes not directed to relevant information.
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 features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Embodiments of the present invention relate to methods for defining and determining user intent based on user information received from various sources. A factor for online service is understanding user intent. Relevant services cannot be provided to online users without understanding the users' true needs. As such, embodiments of the present invention provide a definition of a scientific approach to represent user intent. User intent can be defined by three aspects: semantics, preferences, and pragmatics, based on which the users can then achieve their goals in a more timely and efficient manner. The semantics portion of intent indicates what the intent is actually about, such as in a topical sense. As such, a topical expression represents the semantics of intent. The preference portion of intent (e.g., attributes) indicates a user's preference for a particular topical expression. Finally, the pragmatic portion of intent indicates a task or action that the user has in mind in relation to the topical expression. Stated differently, the pragmatic portion of the intent definition defines the steps and activities that can be performed to achieve a task. The topical expressions, along with associated attributes and actions are represented in an intent structure, which illustrates relationships between various topical expressions. An algorithm is then used to map keywords from user data to the intent structures to infer current and future user intent. Various types of information, such as advertisements and search results, may be provided to the user based on the inferred user intent.
The present invention is described in detail below with reference to the attached drawing figures, wherein:
The subject matter of the present invention is described with specificity herein to meet statutory requirements. However, the description itself is not intended to limit the scope of this patent. Rather, the inventors have contemplated that the claimed subject matter might also be embodied in other ways, to include different steps or combinations of steps similar to the ones described in this document, in conjunction with other present or future technologies. Moreover, although the terms “step” and/or “block” may be used herein to connote different elements of methods employed, the terms should not be interpreted as implying any particular order among or between various steps herein disclosed unless and except when the order of individual steps is explicitly described.
Embodiments of the present invention provide for a method to define user intent so that current and future user intent can be inferred and used to select and provide relevant advertisements and other such information to the user. Initially, user intent is defined by three aspects, including semantics, preferences, and pragmatics. Accordingly, three-way diagrams are generated that include a particular semantic (e.g., topical expression), one or more pragmatics (e.g., actions), and optionally, one or more preferences (e.g., attributes). As such, in one embodiment, attributes are not associated with the particular topical expression. From these three-way diagrams, hierarchical tree structures are generated that demonstrate relationships between various topics, also referred to herein as topical expressions. For instance, a first topical expression “vehicle” may include several subtopical expressions, such as “motorcycle,” “SUV,” and “compact sedan.” Exemplary actions for “vehicle” include “service,” “auto,” and “dealership.” Exemplary attributes for “vehicle” include “fuel type” and “cost.” Once the hierarchical structures are generated, user intent is inferred by way of an algorithm that matches keywords found in user data (e.g., log data, user profile, social networking sites) with terms in the hierarchical structures. From there, advertisements and other information sources, such as search results, a series of steps used to perform a task, and personalization of a website, can be provided to the user based on the user's intent.
Accordingly, in one aspect, the present invention is directed to one or more computer-readable media storing computer-useable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform a method. The method includes identifying a topical expression, and associating at least one action with the topical expression, wherein the at least one action indicates a step to be performed to achieve a task corresponding to the topical expression. The method additionally includes generating an intent structure that indicates a relationship between the topical expression and one or more other topical expressions.
In another aspect, the present invention is directed to one or more computer-readable media storing computer-useable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform a method. The method includes a search result modification system. The system includes a computing device associated with one or more processors and one or more computer-readable storage media and a data store coupled with the computing device. Further, the system includes an intent determination engine that defines user intent by associating actions and attributes with topical expressions, organizes the topical expressions to represent relationships between the topical expressions, and determines the user intent for a particular user using the organized topical expressions and user data received from one or more sources.
A further aspect is directed to one or more computer-readable media storing computer-useable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform a method. The method includes associating each of a plurality of topical expressions with at least one attribute and at least one action. The method further includes generating a hierarchical structure that represents relationships between the plurality of topical expressions and receiving user data from one or more sources. Additionally, the method includes algorithmically determining user intent by identifying keywords in the user data that correspond to the plurality of topical expressions, the at least one attribute, and the at least one action in the hierarchical structure.
Having briefly described an overview of embodiments of the present invention, an exemplary operating environment in which embodiments of the present invention may be implemented is described below in order to provide a general context for various aspects of the present invention. Referring initially to
The invention may be described in the general context of computer code or machine-useable instructions, including computer-executable instructions such as program modules, being executed by a computer or other machine, such as a personal data assistant or other handheld device. Generally, program modules including routines, programs, objects, components, data structures, etc., refer to code that perform particular tasks or implement particular abstract data types. The invention may be practiced in a variety of system configurations, including handheld devices, consumer electronics, general-purpose computers, more specialty computing devices, and the like. 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.
With reference to
The computing device 100 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by computing device 100 and includes both volatile and nonvolatile media, removable and nonremovable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Computer-readable 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 be accessed by computing device 100. Combinations of any of the above are also included within the scope of computer-readable media.
The memory 112 includes computer-storage media in the form of volatile and/or nonvolatile memory. The memory may be removable, nonremovable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard drives, optical-disc drives, etc. The computing device 100 includes one or more processors that read data from various entities such as the memory 112 or the I/O components 120. The presentation component(s) 116 present data indications to a user or other device. Exemplary presentation components include a display device, speaker, printing component, vibrating component, etc.
The I/O ports 118 allow the computing device 100 to be logically coupled to other devices including the I/O components 120, some of which may be built in. Illustrative components include a microphone, joystick, game pad, satellite dish, scanner, printer, wireless device, and the like.
Referring now to
Among other components not shown, the system 200 includes a user device 202, a server 204, a third-party data source 206, an advertisement storage 208, and an intent determination engine 210. Each of the components shown in
A user may communicate with the network 220 through a user device, such as user device 202. The user device 202 may be the type of device described in
The third-party data source 206 encompasses various types of data associated with a user, including, for exemplary purposes only, log data (e.g., query logs, page-view logs, web logs, toolbar logs), user profile information (e.g., age, gender, location, interests), and live data, which, in one instance, includes data from various websites, such as social networking sites. This user data from the third-party data source may be used to infer or determine a user's intent. For instance, user data may include various keywords that can be extracted and mapped to a previously generated intent structure, such as a hierarchical tree that represents relationships between topical expressions. In one instance, the keywords in the user data include a subset of the topical expressions, a subset of the actions, and a subset of the attributes. As used herein, topical expressions are one or more alphanumeric strings that represent topics or semantics. For instance, an exemplary topical expression is “Chicago.” Topical expressions are associated with actions, and in some embodiment, attributes, as more fully described herein, to more fully define a topical expression. “Chicago” may refer to the city, the band, or the movie. In order to more fully understand a user's intent, more information about a topical expression is needed. The advertisement storage 208 is a data store that includes advertisements that can be pulled for presentation to the user based on user intent.
The intent determination engine 210 generally performs a variety of functions, including defining user intent by associating actions, and optionally, attributes with topical expressions, organizing the topical expressions to represent relationships between the topical expressions, and determining the user intent for a particular user using the organized topical expressions and user data received from one or more sources. The intent determination engine 210 includes several individual components or modules. In addition to those now shown in
Once user intent is defined by the intent definition module 212, the intent taxonomy module 214 organizes intents so that they can be easily managed, and so that user behaviors can be mapped to the intents. An intent structure is therefore generated that illustrates relationships among various intents, or topical expressions so that chains of intent become apparent. In one embodiment, a taxonomy is built, which organizes topical expressions into a hierarchical tree. Exemplary relationships include “is-a,” “part-of,” and “specific/general.” The topic or topical expression is the carrier of intent. Therefore, an existing topic taxonomy can be followed and proper actions and attributes can be added to each note of a taxonomy or hierarchical tree to expand the topic taxonomy to an intent taxonomy. For exemplary purposes only, “auto” may be a first-level topical expression in a hierarchical tree. At the second level, exemplary topical expressions are “SUV” and “sedan.” At the third level, exemplary topical expressions are “Toyota” and “Honda.”
The intent inference module 216 is responsible for determining an actual intent of a particular user. User data is received from one or more sources, including, for example, log data that demonstrates the user's previous behavior (e.g., query logs, page-view logs, web logs, toolbar logs), user profile information (e.g., age, gender, location, interests), and live data, which, in one instance, includes data from various websites, such as social networking sites. Data corresponding to a user's interaction with other websites, for instance, may provide invaluable information as to an intent of the user. In one embodiment, the intent inference module 216 is given an initial intent from a search query submitted by the user. In order to find associated actions and in some embodiment, attributes, user data from one or more of the sources mentioned above is used, and is mapped to the topical expressions and associated attributes and actions in the intent structure that is generated by the intent taxonomy module 214. One or more algorithms may be used, such as an algorithm that models sequential data, like Conditional Random Fields. Specific algorithms are not described here, as various algorithms would be able to function to perform embodiments of the present invention, as described herein.
An exemplary data structure is illustrated below, and may be used to classify the user's intent. Here, the output is the user's intent vector (List <CIntent>, where CIntent is defined as below. In addition to Topic and Action identifications, attributes and values are paired (e.g., model/Toyota, make/Corolla). Prob is a probability as to how likely it is that the user will have the intent as defined, and TimeStamp is a time at which the user may have this intent.
The advertising module 218 is responsible for selecting and providing advertisements to the user based on the determined or inferred user intent. The advertising module 218 is but one example of a module that provides information based on the determined or inferred user intent. There are various ways that advertising takes place based on intent. In one embodiment, advertisers bid on intent. After a user's intent is inferred (e.g., current intent or projected future intent), advertisers may bid on the intent directly, which can solve the semantic-wise mismatch. In an alternate embodiment, user segments are built based on intent. For example, when a user begins issuing queries about cars, the intent inference module 216 determines what type of cars the user is looking for based on the received user data. If the user is going to have a new baby, for instance (e.g., queries may include “baby names” and “formula”), the user may be interested in an SUV rather than a compact car. Then, advertisers may impress these types of users with their SUV advertisements. At the same time, users are provided more relevant advertisements, which improves their overall user experience. Advertisers can browse through intent taxonomies to choose intents for which they will provide advertisements, or can put forward certain intents that they want to cover and these can be added to the intent taxonomy.
As mentioned, other modules not shown in
Yet another module that may be used to provide information to a user based on the user intent may provide, in addition to or in place of search results, a series of steps that the user can follow to complete a task related to the user intent. For instance, if it is determined that the user is looking to purchase a house in New York, various steps may include links to real estate websites, links to home insurance websites, etc. These steps may be ordered in such a way as to direct the user through multiple steps that can be followed in a sequential manner.
The intent base module 312 includes an intent taxonomy database 314, which receives data from either human sources 316 or data mining 318. The intent base module 312 as a whole generates intent structures, such as taxonomies (e.g., hierarchical structures) that illustrate relationships between various topical expressions. Data, such as from human sources 316 or data mining 318 is used to create these intent structures. For instance, a human 316 may input a topical expression, in addition to actions and optionally, attributes that are associated with that topical expression. Alternatively, keywords may be extracted from data mining 318 and are categorized as topical expressions, attributes, or actions. The keywords are then associated with one another to form diagrams such as that shown in
Data 320 may be received as signals from various sources. The type of data includes, for exemplary purposes only, third-party data 322, such as log data 324 (e.g., query logs, page-view logs, web logs, toolbar logs), user profile information 326 (e.g., age, gender, location, interests), and live data 328, which, in one instance, includes data from various websites, such as social networking sites. As shown, the data is fed to a learning tool 330 that includes an algorithm training component 332 that stores models in the model database 334. As previously described, various algorithms may be used to determine user intent using the intent structures generated by the intent taxonomy 314 and the received user data 322. For instance, keywords extracted from the user data may be mapped to taxonomies received from the intent taxonomy database 314. This user data effectively trains the algorithms as to what to look for when extracting keywords from the user data. Specific taxonomies for a particular user are stored in the model database 334.
The scoring module 336 either operates to provide scores for intents in batch-mode by the batch-mode intent scoring module 338, or provides scores in real-time by the real-time intent scoring module 340. The batch-mode scoring may be performed prior to the request for information, such as advertisements, personalization, search results, etc. To the contrary, scoring can be performed after a request for this type of information. So, a user may enter a query into a search page, and intents that are used to select information to present to the user can be scored at that time so that the most relevant advertisements or other such information can be provided to the user.
Once user intent has been determined for a particular user, information can be provided to that user based on the user intent. As mentioned above, advertisements are just one form of information that can be provided to a user. Applications 342 are stored, including an advertising module 344. Other applications 346 may also be stored here. The advertising module 344 is responsible for identifying which advertisements to provide to the user. This may involve, in one embodiment, requesting that advertisers bid on intents using the intent structures. Or, advertisers may be notified as to a certain intent that is associated with advertisements provided by that advertiser, and the advertiser may proceed to submit advertisements that are relevant to that user intent. While not shown here, other applications 346 may be used to provide search results, sets of actions related to a user intent, or personalization on a web page, all based on a determined user intent.
The following is an example that illustrates how each component and step shown in
Turning now to
Referring to
Turning to
Further, user data may be received from one or more sources, including a social networking website, log data, or a user profile. The user profile, for instance, may indicate an age, gender, and interest of a particular user. Utilizing the user data, user intent is inferred or determined for a particular user. This determination, in one embodiment, is made by an algorithm. Once user intent is determined, information, such as advertisements, can be provided to the user based on the user intent. Other types of information provided based on user intent may include personalized information displayed on a web page, such as a news web page. Further, search results may be returned to the user based on the determined user intent. Even further, one or more steps that are recommended to the user to accomplish a task corresponding to the topical expression may be provided to the user.
Referring to
As can be understood, embodiments of the present invention provide for defining user intent. The present invention has been described in relation to particular embodiments, which are intended in all respects to be illustrative rather than restrictive. Alternative embodiments will become apparent to those of ordinary skill in the art to which the present invention pertains without departing from its scope.
From the foregoing, it will be seen that this invention is one well adapted to attain all the ends and objects set forth above, together with other advantages which are obvious and inherent to the system and method. It will be understood that certain features and subcombinations are of utility and may be employed without reference to other features and subcombinations. This is contemplated by and is within the scope of the claims.