Continuously improving API service endpoint selections via adaptive reinforcement learning
AssigneeInternational Business Machines Corporation
InventorsRong Nickle Chang, Hongyi Bian, Nitin Gaur
Life of this patent
Estimating the term…
Abstract
A method includes: receiving, by a processor set, a request for a web-based service; generating, by the processor set, a feature vector including values based on parameters of the request; generating, by the processor set, an endpoint selection vector including plural probabilities corresponding to plural endpoints, wherein the endpoint selection vector is generated using the feature vector with a machine learning model; selecting, by the processor set, one of the plural endpoints based on the plural probabilities; and invoking, by the processor set, the selected endpoint.
Claims16
A method comprising:
- receiving, by a processor set, a request for a web-based service;
- generating, by the processor set, a feature vector including values based on parameters of the request;
- generating, by the processor set, an endpoint selection vector including plural probabilities corresponding to plural endpoints, wherein the endpoint selection vector is generated using the feature vector with a machine learning model;
- selecting, by the processor set, one of the plural endpoints based on a random number and the plural probabilities;
- invoking, by the processor set, the selected endpoint;
- in response to the selecting one of the plural endpoints, providing data defining the selected one of the plural endpoints to an endpoint selection logger;
- and
- in response to the invoking the selected endpoint, providing quality-of-experience data to the endpoint selection logger, wherein the quality-of-experience data comprises data that quantifies a quality-of-experience associated with the selected endpoint handling the request.
A computer program product comprising one or more computer readable storage media having program instructions collectively stored on the one or more computer readable storage media, the program instructions executable to:
- receive a request for a web-based service;
- generate a feature vector including values based on parameters of the request;
- generate an endpoint selection vector including plural probabilities corresponding to plural endpoints, wherein the generating the endpoint selection vector comprises providing the feature vector as an input to a deep learning model;
- select one of the plural endpoints based on a random number and the plural probabilities;
- and
- invoke the selected endpoint,
- wherein training the deep learning model comprises:
- generating a stream of normalized feature vectors, wherein each respective one of the normalized feature vectors is associated with a respective one of plural logged requests;
- generating a stream of probabilistic endpoint selection vectors;
- determining loss values comprising a respective loss value for each one of the probabilistic endpoint selection vectors;
- training the deep learning model using the loss values;
- and
- wherein the respective loss value for one of the probabilistic endpoint selection vectors comprises a difference between an expected reward generated by the machine learning model and an expected reward derived from log data.
A system comprising:
- a processor set, one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions executable to:
- receive a request for a web-based service;
- generate a feature vector including values based on parameters of the request;
- generate an endpoint selection vector including plural probabilities corresponding to plural endpoints, wherein the generating the endpoint selection vector comprises providing the feature vector as an input to a deep learning model;
- select one of the plural endpoints based on a random number and the plural probabilities;
- and
- invoke the selected endpoint,
- wherein the selecting one of the plural endpoints comprises:
- generating the random number;
- comparing the random number to the plural probabilities;
- and
- in response to the comparing, selecting the one of the plural endpoints based on the random number matching a probability range associated with the one of the plural endpoints.
Dependencies are inferred from the claim text.