1. Technical Field
The present teaching relates to methods, systems and programming for generating personalized search suggestions and content. Particularly, the present teaching is directed to methods, systems, and programming for providing personalized suggestions as the user types search queries.
2. Discussion of Technical Background
The advancement in the world of the Internet has made it possible to make a tremendous amount of information accessible to users located anywhere in the world. To locate information on the Internet users typically utilize some form of search engine that allows a user to input a search query in the hopes of locating relevant information. Along that line, different techniques have been developed to automatically aid users in such endeavors. For example, techniques exist to suggest search queries to users as they are entering or typing information into a search engine. This is known as “suggest-as-you-type” information. The most often employed form of suggest-as-you-type is based on the most commonly used search or most frequently used terms for the population as a whole. That is, the most popular search queries will always be suggested to the user regardless of the user's personal search history or searching habits.
Not all users are the same however, and an analysis of a user's search queries reveals that a user will typically reissue identical or similar queries in the same search session or over an extended period of time. This “bookmark” like behavior in the issuance of search queries usually is a results of a user using reissued queries as a navigational tool to lead the user to a particular web site or URL.
The repeated issuance of identical or similar queries may also be seen when a user is in a research mode. For example, where the user has a short-term intent like buying a product or planning a vacation, and has a transient interest in a particular query. Take for example, a user who skis in Lake Tahoe every weekend during the ski season. The user may enter the search query “Lake Tahoe ski conditions” every few hours prior to each weeks trip during the season. A problem occurs however, if the user who is repeatedly searching for the ski conditions is presented with the same irrelevant suggest-as-you-type suggestions every time they start to enter the search prefix “Lak . . . ”. The user will ignore the suggestions, and the purpose of assisting the user in formulating a search query is undermined. In the above example, if when the user begins to type “Lak . . . ” and the corresponding suggest-as-you-type suggestion corresponding to the early portion of the query or prefix relate to Lake Michigan and not Lake Tahoe, the user will simply ignore the suggestions and will not benefit from the search as you type feature.
Hence, existing search as you type solutions, although useful in certain situations/applications, do not address the bookmarking behavior of many users. Therefore, there is a need to develop a system that recognize a user's specific search habits and uses each individual user's search history to provide relevant personalized search assistance for the suggest-as-you-type feature as early as possible during the query entry.
The teachings disclosed herein relate to methods, systems, and programming for providing personalized search queries. More particularly, the present teaching relates to methods, systems, and programming for providing personalized suggestions as the user types search queries.
In one example, a method, implemented on a machine having at least one processor, storage, and a communication platform connected to a network for providing personalized search query suggestions is disclosed. The method comprising receiving, via the communication platform, a portion of a query originated from a user. Comparing the received portion of the query to data stored in a database. Generating at least one set of query suggestions based on the comparing, and transmitting via the communications platform, the at least one set of query suggestions, wherein at least at least one set of query suggestions is based on information stored in a personalized database.
In another example, a method further comprises associating and displaying personalized content that corresponds to at least one set of query suggestions and transmitting the content via the communications platform.
In another example, the method is implemented on a machine having at least one processor, storage, and a communication platform connected to a network for generating a personalized query suggestion. The method comprises receiving a first search query originated from a user. Monitoring a response to the search query and comparing the response and the search query to data in a database. Updating the database based on the results of the comparing and storing the query and the response in a personalized database. Finally, outputting a personalized suggestion to a future query related to the first query based on the response stored in the personalized database.
In another example, the storing of the query occurs in response to the updating exceeding a frequency threshold.
In another example, the storing includes storing a plurality of different queries associated with a single universal resource locator.
In a further example, the method comprises outputting personalized content related to the personalized suggestion.
In another example of the method, the personalized suggestions are ranked based on the user's interactions with past suggestions. In another further example, the method comprises removing the query and the response entered by a first method from the personalized database when it exceeds a temporal threshold.
In one example, a machine readable non-transitory and tangible medium having information recorded thereon for suggesting personalized queries, wherein the information, when read by the machine, causes the machine to receive a first search query originated from a user is disclosed. In the example, the system monitors a response to the search query and compares the response and the search query to data in a database. The medium further causes the machine to update the database based on the results of the comparing and store the query and the response in a personalized database and output a personalized suggestion to a future query related to the first query based on the response stored in the personalized database.
In another example, the medium further comprises outputting personalized content related to the personalized suggestion.
In another embodiment, a method for presenting personalized content such as advertisements, URLS, or other web resources the user has interacted with is disclosed wherein the personalized search queries associated with a user are tracked. Information related to a plurality of advertisements from an advertiser are received, URLS, or other web resources the user has interacted with can be displayed along with the personalized suggestions. One or more personalized content are associated with respect to the one or more personalized search queries, and the one or more advertisements, URLs or other personalized content are presented when the one or more personalized search queries are displayed.
In another embodiment, information related to presentation of the one or more advertisements in connection with the one or more personalized search queries is obtained. Statistics associated with the presentation of the one or more advertisements are determined and records associated with the advertiser in connection with the one or more advertisements based on the statistics are updated and payment is made in association with the one or more advertisements based on the record.
In another embodiment, a system for providing personalized query suggestions comprising a personalized query engine configured for receiving, processing, and generating personalized search queries based on a search query prefix entered by a user, and a search engine configured for receiving the search query prefix from a user is disclosed. Wherein, upon receiving a search query prefix from the user, the personalized query engine retrieves information from a knowledge storage associated with the user, generates one or more one or more personalized search queries, and transmits the one or more personalized search queries in response to the search query prefix.
The methods, systems and/or programming described herein are further described in terms of exemplary embodiments. These exemplary embodiments are described in detail with reference to the drawings. These embodiments are non-limiting exemplary embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings, and wherein:
a)-(c) depict examples of single web clicks in a personalized query engine that operates to provide personalized suggest-as-you-type information in response to user queries, according to an embodiment of the present teaching;
a) depicts examples of single web clicks following a query used in a personalized query engine that operates to provide personalized suggest-as-you-type information in response to user queries, according to an embodiment of the present teaching;
b) depicts a URL dictionary of single web clicks following a query used in a personalized query engine that operates to provide personalized suggest-as-you-type information in response to user queries, according to an embodiment of the present teaching;
In the following detailed description, numerous specific details are set forth by way of examples in order to provide a thorough understanding of the relevant teachings. However, it should be apparent to those skilled in the art that the present teachings may be practiced without such details. In other instances, well known methods, procedures, components, and/or circuitry have been described at a relatively high-level, without detail, in order to avoid unnecessarily obscuring aspects of the present teachings.
The present teaching relates to providing search engine users with personalized query suggestions as they type their desired query. It has been found that users often reissue queries in a bookmark like behavior, where the reissued queries are of a navigational nature rather than a search nature. The search is typically followed by a single identical click despite variations in the queries.
a), depicts the suggest-as-you-type method existing in the art. A user interested in information about or in the Internet site related to “Fanfare”, will always be presented with query suggestion list 10 regardless of how many times the user begins to type or enters the prefix for their search for “Fanfare”. As can be seen query suggestion list 10 does not suggest Fanfare even after the user has entered three characters of the search string. It is not until the user enters “Fanf” in
In this embodiment, the personalized query engine 240 serves as a backend system of the search engine 230. All user 210 queries are sent to the search engine 230, which then invokes the personalized query engine 240 to process the search-as-you-type query.
Users 210 may be of different types such as users connected to the network via desktop connections (210-d), users connecting to the network via wireless connections such as through a laptop (210-c), a handheld device (210-a), or a built-in device in a motor vehicle (210-b). A user may begin a search query via search engine 230 which is conveyed via network 220 and likewise receive the search-as-you-type query results from the search engine 230 through the network 220. In the embodiment depicted in
In this embodiment, as in the prior, the user will receive a search-as-you-type query suggestion list 10, as depicted in
In an embodiment, search engine 230 may be any Internet search engine, such as Yahoo, Bing, Google, or any other search engine that is intended to aid users 210 with searching for content on the Internet. A content source may correspond to a web page host corresponding to an entity, whether an individual, a business, or an organization such as USPTO.gov, a content provider such as cnn.com and Yahoo.com, or a content feed source such as tweeter or blogs.
In the exemplary system 200, a user may begin entering, in a browser, a query as a bookmark type query or to obtain information related to the entity about an entity (e.g., “Fanfare”) which may be conveyed to search engine 230. In some embodiments, this query may be first sent to the search engine 230 and then re-directed to the personalized query engine 240, if the search engine 230 operator contracts with the operator of the relationship explanation engine 240. In such a configuration, the search-as-you-type output from the personalized query engine 240 may be sent back to the search engine 230 so that they can be re-directed to the user as a response to the inquiry. Alternatively, the personalized query engine 240 may return the search-as-you-type queries back to the user directly, if the user's information is, e.g., forwarded to the personalized query engine 240 when the query is entered. In some configurations, a browser running on a user's device is configured to appropriately direct different inquiries to different systems via the network 220.
In one embodiment, user long term database 250 is a database of a user 210's queries and the URL clicks that follow them. Utilizing b-cookies, user query and URL data is gathered and stored in user long term database 250 typically for a sliding three month period, although longer or shorter periods may be utilized. By analyzing user 210's queries and the responses that follow over time, one can make a determination about the user's search habits, i.e., is the user using the search as a bookmark, that is, is the user issuing the same query frequently followed by identical or nearly identical URL clicks. As noted above, the data stored in the user long term database 250 must be gathered over a period of time and will not be helpful when a user may be interested in a query and respective URL for a short period of time, i.e., in relation to a specific purchase, vacation or other one time or seasonal event.
In an embodiment, short term search history database 260 may be used to collect and gather user query and click data on a near real-time basis, thereby providing the user with personalized search-as-you-type data even for short term queries. Entries in the short term search history database 260 contains the user id, a timestamp, the query entered, and the resultant URL clicked by the user. Such short term data allows for personalized search-as-you-type results to be mined and utilized in near real time. While such data will also be stored in user long term database 250, its transient nature may never allow it to rise to the level of bookmark type data, as the user may abandon the query and click after the event, i.e., purchase, vacation, etc., is completed. As a result, short term search history database 260 gathers data based on userID or cookies, as the user is interacting with search engine 230. In an embodiment, short term search history database 260 data is written on a periodic basis, typically, every 24 hours to user long term database 250, although other intervals are possible
Query database 280 comprises queries and URL (or search result) clicks, not specific to user 210, but to the searching population as a whole. It contains the most frequently clicked URLs for a particular query and is utilized in existing search-as-you-type systems to provide the most frequent search-as-you-type suggestions to a particular query prefix.
Personalized database 270 in an embodiment of the present invention, is a specific user database populated with user query and click data gathered from the user 210's long term database 250 data and short term search history database 260 data. By analyzing the data from both the long term database 250 and short term search history database 260 in parallel, the personalized database 270 can be built to reflect the user's search-as-you-type database. The key to the personalized database 270 is the query data along with the personal information i.e., browser cookie (bcookie) or userID. Personalized database 270 may also contain information about a user's content preferences along with the user's query preferences. For example, personalized database 270 may contain the query as well the URL and offer both as suggestion in tandem or separately when needed. An embodiment of the data structure utilized in personalized database 270 is depicted in
Query 502 is the query entered by the user, in the web browser. UserID 504 may be a bcookie or a UserId, or any another value associated with user 210 or a user's computer, smart phone, tablet, or other device that may be used by a user to search a network. Query 502 along with UserID 504 form the key for the data entry. Timestamp 506 represents the time and date the query was entered into the database, URL 508 represents the Uniform Resource Locator (URL) that the user clicked immediately after the query or in response to the query results. Flag 510 represents whether the entry is a result of an Exact Query Click (EQC) from the short term search history database 260 or a Non-Exact Query Single Identical Click (NEQSIC) from the user long term database 250. In one embodiment, a 1 represents an EQC entry and a 2 represents a NEQSIC entry, although any single or multiple digit entry may be used. K_Value 512 represents the number of times the EQC or NEQSIC event happened. Initially the K_Value 512 will be pre-selected and uniform for every query written into personalized database 270. Once the query 502 is in personalized database 270, K_Value 512 may increase with feedback from the user's interaction with the suggested queries. Nclick 514 represents the number of times the personalized query 502 is clicked from the Personalized search-as-you-type response menu 10 when it is suggested. Initially, Nclick 514 is set to zero and increases with feedback from the user's interactions with the suggestions. Nskip 516 is the number of times the personalized search-as-you-type response 42 is skipped and a lower ranked suggestion is clicked. The lower ranked suggestion may be a personalized suggestion 42 or a general suggestion 44. This value is also initially set to zero and increases with user/front end feedback. Alpha_q 518 is a non zero known constant estimate value for Nclick 514 that may be utilized to prevent mathematical errors, such as a divide by zero error. Beta_q 520 is a non zero known constant estimate value for Nskip 516 that may be utilized to prevent mathematical errors, such as a divide by zero error. Score 522 is a score derived from ((Nclick+alpha_q)/(Nclick+Nskip+alpha_q+beta_q)). In an embodiment, score 522 may be utilized to rank the personalized query/URL relationship in personalized database 270. All entries in personalized database 270 are query+user level features except alpha_q 518 and beta_q 520 which are only query level features.
In an embodiment, the information gathered at step 650 is utilized to populate and update the user's personalized search query database 270. Each time a user interacts with the personalized query suggestion, the data is utilized to provide for a better experience in the future. That is, after each interaction the user has with the personalized query suggestion, the data needs to be updated at step 650 in the personalized user database 270 to reflect the suggestion that was followed, i.e., clicked, and the suggestion that may have been skipped.
With each interaction, there may be a clicked suggestion, a skipped suggestion or no suggestion followed. For a clicked suggestion, timestamp 506 is updated, K_Value 512 is incremented, Nclick 514 is incremented by 1 and score 522 is recomputed with the new Nclick 514 value. For skipped suggestions, Nskip 516 is incremented by 1 and score 522 is recalculated using the new Nskip 516 value.
A skipped suggestion is considered any personalized suggestion that is presented before or above the actual clicked suggestion.
The detection stage may be run on a single processor or may be distributed across a network or across several processors. Similarly, short term search history database 260 and user long term database 250 may be housed in a single location or may be distributed across several locations or networks. As depicted in
In this manner, a query that is repeated on a short term basis, such as one that is repeated during the same session may be moved quickly into the personalized user database 270 without the data having to travel to the user long term database 250 first. To ensure that user's short term search history database 260 does not come over burdened with entries that a user 210 queries several times and then abandons, the EQC method is also employed to exclude entries from the personalized user database 270.
Examples of single web clicks are depicted in
Returning to
Step 1120 determines if there are multiple queries that lead to identical single web clicks on the same URL.
Returning to
Once an entry is written into personalized user database 270 it must be ranked so as to determine its placement among the suggested queries. Since score 522 is updated after each interaction with the personalized suggestion, based on NSkip 516 or NClick 514 values, the ranking is simple. At any given time the rows of personalized user database 270 that match the query that the user is entering at the front end are ranked by score as long as all the NClick and NSkip information is available. If however, some of the features such as NClick or NSkip values are unavailable, other scoring or ranking functions may be used.
In an embodiment, if NSkip is not available for scoring, an exponential smoothing formula may be used to aid with scoring. In an embodiment, x_q(t) is a query-level discrete time signal indicating whether there is a click on a query suggestion (x_q(t)=1) or not (x_q(t)=0) for the given time interval. From the click times (which are in the continuous scale), one should do a binning with a time window of approximately every 10 minutes to obtain x_q(t). The score can be obtained using an exponentially smoothed version of x_t as s_q(t)=a*x_q(t−1)+(1−a)*s(t−1); if x_q(t−1)=0, a=some constant; if x_q(t−1)=1, a=(1+s(t−1))/2. This can be rewritten as a function of the current time, last click time, and score as the last click time. If obtaining the score at the last click time may cause a problem, this can be approximated by counting NClick for a few different time windows. For example, NClick_total, NClick_in_last_day, NClick_in_last_week, etc.
In another embodiment of the invention, in addition to presenting the user 210 with personalized query suggestions, the user 210 is presented with content from content system 310 related to the personalized query suggestion as well. For example,
Similarly,
The computer 1800, for example, includes COM ports 1850 connected to and from a network connected thereto to facilitate data communications. The computer 1800 also includes a central processing unit (CPU) 1820, in the form of one or more processors, for executing program instructions. The exemplary computer platform includes an internal communication bus 1810, program storage and data storage of different forms, e.g., disk 1870, read only memory (ROM) 1830, or random access memory (RAM) 1840, for various data files to be processed and/or communicated by the computer, as well as possibly program instructions to be executed by the CPU. The computer 1800 also includes an I/O component 1860, supporting input/output flows between the computer and other components therein such as user interface elements 1880. The computer 1800 may also receive programming and data via network communications.
Hence, aspects of the methods of receiving user queries and returning a response, e.g., a URL associated with dynamically generated web pages or the content contained in the dynamically generated web pages, as outlined above, may be embodied in programming. Program aspects of the technology may be thought of as “products” or “articles of manufacture” typically in the form of executable code and/or associated data that is carried on or embodied in a type of machine readable medium. Tangible non-transitory “storage” type media include any or all of the memory or other storage for the computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide storage at any time for the software programming.
All or portions of the software may at times be communicated through a network such as the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the software from one computer or processor into another, for example, from a management server or host computer of the search engine operator or other explanation generation service provider into the hardware platform(s) of a computing environment or other system implementing a computing environment or similar functionalities in connection with generating explanations based on user inquiries. Thus, another type of media that may bear the software elements includes optical, electrical and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to tangible “storage” media, terms such as computer or machine “readable medium” refer to any medium that participates in providing instructions to a processor for execution.
Hence, a machine readable medium may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any computer(s) or the like, which may be used to implement the system or any of its components as shown in the drawings. Volatile storage media include dynamic memory, such as a main memory of such a computer platform. Tangible transmission media include coaxial cables; copper wire and fiber optics, including the wires that form a bus within a computer system. Carrier-wave transmission media can take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer can read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.
Those skilled in the art will recognize that the present teachings are amenable to a variety of modifications and/or enhancements. For example, although the implementation of various components described above may be embodied in a hardware device, it can also be implemented as a software only solution—e.g., an installation on an existing server. In addition, the dynamic relation/event detector and its components as disclosed herein can be implemented as a firmware, firmware/software combination, firmware/hardware combination, or a hardware/firmware/software combination.
While the foregoing has described what are considered to be the best mode and/or other examples, it is understood that various modifications may be made therein and that the subject matter disclosed herein may be implemented in various forms and examples, and that the teachings may be applied in numerous applications, only some of which have been described herein. It is intended by the following claims to claim any and all applications, modifications and variations that fall within the true scope of the present teachings.