Configure-price quotes with enhanced approval controls

By applying machine learning and neural network technology in CPQ systems, the approval possibilities and time of complex configurable product quotations are solved, and the management difficulties of complex quotation processes in existing systems are improved.

CN111406272BActive Publication Date: 2025-03-25ORACLE INT CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN201980005996.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-06-28
Filing Date
2019-06-07
Publication Date
2025-03-25
Estimated Expiration
2039-06-07

AI Technical Summary

Technical Problem

When dealing with the configuration and pricing of complex configurable products, existing CPQ systems face a large number of business rules management problems, resulting in users requiring multiple approvals before publishing price quotes, which is complex and time-consuming.

Method used

By introducing machine learning techniques into the CPQ system, especially using neural network models to generate quotes, inputting quote attributes into the neural network, predicting the likelihood that the quote will be approved and the time required for approval, and optimizing the quote attributes according to the gradient descent algorithm to improve approval possibilities and reduce approval time.

Benefits of technology

It realizes automated approval process guidance for quotations of complex configurable products, reduces uncertainty among users in the quotation approval process, and improves approval efficiency and accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111406272B_ABST
    Figure CN111406272B_ABST
Patent Text Reader

Abstract

An embodiment operates a configurator that generates a quote for a product or service configuration, the quote including a quote workflow, the quote workflow including at least one quote approval required, and the quote including a plurality of quote attributes defining the quote. An embodiment inputs the plurality of quote attributes into a first neural network model and a second neural network model, and utilizes gradient descent to generate a likelihood that the quote will be approved and a time required for the quote to be approved. An embodiment generates one or more attributes with maximum gradient values ​​for the likelihood that the quote will be approved and the time required for the quote to be approved. An embodiment receives a change to one or more of the attributes, and based on the change, regenerates the likelihood that the quote will be approved and / or the time required for the quote to be approved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] One embodiment relates generally to computer systems, and more particularly to generating product configurations and quotes using a computer system. Background Art

[0002] A Configure-Price-Quote (CPQ) system, also known as a sales configuration system, allows a user to create a sales quote that can include any number of products or services (collectively, "products"), some of which may be configurable. Both products and services (such as complex financial instruments) may be configurable to generate both product configurations and service configurations.

[0003] Existing CPQ systems are designed to be used by companies (usually manufacturers or service providers) that offer configurable products or services for sale. The systems are often designed to be managed by agents of the same entity that manufactures the product. Complex, configurable products used in business are often sold directly from the manufacturer to the company making the purchase. These types of sales may be referred to as business-to-business transactions, or B2B transactions.

[0004] CPQ systems can facilitate the process of selling complex configurable products by automating product configuration. Business rules that determine how products are configured and priced ("configuration rules" and "pricing rules") can be encoded in software applications and executed when users create quotes for configured products. Business rules ensure that products are configured correctly, required product components are included, and incompatible product options are preferably not selected. Pricing rules can apply complex logic (such as bundling discounts) to prices.

[0005] Configurable products, especially those sold in B2B transactions, can be very complex. The configuration and pricing rules that govern the configuration and pricing of complex products can be thousands or even hundreds of thousands in number. Examples of such highly complex products include cellular network base stations, automated material handling systems in large warehouses, and long-haul semi-tractor trucks. Even relatively simple products such as diesel generators, custom windows, and HVAC air handlers can have hundreds or thousands of business rules.

[0006] When configuring a product or service, a user (such as a sales user) typically requires approval before issuing a price quote for the configured product. The need for approval typically relies on predefined rules in the CPQ system. For example, if the price discount for the configured product is more than 20% and less than 50%, the rule may require approval from the sales manager. If the price discount is more than 50%, the rule may require approval from both the sales manager and the vice president of sales. Summary of the invention

[0007] An embodiment operates a configurator that generates a quote for a product or service configuration, the quote including a quote workflow, the quote workflow including at least one quote approval required, and the quote including a plurality of quote attributes defining the quote. An embodiment inputs the plurality of quote attributes into a first neural network model and a second neural network model. An embodiment utilizes gradient descent at the first neural network model to generate a likelihood that the quote will be approved, and generates a time required for the quote to be approved at the second neural network model. An embodiment generates one or more attributes with maximum gradient values ​​for the likelihood that the quote will be approved and the time required for the quote to be approved. An embodiment receives a change to the one or more of the attributes, and based on the change, regenerates the likelihood that the quote will be approved and / or the time required for the quote to be approved. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] Figure 1 is a block diagram of a computer server / system according to an embodiment of the present invention.

[0009] Figure 2A An example neural network according to an embodiment of the present invention is illustrated.

[0010] Figure 2B is a diagram illustrating learned content according to an embodiment.

[0011] Figure 3 The gradient at a specific point for each property is illustrated according to an embodiment.

[0012] Figure 4A An example neural network that may be used to predict approval time for an approved quote is illustrated in accordance with an embodiment of the present invention.

[0013] Figure 4B Illustrated is a graph modeling the output of a neural network according to an embodiment of the present invention.

[0014] Figure 5A Illustrated is a graph modeling the output of a neural network according to an embodiment of the present invention.

[0015] Figure 5B Illustrated is a graph modeling the output of a neural network according to an embodiment of the present invention.

[0016] Figures 6A-6C Illustrated is a graphical user interface presented to a user as part of a quote approval process according to one embodiment.

