Back to results
US 12,584,756 B1Granted
Generative model for route recommendation
AssigneeStrava, Inc.
InventorDrew Robb
Life of this patent
Estimating the term…
Abstract
Using a generative model for route recommendation is disclosed, including: receiving a request to generate a route recommendation for an activity; and generating a recommended route for the activity in response to the request using a diffusion machine learning model, wherein the diffusion machine learning model is trained to generate routes based at least in part on a plurality of recorded user activities.
Claims17
A system, comprising:
- one or more processors configured to:
- store recorded user activities;
- receive a request to generate a route recommendation for an activity, wherein the request includes:
- a desired start location, a desired distance, a desired activity type, and a desired elevation;
- and
- generate a recommended route for the activity in response to the request using a diffusion machine learning model, wherein the diffusion machine learning model is trained to generate routes based at least in part on the recorded user activities, including to:
- receive an indication to generate a crop of a reference map corresponding to the request;
- determine the reference map based on the desired activity type;
- determine dimensions of a cropped map image based on the desired distance;
- determine a center of the cropped map image on the reference map based on the desired start location;
- generate the cropped map image from the reference map based on the determined dimensions and the determined center;
- associate the cropped map image with a normalized two-dimensional (2D) coordinate system;
- determine an initial set of pure noise ordered route points corresponding to a first step;
- provide first sets of tokens derived from the initial set of pure noise ordered route points and the cropped map image to the diffusion machine learning model to obtain a first predicted noise vector from the diffusion machine learning model;
- determine a first output set of predicted ordered route points based at least in part on subtracting the first predicted noise vector from the initial set of pure noise ordered route points;
- determine a noised input set of predicted ordered route points corresponding to a new step based at least in part on adding a determined noise vector into the first output set of predicted ordered route points;
- provide a second set of tokens derived from the noised input set of predicted ordered route points and the cropped map image to the diffusion machine learning model to obtain a second predicted noise vector from the diffusion machine learning model;
- and
- determine a second output set of predicted ordered route points based at least in part on subtracting the second predicted noise vector from the noised input set of predicted ordered route points;
- and
- one or more memories coupled to the one or more processors and are configured to provide the one or more processors with instructions.
18 more elements
A method, comprising:
- storing recorded user activities;
- receiving a request to generate a route recommendation for an activity, wherein the request includes:
- a desired start location, a desired distance, a desired activity type, and a desired elevation;
- and
- generating a recommended route for the activity in response to the request using a diffusion machine learning model, wherein the diffusion machine learning model is trained to generate routes based at least in part on the recorded user activities, including by:
- receiving an indication to generate a crop of a reference map corresponding to the request;
- determining the reference map based on the desired activity type;
- determining dimensions of a cropped map image based on the desired distance;
- determining a center of the cropped map image on the reference map based on the desired start location;
- generating the cropped map image from the reference map based on the determined dimensions and the determined center;
- associating the cropped map image with a normalized two-dimensional (2D) coordinate system;
- determining an initial set of pure noise ordered route points corresponding to a first step;
- providing first sets of tokens derived from the initial set of pure noise ordered route points and the cropped map image to the diffusion machine learning model to obtain a first predicted noise vector from the diffusion machine learning model;
- determining a first output set of predicted ordered route points based at least in part on subtracting the first predicted noise vector from the initial set of pure noise ordered route points;
- determining a noised input set of predicted ordered route points corresponding to a new step based at least in part on adding a determined noise vector into the first output set of predicted ordered route points;
- providing a second set of tokens derived from the noised input set of predicted ordered route points and the cropped map image to the diffusion machine learning model to obtain a second predicted noise vector from the diffusion machine learning model;
- and
- determining a second output set of predicted ordered route points based at least in part on subtracting the second predicted noise vector from the noised input set of predicted ordered route points.
15 more elements
A system, comprising:
- one or more processors configured to:
- store recorded user activities;
- train a diffusion machine learning model to generate routes based at least in part on the recorded user activities, including to:
- select a reference user activity that meets a set of criteria for serving as training data;
- receive an indication to generate a crop of a reference map corresponding to the reference user activity, wherein the indication includes at least Global Positioning System (GPS) data associated with the reference user activity and an activity type associated with the reference user activity;
- determine the reference map based on the activity type;
- determine dimensions of a cropped map image based on a distance determined from the GPS data;
- determine a center of the cropped map image on the reference map based on a start location associated with the GPS data;
- generate the cropped map image from the reference map based on the determined dimensions and the determined center;
- associate the cropped map image with a normalized two-dimensional (2D) coordinate system;
- determine a reference set of a predetermined number of ordered route points from geographical information associated with the reference user activity, wherein the reference set of the predetermined number of ordered route points comprises points within the normalized 2D coordinate system;
- add a known noise vector into the reference set of the predetermined number of ordered route points to generate a noised reference set of the predetermined number of ordered route points;
- provide a set of tokens derived from the noised reference set of the predetermined number of ordered route points and the cropped map image to the diffusion machine learning model to obtain a predicted noise vector;
- update parameters of the diffusion machine learning model based at least in part on a loss function determined based on a comparison between the predicted noise vector and the known noise vector;
- receive the cropped map image and the noised reference set of the predetermined number of ordered route points;
- derive a first set of tokens from the noised reference set of the predetermined number of ordered route points, wherein each token from the first set of tokens is derived from a respective two-dimensional pixel coordinate and a respective index value corresponding to a respective ordered route point;
- receive a set of global patches divided from the cropped map image;
- and
- derive a second set of tokens from the set of global patches, wherein each token from the second set of tokens is derived from pixel values corresponding to a respective global patch;
- receive a request to generate a route recommendation for an activity;
- and
- generate a recommended route for the activity in response to the request using the diffusion machine learning model.
19 more elements
Dependencies are inferred from the claim text.