EP4689919A1 - Computer-implemented methods for searching over the internet, databases, methods of producing such databases, and related systems and computer program products - Google Patents
Computer-implemented methods for searching over the internet, databases, methods of producing such databases, and related systems and computer program productsInfo
- Publication number
- EP4689919A1 EP4689919A1 EP24827102.5A EP24827102A EP4689919A1 EP 4689919 A1 EP4689919 A1 EP 4689919A1 EP 24827102 A EP24827102 A EP 24827102A EP 4689919 A1 EP4689919 A1 EP 4689919A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- search
- travel
- travel search
- responses
- parameters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/02—Reservations, e.g. for tickets, services or events
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/14—Travel agencies
Definitions
- the field of the invention relates to computer-implemented methods for searching over the internet, especially to reducing energy usage in such methods, to related machine learning models, to related training databases for training such machine learning models, and related methods of producing such databases, to related databases for providing input to such trained machine learning models, and related methods of producing such databases, and to related systems, servers, computers and computer program products.
- EP3557437A1 and EP3557437B1 disclose a case management system which is configured to generate search templates based on selection of a search type and one or more data sources. As configured, the case management system enables execution of searches using the generated search template on synchronous and asynchronous data sources and provides periodic polling of the asynchronous data sources to generate consolidated search results.
- a computer- implemented method of predicting when to stop polling early in a travel search including the steps of
- the machine learning model generating an output indicator based on the inputs, wherein the output indicates if the polling should be stopped before a predetermined time, or not, wherein the output is determined by applying the learned parameters to the inputs using the machine learning model;
- step (ix) proceeding to step (x) if the predetermined time is reached, or if the output indicator indicates that the polling should be stopped; otherwise repeating steps (iii) to (viii); (x) storing the distinct responses received;
- An advantage is that because polling is stopped early, energy consumption is reduced.
- An advantage is that because polling is stopped early, a final set of processed distinct responses is received sooner by the user terminal, compared to always waiting for a predetermined time, before sending the final set of processed distinct responses received to the user terminal.
- the method may be one in which steps (vi) to (viii) take less than 100ms.
- the method may be one wherein the predetermined time is in the range of 30s to 120s, or wherein the predetermined time is in the range of 45s to 90s, or wherein the predetermined time is in the range of 55s to 65s, or wherein the predetermined time is 60s.
- the method may be one wherein even when polling (e.g. from a front end) has been stopped, the search is continued (e.g. in a back end), up to a final predetermined time (e.g. 60s) to obtain and to store quotes search data which can be used in future training of the model.
- a final predetermined time e.g. 60s
- the method may be one wherein the searches which continue (e.g. in the back end) are a sample of all the searches that are performed, e.g. in the range of 1% to 20% of all the searches that are performed, or in the range of 1% to 50% of all the searches that have been performed, or in the range of 1% to 70% of all the searches that have been performed, so that not all the searches are continued (e.g. in the back end).
- the searches which continue are a sample of all the searches that are performed, e.g. in the range of 1% to 20% of all the searches that are performed, or in the range of 1% to 50% of all the searches that have been performed, or in the range of 1% to 70% of all the searches that have been performed, so that not all the searches are continued (e.g. in the back end).
- the method may be one in which the travel search request is a flight search request, or a hotel search request, or a vehicle search request, or a train journey search request, or an event search request.
- the method may be one in which the travel search request is a flight search request.
- the method may be one in which the flight search request is for a return flight, in which start and destination are specified, outbound and return travel dates are specified, the number of passengers is specified, and cabin class is specified.
- the method may be one in which when processing the distinct responses received to provide a set of processed distinct responses received, the distinct responses received are processed into itinerary results, wherein each itinerary result includes respective quotes.
- the method may be one in which for each respective itinerary result, a respective selectable option is provided on a display screen of the user terminal which is selectable to present the quotes associated with the respective itinerary.
- the method may be one in which when the respective selectable option is selected for the respective itinerary, the user terminal requests the quotes for the respective itinerary from the search service server and the search service server returns the quotes for display on the display screen of the user terminal.
- the method may be one in which the set of processed distinct responses received are presented in a booking panel.
- the method may be one in which the search is resumed if the user indicates a potential willingness to make a booking, such as by clicking on a search result to view more detail.
- the method may be one in which the method is used when contacting an external classifier microservice.
- the method may be one in which the user terminal is a computing device e.g. smartphone, tablet computer, desktop computer, laptop computer, or smart TV.
- a computing device e.g. smartphone, tablet computer, desktop computer, laptop computer, or smart TV.
- the method may be one in which the trained machine learning model uses Python or Java.
- the method may be one in which the trained machine learning is deployed in all geographic regions in which the search service (e.g. FPS) is present.
- the search service e.g. FPS
- the method may be one in which the search service uses a Java client, e.g. one which is already integrated into Itinerary Filtering/Construction.
- the method may be one wherein the model travel search parameters derived from the travel search parameters include a query market derived from a destination (e.g. airport).
- a destination e.g. airport
- the method may be one wherein the model travel search parameters derived from the travel search parameters include a booking horizon, which is derived from the departure date.
- the method may be one wherein the model travel search parameters derived from the travel search parameters include a trip duration, which is derived from a departure date and a return date.
- the method may be one wherein the machine learning model has been trained using a method of any aspect of the second aspect of the invention.
- the method may be one wherein the trained machine learning model has been trained using a training database produced by a method of any aspect of the fourth aspect of the invention.
- a computer- implemented method for training a machine learning model, to predict when to stop polling early in a travel search including the steps of:
- each dataset comprising a respective model travel search request including respective model travel search parameters, and a respective determined cumulative number of distinct received search request responses, divided by a respective total number of search results, as a function of successive polling interval, as inputs, and target outputs comprising a corresponding indicator as a target output for each determined cumulative number of distinct received search request responses divided by the respective total number of search results;
- step (vii) storing the parameters which correspond to the trained machine learning model which met the predefined convergence criterion in step (vi).
- An advantage is that because polling may be stopped early using the trained machine learning model, energy consumption is reduced.
- An advantage is that because polling may be stopped early using the trained machine learning model, a final set of processed distinct responses is received sooner by the user terminal, compared to always waiting for a predetermined time, before sending the final set of processed distinct responses received to the user terminal.
- the method may be one in which the model travel search request is a flight search request, or a hotel search request, or a vehicle search request, or a train journey search request, or an event search request.
- the method may be one in which the stored datasets in the database are a sample of all searches performed, e.g. in the range of 1% to 20% of all the searches that have been performed, or in the range of 1% to 50% of all the searches that have been performed, or in the range of 1% to 70% of all the searches that have been performed.
- the method may be one wherein the database is updated after a predefined time interval, e.g. once per week, or once per day, and the machine learning model is correspondingly retrained using the updated database.
- the method may be one in which a moving time window is used for the training.
- the method may be one in which the number of datasets is at least one thousand, or at least ten thousand, at least one hundred thousand, or at least one million, or at least two million.
- the method may be one wherein the trained machine learning model is trained using a training database produced by a method of any of aspect of the fourth aspect of the invention.
- a stored trained machine learning model produced by a method of any aspect of the second aspect of the invention.
- An advantage is that because polling may be stopped early using the trained machine learning model, energy consumption is reduced.
- An advantage is that because polling may be stopped early using the trained machine learning model, a final set of processed distinct responses is received sooner by the user terminal, compared to always waiting for a predetermined time, before sending the final set of processed distinct responses received to the user terminal.
- the method may be one wherein the predetermined time is in the range of 30s to 120s, or wherein the predetermined time is in the range of 45s to 90s, or wherein the predetermined time is in the range of 55s to 65s, or wherein the predetermined time is 60s.
- the method may be one wherein the threshold is a predetermined threshold.
- the method may be one wherein the predetermined threshold is in the range 0.40 to 0.95, or wherein the predetermined threshold is in the range 0.60 to 0.90, or wherein the predetermined threshold is in the range 0.70 to 0.85, or wherein the predetermined threshold is 0.8.
- the method may be one wherein the threshold is a function of the respective model travel search parameters (e.g. in a simple example it is 0.6 when the target market is UK, or it is 0.8 when the target market is USA).
- the threshold is a function of the respective model travel search parameters (e.g. in a simple example it is 0.6 when the target market is UK, or it is 0.8 when the target market is USA).
- the method may be one including in step (vi) storing in the first data set the received responses, and in step (x) the respective processed first dataset includes processed received responses derived from the received responses; in which the threshold is a function of the processed received responses.
- the processed received responses may be processed such that the threshold is set so as to include a cheapest result of the processed received responses in order for the second indicator to be stored.
- the processed received responses may be processed to rank the processed received responses, and wherein the threshold is set so as to include a most highly ranked processed received response of the processed received responses in order for the second indicator to be stored.
- the method may be one in which the polling intervals are in the range of 0.2s to 50s, or in which the polling intervals are in the range of 0.5s to 45s, or in which the polling intervals are in the range of 1.0s to 30s.
- the method may be one in which the stored processed first datasets in the database are a sample of all searches performed, e.g. in the range of 1% to 20% of all the searches that have been performed, or in the range of 1% to 50% of all the searches that have been performed, or in the range of 1% to 70% of all the searches that have been performed.
- the method may be one wherein the database is updated after a predefined time interval, e.g. once per week, or once per day.
- the method may be one in which the number of search requests is at least one thousand, or at least ten thousand, at least one hundred thousand, or at least one million, or at least two million.
- the method may be one in which the travel search request is a flight search request, or a hotel search request, or a vehicle search request, or a train journey search request, or an event search request.
- the method may be one in which the travel search request is a flight search request.
- the method may be one in which the flight search request is for a return flight, in which start and destination are specified, outbound and return travel dates are specified, the number of passengers is specified, and cabin class is specified.
- the method may be one wherein the respective model travel search parameters derived from the respective travel search parameters include a query market derived from a destination (e.g. airport).
- a destination e.g. airport
- the method may be one wherein the respective model travel search parameters derived from the respective travel search parameters include a booking horizon, which is derived from the departure date.
- the method may be one wherein the respective model travel search parameters derived from the respective travel search parameters include a trip duration, which is derived from a departure date and a return date.
- the method may be one wherein step (vi) includes deriving and storing an itinerary count from the stored received responses.
- the method may be one wherein the travel search request is received from a user terminal computing device e.g. smartphone, tablet computer, desktop computer, laptop computer, or smart TV.
- An advantage is that because polling may be stopped early using the trained machine learning model, energy consumption is reduced.
- An advantage is that because polling may be stopped early using the trained machine learning model, a final set of processed distinct responses is received sooner by the user terminal, compared to always waiting for a predetermined time, before sending the final set of processed distinct responses received to the user terminal.
- a stored database for training a machine learning model to predict when to stop polling early in a travel search, the database having been produced and stored using a method of any aspect of the fourth aspect of the invention.
- Advantages includes those of the fourth aspect of the invention.
- a computer- implemented method of producing and storing a database for predicting total search results as a function of an input travel search request including input travel search parameters including the steps of:
- step (ix) processing the respective first dataset to produce a respective processed first dataset, the respective processed first dataset including the respective travel search request including the respective travel search parameters and the respective total number of search results, and the respective time associated with step (vi);
- step (xi) processing the processed first datasets to produce a database of total number of search results as a function of travel search request including respective travel search parameters, wherein the database entry for a given travel search request including respective travel search parameters is a most recent request for the travel search including respective travel search parameters, wherein the most recent request for the travel search including respective travel search parameters is determined using respective times associated with step (vi).
- An advantage is that because polling may be stopped early using the trained machine learning model which uses data from the database as input, energy consumption is reduced.
- An advantage is that because polling may be stopped early using the trained machine learning model which uses data from the database as input, a final set of processed distinct responses is received sooner by the user terminal, compared to always waiting for a predetermined time, before sending the final set of processed distinct responses received to the user terminal.
- the method may be one in which the travel search request is a flight search request, or a hotel search request, or a vehicle search request, or a train journey search request, or an event search request.
- the method may be one wherein the predetermined time is in the range of 30s to 120s, or wherein the predetermined time is in the range of 45s to 90s, or wherein the predetermined time is in the range of 55s to 65s, or wherein the predetermined time is 60s.
- the method may be one in which the polling intervals are in the range of 0.2s to 50s, or in which the polling intervals are in the range of 0.5s to 45s, or in which the polling intervals are in the range of 1.0s to 30s.
- the method may be one in which the processed first datasets in the database are a sample of all searches performed, e.g. in the range of 1% to 20% of all the searches that have been performed, or in the range of 1% to 50% of all the searches that have been performed, or in the range of 1% to 70% of all the searches that have been performed.
- the method may be one wherein the database is updated after a predefined time interval, e.g. once per week, or once per day.
- the method may be one in which the number of processed first datasets is at least one thousand, or at least ten thousand, at least one hundred thousand, or at least one million, or at least two million.
- the method may be one wherein the travel search request is received from a user terminal computing device e.g. smartphone, tablet computer, desktop computer, laptop computer, or smart TV.
- a user terminal computing device e.g. smartphone, tablet computer, desktop computer, laptop computer, or smart TV.
- a stored database for predicting total search results as a function of an input travel search request including input travel search parameters the database having been produced and stored using a method of any aspect of the sixth aspect of the invention. Advantages include those of the sixth aspect of the invention.
- a system including a server and a computer, the computer configured to execute a trained machine learning model to predict when to stop polling early in a travel search, wherein:
- the server is configured to receive a travel search request from a user terminal, the travel search request including travel search parameters;
- the server is configured to consult a database, wherein the database returns an expected total number of search results in response to receiving the travel search request including the travel search parameters from the server;
- the server is configured to poll a plurality of search service servers using the travel search request including the travel search parameters;
- the server is configured to receive responses from at least one of the plurality of search service servers, and to store the received responses;
- the server is configured to process the stored received responses to determine distinct responses received, and then to determine a cumulative number of distinct responses received;
- the server is configured to convert the travel search request including the travel search parameters into a model travel search request including model travel search parameters, and to input the model travel search request including the model travel search parameters and the determined cumulative number of distinct responses received divided by the expected total number of search results, into the trained machine learning model;
- the computer is configured to execute the trained machine learning model to process the model travel search request including the model travel search parameters, and the determined cumulative number of distinct responses received divided by the expected total number of search results, through the machine learning model, wherein the machine learning model has been previously trained and comprises a set of learned parameters;
- the computer is configured to execute the machine learning model to generate an output indicator based on the inputs, wherein the output indicates if the polling should be stopped before a predetermined time, or not, wherein the output is determined by applying the learned parameters to the inputs using the machine learning model;
- (x) the server is configured to store the distinct responses received
- the server is configured to process the distinct responses received to provide a set of processed distinct responses received
- the server is configured to send the set of processed distinct responses received to the user terminal.
- Advantages include those of the first aspect of the invention.
- the system may be configured to perform a method of any aspect of the first aspect of the invention.
- a computer configured to train a machine learning model, to predict when to stop polling early in a travel search, wherein the computer is configured to:
- each dataset comprising a respective model travel search request including respective model travel search parameters, and a respective determined cumulative number of distinct received search request responses, divided by a respective total number of search results, as a function of successive polling interval, as inputs, and target outputs comprising a corresponding indicator as a target output for each determined cumulative number of distinct received search request responses divided by the respective total number of search results;
- the computer may be configured to perform a method of any aspect of the second aspect of the invention.
- a server system configured to produce and to store a training database for training a machine learning model to predict when to stop polling early in a travel search, the server system configured to:
- (viii) define a first indicator (e.g. a first Boolean value) which indicates that a search should be continued, and define a second indicator (e.g. a second Boolean value different to the first Boolean value) different to the first indicator which indicates that a search should be stopped;
- a first indicator e.g. a first Boolean value
- a second indicator e.g. a second Boolean value different to the first Boolean value
- (x) process the respective first dataset to produce a respective processed first dataset, the respective processed first dataset including a respective model travel search request including respective model travel search parameters derived from the respective travel search parameters; the respective processed first dataset further including the determined cumulative number of distinct received responses, divided by the respective total number of search results, as a function of successive polling interval; wherein for each stored determined cumulative number of distinct received responses divided by the respective total number of search results, if the value of the cumulative number of distinct received responses divided by the respective total number of search results is less than a threshold, then the cumulative number of distinct received responses divided by the respective total number of search results is stored together with the first indicator, otherwise the cumulative number of distinct received responses divided by the respective total number of search results is stored together with the second indicator;
- the server system may be configured to perform a method of any aspect of the fourth aspect of the invention.
- a server system configured to produce and to store a database for predicting total search results as a function of an input travel search request including input travel search parameters, the server system configured to:
- (xi) process the processed first datasets to produce a database of total number of search results as a function of travel search request including respective travel search parameters, wherein the database entry for a given travel search request including respective travel search parameters is a most recent request for the travel search including respective travel search parameters, wherein the most recent request for the travel search including respective travel search parameters is determined using respective times associated with part (vi).
- the server system may be configured to perform a method of any aspect of the sixth aspect of the invention.
- a computer program product executable on a server to:
- the computer program product may be executable on the server to perform a method of any aspect of the first aspect of the invention.
- a computer program product executable on a computer to train a machine learning model, to predict when to stop polling early in a travel search, wherein the computer program product is executable to:
- each dataset comprising a respective model travel search request including respective model travel search parameters, and a respective determined cumulative number of distinct received search request responses, divided by a respective total number of search results, as a function of successive polling interval, as inputs, and target outputs comprising a corresponding indicator as a target output for each determined cumulative number of distinct received search request responses divided by the respective total number of search results;
- the computer program product may be executable to perform a method of any aspect of the second aspect of the invention.
- a fourteenth aspect of the invention there is provided a computer program product executable on a server system to produce and to store a training database for training a machine learning model to predict when to stop polling early in a travel search, the computer program product executable to:
- (viii) define a first indicator (e.g. a first Boolean value) which indicates that a search should be continued, and define a second indicator (e.g. a second Boolean value different to the first Boolean value) different to the first indicator which indicates that a search should be stopped;
- a first indicator e.g. a first Boolean value
- a second indicator e.g. a second Boolean value different to the first Boolean value
- (x) process the respective first dataset to produce a respective processed first dataset, the respective processed first dataset including a respective model travel search request including respective model travel search parameters derived from the respective travel search parameters; the respective processed first dataset further including the determined cumulative number of distinct received responses, divided by the respective total number of search results, as a function of successive polling interval; wherein for each stored determined cumulative number of distinct received responses divided by the respective total number of search results, if the value of the cumulative number of distinct received responses divided by the respective total number of search results is less than a threshold, then the cumulative number of distinct received responses divided by the respective total number of search results is stored together with the first indicator, otherwise the cumulative number of distinct received responses divided by the respective total number of search results is stored together with the second indicator;
- the computer program product may be executable to perform a method of any aspect of the fourth aspect of the invention.
- a computer program product executable on a server system to produce and to store a database for predicting total search results as a function of an input travel search request including input travel search parameters, the computer program product executable to:
- (xi) process the processed first datasets to produce a database of total number of search results as a function of travel search request including respective travel search parameters, wherein the database entry for a given travel search request including respective travel search parameters is a most recent request for the travel search including respective travel search parameters, wherein the most recent request for the travel search including respective travel search parameters is determined using respective times associated with part (vi).
- the computer program product may be executable to perform a method of any aspect of the sixth aspect of the invention.
- a computer- implemented method of stopping an internet search early the internet search being in a class of internet searches, the method using a trained machine learning model, in which the trained machine learning model has been trained on earlier internet searches in the class, and the successive results produced by those searches, to recognize when sufficient search results have been received to make continuing searching not worthwhile, and to output whether or not to continue searching; the method including inputting the internet search into the trained machine learning model, and the search’s present results, and stopping the search in response to the trained machine learning model outputting that the search should be stopped.
- An advantage is that because searching is stopped early, energy consumption is reduced.
- An advantage is that because searching is stopped early, a final set of processed distinct responses is received sooner by the user terminal, compared to always waiting for a predetermined time, before sending the final set of processed distinct responses received to the user terminal.
- the method may be one including any aspect of any other aspect of the invention.
- a seventeenth aspect of the invention there is provided a system configured to perform a method of any aspect of the sixteenth aspect of the invention. Advantages include those of the sixteenth aspect of the invention.
- computer program products may be embodied on a non-transitory storage medium.
- Figure 1 shows an example within a travel search service, e.g. within a (e.g flight) pricing service (FPS) in which a quote request is stopped early, using a fixed timeout of 15s.
- a travel search service e.g. within a (e.g flight) pricing service (FPS) in which a quote request is stopped early, using a fixed timeout of 15s.
- FPS flight pricing service
- Figure 2 shows an example, within a travel search service, e.g. within a (e.g flight) pricing service (FPS), of a logic within this service for contacting an external classifier microservice, and if that classifier determines that we should stop the session, only then do we stop the session, within a time interval. If the search time is greater than a lower time limit of 12.8s, but less than an upper time limit of 14.5s, then a classifier is used to determine if the search session should be stopped; if the classifier determines that the search should be stopped, then the search is stopped; if the classifier determines that the search should not be stopped, then the search is not stopped.
- a travel search service e.g. within a (e.g flight) pricing service (FPS)
- FPS flight pricing service
- Figure 3 shows an example of experimentally obtained SHAP values for TTLR, as a function of TTLR.
- P40 denotes the 40 th percentile of the distribution of SHAP values.
- P80 denotes the 80 th percentile of the distribution of SHAP values.
- Figure 4 shows an example of first and second itinerary search results displayed at a user terminal.
- Figure 5 shows an example of quotes associated with the first itinerary search result of Figure 4 displayed at the user terminal.
- Figure 6 shows an example of quotes associated with the second itinerary search result of Figure 4 displayed at the user terminal.
- Figure 7 shows an example of a system including a client computer device e.g. including a browser or an application program executing on the device, a search home website, a front end in the Cloud, a search back-end for front-end (BFF) server, and a search service server, which are in connection with the internet.
- a client computer device e.g. including a browser or an application program executing on the device
- a search home website e.g. including a browser or an application program executing on the device
- a search home website e.g. including a browser or an application program executing on the device
- a search home website e.g. including a search home website, a front end in the Cloud, a search back-end for front-end (BFF) server, and a search service server, which are in connection with the internet.
- BFF search back-end for front-end
- Figure 8 shows data from Ayala et al, in which for a Galaxy Nexus mobile phone, energy consumption in Joules is reduced as a function of increasing polling interval in milliseconds, for messages of 3000 bytes (This derives from Fig. 3(c) in Ayala et al).
- TTLR time to last result
- Reducing TTLR is considered to be strongly related to reducing the rate at which users give up on performing a travel search using a travel search website, or in an app, and reducing TTLR is considered to provide a better traveler experience. If we can reduce the time waiting for results that the user will not wait to see, or that the user is unlikely to choose, then we can improve the overall experience for the user. By reducing the TTLR, we may reduce the total energy consumed in a search process.
- a pricing service (e.g flight) pricing service (FPS) we may stop a quote request early; it is possible to resume the search when the user indicates a potential willingness to make a booking, such as by clicking on a search result to view more detail.
- a fixed timeout e.g. of 15s
- all corresponding search sessions will be curtailed at the fixed timeout (e.g. of 15s) point.
- An example is shown in Figure 1.
- StopPollingEarlyService e.g. within a (e.g flight) pricing service (FPS)
- a StopPollingEarlyService which has the responsibility of identifying if this poll should be stopped early.
- a travel search service e.g. within a (e.g flight) pricing service (FPS)
- a logic within this service to contact an external classifier microservice, and if that classifier determines that we should stop the session, e.g. during a time interval, only then do we stop the session.
- the search time is greater than a lower time limit (e.g. 12.8s), but less than an upper time limit (e.g.
- a classifier is used to determine if the search session should be stopped; if the classifier determines that the search should be stopped, then the search is stopped; if the classifier determines that the search should not be stopped, then the search is not stopped.
- An example is shown in Figure 2.
- a classifier is used to determine if the search session should be stopped. Why might we use an upper time limit (e.g. 14.5s) that is less than a target cut off time (e.g. 15s)? Our objective is to increase the number of searches that take less than the target cut off time. So if we consider a poll that will be returned after the target cut off time, we've missed our objective target, and in this approach we should continue to allow polling and to complete the search as usual. By only choosing the searches between a lower time limit (e.g. 12.8s) and an upper time limit (e.g. 14.5s) this gives the poll enough time to complete within a search (e.g flight pricing service (FPS)) within the target cut off time (e.g. 15s).
- a search e.g flight pricing service (FPS)
- search results times are obtained in advance, and stored, and a cache is generated which determines when polling should be stopped early, as a function of search parameters. Then when searches are performed, the cache is consulted based on the search parameters of the search, to determine at what time polling should be stopped early, if the search has not yet completed. If the search parameters of the search do not have a good enough match within the cache, then the cache is not used, and polling is not stopped early, or polling is stopped when a target time is reached.
- the cache file is fetched periodically and is stored within the memory of the search service, e.g. FPS memory.
- the classifier uses heuristics.
- the classifier uses a machine learning model.
- a machine learning model example we may use a language more suited to hosting machine learning models e.g. Python, rather than being limited to Java.
- a machine learning model example we use Java.
- the classifier is consulted only once per search session.
- the machine learning model classifier is consulted only once per search session.
- the classifier is provided as a service, e.g. as a micro-service, e.g. in python.
- the service is deployed in all geographic regions that the search service (e.g. FPS) is present; the service receives the current search service (e.g. FPS) state and returns a boolean, e.g. TRUE to stop, FALSE to continue polling.
- the service may
- Java client e.g. one which is already integrated into Itinerary Filtering/Construction.
- Search Service e.g FPS interaction with the Relevance Service
- the Relevance Service may be integrated into itinerary-filtering.
- the Relevance Service may be integrated into itinerary-construction.
- the model the Relevance Service hosts requires access to the filtered priced itineraries.
- the model the Relevance Service hosts requires access to statistics derived from the filtered priced itineraries.
- the call to the Relevance Service is made after the call to construction/filtering.
- the call to the Relevance Service is made before the state has been written to the State store.
- the call to the Relevance Service is a blocking request, so the classifier has tight constraints around latency as it will directly impact the latency of search service (e.g. FPS).
- FPS latency of search service
- the call to the Relevance Service may be a single poll, there is no impact on time to first result (TTFR).
- the classifier may require two new sources of data to be generated.
- the first is a source of data that can be used for training, generated during the polling process.
- the second is a source of data emitted a significant time (e.g. 60s) after we stop a poll: this source of data needs to contain the details of what would have been returned had we not stopped early.
- the two new sources of data can then be used for monitoring our impact on coverage and price accuracy, as well as feedback for the classifier.
- an end result is that when the search service (e.g. FPS) stops a session early we send an event to a worker process, which after a significant time (e.g. 60s) polls the search that was completed early.
- a significant time e.g. 60s
- Monitoring the Relevance Service Information display may be provided showing service metrics, e.g. memory usage, central processing unit (CPU) usage etc. Errors may be monitored from the service itself, but also from the search service’s (e.g. FPS’s) perspective. Circuit breaker status and/or percentage of errors/timeouts may be monitored.
- service metrics e.g. memory usage, central processing unit (CPU) usage etc.
- Errors may be monitored from the service itself, but also from the search service’s (e.g. FPS’s) perspective. Circuit breaker status and/or percentage of errors/timeouts may be monitored.
- times for a response to be returned from a poll are as follows.
- the 50 th percentile for the poll response time was 130ms.
- the 95 th percentile for the poll response time was 1.2s.
- the 99 th percentile for the poll response time was 4.6s.
- the polling interval is 1.0 s.
- flights search for a return flight, the start and destination are specified, outbound and return travel dates are specified, the number of passengers is specified, cabin class is specified, etc.
- the search website polls sources of data for relevant data, and the search website waits for data.
- the search website can poll for results at regular time intervals, e.g. every second, for example from a system which receives data and constructs itineraries for the user. Then for example the constructed itineraries are sorted and returned to the front end of the website. Or for example the constructed itineraries are returned to the front end of the website where they are sorted and presented.
- the algorithm interrupts the process of polling when there is sufficient confidence for this particular search, taking into account the search parameters, that there is insufficient value in continuing polling further.
- a search progress bar is stopped from being presented on a screen to a user who requested the search.
- the model has been trained on training data, in which the training data has been selected based on a search time cut off, in which the search time cut off has been determined to be the length of time beyond which users are likely to give up on the search.
- An example length of time beyond which users are likely to give up on the search is 15s.
- the polling request search time cut off is 14.8s, which leaves 0.2s for final results to be returned, before the search process is terminated at 15.0s.
- the classifier may be consulted for the previous e.g. one or two pollings (made at 1.0 s intervals), e.g. hence at 12.8s and 13.8s, to determine if polling should be stopped early.
- a flights search is requested by a user terminal in communication with a search service server, for flights for one adult in economy class, with the outward flight from London Luton to Tenerife (any airport) on 5 Jan 2025, and the return flight from Tenerife (any airport) to London Luton on 9 Jan 2025, with the flights selected to be restricted to direct flights only.
- the results are assembled by the search service server and are sent to the user terminal for display on a display screen of the user terminal.
- two itineraries are returned.
- the first itinerary is Easy Jet departing Luton at 0700 and arriving at TFS at 1135 on 5 Jan 2025, and returning Easy Jet from TFS at 1255 to Luton at 1725 on 9 Jan 2025.
- a respective selectable option is provided on the display screen which is selectable to present the quotes, or “deals” associated with the respective itinerary.
- the user terminal requests the quotes for the first itinerary from the search service server and the search service server returns the quotes for display on a display screen of the user terminal.
- Figure 5 An example is shown in Figure 5, in which the nine quotes or “deals” are listed by provider, namely easyJet, Mytrip, Gotogate, lastminute.com, Booking.com, eDreams, Expedia, Kiwi.com and BudgetAir.
- the user terminal when the respective selectable option is selected for the second itinerary, the user terminal requests the quotes for the second itinerary from the search service server and the search service server returns the quotes for display on a display screen of the user terminal.
- An example is shown in Figure 6, in which the two quotes or “deals” are listed by provider, namely Ryanair +easyJet, and Kiwi.com.
- a classifier is consulted to decide when to stop updating displayed search results with new itineraries and options. If we wait for every single source of search results to return results from their Application Programming Interface (API) call, we can potentially wait a long time, e.g. for up to 60 seconds, before completing the displayed search results. Often waiting for this long can result in very little advantage for the traveller so in an example a model, a classifier, is consulted during a specific time window, to decide whether to continue waiting for more results or to stop updating the displayed search results.
- API Application Programming Interface
- a model has been trained on data from searches, e.g. from small screen devices (e.g. smartphones) based on the state of the search service (e.g. Flights Pricing Service) in a time interval, e.g. 5 - 50 seconds, after the session starts compared to the state of the session, e.g. the search results, when the search completes.
- search service e.g. Flights Pricing Service
- flight search sessions are stopped early, if the model is called and the model predicts that the session should be stopped early, and if zero, one, or more, or all, of the following set of constraints are met:
- the searching device’s platform is android, or ios, or banana or acorn
- the time of the poll is in between a lower time and an upper time, e.g. between 5 sec and 50 sec
- the model is closed, specific to a single use case.
- a travel search request including travel search parameters is converted into a model travel search request including model travel search parameters, for use in querying a trained machine learning model, or for use in generating a training data set (e.g. a database) for training a machine learning model.
- travel search parameters including a destination airport in Thailand may be converted into model travel search parameters including for example a query market, which is a market code, which here is TH for Thailand, because the destination airport is in Thailand.
- travel search parameters including a departure date may be converted into model travel search parameters including for example a booking horizon, which is the period of time from the present day to the departure date.
- travel search parameters including a departure date and a return date may be converted into model travel search parameters including for example a trip duration, which is the period of time from the departure date to the return date.
- An example input variable is a candidate id, which is a candidate id, which is a string, which may or may not be used in the model.
- An example input variable is query market, which is a market code eg. TH for Thailand, which is a string, which may be used in the model.
- An example input variable is query trip type, which is a search kind eg. ONE WAY, which is a string, which may be used in the model.
- An example input variable is query cabin class, which is a cabin class eg ECONOMY, which is a string, which may be used in the model.
- An example input variable is query booking horizon, which is a booking horizon e.g. in days eg. 18, which is a number, which may be used in the model.
- the term "booking horizon" refers to the period of time in advance during which bookings or reservations are being searched for, such as for a flight, hotel room, event, train journey or vehicle rental. This period starts from the current date and extends into the future.
- An example input variable is query trip duration, which is a trip duration in days, which is a number, eg. zero for a one-way trip, which may be used in the model.
- An example input variable is query adults, which is the number of adults in the search query eg. 1, which is a number, which may be used in the model.
- An example input variable is stats itineraries itinerary count, which is a count of itineraries in the poll eg. 15, which is a number, which may be used in the model.
- An example input variable is stats quote requests current count, which is current quotes eg. 300, which is a number, which may be used in the model.
- An example input variable is stats quote requests total count, which is total quotes requested eg. 330, which is a number, which may be used in the model.
- a maximum cutoff time e.g. 60s
- the input variable stats quote requests total count is a prediction from a database of what the total number of quotes is expected to be, based for example on a search key (e.g. defined as a trip kind (return or one-way trips), route (origin and destination) and inbound and outbound dates).
- This database can be populated in advance based on stored search results for searches which have been allowed to run for a long time (e.g. 60s) until probably all possible search results have been received.
- the stored searches in the database which have been allowed to run for a long time may be a sample of all the searches performed, e.g.
- the number of quotes may be the number of search results, for a given search key.
- the number of quotes may be the number of instances in which providers or partners have provided search results for a given search key.
- the database may be updated as new stored search results become available, e.g. the database may be updated once per week, or once per day.
- the input variable stats quote requests total count is the total number of quotes from providers/partners available for a search key (e.g. defined as a trip kind (return or oneway trips), route (origin and destination) and inbound and outbound dates).
- a callable service e.g. called “WhoToAsk” maps each search key to the set of partners providing quotes for the search key, e.g. using a database which has been populated in advance based on stored search results for searches which have been allowed to run for a long time (e.g. 60s) until probably all possible search results have been received.
- the stored searches in the database which have been allowed to run for a long time e.g.
- 60s may be a sample of all the searches performed, e.g. in the range of 1% to 20% of all the searches that have been performed, or in the range of 1% to 50% of all the searches that have been performed, or in the range of 1% to 70% of all the searches that have been performed.
- the input variable stats quote requests total count doesn’t change during the whole polling process.
- the database may be updated as new stored search results become available, e.g. the database may be updated once per week, or once per day.
- stats quote requests current count is the number of quotes from providers/partners returned as the polling process progresses for a given search. For example, let’s assume a polling process lasts for 20 seconds with a 5-second sampling interval: At 5 seconds: Polling returns a Ryanair quote. Then stats quote requests current count will be 1.
- stats quote requests current count counts the number of unique providers/partners quotes returned which is the cumulative count of distinct quotes from partners as the polling process progresses. That’s why on the first two pollings described in the above example stats quote requests current count is 1.
- the model internally builds stats quote requests current count divided by stats quote requests total count to construct a quotient e.g. called frac_partners (which is a fraction of partners).
- the quotient e.g. fraction of partners, is a relevant feature (e.g. the most relevant feature) that helps the model decide when to stop a polling process.
- the model would be expected to stop polling once a large enough fraction of the possible quotes from partners serving that search have been returned.
- the total number of providers/partners quotes available for a search key (e.g. defined as a trip kind (return or one-way trips), route (origin and destination) and inbound and outbound dates) is one hundred.
- the model may be trained to favour stopping polling when at least 80 percent of the expected providers/partners quotes have been returned as search results, so here when 80 of the 100 providers/partners quotes have been returned as search results it is favoured to stop polling early, and if less than 80 of the 100 providers/partners quotes have been returned as search results then stopping polling early is not favoured.
- the number of unique providers/partners quotes returned which is the cumulative count of distinct quotes by partners as the polling process progresses, is counted.
- a database is queried to provide the total number of quotes by providers/partners available for the particular search key.
- the front end queries the trained model which includes as input parameters the cumulative count of distinct quotes by partners as the polling process progresses, the total number of quotes by providers/partners available for the particular search key, and the search key, to obtain an output which indicates whether or not the polling should be stopped early.
- the trained model tends to stop the polling early when the ratio of the cumulative count of distinct partners which have returned search results quotes for the particular search key, to the total number of quotes by providers/partners available for the particular search key, reaches the target ratio, which may be 80%.
- the search may continue in the back end, e.g. up to a final time (e.g. 60s) to obtain and to store quotes search data which can be used in future training of the model.
- the searches which continue in the back end are a sample of all the searches that are performed, e.g. 1% to 20% of all the searches that are performed, or in the range of 1% to 50% of all the searches that have been performed, or in the range of 1% to 70% of all the searches that have been performed, so that not all the searches are continued in the back end.
- An example output variable is a candidate id, which is a candidate id, which is a string, which may or may not be used in the model.
- An example output variable is prediction, which is a Boolean, in which for example the prediction value can only be 1 (stop session) or 0 (don't stop).
- a search is requested for return flights between London, UK and Barcelona, ES on particular dates, and the polling is stopped early after 15s.
- a search is requested for return flights between London, UK and Fresno, CA, USA on particular dates, and the polling is stopped early after 35s.
- Response code 412 has meaning Deadline exceeded, which indicates the request to the model has taken too long and a deadline has been exceeded.
- the model is retrained weekly, typically using a new data set compared to the week before.
- a moving time window is used for the training e.g. from one week to the next week.
- the model is retrained after a predetermined time interval.
- the number of searches on which the model has been trained is at least one thousand. In an example, the number of searches on which the model has been trained is at least ten thousand. In an example, the number of searches on which the model has been trained is at least one hundred thousand. In an example, the number of searches on which the model has been trained is at least one million. In an example, the number of searches on which the model has been trained is at least two million.
- the number of searches included in the training set on which a model can be trained is at least one thousand. In an example, the number of searches included in the training set on which a model can be trained is at least ten thousand. In an example, the number of searches included in the training set on which a model can be trained is at least one hundred thousand. In an example, the number of searches included in the training set on which a model can be trained is at least one million. In an example, the number of searches included in the training set on which a model can be trained is at least two million.
- model training procedure follows common approaches, as would be known to those skilled in the art.
- the framework can be extended to other applications, such as for car hire, for vehicle hire, for accommodation, for events, for train journeys or for hotels.
- frontend or sometimes referred to as front end or front-end
- backend or sometimes referred to as back end or back-end
- front end and backend may be used in respect of software.
- front end and backend may be used in respect of hardware.
- Example method of producing and storing a training database for training a machine learning model to predict when to stop polling early in a search e.g. travel search
- a computer-implemented method of producing and storing a training database for training a machine learning model to predict when to stop polling early in a search e.g. travel search
- the method including the steps of:
- search e.g. travel search
- search e.g. travel search
- search e.g. travel search
- search parameters search parameters
- search e.g. travel search
- search e.g. travel search
- steps (i) to (vi) for a plurality of search (e.g. travel search) requests, each respective search (e.g. travel search) request including respective search (e.g. travel search) parameters;
- search e.g. travel search
- a respective model search e.g. travel search
- respective model search e.g. travel search
- the predetermined time may be in the range of 30s to 120s, or the predetermined time may be in the range of 45s to 90s, or the predetermined time may be in the range of 55s to 65s, or the predetermined time may be 60s.
- the threshold may be a predetermined threshold.
- the predetermined threshold may be in the range 0.40 to 0.95, or the predetermined threshold may be in the range 0.60 to 0.90, or the predetermined threshold may be in the range 0.70 to 0.85, or the predetermined threshold may be 0.8.
- Example method for training a machine learning model, to predict when to stop polling early in a search e.g. travel search
- a computer-implemented method for training a machine learning model, to predict when to stop polling early in a search including the steps of:
- each dataset comprising a respective model search (e.g. travel search) request including respective model search (e.g. travel search) parameters, and respective determined cumulative number of distinct received search request responses, divided by a respective total number of search results, as a function of successive polling interval, as inputs, and target outputs comprising a corresponding indicator as a target output for each determined cumulative number of distinct received search request responses divided by the respective total number of search results;
- a respective model search e.g. travel search
- model search e.g. travel search
- step (vii) storing the parameters which correspond to the trained machine learning model which met the predefined convergence criterion in step (vi).
- Example method of predicting when to stop polling early in a search e.g. travel search
- a computer implemented method of predicting when to stop polling early in a search including the steps of:
- a server receiving a search (e.g. travel search) request from a user terminal, the search (e.g. travel search) request including search (e.g. travel search) parameters;
- the server consulting a database which returns an expected total number of search results in response to receiving the search (e.g. travel search) request including the search (e.g. travel search) parameters;
- model search e.g. travel search
- model search e.g. travel search
- model search e.g. travel search
- determined cumulative number of distinct received responses divided by the expected total number of search results through the machine learning model, wherein the machine learning model has been previously trained and comprises a set of learned parameters
- the machine learning model generating an output indicator based on the inputs, wherein the output indicates if the polling should be stopped before a predetermined time, or not, wherein the output is determined by applying the learned parameters to the inputs using the machine learning model;
- step (ix) proceeding to step (x) if the predetermined time is reached, or if the output indicator indicates that the polling should be stopped; otherwise repeating steps (iii) to (viii);
- the predetermined time may be in the range of 30s to 120s, or the predetermined time may be in the range of 45s to 90s, or the predetermined time may be in the range of 55s to 65s, or the predetermined time may be 60s.
- Example method of producing and storing a database for predicting total search results as a function of an input search (e.g. travel search) request
- a computer-implemented method of producing and storing a database for predicting total search results as a function of an input search (e.g. travel search) request including input search (e.g. travel search) parameters the method including the steps of:
- search e.g. travel search
- search e.g. travel search
- search e.g. travel search
- search parameters search parameters
- search e.g. travel search
- search e.g. travel search
- the search e.g. travel search
- the determined cumulative number of distinct received responses as a function of successive polling interval, and a time associated with completing this step
- steps (i) to (vi) for a plurality of search (e.g. travel search) requests, each respective search (e.g. travel search) request including respective search (e.g. travel search) parameters;
- search e.g. travel search
- step (ix) processing the respective first dataset to produce a respective processed first dataset, the respective processed first dataset including the respective search (e.g. travel search) request including the respective search (e.g. travel search) parameters and the respective total number of search results, and the respective time associated with step (vi);
- the respective search e.g. travel search
- the respective search e.g. travel search
- the respective search e.g. travel search
- step (xi) processing the processed first datasets to produce a database of total number of search results as a function of search (e.g. travel search) request including respective search (e.g. travel search) parameters, wherein the database entry for a given search (e.g. travel search) request including respective search (e.g. travel search) parameters is a most recent request for the search (e.g. travel search) including respective search (e.g. travel search) parameters, wherein the most recent request for the search (e.g. travel search) including respective search (e.g. travel search) parameters is determined using respective times associated with step (vi).
- search e.g. travel search
- respective search e.g. travel search
- the predetermined time may be in the range of 30s to 120s, or the predetermined time may be in the range of 45s to 90s, or the predetermined time may be in the range of 55s to 65s, or the predetermined time may be 60s.
- SHAP Shapley Additive explanations
- the Shapley value provides a principled way to explain the predictions of nonlinear models in the field of machine learning.
- Shapley values provide a natural way to compute which features contribute to a prediction or contribute to the uncertainty of a prediction.
- SHAP values provide a unified approach to explaining the output of any machine learning model.
- the collective SHAP values can show how much each predictor contributes, either positively or negatively, to the target variable.
- a dependence plot shows the marginal effect one or two features have on the predicted outcome by plotting a feature's SHAP values across its domain. It shows whether the relationship between the target and a feature is linear, monotonic or more complex.
- the chart of SHAP values for TTLR shows the TTLR effect on the traveler’s propensity to redirect from a travel search.
- the distribution of SHAP values follows a negative trend with increasing TTLR, demonstrating an increasing tendency for travelers to redirect away from a travel search with increasing TTLR, although the functonal relationship is largely non-linear with the exception of values located above the 80 th percentile of the distribution of TTLR values.
- the first percentile of the distribution of TTLR values corresponds to the shortest TTLR values
- the 100 th percentile of the distribution of TTLR values corresponds to the longest TTLR values.
- TTLR values show predominantly positive SHAP values, in which the proportion of negative SHAP values gets smaller as TTLR times get shorter. For TTLR times below four seconds, negative SHAP values are practically non-existent.
- the fraction of positive SHAP values varies as the TTLR increases. Between TTLR values of 5.3 seconds (the 20 th percentile of the distribution) and 10.1 seconds (the 40 th percentile of the distribution) maximum SHAP values are near to +0.2. Between TTLR values of 1.5 and 5.3 seconds, maximum SHAP values are near to +0.3. For TTLR values lower than 1 second, SHAP values reach all the way up to values of +1 as TTLR tends towards zero seconds.
- SHAP values are slightly negative on average and are distributed reasonably uniformly.
- SHAP values are -0.3 and +0.1, respectively.
- a transition region exists between 10.1 seconds (the 40 th percentile of the distribution) and 14.7 seconds (the 80 th percentile of the distribution) as SHAP values average near to zero, or -0.1 in more precise terms.
- This transition region comprises forty per cent of observations, from the 40 th percentile of the distribution to the 80 th percentile of the distribution.
- TTLR times in the transition region are expected to provide a beneficial effect if the TTLR times are reduced. Although the TTLR times in the transition region have slightly negative average SHAP values, it is expected that reducing these TTLR values will often change these SHAP values to positive SHAP values. Therefore for TTLR values in the transition region, the goal is to reduce the TTLR values to as close to 10.1 seconds as possible.
- TTLR values Twenty per cent of the TTLR values are greater than 14.7 seconds (the 80 th percentile of the distribution) and these TTLR values are associated with larger negative SHAP values.
- SHAP values for TTLR values greater than 14.7 seconds is particularly uniform, we expect improvements in SHAP values will take place if TTLR values greater than, but close to, 14.7 seconds are reduced.
- values at the tail of the distribution e.g. as the percentile increases from the 90 th percentile of the distribution, we don't expect to achieve a noticeable increase in the SHAP values, if the TTLR is reduced by a small amount.
- a client computer device e.g. including a browser or an application program executing on the device, is in connection with the internet.
- a search home website e.g. an HTML server
- a front end in the cloud e.g. a content delivery network (CDN), e.g. a static files server
- a back-end for front-end (BFF) application programming interface (API) server is in connection with the internet.
- a search service server is in connection with the internet.
- the client computer device e.g. smartphone
- the client computer device e.g. including a browser or an application program executing on the device, may be in wireless (e.g. cellular or WiFi) connection with the internet.
- the client computer device e.g. desktop computer
- the search home website and the BFF server may be in the same server.
- search services for hotel reservations search services for rental vehicles (e.g. cars, automobiles, vans, trucks, boats, ships, aircraft, motorbikes), search services for home loans, search services for insurance (e.g. car insurance, home insurance, travel insurance, life insurance, pet insurance) search services for money loans, search services for mortgage loans, search services for mobile phone purchase, search services for broadband deals, search services for real estate, search services for rental accommodation, and search services for dating.
- search services for hotel reservations search services for rental vehicles (e.g. cars, automobiles, vans, trucks, boats, ships, aircraft, motorbikes)
- search services for home loans search services for insurance (e.g. car insurance, home insurance, travel insurance, life insurance, pet insurance) search services for money loans
- search services for mortgage loans search services for mobile phone purchase
- search services for broadband deals search services for real estate, search services for rental accommodation, and search services for dating.
- server this may refer to a single server, to a group of servers, or to servers in the cloud, as would be clear to the person skilled in the art.
- machine learning e.g. neural networks
- all the machine learning (e.g. neural network) parameters can be randomized with standard methods (such as Xavier Initialization). Typically, we find that satisfactory results are obtained with sufficiently small learning rates.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Human Resources & Organizations (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Primary Health Care (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Development Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
Claims
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GBGB2408265.3A GB202408265D0 (en) | 2024-06-10 | 2024-06-10 | Method |
| GBGB2413724.2A GB202413724D0 (en) | 2024-09-18 | 2024-09-18 | Method |
| PCT/GB2024/053037 WO2025257520A1 (en) | 2024-06-10 | 2024-12-05 | Computer-implemented methods for searching over the internet, databases, methods of producing such databases, and related systems and computer program products |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4689919A1 true EP4689919A1 (en) | 2026-02-11 |
Family
ID=93925139
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP24827102.5A Pending EP4689919A1 (en) | 2024-06-10 | 2024-12-05 | Computer-implemented methods for searching over the internet, databases, methods of producing such databases, and related systems and computer program products |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP4689919A1 (en) |
| WO (1) | WO2025257520A1 (en) |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AU2014363194C1 (en) * | 2013-12-11 | 2021-01-07 | Skyscanner Technology Limited | Method and server for providing fare availabilities, such as air fare availabilities |
| US10726032B2 (en) | 2015-12-30 | 2020-07-28 | Palantir Technologies, Inc. | Systems and methods for search template generation |
| CA3249529A1 (en) * | 2022-05-20 | 2023-11-23 | Amadeus S.A.S. | Computational load mitigation with predictive search request enrichment |
-
2024
- 2024-12-05 WO PCT/GB2024/053037 patent/WO2025257520A1/en active Pending
- 2024-12-05 EP EP24827102.5A patent/EP4689919A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| WO2025257520A1 (en) | 2025-12-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12299612B2 (en) | Optimizing engagement of transportation providers | |
| US12405961B1 (en) | Query completions | |
| CN112819576A (en) | Training method and device for charging station recommendation model and recommendation method for charging station | |
| CN110741367A (en) | Method and apparatus for real-time interactive recommendation | |
| US11580584B2 (en) | Managing item queries | |
| JP2016514325A (en) | Managing item queries | |
| US20260023819A1 (en) | Task code recommendation model | |
| US20190310888A1 (en) | Allocating Resources in Response to Estimated Completion Times for Requests | |
| US20160055505A1 (en) | Price elasticity testing | |
| CN116011904A (en) | Matching method and device, storage medium, and electronic equipment for transport objects and goods | |
| KR101676219B1 (en) | Recommendation engine for interactive search forms | |
| US12574705B2 (en) | Transmitting digital transportation requests across modes to limited-eligibility provider devices to improve network coverage and system efficiency | |
| US11206236B2 (en) | Systems and methods to prioritize chat rooms using machine learning | |
| EP4689919A1 (en) | Computer-implemented methods for searching over the internet, databases, methods of producing such databases, and related systems and computer program products | |
| CN114840559A (en) | Travel product query and model training method, device, equipment and storage medium | |
| US20220270126A1 (en) | Reinforcement Learning Method For Incentive Policy Based On Historic Data Trajectory Construction | |
| EP4361913A1 (en) | Vehicle sharing service optimization | |
| US20210034612A1 (en) | Controlling generation of multi-input search results | |
| WO2023241388A1 (en) | Model training method and apparatus, energy replenishment intention recognition method and apparatus, device, and medium | |
| CN117278508A (en) | Recommended methods, devices and electronic devices for 5G messaging chatbots | |
| US12299609B1 (en) | Dynamically transmitting online mode invitations to provider devices in response to detected changes in provider device efficiency | |
| CN109218411A (en) | Data processing method and device, computer readable storage medium, electronic equipment | |
| CN114510658B (en) | Method, device, server and terminal device for determining recommended boarding point | |
| US20250209561A1 (en) | Context-aware matching of provider devices and requester devices based on shared contextual characteristics | |
| CN117227581A (en) | Electric automobile charging reminding method and device, electronic equipment and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
| 17P | Request for examination filed |
Effective date: 20251107 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| 17Q | First examination report despatched |
Effective date: 20260121 |