[0017] Fig. 7AAn example graphical user interface providing an output of approval possibilities to a user according to an embodiment is illustrated.

[0018] Figure 7B An example graphical user interface that provides an output of a predicted approval time to a user according to an embodiment is illustrated.

[0019] Figure 8 According to one embodiment, when providing enhanced quote approval functionality for CPQ, Figure 1 A flowchart of the high-level functionality of the Quote Approval module. DETAILED DESCRIPTION

[0020] One embodiment is a service or product configurator that uses machine learning to provide guidance on the workflow required to get a configured quote approved, including recommending changes to the quote to increase the chance that the quote will be approved or how to reduce the time required for approval.

[0021] Generally speaking, with known CPQ or configurator systems, no indication is given to a sales user who is submitting a quote for approval as to what the next step might be, or how long that step might take. The user is also often unclear about the likelihood of the quote being approved or the expected time it will take. Furthermore, with known systems, there is often no guidance to suggest other things the user might do to make approval more likely or reduce approval time.

[0022] Figure 1 1 is a block diagram of a computer server / system 10 according to an embodiment of the present invention. Although shown as a single system, the functionality of system 10 may be implemented as a distributed system. In addition, the functionality disclosed herein may be implemented on separate servers or devices that may be coupled together via a network. In addition, one or more components of system 10 may not be included. For example, for the functionality of a server, system 10 may need to include a processor and memory, but may not include Figure 1 One or more other components shown in , such as a keyboard or a display.

[0023] The system 10 includes a bus 12 or other communication mechanism for transmitting information, and a processor 22 coupled to the bus 12 to process the information. The processor 22 can be any type of general or special purpose processor. The system 10 also includes a memory 14 for storing information and instructions to be executed by the processor 22. The memory 14 can include any combination of random access memory ("RAM"), read-only memory ("ROM"), static memory such as a magnetic disk or optical disk, or any other type of computer-readable medium. The system 10 also includes a communication device 20, such as a network interface card, to provide access to a network. Thus, a user can interface with the system 10 directly or remotely over a network or any other method.

[0024] Computer readable media can be any available media that can be accessed by processor 22, and includes volatile and nonvolatile media, removable and non-removable media, and communication media. Communication media may include computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and includes any information delivery media.

[0025] Processor 22 is also coupled to a display 24, such as a liquid crystal display ("LCD"), via bus 12. A keyboard 26 and cursor control device 28, such as a computer mouse, are also coupled to bus 12 to enable a user to interface with system 10.

[0026] In one embodiment, memory 14 stores software modules that provide functionality when executed by processor 22. These modules include an operating system 15 that provides operating system functionality for system 10. The modules also include a quote approval module 16 that provides enhanced quote approval functionality for CPQ and all other functionality disclosed herein. System 10 may be part of a larger system that uses the disclosed quote approval functionality, such as a CPQ system (e.g., "CPQ Cloud" from Oracle Corporation) or an enterprise resource planning ("ERP") system. Thus, system 10 may include one or more additional functionality modules 18 to include additional functionality. When processor 22 executes at least software module 16, system 10 becomes a special-purpose computer that provides enhanced quote approval functionality as disclosed herein.

[0027] Database 17 is coupled to bus 12 to provide centralized storage for modules 16 and 18 and stores product attributes, financial data, inventory information, sales data, etc., as well as all other data required by modules 15, 16, and / or 18. In one embodiment, database 17 is a relational database management system ("RDBMS") that can use structured query language ("SQL") to manage the stored data. Database 17 can be located at Figure 1 Other components of the system may be located locally or remotely, such as in the cloud.

[0028] In one embodiment, particularly when there are a large number of configuration details to search, database 17 is implemented as an in-memory database ("IMDB"). An IMDB is a database management system that relies primarily on main memory to store computer data. This is in contrast to database management systems that employ disk storage mechanisms. Main memory databases are faster than disk-optimized databases because disk access is slower than memory access, the internal optimization algorithms are simpler, and fewer CPU instructions are executed. Accessing data in memory eliminates seek time when querying data, which provides faster and more predictable performance than disk.

