CONTEXTUAL BASED SEARCH SUGGESTION
Methods, systems and programming for providing query suggestions based on user's previous search query. In one example, an input including a prefix of a first query is received from a user in a user session. At least a second query that was previously received from the user in the user session is then obtained. A third query is obtained based on the second query and the prefix of the first query. One or more query suggestions are provided to the user as a response to the input. The one or more query suggestions include the third query.
The present application is a continuation of U.S. patent application Ser. No. 14/106,989 filed Dec. 16, 2013, which is incorporated herein in its entirety.
BACKGROUND 1. Technical FieldThe present teaching relates to methods, systems, and programming for Internet services. Particularly, the present teaching is directed to methods, systems, and programming for search suggestion.
2. Discussion of Technical BackgroundOnline content search is a process of interactively searching for and retrieving requested information via a search application running on a local user device, such as a computer or a mobile device, from online databases. Online search is conducted through search engines, which are programs running at a remote server and searching documents for specified keywords and return a list of the documents where the keywords were found. Known major search engines have features called “search suggestion” designed to help users narrow in on what they are looking for. For example, as users type a search query, a list of query suggestions that have been used by many other users before are displayed to assist the users in selecting a desired search query.
However, existing search engines focus on how to discover relevant queries from query logs without considering users' current search behavior, which is very important in many scenarios. Traditional search suggestion systems have three common features: (1) suggestion database is generated by mining search logs and combining other knowledge databases; (2) personal suggestion database contains user's search history in the past; and (3) query suggestion is based on user's prefix input in the search box. As described by these features, query suggestions in the known solutions mainly come from general users' past search behavior, which ignores a specific user's immediate previous query in the same user session as context. On the other side, users' immediate previous query is very important, since users' intent or interests are explicitly expressed in previous search.
Therefore, there is a need to provide an improved solution for search suggestion to solve the above-mentioned problems.
SUMMARYThe present teaching relates to methods, systems, and programming for Internet services. Particularly, the present teaching is directed to methods, systems, and programming for search suggestion.
In one example, a method, implemented on at least one machine each having at least one processor, storage, and a communication platform connected to a network for providing query suggestions is presented. An input including a prefix of a first query is received from a user in a user session. At least a second query that was previously received from the user in the user session is then obtained. A third query is obtained based on the second query and the prefix of the first query. One or more query suggestions are provided to the user as a response to the input. The one or more query suggestions include the third query.
In a different example, a system having at least one processor, storage, and a communication platform for providing query suggestions is presented. The system includes a request processing unit, a first suggestion retrieving unit, and a query suggestions generation unit. The request processing unit is implemented on the at least one processor and configured to receive, in a user session, an input including a prefix of a first query from a user. The first suggestion retrieving unit is implemented on the at least one processor and configured to obtain at least a second query that was previously received from the user in the user session. The first suggestion retrieving unit is further configured to obtain a third query based on the second query and the prefix of the first query. The query suggestions generation unit is implemented on the at least one processor and configured to provide one or more query suggestions to the user as a response to the input. The one or more query suggestions include the third query.
Other concepts relate to software for providing query suggestions. A software product, in accord with this concept, includes at least one non-transitory machine-readable medium and information carried by the medium. The information carried by the medium may be executable program code data regarding parameters in association with a request or operational parameters, such as information related to a user, a request, or a social group, etc.
In one example, a non-transitory machine readable medium having information recorded thereon for providing query suggestions is presented. The recorded information, when read by the machine, causes the machine to perform a series of steps. An input including a prefix of a first query is received from a user in a user session. At least a second query that was previously received from the user in the user session is then obtained. A third query is obtained based on the second query and the prefix of the first query. One or more query suggestions are provided to the user as a response to the input. The one or more query suggestions include the third query.
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:
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, systems, 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 disclosure describes method, system, and programming aspects of efficient and effective search suggestion. The method and system as disclosed herein aim at improving end-users' search experience by taking users' current search behavior, e.g., immediate previous query, into account, which makes search suggestion engines understand users' intent more precisely. Users' previous queries in the same user session, in particular the immediate previous query, are very important, since users' intent or interests are explicitly expressed in previous search. Because of this consideration, users will be recommended more relevant queries and select their queries more efficiently, which will improve search engine's user experience. Additional novel features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples. The novel features of the present teachings may be realized and attained by practice or use of various aspects of the methodologies, instrumentalities and combinations set forth in the detailed examples discussed below.
The user device 108 may be a laptop computer, desktop computer, netbook computer, media center, mobile device (e.g., a smart phone, tablet, music player, and global positioning system (GPS) receiver), gaming console, set-top box, printer, or any other suitable device. A search application, such as a web browser or a standalone search application, may be pre-installed on the user device 108 by the vendor of the user device 108 or installed by the user. The search application may serve as an interface between the user and the remote search serving engine 102. The search application may be stored in storage of the user device 108 and loaded into a memory once it is launched by the user. Once the search application is executed by one or more processors of the user device 108, the user device 108 sends a query or a prefix of a query (i.e., the first one or more characters of a query) entered by the user to the remote search serving engine 102. The user device 108 then receives search suggestions generated by the search suggestion engine 104. The user device 108 also receives query results, e.g., a list of hyperlinks, from the search serving engine 102 once the user selects one of the query suggestions.
The search serving engine 102 in this example may be any suitable search engine. The search serving engine 102 is responsible for analyzing the received query from the user device 108, fetching query results, and returning the query results to the user device 108. In this example, the search serving engine 102 also communicates with the user session recording module 106 by providing each search query entered by a user and its associated information, such as timestamps of each search query, to the user session recording module 106. Search queries, including the prefix of a search query, are continuously fed into the search suggestion engine 104 by the search serving engine 102 for generating and updating search query suggestions. The search serving engine 102 may maintain logs of user activities performed in connection with the search activities. For example, the search serving engine 102 may maintain records of each search query issued to the search serving engine 102, the time at which the search query is received (timestamps of each query), the user session during which the search query is issued, the browser cookie of the browser through which a network user accesses the search serving engine 102 and issues the search query, the network resources identified for the search query, the links clicked by the user after issuing the search query (e.g., the links that are contained in the web page used to present the search result for the search query), and so on. Any information in the logs of user activities may also be provided to the search suggestion engine 104 and/or the user session recording module 106 by the search serving engine 102 in this embodiment.
The user session recording module 106 in this embodiment is configured to record all the search queries received by the search serving engine 102 and organize them by user sessions. Each user session is associated with a particular user identified by, for example, a unique user ID. The user ID may be obtained from user login information or cookies by the search suggestion engine 104. A user session may be a period of time in which a user interfaces with a search application. The user session begins when the user accesses the search application and ends when the user quits the search application or when the user has not interacted with the search application for a predetermined period of time, i.e., the idle time is above a threshold value, e.g., 5 minutes. In addition, a user session may be defined by a predetermined time window, e.g., 10 minutes. That is, any user activities occur within the predetermined time window after the user accesses the search application is considered as in the same user session, and the user session ends when the predetermined time window ends. A user may interact with the search application by subsequently entering multiple search queries, which are received by the search serving engine 102 with corresponding timestamps and forwarded to the user session recording module 106. In this embodiment, based on the unique user ID and timestamps, search queries entered by a specific user are organized into user sessions and stored in a remote user session database 114 on a server.
Returning to
Returning to
Users 108 may be of different types such as users connected to the network 902 via desktop computers 108-1, laptop computers 108-2, a built-in device in a motor vehicle 108-3, or a mobile device 108-4. A user 108 may send a query or query prefix to the search serving engine 102 via the network 902 and receive query suggestions and search results from the search serving engine 102. The search serving engine 102 and search suggestion engine 104 may access information stored in the query log database 906 and knowledge database 908 via the network 902. The information in the query log database 906 and knowledge database 908 may be generated by one or more different applications (not shown), which may be running on the search serving engine 102, at the backend of the search serving engine 102, or as a completely standalone system capable of connecting to the network 902, accessing information from different sources, analyzing the information, generating structured information, and storing such generated information in the query log database 906 and knowledge database 908.
The content sources 904 include multiple content sources 904-1, 904-2, . . . , 904-3, such as vertical content sources. A content source 904 may correspond to a website hosted by an entity, whether an individual, a business, or an organization such as USPTO.gov, a content provider such as cnn.com and Yahoo.com, a social network website such as Facebook.com, or a content feed source such as tweeter or blogs. The search serving engine 102 may access information from any of the content sources 904-1, 904-2, . . . , 904-3. For example, the search serving engine 102 may fetch content, e.g., websites, through its web crawler to build a search index.
To implement the present teaching, computer hardware platforms may be used as the hardware platform(s) for one or more of the elements described herein. The hardware elements, operating systems, and programming languages of such computers are conventional in nature, and it is presumed that those skilled in the art are adequately familiar therewith to adapt those technologies to implement the processing essentially as described herein. A computer with user interface elements may be used to implement a personal computer (PC) or other type of work station or terminal device, although a computer may also act as a server if appropriately programmed. It is believed that those skilled in the art are familiar with the structure, programming, and general operation of such computer equipment and as a result the drawings should be self-explanatory.
The computer 1100, for example, includes COM ports 1102 connected to and from a network connected thereto to facilitate data communications. The computer 1100 also includes a CPU 1104, in the form of one or more processors, for executing program instructions. The exemplary computer platform includes an internal communication bus 1106, program storage and data storage of different forms, e.g., disk 1108, read only memory (ROM) 1110, or random access memory (RAM) 1112, 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 1104. The computer 1100 also includes an I/O component 1114, supporting input/output flows between the computer and other components therein such as user interface elements 1116. The computer 1100 may also receive programming and data via network communications.
Hence, aspects of the method of search suggestion, 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. 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 units of the host and the client nodes 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.
Claims
1. A method, implemented on at least one machine each of which has at least one processor, storage, and a communication platform connected to a network for providing query suggestions, the method comprising:
- receiving a first query from a user device during a first session;
- obtaining at least one contextual suggestion based on a query prefix of the first query and at least a second query that was received from the user device during the first session;
- obtaining at least one regular query suggestion based on the first query; and
- providing the at least one contextual suggestion and the at least one regular query suggestion to the user device as a response to the first query.
2. The method of claim 1, wherein the at least one contextual suggestion comprises high co-occurrence query pairs mined from previous user sessions.
3. The method of claim 1, further comprising:
- receiving the second query from the user device with the first query, wherein the user device is configured to log queries submitted by the user device during one or more sessions.
4. The method of claim 1, further comprising:
- receiving an identifier associated with the user device with the first query; and
- retrieving the second query from a user session database based on the identifier, the user session database storing previously submitted queries for various user identifiers.
5. The method of claim 1, wherein a number of the at least one contextual suggestion and the at least one regular query suggestion is at least one of predetermined and dynamically adjustable based on a number of characters in the query prefix.
6. The method of claim 1, further comprising:
- generating blended suggestions comprising the at least one contextual suggestion and the at least one regular query suggestion, wherein the blended suggestions are provided to the user device as the response.
7. The method of claim 1, further comprising:
- determining a relevance score associated with each of the at least one contextual suggestion and the at least one regular query suggestion;
- generating blended suggestions comprising the at least one contextual suggestion and the at least one regular query suggestion by ranking each of the at least one contextual suggestion and the at least one regular query suggestion by the relevance score associated therewith.
8. A system for providing query suggestions, comprising:
- a search serving engine configured to receive a first query from a user device during a first session; and
- a search suggestion engine configured to: obtain at least one contextual suggestion based on a query prefix of the first query and at least a second query that was received from the user device during the first session, and obtaining at least one regular query suggestion based on the first query, wherein the search serving engine is further configured to: provide the at least one contextual suggestion and the at least one regular query suggestion to the user device as a response to the first query.
9. The system of claim 8, wherein the at least one contextual suggestion comprises high co-occurrence query pairs mined from previous user sessions.
10. The system of claim 8, wherein the search serving engine is configured to receive the second query from the user device with the first query, wherein the user device is configured to log queries submitted by the user device during one or more sessions.
11. The system of claim 8, further comprising:
- a user session recording module configured to: receive an identifier associated with the user device with the first query; and retrieve the second query from a user session database based on the identifier, the user session database storing previously submitted queries for various user identifiers.
12. The system of claim 8, wherein a number of the at least one contextual suggestion and the at least one regular query suggestion is at least one of predetermined and dynamically adjustable based on a number of characters in the query prefix.
13. The system of claim 8, wherein the search suggestion engine comprises:
- a query suggestion generation unit configured to generate blended suggestions comprising the at least one contextual suggestion and the at least one regular query suggestion, wherein the blended suggestions returned to the search serving engine to be provided to the user device as the response.
14. The system of claim 8, wherein the search suggestion engine is further configured to:
- determine a relevance score associated with each of the at least one contextual suggestion and the at least one regular query suggestion, and the search suggestion engine comprises:
- a query suggestion generation unit configured to generate blended suggestions comprising the at least one contextual suggestion and the at least one regular query suggestion by ranking each of the at least one contextual suggestion and the at least one regular query suggestion by the relevance score associated therewith.
15. A non-transitory machine-readable medium having information recorded thereon for providing query suggestions, wherein the information, when read by at least one processor of a machine, causes the machine to:
- receive a first query from a user device during a first session;
- obtain at least one contextual suggestion based on a query prefix of the first query and at least a second query that was received from the user device during the first session;
- obtain at least one regular query suggestion based on the first query; and
- provide the at least one contextual suggestion and the at least one regular query suggestion to the user device as a response to the first query.
16. The non-transitory machine-readable medium of claim 15, wherein the information, when read by the at least one processor, further causes the machine to:
- receive the second query from the user device with the first query, wherein the user device is configured to log queries submitted by the user device during one or more sessions.
17. The non-transitory machine-readable medium of claim 15, wherein the information, when read by the at least one processor, further causes the machine to:
- receive an identifier associated with the user device with the first query; and
- retrieve the second query from a user session database based on the identifier, the user session database storing previously submitted queries for various user identifiers.
18. The non-transitory machine-readable medium of claim 15, wherein a number of the at least one contextual suggestion and the at least one regular query suggestion is at least one of predetermined and dynamically adjustable based on a number of characters in the query prefix.
19. The non-transitory machine-readable medium of claim 15, wherein the information, when read by the at least one processor, further causes the machine to:
- generate blended suggestions comprising the at least one contextual suggestion and the at least one regular query suggestion, wherein the blended suggestions are provided to the user device as the response.
20. The non-transitory machine-readable medium of claim 15, wherein the information, when read by the at least one processor, further causes the machine to:
- determine a relevance score associated with each of the at least one contextual suggestion and the at least one regular query suggestion;
- generate blended suggestions comprising the at least one contextual suggestion and the at least one regular query suggestion by ranking each of the at least one contextual suggestion and the at least one regular query suggestion by the relevance score associated therewith.
Type: Application
Filed: Apr 9, 2018
Publication Date: Aug 9, 2018
Inventors: Shenhong Zhu (Santa Clara, CA), Anlei Dong (Fremont, CA), Kazuhiro Nakao (Sunnyvale, CA), Hongbo Deng (San Jose, CA), Hui Wu (Sunnyvale, CA)
Application Number: 15/948,136