Computerized systems and methods for artificial intelligence basedproduct recommendation generation
Patent Information
- Application Number
- TW110148973
- Authority / Receiving Office
- TW · TW
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-01-15
- Filing Date
- 2021-12-27
- Publication Date
- 2026-09-21
- Estimated Expiration
- 2041-12-26
AI Technical Summary
Traditional online shopping engines fail to provide personalized product recommendations based on the duration of a shopper's interaction with products, leading to prolonged search times and degraded user experience due to incorrect product categorization and lack of understanding of shopper actions.
An AI-based system that uses user identifiers and product identifiers to predict suggested products by analyzing user interactions over a time span, determining product categories, and generating personalized product lists, which are then integrated into the user interface to enhance the shopping experience.
Improves user experience by providing timely and relevant product recommendations, reducing search time, and enhancing the quality of online shopping platforms by accurately categorizing products and understanding shopper behavior.
Smart Images

Figure TWG2TB001911543_001 
Figure TWG2TB001911543_002 
Figure TWG2TB001911543_003
Abstract
Description
Technical Field
[0001] This disclosure generally relates to computerized systems and methods for generating product recommendations using artificial intelligence (AI). Specifically, embodiments of this disclosure relate to innovative and unconventional systems that can automatically modify user interface elements based on user and product identifiers associated with a query by generating a model for producing a list of recommended products. Prior Technology
[0002] Consumers frequently shop and purchase various items online using computers and smart devices. These online shoppers often need more than a day to determine the best product for them to buy. For example, many online shoppers may spend weeks researching and evaluating multiple products before making a purchase. However, the normal online shopping experience is hampered by online shopping engines that treat all customer conversations the same, regardless of how long the shopper has been considering the product. For example, traditional online shopping engines can provide similar suggestions whether the shopper has been considering the product for one day or fourteen days.
[0003] Millions of products are registered online by sellers every day. When registering their products for sale online, sellers need to select the correct category. However, many sellers do not select the correct category when registering their products. For example, when registering an infant onesie, which belongs to the "baby" category, a seller might incorrectly select the "children's fashion" category. Incorrect product categorization can severely degrade the user experience by lengthening the consumer's product search and reducing the quality of suggestions on the online platform. Furthermore, manually correcting product categorization is often difficult and time-consuming due to the existence of thousands of different categories. If online platforms automatically categorize products to the correct categories, the user experience will be significantly improved.
[0004] Online shopping engines' failure to understand shopper actions during product-related customer conversations can severely degrade the shopper's user experience by lengthening product searches and reducing the quality of recommendations on the online platform. Furthermore, manually understanding these diverse customer conversations is difficult and time-consuming, given the large number of different shoppers engaging in various dialogues. If online platforms automatically learn from consumer shopping behavior and tailor product recommendations accordingly, the consumer experience will be significantly improved.
[0005] Therefore, there is a need for methods and systems that generate product recommendations to enable consumers to quickly find and purchase products when shopping online. Summary of the Invention
[0006] One aspect disclosed herein relates to a system for generating AI-based product suggestions. The system may include: memory storing instructions; and at least one processor configured to execute the instructions. The instructions may include: receiving a query from a user device; extracting at least one keyword from the query; determining a user identifier and a product identifier based on the extracted keywords; and searching a database associated with the determined user identifier and the determined product identifier based on the determined user identifier and the determined product identifier. The instructions may further include, based on the user identifier and the product identifier, using a model to predict multiple suggested products by: determining a time span associated with the user identifier; extracting at least one query submitted by the user associated with the user identifier during the time span; extracting at least one filter request submitted by the user during the time span; extracting at least one product specification associated with at least one product associated with the extracted query or filter request; extracting attributes from the extracted query, the extracted filter request, and the extracted product specification; determining product categories based on the extracted attributes; generating a product list based on the determined product categories; generating a suggested product list based on the generated product list; and modifying user interface elements associated with the webpage to include the generated suggested product list.
[0007] Another aspect of this disclosure relates to a method for generating AI-based product suggestions. The method may include: receiving a query from a user device; extracting at least one keyword from the query; determining a user identifier and a product identifier based on the extracted keyword; and searching a database associated with the determined user identifier and the determined product identifier based on the determined user identifier and the determined product identifier. The instructions may further include, based on the user identifier and the product identifier, using a model to predict multiple suggested products by: determining a time span associated with the user identifier; extracting at least one query submitted by the user associated with the user identifier during the time span; extracting at least one filter request submitted by the user during the time span; extracting at least one product specification associated with at least one product associated with the extracted query or filter request; extracting attributes from the extracted query, the extracted filter request, and the extracted product specification; determining product categories based on the extracted attributes; generating a product list based on the determined product categories; generating a suggested product list based on the generated product list; and modifying user interface elements associated with the webpage to include the generated suggested product list.
[0008] Another aspect of this disclosure relates to a system for generating AI-based product suggestions. The system may include: memory storing instructions; and at least one processor configured to execute the instructions. The instructions may include: receiving a query from a user device; extracting at least one keyword from the query; determining a user identifier and a product identifier based on the extracted keywords; and searching a database associated with the determined user identifier and the determined product identifier based on the determined user identifier and the determined product identifier. The instructions may further include, based on the user identifier and the product identifier, using a model to predict multiple suggested products by: determining a time span associated with the user identifier; extracting at least one query submitted by the user associated with the user identifier during the time span; extracting at least one filter request submitted by the user during the time span; extracting at least one product specification associated with at least one product associated with the extracted query or filter request; extracting attributes from the extracted query, the extracted filter request, and the extracted product specification; determining product categories based on the extracted attributes; generating a product list based on the determined product categories; generating a suggested product list based on the generated product list; calculating a similarity score for each product in the generated list; removing products with similarity scores below a threshold from the generated list; and modifying user interface elements associated with the webpage to include the generated suggested product list.
[0009] Other systems, methods, and computer-readable media are also discussed in this article. Simple Explanation of the Diagram
[0010] Figure 1A is a schematic block diagram illustrating an exemplary embodiment of a network according to the disclosed embodiment, the network including a computerized system for shipping, transportation, and logistics operations capable of communication. Figure 1B illustrates a sample Search Result Page (SRP) according to the disclosed embodiment, which includes one or more search results that satisfy the search request and interactive user interface elements. Figure 1C illustrates a sample Single Detail Page (SDP) according to the disclosed embodiment, which includes product and information about the product, as well as interactive user interface elements. Figure 1D illustrates a sample shopping cart page according to the disclosed embodiment, which includes items in a virtual shopping cart and interactive user interface elements. Figure 1E illustrates a sample order page according to the disclosed embodiment, which includes items from a virtual shopping cart, information about purchasing and shipping, and interactive user interface elements. Figure 2 is an illustration of an exemplary fulfillment center configured to utilize the disclosed computerized system according to the disclosed embodiments. Figure 3 illustrates an exemplary network for an apparatus and system for generating AI-based product recommendations according to the disclosed embodiments. Figure 4 illustrates an exemplary process for generating AI-based product recommendations according to the disclosed embodiments. Implementation
[0011] The following detailed description refers to the accompanying drawings. The same reference numerals are used as far as possible in the drawings and the following description to refer to the same or similar parts. Although several exemplary embodiments are set forth herein, various modifications, adaptations, and other implementations are possible. For example, components and steps shown in the drawings may be replaced, added, or modified, and the exemplary methods set forth herein may be modified by replacing, reordering, removing, or adding steps of the disclosed methods. Therefore, the following detailed description is not limited to the disclosed embodiments and examples. Rather, the proper scope of the invention is defined by the claims of the appended patent application.
[0012] This disclosure relates to systems and methods configured for AI-based product suggestion generation. The disclosed embodiments are capable of using a model to predict at least one suggested product based on user identifiers and product identifiers. For example, the product suggestion system may extract at least one query submitted by a user associated with a user identifier over a time span. The product suggestion system may use the model and attributes extracted from the queries to determine the product category associated with the user identifier and product identifier.
[0013] In some embodiments, a product recommendation system may generate a list of recommended products by calculating a similarity score for each product in the resulting product list. In some embodiments, the product recommendation system may calculate a similarity score by assigning at least one weighted value to at least one factor. In some embodiments, the at least one factor may include historical user data on at least one of selecting a product on a webpage, adding a product to a shopping cart on a webpage, or purchasing a product on a webpage.
[0014] In some embodiments, users can interact with user interface elements associated with a webpage to categorize the generated list of suggested products. For example, the product suggestion system may modify the user interface elements to allow users to categorize the generated list of suggested products based on price, similarity score, sales volume, etc. In some embodiments, the product suggestion system may automatically modify the user interface elements to display the generated list of suggested products based on price, similarity score, sales volume, etc.
[0015] Referring to FIG1A, FIG1A illustrates a schematic block diagram 100, which shows an exemplary embodiment of a system including a computerized system for enabling communication in shipping, transportation, and logistics operations. As shown in FIG1A, system 100 may include various systems, each of which may be connected to each other via one or more networks. The systems may also be connected to each other via direct connection (e.g., using cables). The illustrated systems include a shipment authority technology (SAT) system 101, an external front-end system 103, an internal front-end system 105, a transportation system 107, mobile devices 107A, 107B, and 107C, a seller's entry point 109, a shipment and order tracking (SOT) system 111, a fulfillment optimization (FO) system 113, a fulfillment messaging gateway (FMG) 115, a supply chain management (SCM) system 117, a warehouse management system (WMS) 119, mobile devices 119A, 119B, and 119C (illustrated as being located within a fulfillment center (FC)) 200, third-party fulfillment (3PL) systems 121A, 121B, and 121C, a fulfillment center authorization system (FC Auth) 123, and a labor management system. system, LMS)125.
[0016] In some embodiments, the SAT system 101 may be implemented as a computer system for monitoring order and delivery status. For example, the SAT system 101 may determine whether an order has exceeded its Promised Delivery Date (PDD) and may take appropriate actions, including initiating a new order, reshipping items from an undelivered order, canceling an undelivered order, and contacting the ordering customer. The SAT system 101 may also monitor other data, including outputs (e.g., the number of packages shipped during a specific time period) and inputs (e.g., the number of empty cartons received for shipment). The SAT system 101 may also act as a gateway between different devices in system 100, enabling communication between devices such as external front-end system 103 and FO system 113 (e.g., using store-and-forward or other technologies).
[0017] In some embodiments, the external front-end system 103 may be implemented as a computer system that enables external users to interact with one or more systems in system 100. For example, in embodiments where system 100 can present the system to enable users to place orders for items, the external front-end system 103 may be implemented as a web server that receives search requests, presents item pages, and requests payment information. For example, the external front-end system 103 may be implemented as one or more computers running software such as Apache Hypertext Transfer Protocol (HTTP) servers, Microsoft Internet Information Services (IIS), NGINX, etc. In other embodiments, the external front-end system 103 may run custom web server software designed to receive and process requests from external devices (e.g., mobile device 102A or computer 102B), retrieve information from databases and other data storage based on these requests, and provide responses to received requests based on the retrieved information.
[0018] In some embodiments, the external front-end system 103 may include one or more of a web caching system, a database, a search system, or a payment system. In one embodiment, the external front-end system 103 may include one or more of these systems, while in another embodiment, the external front-end system 103 may include an interface (e.g., server-to-server, database-to-database, or other network connection) connected to one or more of these systems.
[0019] A set of illustrative steps shown in Figures 1B, 1C, 1D, and 1E will help illustrate some operations of the external front-end system 103. The external front-end system 103 may receive information from systems or devices within system 100 for presentation and / or display. For example, the external front-end system 103 may host or provide one or more web pages, including a Search Results Page (SRP) (e.g., Figure 1B), a Single Details Page (SDP) (e.g., Figure 1C), a Shopping Cart Page (e.g., Figure 1D), or an Order Page (e.g., Figure 1E). A user device (e.g., using mobile device 102A or computer 102B) may navigate to the external front-end system 103 and request a search by entering information in a search box. The external front-end system 103 may request information from one or more systems within system 100. For example, the external front-end system 103 may request information from system 113 to satisfy a search request. External front-end system 103 may also request and receive (from FO system 113) the promised delivery date, or "PDD," for each product included in the search results. In some embodiments, PDD may represent an estimate of when the package containing the product will arrive at the user's desired location, or the date on which the product is promised delivery to the user's desired location if ordered within a specific time period (e.g., before the end of the day (11:59 PM)). (PDD is further discussed below with reference to FO system 113.)
[0020] External front-end system 103 can prepare a Search Request (SRP) based on the information (e.g., Figure 1B). The SRP may include information that satisfies the search request. For example, this may include images of products that satisfy the search request. The SRP may also include the corresponding price for each product, or information related to enhanced delivery options, product details (PDD), weight, size, offers, discounts, etc., for each product. External front-end system 103 can send the SRP to the user device that issued the request (e.g., via a network).
[0021] The user device can then select a product from the SRP by clicking or tapping the user interface (or using another input device). The user device can then request information about the selected product and send it to the external front-end system 103. In response, the external front-end system 103 can request information related to the selected product. For example, the information may include additional information beyond what is presented for the product on the corresponding SRP. This additional information may include, for example, shelf life, country of origin, weight, size, number of items in the package, handling instructions, or other information about the product. The information may also include recommendations for similar products (e.g., based on massive data and / or machine learning analysis of customers who have purchased this product and at least one other product), answers to frequently asked questions, customer reviews, manufacturer information, images, etc.
[0022] External front-end system 103 can prepare a Single Detail Page (SDP) (e.g., Figure 1C) based on the received product information. The SDP may also include other interactive elements such as a "Buy Now" button, an "Add to Cart" button, a quantity field, and item images. The SDP may further include a list of sellers offering the product. The list can be sorted based on the price offered by each seller, with the seller offering the lowest price listed at the top. The list can also be sorted based on seller ranking, with the highest-ranked seller listed at the top. Seller ranking can be based on various factors, including, for example, a seller's past track record of fulfilling promised PDDs. External front-end system 103 can deliver the SDP to the requesting user device (e.g., via the internet).
[0023] The requesting user device can receive an SDP listing product information. After receiving the SDP, the user device can then interact with it. For example, the user of the requesting user device can click the "Add to Cart" button on the SDP or otherwise interact with the "Add to Cart" button on the SDP. This will add the product to the shopping cart associated with the user. The user device can then send this request to the external front-end system 103 to add the product to the shopping cart.
[0024] An external front-end system 103 may generate a shopping cart page (e.g., Figure 1D). In some embodiments, the shopping cart page lists products that have been added to a virtual "shopping cart" by the user. The user device may request the shopping cart page by clicking an icon on an SRP, SDP, or other page, or by otherwise interacting with an icon on an SRP, SDP, or other page. In some embodiments, the shopping cart page may list all products that have been added to the shopping cart by the user, as well as information about the products in the shopping cart, such as the quantity of each product, the unit price of each product, the price of each product based on the associated quantity, information about PDD, delivery method, shipping costs, user interface elements for modifying products in the shopping cart (e.g., deleting or modifying the quantity), options for ordering other products or setting up recurring delivery of products, options for setting up interest payments, user interface elements for continuing to purchase, etc. The user on the user device may click a user interface element (e.g., a button read as "Buy Now") or otherwise interact with a user interface element (e.g., a button read as "Buy Now") to initiate a purchase of products in the shopping cart. In doing so, the user device can send such a purchase request to the external front-end system 103.
[0025] External front-end system 103 may generate an order page (e.g., Figure 1E) in response to receiving a request to initiate a purchase. In some embodiments, the order page relists the items from the shopping cart and requests input of payment and shipping information. For example, the order page may include user interface elements requesting information about the purchaser of the items in the shopping cart (e.g., name, address, email address, phone number), information about the recipient (e.g., name, address, phone number, delivery information), shipping information (e.g., delivery and / or collection speed / method), payment information (e.g., credit card, bank transfer, cheque, stored credit), and requesting a cash receipt (e.g., for tax purposes). External front-end system 103 may send the order page to the user device.
[0026] The user device can enter information on the order page and click on a user interface element that sends the information to an external front-end system 103, or otherwise interact with the user interface element that sends the information to the external front-end system 103. The external front-end system 103 can send information from the user interface element to different systems in system 100, so that new orders can be created and processed using products in the shopping cart.
[0027] In some embodiments, the external front-end system 103 may be further configured to enable the seller to transmit and receive order-related information.
[0028] In some embodiments, the internal front-end system 105 may be implemented as a computer system that enables internal users (e.g., employees of an organization that owns, operates, or leases system 100) to interact with one or more systems in system 100. For example, in embodiments where system 101 can present the system to enable users to place orders for items, the internal front-end system 105 may be implemented as a web server that allows internal users to view diagnostic and statistical information about orders, modify item information, or check statistics related to orders. For example, the internal front-end system 105 may be implemented as one or more computers running software such as Apache HTTP Server, Microsoft Internet Information Services (IIS), NGINX, etc. In other embodiments, the internal front-end system 105 may run custom web server software designed to receive and process requests from systems or devices (and other devices not shown) illustrated in system 100, retrieve information from databases and other data storage based on those requests, and provide responses to received requests based on the retrieved information.
[0029] In some embodiments, the internal front-end system 105 may include one or more of a website caching system, a database, a search system, a payment system, an analytics system, an order monitoring system, etc. In one embodiment, the internal front-end system 105 may include one or more of these systems, while in another embodiment, the internal front-end system 105 may include an interface (e.g., server-to-server, database-to-database, or other network connection) connected to one or more of these systems.
[0030] In some embodiments, the transport system 107 may be implemented as a computer system enabling communication between systems or devices in system 100 and mobile devices 107A to 107C. In some embodiments, the transport system 107 may receive information from one or more mobile devices 107A to 107C (e.g., mobile phones, smartphones, personal digital assistants (PDAs), etc.). For example, in some embodiments, mobile devices 107A to 107C may include devices operated by a delivery worker. The delivery worker (who may be a permanent, temporary, or shift employee) may use mobile devices 107A to 107C to deliver packages containing products ordered by a user. For example, to deliver packages, the delivery worker may receive notifications on the mobile device instructing which package to deliver and where to deliver it. Upon arrival at the delivery location, the delivery worker can use a mobile device to locate the package (e.g., in the back of a truck or in a crate), scan or otherwise capture information associated with identifiers on the package (e.g., barcodes, images, body text strings, radio frequency identification (RFID) tags, etc.), and deliver the package (e.g., by leaving the package at the front door, leaving it with a security guard, handing it over to the recipient, etc.). In some embodiments, the delivery worker can use a mobile device to capture a photograph of the package and / or obtain a signature. The mobile device can send information to the transportation system 107, including information about the delivery, such as time, date, Global Positioning System (GPS) location, photograph, identifiers associated with the delivery worker, identifiers associated with the mobile device, etc. The transportation system 107 can store this information in a database (not shown) for access by other systems in system 100. In some embodiments, the transportation system 107 can use this information to prepare tracking data and send the tracking data to other systems indicating the location of a specific package.
[0031] In some embodiments, some users may use one type of mobile device (e.g., permanent workers may use a dedicated PDA with custom hardware such as a barcode scanner, stylus, and other devices), while other users may use other types of mobile devices (e.g., temporary workers or shift workers may use readily available mobile phones and / or smartphones).
[0032] In some embodiments, the transportation system 107 may associate a user with each device. For example, the transportation system 107 may store associations between users (represented by, for example, user identifiers, employee identifiers, or telephone numbers) and mobile devices (represented by, for example, International Mobile Equipment Identity (IMEI), International Mobile Subscription Identifier (IMSI), telephone number, Universal Unique Identifier (UUID), or Globally Unique Identifier (GUID)). The transportation system 107 may use such associations, combined with data received at the time of delivery, to analyze data stored in a database to determine, among other things, the worker's location, worker efficiency, or worker speed.
[0033] In some embodiments, seller portal 109 may be implemented as a computer system that enables a seller or other external entity to communicate electronically with one or more systems in system 100. For example, a seller may use a computer system (not shown) to upload or provide product information, order information, contact information, etc., for products that the seller wishes to sell through system 100 using seller portal 109.
[0034] In some embodiments, the shipping and order tracking system 111 may be implemented as a computer system that receives, stores, and transmits information regarding the location of packages containing products ordered by customers (e.g., users of devices 102A to 102B). In some embodiments, the shipping and order tracking system 111 may request or store information from a website server (not shown) operated by a shipping company, which delivers packages containing products ordered by customers.
[0035] In some embodiments, the shipping and order tracking system 111 may request and store information from the systems depicted in system 100. For example, the shipping and order tracking system 111 may request information from transportation system 107. As discussed above, transportation system 107 may receive information from one or more mobile devices 107A to 107C (e.g., mobile phones, smartphones, PDAs, etc.) associated with one or more of the user (e.g., delivery workers) or vehicle (e.g., delivery trucks). In some embodiments, the shipping and order tracking system 111 may also request information from warehouse management system (WMS) 119 to determine the location of individual products within a fulfillment center (e.g., fulfillment center 200). The shipping and order tracking system 111 may request data from one or more of transportation system 107 or WMS 119, process it, and present it to devices (e.g., user devices 102A and 102B) upon request.
[0036] In some embodiments, the Fulfillment Optimization (FO) system 113 may be implemented as a computer system that stores information about customer orders from other systems (e.g., external front-end system 103 and / or shipping and order tracking system 111). The FO system 113 may also store information describing where specific items are accommodated or stored. For example, some items may be stored in only one fulfillment center, while others may be stored in multiple fulfillment centers. In still other embodiments, some fulfillment centers may be designed to store only a specific set of items (e.g., fresh produce or frozen product). The FO system 113 stores this information along with associated information (e.g., quantity, size, receipt date, expiration date, etc.).
[0037] The FO system 113 can also calculate a corresponding Promised Delivery Date (PDD) for each product. In some embodiments, the PDD can be based on one or more factors. For example, the FO system 113 can calculate the PDD for a product based on: past demand for the product (e.g., how many times the product has been ordered over a period of time), expected demand for the product (e.g., how many customers are expected to order the product in the upcoming period of time), total network past demand indicating how many products have been ordered over a period of time, total network expected demand indicating how many products are expected to be ordered in the upcoming period of time, one or more counts of products stored in each fulfillment center 200, which fulfillment center stores each product, expected orders or current orders for the product, etc.
[0038] In some embodiments, the FO system 113 may periodically (e.g., hourly) determine the Product Development Date (PDD) for each product and store it in a database for retrieval or transmission to other systems (e.g., external front-end system 103, SAT system 101, shipping and order tracking system 111). In other embodiments, the FO system 113 may receive electronic requests from one or more systems (e.g., external front-end system 103, SAT system 101, shipping and order tracking system 111) and calculate the PDD on demand.
[0039] In some embodiments, the fulfillment message gateway (FMG) 115 may be implemented as a computer system that receives requests or responses in one format or protocol from one or more systems in system 100 (e.g., FO system 113), converts them into another format or protocol, and forwards them in the converted format or protocol to other systems such as WMS 119 or third-party fulfillment systems 121A, 121B or 121C, and vice versa.
[0040] In some embodiments, the supply chain management (SCM) system 117 may be implemented as a computer system performing forecasting functions. For example, the SCM system 117 may forecast the demand level for a particular product based on, for example, past demand for the product, expected demand for the product, past demand across the entire network, expected demand across the entire network, counted products stored in each fulfillment center 200, expected orders for each product, or current orders. In response to this forecast level and the quantity of each product in all fulfillment centers, the SCM system 117 may generate one or more purchase orders to procure and store sufficient quantities to meet the forecasted demand for the particular product.
[0041] In some embodiments, the warehouse management system (WMS) 119 may be implemented as a computer system for monitoring workflows. For example, the WMS 119 may receive event data from individual devices (e.g., devices 107A to 107C or 119A to 119C) that indicate discrete events. For example, the WMS 119 may receive event data indicating that one of these devices should be used to scan a package. As discussed below with reference to fulfillment center 200 and Figure 2, during the fulfillment process, package identifiers (e.g., barcode or RFID tag data) may be scanned or read at specific stages by machines (e.g., automated barcode scanners or handheld barcode scanners, RFID readers, high-speed cameras, devices such as tablet 119A, mobile device / PDA 119B, computer 119C, etc., or similar machines). WMS 119 can store each event of scanning or reading the indication of the package identifier, along with the package identifier, time, date, location, user identifier, or other information, in a corresponding database (not shown), and can provide this information to other systems (e.g., shipping and order tracking system 111).
[0042] In some embodiments, WMS 119 may store information that associates one or more devices (e.g., devices 107A to 107C or 119A to 119C) with one or more users associated with system 100. For example, in some cases, the association between a user (e.g., a part-time or full-time employee) and a mobile device may be that the user owns the mobile device (e.g., the mobile device is a smartphone). In other cases, the association between a user and a mobile device may be that the user temporarily holds the mobile device (e.g., the user registers to lend out the mobile device at the beginning of the day, will use the mobile device during the day, and will return the mobile device at the end of the day).
[0043] In some embodiments, WMS 119 may maintain a work log for each user associated with system 100. For example, WMS 119 may store information associated with each employee, including any assigned processes (e.g., unloading trucks, picking items in self-pickup areas, rebin wall work, packing items), user identifier, location (e.g., floor or area in fulfillment center 200), number of units the employee moves through in the system (e.g., number of items picked, number of items packed), identifier associated with devices (e.g., devices 119A to 119C), etc. In some embodiments, WMS 119 may receive check-in and check-out information from a timing system, such as a timing system operating on devices 119A to 119C.
[0044] In some embodiments, third-party fulfillment (3PL) systems 121A to 121C represent computer systems associated with a third-party provider of logistics and products. For example, while some products are stored in fulfillment center 200 (as discussed below with reference to Figure 2), others may be stored off-site, produced on demand, or otherwise not stored in fulfillment center 200. 3PL systems 121A to 121C may be configured to receive orders from FO system 113 (e.g., via FMG 115) and provide products and / or services (e.g., delivery or installation) directly to customers. In some embodiments, one or more of 3PL systems 121A to 121C may be part of system 100, while in other embodiments, one or more of 3PL systems 121A to 121C may be outside of system 100 (e.g., owned or operated by a third-party provider).
[0045] In some embodiments, the Fulfillment Center Authorization System (FC Auth) 123 may be implemented as a computer system with various functionalities. For example, in some embodiments, FC Auth 123 may act as a single-sign-on (SSO) service for one or more other systems within System 100. For example, FC Auth 123 may enable a user to log in via an internal front-end system 105, determine that the user has similar privileges to access resources at the shipping and order tracking system 111, and enable the user to access those privileges without requiring a second login process. In other embodiments, FC Auth 123 may enable a user (e.g., an employee) to associate themselves with a specific task. For example, some employees may not have electronic devices (e.g., devices 119A to 119C) but may instead move between tasks and zones within Fulfillment Center 200 during the day. FC Auth 123 may be configured to allow these employees to indicate what tasks they are performing and which zones they are in at different times of the day.
[0046] In some embodiments, the Labor Relations Management System (LMS) 125 may be implemented as a computer system that stores attendance and overtime information of employees (including full-time and part-time employees). For example, the LMS 125 may receive information from FC Auth 123, WMS 119, devices 119A to 119C, transportation system 107 and / or devices 107A to 107C.
[0047] The specific configuration illustrated in Figure 1A is merely an example. For instance, although Figure 1A illustrates FC Auth system 123 connected to FO system 113, not all embodiments require this specific configuration. In fact, in some embodiments, the systems in system 100 may be connected to each other via one or more public or private networks, including: the Internet, an intranet, a wide-area network (WAN), a metropolitan-area network (MAN), a wireless network conforming to the Institute of Electrical and Electronics Engineers (IEEE) 802.11a / b / g / n standards, leased lines, etc. In some embodiments, one or more of the systems in system 100 may be implemented as one or more virtual servers implemented in a data center, server farm, etc.
[0048] Figure 2 illustrates a fulfillment center 200. A fulfillment center 200 is an example of a physical location where items ordered and shipped to a customer are stored. A fulfillment center (FC) 200 may be divided into multiple zones, each illustrated in Figure 2. In some embodiments, these "zones" may be considered as virtual divisions between different stages of the processes of receiving, storing, retrieving, and shipping items. Therefore, although "zones" are illustrated in Figure 2, other divisions of zones may exist, and in some embodiments, the zones in Figure 2 may be omitted, copied, or modified.
[0049] The receiving area 203 represents the area in which a seller of FC 200 who wishes to sell products from system 100 of Figure 1A receives items. For example, the seller may use truck 201 to deliver items 202A and 202B. Item 202A may represent a single item large enough to occupy its own shipping pallet, while item 202B may represent a group of items stacked together on the same pallet to save space.
[0050] Workers will receive items in arrival area 203 and may optionally check for damage and correctness using a computer system (not shown). For example, workers may use the computer system to compare the quantities of items 202A and 202B with the ordered quantities. If the quantities do not match, the worker may reject one or more of items 202A or 202B. If the quantities match, the worker may move these items (using, for example, a trolley, handcart, forklift, or manually) to buffer zone 205. Buffer zone 205 may serve as a temporary storage area for items not currently needed in the picking area (e.g., due to a sufficiently high quantity of these items in the picking area to meet pre-ordered demand). In some embodiments, forklift 206 operates to move items around in buffer zone 205 and between arrival area 203 and unloading area 207. If item 202A or 202B is needed in the picking area (e.g., due to forecasted demand), the forklift can move item 202A or 202B to the unloading area 207.
[0051] Unloading area 207 may be an area of FC 200 where items are stored before being moved to picking area 209. A worker assigned a picking task ("picker") may approach items 202A and 202B in the picking area, scan the barcodes of the picking area using a mobile device (e.g., device 119B), and scan the barcodes associated with items 202A and 202B. The picker may then take the items to picking area 209 (e.g., by placing the items on a cart or by moving the items).
[0052] Picking area 209 may be an area of FC 200 where items 208 are stored on storage unit 210. In some embodiments, storage unit 210 may include one or more of physical shelving, bookshelves, boxes, shipping containers, refrigerators, freezers, cold storage, etc. In some embodiments, picking area 209 may be organized into multiple floors. In some embodiments, workers or machines may move items to picking area 209 by various means, including forklifts, elevators, conveyors, trolleys, handcarts, automated robots or devices, or manual methods. For example, a picker may place items 202A and 202B on a handcart or trolley in unloading area 207 and walk to picking area 209.
[0053] The picker may receive instructions to place (or "stow") an item in a specific location within the picking area 209 (e.g., a specific space on storage unit 210). For example, the picker may use a mobile device (e.g., device 119B) to scan item 202A. The device may, for example, use a system indicating aisles, shelves, and locations to instruct the picker where to store item 202A. Then, before storing item 202A in this location, the device may prompt the picker to scan the barcode at that location. The device may send (e.g., via a wireless network) data to a computer system (e.g., WMS 119 in Figure 1A) to indicate that item 202A has been stored at the location by the user using device 119B.
[0054] Once a user places an order, the picker receives instructions on device 119B to retrieve one or more items 208 from storage unit 210. The picker can retrieve item 208, scan the barcode on item 208, and place it on transport mechanism 214. Although transport mechanism 214 is represented as a slider, in some embodiments, transport mechanism may be implemented as one or more of a conveyor belt, elevator, pallet truck, forklift, handcart, trolley, or pallet truck. Item 208 can then reach packaging area 211.
[0055] Packing area 211 serves as the area for receiving items from self-picking area 209 of FC 200 and packing them into boxes or bags for final shipment to the customer. In packaging area 211, workers assigned to receive items ("rebin workers") will receive items 208 from self-picking area 209 and determine which order item 208 corresponds to. For example, the rebin worker can use a device such as computer 119C to scan the barcode on item 208. Computer 119C can visually indicate which order item 208 is associated with. For example, this may include spaces or "cells" on wall 216 corresponding to orders. Once an order is completed (e.g., because the cell contains all the items for the order), the rebin worker can indicate to the packer (or "packer") that the order is complete. The packer can then retrieve the items from the cell and place them into boxes or bags for shipment. Next, the packer may send the boxes or bags to hub zone 213, for example by forklift, pallet truck, trolley, handcart, conveyor belt, manual or other means.
[0056] Central area 213 may be the area where the self-packaging area 211 of FC 200 receives all boxes or bags ("packages"). Workers and / or machines in central area 213 may pick up packages 218 and determine which part of the delivery area each package is intended to go to, and route the package to the appropriate camp area 215. For example, if the delivery area has two smaller sub-areas, the package will go to one of the two camp areas 215. In some embodiments, workers or machines may scan the package (e.g., using one of devices 119A to 119C) to determine its final destination. Routing the package to camp area 215 may include, for example, determining a part of the geographic area that is the destination of the package (e.g., based on a postal code), and determining the camp area 215 associated with said part of said geographic area.
[0057] In some embodiments, camp area 215 may include one or more buildings, one or more physical spaces, or one or more zones, wherein packages are received from central area 213 for sorting into routes and / or subroutines. In some embodiments, camp area 215 is physically separate from FC 200, while in other embodiments, camp area 215 may be part of FC 200.
[0058] Workers and / or machines in camp area 215 may determine which route and / or sub-route a package 220 should be associated with, for example, based on a comparison of the destination with existing routes and / or sub-routes, a calculation of the workload for each route and / or sub-route, the time of day, the shipping method, the cost of shipping package 220, and the PDD associated with the items in package 220. In some embodiments, workers or machines may scan the package (e.g., using one of devices 119A to 119C) to determine its final destination. Once package 220 is assigned to a specific route and / or sub-route, workers and / or machines may move the package 220 to be shipped. In exemplary Figure 2, camp area 215 includes truck 222, vehicle 226, and delivery workers 224A and 224B. In some embodiments, truck 222 may be driven by delivery worker 224A, who is a full-time employee delivering packages for FC 200, and truck 222 is owned, leased, or operated by the same company that owns, leases, or operates FC 200. In some embodiments, vehicle 226 may be driven by delivery worker 224B, who is a "flexible" or occasional worker who makes deliveries on demand (e.g., seasonally). Vehicle 226 may be owned, leased, or operated by delivery worker 224B.
[0059] Referring to Figure 3, Figure 3 illustrates an exemplary network for an apparatus and system for generating AI-based product recommendations. As shown in Figure 3, system 300 may include a product recommendation system 330, a query system 350, and a customer affinity system 360. The product recommendation system 330, query system 350, and customer affinity system 360 may communicate via network 310 with a user device 320 associated with user 320A or search action log 346. In some embodiments, the product recommendation system 330, query system 350, and customer affinity system 360 may communicate with other components of system 300 via a direct connection (e.g., using a cable). In some other embodiments, system 300 may be part of system 100 shown in Figure 1A and may communicate with other components of system 100 via network 310 or via a direct connection (e.g., using a cable). The product suggestion system 330, the query system 350, and the customer affinity system 360 may each include a single computer or may each be configured as a distributed computer system including multiple computers, which interact to perform one or more of the processes and functions associated with the disclosed instance.
[0060] As shown in Figure 3, the product suggestion system 330, the query system 350, and the customer affinity system 360 may each include processors 332, 352, and 362, respectively. Processors 332, 352, or 362 may be one or more known processing devices, such as microprocessors from the Pentium™ series manufactured by Intel™ or the Turion™ series manufactured by Advanced Micro Devices™ (AMD™). Processors 332, 352, or 362 may constitute a single-core or multi-core processor capable of executing parallel processes simultaneously. For example, processors 332, 352, or 362 may use logic processors to execute and control multiple processes simultaneously. Processors 332, 352, or 362 may implement virtual machine technology or other known technologies to provide the ability to execute, control, run, manipulate, and store multiple software processes, applications, programs, etc. In another example, processors 332, 352, or 362 may include a multi-core processor arrangement configured to provide parallel processing capabilities, enabling product recommendation system 330, query system 350, or customer affinity system 360 to execute multiple processes simultaneously. Those skilled in the art will understand that other types of processor arrangements providing the capabilities disclosed herein can be implemented.
[0061] The product suggestion system 330, query system 350, and customer affinity system 360 may each include memory 334, 354, and 364, respectively. Memory 334, 354, or 364 may be stored in one or more operating systems that perform known operating system functions when executed by processor 332, 352, or 362. For example, the operating system may include Microsoft Windows, Unix, Linux, Android, Macintosh operating system (Mac OS), Apple operating system (iOS), or other types of operating systems. Therefore, embodiments of the disclosed invention can operate and function with computer systems running any type of operating system. Memory 334, 354, or 364 may be volatile or non-volatile, magnetic, semiconductor, magnetic tape, optical, removable, non-removable, or other types of storage devices or physical computer-readable media.
[0062] The product suggestion system 330, query system 350, and customer affinity system 360 may each include a database 336, 356, or 366. Database 336, 356, or 366 may include, for example, an Oracle™ database, a Sybase™ database, or other relational or non-relational databases, such as Hadoop™ sequence files, HBase™, or Cassandra™. Database 336, 356, or 366 may include computing components (e.g., a database management system, a database server, etc.) configured to receive and process requests for data stored in the database's memory and provide data from the database. Database 336, 356, or 366 may include NoSQL databases, such as Hadoop™, MongoDB™, or Cassandra™. Alternatively, database 336, 356, or 366 may include relational databases, such as Oracle, MySQL, and Microsoft Structured Query Language (SQL) servers. In some embodiments, database 336 may take the form of a server, a general-purpose computer, a mainframe computer, or any combination of these components.
[0063] Databases 336, 356, or 366 may store data that can be used by processors 332, 352, or 362 to implement the methods and processes associated with the disclosed examples. As shown in Figure 3, databases 336, 356, or 366 may be located in the product suggestion system 330, the query system 350, and the customer affinity system 360, respectively, or alternatively, databases 336, 356, or 366 may be located in external storage devices outside of the product suggestion system 330, the query system 350, and the customer affinity system 360. Data stored in database 336 may include product categories, similarity scores, generated product lists, generated suggested product lists, threshold values, product prices, aggregated customer actions, search trends, and historical data. Data stored in database 356 may include user-submitted queries, keywords included in the queries, keywords associated with product identifiers, historical data, etc. The data stored in Database 366 may include user-submitted filtering requests (e.g., product size, product brand, minimum product price, maximum product price, product price range, historical data, etc.) or product specifications (e.g., product size, product brand, product color, product storage capacity, associated keywords or products, etc.).
[0064] User device 320 may be a tablet computer, mobile device, computer, etc. User device 320 may include a display. The display may include, for example, a liquid crystal display (LCD), a light-emitting diode screen (LED), an organic light-emitting diode screen (OLED), a touch screen, and other known display devices. The display may show the user various information. For example, the display may show user interface elements (e.g., displayed on a webpage associated with the SRP shown in Figure 1B), which may include filtering requests for product lists, options to submit queries, options to select products, options to add products to a shopping cart, options to purchase products, options to sort the generated suggested product list based on price, similarity score, or sales volume, buttons for listed instances, etc.
[0065] User device 320 may include one or more input / output (I / O) devices. I / O devices may include one or more devices that enable user device 320 to send and receive information from user 320A or another device. I / O devices may include various input / output devices, cameras, microphones, keyboards, mouse-like devices, gesture sensors, motion sensors, physical buttons, oratory input, etc. I / O devices may also include one or more communication modules (not shown) for sending information or receiving information from product suggestion system 330, query system 350, or customer affinity system 360 by establishing, for example, a wired or wireless connection between user device 320 and network 310.
[0066] In some embodiments, user 320A may be an internal user (e.g., an employee of an organization that owns, operates, or leases system 100 or 300) or an external user (e.g., an online shopper).
[0067] In some embodiments, system 300 may receive queries (e.g., search requests) from user device 320. In some embodiments, external front-end system 103 may be implemented as a computer system that enables external users to interact with one or more systems in system 100. For example, in embodiments where system 100 can present the system to enable users to place orders for items, external front-end system 103 may be implemented as a website server that receives search requests, presents item pages, and requests payment information. System 300 may extract at least one keyword from the query. System 300 may determine user identifiers (e.g., customer identifier, user identifier, computer identifier, name, address, email address, telephone number, etc.) and product identifiers (e.g., product type keywords associated with at least one product category, barcodes, images, body text strings, RFID tags, etc.) based on the extracted keywords. User identifiers may be associated with user 320A (e.g., online shopper).
[0068] System 300 can search a database 346 containing search action logs associated with user identifiers and product identifiers. Database 346 may include historical user actions associated with various users (e.g., products searched by users, products purchased by users, queries submitted by users, etc.) or historical data associated with multiple product identifiers that customers can interact with on a webpage (e.g., while browsing a webpage, selecting products on a webpage, adding products to a shopping cart on a webpage, purchasing products on a webpage). Although database 346 is depicted as separate from databases 336, 356, and 366, in some embodiments, database 346 may be integrated with one or more of databases 336, 356, and 366.
[0069] In some embodiments, the product suggestion system 330 may use a model to predict at least one suggested product based on user identifiers and product identifiers. For example, the product suggestion system 330 may determine the time span associated with a user identifier by calculating the time it takes for a user 320A to perform a predetermined number of actions. For example, the predetermined number of actions may be determined based on historical data associated with multiple product identifiers with which the customer can interact on a webpage (e.g., while browsing the webpage, selecting a product on the webpage, adding a product to the cart on the webpage, or purchasing a product on the webpage). For example, the predetermined number of actions may be the average number of actions a customer can perform from the first time they search for a product until they purchase a product. In some embodiments, the time span may be associated with the average amount of time a customer can spend browsing and purchasing products. In some embodiments, actions may include at least one of selecting a product on the webpage, adding a product to the cart on the webpage, or purchasing a product on the webpage.
[0070] Product suggestion system 330 may retrieve from query system 350 at least one query submitted by a user associated with a user identifier during the time span. In some embodiments, the query may include at least one keyword associated with a product identifier. In some embodiments, product suggestion system 330 may retrieve from customer affinity system 360 at least one filtering request submitted by user 320A during the time span. The filtering request may include at least one of product size, product brand, and product price. In some embodiments, a user interface associated with a webpage may include a filtering request, wherein user 320A may use the filtering request on a product list on the webpage (e.g., a product list provided when the user submits a query). In some embodiments, product suggestion system 330 may retrieve at least one product specification associated with at least one product associated with the retrieved query or filtering request. In some embodiments, product specification may include at least one of product size, product brand, product color, or product storage capacity.
[0071] In some embodiments, the query system 350 may extract attributes from user-submitted queries. For example, the query system 350 may extract keywords from queries. In some embodiments, the customer affinity system 360 may extract attributes from user-submitted filter requests and from product specifications. For example, the customer affinity system may extract filter requests (e.g., product size, product brand, minimum product price, maximum product price, product price range, etc.) and associated keywords or products. In some embodiments, the customer affinity system may extract product specifications associated with keywords or products used by the user in interactions with the user (e.g., when selecting a product on a webpage, adding a product to a shopping cart on a webpage, purchasing a product on a webpage, etc.).
[0072] In some embodiments, the product recommendation system 330 may extract attributes from historical data within a moving time window to train and generate a model. In some embodiments, the product recommendation system 330 may use the model, along with attributes extracted from queries, filter requests, and product specifications, to determine product categories associated with user identifiers and product identifiers. In some embodiments, training data may include at least one of historical queries, historical filter requests, or historical product specifications from multiple customers.
[0073] For example, attributes from historical data of a query may include laptops, Samsung laptops, 15-inch Samsung laptops, 15-inch gaming laptops, etc. In some embodiments, the product recommendation system 330 may use the extracted attributes to determine at least one product category (e.g., laptops) associated with the query. In some embodiments, attributes from historical data of a filtering request may include filtering by 15-inch size, filtering by the "Samsung" brand, filtering by price below $300, etc. The product recommendation system 330 may use the extracted attributes to determine that at least one product category associated with a filtering request includes laptops. In some embodiments, attributes from historical data of product specifications may include 15-inch size associated with a Samsung laptop or Sony laptop selected by a customer over a time span (e.g., two weeks). The product recommendation system 330 may use the extracted attributes to determine that at least one product category associated with a product specification includes high-end laptops.
[0074] In some embodiments, the product recommendation system 330 may generate a product list based on determined product categories. For example, the product recommendation system 330 may generate a list including all products that user 320A (associated with a user identifier) has participated in (e.g., products selected by the user on the webpage, products added to the shopping cart on the webpage, or products purchased on the webpage). In some embodiments, the product recommendation system 330 may retrieve data from at least one of a database 346 (search action log), a query system 350, or a customer affinity system 360 to generate the list. In some embodiments, the product list may be generated based on user actions performed during the said time span. For example, the product recommendation system 330 may generate a list of products that user 320 has participated in over the past two weeks.
[0075] In some embodiments, the product recommendation system 330 may calculate a similarity score for each product in the generated list. In some embodiments, the product recommendation system 330 may calculate the similarity score based on a comparison of the attributes of the products in the generated list with a determined product category. In some embodiments, products having more common attributes with the determined product category may have a higher similarity score. In some embodiments, the product recommendation system 330 may remove products with similarity scores below a threshold from the generated product list. In some embodiments, any combination of the methods described below may be used to calculate the similarity score.
[0076] In some embodiments, the threshold value may be determined by internal users. In some embodiments, the product recommendation system 330 may determine the threshold value based on historical data from all customers. In some embodiments, a new threshold value (e.g., a preset threshold value) may be determined when all products in the generated list have similarity scores below the threshold value. In some embodiments, all products may be retained in the generated list. In some embodiments, recommended products may not be provided. For example, the product recommendation system 330 may calculate the threshold value based on deviations from historical values (e.g., product price, product category, aggregated customer actions, etc.). For example, the product recommendation system 330 may not calculate similarity scores for products whose attributes deviate from the historical average of the product's attributes by a predetermined value. In some embodiments, the product recommendation system 330 may terminate the model operation when no product has a similarity score that meets the threshold value.
[0077] In some embodiments, the product recommendation system 330 may generate a list of recommended products by calculating a similarity score (e.g., a numerical value) for each product in the generated product list. In some embodiments, the product recommendation system 330 may calculate the similarity score by assigning at least one weighted value to at least one factor. In some embodiments, the at least one factor may include historical user data on at least one of selecting a product on a webpage, adding a product to a shopping cart on a webpage, or purchasing a product on a webpage. For example, each user's engagement with a product may be a factor with a value of "1" (e.g., adding a product to a shopping cart five times on a webpage may have a factor with a sum of "5"). The product recommendation system 330 may assign weighted values to factors by multiplying the weighted value by the factor's value. For example, selecting a product on a webpage can be assigned a weighted value of "1", adding a product to a shopping cart on a webpage can be assigned a weighted value of "3", and purchasing a product on a webpage can be assigned a weighted value of "10" (e.g., making the product added to the shopping cart have a higher similarity score than the product selected on the webpage).
[0078] For example, in some embodiments, the attributes of the products used to calculate the similarity score may include at least one of product price, product category, or aggregated customer actions. For example, the product recommendation system 330 may calculate the similarity score based on a comparison between the product price on the generated product list and the product price of a product identifier associated with a determined product category. In some embodiments, threshold values may include a minimum price, a maximum price, or a price range, and the product recommendation system 330 may remove products from the generated product list whose similarity scores do not meet the threshold values.
[0079] In some embodiments, the product recommendation system 330 may determine search trends based on extracted attributes (e.g., users are searching for discounted products, users are searching for products from specific brands, users are searching for product size ranges, etc.) and assign weighted values to factors when calculating similarity scores based on search trends. For example, the product recommendation system 330 may assign higher weighted values to product price factors for products with prices within a defined price range (e.g., the price range may be the average price within a predetermined deviation of the products the user interacts with). For example, each product price may be a factor with a value of "1". The product recommendation system 330 may assign weighted values to factors by multiplying the weighted values by the factor values. For example, participation in products with prices outside the defined price range may be assigned a weighted value of "1", while participation in products with prices within the defined price range may be assigned a weighted value of "10".
[0080] In some embodiments, the product recommendation system 330 may calculate a similarity score based on a comparison between product categories on the generated list and a determined product category. In some embodiments, the product recommendation system 330 may remove products with similarity scores indicating that the product does not belong to the determined product category from the generated product list. For example, user 320A may frequently or primarily engage with expensive laptops (e.g., Macbooks, Microsoft Surface, etc.) over a two-week time span, but may occasionally engage with obviously less expensive laptops (e.g., searching for laptops priced below $200). The product recommendation system 330 may determine that the product category is expensive laptops and may calculate a similarity score indicating that obviously less expensive laptops do not belong to the determined category. The product recommendation system 330 may remove obviously less expensive laptops from the generated product list, so that only relevant products are recommended to user 320A.
[0081] In some embodiments, the product recommendation system 330 may calculate a similarity score based on a comparison of aggregated customer actions. For example, aggregated customer actions may include all customer actions (e.g., selecting a product on a webpage, adding a product to a shopping cart on a webpage, purchasing a product on a webpage, etc.) for products belonging to a determined product category within the same or different time spans. In some embodiments, the product recommendation system 330 may calculate a similarity score based on customer actions within a time span that ends at the point in time when a product belonging to the determined product category is purchased by a customer (e.g., user 320A).
[0082] In some embodiments, the product recommendation system 330 can calculate similarity scores by assigning different weights to different customer actions. For example, purchasing a product on a webpage can be assigned a higher weight than adding a product to a shopping cart on a webpage, and adding a product to a shopping cart on a webpage can be assigned a higher weight than selecting a product on a webpage. For example, each user's engagement with a product can be a factor with a value of "1" (e.g., adding a product to a shopping cart five times on a webpage can have a total factor of "5"). The product recommendation system 330 can assign weights to factors by multiplying the weighted values by the factor values. For example, selecting a product on a webpage can be assigned a weighted value of "1", adding a product to a shopping cart on a webpage can be assigned a weighted value of "3", and purchasing a product on a webpage can be assigned a weighted value of "10" (e.g., making products added to the shopping cart have a higher similarity score than products selected on the webpage).
[0083] In some embodiments, products with similarity scores based on aggregated customer actions may not initially be included in the generated product list. For example, after the product list is generated, the product recommendation system 330 may calculate the similarity score based on a comparison of aggregated customer actions. In some embodiments, the product recommendation system 330 may add a predetermined number of products with the highest similarity scores to the generated product list. In some embodiments, an internal user may determine the number of products to be added to the generated list. In some embodiments, the number of products to be added to the generated list may be determined based on historical data from all customers. For example, historical data may indicate that the predetermined number of products results in a list of products with the lowest similarity score deviation.
[0084] In some embodiments, the product recommendation system 330 may determine multiple product identifiers based on extracted keywords and determine that the multiple product identifiers belong to the same product category or related product categories. In some embodiments, the product recommendation system 330 may determine multiple product categories for one or more product identifiers. In some embodiments, the product recommendation system 330 may perform the steps described above to generate a product list for each determined product category.
[0085] In some embodiments, when a product appears on more than one generated list, the product suggestion system 330 may assign a greater weight to the product, thereby resulting in a higher similarity score for the product. For example, if three lists are generated and product A appears on two lists while product B appears on all three lists, product B is assigned a higher similarity score than product A, thus advantageously resulting in a more accurate generated list for product suggestions.
[0086] In some embodiments, user 320A can interact with user interface elements associated with a webpage (e.g., the SRP shown in Figure 1B) to sort the generated list of suggested products. For example, product suggestion system 330 can modify the user interface elements so that user 320A can sort the generated list of suggested products based on price, similarity score, sales volume, etc. In some embodiments, product suggestion system 330 can automatically modify the user interface elements to display the generated list of suggested products based on price, similarity score, sales volume, etc.
[0087] Referring to Figure 4, Figure 4 illustrates a process 400 for generating AI-based product recommendations. While in some embodiments the product recommendation system 330 may perform some of the steps set forth herein, other embodiments are also possible. For example, any of the systems and components described and illustrated herein (e.g., system 100, query system 350, customer affinity system 360, etc.) may perform the steps set forth in this disclosure. In some embodiments, the system components in setting 420 may operate in an offline environment, while the steps in setting 430 may be performed in a real-time online environment.
[0088] In step 401, system 300 may receive a query (e.g., a search request) from user device 320. System 300 may extract at least one keyword from the query. System 300 may determine user identifiers (e.g., customer identifier, user identifier, computer identifier, name, address, email address, telephone number, etc.) and product identifiers (e.g., product type keywords associated with at least one product category, barcodes, images, body text strings, RFID tags, etc.) based on the extracted keywords. The user identifier may be associated with user 320A (e.g., an online shopper).
[0089] System 300 can search a database 346 containing search action logs associated with user identifiers and product identifiers. In some embodiments, product suggestion system 330 can use a model to predict at least one suggested product based on user identifiers and product identifiers. For example, product suggestion system 330 can determine the time span associated with a user identifier by calculating the time it takes for user 320A to perform a predetermined number of actions. For example, the predetermined number of actions can be determined based on historical data associated with multiple product identifiers that the customer can interact with on a webpage (e.g., while browsing the webpage, selecting a product on the webpage, adding a product to the cart on the webpage, or purchasing a product on the webpage). For example, the predetermined number of actions can be the average number of actions the customer can perform from the first time they search for a product until they purchase a product. In some embodiments, the time span can be associated with the average amount of time the customer can browse and purchase products. In some embodiments, actions can include at least one of selecting a product on the webpage, adding a product to the cart on the webpage, or purchasing a product on the webpage.
[0090] In step 403, the product suggestion system 330 may retrieve from the query system 350 at least one query submitted by a user during the time span, associated with a user identifier. In some embodiments, the query may include at least one keyword associated with a product identifier. In some embodiments, the query system 350 may extract attributes from the user-submitted query. For example, the query system 350 may extract keywords from the query.
[0091] In step 405, the product recommendation system 330 may retrieve at least one filtering request submitted by the user 320A during the time span from the customer affinity system 360. The filtering request may include at least one of product size, product brand, and product price. In some embodiments, a user interface associated with a webpage may include filtering requests, wherein the user 320A may use filtering requests on a product list on the webpage (e.g., a product list provided when the user submits a query). In some embodiments, the product recommendation system 330 may retrieve at least one product specification associated with at least one product associated with the retrieved query or filtering request. In some embodiments, product specifications may include at least one of product size, product brand, product color, or product storage capacity. In some embodiments, the customer affinity system 360 may extract attributes from the filtering requests submitted by the user and from the product specifications. For example, the customer affinity system may extract filtering requests (e.g., product size, product brand, minimum product price, maximum product price, product price range, etc.) and associated keywords or products. In some embodiments, the customer affinity system may extract product specifications associated with keywords or products that users interact with (e.g., when selecting a product on a webpage, adding a product to a shopping cart on a webpage, purchasing a product on a webpage, etc.).
[0092] In step 407, the product recommendation system 330 can use the model and attributes extracted from self-queries, filter requests, and product specifications to determine the product category associated with the user identifier and the product identifier. In some embodiments, training data may include at least one of historical queries, historical filter requests, or historical product specifications from multiple customers.
[0093] In some embodiments, the product recommendation system 330 may generate a product list based on determined product categories. For example, the product recommendation system 330 may generate a list that includes all products in which the user 320A (associated with a user identifier) has participated (e.g., products selected by the user on the webpage, products added to the shopping cart on the webpage, or products purchased on the webpage). In some embodiments, the product recommendation system 330 may retrieve data from at least one of a database 346 (search action log), a query system 350, or a customer affinity system 360 to generate the list. In some embodiments, the product list may be generated based on user actions performed during the said time span.
[0094] In some embodiments, the product recommendation system 330 may calculate a similarity score for each product in the generated list. In some embodiments, the product recommendation system 330 may calculate the similarity score based on a comparison of the attributes of the products in the generated list with a determined product category. In some embodiments, products having more common attributes with the determined product category may have a higher similarity score. In some embodiments, the product recommendation system 330 may remove products with similarity scores below a threshold from the generated product list.
[0095] In step 409, the product suggestion system 330 may generate a suggested product list by calculating a similarity score for each product in the generated product list. In some embodiments, the product suggestion system 330 may calculate the similarity score by assigning at least one weighted value to at least one factor. In some embodiments, the at least one factor may include historical user data on at least one of selecting a product on a webpage, adding a product to a shopping cart on a webpage, or purchasing a product on a webpage.
[0096] For example, in some embodiments, the attributes of the products used to calculate the similarity score may include at least one of product price, product category, or aggregated customer actions. For example, the product recommendation system 330 may calculate the similarity score based on a comparison between the product price on the generated product list and the product price of a product identifier associated with a determined product category. In some embodiments, threshold values may include a minimum price, a maximum price, or a price range, and the product recommendation system 330 may remove products from the generated product list whose similarity scores do not meet the threshold values.
[0097] In some embodiments, the product recommendation system 330 may determine search trends based on extracted attributes (e.g., the user is searching for discounted products, the user is searching for products from a specific brand, the user is searching for a range of product sizes, etc.) and assign weighted values to factors when calculating similarity scores based on search trends. For example, the product recommendation system 330 may assign higher weighted values to product price factors for products with prices within a defined price range (e.g., the price range may be the average price within a predetermined deviation of the products the user interacts with).
[0098] In some embodiments, the product recommendation system 330 may calculate a similarity score based on a comparison between product categories in the generated list and the determined product categories. In some embodiments, the product recommendation system 330 may remove products with similarity scores indicating that the product does not belong to the determined product category from the generated product list.
[0099] In some embodiments, the product recommendation system 330 may calculate a similarity score based on a comparison of aggregated customer actions. For example, aggregated customer actions may include all customer actions (e.g., selecting a product on a webpage, adding a product to a shopping cart on a webpage, purchasing a product on a webpage, etc.) for products belonging to a determined product category within the same or different time spans. In some embodiments, the product recommendation system 330 may calculate a similarity score based on customer actions within a time span that ends at the point in time when a product belonging to the determined product category is purchased by a customer (e.g., user 320A).
[0100] In some embodiments, the product recommendation system 330 may calculate a similarity score by assigning different weights to different customer actions. For example, purchasing a product on a webpage may be assigned a higher weight than adding a product to a shopping cart on a webpage, and adding a product to a shopping cart on a webpage may be assigned a higher weight than selecting a product on a webpage. In some embodiments, products with similarity scores based on aggregated customer actions may not initially be included in the generated product list. For example, after the product list is generated, the product recommendation system 330 may calculate a similarity score based on a comparison of aggregated customer actions. In some embodiments, the product recommendation system 330 may add a predetermined number of products with the highest similarity scores to the generated product list. In some embodiments, an internal user may determine the number of products to be added to the generated list. In some embodiments, the number of products to be added to the generated list may be determined based on historical data from all customers. For example, historical data may indicate that the predetermined number of products results in a list of products with the lowest similarity score deviation.
[0101] In some embodiments, the product recommendation system 330 may determine multiple product identifiers based on extracted keywords and determine that the multiple product identifiers belong to the same product category or related product categories. In some embodiments, the product recommendation system 330 may determine multiple product categories for one or more product identifiers. In some embodiments, the product recommendation system 330 may perform the steps described above to generate a product list for each determined product category.
[0102] In some embodiments, when a product appears on more than one generated list, the product suggestion system 330 may assign a greater weight to the product, thereby resulting in a higher similarity score for the product. For example, if three lists are generated and product A appears on two lists while product B appears on all three lists, product B is assigned a higher similarity score than product A, thus advantageously resulting in a more accurate generated list for product suggestions.
[0103] For example, each product may have an initial similarity score based on different factors (e.g., user engagement, such as selecting a product on the webpage, adding a product to the shopping cart on the webpage, purchasing a product on the webpage, etc.). The product recommendation system 330 can assign weighted values to products by multiplying the weighted value by the product's initial similarity score. For example, since product A appears in two lists, product A can be assigned a weighted value of "2", and since product B appears in three lists, product B can be assigned a weighted value of "3".
[0104] In step 411, user 320A can interact with user interface elements associated with the webpage (e.g., the SRP shown in Figure 1B) to sort the generated list of suggested products. For example, product suggestion system 330 can modify the user interface elements so that user 320A can sort the generated list of suggested products based on price, similarity score, sales volume, etc. In some embodiments, product suggestion system 330 can automatically modify the user interface elements to display the generated list of suggested products based on price, similarity score, sales volume, etc.
[0105] Although this disclosure has been shown and described with reference to specific embodiments thereof, it should be understood that this disclosure can be practiced in other environments without modification. The foregoing description is presented for illustrative purposes. The foregoing description is not exhaustive and is not limited to the precise forms or embodiments disclosed. Various modifications and adaptations will become apparent to those skilled in the art upon consideration of the description and practice of the disclosed embodiments. Furthermore, although the forms of the disclosed embodiments are described as being stored in memory, those skilled in the art should understand that such forms can also be stored on other types of computer-readable media, such as auxiliary storage devices (e.g., compact disk read-only memory, CD ROM) or other forms of random access memory (RAM) or read-only memory (ROM), universal serial bus (USB) media, digital versatile disc (DVD), Blu-ray, or other optically driven media.
[0106] Computer programs based on the written descriptions and disclosed methods are within the skill level of experienced developers. Various programs or modules can be created using any techniques known to those skilled in this art, or can be designed in conjunction with existing software. For example, program sections or modules can be designed using or with the aid of the .NET Framework, .NET Compact Framework (and related languages such as Visual Basic, C, etc.), Java, C++, Objective-C, Hypertext Markup Language (HTML), HTML / AJAX combination, Extensible Markup Language (XML), or HTML including Java applets.
[0107] Furthermore, although exemplary embodiments have been described herein, those skilled in the art will contemplate any and all embodiments with equivalent elements, modifications, omissions, combinations (e.g., combinations of forms between various embodiments), adaptations, and / or alterations based on this disclosure. The limitations in the claims should be interpreted broadly based on the language used in the claims, and not limited to the examples set forth in this specification or during the application process. These examples should be considered non-exclusive. Moreover, the steps of the disclosed methods can be modified in any way, including by reordering the steps and / or inserting or deleting steps. Therefore, this specification and examples are intended to be illustrative only, and the true scope and spirit are indicated by the full scope of the following claims and their equivalents.
[0108] 100: Schematic block diagram / system 101: Shipment Authorization Technology (SAT) System / System 102A: Device / User Device / Mobile Device 102B: Device / User Device / Computer 103: External Front-End System 105: Internal Front-End System 107: Transportation System 107A, 107B, 107C: Mobile Devices / Apparatus 109: Seller's Entry 111: Shipment and Order Tracking (SOT) System 113: Execution Optimization (FO) System 115: Execution of the Message Gateway (FMG) 117: Supply Chain Management (SCM) System 119: Warehouse Management System (WMS) 119A: Mobile Devices / Devices / Tablet PCs 119B: Mobile Device / Appliance / PDA 119C: Mobile device / device / computer 121A, 121B, 121C: Third-Party Implementation (3PL) Systems 123: Fulfillment Center Authorization System (FCAuth) 125: Labor Relations Management System (LMS) 200: Fulfillment Center (FC) 201, 222: Trucks Items 202A, 202B, 208: 203: Entrance Area 205: Buffer 206: Forklift 207: Unloading Area 209: Picking Area 210: Storage unit 211: Packaging Area 213: Central region 214: Transportation agencies 215: Camp Area 216: Wall 218, 220: Packaging 224A, 224B: Delivery workers 226: Cars 300: System 310: Internet 320: User device 320A: User 330: Product Recommendation System 332, 352, 362: Processors 334, 354, 364: Memory 336, 356, 366: Database 346: Search Action Logs / Repositories 350: Query System 360: Customer Affinity System 400: Process 401, 403, 405, 407, 409, 411: Steps 420, 430: Settings
Claims
1. A computer-implemented system for generating product recommendations based on artificial intelligence, the system comprising: Memory stores instructions; and at least one processor, configured to execute the instructions to: receive a query from a user device; Extract at least one keyword from the query; Based on the extracted at least one keyword, a user identifier and a product identifier are determined; based on the determined user identifier and the determined product identifier, a database associated with the user identifier and the product identifier is searched; and based on the user identifier and the product identifier, a model is used to predict multiple suggested products by: determining a time span associated with the user identifier; extracting at least one query submitted by the user associated with the user identifier during the time span; extracting at least one filter request submitted by the user during the time span; extracting at least one product specification associated with at least one product associated with the extracted at least one query or at least one filter request; extracting attributes from the extracted at least one query, the extracted at least one filter request, and the extracted at least one product specification; determining a first product category and a second product category based on the extracted attributes; and determining the relationship between the user and the product identifier via the user device. During the time span associated with the identifier, the user participates in the first product category with a first frequency; the user device determines, during the time span associated with the user identifier, that the user participates in the second product category with a second frequency; the user determines that the first frequency is greater than the second frequency; one or more product lists are generated based on the determined first product category, wherein products belonging to the second product category are removed from the one or more product lists; a suggested product list is generated based on the generated one or more product lists, wherein generating the suggested product list includes calculating a similarity score for each product in the one or more product lists, wherein a first product appearing in a first number of the one or more product lists has a higher similarity score than a second product appearing in a second number of the one or more product lists, the first number being greater than the second number; and user interface elements associated with the webpage are modified to include the generated suggested product list.
2. The system as described in claim 1, wherein determining the time span includes calculating the time taken for the user to perform a predetermined number of actions.
3. The system as claimed in claim 2, wherein the action includes at least one of selecting a product on a webpage, adding a product to a shopping cart on the webpage, or purchasing a product on the webpage.
4. The system as described in claim 1, wherein the at least one query retrieved includes at least one keyword associated with a product identifier.
5. The system as claimed in claim 1, wherein the at least one filter request captured includes at least one of product size, product brand, or product price.
6. The system as claimed in claim 1, wherein the at least one product specification retrieved includes at least one of product size, product brand, product color, or product storage capacity.
7. The system as claimed in claim 1, wherein generating the model includes training data, and the training data includes at least one of historical queries, historical filtering requests, or historical product specifications from a plurality of customers.
8. The system as claimed in claim 1, wherein calculating the similarity score includes assigning at least one weighting value to at least one factor.
9. The system as claimed in claim 8, wherein the at least one factor includes historical user data of at least one of selecting a product on a webpage, adding a product to a shopping cart on the webpage, or purchasing a product on the webpage.
10. A computer-implemented method for generating product recommendations based on artificial intelligence, comprising: Query received from user device; Extract at least one keyword from the query; Based on the extracted at least one keyword, a user identifier and a product identifier are determined; based on the determined user identifier and the determined product identifier, a database associated with the user identifier and the product identifier is searched; and based on the user identifier and the product identifier, a model is used to predict multiple suggested products by: determining a time span associated with the user identifier; extracting at least one query submitted by the user associated with the user identifier during the time span; extracting at least one filter request submitted by the user during the time span; extracting at least one product specification associated with at least one product associated with the extracted at least one query or at least one filter request; extracting attributes from the extracted at least one query, the extracted at least one filter request, and the extracted at least one product specification; determining a first product category and a second product category based on the extracted attributes; and determining the relationship between the user and the product identifier via the user device. During the time span associated with the identifier, the user participates in the first product category with a first frequency; the user device determines, during the time span associated with the user identifier, that the user participates in the second product category with a second frequency; the user determines that the first frequency is greater than the second frequency; one or more product lists are generated based on the determined first product category, wherein products belonging to the second product category are removed from the one or more product lists; a suggested product list is generated based on the generated one or more product lists, wherein generating the suggested product list includes calculating a similarity score for each product in the one or more product lists, wherein a first product appearing in a first number of the one or more product lists has a higher similarity score than a second product appearing in a second number of the one or more product lists, the first number being greater than the second number; and user interface elements associated with the webpage are modified to include the generated suggested product list.
11. The method of claim 10, wherein determining the time span includes calculating the time taken for the user to perform a predetermined number of actions.
12. The method of claim 11, wherein the action includes at least one of selecting a product on a webpage, adding a product to a shopping cart on the webpage, or purchasing a product on the webpage.
13. The method of claim 10, wherein the at least one query retrieved includes at least one keyword associated with a product identifier.
14. The method of claim 10, wherein the at least one filtered application captured includes at least one of product size, product brand, or product price.
15. The method of claim 10, wherein the at least one product specification retrieved includes at least one of product size, product brand, product color, or product storage capacity.
16. The method of claim 10, wherein calculating the similarity score includes assigning at least one weighting value to at least one factor.
17. The method of claim 16, wherein the at least one factor includes historical user data of at least one of selecting a product on a webpage, adding a product to a shopping cart on the webpage, or purchasing a product on the webpage.
18. A computer-implemented system for generating product recommendations based on artificial intelligence, the system comprising: Memory stores instructions; and at least one processor, configured to execute the instructions to: receive a query from a user device; Extract at least one keyword from the query; Based on the extracted at least one keyword, a user identifier and a product identifier are determined; based on the determined user identifier and the determined product identifier, a database associated with the user identifier and the product identifier is searched; and based on the user identifier and the product identifier, a model is used to predict multiple suggested products by: determining a time span associated with the user identifier; extracting at least one query submitted by the user associated with the user identifier during the time span; extracting at least one filtering request submitted by the user during the time span; extracting at least one product specification associated with at least one product associated with the extracted at least one query or at least one filtering request; extracting attributes from the extracted at least one query, the extracted at least one filtering request, and the extracted at least one product specification; determining a first product category and a second product category based on the extracted attributes; and determining, via the user device, the user's participation in the product category during the time span associated with the user identifier. The process involves: determining a first frequency of a first product category; determining, via the user device, that the user participates in a second product category with a second frequency during a time span associated with the user identifier; determining that the first frequency is greater than the second frequency; generating one or more product lists based on the determined first product category, wherein products belonging to the second product category are removed from the one or more product lists; generating a suggested product list based on the generated one or more product lists, wherein generating the suggested product list includes calculating a similarity score for each product in the one or more product lists, wherein a first product appearing in a first number of the one or more product lists has a higher similarity score than a second product appearing in a second number of the one or more product lists, the first number being greater than the second number; calculating a similarity score for each product in the generated product list; removing products with similarity scores below a threshold from the generated product list; and modifying user interface elements associated with the webpage to include the generated suggested product list.
Citation Information
Patent Citations
Commodity recommendation method and device based on user behavior data
CN111429203A
Apparatus and method for presenting personalized goods information based on artificial intelligence, and recording medium thereof
KR100961782B1
Recommendation system and method
KR1020130035660A
System of providing product information using search keyword and transaction data, method thereof and computer readable medium having computer program recorded thereon
KR1020180108022A
Sorting method and apparatus of query results
TW201224972A