[0029] In one embodiment, when implemented as an IMDB, database 17 is implemented based on a distributed data grid. A distributed data grid is a system in which a collection of computer servers work together in one or more clusters to manage information and related operations, such as calculations, in a distributed or clustered environment. A distributed data grid can be used to manage application objects and data shared across servers. A distributed data grid provides low response time, high throughput, predictable scalability, continuous availability, and information reliability. In a specific example, a distributed data grid (such as, for example, Oracle's "Oracle Coherence" data grid) stores information in memory to achieve higher performance, and uses redundancy to keep copies of the information synchronized across multiple servers, thereby ensuring the resilience of the system and ensuring the continuous availability of data when a server fails.

[0030] In one embodiment, system 10 is a computing / data processing system that includes an application or a collection of distributed applications for an enterprise organization. The application and computing system 10 may be configured to operate with or be implemented as a cloud-based networked system, software as a service ("SaaS") architecture, or other types of computing solutions.

[0031] As described above, a CPQ system or product / system configurator can generate a configuration and pricing for the configuration, which is provided to a user in the form of a quote for sale. Typically, depending on predefined rules, the quote must be approved before it is provided for sale. In an embodiment, quote approval is a step in the quote workflow that must be passed before the quote is sent to the fulfillment service. Known systems such as Oracle Corporation's "CPQ Cloud" enable administrators to generate a tree-based approval structure, thereby forcing users to obtain approval from each node on the tree before the quote can pass the approval process.

[0032] Quotations in known CPQ systems are processed through a customer-defined workflow. This creates the steps that a quotation can take, the actions that will move between the steps, and the permissions that each user can view the quotation at each step. One such specialized step is the step of submitting for approval. When it happens, the quotation enters the approval hierarchy. The hierarchy defines a tree of approvals that must be made in a specified order before the quotation is allowed to exit the pending approval state and be fully approved. Each node in the tree has a rule defined to specify when the node should become active. For example, if the quotation has a discount of more than 20%, then the rule can indicate that the quotation requires approval from management. The node is only turned on when the discount is exceeded. Otherwise, the node is bypassed.

[0033] Compared to known CPQ systems, embodiments add machine learning components to the end-user approval process to provide guidance on how approvals are likely to flow. Embodiments also provide guidance on what changes can be made to a quote to change the workflow of the quote (e.g., reduce the time required for approval). Guidance in embodiments relates to the time it takes to approve and the likelihood that a quote will be approved. Embodiments provide functionality in three key areas to increase and enhance end-user understanding of the status of a quote: (1) approval status indication; (2) approval likelihood indication; and / or (3) approval time indication.

[0034] In an embodiment, the approval takes the form of a node graph. Each level of approval may include multiple nodes, and the levels may be arranged in any order. A rejection in any approval node results in a rejection of the entire offer. Approval nodes must be navigated in order.

[0035] In an embodiment, approval data is maintained as a step in a quote workflow. The step has two results (i.e., approved or rejected) and a time value (i.e., how long the quote has been in the step). The quote also maintains attribute values ​​of the quote as the quote moves into the pending approval state. An attribute of a quote is any information related to the product or service that is the subject of the quote or the quote itself. Example attributes include the discount percentage of the quote (i.e., a numeric attribute), the line item total, the status of the purchase (i.e., a category attribute), the name of the purchaser, etc.

[0036] The following are examples of quotes and quote attributes where approval is triggered and can be enhanced using the functionality of embodiments of the present invention:

[0037] Suppose an equipment manufacturer is selling forklifts to a loyal customer. Due to the customer's loyalty, the sales user adds a 35% discount to the customer. This is above the standard limit of 20% discount, so it requires approval from the immediate manager.

[0038] ● Assume a gaming system is being sold. Due to the technology embedded in the system, export laws may come into effect. When the quote goes into approval, the "Export" option is set to true, which will trigger specific legal / security approvals.

[0039] Assume that a one-time quote is being created for a customer who recently completed a large volume order. Due to a previous order, the sales user selects the "Volume Discount" option. If this option is selected for an order of less than 100 items, then approval from the Vice President ("VP") is required.

[0040] Assume that a large generator order including more than 100 tons of product to be shipped is submitted to the system. This triggers an approval from the company's logistics department to ensure that the company can ship the requested items.

[0041] ●Suppose an order is placed for several cranes that require a specialized high-strength steel cable. The supply of this cable is low. Therefore, the presence of this type of cable in the parts list on the quote triggers an approval from the VP of the company’s supply department to ensure the required material is in stock.

[0042] · Assume that a sale of mining services is made to a foreign government. When the offer is pushed into the approval system, the fact that it is being sold to a foreign government triggers a specific Foreign Corrupt Practices Act (“FCPA”) review and approval step in the process.

[0043] The embodiment feeds this data into a machine learning system to train the system. Specifically, the embodiment feeds a past historical set (or a relevant subset) of all quote attributes and whether the quote was approved or the time it took for the quote to be approved. In order to find the relationship between the attributes and the likelihood of approval (or the time of approval), any machine learning system can be used in an embodiment. In one embodiment, the machine learning system is a neural network of linear neurons. After training the machine learning system, the embodiment generates two functions: one that maps the attribute set "({a})" to the likelihood of approval, and one that maps the attribute set to the time it will take to approve. The functions are defined as follows:

[0044] Likelihood = L({a}): generated from the set containing all quote attribute values ​​and the approval / rejection data for each quote.

[0045] Time = T({a}): generated based on the set of all quotation attribute values ​​and the length of the approval step for each quotation.

[0046] Both functions are generated by a machine learning algorithm and relate the quote attribute vector to the percentage likelihood or absolute time value of the approval component.

[0047] In an embodiment, the machine learning system that generates the above two functions uses gradient descent to do this. Specifically, it iteratively calculates the gradient of the loss function at each neuron and moves the coefficient weight of each input attribute in the direction of smaller loss. n During ({a}), for each input data point passed into ({a'}), two elements are calculated:

[0048] 1. The predicted value of the current function for {a'} (f n ({a'}) and how much that value differs from the known value associated with {a'} in the training dataset. The difference between the predicted value and the actual value is the error of the function for the current iteration. The variables of any loss function are actually the weights defined on each node in the neural network of that function. That is, the loss function will be a function of all the node coefficients.

[0049] 2. Due to f n () is a known function (it is determined when the network topology is chosen), so the gradient of the loss function can be calculated. In order to find where the minimum of this loss function is (which is actually the best prediction match of the function to the input), the coefficients are changed by a small amount in the most negative direction of the gradient. That is, the function f is determined by the gradient taken with respect to the coefficients of the function. n () is slightly modified. Then, the new function f is determined n+1 (). The same process is repeated many times until the algorithm can get very close to making the error zero.

[0050] As a result of the above, an optimal function is achieved. The embodiment answers the following question: given the current approval probability or approval time value for each quote, what changes can be made to the quote to make the probability or time go up or down. Since the gradient of the existing function is being calculated, the attributes that most affect the probability and time dependent variables can be calculated.

[0051] Therefore, an embodiment calculates a real gradient (which is the n-dimensional slope of the likelihood or time prediction curve) and generates a weighted list of how much influence these relevant attributes have on the result for all relevant attributes. Using this information, an embodiment displays an indication to the user of what changes should be made to the quote to achieve the optimal approval length, and provides the user with next steps. In general, the larger the gradient component of each attribute's weight, the greater the influence of the attribute in moving the approval likelihood or approval time value.

[0052] Example 1

[0053] As an example of the embodiment, assume the following data set, which includes 10 attributes, including categorical attributes (C1-C4) and numerical attributes (N5-N10):

[0054]

[0055]

[0056]

[0057]

[0058]

[0059]

[0060]

[0061]

[0062] In this simplified example, category 2 (C2) and value 7 (N7) are the only two real data components. The rest is randomly generated noise in the example, as only changes in C2 and N7 have any effect on the output probability value. Having noise shows how the algorithm can discern the determining factors. The basic relationship in the above data is as follows:

[0063] If C2 is in (1, 3, 5, 6) and N7>40, then the offer will be approved.

[0064] The approval time is directly proportional to the value of N7.

[0065] If C2 is in (0, 2, 4, 7), then the offer is not approved.

[0066] In the above examples, there is a mix of categorical and numerical attributes that are fed into the machine learning system. Different types of algorithms can be used for modeling, as long as the gradient is measured at the end. In one embodiment, a linear function is used for modeling together with an activation function that makes it easy to calculate the gradient at the end. The data set in the above example is relatively simple, so learning will be fast and accurate. Real world data is usually much more complex, requiring a larger network, but the same principles apply.

[0067] As disclosed above, following machine learning to determine when to approve a quote, an embodiment then performs machine learning to determine the likelihood that the quote will be approved. Figure 2AA neural network according to an embodiment of the present invention is illustrated. Network 200 includes three layers: layer 201 has 4 linear neurons, layer 202 has 2 linear neurons, and layer 203 has a single neuron with a sigmoid activation function on it. Input 220 contains 31 attributes, and output 221 contains a single number. In other embodiments, more complex networks can be used, including networks in which linear layers learn weights for inputs and a sigmoid last layer allows for non-linear functions. Other embodiments of the network can, for example, have non-linear nodes in the network, and the last layer can be any activation function that maps the output to a range of 0 to 1 values.

[0068] Figure 2B is a diagram illustrating learned content according to an embodiment. Figure 2B In , the x-axis is the row number of the input data, and the y-axis is the output probability. Figure 2B As shown, the predicted and actual values ​​almost coincide with each other.

[0069] Next, the embodiment suggests which attributes to change and how to process them. This is considered "perfect learning" because the error result in machine learning is 0. It can perfectly predict all data points in the training dataset. The incoming data is very clean. At this point, the embodiment can allow the selection of input variables and check what the gradient is at this time. The network that has been disclosed above is finally reduced to the following function:

[0070] f(x) = 1 / (1+e^(Mx))

[0071] This is because a linear function of a linear function is a linear function. Therefore, a deep network of linear functions can be represented as a single linear multiplier. In this case, both M and x are vectors, so x is broken down into (x1, x2, x3, ..., xn), and so is M. Therefore, Mx is actually (M1, M2, M3, ..., Mn). The gradient of this function is calculated as:

[0072] f'(x)=f(x)*(1-f(x))*M

[0073] This follows from the definition of the sigmoid function (1 / (1-e^x)) and the chain rule. More complex nonlinear networks will lead to more complex gradients.

[0074] Figure 3 The figure shows the gradient at a specific point for each attribute according to an embodiment. There are categorical attributes and numerical attributes. For the numerical attributes (N5-N10), it is shown that N7 has a peak at 301. Figure 3Two things can be learned from this. First, the gradient value for the N7 attribute is large. This means that as N7 changes, these changes will have a significant impact on the likelihood of approval. Second, the value is positive, which means that as N7 goes up, the likelihood of approval will also go up. This is consistent with expectations, as values ​​of N7 below 40 are known to be disapproved. Categorical attributes can be more difficult. At 302, C2 has been split into 8 different input variables, each of which is either on or off (one hot encodedvector). The gradients for each of these subcategories show a lot of variation. The gradient component of C2 has a high negative value at (1,0,0,0,0,0,0,0,0) or 0, or in other words, choosing 0 for this attribute (turning on the "0 feature") means that the likelihood of approval will be significantly reduced. For a value of 6 (0,0,0,0,0,0,0,1,0) on C2, the gradient component is positive, which means that it positively affects approval.

[0075] Other categorical attributes do not differ between different values. There is no peak in the gradient curve, but it is plateau. Similarly, for numerical attributes that do not drive approval, their gradient components are close to 0. Therefore, the following rules can be used to deduce the attributes that drive the likelihood of approval:

[0076] For numerical attributes, a large gradient value (the derivative with respect to the attribute) of each attribute will have a large impact on the approval value.

[0077] • For categorical attributes, the attributes that are the top drivers of approval are those with the largest differences between the vector components of the measured gradients.

[0078] The following application of Example 1 uses the C2 and N7 values ​​because Figure 3 All other properties shown are meaningless:

[0079] 1. C2 = 0, N7 = 30. The example would predict a Likelihood of Approval of 3.48499E-40, which is very low. Analysis of N7 suggests increasing the value of N7. Analysis of C2 suggests that C2 go to the highest derivative value (i.e., 6). If C2 is changed to 6, then the Likelihood of Approval rises to 0.17%. This is still very low, but shows that the example is on the cusp of having a good Likelihood of Approval. If N7 is raised from 0.3 to 0.4, then the Likelihood of Approval rises to 99.86%, which is good.

[0080] 2. C2=1, N7=30. The predicted likelihood for this scenario is 5.42179E-08, which is very low. An embodiment will recommend that the value of N7 be increased. The higher N7, the higher the likelihood of approval. When looking at C2, it will be determined that the optimal value of C2 is 6, but the difference between their individual gradient components is small, so the recommendation is weak. Alternatively, an embodiment will only recommend that N7 be made higher. If N7=40, then there is a 2.21% likelihood of approval. If N7=45, then there is a 93.60% likelihood of approval.

[0081] 3. C2 = 6, N7 = 70. The predicted likelihood for this scenario is approved 100% of the time. In all cases, the gradient will effectively be 0 (see the gradient formula above), so no recommendation can be made.

[0082] 4. C2 = 6, N7 = 50. This predicts a 99.9999997% likelihood of approval. The gradient will not be 0, but will be very small. In this case, the embodiment will still recommend increasing N7, but the increase will be a weak recommendation.

[0083] According to the above examples, it is shown that the scale of the gradient does not change shape, but in fact does change magnitude. This is because the model used in the example is simple. However, in embodiments using more complex models, this may not be the case. In general, embodiments not only learn the likelihood of approval, but also give recommendations about actions to be taken to increase the likelihood of approval.

[0084] Example 2

[0085] In Example 2, the same data set as Example 1 is used, but the purpose of the analysis is to determine when a quote was approved. In this example, the learning algorithm is changed from a classification learning algorithm to learning a trend line on the data. In this example, for all data that was not approved because the quote was never approved, the approval time is meaningless. In this example, some additional data is added to the set of Example 1 to learn some different values ​​for N7:

[0086]

[0087]

[0088]

[0089] This is the same dataset as in Example 1 above, but includes some additional records (where N7 is less than 40). Since these lines are not optimal, the approval time is long. In order to learn this, the neural network is revised to a more complex definition compared to Example 1.

[0090] Figure 4A A neural network 400 is illustrated that can be used to predict the approval time of an approved quote according to an embodiment of the present invention. Network 400 is a more complex network compared to network 200. The output 401 is not necessarily linear, so non-linear components are added to network 400. In the first layer 402 of the network, the tanh nodes (i.e., the non-linear components) are followed by linear nodes in the second layer 403, 404. This ensures that non-linear functions can be modeled, and the linear nodes ensure that a complete functional mapping to the output can be performed. Therefore, the output 401 is modeled using this network, as shown in FIG. Figure 4B 441 in (reordered as an ascending graph (i.e., if the data were ordered differently on the x-axis, it would look different from Figure 2B The curve diagram is similar to )).

[0091] As shown, the network 400 has learned the trend very well. Since the tanh function does not have a constant gradient, the gradient of the function varies significantly depending on the specific point. Looking at the values ​​at various points, one would expect to see that the attribute with the largest gradient is the attribute where a change would affect the output the most. For example, looking at the test point mapped to day 20, as Figure 5A As shown in the curve graph 501:

[0092] Input: 1,1,2,3,1.486538744,71.60306092,36,4.996422959,341.2976196,56.0979154,20

[0093] There is a spike in attribute N7 (at 505). This means that this attribute will be the one with the largest impact on the output. This is expected based on the relationships encoded into the input data. Figure 5B Graph 502 shows another input:

[0094] Input: 0,2,3,1,6.505569615,79.42243533,45,56.91429068,128.577184,37.55258624,4

[0095] Here, the curves look very similar, but the scale is completely different here. N7 has a spike (at 515) above all other attributes, but the magnitude of all attributes is reduced. This is because the level being modeled is smaller.

[0096] like Figure 5A and Figure 5BAs shown, this is a simple relationship. Since N7 is the only driver in this scenario, there are no other attributes to learn relationships with. However, as can be seen at all points (including 2 examples), N7 is above the other attributes on the gradient curve graph, which means that it is the attribute that will be singled out for suggesting changes to change the approval time value. Therefore, for approval type problems, the action suggestion can be determined based on the overall gradient calculation.

[0097] Approval Status Indicator

[0098] An embodiment provides a user viewing a quote with a visual indication of the path required to get the quote approved. A user ready to submit for approval will benefit from a visual inspection of the approval tree to see which nodes in the tree will be active for approval. The core component is a visual display showing the complexity of the hierarchy for each node. The tree object can be drilled down to see details about the approvers and the rules that were initiated to activate the node.

[0099] Figures 6A-6C 1 illustrates a graphical user interface presented to a user as part of a quote approval process according to one embodiment. Fig. 6A As shown in , an icon indicator is rendered on the "Approvals" tab 601. If all approval requirements have been met (including if no approval is required), then the icon is a green check mark. If one or more approvals are required, then the icon is a warning indicator, such as Fig. 6A as shown in .

[0100] In the Approvals tab, Figure 6B and Figure 6C ), a hierarchical diagram 602 or 603 is rendered to show the status of the approval requirement. Each approval step corresponds to an icon in the hierarchical diagram. In addition to color as an indication of status, the user can also focus on the icon, click on the icon, and hover over the icon to view a tooltip with complete information. As an example, gray may indicate that approval is required (the reason is evaluated to true) and no action has been returned. Green may indicate that the approval has been satisfied (approved or no approval is required). Red may indicate that the approval step was rejected.

[0101] As disclosed above, the Likelihood of Approval indication is a machine-learned value. The approval server / system will look at historical data to learn trends in how the input attributes will affect the output Likelihood of Approval. In addition to giving an overall Likelihood of Approval value for a quote, the embodiments will also show how to make changes and directions for changing specific attribute values ​​to increase the Likelihood of Approval.

[0102] Similarly, the approval time indication is also a machine-learned value and will show the user the expected time it will take to get approval for the quote.

[0103] As disclosed, a neural network model is generated for the approval likelihood and time indicator. In this scenario, the input would be a list of all appropriate attributes for the quote that is entering the approval phase. Furthermore, in an embodiment, attributes that are clearly non-determinative are excluded. For example, in one embodiment, the following attributes are eliminated from the quote:

[0104] HTML attributes.

[0105] RTE attributes.

[0106] Different ID attributes (quote ID, document ID, etc.).

[0107] • Constant attributes (attributes that are the same for every quote).

[0108] Once this cleaning is complete, the remaining attributes will be a subset ready to be fed into the neural network learning system. In an embodiment, the numerical attributes need to be normalized to between 0 and 1, and the categorical attributes need to be converted into a one-hot encoding vector. As an example of a hot encoding vector, assume that for a categorical attribute with 3 categories, the attribute of hair color can be brown, black, or blonde. It can be represented numerically in a variety of ways. For example, brown can be mapped to 1, black can be mapped to 2, and blonde can be mapped to 3. However, the machine will learn to get blonde>black>brown by the way they are mapped. This is undesirable because this relationship does not exist. Alternatively, the embodiment maps them to a one-hot encoding vector, which will establish a component for each attribute, and if it is not selected, then it will be 0, otherwise if it is selected then it will be 1. In this case, brown is [1,0,0], black is [0,1,0], and blonde is [0,0,1].

[0109] For approval likelihood, using one-hot encoded vectors for categorical inputs works well for standard logistic regression. The depth and width of the network will depend on the complexity of the input. In one embodiment, the initial network layers need to have at least as many nodes as the input, and no more than three layers are required to obtain acceptable learning rates in all cases.

[0110] As disclosed, mapping approval times can be a more complex network. This is not a linear regression problem because the relationship with the attributes will not be linear. The actual trend line will look more like a step function because once the attribute exceeds the value specified by the rule, the attribute will trigger a new approval node, thereby adding a new approval step. Therefore, a non-linear network is used to model. The width of the network should be as large as the list of attributes.

[0111] In an embodiment, in order to predict the likelihood of approval, it is first necessary to store the history of failed approvals. From the history of failed and successful bids, the embodiment can learn which bids are most likely to be approved, and then provide a predictor of the likelihood of the bid being approved for the bid. Users can use this value to gain insight into how they should handle the bid to make the likelihood of approval higher.

[0112] Embodiments may also be able to make recommendations on which attributes may be changed to make approval most likely.

[0113] In an embodiment for approval likelihood, the neural network is a standard binary network. Because the winning rate of an offer can be mapped to either win or lose, the approval action can also be mapped to approve or reject. An embodiment uses logistic regression, where the input is a set of attributes about the offer when approval or rejection occurs.

[0114] An embodiment receives historical data of approved and rejected quotes, and this data undergoes a preparatory process before it is fed into the learning network. Next, this input is fed into a logistic regression.

[0115] Fig. 7A An example graphical user interface is illustrated that provides an output of approval possibilities to a user according to an embodiment. The output may be provided as a bar gauge 701 or a circular gauge 702 and may be implemented using a JET UI.

[0116] The embodiment also maintains the length of time for approval from the workflow. This data can be used to measure the time it takes for an approved quote to be approved from the time it is submitted for approval to the time it is approved. Using this data, the embodiment learns how long it is expected to take for a quote to be approved based on the properties of the current quote. The approval time can be broken down to show the approval time at each step in the approval.

[0117] Time approval prediction is also a machine learning system. The input variables are attributes about the quote, and the output will be a single numeric value, which will be the estimated time that approval will take. For training, the embodiment uses the variables of the approved quote for input and the time it takes to go through the submitted step to the completed step in the workflow table. Previous rejections can be ignored. It is assumed that no changes are made to the quote after it is approved. In an embodiment, only the data showing the approval time needs to be pulled from the historical records by the approval system and pre-processed before they are fed into the machine learning network.

[0118] In an embodiment, the data model used to determine the approval time is a linear regression model. An embodiment creates a linear model that maps all quote attributes into the model. They will be mapped to the approval time from the above query.

[0119] Figure 7B An example graphical user interface providing an output of a predicted approval time to a user according to an embodiment is illustrated. The output may be provided as a bar gauge 711 or a circular gauge 722 and may be implemented using a JET UI.

[0120] Figure 8 According to one embodiment, when providing enhanced quote approval functionality for CPQ, Figure 1 Flowchart of the high-level functions of the quotation approval module 16. In one embodiment, Figure 3 The functions of the flowchart are implemented by software stored in a memory or other computer-readable or tangible medium and executed by a processor. In other embodiments, the functions may be performed by hardware (e.g., by using an application specific integrated circuit (“ASIC”), a programmable gate array (“PGA”), a field programmable gate array (“FPGA”), etc.) or any combination of hardware and software.

[0121] At 802, a configurator generates a quote for a product or service configuration. The quote is generated by user interaction with the configurator and includes a quote workflow that includes at least one quote approval required. The quote also includes a plurality of quote attributes that define the quote.

[0122] At 804, the quote attributes are input to at least two different trained neural networks (i.e., neural network models). One of the neural networks has been trained using past quotes and attributes and is configured to predict the likelihood that the quote will be approved. One of the neural networks has been trained using past quotes and attributes and is configured to predict the time required for the quote to be approved.

[0123] At 806, the neural network generates a likelihood that the quote will be approved and a time required for the quote to be approved, each generated using gradient descent.

[0124] At 808, each of the neural networks generates the attributes having the largest gradient values ​​to identify those attributes that can be modified to substantially change the likelihood that the quote will be approved or the time required for the quote to be approved.

[0125] At 810, one or more of the attributes identified at 808 are changed and the likelihood that the quote will be approved and / or the time required for the quote to be approved are recalculated.

[0126] As disclosed, embodiments include configurations or CPQ systems that are enhanced to provide users with predictions based on machine learning and neural networks about the likelihood that a quote will be approved and the time it will take for a quote to be approved. In addition, embodiments provide one or more attributes with high gradients to notify users that changing these attributes will have a large impact on the predictions.

[0127] Several embodiments are specifically illustrated and / or described herein. However, it will be appreciated that the above teachings cover modifications and variations to the disclosed embodiments without departing from the spirit and intended scope of the invention, and within the scope of the appended claims.

Claims

1. A method of configuring a device with approval control, the method comprising: generating a quote for a product or service configuration, the quote comprising a quote workflow, the quote workflow comprising at least one quote approval required, and the quote comprising a plurality of quote attributes defining the quote; Displaying a graphical user interface that provides a user with a visual indication of an approval route required for the quote to be approved, wherein displaying the graphical user interface comprises: displaying an approval hierarchy tree, the approval hierarchy tree comprising one or more nodes, each node represented by a respective icon corresponding to an approval step associated with the quotation; in response to a user selecting a respective icon representing a respective one of the one or more nodes, displaying details regarding an approver and at least one rule initiated to activate the respective node; displaying a likelihood indicator indicating a likelihood that the quote will be approved; displaying a time indicator indicating the time required for the quotation to be approved, the time being broken down to display the corresponding approval time for each approval step in the approval route; The possibility of the quotation being approved and the time required for the quotation to be approved are generated in the following manner: inputting the plurality of bid attributes into a first neural network model and a second neural network model; generating a likelihood that the quote will be approved using gradient descent at a first neural network model, and generating a time required for the quote to be approved at a second neural network model, wherein each of the first neural network model and the second neural network model iteratively calculates a gradient of a loss function at each neuron, And the coefficient weight of each quote attribute is moved in the direction of smaller loss; determining one or more attributes having maximum gradient values ​​for the likelihood that the bid will be approved and the time required for the bid to be approved; displaying a recommended change to the value corresponding to the one or more attributes to obtain an optimal approval length and providing next steps to the user; and A change to one or more of the values ​​corresponding to the one or more attributes is received from the user, and a likelihood that the quote will be approved and / or a time required for the quote to be approved is regenerated based on the change.

2. The method of claim 1, wherein: The quotation approval for the quotation includes a node diagram.

3. The method of claim 1, wherein: The quotation attributes include at least one category attribute and at least one numerical attribute.

4. The method of claim 1, wherein: The first neural network model includes three layers, two of which include linear neurons and the last layer includes a sigmoid activation function.

5. The method of claim 4, wherein: The first neural network model includes f(x)=1 / (1+e^(Mx)), which has a gradient including f'(x)=f(x)*(1-f(x))*M, where f is a function, M and x are vectors, and e is a mathematical constant.

6. The method of claim 1, wherein: The second neural network model includes three layers having a first input layer including a non-linear component and second and third layers including linear components.

7. The method of claim 3, wherein: The numerical attributes are normalized to be between 0 and 1, and the categorical attributes are transformed into one-hot encoded vectors.

8. A non-transitory computer-readable medium having instructions stored thereon, the instructions, when executed by a processor, causing the processor to provide a configuration, the providing a configuration comprising: generating a quote for a product or service configuration, the quote comprising a quote workflow, the quote workflow comprising at least one quote approval required, and the quote comprising a plurality of quote attributes defining the quote; Displaying a graphical user interface that provides a user with a visual indication of an approval route required for the quote to be approved, wherein displaying the graphical user interface comprises: displaying an approval hierarchy tree, the approval hierarchy tree comprising one or more nodes, each node represented by a respective icon corresponding to an approval step associated with the quotation; in response to a user selecting a respective icon representing a respective one of the one or more nodes, displaying details regarding an approver and at least one rule initiated to activate the respective node; displaying a likelihood indicator indicating a likelihood that the quote will be approved; displaying a time indicator indicating the time required for the quotation to be approved, the time being broken down to display the corresponding approval time for each approval step in the approval route; The possibility of the quotation being approved and the time required for the quotation to be approved are generated in the following manner: inputting the plurality of bid attributes into a first neural network model and a second neural network model; generating a likelihood that the quote will be approved using gradient descent at a first neural network model, and generating a time required for the quote to be approved at a second neural network model, wherein each of the first neural network model and the second neural network model iteratively calculates a gradient of a loss function at each neuron, And the coefficient weight of each quote attribute is moved in the direction of smaller loss; determining one or more attributes having maximum gradient values ​​for the likelihood that the bid will be approved and the time required for the bid to be approved; displaying a recommended change to the value corresponding to the one or more attributes to obtain an optimal approval length and providing next steps to the user; and A change to one or more of the values ​​corresponding to the one or more attributes is received from the user, and a likelihood that the quote will be approved and / or a time required for the quote to be approved is regenerated based on the change.

9. The non-transitory computer readable medium of claim 8, wherein: The quotation approval for the quotation includes a node diagram.

10. The non-transitory computer readable medium of claim 8, wherein: The quotation attributes include at least one category attribute and at least one numerical attribute.

11. The non-transitory computer readable medium of claim 8, wherein: The first neural network model includes three layers, two of which include linear neurons and the last layer includes a sigmoid activation function.

12. The non-transitory computer readable medium of claim 11, wherein: The first neural network model includes f(x)=1 / (1+e^(Mx)), which has a gradient including f'(x)=f(x)*(1-f(x))*M, where f is a function, M and x are vectors, and e is a mathematical constant.

13. The non-transitory computer readable medium of claim 8, wherein: The second neural network model includes three layers having a first input layer including a non-linear component and second and third layers including linear components.

14. The non-transitory computer readable medium of claim 10, wherein: The numerical attributes are normalized to be between 0 and 1, and the categorical attributes are transformed into one-hot encoded vectors.

15. A product configurator with approval control, comprising: The first neural network model; Second neural network model; a quote generator that generates a quote for a product or service configuration, the quote comprising a quote workflow, the quote workflow comprising at least one quote approval required, and the quote comprising a plurality of quote attributes defining the quote; The processor is configured as: Displaying a graphical user interface that provides a user with a visual indication of an approval route required for the quote to be approved, wherein displaying the graphical user interface comprises: displaying an approval hierarchy tree, the approval hierarchy tree comprising one or more nodes, each node represented by a respective icon corresponding to an approval step associated with the quotation; in response to a user selecting a respective icon representing a respective one of the one or more nodes, displaying details regarding an approver and at least one rule initiated to activate the respective node; displaying a likelihood indicator indicating a likelihood that the quote will be approved; displaying a time indicator indicating the time required for the quotation to be approved, the time being broken down to display the corresponding approval time for each approval step in the approval route; The possibility of the quotation being approved and the time required for the quotation to be approved are generated in the following manner: inputting the plurality of bid attributes into a first neural network model and a second neural network model; Generating a probability that the quote will be approved using gradient descent at the first neural network model, and generating a time required for the quote to be approved at the second neural network model, wherein each of the first neural network model and the second neural network model iteratively calculates the gradient of the loss function at each neuron and moves the coefficient weight of each quote attribute in the direction of smaller loss; determining one or more attributes having maximum gradient values ​​for the likelihood that the bid will be approved and the time required for the bid to be approved; displaying a recommended change to the value corresponding to the one or more attributes to obtain an optimal approval length and providing next steps to the user; and A change to one or more of the values ​​corresponding to the one or more attributes is received from the user, and a likelihood that the quote will be approved and / or a time required for the quote to be approved is regenerated based on the change.

16. The product configurator of claim 15, wherein: The quotation attributes include at least one category attribute and at least one numerical attribute.

17. The product configurator of claim 15, wherein: The first neural network model includes three layers, two of which include linear neurons and the last layer includes a sigmoid activation function.

18. The product configurator of claim 17, wherein: The first neural network model includes f(x)=1 / (1+e^(Mx)), which has a gradient including f'(x)=f(x)*(1-f(x))*M, where f is a function, M and x are vectors, and e is a mathematical constant.

19. The product configurator of claim 15, wherein: The second neural network model includes three layers having a first input layer including a non-linear component and second and third layers including linear components.

20. The product configurator of claim 16, wherein: The numerical attributes are normalized to be between 0 and 1, and the categorical attributes are transformed into one-hot encoded vectors.

21. A configuration system with approval control, comprising: processor; as well as A non-transitory computer readable medium having instructions stored thereon, which when executed by a processor causes the processor to perform the method of any one of claims 1-7.

22. An apparatus comprising means for performing the method of any one of claims 1-7.

Citation Information

Patent Citations

  • Machine learning-based quotation method

    CN107886359A

  • Marine product configuration and pricing system having a variable price component

    US20050010539A1