Embodiments of the invention are defined by the claims below, not this summary. A high-level overview of various aspects of the invention are provided here for that reason, to provide an overview of the disclosure, and to introduce a selection of concepts that are further described in the Detailed-Description section below. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in isolation to determine the scope of the claimed subject matter. In brief and at a high level, this disclosure describes, among other things, ways to temporally bias items included in a search results webpage. The items include search results, links, advertisements, or any other content or items included in a search results webpage.
User engagement with the items is tracked. The user engagement can be via the search engine results webpage or via other locations at which the items are accessible, e.g. webpages in which the items are published. A user-engagement score and an age of the items are determined. A temporal-bias factor is calculated using a decay function that increases in intensity with the age of the items. A rank score is calculated for each item based on the user-engagement score and the temporal-bias factor—the temporal-bias factor decreases the rank score as a function of the age of the items. The items are ranked based at least in part on the rank score and one or more of the items are chosen for presentation in a search results webpage.
The temporal-bias factor may aid in adjusting the rank score for older items, for which a greater quantity of user-engagement data is available, downward to allow newer items, for which little to no user-engagement data is available, to be ranked higher. Thus, newer, upward-trending items for which users may have greater interest can be ranked above older, potentially stale items.
Illustrative embodiments of the invention are described in detail below with reference to the attached drawing figures, and wherein:
The subject matter of select embodiments of the invention is described with specificity herein to meet statutory requirements. But the description itself is not intended to necessarily limit the scope of claims. Rather, the claimed subject matter might be embodied in other ways to include different steps or combinations of steps similar to the ones described in this document, in conjunction with other present or future technologies. Terms should not be interpreted as implying any particular order among or between various steps herein disclosed unless and except when the order of individual steps is explicitly described.
Embodiments of the invention include methods, systems, and computer-readable media for providing a temporal bias for items that are included in a search results webpage. The items are described herein as comprising navigational links that are associated with a search result listing. But the items can comprise any item found in a search results webpage for which a temporal bias might be used to rank and/or identify those items for inclusion and placement in the search results webpages. Such items include, for example and not limitation, search results, advertisements, related search links, proposed search terms/query refinements, and the like.
Navigational links comprise links or hyperlinks, such as uniform-resource locators (URLs), uniform-resource identifiers (URIs), or any other link useable to locate a webpage or other content on a network or stored in a computer memory. Navigational links include links that are found in a first webpage and when executed, such as by a user clicking or selecting the link, direct the user's browser to a second webpage. For example, a first webpage might be a home page of a corporation. The home page might include navigational links like “Customer Support,” “Products,” “Contact Us,” or the like that link to subsequent webpages that include associated content. Navigational links can link to any subsequent webpages that are or are not associated with the first webpage, e.g. a navigational link on a manufacturer's website can link to other webpages of the manufacturer's website or to websites associated with other manufacturers, retail outlets, government agencies, or any variety of other webpages, documents, or content.
Referring initially to
Embodiments of the invention may be described in the general context of computer code or machine-useable instructions, including computer-executable instructions such as program modules, being executed by a computer or other machine, such as a personal data assistant or other handheld device. Generally, program modules including routines, programs, objects, components, data structures, etc., refer to code that perform particular tasks or implement particular abstract data types. Embodiments of the invention may be practiced in a variety of system configurations, including hand-held devices, consumer electronics, general-purpose computers, more specialty computing devices, etc. Embodiments of the invention may also be practiced in distributed computing environments where tasks are performed by remote-processing devices that are linked through a communications network.
With reference to
The computing device 100 typically includes a variety of computer-readable media. Computer-readable media include computer-storage media and computer-storage devices and are mutually exclusive of communication media, e.g. carrier waves, signals, and the like. By way of example, and not limitation, computer-readable media may comprise Random Access Memory (RAM); Read-Only Memory (ROM); Electronically Erasable Programmable Read-Only Memory (EEPROM); flash memory or other memory technologies; compact disc read-only memory (CDROM), digital versatile disks (DVD) or other optical or holographic media; magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to encode desired information and be accessed by computing device 100.
The memory 112 includes computer-storage media in the form of volatile and/or nonvolatile memory. The memory 112 may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard drives, optical-disc drives, etc. The computing device 100 includes one or more processors that read data from various entities such as the memory 112 or the I/O components 120. The presentation component(s) 116 present data indications to a user or other device. Exemplary presentation components include a display device, speaker, printing component, vibrating component, etc.
The I/O ports 118 allow the computing device 100 to be logically coupled to other devices including the I/O components 120, some of which may be built in. Illustrative components include a microphone, joystick, game pad, satellite dish, scanner, printer, wireless device, etc.
Referring now to
The environment 200 includes a network 202, a user's computing device 204, a search-engine server 206, a webpage server 208, a tracking component 210, a ranking component 212, and a data-store 214. The network is any available computing or communications network such as, for example, and not limitation, the Internet, an intranet, a local-area network (LAN), a wireless-access network (WAN), and combinations thereof. The user's computing device 204, the search-engine server 206, and the webpage server 208 comprise any one or more computing devices, such as the computing device 100 described above. Each of the devices 204, 206, and 208 is configured to access the network 202 and to communicate/receive data from other computing devices via the network 202 as is known in the art. Further detail of the devices 204, 206, and 208 in addition to that provided below, is not necessary for understanding and describing embodiments of the invention and, as such, is not provided herein.
The user's device 204 includes a browser application 216 (also referred to herein as a browser 216). The browser 216 is any browser application now known or later developed that is configurable to access documents via the network 202 such as web pages, websites, domains, folders, files, and the like. In an embodiment, the browser 216 comprises Internet Explorer® from Microsoft Corporation of Redmond, Wash., U.S.A., or Firefox® from Mozilla Corporation of Mountain View, Calif., U.S.A., among others. The browser 216 may use a search engine to identify and/or aid in accessing these documents.
The documents are accessed by the browser 216 using an address or locator such as a web address, URL, URI, internet protocol (IP) address, or another indication of the documents or their location in the network. The address or location of documents on the network is referred to herein as a URL, however, such is not intended to limit embodiments of the invention to use of a URL specifically—any indicator of document location is useable in embodiments of the invention.
With continued reference to
The webpage server 208 includes any server or other computing device connected to the network 202 that provides webpage content to the user device 204 as is known in the art. Additional details of the webpage server 208 are not necessary for describing and understanding embodiments of the invention and are not described further herein.
The tracking component 210 is configured to track a user's web-browsing activities on the user device 204. The tracking component 210 can be a stand-alone component that is executed by a computing device, such as the computing device 100, connected to the network 202. In an embodiment, the tracking component 210 is executed by one or more computing devices associated with the search-engine server 206. Or the tracking component 210 can be installed on the user device 204 as a stand-alone component application, as a plug-in to another application, or in any other desired configuration. In an embodiment, the tracking component 210 is a plug-in to the browser application 216 executing on the user's computing device 204.
The tracking component 210 tracks any desired activities associated with a user's web browsing. For example, the tracking component 210 might track the webpages visited, the links clicked on those webpages, an amount of time the user spends on the webpages and the linked-to webpages, whether the user clicked a back button or returned to a webpage from which a link was clicked, a number of impressions of a link a user is exposed to, and the like. Such activities with respect to links and other items are described herein as user engagement with those items. The tracking component 210 tracks the user engagement with respect to time, e.g. when the activities occurred and rates of such occurrences. In an embodiment, the tracking component 210 tracks user engagement for a plurality of users.
The user engagement data is stored by the tracking component 210 in one or more computer memories, such as the datastore 214 on the network 202. The user engagement data might also be stored in a memory at the user device 204 or in any other available memory location. The datastore 214 comprises any available computer memory technology and can be a standalone component or integrated into one or more other components or devices. Additional details of the datastore 214 are not necessary for describing and understanding embodiments of the invention and are not described further herein.
The ranking component 212 is configured to calculate a rank score for the links included in the webpages served by the webpage server 208 as described below. In an embodiment, the ranking component 212 is configured to calculate a rank score for any items that might be included in a search-engine results page. The ranking component 212 is a stand-along component executed by a computing device. Or the ranking component 212 can be integrated or associated with the search-engine server 206 or other computing device on the network 202. The ranking component 212 may calculate the rank score off line on a periodic basis and provide updates to the search-engine server 206 for serving search-engine results pages. The ranking component 212 might calculate rank scores in real time or at run-time to instruct ranking of links or other items included in search-engine results pages by the search-engine server 206.
With reference now to
In an embodiment, the user-engagement score is calculated for one or more periods of time. The user-engagement score might be calculated based on user-engagement data collected over the past week, month, year, multiple years, or any other time increment. It may be useful to calculate the user-engagement score based on time increments of at least a week so as to avoid any variance between days of the week, e.g. browsing habits of users on weekdays might be considerably different than their browsing habits on the weekend.
In an embodiment, the user-engagement score is calculated based on a comparison between two different time periods. For example, the user-engagement data for a previous year is compared to user-engagement data for a previous month. As such, the user-engagement score might identify an item as trending upward, downward, or remaining static. The user-engagement score can comprise any numeric value, such as a percentage, a ratio, a rate of change, a slope, or any other desired value that is useable to describe the user-engagement with the item.
At a step 304, an age of the item is determined. The age of the item might be based on the date that the tracking component 210, ranking component 212, or search-engine server 206 became aware of the item. Or the age of the item might be based on the date of a most recent update to the item or any other useable measure of the age of the item. The age of the item can be described in any increment of time, e.g. days, weeks, months, etc.
A temporal-bias factor is calculated at a step 306. The temporal-bias factor is calculated using an equation that describes a decaying value based on one or more variables, e.g. a decay equation. In an embodiment, the decay equation describes an exponentially decaying value. The temporal-bias factor is based on available parameters collected in the user-engagement data; these include for example and not limitation, age of the item, duration of time a linked-to page is viewed, and the current time of day, year, week, or season.
The temporal-bias factor is also based on an aggressiveness factor (A) that is selectable to control the intensity of the decay function. For example, a more aggressive or greater value of the aggressiveness factor will increase the intensity of the decay function, thereby increasing the rate at which the function goes toward a zero value. Conversely, a more conservative or smaller value of the aggressiveness factor results in a slower rate of decay. In an embodiment, the aggressiveness factor is between about 0.0 and about 3.0, or is between about 1.0 and about 1.5, or is between about 1.05 and about 1.3. In an embodiment, the aggressiveness factor is chosen from the values 1.05, 1.1, 1.2, and 1.3.
In an embodiment, the decay function is of the form f(t)=1/(1+Ât), where f(t) is the temporal-bias factor, A is the aggressiveness factor, and t is the age of the item. In an embodiment, the decay function produces a value, f(t), where 0<f(t)≦1.
The aggressiveness factor can be chosen algorithmically at the time of calculating the rank score for the item or might be manually identified by an administrator. In an embodiment, one or more historical patterns are considered algorithmically to select the aggressiveness factor. The historical patterns are indicated by the user-engagement data or any other available data. The historical patterns might indicate time periods during which a particular item spikes in user-engagement and interest. The aggressiveness factor might thus be chosen at a more conservative value during the known historical spiking time period and might be chosen at a more aggressive value following such periods. Or when the historical patterns indicate that the spike in user-engagement is of short duration, a more aggressive value might be chosen. Conversely, a more conservative value might be chosen when historical patterns indicate a substantially constant level of user-engagement. Thus, in an embodiment, the decay function can be tailored to appropriately decay at a rate that most accurately reflects user interest in the item.
In an embodiment, the value of the aggressiveness factor is chosen so as not to false alarm or inject error into the ranking of items. For example, the value of the aggressiveness factor is chosen such that the decay function is not overly intense and is not inverted to produce growth instead of decay.
With continued reference to
As such, the temporal-bias factor decreases the effect of the user-engagement score on the rank score for the item with respect to the age of the item (when the value of the temporal-bias factor is less than 1). In other words, as the item ages the temporal-bias factor increasingly penalizes the user-engagement score. Thus, an older item that has accumulated a large amount of user-engagement data and that might have a high user-engagement score based on that accumulated data is penalized to reduce the effect of the user-engagement score on the rank score for the item. As such, newer items that have not had time to accumulate user-engagement data that would result in a higher user-engagement score are not penalized as much as the older items. The newer items thus have an opportunity to overcome the rank score of older items and be ranked above the older items.
Older items may have high user-engagement scores due to a large accumulation of user-engagement data. But such user-engagement data may also be old. Thus, it is possible for older item to become stale or of reduced user-interest but still remain in high ranking positions due to their high user-engagement scores. By penalizing such items using the temporal-bias factor, older items that have become stale can be moved down in the ranking, and newer fresh items that have high or increasing user interest can be promoted. And so the items selected for presentation in a search-engine results page can be kept fresh and up-to-date.
The items are ranked with respect to one another based on the rank score. And at a step 310, a number of the items are provided for presentation in a search-engine results page. In an embodiment, the highest ranked items are provided.
With reference now to
The user-engagement-scoring component 504 is configured to determine a user-engagement score based on collected user-engagement data for a particular item. The user-engagement score is based on any of the collected user-engagement data and may be determined with respect to time or a particular time period as described previously.
The age-determining component 506 is configured to determine an age of a particular item. The age might be based on a date when the system 500 first became aware of the item or might be based on metadata included in or with the item. The age can be determined in any units of time including hours, days, weeks, months, years, etc. In an embodiment, the age is determined in a unit corresponding to time periods over which the user-engagement score is calculated.
A temporal-bias factor is calculated by the biasing component 508. The temporal-bias factor is calculated using a decay function that provides a decaying or decreasing value of the temporal-bias factor with respect to the age of an associated item. In an embodiment, the decay function is an exponential decay function that includes an aggressiveness factor. The aggressiveness factor is selectable to adjust the rate or severity of the exponential decay output by the decay function as described previously.
The temporal-bias factor is used by the item-ranking component 510 to determine a rank score for the items. In an embodiment, the item-ranking component is the same as or is executed by the ranking component 212. The item-ranking component 510 uses the temporal-bias factor to adjust the effect that the user-engagement score has on the rank score for an associated item. The item-ranking component 510 can determine the rank score based only on the temporal-bias factor and the user-engagement score. In an embodiment, the user-engagement score is multiplied by the temporal-bias factor to penalize the user-engagement score as a function of the age of the item. The item-ranking component 510 might also use the temporal-bias factor and user-engagement score along with a plurality of other inputs and/or variables to determine the rank score.
The rank score is useable to rank the items with respect to one another. In an embodiment, the links are navigational links and are ranked against other navigational links that are included in the same webpage. In another embodiment, the items are advertisements, search results, or other items that can be included in a search-engine results page and that are included in an index. These items are ranked against other advertisements, search results, or items in the index that are identified by execution of a search query from a user.
The item-ranking component 510 provides the ranked items or indications of their rankings or rank scores to a search engine for inclusion in a search-engine results page. In an embodiment, the item-ranking component 510 provides only a highest ranking number of the items to the search engine.
Referring now to
A user-engagement score for each of the navigational links in the webpage is generated at a step 604. The user-engagement score may include a comparison of user-engagement data over different time periods, e.g. user-engagement over a most recent month versus user-engagement over a most recent year. This comparison can be used to identify a navigational link as trending upward, downward, remaining the same in popularity or user-engagement.
The age of each of the navigational links is determined at a step 606. A temporal-bias factor is calculated for each of the navigational links using an exponential decay function as indicated at a step 608. The decay function includes the age of the navigational link as a variable along with an aggressiveness factor that is useable to adjust the intensity of the decay function. A value for the aggressiveness factor is algorithmically chosen. The value of the aggressiveness factor is chosen based on one or more historical trends depicted in user-engagement data for the navigational links. The aggressiveness factor might also be chosen based on other data related to the navigational links or to other non-related items, market considerations, circumstances, or the like.
A rank score is calculated for each of the navigational links based at least in part on the user-engagement score and the temporal-bias factor. In an embodiment, the calculation of the rank score includes multiplying the user-engagement score by the temporal-bias factor. In another embodiment, the temporal-bias factor is multiplied with one or more other variables included in the rank score calculation. In an embodiment, a decay function is also employed to determine a biasing factor for one or more of the other variables in the rank score calculation.
Based on the rank score, the navigational links for the webpage are ranked against one another, as indicated at a step 612. The webpage, or a search result listing for the webpage, is subsequently identified for inclusion in a search-engine results page by a search engine. One or more of the navigational links are provided for presentation in the search-engine results page based on their ranking, as indicated at a step 614.
A graphical illustration of an exemplary search-engine results page 700 is depicted in
The primary webpage associated with the search result 702 contains a plurality of navigational links therein—greater in number than the navigational links 722 that are provided with the search result 702. Thus, the navigational links 722 are ranked based on user engagement to identify those that are of most interest to users. This attempts to ensure that the navigational links 722 that are included with the search result 702 are the most used and/or desired by users. However, when a new navigational link is added to the primary webpage, there may not be sufficient user-engagement data to enable the new navigational link to obtain a great enough user-engagement score to be ranked and presented on the search-engine results webpage. This situation may be undesirable for example, when the new navigational link is to a new product that has great user-interest.
In such a situation, embodiments of the invention provide a temporal bias to enable new, fresh, trending navigational links to be promoted while older navigational links are penalized or demoted based on their age. Thereby, fresh navigational links 722 that have increasing or high user-engagement can be included in the search-engine results page in place of navigational links 722 that may be stale, decreasing in user interest, or that are old.
In another embodiment of the invention, a temporal-bias factor is calculated for one or more of search results, related searches, advertisements, or other items included in a search-engine results page, such as, the search results 702, 704, 706, related searches 708, 710, 712, 714, and advertisements 716, 718, and 720 of the search-engine results page 700. The temporal-bias factor is calculated based on user-engagement data collected for each of the search results, related searches, advertisements, or other items and a user-engagement score is calculated. As described above, the user-engagement score and the temporal-bias factors for each of the items are then useable as at least part of a calculation to determine a rank score for each of the items. The items can be ranked based on the rank score and selected for presentation in the search-engine results webpage.
Many different arrangements of the various components depicted, as well as components not shown, are possible without departing from the scope of the claims below. Embodiments of the technology have been described with the intent to be illustrative rather than restrictive. Alternative embodiments will become apparent to readers of this disclosure after and because of reading it. Alternative means of implementing the aforementioned can be completed without departing from the scope of the claims below. Certain features and subcombinations are of utility and may be employed without reference to other features and subcombinations and are contemplated within the scope of the claims.