Dynamically inject relevant content into search results
By introducing resident signals into search engines, dynamically adjusting the display of search results and providing personalized suggestions, the problem of inefficient display of search results in the prior art is solved, and the relevance and user experience of search results are improved.
Patent Information
- Application Number
- CN202110637286.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-06-08
- Filing Date
- 2021-06-08
- Publication Date
- 2025-07-01
- Estimated Expiration
- 2041-06-08
AI Technical Summary
When existing search engines process search results, it is difficult for existing search engines to dynamically adjust the display of results effectively, resulting in inefficient users when looking for relevant information and difficult to provide personalized suggestions.
By using resident signals to dynamically inject relevant suggestions, adjust the order of displaying search results, and provide personalized suggestions links when users are stuck, improving the relevance and user experience of search results.
Improve the relevance and user experience of search results, reduce the time when users stagnate in search results, and increase the efficiency of users finding the required information.
Smart Images

Figure CN113360741B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to dynamically injecting relevant content in search results. Background Art
[0002] Search engines have traditionally searched for query terms that appear in documents such as web pages accessible via the Internet. The content returned by a search engine in response to a query is referred to as the search results for that query. Each search result typically includes a link and a snippet, and may include additional content such as images and / or titles, etc. Search engines use multiple ranking signals to determine which search results to provide in response to a query and in what order. Research has shown that most users interact with results in a decreasing manner, where less interaction occurs with results that are further from the top result. Users typically interact with one (or more) of the top results - for example, the top 10, top 20, etc. - which are typically listed on the first or second page of results. The number of search results displayed on each page depends on the search engine used, the user's preferences and settings, and the display type, e.g., a personal computer versus a mobile phone. Users who do not find useful results on the first few pages tend to abandon the search or reformulate the search. Summary of the Invention
[0003] Implementations use resident signals to display relevant suggested items and / or influence "next page" search results for dynamic paging. For example, some implementations can account for relevant suggestions for search results presented in response to a query. The suggestions can include improved queries and / or links to specific items. One or more of the search results initially presented to the user may have relevant suggestions. Implementations account for the resident score for search results in the viewport (e.g., visible to the user without scrolling). If the resident score of a particular search result meets a specified criterion, the implementation may display relevant suggested items. The relevant suggestions may be highly relevant to the search result or may deviate from the search result. Additional suggestions may include documents or queries that can help the user improve the search. Additionally or alternatively, the suggestions can provide deviating suggestions that take the user in a slightly different direction, e.g., providing relevant queries, alternative interpretations of query terms, and / or documents in the same category / classification as a particular search result and highly similar to that result.
[0004] As another example, some implementations can use dwell scores in the "next page" of search results generated for a query. Traditionally, a search engine can precompute a large set (e.g., 100 or more) of search results for a query and provide the large set as a response, although only a few (e.g., around 10) search results may be shown on the first page and the remaining results become visible after the user's "next page" request. Instead of precomputing a large set of search results, an implementation can precompute a much smaller set (e.g., 20). If the user provides a "next page" request, the implementation can use the dwell scores of the first set to inform the search results computed for the next page. The next page can include another smaller set of results that can include some of the original smaller set not included in the first page and results added due to the dwell score signals. Thus, the implementation can support dynamic pagination of search results and use one (or more) dwell scores to determine which search results to provide next. Dynamic pagination can be used regardless of manual pagination. In other words, the user can interact with a "next page" type UI element or can interact via automatic inline pagination, which appends new results to the existing page.
[0005] According to some aspects of the present disclosure, a method includes, for each result at least partially displayed in a viewport, the result being part of a reduced set of results identified in response to a query, accounting for a dwell score for the result based on the amount of time the result has been in the viewport and the position of the result in the viewport, and displaying, in response to determining that the dwell score meets a threshold, a suggested link for the result in the viewport.
[0006] According to some aspects of the present disclosure, a method includes: receiving a query from a client device, determining a first plurality of search results from an inverted index responsive to the query, and providing the first plurality of search results for display in a viewport at the client device. The method can also include receiving a dwell score for at least a first result of the first plurality of search results, receiving a request for a next page of search results, determining a second plurality of search results from the inverted index responsive to the query, and ranking the second plurality of search results at least partially based on the dwell score such that results from the second plurality of search results that are similar to the first result receive a ranking boost.
[0007] According to certain aspects, a method includes: displaying a scrollable set of search results in a viewport, where the set of search results represents a reduced set of search results responsive to a query; and, while waiting for a scroll action or a link selection, accounting a respective dwell score for each result in the set of search results having content visible in the viewport and updating a ranking signal based on the respective dwell score, where the updated ranking signal is used to generate a next set of search results responsive to the query in response to a request for a next page of search results.
[0008] In another aspect, a tangible computer-readable storage medium has instructions recorded thereon and included therein that, when executed by one or more processors of a computer system, cause the computer system to perform any of the foregoing methods or operations.
[0009] One or more implementations of the subject matter described herein can be implemented to achieve one or more of the following advantages. As an example, the system can initially select a smaller set of results for search results (e.g., 15 or 20 instead of 100), which saves time and can result in faster generation of result pages. Additionally, the implementation improves the quality and relevance of the results that appear on the "next page" by using information about which results the user pauses on to inform the selection and ranking of further results. This has the benefit of reducing the amount of queries the user may have to submit before reaching an answer. As another example, the implementation provides automatic assistance to the user. For instance, when the user is resident on a search results page but does not scroll (change the viewport) or interact with individual results, the user may become stalled, e.g., not knowing how to proceed. The implementation provides highly similar and off-topic suggestions for procedural and non-intrusive help. Highly similar suggestions can help the user improve the query, e.g., results that represent something close to what the user is considering (e.g., based on the dwell score of a particular result). Off-topic suggestions can help the user explore different but related content, e.g., help a stalled user, e.g., the user did not find what was sought but is unsure how to obtain what was sought. The implementation can also include sponsored content in the off-topic and / or highly relevant suggestions, which provides the user with an opportunity to become aware of content related to the user's interests. As another example, the implementation can inject content by automatically expanding a list such as a grid pack without the user explicitly expanding the list. The automatic expansion of the list can reduce user input by helping the user reach the correct intent faster and reduce network bandwidth usage. Thus, the implementation is directed to the generation and use of novel signals for a search system.
[0010] Details of one or more implementations are set forth in the accompanying drawings and the following description. Other features will be apparent from the specification, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Figure 1 Shows an example system according to some implementations.
[0012] Figure 2 Shows an example of a viewport displaying search results for a query.
[0013] Figures 3A - 3E Shows related content according to some implementations to Figure 2 Example injection into the viewport of.
[0014] Figure 4 Shows an example of a user viewport displaying search results for a query.
[0015] Figure 5 Shows related content according to some implementations to Figure 4 Example injection into the viewport of.
[0016] Figure 6 Shows a flowchart of a process for injecting related content into search results according to some implementations.
[0017] Figure 7 Shows an example of a computer device that can be used to implement the described technology.
[0018] Figure 8 Shows an example of a distributed computer device that can be used to implement the described technology.
[0019] In the various figures, the same reference numerals indicate the same elements.
[0020] Specific implementations
[0021] Implementations include systems and methods for injecting content into search results without an explicit user action. The disclosed implementations use a dwell signal to provide additional content to the user. The dwell signal serves as an indication of user inactivity. In other words, when search results are presented to the user, if the user does not change the content in the viewport (i.e., does not scroll) and does not select any search results, the user will dwell on the search results in the viewport. This may be because the user is consuming the content in the snippet, the user has walked away, the user may not be able to find helpful search results provided on the first result page, or the user is stalled and does not know how to proceed. If the user dwells on the page for a sufficient amount of time, the implementation may automatically inject suggestions for the user into the content. The content injected in the form of suggested items can help the user find relevant content more quickly. In some implementations, the items on which the user spends more time dwelling (reflected in the dwell scores for those items) can provide signals for various content that the user deems more helpful, even if not helpful enough to make a selection. If the user requests the next result page, these signals can inform the next set of search results.
[0022] Figure 1 is a block diagram of a search service system 100 according to an example implementation. The system 100 can be used to implement a search service that automatically injects relevant suggested content into a search interface using dwell scores. Figure 1 The description of the system 100 in is described as an Internet-accessible search service for content that is configured to generate and use dwell scores for search results generated in response to a query. Other configurations and applications of the described techniques are possible. For example, dwell scores can be used for similar interactions with non-Internet sources—such as items in a company's internal documents or a corpus protected by login (e.g., a members-only library). The implementations can be applied in any setting where the search service provides search results via a browser.
[0023] The search service system 100 can include a search engine 110. The search engine 110 can be a computing device in the form of many different apparatuses, such as a standard server, a group of such servers, or a rack server system. In some implementations, the search engine 110 can be a single system shared component such as a processor and a memory. Additionally, the search engine 110 can be implemented in a personal computer (e.g., a laptop computer). The search engine 110 can be an example of a computer device 800, as Figure 8 shown. The search engine 110 can include one or more servers that receive queries from a requester such as a client 170 and provide search results to the requester.
[0024] The search engine 110 may include one or more processors 113 formed in a substrate, an operating system (not shown), and one or more computer memories 114. The computer memory 114 may represent any kind of memory (e.g., RAM, flash memory, cache, disk, tape, etc.). The memory 114 may represent multiple memories. In some implementations (not shown), the memory 114 may include external storage, e.g., a memory that is physically remote from the search engine 110 but accessible by the search engine 110. The search engine 110 may include one or more modules or engines representing specialized programming software. For example, the search engine may include a query system 120 that enables the search engine 110 to receive queries and respond to the queries.
[0025] The query system 120 itself may include modules. For example, the query system 120 may include a query engine 125 and an index engine 127. The index engine 127 may be configured to update an item index 140. For example, the index engine 127 may add items to the item index 140, update items in the index 140, and delete items from the index 140. In some implementations, the index engine 127 may work with one or more crawlers. The crawlers search for items accessible via the Internet and return the content (including metadata) of the items. The index engine 127 may use the content and / or metadata to generate and update the index 140.
[0026] The query system 120 may also include a query engine 125. The query engine 125 may receive a query from a requester such as the client 170, analyze the query to determine how to search the item index 140, and initiate a search of the item index 140. A user may submit a query to the query engine 110, such as a word, phrase, list of words, image, record, etc. The search engine 110, particularly the query engine 125, uses one or more indexes (the item index 140) to identify the items returned in response to the query. The items returned to the query engine 125 in response to the query may also be referred to as response items. The query engine 125 may generate search results for some or all of the response items. As used herein, a search result is data related to a response item. The search results may include links. The link may initiate certain actions related to the response item. For example, a search result link may take the user to a web page, may start playing a video or audio file, may open a map application to a certain geographical location, may initiate a phone call, or perform some other operation. The search results for an item may also include a small image or icon related to the item. For example, the search results for an actor may include an image of the actor. The search results for a web page may include a preview of the web page, etc. The search results for an item may include a short description of the item or information extracted from the item, also referred to as a snippet. The search results may include other information related to and / or describing the item.
[0027] The query engine 125 may rank the response items. Ranking may include applying one or more ranking signals to the response items. The ranking signals may include many factors. Non-limiting examples are the page rank of the item, the relevance score of the item, the source of the item, etc. In addition to the known ranking signals, the query engine 125 may also utilize residency signals for ranking. The residency signals may be used in dynamic paging.
[0028] In many conventional search engines, the query engine generates a large set of response items for a query, e.g., a set having hundreds of members. Many search engines organize the response items into pages. Each page may have a preset number of response items. Thus, for example, the first ten response items may be returned as the first page, the next ten response items may be on the second page, and so on. The user may use links or controls to move between the pages, e.g., request the last page, the next page, the previous page, etc. Thus, conventional search engines pre-generate a large set of response items and enable the user to page through the pre-generated set. Pre-generation means that the items represented in the pages are set when the first page of the search results is presented to the user.
[0029] In contrast, in dynamic paging, the next page of response items is not pre-generated. Instead, the query engine 125 can re-rank the remaining response items and / or run a revised query before providing the next page of search results. In other words, in dynamic paging, the query engine can use information that was not available at the time the query was first executed to improve the response items presented in the next page of search results. The improvement can include increasing the rank of one or more response items based on additional information, e.g., such that a response item moves to the next page of results in response to the increased rank. In such an implementation, the response items can be pre-generated, but the ranking of the items can be changed based on additional information. In such an implementation, once a response item is included on a page viewed by the user, the page assignment of that item does not change. Thus, the re-ranking can be applied to the remaining items, or in other words, the items that have not yet been presented to the user. The improvement can include generating a new list of response items using a modified query based on additional information. In such an implementation, the query engine 125 can generate a smaller set of response items, e.g., 15 instead of 100 or 200. In response to a user request for the next page of search results, the query engine 125 can run the modified query to obtain the next set of response items, e.g., another 15 response items. In such an implementation, the query engine 125 can return the first page of results faster using less bandwidth compared to an implementation in which the query engine 125 generates a large set of response items. Additional information used in dynamic paging can include dwell information obtained during the presentation of the current page of search results to the user. As illustrated herein, a proxy of the search engine 110 (e.g., proxy 177) can be used to obtain dwell information.
[0030] When a responsive item is found, the query system 120 can be responsible for searching one or more indexes, which are collectively represented as the item index 140. The item index 140 can include a Web document index, for example, an inverted index that associates terms, phrases, and / or n-grams with documents. A Web document can be any content accessible via the Internet, such as web pages, images, videos, PDF documents, word processing documents, audio recordings, etc. The item index 140 can also include an index of entities, for example, from a knowledge base or knowledge graph. In a knowledge graph, entities are modeled as nodes, and facts about the entities are modeled as properties or labeled relationships between the entities. As used herein, an entity can refer to a physical embodiment of a person, place, or thing or a representation of that physical entity, for example, text or other information that refers to the entity. For example, a node representing the Eiffel Tower can be linked via a located in relationship to a node representing Paris. The Paris entity can have a property representing geographical coordinates and can be linked via a located in relationship to a node representing France. The item index 140 can also include an index of advertisements that associates words or phrases with advertising campaigns. Thus, a responsive item can be an advertisement from a campaign. The item index 140 can also include an index of proprietary documents - for example, documents accessible only via authentication (including images, audio recordings, videos, etc.). Thus, as used herein, an item can refer to a web document, an entity, an advertisement, a proprietary document, an image, a recording, etc.
[0031] The item index 140 can be stored on a tangible computer-readable storage device configured to store data in a semi-permanent or non-transitory form, such as a disk, flash memory, buffer memory, or a combination thereof. In some implementations, the index 140 can be stored in a combination of various memories. The query engine 125 can obtain responsive items from the item index 140, rank the responsive items, generate search results for at least some of the responsive items, and provide the search results to a query requester, such as the client 170.
[0032] In addition to finding responsive items, the query system 120 can also identify suggested items, for example, from the suggested items 135 or from the responsive items for the query. The suggested items may be related to the query. The suggested items may be related to a specific responsive item. The suggested items may include additional responsive items that were not initially displayed on the search results page. For example, the query system 120 can identify a list of responsive items having a similar type, category, etc., such as a list of actors appearing in a specific movie or a list of businesses of a certain type "near me". In some implementations, the query system 120 can select some items from the list to be displayed as combined search results such as rich features. At least some of the remaining items in the list can be provided as suggested items for the rich features, for example, as Figure 4 and 5 shown.
[0033] As another example, the query system 120 can use the suggested item 135. The suggested item 135 can include items (e.g., during a process that occurred before receiving the query) that were pre-computed to be related to the query and / or response item. For example, the suggested item 135 can include queries such as those determined by analyzing search records that typically follow the received query. The search records can include aggregated search logs, aggregated data collected from queries, or other aggregated data related to previously processed queries. In some implementations, the search records can be generated by the search engine 110 during the normal process of generating search results. In some implementations, the suggested follow-up queries can be ranked by similarity to the query and / or the number of times the suggested query follows the received query. In some implementations, the suggested follow-up queries can be ranked by similarity to the information in the session information 130. Thus, the suggested queries can deviate from the received query and / or response item, but be highly relevant to the information in the session information 130. In some implementations, the suggested follow-up queries can be related to a specific response item. For example, a response item can be associated with one or more queries, e.g., because the response item is typically selected after being presented as a search result for a related query. If the response item has related queries, those queries can be included as suggested items for the response item. For example, the suggested item 135 can include parts of the topic journey that other users have taken. For example, if the current query is "jobs in Pittsburgh", the search system can include "housing in Pittsburgh" or "best elementary schools in Pittsburgh" as the suggested item 135. As another example, the suggested item 135 can include alternative interpretations of the query terms. For example, a query of "jaguar" can yield "jaguar car", "jaguar cat", and / or "jaguar team" as suggestions. Similarly, the suggested item 135 can include alternative possibilities. For example, a query of "washing machine" can have "new washing machine" or "washing machine repair" as the suggested item 135, while a query of "university" can include "trade school" or "journey program" as the suggested item 135. Another example of a suggestion that deviates from the query is an alternative perspective.For example, queries such as “How long should I foam roll after running?” may have suggestions such as “Should I foam roll after running?” or “Alternatives to foam rolling after running.”
[0034] In a similar manner, response items can be related to one or more other items, e.g., because they appear together on a search results page or because they include similar content. Thus, rather than including several items with similar content, the search engine can include the highest-ranked item with similar content and use the other items as suggestions for the highest-ranked item. As another example, suggestion item 135 can include an advertisement. Query system 120 can include advertisements that match keywords in the query. The advertisement can be an item associated with the keyword that a sponsor has selected. In some implementations, response items can be associated with one or more keywords, and the advertisement can be a suggestion for the response item.
[0035] As previously described, search engine 110 can identify a set of suggestion items for a query and / or a set of items for at least some of the response items included in the current search results page. Some implementations can associate an icon or other visual cue with each suggestion item. The icon can be used as an indication of the type of suggestion item. For example, suggested queries, suggested items, suggested entities, and suggested advertisements may each have a different visual cue. Query system 120 can apply a ranking to the suggestion items. Query system 120 can provide information needed to display the suggestion items as part of the response to the query, although the information and the suggestion items themselves were not initially displayed. In such an implementation, a browser, such as browser 175, can be able to display one or more suggestion items based on the dwell score without further communication with search engine 110.
[0036] Query system 120 can communicate with client 170 via network 160. Network 160 can be, for example, the Internet, a cellular network, a wired or wireless local area network (LAN), a wide area network (WAN), etc. Network 160 can represent multiple types of networks. Via network 160, query system 120 can communicate with client 170 and with other domains (not shown) and transfer data to / from client 170 and other domains.
[0037] The search service system 100 may also include an agent 177 running on the client 170. The client 170 may be an example of a computer device 700, such as Figure 7 shown. For example, the client 170 may be a personal computer, mobile phone, tablet computer, laptop computer, wearable device, smart TV, etc. The client 170 may include one or more processors 173 formed in a substrate, which are configured to execute one or more machine-executable instructions or a piece of software, firmware, or a combination thereof. The processor 173 may be semiconductor-based - that is, the processor may include semiconductor materials that can execute digital logic. The client 170 may also include one or more computer memories 174. The memory 174, such as the main memory, may be configured to store one or more data temporarily, permanently, semi-permanently, or in a combination thereof. The memory 174 may include any type of storage device that stores information in a format that can be read and / or executed by one or more processors 173. The memory 174 may store applications, modules, and / or engines that perform certain operations when executed by one or more processors 173. In some implementations, the applications, modules, or engines may be stored in an external storage device and loaded into the memory 174.
[0038] The applications may include any number of applications configured to execute on the client 170, such as an operating system, a messaging application, a shopping application, an editing application, a search assistant, a map, etc. In particular, these applications include a browser 175. The browser 175 is operable to receive web page code (e.g., HTML, JavaScript, etc.) and render the web page for presentation to the user of the client 170. The client 170 thus includes a display device having a viewport. As used herein, a viewport is a polygonal area that displays the content rendered by the browser. Typically, the viewport is rectangular. The size of the viewport is device-dependent. For example, the viewport on a smartphone is smaller than the viewport on a personal computer or a tablet computer. Not all of the content of the rendered web page may fit within the viewport. In this case, the user may scroll, for example, perform a scrolling action, to bring the content into the viewport and move the content out of the viewport. A scrolling action is any input that the browser 175 (possibly in combination with the operating system of the client 170) recognizes as performing a scroll to move the content into the viewport. Example scrolling actions are actuating the scroll wheel on a mouse, a click-and-drag action, a swipe action (e.g., using a finger or a stylus), actuating the scroll bar in the browser window, etc. The browser 175 thus displays scrollable content (e.g., the rendered web page) and the viewport determines which portion of the content the user of the client 170 can actually see, or in other words, which portion of the content is visible.
[0039] Browser 175 may include a proxy 177. The proxy 177 is a module or lightweight application installed with user consent. The proxy 177 communicates with the query system 120. For example, the proxy 177 may exchange session information 130 with the query system 120. The session information 130 may include data items for providing a certain search system function. Among other information included in the session information 130, the proxy 177 may calculate the dwell scores of one or more search results visible in the viewport. The proxy 177 may calculate the dwell scores of search items in the viewport when the user is not actively scrolling (performing a scroll operation). In other words, when the user is actively scrolling, the proxy 177 may not calculate any dwell scores. When the user stops scrolling, the content in the viewport is fixed until the user performs another scroll operation, selects a link, submits a different query, or switches focus. While the content in the viewport is fixed, the proxy 177 may periodically calculate the corresponding dwell scores for each search result displayed in the viewport. In other words, each search result displayed in the viewport has its own dwell score, and the proxy 177 may periodically update it. The dwell scores of search results may depend on many factors. In some implementations, the dwell score may be a weighted combination of factors. In some implementations, machine learning algorithms such as linear regression, logistic regression, neural networks, etc. may be used to determine whether the weights and / or dwell scores meet a threshold.
[0040] Factors may include the position of the search results in the viewport. For example, the factor may be lower for search results that appear toward the bottom of the viewport (e.g., third from the bottom, fourth from the bottom, etc.) than for search results that appear toward the middle or top of the viewport. Factors may include how long the search results have been in the viewport. For example, the longer the result is in the viewport, the factor may increase the resident score of the result. Factors may include the amount of search results that appear in the viewport. For example, search results that are only partially in the viewport may receive a reduction or penalty in their resident score. Factors may include the proximity of the cursor to the search results. In some implementations, the proximity of the cursor may be highly weighted. In some implementations, the proximity of the cursor may be more weighted than any other factor. The cursor may be an icon used in conjunction with a mouse, trackball, or touchpad. When the client 170 includes a touch screen, the cursor may also be the location of the touch. For the purpose of the resident score, the cursor may be a stationary touch. A stationary touch occurs when a user (e.g., with a digital or stylus) touches the screen but does not change the location of the touch or remove the touch. In some implementations, such as mobile devices where the user has enabled eye tracking for the browser 175, the factor may include proximity to the gaze direction. This factor may be weighted similarly to the proximity of the cursor factor. The agent 177 may periodically calculate the residence score of the search results in the viewport, for example so that the time in the viewport may be taken into account. In some implementations, the search results may retain their last calculated residence score after the results have been scrolled out of the viewport.
[0041] In some implementations, the agent 177 may inject content based on a residency score. For example, in response to determining that a search result has a residency score that satisfies (e.g., is greater than or equal to) a predetermined threshold, the agent 177 may automatically inject suggested items into the viewport. Suggested items may include items that are specific to the search result. Suggested items may include items for the query for which the search results are returned. In some implementations, the residency score may satisfy the predetermined threshold if a proximity factor to the cursor or a proximity factor to the gaze direction indicates that the gaze direction or cursor overlaps a portion of the search result and the time indication in the viewing area has reached a minimum time. In some implementations, the residency score may satisfy the predetermined threshold if the time indication in the viewing area has reached a minimum time and the factor of the position in the viewport is high enough. Some implementations may use a machine learning classifier to determine whether the residency score satisfies a predetermined threshold. The agent 177 may use various methods to inject suggested items (also known as suggested links), such as regarding Figures 2 - 3C , Figure 4 and Figure 5 Describe in more detail.
[0042] Agent 177 can also send the dwell score to the search engine 110. The dwell score can be associated with session information, e.g., in the session information 130. The dwell score of a session can be deleted when the session is closed. In some implementations, the search engine 110, particularly the query engine 125, can use the dwell score as one of the ranking signals for generating the next page of search results and providing it as part of dynamic pagination. Specifically, as described herein, an item in response to a query that is similar to the search results of another item with a high dwell score can receive a ranking boost, as described in more detail with respect to Figure 3D and Figure 3E More detailed description.
[0043] As further described above, controls can be provided to the user of the client device 170 that allow the user to make choices regarding whether and when the systems, programs, or features described herein can implement collecting user information (e.g., information about the user's activities, the user's preferences, or the user's current geographical location), and whether to send content or communications from a server such as the search engine 110 to the user. Additionally, before storing or using certain data, certain data can be processed in one or more ways such that personally identifiable information is removed. For example, the identity of the user can be processed such that no personally identifiable information can be determined for that user, or the geographical location of the user can be generalized (such as at the city, zip code, or state level) in the case of obtaining geographical location information such that the specific geographical location of the user cannot be determined. Thus, the user of the client 170 can control what information about the user is collected, how that information is used, and what information is provided to the user and / or the search engine 110 or agent 177.
[0044] The client 170 can include one or more input devices such as a touch screen, keyboard, mouse, pointer, microphone, camera, one or more physical buttons, etc. The input devices can initiate input events such as scrolling, link selection, cursor movement, which can be received and analyzed by the browser 175 and / or the agent 177. The client 170 can also include a communication device operable to send data from other computing devices (such as another client, server, the search engine 110, etc.) and receive data from other computing devices (such as another client, server, the search engine 110, etc.) via one or more networks such as the network 160. Figure 1 The configuration shown represents an example configuration and implementations can incorporate other configurations.
[0045] Figure 2 An example of a viewport 200 showing search results for a query is shown. A query system 120 such as Figure 1 can generate content to be rendered by a browser such as the browser 175 in response to a query 205. InFigure 2 In the example, the user has submitted a query 205 of "restaurants near me". The content in the viewport 200 includes a set of search results 203, such as search result 210, search result 220, search result 230, etc. Each search result is associated with a response item. The set of search results 203 may include additional search results that are not currently visible in the viewport 200. These additional search results can be moved into the viewport, for example, via a scrolling action. The set of search results 203 can be considered the first page of search results. In Figure 2 In the example, a cursor 215 is also shown. The cursor 215 is close to the search result 210.
[0046] Figures 3A - 3E An example of dynamically injecting a suggested link based on a dwell score is shown. Figure 3A The injection of a suggested link into the viewport 200 according to some implementations is shown Figure 2 In the example. In Figure 3A In the example, the dwell score of the search result 210 meets a predetermined threshold. As a result of determining that the dwell score meets the threshold, the system (e.g., via Figure 1 the agent 177) injects the suggested link 330 into the viewport, thereby generating the viewport 300a. The suggested link 330 represents content related to the search result 210 and / or the query 205 that has a dwell score meeting the predefined threshold. In Figure 3A In the example, the suggested link 330 is injected below the search result 210 and causes the other search results (220 and 230) to scroll down. In Figure 3A In the example, the suggested link 330 includes a suggested query 332 and a suggested document 334. Although not shown in Figure 3A , the suggested link may include a suggested entity or one advertisement / multiple advertisements. The suggested link 330 may include links similar to the response item of the search result 210. For example, "Springfield east restaurants" and "Mall Food Court Directory" are highly similar to the search result 210. The suggested link 330 may also include a deviation suggestion. For example, "Italian restaurants" and "the Mexican Restaurant menu" provide content similar to the search result 210 (e.g., related to restaurants near me), but indicate a more specific direction to the user. The user can use the deviation suggestion to improve the search in a direction not explicitly stated in the query 205. In some implementations, the deviation suggestion may be based on information about the session or the user with the user's consent.
[0047] In some implementations, the suggested links may be presented in a carousel. The suggested link 330’ shows an example carousel. In some implementations, the suggested link 330’ may replace the suggested link 330 in the viewport 300a. The suggested link 330’ in the carousel may be scrollable. The suggested links may be listed with icons indicating the type of link—e.g., whether the suggested link is a new query, document, entity, advertisement, etc. For example, the icon 336 may indicate that “Springfield eastrestaurants” is a query, where the icon 338 may indicate that “thepost.com” is a document. Figure 3B Show the injection of the suggested link into Figure 2 another in the viewport 200 Figure 3B In the example of, the suggested link 330’ replaces the search results 210 in the viewport. In some implementations, Figure 3A the suggested link 330 of can also replace the search results 210. Implementations using Figure 3B the technology have the advantage of not scrolling other search results, which can be beneficial for devices with a small viewport such as mobile phones.
[0048] Figure 3C Show the injection of the suggested link into Figure 2 another in the viewport 200 Figure 3C In the example of, the viewport is divided into a main content area 342 and a sidebar area 344. Implementations using Figure 3C inject the suggested link 340 into the sidebar area 344. As with Figure 3A and 3B the same, the suggested link 340 represents content related to the search results 210 having a dwell score that meets a predetermined threshold. The suggested link 340 includes similar content and deviated (diversified) content related to the search results 210. The suggestions in the suggested link 340 have a format similar to that of the suggested link 330’, e.g., in a carousel format, optionally with icons related to the link and / or the type of the link. Other formats may be used, e.g., such as the suggested link 340’. In some implementations, the suggested link 340 is anchored to the search results 210, i.e., the search results having a dwell score that causes the injection of the suggested link.
[0049] Figure 3D and 3E Show the exemplary dynamic paging injection of the related content into the Figure 2 viewport according to some implementations Figure 3D In the example of, the user of the client device has been viewing the viewport 200, and thus, each search result 203 in the viewport has a calculated dwell score. ForFigure 3D For the purposes of the example, the user will position the cursor 215 near the search results 220 most of the time when the viewport 200 is stationary. Thus, in this example, the search results 220 have the highest dwell score among the search results on the first page of the results. The interface presented in the viewport 200 includes a next page control 225. In Figure 3D the example, the user has selected the next page control 225. The next page control is any control that initiates a next page action. The next page action indicates that the user wishes to display the next set of search results. If the user clicks or otherwise selects the next page control 225, the search engine will provide the next page of search results for the browser to render. The implementation is not limited to the exact representation of the next page control 225 as shown in Figure 2 . For example, the next page control 225 can be some other icon or can take the form of an optional number (e.g., "Page 1 2 3 … 12 ") or a "Next Page" or "More Results" link. In some implementations, the next page control 225 can be implied. In such implementations, instead of the user selecting an icon or link, the system can use overscroll as the next page control 225. Overscroll occurs when the boundary of the scroll region is reached. In other words, the browser has exhausted the content to be displayed and the scrolling stops. In some implementations, after reaching this boundary, the user can perform a scroll action. If no action is defined for overscroll, the client device typically provides a bounce effect or a page refresh. In some implementations, overscroll can be interpreted as a selection of the next page control. In other words, the system can interpret overscroll as a request for the next page of search results. Thus, the next page control 225 can be any control or action that causes the browser to display the next page of search results for the query 205.
[0050] After the user selects the next page control 225, the system can generate the next set of search results for the query 205. The system can use the dwell score of the search results on the first page as part of the ranking signal and / or as part of the criteria for selecting the search results for the next page. For example, in Figure 3D the example, because the search results 220 have the highest dwell score, the search engine can increase the ranking of items that are more similar to the item represented by the search results 220 (e.g., Italian restaurants). This increase in ranking can result in more Italian restaurants (such as the search results 350) being included in the search results included in the next page, as shown in Figure 3DAs shown. Additionally, review sites for Italian restaurants (such as search results 352 and 354) can receive a ranking boost and appear in the next page of results. Other items unrelated to Italian restaurants in response to query 205 can also be included in the next page, such as search result 356.
[0051] In Figure 3E the example, the user of the client device has been viewing the viewport 200, and thus, each search result 203 in the view has a dwell score. For Figure 3E the purposes of the example, the user positions the cursor 215 near search result 230 while viewing the first page of search results. Thus, in this example, search result 230 has the highest dwell score of the search results in the first page of results. In Figure 3E the example, the user has selected the next page control 225, indicating that the search engine should provide the next page (second set) of search results. When generating the next page, the search engine uses the dwell scores of search results 203, for example, to select and / or rank the items returned. In this example, because search result 230 has the highest dwell score, at least some of the response items will be similar to the items associated with search result 230. Thus, for example, as Figure 3E shown, the next set of search results can include other diners, such as search result 360. Additionally, or alternatively, the next set of search results can include reviews related to diners in the United States, such as search results 362 and 364. As with Figure 3D the same, the next page of search results can also include other results in response to query 205 and not just those that are more similar to search result 230, such as search result 356.
[0052] Figure 3D and 3E are examples of how implementations can use dwell scores in dynamic pagination. For example, depending on the dwell scores of the search results in the first page of search results (e.g., search result set 203), the next page can include search results 350, 352, and 354, or the next page can include search results 360, 362, and 364. Thus, as Figure 3D and 3E shown, implementations can use dwell scores to inject relevant suggestions in the next page of search results using dynamic pagination.
[0053] Figure 4 shows an example of a user interface 400 displaying search results for query 405. In Figure 4In the example, the query 405 is "game of thrones cast". The search engine can provide search results 410 and 425 on the first page of the search results. The client device can display the first page of the search results in the viewport 402. Additional search results not shown in the viewport 402 can be returned as part of the first page of the results. The user can scroll down to see these additional results. In Figure 4 In the example, the search result 410 is a grid pack. The grid pack is an example of a rich feature. A rich feature is a search result that includes graphical elements and sometimes facts related to the item. The rich feature can be presented in a box such as a knowledge panel, or in a carousel format or in the form of a grid pack. In the case where the carousel format can be scrolled from left to right, the grid pack can usually be scrolled up and down and is initially presented in a collapsed state. For example, Figure 4 the grid pack can initially display three actors and a control 415 for expanding the grid pack. In Figure 4 In the example, each item in the grid pack includes a photo of the actor, the name of the actor, and the role the actor played in Game of Thrones.
[0054] Some implementations can use the dwell score of the search result 410 to automatically expand the grid pack without the user explicitly selecting the control 415. For example, if the user holds a finger (e.g., cursor 420) over the search result 410, the system can calculate the dwell score. The longer the user holds the finger near the search result 410, the higher the dwell score of the search result 410 will be. Once the system determines that the dwell score reaches (e.g., meets or exceeds) a threshold, the system can automatically expand the grid pack, as Figure 5 shown. Therefore, Figure 5 shows an example injection of suggested content 510 into Figure 4 the viewport 402. The injection can cause other search results such as the search result 425 to scroll out of the viewport.
[0055] In Figures 2 to 5 any example represented, the system can calculate the dwell score of the injected content in the viewport. Therefore, for example, once the grid pack is expanded, the system can calculate the dwell score of each individual item in the grid pack. The dwell score can then be used for dynamic paging or injecting other suggested content. For example, in Figure 3B the user can position the cursor 215 over a suggested link for "Italian restaurants". This can cause the suggested link to have the next page control 225 after the user selects Figure 3B which results in Figure 3DThe dwell score of the search results shown in. In other words, the dwell score calculated for Italian restaurants can result in response to a request for the next page of results Figure 3D interface. Similarly, the dwell score of a particular actor in the recommended content 510 can result in a request for the next page of search results for search results that include items more closely related to that particular actor. Thus, the implementation can enable the recommended link to affect and inject recommended content for dynamic pagination. The recommended link can be implemented without dynamic pagination. Dynamic pagination can be implemented without the recommended link. The recommended link can also be implemented using dynamic pagination without affecting dynamic pagination (e.g., some implementations may not calculate the dwell score of the recommended items).
[0056] Figure 6 FIG. shows a flowchart of a process 600 for injecting relevant recommended content into search results according to some implementations. The process 600 can be executed by a search service system such as Figure 1 system 100. In particular, the process 600 can be partially executed by a search engine such as Figure 1 search engine 110 and a proxy on a client device such as Figure 1 proxy 177. The process 600 can be a process executed during a browsing session. The process 600 can start in response to receiving a query (605) from a requester (e.g., from a client device). The system can obtain items that are considered to be responsive to the query, or in other words, a set of response items (610). In implementations using dynamic pagination, the number of items in the set of response items can be reduced compared to a search engine that does not use dynamic pagination. For example, the set of response items can include 10 or 15 items instead of 100 or more. The system can rank the response items. The system can assign the response items to pages, e.g., a first page, a second page. The search system can generate search results for each response item assigned to the first page. In some implementations, the search system can also obtain recommended content (615) for at least some of the response items assigned to the first page. If, for example, the results are not understandable, are poorly marked or of low quality, are new results or fringe topics, the response items assigned to the first page may not have recommended content. In some implementations, the recommended content can be sent with the initial page load. In some implementations, the recommended content can be "slow loaded" after the initial page becomes visible. In some implementations, the recommended content can be downloaded as needed based on an interaction with the page, e.g., fetched when the dwell score reaches or approaches a threshold for display. Whether the recommended content is downloaded with the search results, slow loaded, or loaded on demand may be based on the user's connection speed, the user's device, the position of the results on the page, etc.
[0057] Suggested content can be provided to the client rendering the content together with the search results. Thus, on the client device, at least some of the search results are visible in the viewport. The suggested content is initially not visible. Thus, the client displays at least the start of the first page of search results (620). It is well known that a user of the client device can interact with the search results, e.g., scroll the search results and / or select one or more search results, etc. When the user is actively scrolling (625, yes), the system takes no action regarding the dwell score. If the system receives a request for the next page of search results (630, yes), the system can obtain the results for the next page (610). In some implementations, the ranking and selection of items on the next page can depend at least in part on the dwell scores accounted for items on the previous page or pages. In some implementations, the dwell score can be included in the session information.
[0058] Once the user stops scrolling (625, no), the system can account for the dwell scores (635). In particular, for each search result that is at least partially in the viewport, the system can account for the dwell score (640). In some implementations, the search results in the viewport can include suggested links, such as suggested links 330, 330', 340 or 340' and / or expanded content, such as content 510. As described above, the dwell score can be based on a combination of factors. The factors include the amount of time the search result has been in the viewport. In some implementations, the dwell score can include a factor of the proximity of the cursor to the result. In some implementations, the dwell score can include a factor of the proximity of the gaze direction to the result. In some implementations, the dwell score can include a factor for the position of the result in the viewport. In some implementations, the dwell score can include a factor of the amount of search results visible in the viewport. In some implementations, the dwell score can be a weighted combination of one or more factors. In some implementations, the system can use a machine learning model to determine the dwell score.
[0059] In some implementations, the dwell score can be sent back to the search engine, e.g., to update the session information (655). If the dwell score is communicated back to the search engine, the search engine can use the score as one of many signals in ranking and selecting response items, e.g., as part of step 610. In some implementations, the session information can include a dwell score for each item for which the dwell score was accounted. In some implementations, the session information can retain a history of the dwell scores of the response items accounted for during the session.
[0060] In some implementations, if the dwell score of a search result reaches a predetermined threshold (645, yes), the system can inject suggested content (650). The injection can include displaying suggested links for the search result, such as suggested links 330, 330’, 340, and / or 340’. The injection can include displaying collapsed content, such as content 510. The injection can cause other search results to move out of the viewport (e.g., as Figure 3A and Figure 5 shown). If a search result is completely removed from the viewport, the system stops accounting for the dwell score of that result until it is moved back into the viewport. Additionally, the injected content may become a result for which the dwell score is accounted. In other words, step 650 can modify the search result for which the dwell score was accounted as part of step 635.
[0061] The system can continue to periodically (e.g., continuously, every second, every tenth of a second, on each interaction, etc., or some combination of these) account for the dwell score as part of step 635 until either the user starts scrolling (a scroll action is received) or the user selects one of the search results. Of course, if the user switches focus to some other window or browser tab, process 600 can pause the dwell score accounting. If the user selects a search result (665, yes), the system obtains the content of the selected result and can update the session information (670). Process 600 then ends, although in some implementations, the dwell score of the result can be retained in the session information until the browser is closed. Thus, if the user navigates back to the search results page, the dwell score can be used as described herein. If the user does not select a search result (665, no) but has requested the next page of results (630, yes), the system generates the next page of results (610), using the dwell score in some implementations to inform and rank the response items represented in the next page.
[0062] Figure 7 An example of a general-purpose computing device 700 is shown, which can be operated as a Figure 1 search engine 110 and / or client 170 that can be used with the techniques described herein. Computing device 700 is intended to represent various example forms of computing devices, such as laptop computers, desktop computers, workstations, personal digital assistants, cellular phones, smart phones, tablets, televisions, servers, and other computing devices, including wearable devices. The components shown herein, their connections and relationships, and their functions are only intended to be examples and are not intended to limit the implementations of the inventions described and / or claimed in this document.
[0063] The computing device 700 includes a processor 702, a memory 704, a storage device 706, and an expansion port 710 connected via an interface 708. In some implementations, the computing device 700 may include other components such as a transceiver 746, a communication interface 744, and a GPS (Global Positioning System) receiver module 748 connected via the interface 708, such as one or more cameras, touch sensors, keyboards, etc. The device 700 may communicate wirelessly via the communication interface 744, which may include digital signal processing circuitry when necessary. Each of the components 702, 704, 706, 708, 710, 740, 744, 746, and 748 may be mounted on a common motherboard or otherwise appropriately mounted.
[0064] The processor 702 may process instructions for execution within the computing device 700, including instructions stored in the memory 704 or on the storage device 706 for displaying graphical information for a GUI on an external input / output device such as a display 716. The display 716 may be a monitor or a flat touch screen display. In some implementations, multiple processors and / or multiple buses, as well as multiple memories and memory types, may be used as appropriate. Moreover, multiple computing devices 700 may be connected, each providing a portion of the necessary operations (e.g., as a server farm, blade server group, or multiprocessor system).
[0065] The memory 704 stores information within the computing device 700. In one implementation, the memory 704 is one or more volatile storage units. In another implementation, the memory 704 is one or more non-volatile storage units. The memory 704 may also be another form of computer-readable medium, such as a magnetic disk or optical disk. In some implementations, the memory 704 may include expansion memory provided via an expansion interface.
[0066] The storage device 706 is capable of providing large-scale storage for the computing device 700. In one implementation, the storage device 706 may be or include a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory, or other similar solid-state storage device. Or an array of devices, including devices in a storage area network or other configuration. A computer program product may be tangibly embodied in such a computer-readable medium. The computer program product may also include instructions that, when executed, perform one or more methods such as those described above. A computer or machine-readable medium is a storage device such as the memory 704, the storage device 706, or the memory on the processor 702.
[0067] The interface 708 may be a high speed controller that manages bandwidth intensive operations of the computing device 700, or a low speed controller that manages less bandwidth intensive operations, or a combination of such controllers. An external interface 740 may be provided to enable near area communication of the device 700 with other devices. In some implementations, the controller 408 may be coupled to a storage device 706 and an expansion port 714. The expansion port, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), may be coupled to one or more input / output devices, such as a keyboard, a pointing device, a scanner, one or more cameras, or to networking devices such as switches and routers, for example, through a network adapter.
[0068] As shown, computing device 700 can be implemented in many different forms. For example, it can be implemented as a standard server 730, or more often implemented in a group of such servers. It can also be implemented as part of a rack server system. In addition, it can be implemented in a computing device such as a laptop computer 732, a personal computer 734, or a tablet / smart phone 736. The entire system can be composed of multiple computing devices 700 that communicate with each other. Other configurations are also possible.
[0069] Figure 8 An example of a general purpose computer device 800 is shown, which may be used with the techniques described herein. Figure 1 The search engine 110 of the present invention. The computing device 800 is intended to represent various example forms of large-scale data processing equipment, such as servers, rack servers, data centers, mainframes, and other large-scale computing equipment. The computing device 800 can be a distributed system with multiple processors, which may include network-attached storage nodes interconnected by one or more communication networks. The components shown here, their connections and relationships, and their functions are intended to be exemplary only and are not intended to limit the implementation of the inventions described and / or claimed in this document.
[0070] The distributed computing system 800 may include any number of computing devices 880. The computing devices 880 may include servers or rack servers, mainframes, etc., communicating via a local or wide area network, dedicated optical links, modems, bridges, routers, switches, wired or wireless networks, etc.
[0071] In some implementations, each computing device may include multiple racks. For example, computing device 880a includes multiple racks 858a - 858n. Each rack may include one or more processors, such as processors 852a - 852n and 862a - 862n. The processors may include data processors, network - attached storage devices, and other computer - controlled devices. In some implementations, one processor may act as a master processor and control scheduling and data - allocation tasks. The processors may be interconnected via one or more rack switches 858, and one or more racks may be connected via switch 878. Switch 878 may handle communications between multiple connected computing devices 800.
[0072] Each rack may include memories such as memories 854 and 864, and storage such as 856 and 866. Storage 856 and 866 may provide mass storage and may include volatile or non - volatile storage, such as network - attached disks, floppy disks, hard disks, optical disks, magnetic tapes, flash memory, or other similar solid - state memory devices or arrays of devices, including devices in a storage - area network or other configurations. Storage 856 or 866 may be shared among multiple processors, multiple racks, or multiple computing devices and may include computer - readable media storing instructions executable by one or more processors. Memories 854 and 864 may include, for example, one or more volatile memory units, one or more non - volatile memory units, and / or other forms of computer - readable media, such as disks, optical disks, flash memory, caches, random - access memory (RAM), read - only memory (ROM), and combinations thereof. A memory such as memory 854 may also be shared among processors 852a - 852n. Data structures such as indexes may be stored, for example, across storage 856 and memory 854. Computing device 800 may include other components (not shown), such as controllers, buses, input / output devices, communication modules, etc.
[0073] The entire system may be composed of multiple computing devices 800 that communicate with each other. For example, device 880a may communicate with devices 880b, 880c, and 880d, and these devices may be collectively referred to as search engine 110. As another example, Figure 1 search engine 110 may include two or more computing devices 800. Some computing devices may be geographically close to each other, while other computing devices may be geographically far apart. The layout of system 800 is merely an example, and the system may adopt other layouts or configurations.
[0074] According to certain aspects of the present disclosure, a method includes, for each result at least partially displayed in a viewport, the result being part of a reduced set of results identified in response to a query, accounting for a dwell score for the result based on the amount of time the result has been in the viewport and the position of the result in the viewport, and in response to determining that the dwell score meets a threshold, displaying a suggested link for the result in the viewport.
[0075] These aspects and other aspects may singly or in combination include one or more of the following. For example, the dwell score may be accounted for based on the amount of time the result has been in the viewport, the position of the result in the viewport, and the distance of the result from the cursor. As another example, the dwell score may be accounted for based on the amount of time the result has been in the viewport, the position of the result in the viewport, and the percentage of the result in the viewport. As another example, displaying the suggested link may include inserting the suggested link into a page element for the result, displaying the suggested link in a sidebar anchored to the result, or replacing the result with the suggested link. As another example, the method may further include updating a ranking signal based on the dwell score. In some implementations, the method may further include: determining that the last result in the reduced set of results is displayed in the viewport and a next page is requested, requesting additional search results, and displaying at least some of the additional search results, the additional search results being selected at least in part using the updated ranking signal, wherein the additional search results are a second reduced set of search results. As another example, the suggested link represents both content similar to and content deviating from the result.
[0076] According to certain aspects of the present disclosure, a method includes: receiving a query from a client device, determining a first plurality of search results from an inverted index responsive to the query, and providing the first plurality of search results for display in a viewport at the client device. The method may further include receiving a dwell score for at least a first result of the first plurality of search results, receiving a request for a next page of search results, determining a second plurality of search results from the inverted index responsive to the query, and ranking the second plurality of search results at least in part based on the dwell score such that results from the second plurality of search results that are similar to the first result receive a ranking boost.
[0077] These aspects and others can include one or more of the following features, either alone or in combination. For example, the number of search results in the first plurality of search results can be a small multiple of the number of search results suitable for the viewport. As another example, the dwell score can be received in response to the dwell score meeting a threshold. As another example, the dwell score can be accounted for based on the amount of time the first result has been in the viewport, the position of the first result in the viewport, and the distance of the first result from the cursor. As another example, the dwell score can represent the amount of time the first result has been in the viewport, the position of the first result in the viewport, and the percentage of the first result in the viewport. As another example, at least one dwell score of a result previously displayed in the viewport can be used to determine the first plurality of search results. As another example, ranking the second plurality of search results can include: increasing the ranking of a result in response to determining that the result has the same category as a result in the first plurality of search results having a corresponding dwell score meeting the threshold.
[0078] According to some aspects, a method includes: displaying a scrollable set of search results in a viewport, where the set of search results represents a reduced set of search results in response to a query; and, while waiting for a scroll action or link selection, accounting for a corresponding dwell score for each result in the set of search results having content visible in the viewport and updating a ranking signal based on the corresponding dwell score, where the updated ranking signal is used to generate a next set of search results in response to a request for a next page of search results in response to the query.
[0079] These aspects and others can include one or more of the following, either alone or in combination. For example, in response to determining that the corresponding dwell score of a first search result in the set of search results meets a threshold, the method can further include displaying suggested links for the first search result in the viewport. In some implementations, the suggested links can include at least one link associated with content deviating from the content associated with the first search result and at least one link associated with content similar to the content associated with the first search result. As another example, using the updated ranking signal to generate the next set of search results can include: increasing the ranking of a result in response to determining that the result is similar to a result in the set of search results having a corresponding dwell score meeting the threshold. As another example, the corresponding dwell score for a result can be accounted for based on at least two of the following: the amount of time the result has been in the viewport, the position of the result in the viewport, the distance of the result from the cursor, or the percentage of the result in the viewport.
[0080] According to one aspect, a system includes: means for generating a dwell score for at least one result in a narrowed search result set responsive to a query and means for using the dwell score to generate a second narrowed search result set responsive to the query. According to one aspect, a system includes: means for generating a dwell score for at least one result in a search result set and means for injecting a suggestion link in a search result page based on the dwell score.
[0081] According to certain aspects of the present disclosure, a system includes at least one processor (formed in a substrate) and a memory storing instructions that cause a computing device to perform any one of the methods and variations thereof disclosed herein.
[0082] Various implementations may include implementations in one or more computer programs that are executable and / or interpretable on a programmable system including at least one programmable processor, which may be special purpose or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
[0083] These computer programs (also referred to as programs, software, software applications, or code) include machine instructions for a programmable processor and can be implemented in a high-level programming and / or object-oriented programming language, and / or in assembly / machine language. As used herein, the term “machine-readable medium,” “computer-readable medium” refers to any non-transitory computer program product, apparatus, and / or device (e.g., a magnetic disk, an optical disk, a memory (including a read access memory), a programmable logic device PLD) that provides machine instructions and / or data to a programmable processor.
[0084] The systems and techniques described herein can be implemented in a computing system that includes backend components (e.g., a data server), or that includes middleware components (e.g., an application server), or that includes frontend components (e.g., a client computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described herein), or any combination of these backend, middleware, or frontend components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), and the Internet.
[0085] The computing system may include a client and a server. The client and the server are typically located remotely from each other and typically interact through a communication network. The relationship between the client and the server arises from computer programs that run on the respective computers and have a client-server relationship with each other.
[0086] Numerous implementations have been described. However, various modifications can be made without departing from the spirit and scope of the present invention. Additionally, the logical flows depicted in the figures do not require the particular order or sequential order shown to obtain the desired result. Moreover, other steps may be provided, or steps may be deleted from the described flow, and components may be added to or removed from the described system. Accordingly, other implementations are within the scope of the claims.
Claims
1. A method for displaying search results, characterized in that, The method includes: For each result that is at least partially displayed in the viewport, where the result is part of a reduced set of results identified in response to a query: Account for a dwell score for the result based on the amount of time the result has been in the viewport and the position of the result in the viewport; and In response to determining that the dwell score meets a threshold, display a suggested link for the result, where displaying the suggested link includes replacing the result with the suggested link.
2. The method according to claim 1, wherein, The dwell score is a weighted combination of a factor indicating the amount of time the result has been in the viewport, a factor indicating the position of the result in the viewport, and a factor indicating the distance of the result from the cursor.
3. The method according to claim 1, wherein The dwell score is a weighted combination of a factor indicating the amount of time the result has been in the viewport, a factor indicating the position of the result in the viewport, and a factor indicating the percentage of the result in the viewport.
4. The method according to claim 1, wherein, Displaying the suggested link includes inserting the suggested link into a page element of the result.
5. The method according to claim 1, wherein, Displaying the suggested link includes displaying the suggested link in a sidebar anchored to the result.
6. The method according to claim 1, wherein, The method further includes: Updating a ranking signal based on the dwell score.
7. The method according to claim 6, wherein, The method further includes: Determining that the last result in the reduced set of results is displayed in the viewport and a next page is requested; Requesting additional search results; and Displaying at least some of the additional search results, where the additional search results are selected at least in part using the updated ranking signal, where the additional search results are a second reduced set of search results.
8. The method according to claim 1, wherein The suggested link represents both content similar to the result and content deviating from the result.
9. A method for displaying search results, characterized in that, The method includes: Receiving a query from a client device; Determining a plurality of ranked search results from an inverted index in response to the query; Providing a first portion of the plurality of ranked search results for display in a viewport at the client device; Receiving a dwell score for at least a first result in the first portion of the plurality of ranked search results, where the dwell score for the first result is accounted for based on the amount of time the first result has been in the viewport and the position of the first result in the viewport; Receiving a request for a next page of search results; Determining a second portion of the plurality of ranked search results from the inverted index in response to the query; and Re-ranking the second portion of the plurality of ranked search results at least in part based on the dwell score such that results in the second portion of the plurality of ranked search results that are similar to the first result receive a ranking boost.
10. The method according to claim 9, wherein The number of search results in the first portion of the plurality of ranked search results is a multiple of the number of search results that would fit in the viewport.
11. The method according to claim 9, wherein The dwell score is received in response to the dwell score meeting a threshold.
12. The method according to claim 9, wherein, The dwell score is a weighted combination of a factor indicating the amount of time the first result has been in the viewport, a factor indicating the position of the first result in the viewport, and a factor indicating the distance of the first result from the cursor.
13. The method according to claim 9, wherein, The dwell score is a weighted combination of a factor indicating the amount of time the first result has been in the viewport, a factor indicating the position of the first result in the viewport, and a factor indicating the percentage of the first result in the viewport.
14. The method according to claim 9, wherein, The first portion of the plurality of ranked search results is determined using at least one dwell score of a result previously displayed in the viewport.
15. The method according to claim 9, wherein, Ranking the second portion of the plurality of ranked search results includes: increasing the ranking of a result in response to determining that the result has the same category as a result in the first portion of the plurality of ranked search results having a corresponding dwell score that meets a threshold.
16. A method for displaying search results, characterized in that, The method includes: displaying a scrollable set of search results in a viewport, where the set of search results represents a reduced set of ranked search results in response to a query; and while waiting for a scroll action or link selection: calculating a corresponding dwell score for each result in the set of search results having content visible in the viewport, where the corresponding dwell score of the result is calculated based on at least two of: a factor indicating the amount of time the result has been in the viewport, a factor indicating the position of the result in the viewport, a factor indicating the distance of the result from the cursor, or a factor indicating the percentage of the result in the viewport, and updating a ranking signal of the ranked search results based on the corresponding dwell scores, where the updated ranking signal is used to generate a next set of search results in response to a query in response to a request for a next page of search results.
17. The method according to claim 16, further comprising: In response to determining that the corresponding dwell score of a first search result in the set of ranked search results meets a threshold, displaying a suggested link for the first search result in the viewport.
18. The method according to claim 17, wherein, The suggested link includes at least one link associated with content deviating from the content associated with the first search result and at least one link associated with content similar to the content associated with the first search result.
19. The method according to claim 16, wherein Generating the next set of search results using the updated ranking signal includes: increasing the ranking of a result in response to determining that the result is similar to a result in the set of search results having a corresponding dwell score that meets a threshold.
20. The method according to claim 16, wherein, The corresponding dwell score of a result is a weighted combination of at least two of: a factor indicating the amount of time the result has been in the viewport, a factor indicating the position of the result in the viewport, a factor indicating the distance of the result from the cursor, or a factor indicating the percentage of the result in the viewport.
Citation Information
Patent Citations
Method for realizing searching by utilizing client and search client
CN102043834A
Embedded user experience in search result content
CN102142026A