1. Field of the Invention
The present invention relates generally to enhancing product searches on websites, and more particularly, to systems, methods, and computer-readable storage medias that enhance online product searches through retail business process awareness.
2. Description of the Related Art
Many consumers desire to order items or products remotely, e.g., on-line, through the Internet, using a specially designed application or app on a personal computer or mobile device, such as a tablet or cell phone. The consumer enters the name of the product in a search query on the app and a search engine of the retailer presents search results of selected products to the personal computer or mobile device of the consumer.
In addition, known search engines may sort the selected products based on product ranking. Search engines take relevance into account. Known search engines are also known for doing well for search queries and products where they have sufficient user interaction/click logs, however, they face difficulties for products for which they have no history. Search engine's notion of relevance may diverge significantly from consumer notion of relevance and the sorted lists do not display products that are relevant to the consumers needs.
Natural language search is the glue connecting retailers and consumers in e-commerce. It provides consumers a way to find (retrieve/seek/discover) products with minimum effort/time and retailers a lens into consumer priorities.
Demand forecasting product inventory and product distribution planning are integral components of supply chain optimization and economies of scale in retailing. They are key enablers of everyday low cost/operational efficiency. Large pre-orders and pre-purchases also improve manufacturers' cash on hand/liquidity and reduce costs of production.
However, product searches on websites suffer from the disadvantage that some products that are promising may not be presented in the search results to the consumer. This may be due to the language inputted into the search query or because the promising products have no user interaction data are from new brands/in new categories/are completely novel and are not ranked high enough to be presented in the search results to the consumer.
It is, therefore, desirable to provide a new system and method which enhances online product searches in an e-commerce marketplace for a large retailer. It is also desirable to provide a new system and method that automates ways to augment online learning within an online product search with business process information. It is further desirable to provide a new system and method that can acquire new knowledge about a search query or product and exploit them to improve product ranking. Thus, there is a need in the art to provide a system that enhances online product searches through retail business process awareness accessed by the consumer and method of using same that meets at least one of these desires.
In different embodiments of the present invention, systems, methods, and computer-readable storage medias enhance online product searches through retail business process awareness accessed by a consumer via a website/app.
In one embodiment, a system includes a computer system having a server configured to receive a product search query. The server is configured to receive data on products, to compute product insights on the products, to evaluate the product insights, to mark those product insights that need validation, to output the product insights that need validation, to rank the products trading off relevance with testing promising products, and to output a mix of relevant and promising products as search results to a user device of a user.
In addition, the system also includes a recalibration module (validation) that infers invalid product hints based on (lack of) user interaction on products and provides feedback to the retailer.
In another embodiment, a method includes the steps of receiving a product search query, receiving data on products, computing product insights on the products, evaluating the product insights, marking those product insights that need validation, outputting the product insights that need validation, ranking the products trading off relevance with testing promising products, and outputting a mix of relevant and promising products as search results to a user device of a user.
In addition, the method also includes the step of vetting out invalid product insights based on user interactions and tracing the invalid product insights back to business actions, thereby providing feedback for improving a business cycle.
In yet another embodiment, one or more non-transitory computer-readable storage media, having computer-executable instructions embodied thereon are provided. When executed by at least one processor, the computer-executable instructions cause the processor to receive a product search query, receive data on products, compute product insights on the products, evaluate the product insights, mark those product insights that need validation, output the product insights that need validation, rank the products trading off relevance with testing promising products, and output a mix of relevant and promising products as search results to a user device of a user.
One advantage of the present invention is that a system, method, and non-transitory computer-readable storage media is provided that augments online learning within an online product search with business process information, e.g., inventory planning, for products heavily marketed, but not doing well. Another advantage of the present invention is that the system, method, and non-transitory computer-readable storage media incorporates online reinforcement learning that provides a framework to explore/exploit where one can probe and acquire new knowledge about product utilities (query, product) and exploit them to improve product ranking. Yet another advantage of the present invention is that the system, method, and non-transitory computer-readable storage media allows testing, validating and reinforcing “right” products and improve overall effectiveness of a search for consumers and retailers.
Other features and advantages of the present invention will be readily appreciated, as the same becomes better understood, after reading the subsequent description taken in conjunction with the accompanying drawings.
Non-limiting and non-exhaustive embodiments of the present invention are described with reference to the following figures, wherein like reference numerals refer to like parts throughout the various views unless otherwise specified.
Corresponding reference characters indicate corresponding components throughout the several views of the drawings. Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of various embodiments of the present invention. Also, common but well-understood elements that are useful or necessary in a commercially feasible embodiment are often not depicted in order to facilitate a less obstructed view of these various embodiments of the present invention.
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one having ordinary skill in the art that the specific detail need not be employed to practice the present invention. In other instances, well-known materials or methods have not been described in detail in order to avoid obscuring the present invention.
Reference throughout this specification to “one embodiment”, “an embodiment”, “one example” or “an example” means that a particular feature, structure or characteristic described in connection with the embodiment or example is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment”, “in an embodiment”, “one example” or “an example” in various places throughout this specification are not necessarily all referring to the same embodiment or example. Furthermore, the particular features, structures or characteristics may be combined in any suitable combinations and/or sub-combinations in one or more embodiments or examples. In addition, it should be appreciated that the figures provided herewith are for explanation purposes to persons ordinarily skilled in the art and that the drawings are not necessarily drawn to scale.
Embodiments in accordance with the present invention may be embodied as an apparatus, method, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.), or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “module” or “system.” Furthermore, the present invention may take the form of a computer program product embodied in any tangible media of expression having computer-usable program code embodied in the media.
Any combination of one or more computer-usable or computer-readable media (or medium) may be utilized. For example, a computer-readable media may include one or more of a portable computer diskette, a hard disk, a random access memory (RAM) device, a read-only memory (ROM) device, an erasable programmable read-only memory (EPROM or Flash memory) device, a portable compact disc read-only memory (CDROM), an optical storage device, and a magnetic storage device. Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages.
Embodiments may also be implemented in cloud computing environments. In this description and the following claims, “cloud computing” may be defined as a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned via virtualization and released with minimal management effort or service provider interaction, and then scaled accordingly. A cloud model can be composed of various characteristics (e.g., on-demand self-service, broad network access, resource pooling, rapid elasticity, measured service, etc.), service models (e.g., Software as a Service (“SaaS”), Platform as a Service (“PaaS”), Infrastructure as a Service (“IaaS”), and deployment models (e.g., private cloud, community cloud, public cloud, hybrid cloud, etc.).
The flowchart and block diagrams in the flow diagrams illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should be appreciated that each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, may be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. These computer program instructions may also be stored in a computer-readable media that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable media produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
Several (or different) elements discussed below, and/or claimed, are described as being “coupled”, “in communication with”, or “configured to be in communication with”. This terminology is intended to be non-limiting, and where appropriate, be interpreted to include without limitation, wired and wireless communication using any one or a plurality of a suitable protocols, as well as communication methods that are constantly maintained, are made on a periodic basis, and/or made or initiated on an as needed basis. The term “coupled” means any suitable communications link, including but not limited to the Internet, a LAN, a cellular network, or any suitable communications link. The communications link may include one or more of a wired and wireless connection and may be always connected, connected on a periodic basis, and/or connected on an as needed basis.
The disclosure particularly describes how an online product search for a retailer is enhanced through retail business process awareness to allow promising products to be presented to a consumer for a predefined user activity such as, for example, purchasing a product via a website/app. Particularly, the present disclosure describes how a system provides a website/app to a consumer to allow the consumer to conduct an online product search to purchase and/or order products via the website/app, to augment online learning within the product search with hints from business process information, and to present promising products within the website/app to the consumer that facilitate inducing the consumer to purchase a product via the website/app. In addition, the disclosure describes how to vet out inaccurate product insights, trace them back to business actions, and alert retailers/planners/marketers to refine strategies improving the business cycle.
By generating promising products based on the data included in the search data and displaying product lists based on the promising products, the system transforms the search data into relevant product information and generates and displays product listings that are more relevant to the needs of the consumer over known search engines and that increase the likelihood of a consumer purchasing a product displayed in the list, thus increasing the overall revenue being generated by the website/app. The system tests product insights on users, learns from user actions on promising products and vets out suboptimal products, improving search relevance in the aggregate. Users in testing epochs help the system improve and do better for everyone else. For example, the system provides relevant and promising product listings without requiring the consumers to input filter queries and/or product categories, thus reducing the effort required by the consumer to retrieve the desired products from the website.
With reference to the FIGS. and in operation, the present invention provides a system 10, method and computer product media that facilitates an enhanced online product search through retail business process awareness when scoring products on a website/app.
Referring to
Some or all of the server 12 and user devices 14 may communicate with one another by means of a network 18. The network 18 may be embodied as a peer-to-peer wireless connection between devices, a connection through a local area network (LAN), WiFi network, the Internet, or any other communication medium or system.
Referring to
The computing device 20 includes one or more processor(s) 22, one or more memory device(s) 24, one or more interface(s) 26, one or more mass storage device(s) 28, one or more Input/Output (I/O) device(s) 30, and one or more display device(s) 32, all of which are coupled to one or more bus(es) 34. The processor(s) 22 include one or more processors or controllers that execute instructions stored in memory device(s) 24 and/or mass storage device(s) 28. The processor(s) 22 may also include various types of computer-readable media, such as cache memory.
The memory device(s) 24 include various computer-readable media, such as volatile memory (e.g., random access memory (RAM) 36) and/or nonvolatile memory (e.g., read-only memory (ROM) 38). The memory device(s) 24 may also include rewritable ROM, such as Flash memory.
The mass storage device(s) 28 include various computer readable media, such as magnetic tapes, magnetic disks, optical disks, solid-state memory (e.g., Flash memory), and so forth. As illustrated in
The I/O device(s) 30 include various devices that allow data and/or other information to be input to or retrieved from the computing device 20. Example I/O device(s) 30 include cursor control devices, keyboards, keypads, microphones, monitors or other display devices, speakers, printers, network interface cards, modems, lenses, CCDs or other image capture devices, and the like.
The display device(s) 32 include any type of device capable of displaying information to one or more users of the computing device 20. Examples of the display device 32 include a monitor, display terminal, video projection device, display, graphical user interface (GUI), and the like.
The interface(s) 26 include various interfaces that allow the computing device 20 to interact with other systems, devices, or computing environments. The interface(s) 26 may include one or more user interface 44 such as GUIs. The interface(s) 26 may include one or more network interfaces 46. Example interface(s) 26 may include any number of different network interfaces 46, such as interfaces to local area networks (LANs), wide area networks (WANs), wireless networks, and the Internet. The interface(s) 26 may also include one or more peripheral device interfaces 48 such as interfaces for printers, pointing devices (mice, track pad, etc.), keyboards, and the like.
The bus(es) 34 allow the processor(s) 22, memory device(s) 24, interface(s) 26, mass storage device(s) 28, I/O device(s) 30, and display(s) 32 to communicate with one another, as well as other devices or components coupled to the bus 34. The bus 34 represents one or more of several types of bus structures, such as a system bus, PCI bus, IEEE 1394 bus, USB bus, and so forth.
For purposes of illustration, programs and other executable program components are shown herein as discrete blocks, although it is understood that such programs and components may reside at various times in different storage components of the computing device 20, and are executed by the processor(s) 22. In some embodiments, the systems and procedures described herein can be implemented in hardware, or a combination of hardware, software, and/or firmware. For example, one or more application specific integrated circuits (ASICs) can be programmed to carry out one or more of the systems and procedures described herein.
For clarity in discussing the various functions of the system 10, multiple computers and/or servers are discussed as performing different functions. These different computers (or servers) may, however, be implemented in multiple different ways such as modules within a single computer, as nodes of a computer system, etc. . . . The functions as performed by the system 10 (or nodes or modules) may be centralized or distributed in any suitable manner across the system 10 and its components, regardless of the location of specific hardware. Furthermore, specific components of the system 10 may be referenced using functional terminology in their names. The function terminology is used solely for purposes of naming convention and to distinguish one element from another in the following discussion. Unless otherwise specified, the name of an element conveys no specific functionality to the element or component.
The server 12 is configured to host a website that is accessible by a user via one or more user computing devices 20 or user devices 14. The server 12 retrieves and stores web pages (shown in
Referring to
The system 10 also includes a ratings module 76 for providing ratings of products by internal consumers. For example, the ratings may be ratings of the products provided by the consumers or ratings of search results by evaluators. The system 10 further includes a product signals or features module 78. For example, the signals module 78 combines product features generated from different sources for use in search ranking. The signals module 78 is configured to receive data from the databases 50, 54, 56, 62, 66, 68, and 76. The signals module 78 includes a product insights module 80 to generate insights of products. For example, an insight of a product may be a hypothesis that for a particular product query, few specific products would get bought frequently. The product insights module 80 receives inputs of marketing data from the database 62 and competitive pricing data from the database 66. The product insights module 80 also receives inputs of planning and logistics data from the inventory management system database 56, user website activity data from the database 50, and product order data from the order management system database 54. The product insights module 80 provides product hints to be described.
Referring to
The system 10 also includes a search engine server or module 96 to perform a product search. In the illustrated embodiment, the search engine module 96 is configured to receive a product search request from the server 12 including one or more search terms, and generate search data including a plurality of product records as a function of the search terms. For example, in one embodiment, the search engine module 96 may initiate a search algorithm based on a Boolean model to search product records contained in the database based on search terms received from the user. The search engine module 96 generates a search data set including product records matching the search criteria, and generates a relevance score associated with each product record included in the search data set. In one embodiment, the relevance score may be determined based on statistical information, including, but not limited to the number of product records in the database, the frequency with which the search terms appear in the database, and the frequency with which the search term appears in the product record. The relevance of a returned search record may be determined based on the corresponding relevance score and the relevance scores of the other product records in the search data set, wherein product records having a higher relevance score are more relevant to the search criteria. For example, in one embodiment, the product records may include a product description including one or more terms associated with the corresponding product. The search engine module 96 may generate a relevance score associated with the product record as a function of the number of terms included in the product description that match the search terms included with the product search request. In addition, the relevance score may be within a range between about 0.01 to 1.0, with a relevance score of 1.0 being indicative of the most relevant product record. Many variations to the above described method of determining a relevance score associated with a search request fall within the scope of the present invention.
In the illustrated embodiment, the search engine module 96 generates the search data in response to the user's product search request and transmits the search data to the sorting server for use in generating products lists being displayed to the user via one or more search results webpage. In one embodiment, the search engine module 96 generates the search data including a plurality of product records. For example, each product record may include a product category value associated with the product category, a price value associated with the price data category, and/or a search relevance score value associated with the relevance score data category.
After the product insights are evaluated and those needing additional testing identified by the module 82, the signals module 78 provides an output of product hints and cost of hint previously described to the search engine module 96. The search engine module 96 includes a search runtime module 98 and a product index module 100 to be described. As illustrated in
Referring to
The product index 100 provides input to the product base search module 104 and compute additional signals block 118 to be described of the rerank module 102. The base search module 104 and additional signals block 118 provide input to an accumulate signals block 116 to be described of the rerank module 102. In the rerank module 102, block 116 provides input to relevance sort block 114 and block 114 sorts the relevance of the promising products based on the inputs of accumulated signals from block 116. Block 114 provides input to block 112 of promising products in recall. Block 114 provides input of the promising products from recall to the interleaving promising products of block 106. For example, block 112 recalls promising products that are ranked higher. It should be appreciated that block 106 interleaves promising products with ranked products. It should also be appreciated that a method and system for reranking search results in a product search engine is disclosed in U.S. Patent Application Publication No. 2014/0297630 to Cao et al., the entire disclosure of which is hereby expressly incorporated by reference.
For example, in one embodiment, the sorting server may generate a ranked list of product values based on a number of times each search query term appears in the product data, and select the sorting value as a function of the ranked list of product values. The sorting server generates a ranked list of product values and determines the product values having the highest frequency of appearance in the search data. The sorting server may select a first sorting value indicative of the product value having the highest appearance frequency, and generate the sorted group including product records having corresponding product values matching the sorting value.
In addition, the sorting server may also select a set of sorting values based on the ranked list of product values, and generate the sorted group including product records having corresponding product values matching at least one sorting value included in the set of sorting values. For example, the sorting server may select one or more product values having high appearance frequencies and generate the sorted group including product records having corresponding product values matching the selected product values. The sorting server may also select the group of sorting values including a predefined number of product values.
In one embodiment, the sorting server may select the sorting value including one or more search relevance score values associated with the relevance score data and generate the sorted group as a function of the selected relevance score values. In one embodiment, the sorting server may generate the sorted group including product records having relevance values that are equal to or greater than the sorting value. In another embodiment, the sorting server may select the sorting value including a range of relevance values and generate the sorted group including product records having corresponding relevance values that are within the selected range of relevance values.
For example, in one embodiment, the product records may include search relevance score values within a range between about 0.01 and 1.0. The sorting server may select the sorting value including a search relevance score value such as, for example, a 0.6 relevance score. The sorting server may then generate the sorting group including the product records having a corresponding search relevance score values that is greater than or equal to the sorting value of 0.6 relevance score.
Referring again to
Referring to
In the base search module 104, block 130 receives the rank of the product from block 120 and determines the popularity of the product. For example, the popularity of the product may be how many times the product has been viewed or purchased. From block 130, block 132 determines the product performance and block 134 determines the product demand. For example, product performance may be how much of the product has been ordered and product demand may be how much the product has been shown to the user. Blocks 132 and 134 provide output to the index look-up 137. In addition, block 136 receives the rank of the product from block 120 and determines whether the rank of the product is promising and needs validation. Block 136 provides output of the product rank to the index look-up 137. It should be appreciated that the product index 100 is a database of product records or documents stored and accessed by the index look-up 137. It should also be appreciated that the index look-up 137 and product index 100 are known in the art.
Referring back to
Referring to
After block 108, the method 100 further includes outputting a mix of relevant and promising products as search results to a user device 14 of a user in block 116. For example, outputting, by the server 12, a mix of relevant and promising products based on the interleaving and/or ranking of the products as search results to the user device 14 of the user or consumer for display. The method then ends in block 118.
Referring to
A controller, computing device, server or computer, such as described herein, includes at least one or more processors or processing units and a system memory (see above). The controller typically also includes at least some form of computer readable media. By way of example and not limitation, computer readable media may include computer storage media and communication media. Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology that enables storage of information, such as computer readable instructions, data structures, program modules, or other data. Communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Those skilled in the art should be familiar with the modulated data signal, which has one or more of its characteristics set or changed in such a manner as to encode information in the signal. Combinations of any of the above are also included within the scope of computer readable media.
The order of execution or performance of the operations in the embodiments of the invention illustrated and described herein is not essential, unless otherwise specified. That is, the operations described herein may be performed in any order, unless otherwise specified, and embodiments of the invention may include additional or fewer operations than those disclosed herein. For example, it is contemplated that executing or performing a particular operation before, contemporaneously with, or after another operation is within the scope of aspects of the invention.
In some embodiments, a processor, as described herein, includes any programmable system including systems and microcontrollers, reduced instruction set circuits (RISC), application specific integrated circuits (ASIC), programmable logic circuits (PLC), and any other circuit or processor capable of executing the functions described herein. The above examples are exemplary only, and thus are not intended to limit in any way the definition and/or meaning of the term processor.
In some embodiments, a database, as described herein, includes any collection of data including hierarchical databases, relational databases, flat file databases, object-relational databases, object oriented databases, and any other structured collection of records or data that is stored in a computer system. The above examples are exemplary only, and thus are not intended to limit in any way the definition and/or meaning of the term database. Examples of databases include, but are not limited to only including, Oracle® Database, MySQL, IBM® DB2, Microsoft® SQL Server, Sybase®, and PostgreSQL. However, any database may be used that enables the systems and methods described herein. (Oracle is a registered trademark of Oracle Corporation, Redwood Shores, Calif.; IBM is a registered trademark of International Business Machines Corporation, Armonk, N.Y.; Microsoft is a registered trademark of Microsoft Corporation, Redmond, Wash.; and Sybase is a registered trademark of Sybase, Dublin, Calif.)
The present invention has been described in an illustrative manner. It is to be understood that the terminology, which has been used, is intended to be in the nature of words of description rather than of limitation.