COMPUTER-IMPLEMENTED METHOD FOR GENERATING A SUGGESTION LIST AND SYSTEM FOR GENERATING AN ORDER LIST
20200410573 ยท 2020-12-31
Assignee
Inventors
Cpc classification
G06Q30/0639
PHYSICS
G06Q30/0633
PHYSICS
International classification
Abstract
A computer-implemented method for generating a suggestion list for a user for product identifications for products stored in a product database. The suggestion list is generated for a certain point in time, i.e. not only relates to the user, but also to the particular moment. Whether a product is included in this suggestion list is determined by the method by analysing the times and time intervals of past purchases of this user for this product and, if applicable, products related to this product; and also, if applicable, by corresponding times and time intervals of other purchasers. The invention also relates to a system for generating an order list and for filling a shopping basket, which system uses a device designed to carry out the method.
Claims
1. A computer-implemented method for generating a suggestion list for a user for product identifications for products stored in a product database, said method comprising: a. by accessing a user database assigned to the users by means of a server, a product is determined or products of the products stored in the product database are determined, which the user has purchased in the past; b. for at least one determined product that the user has purchased in the past, the first time or the first times at which the user has purchased the product in the past is determined by access to the user database; c. at least a first time interval from the time of a last past purchase of the product by the user to a target time is calculated by the server; d. if multiple times have been determined at which the user has purchased the product in the past, a second time interval or second time intervals for times of successive past purchases of the product by the user is/are calculated by the server; e. depending on the first and, if several points in time have been determined at which the user has purchased the product in the past, the second time interval or the second time intervals, a first score, which is a measure of the probability that the user will purchase the product again at the target time, is calculated by the server using a first prediction method; and f. the suggestion list for product identifications is generated on the basis of the first score.
2. (canceled)
3. The method according to claim 1, wherein the method further comprises the following steps: g. by accessing the user database, it is determined, for multiple other users, at which second points in time the other users have purchased the product in the past; h. for each of the multiple other users, a third time interval is calculated by the server, or third time intervals are calculated by the server for points in time of successive past purchases of the product by another user; i. depending on the third time interval or the third time intervals calculated for the multiple other users, a second score, which is a measure of the probability that any user will purchase the product again at the target time, is calculated by the server using a second prediction method; j. a function value of a function assigned to the product and the user is calculated, the variables of which include at least the first score and the second score; and k. depending on the function values assigned to the products, the suggestion list for product identifications is generated.
4. (canceled)
5. The method according to claim 3, wherein: a first weighting value is calculated depending on the second time intervals and indicates the reliability of the first score, depending on the third time intervals, a second weighting value is calculated, which indicates the reliability of the second score, and when calculating the function value, the first score is then weighted with the first weighting value and the second score with the second weighting value.
6. The method according to claim 5, wherein: the first weighting value is zero if it has been determined in step a. that the user has purchased the product only once in the past.
7. The method according to claim 5, wherein: the first weighting value is all the greater, the more frequently the user has purchased the product in the past, such that a large number of second time intervals are calculated.
8. The method according to claim 3, wherein: the first score is calculated by means of a neural network and/or the second score is calculated by means of a logistic regression.
9. (canceled)
10. The method according to claim 1, wherein: the median of the second time intervals is calculated and the first score is further calculated depending on the calculated median of the second time intervals.
11. The method according to claim 1, wherein: the standard deviation of the second time intervals is calculated and the first score is further calculated depending on the calculated standard deviation of the second time intervals.
12. The method according to claim 3, wherein: the median of the third time intervals is calculated and the second score is further calculated depending on the calculated median of the third time intervals if the number of the second points in time is below a threshold value.
13. The method according claim 3, wherein: the probability of recurring purchases of the product is determined as a first attribute of the product by accessing the product database, and the first score and/or the second score is further calculated by the server in dependence on the first attribute.
14. The method claim 3, wherein: a second attribute of the product is determined as how likely a purchase of the product was at a determined time of the purchase of the product by the user or another user, and the first score and/or the second score is then further calculated by the server depending on the second attribute.
15. The method according claim 1, wherein: the ratio of the first time interval to the average of the second time intervals is determined as a third attribute of the product, and the first score is further calculated by the server depending on the third attribute; and/or the ratio of the first time interval to the last of the second time intervals is determined as a fourth attribute of the product, and the first score is further calculated by the server depending on the fourth attribute; and/or the time at which the product was purchased by the user or another user is determined as a fifth attribute of the product, and the first score and/or the second score is then further calculated by the server depending on the fifth attribute; and/or it is determined as a sixth attribute of the product whether the product was discounted when purchased by the user or another user, and the first score and/or the second score is further calculated by the server depending on the sixth attribute.
16-18. (canceled)
19. The method according to claim 1, wherein: a substitution product belonging to the product is determined by accessing the product database, and steps a. to h. are also carried out for the substitution product.
20-21. (canceled)
22. A method according to claim 1, wherein: when a product is purchased, a product identification of the product is captured by means of a first sensor, and a user identification by means of a second sensor, and the captured product identification and user identification are stored in the user database.
23. A device for data processing comprising a processor configured such that it performs the method according to claim 1.
24. A system for generating an order list with product identifications, said system comprising: a data processing device according to claim 23 and an input interface for detecting a user input for accepting and/or modifying the suggestion list generated by the device and for generating an order list with product identifications.
25. The system according to claim 24, wherein the system further comprises: a control unit which is coupled to the input interface and which is designed to determine and output to the user, by accessing the product database, position data of the product identifications in the order list.
26. The system according to claim 24, wherein the system further comprises: a filling device for filling a shopping basket with products to which the product identifications in the order list are assigned.
27. The system according to claim 26, wherein the control unit is coupled to the filling device, the control unit is designed to transmit the position data of the product identifications in the order list to the filling device, and the filling device is designed to transport the products of the product identifications in the order list from positions corresponding to the position data transmitted by the control unit to the shopping basket.
28. A computer program product comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method according claim 1.
Description
[0069] The invention will now be explained on the basis of embodiments with reference to the drawings.
[0070]
[0071]
[0072]
[0073]
[0074]
[0075] With reference to
[0076] The device 1 comprises a server 2, which for example provides an online shop for food. A client 3 of a user N is connected to the server 2 in a manner known per se, for example via the Internet. The client 3 comprises an output unit 4, for example a display, and an input unit 5, for example a keyboard and an electronic mouse. The output unit 4 could alternatively be provided via a mobile device or other interfaces, such as a television or other devices. In addition, clients, generally denoted by 6, of other users, generally denoted by X, can be coupled to the server 2 via the Internet.
[0077] To provide the online shop, the server 2 is coupled to a product database 7 and a user database 8. The user database 8 stores data regarding past purchases by users of the online shop provided by server 2. The product database 7 stores data regarding the products offered in the online shop.
[0078] During the operation of the online shop, the server stores data regarding user interactions in the user database 8 For example, data is stored when a certain user N places a product P in an electronic shopping basket. Data are also stored when the user N or another user X purchases a product P via the online shop.
[0079] In addition, the server 2 stores in the product database 7, for the individual products P, product identifications, properties and attributes of the products P as well as any other data belonging to the products P, as will be explained later.
[0080] Optionally, the device 1 can also detect purchases in shops. For this purpose, it can have an interface to a detection unit 11, for example, an electronic checkout. The detection unit 11 is coupled to a first sensor 9 and a second sensor 10. The first sensor 9 can detect a user identification when purchasing a product P, and the second sensor 10 can detect a product identification of a purchased product P. These data can be stored in the product database 7 and the user database 8 by means of the detection unit 11, such that server 2 can also access such purchases in shops.
[0081] With reference to
[0082] In
[0083] In
[0084] Data regarding the purchases of the product by the user N are stored in the user database 8 by means of the server 2 or the detection unit 11. In particular, the following data are stored for each purchase: the time of purchase including the time and date, a user identification, which is preferably pseudonymised, and a product identification, for example an article number of the product P. Furthermore, the number of purchased products P and the corresponding price can be stored in the user database 8.
[0085] In the same way, purchases of other users X are also stored in the user database 8 during the operation of the online shop. This is explained with reference to
[0086] Another user X purchased the product P in question at the times ZP-X-1, ZP-X-2 and ZP-X-3, and therefore, between two consecutive times of these purchases, the time intervals ZI3-X-1 and ZI3-X-2 result. These time intervals are also referred to as third time intervals. The data regarding these purchases are also stored user-specifically in the user database 8.
[0087] In the following, an exemplary embodiment of the method according to the invention is explained with reference to
[0088] The starting point of the method is that in the user database 8 the past purchases of a product P of a user N are stored together with the related data described above. In the same way, for a large number of other users X, corresponding data of past purchases are stored in the user database 8. Furthermore, properties and attributes of the product P are stored in the product database 7.
[0089] In step S1, the user N calls up a website of the online shop operated by the server 2 using the client 3, and the user N logs in so that he is detected by the server 2 via a user identification.
[0090] In a step S2, the server 2 then determines which products P the user N has purchased in the past by accessing the user database 8. For this purpose, a certain overall time period for past purchases can be used. For example, past purchases of the user N within the last 14 months can be viewed. For example, the customer has purchased products P1 to Pn in the past. The following steps are now performed for each of these products P1 to Pn.
[0091] In a step S3, it is determined for the product Pi by accessing the user database 8 by means of server 2 at which first time ZP-N-1 or at which times ZP-N-j (j>0) the user N purchased the product Pi in the past.
[0092] In a step S4, the server 2 calculates the time intervals between the times of the purchases. Since a time ZP-N-1 is always available for a past purchase by the user N, the first time interval ZI1-N is calculated by the server 2. If additional times ZP-N-j have been determined at which the user N purchased the product Pi in the past, the server will calculate a second time interval ZI2-N-1 or second time intervals ZI2-N-j for times of successive past purchases of the product Pi by the user N.
[0093] Then, in a step S5, the server 2 calculates a first score, which is a measure of the probability that the user N will purchase the product Pi again at the target time VZP, depending on the first time interval ZI1-N and, if multiple times have been determined at which the user N purchased the product Pi in the past, the second time interval ZI2-N-1 or the second time intervals ZI2-N-j. A first weighting value is also determined. The first weighting value provides a measure of the reliability of the first score for the probability that, taking into account the past purchases of user N, this user will want to purchase the product Pi again.
[0094] For this purpose, the temporal input variables described above are aggregated for a neural network. The aggregated input variables characterise the developments of the purchasing behaviour of the user N for the product Pi over a certain time period. In the present embodiment, a four-layer dense neural network with 2.4 million synapses is used for this purpose. It has been found that a reduction in the number of synapses or layers leads to poorer results, but an increase does not lead to an improvement. The neural network thus outputs the first score and, as applicable, also the first weighting value.
[0095] It has been found that the calculation of the first or second score on the basis of dense neural networks or logistic regressions has advantages over the calculation by other methods of artificial intelligence which are based on the pure purchase streams, i.e. the individual purchase transactions, without aggregation of the input variables. For this purpose, an application of artificial intelligence with recurrent neural networks could be implemented, for example, in which, for example, long term short term memory (LSTM) is used. However, the computing effort in this case is very high. The methods specified for the method according to the invention require much less computing power, and therefore the suggestion list can be generated so quickly that it can be used in an online shop without the user N leaving the online shop before the suggestion list is output.
[0096] Another possibility would be an approach with neural networks with less computing effort, for example based on one-dimensional convolutional neural networks. In this case, however, the computing effort is also much greater than with the aggregated input variables as described in conjunction with the method according to the invention.
[0097] In step S6, by accessing the user database 8 for a large number of other users X, it is determined at which second times ZP-X-j (jA) the other users X purchased the product Pi in the past. From this, the server 2 calculates, for another user X, a third time interval ZI3-X-1 or third time intervals ZI3-X-j for points in time of successive past purchases of the product Pi by another user X.
[0098] In step S7, the server 2 calculates a second score and a second weighting value depending on the third time interval ZI3-X-1 or the third time intervals ZI3-X-j, which were calculated for the multiple other users X. In this embodiment a logistic regression with certain cross variables is used for this purpose. Alternatively, a neural network could also be used in this case. The second score, which is generated by the logistic regression, is a measure of the probability that any user will purchase the product again at the target time VCP. The calculated second weighting value also indicates how reliable the second score is.
[0099] In a step S8, a function value assigned to the product Pi of a function for which the variables comprise the first score and/or the second score is calculated, the first score being weighted with the first weighting value and the second score being weighted with the second weighting value. The weighting ensures that the more meaningful the particular score is, the greater the extent to which it is included in the function value.
[0100] If, in the present exemplary embodiment, it is determined that user N has purchased the product Pi only once in the past, i.e. only at the time ZP-N-1, and the first time interval ZI1-N is present, the first weighting value is set to zero, so that the first score in this case is not considered in the calculation of the function value. The function value is then only calculated on the basis of the second score, which was generated on the basis of past purchases by other users X.
[0101] If several past purchases by the user N have been determined for the product Pi, the first weighting value is greater than zero. In particular, the more frequently the user N has purchased the product Pi in the past, especially within the overall time period, the greater the weighting value. In this case, in particular a large number of second time intervals ZI2-N-j can be calculated. In the calculation of the function value, the second score, which was obtained on the basis of purchases by other users X, is then taken into account to a lesser extent. For example, the function value is all the higher, the more likely it is that the corresponding product P will be purchased again by the user at the target time VZP.
[0102] On the other hand, it is also possible that past purchases of other user X are not taken into account, such that the second weighting value is set to zero. Only past purchases by the user N are then taken into account in the method.
[0103] From step S8, the method returns to step S3, and steps S3 to S8 are performed for the next product Pj that user N has already purchased at least once in the past, until these steps have been performed for all products P1 to Pn. Thus, a certain function value is then available for each product.
[0104] In step S9, a suggestion list is then generated depending on the function values assigned to the products P and contains product identifications. The suggestion list can, for example, contain product identifications of products P whose function value exceeds a certain threshold value. Alternatively, a certain number of product identifications of products P whose function values are the highest can be included in the suggestion list.
[0105] In step S10, the suggestion list with the product identifications is then output to the user N via the output unit 4. Alternatively or additionally, it can be output via an output unit to another apparatus for further processing.
[0106] In the following, supplementations to the previously described exemplary embodiment of the method according to the invention which lead to further embodiments are described.
[0107] Alternatively or additionally, in step S5, the number of purchases of a product Pi by the user N within the overall time period may be considered as an aggregated input variable.
[0108] Alternatively or additionally, in step S5, the median or a certain percentile of the second time intervals ZI2-N-j of the times of purchases of the product Pi by the customer N can be taken into account as an aggregated input variable in the calculation of the first score.
[0109] Alternatively or additionally, the standard deviation of the second time intervals ZI2-N-j for the product Pi for past purchases by the user N can also be taken into account in the calculation of the first score in step S5.
[0110] Alternatively or additionally, the last detected second time interval ZI2-N-1 for the product Pi for past purchases by the user N may also be considered as an aggregated input variable in step S5.
[0111] Alternatively, the individual times and intervals can be taken into account to varying degrees when determining the statistical variables, with newer times/intervals being taken into account to a greater extent.
[0112] Alternatively or additionally, each time and each interval can be included individually as input variables in the prediction function. For the individual times, additional properties such as the day of the week or time of day, as well as additional data determined, such as the weather at that time, can be included.
[0113] Alternatively or additionally, the probability of recurrent purchases of the product P can be determined as an aggregated input variable as a first attribute of the product P by accessing the product database 7. This first attribute may be stored in the product database 7 independently of any past purchases by the user N or other users X. It reflects a property of the product itself. This first attribute can be taken into account in step S5 and/or in step S7 when calculating the first and second scores.
[0114] Furthermore, alternatively or additionally, as a second attribute of the product P, it can be determined how likely was a purchase of the product P by the user N at a determined time ZP-N-j. In addition, it could be determined, as a second attribute of the product P, how likely was a purchase of the product P at a determined time ZP-X-j of the purchase of the product P by another user X. The second attribute can then be taken into account in step S5 and/or in step S7 when calculating the first or second score. In this way, a seasonality intensity of a product P across all customers at the time of the previous purchase of this product P by the user N or by another user X is taken into account. In addition, the seasonality intensity of a product P across all other users X at the target time VZP can be taken into account.
[0115] The seasonal intensity can be determined, for example, by means of the method for generating priority data for products, as described in WO 2016/174142 A1, which is included by reference in the description.
[0116] Alternatively or additionally, a third attribute can be taken into account in step S5 when calculating the first score and is the ratio of the first time interval ZI1-N to the average of the second time intervals ZI2-N-j. In this way, the duration since the last purchase of the product P by the user N is taken into account in relation to typical time intervals between purchases of this product P by this user N.
[0117] Alternatively or additionally, the ratio of the first time interval ZI1-N to the last ZI2-N-1 of the second time intervals ZI2-N-j can be determined as the fourth attribute of the product P and taken into account as an aggregated input variable in step S5 when calculating the first score. In this way, the length of time between the target time VZP and the last purchase of this product P by the user N is taken into account in relation to the last determined second time interval.
[0118] The calculation of the function value for a product P for the suggestion list, for relatively new users N or for new combinations of the user N with a certain product P, cannot yet be derived accurately from the past purchases of this user N. If a user N has very rarely purchased a certain product P, it is difficult to predict whether he will purchase it again when he re-visits the online shop. In this case, as described above, the probability of the product demand is predicted completely or for the most part on the basis of the general repeat purchase characteristics of the product P on the basis of past purchases by all other users X. For the calculation of the second score in step S7, in this case the following aggregated input variables in particular can be considered alternatively or additionally.
[0119] The median of the third time intervals ZI3-X-j and the second score can be calculated furthermore depending on this median. This aggregated input variable is then used in particular if the number of first time points, ZP-N-j, i.e. the number of past purchases by the user N, is below a threshold value.
[0120] Furthermore, a so-called AC score can be considered alternatively or additionally. This indicates a general relative probability of repeat purchases for the products P, which is based on the considerations of Agresti & Coull for approximating the binomial distribution, although no binomial distribution is calculated here.
[0121] In yet a further exemplary embodiment of the method according to the invention, the iteration of steps S3 to S8 not only takes into account the quantity of the products Pi which the user N has already purchased in the past. In addition, this iteration is carried out for substitution products for the products Pi. For this purpose, a substitution product belonging to a product Pi is determined by accessing the product database 7. Steps S2 to S8 are then carried out for this substitution product, and then steps S9 and S10 are carried out, taking the scores for this substitution product into account.
[0122] In a further exemplary embodiment, not only past purchases of a product P by the user N or another user X are taken into account, but additionally also visits by the user N or other user X where a product P of the product database 7, or a product group containing a product P of the product database 7, was not purchased. For example, the method may additionally take into account that the user N or another user X has only accessed information about a product P in the online shop, but has not purchased the product P.
[0123] In a further exemplary embodiment, the time and, if applicable, the day of the week on which the product P was purchased by the user N or another user X is determined as the fifth attribute of the product P. The first and/or second score is then calculated in step S5 or in step S7 depending on this fifth attribute.
[0124] It can also be taken into account if the product P was purchased at a time when it was subject to a discount. Furthermore, it can be taken into account that the product P, when it was purchased, was the cheapest product in a substitution group at a certain point in time. The influence of these factors can be taken into account both in the calculation of the first score and in the calculation of the second score.
[0125] Lastly, it could also be determined how the fidelity ratio was of a user N or another user X to a particular product relative to substitutes, and this could be taken into account as a further aggregated input variable in the calculation of the first and/or second score.
[0126] With reference to
[0127] The system comprises the device 1 described with reference to
[0128] The system is used generally to record purchases by the user N and other users X. During a payment process, the second sensor 10, which can be designed as a scanner for a product code, for example, records product identifications of the purchased products and transmits them to the electronic checkout 11. During the subsequent payment process, the user N or another user X is identified by means of the first sensor 9, for example by means of an identification of an electronic payment card. The electronic cash register 11 stores this data in the user database 8, as explained above. In this way, a purchase by the user N or another user X can be recorded and stored by means of the system in a shop.
[0129] In addition, the system is designed in accordance with the invention to generate an order list. For this purpose, the user N is first identified by means of the first sensor 9. The user identification of the user N is transmitted from the electronic checkout 11 to the device 1. As explained above, the device 1 then generates a suggestion list for the user N for those products P which the user N has already purchased in the past. The product identifications of the products in the suggestion list are output by means of a touch screen 12, which is controlled by the device 1. The user N can accept the suggestion list via the touch screen 12 or change it by user inputs. For example, the user N can select additional products P on the touch screen 12, which he has not yet purchased. The touchscreen 12 thus represents an input interface for detecting a user input, in particular for accepting or for changing the suggestion list output by the device 1.
[0130] When the user completes the input on the touch screen 12, an order list with product identifications is generated.
[0131] In addition, the system of this embodiment is designed to output position data of the product identifications in the order list.
[0132] The order list is transmitted from the touch screen 12 and to a control unit 13. The control unit accesses the product database 7 of the device 1, loads the position data of the product identifications in the order list and transmits this position data to the user. For example, the position data can be displayed by the touch screen 12. Preferably, however, the position data are transmitted wirelessly to a mobile device of the user.
[0133] Furthermore, the system of this embodiment is designed to fill a shopping basket 15.
[0134] The order list is also in this case transmitted from the touch screen 12 and to the control unit 13. The control unit 13 is additionally coupled to the device 1 and to the second sensor 10. The control unit 13 transmits the product identifications in the order list to the second sensor 10, which forwards it on to the electronic checkout 11. Together with the user identification transmitted by the first sensor 9, the electronic checkout 11 stores this data in the user database 8, so that these purchases can be used again in subsequent purchase transactions.
[0135] The system also comprises a filling device 14 for filling a shopping basket 15 with products P, to which the product identifications in the order list are assigned. A wireless communication link 16 exists between the control unit 13 and the filling device 14. The control unit accesses the product database 7 of the device 1, loads the position data of the product identifications in the order list and transmits these position data to the filling device 14. The filling device 14 is a mobile unit by means of which products P, for example from shelves at certain positions, can be taken and placed in the shopping basket 15. The filling device 14 receives from the control unit 13 via the wireless communication connection 16 the order list with the corresponding position data of the products in the order list. The filling device 14 then moves to the corresponding positions of the products in the order list and transports these products P to the shopping basket 15. If the shopping basket 15 is completely filled with the products in the order list, the filling device 14 communicates this to the control unit 13, which transmits a corresponding signal to the electronic checkout 11. The electronic checkout 11 can then automatically trigger the payment process for the user N, for example via the Internet. The user N can take the products P from the shopping basket 15.
LIST OF REFERENCE SKINS
[0136] 1 device [0137] 2 server [0138] 3 client of the user [0139] 4 output unit [0140] 5 input unit [0141] 6 clients of the other users [0142] 6-1 client of another user [0143] 6-2 client of another user [0144] 6-3 client of another user [0145] 7 product database [0146] 8 user database [0147] 9 first sensor [0148] 10 second sensor [0149] 11 detection unit; electronic checkout [0150] 12 touch screen [0151] 13 control unit [0152] 14 filling device [0153] 15 shopping basket [0154] 16 wireless communication link