Leverage user activity data from variants to improve search
By generating user activity data for each product variant and ranking based on it, the problems of inaccurate search results and high computing resources in the prior art are solved, and more efficient and accurate sorting of search results is achieved.
Patent Information
- Application Number
- CN202110427626.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-05-01
- Filing Date
- 2021-04-20
- Publication Date
- 2025-02-25
- Estimated Expiration
- 2041-04-20
AI Technical Summary
When existing search engine technologies deal with multivariate products, it is difficult to accurately rank search results, resulting in inconsistent user intentions and high computing resource consumption.
Each listed item is ranked by intelligently generating user activity data for each product variant and ranking each listed item based on user activity data for each individual variant rather than user activity data for all listed items.
Improve the accuracy and functionality of search results, reduce the consumption of computing resources, and generate more fine-grained and accurate search results rankings.
Smart Images

Figure CN113590931B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to utilizing variant user activity data to improve search. Background Art
[0002] The user typically enters one or more search terms as a query within a field of the search engine to receive information specific to the query. For example, after launching a web browser, the user may enter a search engine term to request a specific item (e.g., a document, a link, a web page, a listing describing a product for sale, etc.). The one or more servers hosting the search engine logic may obtain data from various data sources, rank search results associated with the specific item, and cause a web page or application page to display various ranked search results associated with the specific item. The user may then select one or more of the various ranked result identifiers.
[0003] Search engine logic can use item metrics as signals in search ranking algorithms. For example, in an e-commerce or other online platform that sells products, the search ranking algorithm can rank more popular listings higher than less popular listings. In some cases, a single listing has multiple variations. A "variation" is a specific iteration, instance, or subcategory of an item. For example, a multiple stock keeping unit (MSKU) is a unique identifier that refers to a specific listing or product (e.g., a T-shirt) that has multiple variations (e.g., colors, sizes, etc.). Each variation of a listing has the same MSKU, even though it may be slightly different from other variations or the listings to which it belongs. In other contexts where MSKUs and listings with variations are used for search ranking, existing search techniques are deficient in functionality, accuracy, and computer resource consumption, as described in more detail herein. Summary of the invention
[0004] Certain embodiments of the present disclosure include computer-implemented methods, non-transitory computer storage media, and systems. Some aspects relate to improving search techniques by intelligently generating user activity data for each variant of an item and ranking each corresponding listing (and / or variant) based at least in part on the user activity data for each individual variant rather than the user activity data for all listings, which improves accuracy, functionality, and computing resource consumption relative to other search techniques, among other things. Other advantages, embodiments, improvements, etc. are described herein.
[0005] This summary is provided to introduce some concepts in a simplified form that are further described in the detailed description 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 determining the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The present technology is described in detail below with reference to the accompanying drawings, in which:
[0007] Figure 1 is a block diagram of an illustrative system architecture in which some embodiments of the present technology may be employed, according to certain embodiments.
[0008] Figure 2A is a diagram illustrating user activity data generated for each variation of different listed items and a user issuing a query associated with a single variation of two listed items, according to certain embodiments.
[0009] Figure 2B According to a specific embodiment, the Figure 2A User activity data related to queries issued in Figure 2A The ranking order of the listed items.
[0010] Figure 2C is a diagram showing a method for Figure 2A Schematic diagram of user activity data for the first listed item, except that two different queries are issued for two different variations of the same listed item.
[0011] Figure 2D A search results page is shown according to a particular embodiment, the search results page indicating Figure 2C The listing is ranked lower relative to the other listings because the variation A user activity data and its count are lower than the relevant user activity data for the other listings.
[0012] Figure 2E According to certain embodiments, Figure 2C The same listed items in Figure 2D Positioning within the search results page of a website may promote or rank it to a higher position within its corresponding search results page.
[0013] Figure 3 is a screenshot of an example user interface depicting how one or more variations may be generated from a listed item, according to certain embodiments.
[0014] Figure 4A is a screenshot of an example user interface depicting a search results page that is first presented in response to a user issuing a query, according to certain embodiments.
[0015] Figure 4B is a depiction according to a particular embodiment in response to a user issuing another query Figure 4A Screen shot of an example user interface of a search results page rendered a second time after the first time.
[0016] Figure 5is a flow diagram of an example process for ranking a first search result based at least in part on user activity data associated with a first variant, according to certain embodiments.
[0017] Figure 6 is a block diagram of a computing environment in which aspects of the present technology are implemented, according to certain embodiments.
[0018] Figure 7 is a block diagram of a computing device in which aspects of the present disclosure are implemented, according to certain embodiments. Specific embodiments
[0019] The subject matter of the present invention is described in detail herein to meet statutory requirements. However, the specific embodiments themselves are not intended to limit the scope of this patent. On the contrary, the inventors have contemplated that the claimed subject matter may also be embodied in other ways, in conjunction with other current or future technologies, to include steps or combinations of steps different from those described in this document. In addition, although the terms "step" and / or "box" may be used herein to refer to different components of the method employed, these terms should not be interpreted as implying any particular order among or between the various steps disclosed herein unless and except when the order of the various steps is explicitly described.
[0020] Some items sold in online platforms include multiple variants, which are different iterations of the same item. For example, a listing may include a sports shoe item, where each variant is a different size and color of the sports shoe. In order to generate search results, existing search engine algorithms only store or use item metrics for a given listing or item itself rather than for each variant of the item. A technical problem with this method is that some variants may have many user activities, while other variants do not have many user activities, which deteriorates the accuracy of the search ranking function. "User activity" as described herein refers to computerized user input and / or information displayed to a user device associated with a user and an item. The specific amount or number of user activities for listing items indicates the type of demand for the item based on the user's historical involvement in the item. For example, user activities may include: user selections for variants of products to purchase listing items (e.g., "sales" of variants), user selections for viewing variants of listing items in the form of listing item variants (e.g., "views" of variants), and / or variants of listing items displayed to user devices (e.g., "impressions" of variants). If a user performs a large amount of user activity on a first variation of a first listing (indicating high demand or popularity of the first variation) but not on a second variation, and the user requests a listing corresponding to the second variation, then an existing search ranking algorithm may inaccurately rank the first listing high based on the user activity for the first variation. This inaccuracy is at least in part because the user requested the listing associated with the second variation (rather than the first variation), but the ranking is still based on historical demand for the first variation.
[0021] The following example is an illustration of this technical problem. A user seller may generate a listing corresponding to a specific set of brand A sunglasses, and then generate two variants, such as black sunglasses and red sunglasses. After generating the listing and its variants, other users may perform user activities, such as clicking, selecting, viewing and / or purchasing each variant of the listing. In some cases, there may be much more user activities for red sunglasses than for black sunglasses. For example, more users may have purchased red sunglasses than black sunglasses. However, after these user activities, another user may issue a query for black sunglasses, but because existing search engine technologies use user activities for both black and red sunglasses, they inaccurately rank the corresponding listing higher than it should. In other words, even if the user intent may be for black sunglasses, the search ranking algorithm is inaccurate because it returns the corresponding listing based on the previous user activity for red sunglasses, which is inconsistent with the user intent.
[0022] Another technical issue is that some search engine technologies, such as in the context of MSKU, select the variant that is most favorable to participate in search ranking among all variants. This allows sellers to deliberately introduce abusive variants that are completely unrelated to the product, but the seller knows that it will pop the item at the top of the search results. For example, a seller may create an MSKU for shoes, and the cheaper variant is socks. Therefore, when a buyer issues a query for shoes, for example, filtered by price, the entire MSKU for shoes may appear as a top search result because the price of socks is much cheaper than the price of shoes.
[0023] Various embodiments of the present disclosure provide one or more technical solutions to the above-mentioned technical problems. For example, some embodiments improve existing search engine technology by intelligently generating user activity data for each variant of an item and ranking each corresponding listed item (and / or variant) based at least in part on the user activity data of each individual variant rather than the user activity data of all listed items. "User activity data" as described herein refers to a measure, statistics and / or count of specific user activities for one or more variants, which may indicate demand for a particular variant. For example, user activity data may include the number of times a particular variant of an item has been purchased within an electronic market. In another example, user activity data may include the number of times all users of an electronic market have selected a variant in order to view an item in its variant form (e.g., the number of times a user has filtered the listed items to view a particular color).
[0024] By generating user activity data for separate variations and ranking search results based thereon, embodiments generate more accurate search results and granular rankings than the prior art. For example, referring back to the description above for a sunglasses listing for which a red sunglasses variation and a black sunglasses variation have been created, the sunglasses listing may be demoted to a much lower position than it would otherwise be on a search results page. In this description, certain embodiments may generate much more user activity data for red sunglasses (e.g., 50 views) relative to black sunglasses (e.g., 10 views), even though they are part of the same listing. Thus, when a user issues a query for black sunglasses, some embodiments may rank the listed Brand A sunglasses considerably lower (particularly relative to the above ranking) for display on a results page based at least in part on the user activity data for black sunglasses (very low) rather than red sunglasses (high). That is, because the user intent was to search for black sunglasses, the listing was demoted because, while the user activity associated with the red sunglasses variation of the listing was high, the user activity associated with the black sunglasses variation of the listing was not high.
[0025] As mentioned above, this concept also helps with seller abuse scenarios. For example, if a listing for Brand A shoes includes size variations and a "socks" variation (presumably because socks are cheaper, which would show up in any query / filter on price), some embodiments would not necessarily rank the listing high if the query was for cheap Brand A shoes, because the user activity data for the size variation is likely much higher than the sock variation, and the sock variation would not match the user intent.
[0026] Existing search engine technology is also expensive in terms of computer resource consumption such as CPU and throughput. For example, existing search algorithm technology ranks search results based on a metric of all listed items. However, when the CPU decodes the extracted data in an instruction cycle, it performs arithmetic logic unit (ALU) operations, such as subtraction and addition. When these arithmetic operations are performed on the metrics of all listed items, there is increased latency and potentially increased throughput at runtime because all listed items include much more data to perform arithmetic operations to perform ranking. Some embodiments improve computer operation by performing arithmetic operations at runtime by variant level, thereby reducing latency and increasing throughput because there is less data to perform arithmetic operations on at runtime during ranking.
[0027] Figure 1 1 is a block diagram of an illustrative search engine system architecture 100 in which some embodiments of the present technology may be employed. Although system 100 is shown as including specific component types associated with specific quantities, it should be understood that, alternatively or additionally, other component types may exist in any specific quantity. In some embodiments, one or more components may also be combined. It should also be understood that each component or module may be located on the same or different host computing devices. For example, in some embodiments, some or each of the components within search engine system 100 are distributed across cloud computing systems. In some embodiments, system 100 shows executable program code so that all of the components and data structures shown are linked to be ready for execution at the runtime of a query.
[0028] System 100 is not intended to be restrictive, but only represents an example of a suitable computing system architecture. In addition to those shown or instead of those shown, other arrangements and elements can be used, and for the sake of clarity, some elements can be completely omitted. In addition, many of the elements described herein are functional entities, which can be implemented as discrete or distributed components or combined with other components, and implemented in any suitable combination and position. For example, the functions of system 100 can be provided via a software as a service (SAAS) model, for example, based on cloud and / or web services. In other embodiments, the functions of system 100 can be implemented via a client / server architecture.
[0029] System 100 generally relates to generating search results based at least in part on generating user activity data for one or more variations of a listing. System 100 includes a listing variation generator 140, a log engine 150, a user activity data generator 118, a user activity data aggregator 126, a ranking engine 160, and a presentation component 112. In some instances, a user of a web application or app service may desire to generate listings that describe one or more items offered for sale in an electronic marketplace. A "listing" as described herein includes descriptions and / or metadata related to an item or product offered for sale in an electronic marketplace or other online platform. For example, the first listing may include a title describing the item for sale (e.g., "Brand A Shoes Men's Size 9.5 White Air Cushion Basketball Shoes 2003 New Retro", an image of the item for sale, an MSKU (or other identifier that identifies the item), and / or a price. The listing variant generator 140 is generally responsible for generating one or more listing items and storing them to the storage device 125. For example, using the above description, the listing variant generator 140 can receive user input of a first listing item and store it to the storage device 125 as one of the listing items 142.
[0030] In addition, the listing item variation generator 140 is responsible for generating one or more variations for one or more listing items. For example, the listing item variation generator 140 can generate a predefined data object (e.g., a field, a window, or a data structure) that lists different variation types for the user to select, such as size, color, and / or version (e.g., Brand B version 2.0 or Brand B version 3.0). In some embodiments, the listing item variation generator 140 receives a user selection input of a variation type for which the user wishes to create a sub-item, and populates another data object (e.g., a field, a window, and / or a data structure) with the specific variation value that the user has entered. For example, a user can select a "size" variation type from the data object provided by the listing item variation generator 140, and can enter specific sizes of items that the user has in stock (e.g., sizes 9 and 8), and the listing item variation generator 140 can responsively receive this information and store it as a single listing item of the one or more listing items 142 to the storage device 125. Therefore, even if the user can create multiple variations, such as sizes, the variations can be created as a single listing item, rather than different listing items for each variation in some embodiments. In response to receiving a user selection indication for each variation or variation value generated for the listed item (e.g., a particular shirt size, color, etc.), the listed item variation generator stores the listed item and its variations to storage device 125, indicating that the listed item and / or its variations are offered for sale in an electronic marketplace or other online platform.
[0031] The log engine 150 is generally responsible for generating entries in the user activity log 114 indicating a particular user activity. After the listing variant generator 140 stores one or more listing items 142 to the storage device 125, one or more users may click, view, query, or otherwise perform user activities on the generated listing items 142 and / or their variants. In a particular embodiment, in response to receiving the user activity, the log engine 150 indicates the user activity in the user activity record 114. In some embodiments, each entry in the user activity log 114 corresponds to a particular user activity ID and an associated timestamp (and / or other metadata associated with the user activity). For example, after the listing items in the one or more listing items 142 are stored to the storage device 125, the user may issue a query for "Brand X football", which displays the first listing item. The user may click on the first listing item at a first time, and select the "Youth Size" variant of the first listing item at a second time (indicating that the user is interested in Youth Size Brand X football). In response to the click, the logging engine 150 may generate a first entry in the user activity log 114 to indicate that the user clicked on the first listing item (with a specific listing item user activity ID of the first timestamp) at a first time, and a second entry in the variation log 116 to indicate that the user selected the "Youth Size" variation (with a specific variation ID of the second timestamp) at a second time after the first time. The variation log 116 is generally responsible for storing user activities for one or more variations of one or more listing items. For example, using the above description, the logging engine 150 may populate a data object (e.g., a file) indicating that the variation "Youth Size" corresponding to the specific variation ID was selected for the first listing item in the variation log 116 at timestamp A. This may be contrasted with other portions of the user activity log 114, where non-variant information, such as full listing item information, may be stored. For example, using the above description, the logging engine 150 may store an indication to the user activity log 114 that the user clicked on the first listing item (corresponding to Brand X football) at timestamp D (while the variation log 116 does not include this information and only stores information that "Youth Size" was selected). In this manner, different objects, logs, files, or other structures within the user activity log 114 may parse out or separate out user activity data for the listing itself and one or more variations of the listing.
[0032] The user activity data generator 118 is generally responsible for extracting data from the user activity log 114, generating corresponding entries or records of structured data, and / or calculating metrics or statistics based on the data within the user activity log. In some embodiments, the user activity data generator 118 generates raw statistics (e.g., impressions, views, and sales) from one or more entries within the user activity log 114 within a particular window (e.g., as determined by the window component 120), and extracts data from the rest of the user activity log 114 and generates records for listing information (e.g., within a second data structure). Such information may include MSKU parent / listing item ID and SKU item.
[0033] The variant user activity data generator 124 is generally responsible for calculating user activity data for each entry within the variant log 116. In some embodiments, the variant user activity data generator 124 extracts data from the variant log and generates records for the variants within a first data structure (e.g., a key-value store). In some embodiments, each record is accessed by referencing a key of its parent or listing ID (indicating that a particular variant belongs to a particular listing). In some embodiments, the variant user activity data generator 124 initializes or copies all information within a particular window within the variant log 116 (e.g., as determined by the window component 120) to a data structure and generates the above-mentioned records, and then responsively calculates user activity data for each variant based on the data stored in the data structure. In this way, some embodiments do not calculate the original data directly from the variant log 116 on the fly, but first initialize the data structure using the variant log 116 data.
[0034] The listing item user activity data generator 122 is generally responsible for calculating user activity data for each entry associated with an individual listing item (i.e., outside of the variant log 116). In some embodiments, the listing item user activity data generator 122 extracts data from the user activity log 114 (rather than the variant log 116) and generates records for the listing items within a second data structure (e.g., a second key-value store). In some embodiments, the second data structure is a relationship with a pointer value or other reference indicator that references the first data structure described above with respect to the variant user activity data generator 124, so that user activity can be viewed for each listing item itself and for all listing item variants. In some embodiments, the listing item user activity data generator initializes or copies all information within a specific window within the listing item (e.g., as determined by the window component 120) to the second data structure and generates the above records, and then responsively calculates user activity data for each listing item from the data stored to the data structure. In this way, some embodiments do not calculate the original data directly from the user activity log 114 on the fly, but first use the user activity log 114 data to initialize the second data structure.
[0035] The following example illustrates how the listing item user activity data generator 122 and the variant user activity data generator 124 may work according to some embodiments. A first user may have selected a first variant of a first listing item at a first time, a second user may have selected the same first variant of the same first listing item at a second time, and a third user may have selected a second listing item and a second variant of the second listing item at a third time, all within a five-minute window. All of this information may be stored in the user activity log 114. The window component 120 may limit the window to a five-minute time range within the user activity log 114. The listing item user activity data generator 122 generates a metric indicating that the first listing item was selected twice and the second listing item was selected once within the five-minute window. The variant user activity data generator 124 generates a metric indicating that the first variant of the first listing item was selected twice and the second variant of the first listing item was selected only once.
[0036] The window component 120 is generally responsible for defining a window (e.g., a particular predefined time range (e.g., between two timestamps within the variant log 116) or time slice) within which user activity is to be analyzed within the user activity log 114. In some embodiments, the "window" defined by the window component corresponds to a near real-time time slice of information or any predefined historical window older than a near real-time time slice. In an example illustration of a predefined historical window, the window component 120 may analyze or poll the user activity log 114 every two hours, and each entry corresponding to a particular user activity and time slice generated within that window may be aggregated by the window component 120. Alternatively, the window component 120 may receive each entry populated into the user activity log 114 / variant log 116 in near real-time relative to the time at which the logging engine 150 populated the corresponding user activity log 114 and / or variant log 116. In this manner, the window component 120 may receive individual entries within the user activity log 114 shortly after the logging engine 150 populates the user activity log 114.
[0037] The user activity data aggregator 126 is generally responsible for aggregating the statistics or metrics generated by the user activity data generator 118 with other historical statistics or metrics generated prior to the window defined by the window component 120. In this manner, the history of user activity data may be aggregated with other user activity data corresponding to a particular time window (e.g., a near real-time time slice).
[0038] The merging component 128 is generally responsible for actually merging or aggregating the user activity data generated by the user activity data generator 118 with other historical user activity data. For example, using the above description, the listed item user activity data generator 122 generates a metric indicating that a first listed item was selected twice and a second listed item was selected once within a five minute window, and the variant user activity data generator 124 generates a metric indicating that a first variant of the first listed item was selected twice and a second variant of the first listed item was selected only once within the five minute window. Other metrics stored to the data structure may indicate that a first variant of the first listed item was selected 20 times prior to the five minute window defined by the window component 120, and that a second variant was selected a total of five times prior to the five minute window. Therefore, the merging component 128 aggregates these historical and current window counts, such that the merging component 128 performs an arithmetic function indicating that the first variant has been selected a total of 22 times, and the second variant has been selected a total of 6 times.
[0039] The decay component 132 is generally responsible for weighting, removing, or otherwise modifying metrics or statistics generated by the merger component 128 and / or the user activity data generator 118. In some embodiments, this is because data becomes less important or less useful when particular events occur or as the data becomes older. Therefore, in these cases, the embodiment algorithm may perform one or more functions to score or weight the data as less important or remove them entirely. For example, some embodiments delete metrics or statistics generated by the merger component 128 and / or the user activity data generator 118 that correspond to expired listings (e.g., because the seller has sold the item corresponding to the listing). In another example, if H is the current count of a metric (as indicated by a historical metric) and X is an incremental update (e.g., as performed by the user activity data generator 118 within a window), then at any given time period, the decayed H = const*H+X. For example, after 7 days, the half-life of a particular metric may be calculated (e.g., const = 0.5 Λ (1 / 84) = .99178). "Half-life" may indicate the time required for a metric or statistic to decrease to half of its initial value. This reflects the current trend or popularity associated with a particular listing. For example, a first user may have selected a first variant over 100 times on a particular day. However, after a certain period of time (e.g., 20 days), that count of 100 may decrease to 50 (its half-life) or some other decreasing weighted value, indicating that the data becomes stale or otherwise less useful as more time passes. This also describes that each variant may decay individually.
[0040] The user activity data threshold component 130 is generally responsible for publishing or selecting a specific number of metrics to the ranking engine 160 so that the ranking engine 160 can rank one or more search results based on the metrics selected by the user activity data threshold component 130. In some embodiments, the user activity data threshold component 130 presents a selected number of metrics that remain after the merger component 128 and / or the decay component 132 perform their functions. In an example illustration of how the user activity data threshold component 130 works, it can publish or present to the ranking engine 160 only those items that have seen user activity in excess of a threshold amount (e.g., a specific number of views, sales, impressions, or other clicks) and / or within a threshold time period (e.g., 60 days). In this way, the ranking engine 160 can increase throughput, reduce I / O, and / or reduce CPU utilization because it does not have to process all of the user activity data that has been historically generated, as some of it may not be relevant or associated with very little user activity.
[0041] The ranking engine 160 is generally responsible for ranking search results based at least in part on user activity data for one or more variants of one or more listings. In various embodiments, the ranking engine 160 employs one or more algorithms that rank search results (e.g., listings and / or variants) based on the results that best satisfy the searcher's query or match the user's intent from most relevant to least relevant. For example, one or more algorithms may include a keyword matching algorithm, such as a term frequency-inverse document frequency (TF-IDF) algorithm, which matches important terms (and / or selected filters) in a query to corresponding listings or variants. The TF-IDF algorithm includes numerical statistics that infer the importance of query terms or terms to a data set (e.g., listings). "Term frequency" describes how often the terms of the query appear in a data set, and then divides it by the length of the data set (i.e., the total number of terms in the data set). "Inverse document frequency" infers the importance of terms by reducing the weight of frequently used or common terms (e.g., "the" and "of"), which may have high counts in the data set but have little importance to the relevance of the query. Additionally or alternatively, one or more algorithms may include a semantic analysis engine, such as latent semantic indexing keywords (LSI) in the content (e.g., to determine whether the user's intent is APPLE Computer Company or the fruit apple). Additionally or alternatively, one or more algorithms may include machine learning algorithms and models, such as gradient boosting trees, random forests, WORD2VEC, LSTM, etc. Additionally or alternatively, the ranking engine 160 may include any other suitable algorithm to rank search results.
[0042] The variant evaluator 162 is generally responsible for scoring individual search results (e.g., via integers or other real-valued values) for ranking by the ranking engine 160 based on user activity data for one or more variants of one or more listings. In this way, scores from the variant evaluator 162 reflecting the variant metrics can be stored to the index of the ranking engine 160 so that the overall search ranking can be more accurate. In some embodiments, the variant evaluator 162 uses a rule or strategy that specifies that the higher the count of specific user activity data for a particular variant, the higher the associated score will be. For example, in response to receiving a query, the variant evaluator 162 may compare the impression, view, and sales counts of different variants of different listings that best match the user intent or query (e.g., via any of the methods described above with respect to the ranking engine 160, such as TF-IDF) and the scored listings based on the counts. For example, a query may include a search for "red shoes," and wherein a first "color" variation with a value of red for a first listed item may have had five sales, wherein a second "color" variation with a value of red for a second listed item may have had 10 sales, and wherein a third "color" variation with a value of red for a third listed item may have had 20 sales. Thus, variant evaluator 162 scores the third listed item highest because it has the highest sales (20), scores the second listed item lower than the third listed item because it has the second highest sales (10), and scores the first listed item last or lower than the second listed item because it has the lowest sales (5). Ranking engine 160 may then use these scores as alternative or additional signals to be used in ranking search results, such that search results are ranked based at least in part on the scores generated by variant evaluator 162. For example, ranking engine 160 may rank the third listed item highest and the first listed item last based on the scores generated by variant evaluator 162.
[0043] The example system 100 also includes a presentation component 112, which is generally responsible for presenting content and related information to a user device, such as one or more search result pages with ranked search results generated by the ranking engine 160. The presentation component 112 may include one or more applications or services on a user device, across multiple user devices, or in the cloud. For example, in one embodiment, the presentation component 112 manages the presentation of content to a user across multiple user devices associated with the user. Based on content logic, device characteristics, associated logical centers, inferred logical locations of users, and / or other user data, the presentation component 112 can determine on which (which) user devices to present the content, as well as the context of the presentation, such as how (or in what format and how much content, which may depend on the user device or context) to present the content and / or when to present the content.
[0044] In some embodiments, the presentation component 112 generates user interface features. Such features may include interface elements (e.g., graphical buttons, sliders, menus, audio prompts, warnings, alarms, vibrations, pop-up windows, notification bars or status bar items, in-application notifications, or other similar features for interacting with a user), queries, and prompts. In some embodiments, the presentation component 112 generates structured data, labeled data, or otherwise causes presentation of previously unstructured, semi-structured, or unlabeled structured or labeled data. For example, in some embodiments, the presentation component 112 causes display of ranked variants that may not have been previously structured or otherwise be in a form different from the output provided by the presentation component 112 (e.g., only exists as a listing item). In this way, some embodiments convert input data into outputs that are different from the input.
[0045] The example system 100 also includes a storage device 125. The storage device 125 generally stores information including data, computer instructions (e.g., software program instructions, routines, or services), data structures, and / or models used in embodiments of the technology described herein. As an example and not limitation, the data included in the storage device 125 and any user data may be generally referred to as data throughout. Any such data may be sensed or determined from a sensor (referred to herein as sensor data), such as location information of a mobile device, smartphone data (e.g., phone status, billing data, date / time, or other information derived from a smartphone), user activity (e.g., app usage; online activity; searches; sound data such as automatic speech recognition; activity logs; communication data including calls, texts, instant messages, and emails; website posts; other records associated with events, etc.), including user activity occurring on more than one user device, user history, session logs, application data, contact data, record data, notification data, social network data, home sensor data, appliance data, global positioning system (GPS) data, network connection or configuration data such as Wi-Fi network data, data about model, firmware, or equipment, device pairing (e.g., where a user has a mobile phone paired with, for example, a Bluetooth headset). In some aspects, data or information (e.g., requested content) may be provided in a user signal. A user signal may be a feed of various data from a corresponding data source. For example, the user signal may come from a smart phone, a home sensor device, a GPS device (e.g., for location coordinates), a vehicle sensor device, a wearable device, a user device, a gyroscope sensor, an accelerometer sensor, a calendar service, an email account, a credit card account, or other data source. Some embodiments of the storage device 125 may store thereon computer logic (not shown) that includes rules, conditions, associations, classification models, and other criteria to perform the functions of any of the components, modules, analyzers, generators, and / or engines of the system 100.
[0046] Figure 2A 2 is a schematic diagram illustrating user activity data generated for each variant of different listed items and users issuing queries associated with a single variant of two listed items. In some embodiments, table 200 represents a data structure (e.g., a hash table) or a combination of data structures stored in a computer memory. In some embodiments, the values within table 200 represent user activity data generated by variant user activity data generator 124. In some embodiments, table 200 itself represents the first data structure described above with respect to variant user activity data generator 124. Thus, table 200 can represent each listed item and each variant of each listed item, as well as its associated user activity extracted from variant log 116 that has been subjected to user activity data generation.
[0047] Specifically, table 200 shows that there are listing item IDs 1 and 2 corresponding to two different listing items. For listing item 1 (i.e., the first record), there are 3 variant IDs: A, X, and Y, each corresponding to a variant and a sub-entry or record. Each variant is associated with a specific number of user activities - impressions, views, and sales. The "impressions" field can indicate a specific number of times the corresponding variant was displayed to a user computing device. The "views" field can indicate a specific number of times a user clicked on or otherwise selected the corresponding variant. The "sales" field can indicate a specific number of times a user actually purchased or traded an item that includes the corresponding variant attributes.
[0048] like Figure 2A As shown, a user may issue a query for items that match or are otherwise associated with variants A and A'. For example, a user may issue a query for "Brand A black shoes". Listing 1 may correspond to a shoe item of Brand A, while listing 2 may correspond to another shoe item of Brand A from a different seller. The A and A' variants may correspond to the "black" color variants of the respective listings for Brand A shoes (e.g., all other variants X, Y, B, and C may correspond to other different colors). Although Figure 2A Listings 1 and 2 are shown to both have variants, and ranking can be based on comparing the individual variants, but it should be understood that listings do not need to have variants to be ranked and compared with other variants. For example, listing 2 may not be an MSKU with variants, but rather a single listing without variants, with the variants described in its title. In these embodiments, user activity metrics for all listings can be compared to user activity data for individual variants. For example, the total counts for all variants A', B, and C of listing 2 can be aggregated (count = 100) and compared to the individual variant A of listing 1, although in some embodiments, when a listing does not have variants, those listings can be attenuated or otherwise weighted less, assuming that not all counts are relevant to queries involving variant A. For example, a total aggregate count of 100 for listing 2 can be devalued to 30. This value of 30 can then be compared to user activity data for individual variants (e.g., user activity data for variant A only).
[0049] Various embodiments of the present disclosure are based at least in part on user activity data for various variants associated with a query rather than, for example, Figure 2B Rank the listing as many times as any other variation of the listing shown in . Figure 2B Shown based on Figure 2A User activity data related to queries issued in Figure 2A The ranking order of the listed items. Figure 2BAs shown, on the displayed search result page, listing 2 is ranked higher than listing 1. This is at least in part because certain embodiments compare variants A and A' to determine that variant A' of listing 2 has a higher count than variant A of listing 1. For example, the "Sales" field indicates that the A' variant has a total of 11 sales, while variant A has only 1 sale. In addition, the A' variant has more views (15) than the A variant (3). In total, variant A' (30+15+11) has a count of 56 user activity units, while variant A (30+3+1) has only 34 user activity units. Therefore, an embodiment (e.g., ranking engine 160) ranks listing 2 higher than listing 1 because it has more user activity data for the relevant A and A' variants. Various embodiments use only individual user activities (e.g., impressions rather than views or sales) to rank or score individual user activities (impressions+views+sales) or a total aggregate count.
[0050] Some embodiments completely ignore other non-relevant variant user activity data for search engine ranking. That is, in some embodiments, search ranking is not based on non-relevant variant user activity (i.e., variants that are not relevant to the query) at all. For example, with respect to Figure 2A , in some embodiments, user activity data from variants X, Y, B, and C are not used for ranking because they do not match or are not relevant to the query. Alternatively, some embodiments weight non-relevant variant user activity data much lower for search engine ranking, even though the user activity data is still used for search ranking. That is, in some embodiments, search ranking is based at least in part on non-relevant variant user activity, except that embodiments may score or weight the corresponding variants / listings much lower. For example, returning to reference Figure 2A , since variant Y is not relevant to the query, its sales value of 30 may be reduced to half of its original value (or any decay value) to 15. In this way, for example, variant evaluator 162 will not score the variant as high as it would have if it had a value of 30 instead of 15.
[0051] Because other non-relevant user activity data is not used or weighted to a lower importance or relevance, embodiments can generate more granular and accurate search result rankings relative to existing search engine technologies. Figure 2A and 2B. For example, listing 2 is ranked higher than listing 1, even though listing 1 has much more user activity data counts than listing 2—that is, the user activity counts for A, X, and Y for listing 1 total 184, while the total user activity count for listing 2 totals 89, indicating that listing 1 attracts more people than listing 2. In existing ranking techniques, listing 1 would be ranked higher than listing 2 based on these total counts. However, in an embodiment, given the relevance of the query and the variants about the query, those user activity data from the relevant variants are used separately or weighted much higher for search result ranking. For example, using the above example, if the query is for "Brand A black shoes", only the "black" variants (i.e., variants A and A') from the two listings are relevant (e.g., because the term "black" matches or any other factor described with respect to ranking engine 160). And because the user activity data count from variant A' is higher than the variant A count, listing 2 is ranked higher, even though the total aggregate user activity from all variants is higher for listing 1.
[0052] Figure 2C It shows that Figure 2A , except that two different queries are issued for two different variations of the same listed item. That is, a first user may issue a query for items including terms that match (and / or are otherwise semantically related to) variation A, while a second user may issue another query for items including terms that match (and / or are otherwise semantically related to) variation Y of the same listed item 1. For example, the first user's query may be "brand A black shoes", while the second user's query may be "brand A red shoes".
[0053] Figure 2D and 2EItem 1 on a search results page is shown to be positioned or ranked depending on the query issued and the specific user activity data of the variants associated with the query. For example, using the above description, in response to an embodiment receiving a query "Brand A black shoes" from a first user, the variant evaluator 162 may first run the term "black shoes" against an index of listings that describe or indicate "black shoes" listings. In response, the variant evaluator may determine that variant A of listing 1 is relevant to the query (e.g., via any of the methods described above with respect to ranking engine 160, such as TF-IDF), while other variants X and Y are not relevant. In response to this determination, some embodiments determine the user activity data for variant A (and ignore or subtract the weight of other user activity data for X and Y because they are determined to be irrelevant). In response to this determination of the user activity data for variant A (e.g., summing the count to 34 (30+3+1)), the embodiment compares the user activity data for variant A with relevant variants of other listings related to the query. For example, the first listing may have a total count of 40, while the second listing may have a total count of 50, which is higher than the total count of 34 corresponding to listing 1. Therefore, based on these total counts, Listing 1 may be demoted to the third position on the search results page for the Variation A query, as shown in Figure D, because its count is only the third highest.
[0054] Figure 2D Search result page 200-2 is generally shown, indicating Figure 2C Listing 1 of rank is lower relative to the other listings because the variation A user activity data and its count are lower than the relevant user activity data of the other listings. However, Figure 2E Show Figure 2C The same listed item 1 relative to its Figure 2D The positioning of listing item 1 in search result page 200-2 may be boosted or ranked to a higher positioning in its corresponding search result page 200-3. Specifically, for example, listing item 1 is ranked higher or in the highest position in search result page 200-3, but the same listing item 1 is ranked in the second lowest position in search result page 200-2. The boost of listing item 1 in search result page 200-3 is because the ranking is based on a query for variant Y, and the corresponding user activity data of variant Y is higher relative to the related variants of other listing items. In addition, the boost is based on the fact that the user activity data of variant Y is higher relative to the user activity data of variant A even though the user activity data of variant Y belongs to the same listing item 1. For example, variant Y has 30 sales, while variant A has only 1 sale. Therefore, the ranking or positioning of listing item 1 in a search result page may depend on the specific query issued and the specific user activity data for a given variant. Reference Figure 2E, because the query is for variant Y, and variant Y has more sales than variant A (30 to 1), item 1 is listed much higher on search result page 200-3 relative to search result page 200-2 because search result page 200-2 was provided based on a query for variant A, which has relatively lower user activity data than variant Y.
[0055] Figure 3 is a screenshot 300 of an example user interface depicting how one or more variations can be generated from a listed item, according to some embodiments. Figure 1 The listed item variant generator 140 receives Figure 3 The user selections shown are used to generate listings and variations. In some embodiments, the presentation component 112 causes the screenshot 300 to be presented to one or more user devices. It will be appreciated that the screenshot 300 is only representative. Thus, there may be Figure 3 . For example, in some embodiments, screenshot 300 includes an image upload feature configured to receive an image requested to be uploaded by a user device, the image indicating a photograph of the item for sale. Alternatively or additionally, in some embodiments, screenshot 300 does not include one or more predetermined features, such as a "type" or a variant "value" of the variant indicated in UI elements 307 and 309, but rather the user can manually enter this information.
[0056] In various instances, a user, such as a seller in an electronic marketplace, desires to offer an item for sale. Thus, the user may generate a Figure 3 As shown, for example, listing-variation generator 140 may receive a title of a listing that a user wishes to associate with an item for sale based on input received in field 303. In another example, particular embodiments receive the type of listing that a user wishes to create, such as MSKU (a listing with multiple variations) or SKU (e.g., a listing with no variations or including all variations in its title), based on a user selection of a feature within UI element 305. UI element 305 indicates that MSKU has been selected.
[0057] Some embodiments also receive a "type" of variations based on user selection of UI element 307, which in some aspects is a scrollable drop-down menu. In some embodiments, UI element 307 or the types of available variations is selectable in response to user selection of the MSKU identifier in UI element 305. In this way, once an embodiment determines that a user has selected a listing with multiple variations, an embodiment can provide the types of variations that the user wants associated with the listing for display within screenshot 300. For example, a user may only have certain types of variations (e.g., colors of t-shirts) and no other variations (e.g., t-shirts are all medium in size, so there are no size variations).
[0058] Some embodiments also receive a specific "value" for a variation based on a user selection of UI element 309, which in some aspects is a scrollable drop-down menu. In some embodiments, UI element 309 or a variation value may be selected in response to a user selection of a specific type of value selected in UI element 307. In this way, once an embodiment determines that a user has selected a specific variation type, an embodiment may provide variation values for display within screenshot 300 according to the selected variation type. For example, if a "color" type is selected, an embodiment may provide a listing of colors as indicated in UI element 309. Alternatively, for example, if a "size" type is selected, an embodiment may provide a listing of sizes (as opposed to colors).
[0059] Figure 4A 400 is a screenshot of an example user interface depicting a search results page presented for the first time in response to a user issuing a query. In some embodiments, screenshot 400 (and 400-1) is provided as referenced in Figure 1 The presentation component 112 provides. The search field 411 receives a user query "brand A white sports shoes", and the embodiment receives a selection of the "search button". In response to the selection or query, the embodiment, for example Figure 4A . That is, listing 401 is ranked or positioned first (indicating the highest scoring or most relevant listing), followed by listing 403, then 405, then 407, and listing 409 is last (indicating the lowest scoring or least relevant listing). In some embodiments, the ranking or positioning is based on the functionality described with respect to user activity data generator 118, user activity data aggregator 126, and / or ranking engine 160. In this manner, search result ranking is based at least in part on user activity data for a particular variation, rather than all listings. For example, the "white" variation of listing 401 may have the highest "view" count relative to the "white" variations of other listings.
[0060] In some embodiments, Figure 4A Some or all of the items listed in the Figure 2A 200 . Thus, for example, each variation of a listing item may be represented along with its user activity data, similar to A, X, and Y for the variations of listing item 1 of Table 200 . In this manner, for example, listing item 401 may be ranked highest because its “white” variation may have the highest user activity data count relative to other listing items 403 , 405 , 407 , and 409 . Nevertheless, some listing items or titles do not explicitly describe the variation. For example, the title of listing item 401 merely states “Brand A Shoes Men’s Size 9.5 Air Cushioned Basketball Shoes 2003 New Retro”, which does not indicate “white”, but because it has variations (e.g., it is an MSKU), the query is compared to the individual variations and variation user activity data, rather than just the total user activity in the listing item and the listing item information available only in the title. In some embodiments, Figure 2B The listed item 2 represents Figure 4A Listing Item 401, Figure 2B List item 1 represents Figure 4A Listing Item 409.
[0061] Figure 4B is a description of the response to another query issued by the user Figure 4A Screen shot 400-1 of an example user interface of a search results page presented at a second time after the first time. Figure 4B As shown, the search results page is in Figure 4A Different orders are used to position listed items, which indicates that the ranking is different. For example, Figure 4B The listing item 405 is now ranked highest and is ranked relative to its Figure 4B The position in (which is the third lowest) takes the highest position.
[0062] from Figures 4A to 4B The change in the positioning of the listed item may be due to one or more factors. For example, in some embodiments, user activity data for the variant is updated or otherwise changed, thereby responsively changing the ranking of the listed item. For example, referring back to Figure 4A , at a first time in response to a user issuing a query for "Brand A white sneakers", the user activity data for white sneakers listed as item 405 may be a first count (e.g., 3 sales). However, at a second time after the first time, in response to a user issuing a query for "Brand A white sneakers", the user activity data for white sneakers listed as item 405 may be a first count (e.g., 3 sales). Figure 4B, the count of the user activity data for the white sneakers variant of listing item 405 may have increased (e.g., 30 sales) because more time has passed, allowing for more user activity to occur on the particular listing. Thus, in this example, the update of the user activity data for the white sneakers variant of listing item 405 causes listing item 405 to be ranked higher in the search results. Figure 4B In relative to Figure 4A And because the updated user activity data may also be higher relative to other listed items, listed item 405 is ranked in the first position.
[0063] In some embodiments, additionally or alternatively, from Figures 4A to 4B The position of the listed items changes due to the user issuing different queries. For example, Figure 4A The query in field 411 in is "Brand A white sneakers", and the input to Figure 4B A query in the same field in may be "Brand A black sneakers." At least in part because the user activity data for the "black" variant may be much higher than the user activity data for the "white" variant of listing 405, listing 405 is listed in Figure 4B In relation to its Figure 4A The concept is ranked higher in Figure 2C , 2D and 2E.
[0064] Figure 5 600 (and / or any operations described herein) may be performed by processing logic including hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions running on a processor to perform hardware simulation), firmware, or a combination thereof. Although reference is made to specific blocks described in the present disclosure in a specific order and in a specific number, it should be understood that any block may occur substantially in parallel with any other block or before or after any other block. In addition, there may be more (or fewer) blocks than shown. These added blocks may include blocks that embody any of the functions described herein. A computer-implemented method, a computerized system (which includes a computer storage memory and one or more processors), and / or a computer storage medium as described herein may perform or be caused to perform the process 600 and / or any other functions described herein.
[0065] According to block 503, a first variation of a first listing and a second variation of the first listing are received. The listing may describe an item for sale in an electronic marketplace. The first variation may describe a different iteration of the item relative to the second iteration. For example, the first variation may be a "black" Brand A table, and the second variation may be a "green" Brand A table. In some embodiments, the listing variation generator 140 performs block 503 by receiving a request to generate a first listing and its variations, as described above in Figure 1 and / or Figure 3 In some embodiments, the first variant and the second variant include at least one variant from the group of variants consisting of: a size of the item, a color of the item, and a price of the item. For example, the first variant may correspond to a size of the item, and the second variant may correspond to a color of the item. In another example, the first variant may correspond to a first size of the item, and the second variant may correspond to a second size of the item that is different from the first size.
[0066] In some embodiments, the first listing includes a multiple stock keeping unit (MSKU) ID, which indicates that there are multiple iterations (variants) of the listing and refers to a specific inventory item in the seller's inventory or product catalog. In these embodiments, the first variation and the second variation have the same MSKU ID as the listing, even if the variations correspond to different versions of the same item or physical product. In this way, the search result can be the listing, and thus the listing itself can be ranked, as opposed to the variations of the listing, even if the variations correspond to different products because they are associated with different attributes.
[0067] In some embodiments, alternatively or additionally, block 503 receives a first listing and a first variant describing an iteration of the first listing relative to a second variant and additionally receives a second listing and a third variant describing an iteration of the second listing. Both listings may describe respective items for sale in an electronic marketplace. For example, referring back to Figure 2A , an embodiment may receive listing item 1 and listing item 1 and all data within table 200 .
[0068] According to block 505, first user activity data is generated for the first variant, and second user activity data is generated for the second variant. In some embodiments, block 505 is performed by Figure 1 The variant user activity data generator 124 is executed and includes some or all of the functions described with respect to the variant user activity data generator 124. In some embodiments, the first user activity data corresponds to a user input metric associated with the first variant, and the second user activity data corresponds to a user input metric associated with the second variant. For example, returning to reference Figure 2AIn some embodiments, variant A may be a first variant, and the user activity data may be the values under the impression, view, and / or sales columns for variant A, or the sum of their aggregates (e.g., 1 sale). Similarly, variant X may be a second variant, and the user activity data may be the sum of the impression, view, and / or sales columns for variant X, or the sum of their aggregates (e.g., 15 sales). In some embodiments, additional user activity data may be generated for additional variants, such as generating a third variant (e.g., Figure 2A The third user activity data of a variant Y of listed item 1 in the embodiment of the present invention further corresponds to user input metrics associated with the third variant and fourth user activity data of a fourth variant.
[0069] "User activity data" may include any suitable user activity data. For example, the user activity data may include sales of the first variant, views of the first variant, and impressions of the first variant. For example, return to reference Figure 2A , for variation C of listing item 2, there were 22 impressions, 1 view, and 0 sales.
[0070] At block 507, at least a first query is received at a search engine. In some embodiments, the ranking engine 160 is a component that receives a query at block 507. In some embodiments, the first query is associated with a first variant. For example, referring back to Figure 2C , a query for variant A may be "associated" with variant A because the query includes one or more keywords that match variant A, includes one or more keywords that have the same semantic meaning as variant A, and / or is otherwise related to variant A (e.g., as described by ranking engine 160). If the query does not include one or more keywords that match variant A, does not include one or more keywords that have the same semantic meaning as variant A, and / or variant A is otherwise unrelated to the first query, then the query may not be associated with a variant. In some embodiments, the search engine also receives a second query associated with a second variant. For example, returning to reference Figure 2C , the search engine may additionally receive queries for variant Y.
[0071] However, in some embodiments, the search engine need only receive a single query associated with both the first variant and the third (or second variant). In these embodiments, the query may include one or more keywords that match both variants A and A', include one or more keywords that have the same semantic meaning as both variants A and A', and / or both variants A and A' are related to the query in other ways. For example, this is a reference to Figure 2A, where a query for an item associated with both A and A' causes the system to analyze both variants A and A'. In this manner, the query may correspond to a request for an item that includes attributes that match both the first variant and the third variant. For example, with reference to Figure 2A , if the query is "blue brand A shirts", then both listings 1 and 2 from different sellers may have blue brand A shirts in stock (corresponding to variants A and A'). Therefore, "blue" in the query may match the "blue" attribute as indicated in variant A of listing 1 and the "blue" attribute as indicated in variant A' of listing 2.
[0072] Per block 509, a first search result associated with the first variant is ranked based at least in part on the first user activity data. In some embodiments, ranking engine 160 performs the ranking and includes at least some of its functionality as described with respect to ranking engine 160 in block 509. Some embodiments rank the first search result associated with the first variant higher than the second search result associated with the second variant based at least in part on the first user activity data relative to the second user activity data for the same first listed item. For example, referring back to Figure 2D and 2E , based at least in part on Figure 2C The user activity data shown for variant Y is higher relative to variant A, and listing 1 is ranked higher on search result page 200 - 3 relative to listing 1's ranking on search result page 200 - 2 .
[0073] In some embodiments, the "search results" as described herein are themselves actual variations, rather than Figure 2D and 2E In this way, in some embodiments, the first search result is, for example, the first variant, and the second search result is the second variant. For example, return to reference Figure 2C , variant A, variant X, or variant Y may be respective search results relative to listing item 1. Alternatively, in some embodiments, the "search results" are listing items at two different times and two different search result pages. In these embodiments, the first search result is a listing item at a first time, and the second search result is the same listing item at a second time after the first time. For example, return to reference Figure 2D and 2E , the first search result can be the first Figure 2D of the listed item 1, and the second search result may be at the second time Figure 2E List item 1.
[0074] In some embodiments, first search results are presented in response to issuing a first query, and second search results are presented in response to issuing a second query different from the first query. Figure 2C , 2D and 2E, where search result page 200-2 is presented in response to a query issued for variant A, and a second result page 200-3 is presented in response to a query issued for variant Y.
[0075] In some embodiments, in response to receiving a first query and based on the first user activity data, the listed item is ranked as a search result at a first time. In addition, some embodiments rank the listed item as another search result at a second time after the first time in response to receiving a second query (described at block 507) and based on the second user activity data. In this regard, based at least in part on the second user activity data relative to the first user activity data, the ranking of the listed item at the second time is different relative to the ranking of the same listed item at the first time. An example of this is reference Figure 2C , 2D and 2E, where the same listing item 1 is ranked differently on different search result pages depending on the query and user activity data for the corresponding variants.
[0076] In some embodiments, the ranking of the listed items at the first time is not based on the second user activity data, and the ranking of the listed items at the second time is not based on the first user activity data. Thus, some embodiments only employ user activity data of a particular variant related to a particular query. For example, referring back to Figure 2C , 2D 2E, for a query of variant A, certain embodiments use only the variant A metrics for ranking (i.e., 30 impressions, 3 views, and 1 sale), rather than the variant X and variant Y metrics, even though they are part of the same listing. This at least partially explains the downgraded position of listing 1 in search results page 200-2 relative to its position in search results page 200-3. In some embodiments, ranking a listing at a first time causes the listing to be displayed in a first position of a first search results page, and ranking the same listing at a second time causes the listing to be displayed in a second position of a second search results page below the first position. For example, returning to reference Figure 2E and 2D , the first search result page may be page 200 - 3 , while the second search result page may be 200 - 2 , which shows that listing 1 is located at a lower position than its position on search result page 200 - 3 .
[0077] In some embodiments, the ranking at block 509 is based on higher sales of the first variant relative to the second variant, higher views of the first variant relative to the second variant, and / or higher impressions of the first variant relative to the second variant.
[0078] In some embodiments, the first listed item is ranked higher than the second listed item based on the query and the first user activity data relative to the third user activity data (as described above). In these embodiments, the user activity data of specific variations of different listed items are compared and analyzed instead of the first and second user activity data of the first listed item. For example, referring back to Figure 2A and 2B , because there is more user activity data for variant A' of listing item 2 (e.g., 11 sales) relative to variant A of listing item 1 (1 sale), an embodiment ranks listing item 2 higher than listing item 1, such as Figure 2B Using this description, in some embodiments, the ranking of the first listed item over the second listed item is not based on user activity of the second variant. For example, Figure 2B The ranking of listing 2 higher than listing 1 in is not based on any of variants X, Y, B, and C because these variants are not relevant to the query for items associated with A and A'.
[0079] In some embodiments, the ranking of the first listed item over the second listed item is based at least in part on determining that there is more user activity data for the first variant relative to the third variant by comparing the first user activity data to the third user activity data. Figure 2A and 2B , an embodiment may compare the sales count of A' (11) to the sales count of variant A (1), and determine that the sales count of variant A' is higher. In response, an embodiment ranks corresponding listing item 2 higher than listing item 1, such as Figure 2B shown.
[0080] According to block 511, a first search result is displayed to a computing device based at least in part on the ranking. In some embodiments, the block is performed by presentation component 112 and includes the following steps: Figure 1 Some or each of the functions described. For example, some embodiments enable the first listed item to be displayed on the search results page in a more prominent position relative to the second listed item based on the ranking. For example, return to reference Figure 2B , so that item 2 is listed in Figure 2BThe search result page of the search result is displayed (e.g., by presentation component 112) in a higher or more prominent position relative to listed item 1. The "prominent" position can indicate that one search result is higher on the page than the other, one search result has a significantly higher score relative to the other, one search result is bold or otherwise prominent relative to the other, one search result is on a different page relative to the other, and / or any other suitable graphical representation indicating that the search results are relevant or not relevant. Other examples of block 511 refer to Figure 2D , Figure 2E , Figure 4A and Figure 4B describe.
[0081] In some embodiments, the ranking of block 505 and the display of block 511 may change based on one or more factors, such as updating user activity data indicating that a variant is becoming higher or lower as desired. For example, some embodiments update second user activity data associated with a second variant and receive another query associated with the item. Based at least in part on the update of the second user activity data, the second search result may be ranked higher relative to its ranking before the update. For example, returning to reference Figure 2A and 2B , after the process 500 is completed, variant A may have 40 more sales, indicating more user activity data for variant A. Therefore, in response to the same query for items associated with A and A', it is now possible to Figure 2B Listing 1 is ranked more prominently than listing 2 in the search result page for (eg, because A has 41 sales compared to only 11 sales for A').
[0082] Figure 6 6 is a block diagram of a computing environment 600 in which aspects of the present disclosure are employed, according to certain embodiments. Although environment 600 shows certain components in certain numbers, it can be appreciated that more or fewer components can be included in computing environment 600. For example, in some embodiments, there are multiple user devices 602 and multiple servers 604, such as nodes in a cloud or distributed computing environment. In some embodiments, Figure 1 Some or each of the components of the system 100 are hosted in one or more servers 604. In some embodiments, the user device 602 and / or the server 604 may be embodied in any physical hardware, such as Figure 7 A computing device 700 is provided.
[0083] One or more user devices 602 are communicatively coupled to the server 604 via one or more networks 618. In practice, the connection may be any feasible data transmission network, such as a LAN or WAN. The network 618 may be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of both, and may include wired, wireless, or fiber optic connections. In general, the network 518 may be any combination of connections and protocols that will support communication between the control server 604 and the user device 602.
[0084] In some embodiments, a user issues a query on one or more user devices 602 (e.g., enters Figure 4A ), after which the user device 602 communicates with one or more servers 604 via the network 618, and the one or more servers 604 execute the query (e.g., via Figure 1 ) and causes or provides for display of one or more search result candidates returned to the user device 602 (e.g., via presentation component 112). Figure 4A and 4B , screenshots 400 and 400 - 1 may be examples of content displayed to a user device 602 when one or more servers 604 execute a query and cause search results to be displayed to the user device 702 .
[0085] The present invention may be described in the general context of computer code or machine-usable instructions comprising computer-executable instructions such as program modules executed by a computer (or one or more processors) or other machine such as a personal data assistant or other handheld device. In general, program modules including routines, programs, objects, components, data structures, etc. refer to code that performs specific tasks or implements specific abstract data types. The present invention may be implemented in a variety of system configurations including handheld devices, consumer electronic devices, general-purpose computers, more specialized computing devices, etc. The present invention may also be implemented in distributed computing environments where tasks are performed by remote processing devices linked through a communications network.
[0086] refer to Figure 7 , computing device 700 includes bus 10 that directly or indirectly couples the following devices: memory 12, one or more processors 14, one or more presentation components 16, input / output (I / O) ports 18, input / output components 20, and an illustrative power supply 22. Bus 10 represents what may be one or more buses (such as an address bus, a data bus, or a combination thereof). Although for clarity, Figure 7The various boxes of the computer are shown with lines, but in reality, it is not so clear to depict the various components, and metaphorically, the lines would more accurately be gray and fuzzy. For example, presentation components such as a display device may be considered I / O components. Also, the processor has memory. The inventors recognize that such is the nature of the art, and reiterate that this figure is merely illustrative of an exemplary computing device that may be used in conjunction with one or more embodiments of the present invention. No distinction is made between categories such as "workstation," "server," "laptop," "handheld device," etc., as all are contemplated herein. Figure 7 and reference to “computing device”.
[0087] In some embodiments, computing device 700 represents a physical embodiment of one or more of the systems and / or components described above. For example, computing device 700 may be Figure 6 One or more user devices 602 and / or servers 604, computing device 700 may also perform some or each of the blocks in process 500 and / or other blocks described herein. Figure 1-6 Any functions described. It is understood that computing device 700 need not be construed as a general purpose computer that performs general functions. Instead, in some embodiments, computing device 700 is a specific machine or a special purpose computer. For example, in some embodiments, computing device 600 is or includes: a multi-user mainframe computer system, one or more cloud computing nodes, a single-user system, or a server computer or similar device that has little or no direct user interface but receives requests from other computer systems (clients), desktop computers, portable computers, laptop or notebook computers, tablet computers, pocket computers, phones, smart watches, or any other suitable type of electronic device.
[0088] The computing device 700 generally includes various computer-readable media. Computer-readable media can be any available media that can be accessed by the computing device 700, and include volatile and non-volatile media, removable and non-removable media. As an example and not limitation, computer-readable media may include computer storage media and communication media. Computer storage media include volatile and non-volatile media, removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules or other data. Computer storage media include but are not limited to RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, cassettes, tapes, disk storage or other magnetic storage devices, or any other media that can be used to store desired information and can be accessed by the computing device 800. The computer storage medium itself does not include signals. Communication media are generally embodied as computer-readable instructions, data structures, program modules or other data in modulated data signals such as carrier waves or other transmission mechanisms, and include any information transfer media. The term "modulated data signal" refers to a signal that sets or changes one or more of its characteristics in a manner that encodes information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
[0089] Memory 12 includes computer storage media in the form of volatile and / or non-volatile memory. Memory can be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard disk drives, optical disk drives, etc. Computing device 700 includes one or more processors 14 that read data from various entities such as memory 12 or I / O components 20, and presentation components 16 present data indications to users or other devices. Exemplary presentation components include display devices, speakers, printing components, vibration components, etc.
[0090] I / O port 18 allows computing device 700 to be logically coupled to other devices including I / O assembly 20, some of which may be built-in. Illustrative components include microphones, joysticks, game pads, dish satellite reflectors, scanners, printers, wireless devices, etc. I / O assembly 20 may provide a natural user interface (NUI) for processing air gestures, sounds, or other physiological inputs generated by a user. In some instances, the input may be sent to an appropriate network element for further processing. NUI may implement any combination of speech recognition, touch and stylus recognition, facial recognition, biometric recognition, gesture recognition on and near the screen, air gestures, head and eye tracking, and touch recognition associated with the display on computing device 700. Computing device 700 may be equipped with a depth camera, such as a stereo camera system, an infrared camera system, an RGB camera system, and a combination of these, for gesture detection and recognition. In addition, computing device 700 may be equipped with an accelerometer or gyroscope that enables detection of motion.
[0091] As described above, implementations of the present disclosure relate to automatically generating a user interface or rendering one or more applications based on received contextual data about a particular user. The present invention has been described with respect to specific embodiments, which are intended to be illustrative and non-restrictive in all respects. Alternative embodiments will be apparent to those of ordinary skill in the art to which the present invention belongs without departing from the scope of the present invention.
[0092] As can be seen from the foregoing, the present invention is well adapted to achieve all of the above-mentioned objects and goals, as well as other advantages that are obvious and inherent to the system and method. It should be understood that certain features and sub-combinations are useful and can be used without reference to other features and sub-combinations. This is contemplated by the claims and is within the scope of the claims.
[0093] definition
[0094] "And / or" is an inclusive disjunction, also called a logical disjunction, and is often referred to as an "inclusive or." For example, the phrase "A, B, and / or C" means that at least one of A or B or C is true; and "A, B, and / or C" is false only if each of A, B, and C is false.
[0095] A "set" of items means that one or more items exist; at least one item must exist, but two, three, or more items may exist. A "subset" of items means that one or more items exist within a group of items that share common characteristics.
[0096] "Plurality" of an item means that there is more than one item; at least two items must be present, but there may be three, four, or more items.
[0097] "Include" and any variations (eg, includes, contains, etc.) mean, unless expressly stated otherwise, "including, but not necessarily limited to."
[0098] “User” or “Subscriber” includes, but is not necessarily limited to: (i) a single individual; (ii) an artificial intelligence entity with sufficient intelligence to act on behalf of a single individual or more than one individual; (iii) a business entity against which a single individual or more than one individual takes action; and / or (iv) any combination of one or more related “Users” or “Subscribers” acting as a single “User” or “Subscriber”.
[0099] The terms "receive," "provide," "send," "input," "output," and "report" should not be taken as indicating or implying, unless otherwise expressly specified: (i) any particular degree of directness regarding the relationship between the object and the subject; and / or (ii) the presence or absence of a set of intermediate components, intermediate actions, and / or things interposed between the object and the subject.
[0100] A "module" or "component" is any collection of hardware, firmware, and / or software that works operatively to perform a function, regardless of whether the module is: (i) in a single local proximity; (ii) distributed over a wide area; (iii) in a single proximity within a larger software code segment; (iv) located within a single software code segment; (v) located in a single storage device, memory, or medium; (vi) mechanically connected; (vii) electrically connected; and / or (viii) connected in data communication. A "sub-module" is a "module" within a "module".
[0101] The terms first (e.g., first cache), second (e.g., second cache), etc. should not be interpreted as indicating or implying an order or time sequence unless otherwise expressly indicated. Instead, they should be interpreted as distinguishing two or more elements. In some embodiments, two or more elements, although distinguishable, have the same composition. For example, the first memory and the second memory can actually be two separate memories, but both of them can be RAM devices with the same storage capacity (e.g., 4GB).
[0102] The term "cause" or "results" means that one or more systems (e.g., computing devices) and / or components (e.g., processors) can cause or help cause a particular result or effect, either in isolation or in combination with other systems and / or components. For example, a server computing device can "cause" a message to be displayed to a user device (e.g., via transmitting the message to the user device) and / or the same user device can "cause" the same message to be displayed (e.g., via a processor executing instructions and data in a display memory of the user device). Thus, one or both systems can "cause" the effect of displaying a message, either in isolation or together.
Claims
1. A computerized system comprising: one or more processors; as well as A computer storage memory having computer executable instructions stored thereon, the computer executable instructions when executed by the one or more processors implementing the following method, the method comprising: receiving a first variation of a listing and a second variation of the listing, the listing describing an item for sale in an electronic marketplace, the first variation describing a different iteration of the item relative to the second variation, wherein the first variation is a variation related to a first query and the second variation is a variation not related to the first query; generating first user activity data for the first variant and generating second user activity data for the second variant, wherein the first user activity data corresponds to a user input metric associated with the first variant, and wherein the second user activity data corresponds to a user input metric associated with the second variant; Receiving the first query at a search engine; and Based at least in part on the first user activity data relative to the second user activity data, a first search result associated with the first variant is ranked higher than a second search result associated with the second variant.
2. The system of claim 1, wherein in response to issuing a first query, first search results are presented, and wherein in response to issuing a second query different from the first query, second search results are presented.
3. The system according to claim 1, wherein the method further comprises: updating second user activity data associated with the second variant; receiving another query associated with the item; as well as Based at least in part on the update of the second user activity data, the second search result is ranked higher relative to a ranking of the second search result prior to the update.
4. The system of claim 1, wherein the first variation and the second variation comprise at least one variation from the group of variations consisting of: a size of the item, a color of the item, and a price of the item.
5. The system of claim 1, wherein the first search result is the first variation and the second search result is the second variation.
6. The system of claim 1, wherein the first search result is a listing at a first time, and wherein the second search result is a listing at a second time after the first time.
7. The system of claim 1 , wherein the listed item includes a multiple stock keeping unit (MSKU) ID, the MSKU ID indicating that there are multiple iterations of the listed item and referring to a specific inventory item in a seller's inventory or product catalog, wherein the first variation and the second variation have the same MSKU ID as the listed item.
8. A computer-implemented method comprising: receiving a first variation of a listing and a second variation of the listing, the listing describing an item for sale in an electronic marketplace, the first variation describing a different iteration of the item relative to the second variation; generating first user activity data for the first variant and generating second user activity data for the second variant, wherein the first user activity data corresponds to a user input metric associated with the first variant, and wherein the second user activity data corresponds to a user input metric associated with the second variant; receiving, at a search engine, a first query associated with the first variant; In response to receiving the first query and based on the first user activity data, ranking the listed items as search results at a first time; receiving, at the search engine, a second query associated with the second variation; as well as In response to receiving the second query and based on the second user activity data, the listed item is ranked as another search result at a second time after the first time, wherein the ranking of the listed item at the second time is different relative to the ranking of the listed item at the first time based at least in part on the second user activity data relative to the first user activity data.
9. The method of claim 8, wherein the ranking of the listed items at the first time is not based on the second user activity data, and the ranking of the listed items at the second time is not based on the first user activity data.
10. A method according to claim 8, wherein the ranking of the listed item at the first time causes the listed item to be displayed in a first position of a first search result page, and wherein the ranking of the listed item at the second time causes the listed item to be displayed in a second position of a second search result page below the first position.
11. The method of claim 8, wherein the first user activity data comprises: sales of the first variant, views of the first variant, and impressions of the first variant, and wherein the ranking of the listed item at the second time is different relative to the ranking of the listed item at the first time based on the following: sales of the first variant are higher relative to the second variant, views of the first variant are higher relative to the second variant, or impressions of the first variant are higher relative to the second variant.
12. The method according to claim 10, further comprising: updating the second user activity data of the second variation; receiving another query associated with the second variant; as well as Based at least in part on the update of the second user activity data, the listed item is ranked as another search result at a third time after the second time, wherein the ranking of the listed item at the third time is higher than the ranking of the listed item at the first time and the second time.
13. The method according to claim 11, further comprising: receiving a second listed item and a third variation describing an iteration of the second listed item relative to a fourth variation of the second listed item; generating third user activity data for the third variant, and generating fourth user activity data for the fourth variant; receiving a request for a particular item associated with the first variant and the third variant, but not associated with the second variant or the fourth variant; as well as The listed item is ranked higher than the second listed item on a search results page based on the request and the first user activity data and the third user activity data.
14. The method of claim 13, wherein the ranking of the listed item over the second listed item is not based on the second user activity data and the fourth user activity data.
15. One or more computer storage media having computer executable instructions embodied thereon, the computer executable instructions, when executed by one or more processors, causing the one or more processors to perform the following method, the method comprising: receiving a first listed item and a first variation describing an iteration of the first listed item relative to a second variation of the first listed item, wherein the first listed item describes a first item for sale in an electronic marketplace, wherein the first variation is a variation that is relevant to a query and the second variation is a variation that is not relevant to the query; receiving a second listing and a third variation describing an iteration of the second listing, wherein the second listing describes a second item for sale in the electronic marketplace; generating first user activity data for the first variant and generating third user activity data for the third variant, wherein the first user activity data corresponds to a user input metric associated with the first variant, and wherein the third user activity data corresponds to a user input metric associated with the third variant; receiving the query associated with the first variant and the third variant; and The first listed item is ranked higher than the second listed item based on the query and the first user activity data relative to the third user activity data.
16. The computer storage medium of claim 15, wherein the method further comprises generating second user activity data for the second variant, wherein the second user activity data corresponds to a user input metric associated with the second variant, wherein ranking the first listed item higher than the second listed item is not based on the second user activity data.
17. The computer storage medium of claim 16, wherein the query corresponds to a request for items including attributes that match the first variant and the third variant.
18. The computer storage medium of claim 15, wherein the ranking of the first listed item over the second listed item is based at least in part on determining that more user activity data exists for the first variant relative to the third variant by comparing the first user activity data to the third user activity data.
19. The computer storage medium of claim 15, wherein the first listed item includes a multiple stock keeping unit (MSKU) ID, the MSKU ID indicating that there are multiple iterations of the first listed item and referring to a specific inventory item in a seller's inventory or product catalog, wherein the first variation and the second variation have the same MSKU ID as the first listed item.
20. The computer storage medium of claim 15, further comprising causing the first listing to be displayed in a more prominent position on a search results page relative to the second listing based on the ranking.
Citation Information
Patent Citations
Methods and systems for deriving demand metrics used in ordering item listings presented in a search results page
US20100262596A1