In online shopping, customers start anew each time they enter a website, unless they have items stored in an electronic shopping cart. Additionally, customers have difficulty comparing products while online shopping. The shopping cart does little in assisting the customers in performing a product comparison. Thus, the overall online shopping experience is inefficient and puts an unnecessary burden on the customer.
Displaying past searches of a user for comparison results in user frustration when insights into user-selectable product options are not displayed. For example, displaying products to a user without any insights into user sizing frustrates a user that selects the product only to find that it is not available in the desired size.
A user interface (UI) feature, as disclosed herein, assists users in comparing items and making purchase decisions. One or more shopping missions are identified and consolidated so that a user easily compares competing vendors for previously viewed products. Additionally, user-selectable product options (e.g., size, color, etc.) are automatically pre-selected based upon past online shopping behavior and the availability of such options is displayed in the comparison so that the user makes meaningful shopping decisions.
A shopping mission module first identifies a user mission based upon their shopping actions. The module then automatically builds a comparison set of the products that the user has viewed that are within the identified mission. A user behavior module is used to determine particular user-selectable product options that the user is interested in and highlights the options of each item that fulfills the user's inferred decision criteria. Items that do not satisfy the user's options are also be displayed. For example, if a user is on a mission for “black running shoes in size 10”, the UI highlights each pair considered whether the shoes meet the criteria of “black” and/or “size 10”. Various parameters are used to determine the user intent including past searches, click history, and purchases.
The UI feature described herein is accessible for users via an overlay that slides in from an edge of the screen. In some embodiments, no new page load is needed, leaving the user's current page and place within the browser as is, but providing an additional viewing pane of the browser. Users collapse the view of their current shopping mission and/or scroll down to view comparison sets of other missions not yet completed. If no active mission is identified, the default view is to display the most recent, incomplete shopping missions and the top identified products in the comparison set for each. By storing mission progress, users retain their consideration sets for incomplete missions, even if they close the application to return at a later date.
The UI also provides aspects of the product detail pages such as pricing details, or configuration availability related to the mission's decision criteria. Thus, attributes of the detail pages of a product that a user previously showed interest in are illustrated to aid the user in shopping decisions.
The network 426 is any type and/or form of network and includes any of the following: a point-to-point network, a broadcast, local area or wide area network, a telecommunications or data communication network, a computer network, an ATM (Asynchronous Transfer Mode) network, a SDH (Synchronous Digital Hierarchy) network, a SONET (Synchronous Optical Network) network, a wireless network and a wired network. The network also includes a wireless link, such as a satellite band or an infrared channel. The topology of the network is a bus, star, or ring network topology.
The browser application 412 allows the client devices 410 to interact with the one of the server computers 430 within the marketplace provider to search the catalog 420. The application 412 provides access to any website that supports user interaction, including social networking sites, online retailers, informational sites, blog sites, search engine sites, news and entertainment sites, and the like. The client device 410 is any type of computing device such as, but not limited to, a mobile phone, a smart phone, a personal digital assistant (PDA), a laptop computer, a desktop computer, a thin-client device, a tablet PC, an electronic book (e-book) reader, etc.
In one illustrative configuration, the server computers 430 include at least one memory 432 and one or more processors 440. The processors 440 are implemented in hardware, computer-executable instructions, firmware, or combinations thereof. Computer-executable instruction or firmware implementations of the processor(s) 440 includes computer-executable or machine-executable instructions written in any suitable programming language to perform the various functions described.
The memory 432 stores program instructions that are loadable and executable on the processor(s) 440, as well as data generated during the execution of these programs. The memory 432 is volatile (such as RAM) and/or non-volatile (such as ROM, flash memory, etc.). Particular types of memory include SRAM, or DRAM. The server computers 430 include additional storage 442, which includes removable storage and/or non-removable storage. The additional storage 442 includes magnetic storage, optical disks, etc. The memory 432, the additional storage 442, both removable and non-removable, are all examples of computer-readable storage media. For example, computer-readable storage media includes volatile or non-volatile, removable or non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Additional types of computer storage media that are present in the server computers 430 include PRAM, SRAM, DRAM, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, DVD or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which is used to store the desired information and which is accessed by the server computers 430.
The memory 432 includes an operating system 450, the catalog 420 (which is located on one or more separate drives) and/or one or more application programs or services for implementing the features disclosed herein including one or more of an interaction module 452, a user module 454, electronic marketplace module 456, a clustering module 458, a shopping mission module 460, and/or a ranking module 462. The modules are software modules, hardware modules, or a combination thereof. If the modules are software modules, the modules are embodied as processor-executable instructions stored on a computer readable medium and processed by a processor in any of computer systems described herein. The interaction module 452 is programmed to determine or receive a history of interactions between a user and one or more network pages associated with an electronic marketplace. The history of interactions includes various information, including a time of an interaction, an item presented on at least one network page, an identification of the interaction performed, where a user clicked on a network page (e.g., using clickstream analysis, etc.), interactions performed by the user to view additional detail about an item or merchant, item information (e.g., description, title, image of an item, etc.), and the like. The interaction module 452 is also configured to determine a most recent event from the history of interactions based in part on the time of the interaction.
The user module 454 is programmed to determine data associated with a user or merchant that interacts with an electronic marketplace. This includes accessed network pages or items, name, location, items purchased or sold, and the like. The user module 454 is also configured to identify, update, or create a profile for a user that includes a user's state with respect to an identified shopping mission (e.g., complete/incomplete, low/high depth, etc.). The profile is used in part to determine which information about items are presented to the user through the electronic marketplace and/or is managed online.
The electronic marketplace module 456 is configured to enable one or more network pages for display. The network pages are configured to provide items, lists of items, search tools to find items, and tools to assist merchants in offering the items to users. The electronic marketplace includes a plurality of merchants that offer the item (e.g., the same item, different items, etc.) through the electronic marketplace.
The clustering module 458 is programmed to create or identify a cluster. The cluster includes one or more events associated with a user from the user's history of interactions. The cluster is limited to events that are of a same category as the most recent event, based in part on item attributes associated with the item presented on the at least one of the one or more network pages. The clustering module 458 also performs one or more of the following: associates one or more events with a cluster, associates an event with a cluster if the difference between the event and cluster is less than a threshold, instantiates a clustering process, or other performs other methods of associating an event with a cluster based in part on the similarities between the two.
The shopping mission module 460 analyzes an event associated with the cluster to form a mission associated with the cluster and whether the shopping mission is complete, ongoing, or incomplete (e.g., by looking at interactions associated with the shopping mission in chronological order, by determining whether the user will likely purchase an item associated with the shopping mission in the future using other users' interactions who participated in similar shopping missions in the past, etc.). The shopping mission module 460 determines content to provide to the user based at least in part on a state of the user with respect to the identified shopping mission, perform a hashing analysis, identify the shopping mission depth associated with the user, and determine a probabilistic model or predictive model (e.g., using a heuristic classification).
The ranking module 462 ranks shopping missions associated with the user. For example, a reminder is provided to the user for a particular shopping mission that is incomplete. To avoid annoying the user (or for other reasons), the shopping mission is ranked lower than other incomplete shopping missions. In some examples, the shopping mission associated with the notification corresponds with a higher decay value than other shopping missions, so that the ranking of the shopping mission is lower based in part on the decay value.
In some embodiments, a natural language processing (NLP) module 470 parses searches by a user and determine which part of the search terms are related to products in the catalog 420 and which terms are related to user-selectable product options that are positioned on detail pages of the product. For example, a search query of “running shoes, size 8” is parsed into “running shoes” and “size 8”. The term “running shoes” is searched for in the catalog 420 and determined to be a category of products. The term “size 8” is searched in the catalog and determined to be on the detail pages of products wherein the detail pages include product options that a user selects. Thus, a determination is made when parsing a search, which terms match catalog categories and which terms match product options.
The user behavior module 472 uses the results of the NLP module 470 as one of its inputs to determine product search behavior for a user. As described above, the “size 8” parameter indicates a user behavior that assists in pre-selecting product options when the products are redisplayed. The term “product options” is meant to indicate that a user wanting to purchase a product has to select one of multiple available options to complete the purchase. The user behavior module 472 uses various inputs based on past shopping behavior to make pre-selection determinations for the user from the available product options. Thus, past search queries parsed by the NLP module 470 are one input. Other inputs include click patterns of the user on like attributes. Thus, if the user repeatedly selects “size 8” from the product options, then that is a behavioral characteristic that is used in pre-selecting product options in the future. Past purchase behavior is another potential input. Thus, product options that a user has selected in completed purchases is used to determine user behavior. For example, if the user previously purchased running shoes and selected size 8, then the previous selection of like product options is an indicator of future selections. Still further, the user provides explicit preferences that should be pre-selected. For example, if the user always selects size 8, then the user enters their preferences for preselection to their account.
A real-time attributes module 480 obtains purchase-related attributes that changes frequently and provide updated information as to these attributes. As one example, shipping price and delivery scheduling (number of days) is obtained once a webpage is requested to be viewed and the real-time attributes is transmitted to a display module 490 that generates the display of a customized webpage for display on the client device 410. Other real-time attributes likewise be gathered and used for display. The real-time attributes are attributes that do not have user-selectable options.
Further details of modules within the memory 432 and details of clustering is found in U.S. Pat. No. 10,311,499, which is incorporated herein by reference.
With reference to
A computing system having additional features. For example, the computing environment 1000 includes storage 1040, one or more input devices 1050, one or more output devices 1060, and one or more communication connections 1070. An interconnection mechanism (not shown) such as a bus, controller, or network interconnects the components of the computing environment 1000. Typically, operating system software (not shown) provides an operating environment for other software executing in the computing environment 1000, and coordinates activities of the components of the computing environment 1000.
The tangible storage 1040 are be removable or non-removable, and includes magnetic disks, magnetic tapes or cassettes, CD-ROMs, DVDs, or any other medium which is used to store information in a non-transitory way and which is accessed within the computing environment 1000. The storage 1040 stores instructions for the software 1080 implementing one or more innovations described herein.
The input device(s) 1050 are be a touch input device such as a keyboard, mouse, pen, or trackball, a voice input device, a scanning device, or another device that provides input to the computing environment 1000. The output device(s) 1060 are be a display, printer, speaker, CD-writer, or another device that provides output from the computing environment 1000.
The communication connection(s) 1070 enable communication over a communication medium to another computing entity. The communication medium conveys information such as computer-executable instructions, audio or video input or output, or other data in a modulated data signal. A modulated data signal is a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media uses an electrical, optical, RF, or other carrier.
Although the operations of some of the disclosed methods are described in a particular, sequential order for convenient presentation, it should be understood that this manner of description encompasses rearrangement, unless a particular ordering is required by specific language set forth below. For example, operations described sequentially are in some cases be rearranged or performed concurrently. Moreover, for the sake of simplicity, the attached figures are not show the various ways in which the disclosed methods are used in conjunction with other methods.
Any of the disclosed methods are implemented as computer-executable instructions stored on one or more computer-readable storage media (e.g., one or more optical media discs, volatile memory components (such as DRAM or SRAM), or non-volatile memory components (such as flash memory or hard drives)) and executed on a computer (e.g., any commercially available computer, including smart phones or other mobile devices that include computing hardware). The term computer-readable storage media does not include communication connections, such as signals and carrier waves. Any of the computer-executable instructions for implementing the disclosed techniques as well as any data created and used during implementation of the disclosed embodiments are stored on one or more computer-readable storage media. The computer-executable instructions are part of, for example, a dedicated software application or a software application that is accessed or downloaded via a web browser or other software application (such as a remote computing application). Such software is executed, for example, on a single local computer (e.g., any suitable commercially available computer) or in a network environment (e.g., via the Internet, a wide-area network, a local-area network, a client-server network (such as a cloud computing network), or other such network) using one or more network computers.
For clarity, only certain selected aspects of the software-based implementations are described. Other details that are well known in the art are omitted. For example, it should be understood that the disclosed technology is not limited to any specific computer language or program. For instance, aspects of the disclosed technology are implemented by software written in C++, Java, Perl, any other suitable programming language. Likewise, the disclosed technology is not limited to any particular computer or type of hardware. Certain details of suitable computers and hardware are well known and need not be set forth in detail in this disclosure.
It should also be well understood that any functionality described herein is performed, at least in part, by one or more hardware logic components, instead of software. For example, and without limitation, illustrative types of hardware logic components that are used include Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc.
Furthermore, any of the software-based embodiments (comprising, for example, computer-executable instructions for causing a computer to perform any of the disclosed methods) are uploaded, downloaded, or remotely accessed through a suitable communication means. Such suitable communication means include, for example, the Internet, the World Wide Web, an intranet, software applications, cable (including fiber optic cable), magnetic communications, electromagnetic communications (including RF, microwave, and infrared communications), electronic communications, or other such communication means.
Clustering features are gathered for current context in the clustering module 1120. These features include the following: co-viewed products (based on aggregate user behavior) for purchased and clicked items; clicked products (based on aggregate user behavior) for search queries; searches (based on aggregate user behavior) which lead to purchased and clicked items; co-searched searches (based on aggregate user behavior) for searches; product attributes for purchased and clicked items; product attributes for products subsequently interacted with for search queries (based on aggregate user behavior); product attributes based on natural language understanding using the natural language understanding module 1122, which maps queries to product attributes (e.g., “red dress”=>(attributeType:color, attributeValue:RED[id=1234]), (attributeType:productCategory, attributeValue:DRESS[id=2345])).
These features serve as a means to cluster user behaviors. Given a feature vector for each user behavior (comprised of features described above), a similarity metric is constructed between any two user behaviors. The similarity metric is unsupervised or supervised (i.e., a similarity metric learned based on training data). An algorithm clusters behaviors based on the similarity metric between items. The output includes a clustering N clusters of M user behaviors (typically, M is much less than N). Each cluster represents a distinct shopping mission, which roughly corresponds to shopping for a particular type of product (e.g., “television”, “dress”, “men's dress shirt”, etc.). To identify the most relevant mission for the current context, the current context is included in the clustering; the cluster in which the current user behavior (e.g., search query, click, purchase, cart add, etc.) is placed is identified as the “current mission”.
The product attribute selection relates to user intent identification and performs the following functions. Given N clusters, attributes are identified that are important to a user for a particular mission. For a given cluster, candidate attributes are identified through the following methods:
1) for search queries in the cluster, natural language understanding is used to understand what attributes the user has specified in their query;
2) given the productCategory identified for the mission (the clusters are of productCategories), user preferences are identified for that category using the user preference database. These preferences are implicit or explicit.
3) given a number of user events (e.g., clicks) for the mission, along with a product attribute database, common attributes can be identified amongst the clicked items (e.g., brand, size, color, etc.)
Given these candidate attributes, the attributes can be selected which are most representative of the user's mission through one or more of the following methods performed in an attribute selection module 1134:
1) Select the types of attributes based on their importance in purchasing a product. The types are selected based on aggregate behavior (for instance, for apparel, size and brand are selected), with personalized attribute types selected based on what the user has expressed through their searches. For example, a search for a “red dress under $50” would mean “price” is type of attribute which is selected.
2) Define constraints on the attribute type based on all information about the user. For instance, for a given type of attribute (e.g., size), identify if the user has specified a constraint through their behaviors. For example, the user might have searched for “running shoes size 10” or an implicit preference is identified based on previous purchases (the user has purchased 5 pairs of size 10 shoes). For a given type of attribute, a constraint (for example, size=10 or price <=$50) is indicated. In cases where there are conflicts between indicated constraints (for example, user has a history of purchasing size 11 shoes but searches for “running shoes size 10”), a conflict resolution algorithm is specified to select the appropriate constraint for the context. Two example methods include the following:
In a module 1136, given the selected types of attributes and the constraints for each type of attribute, each product in the cluster can be evaluated as to whether it meets the constraints for that type. Constraints can be evaluated by looking up a products attribute values in the product attribute database.
To limit online latency, computation is restricted to the mission which is clustered to the current context. Product attributes selected for other missions are retrieved from an online cache. After updating of the current mission, the mission with selected attributes is cached. Updates of missions and selected attributes occur if there are subsequent user behaviors clustered to the mission.
Given N clusters, each with (a) selected attribute constraints and (b) identification of whether each product meets those constraints, the clusters are displayed to users. Each cluster is identified by the product category of the cluster. For each product in the cluster, the attributes for that product are identified as meeting or not meeting the desired user intent. Since the current context has also been clustered, the rendering system 1150 is elected to display only the cluster of products which is relevant to the current context.
The disclosed methods, apparatus, and systems should not be construed as limiting in any way. Instead, the present disclosure is directed toward all novel and nonobvious features and aspects of the various disclosed embodiments, alone and in various combinations and subcombinations with one another. The disclosed methods, apparatus, and systems are not limited to any specific aspect or feature or combination thereof, nor do the disclosed embodiments require that any one or more specific advantages be present or problems be solved.
In view of the many possible embodiments to which the principles of the disclosed invention are be applied, it should be recognized that the illustrated embodiments are only examples of the invention and should not be taken as limiting the scope of the invention. We therefore claim as our invention all that comes within the scope of these claims.