Decision-based model generation for video delivery
In some embodiments, a method receives a data structure for an auto decision process for predicting a value for a decision feature of a plurality of features. The data structure is generated using a decision aware splitting process that splits a node in the data structure using the decision feature and a metric-based process that splits other nodes of the data structure by evaluating features in the plurality of features using a metric. Feature values are determined for a combination of features for a playback session. The method evaluates the data structure using the combination of features to determine a plurality of prediction values for a plurality of feature values of the decision feature. The prediction values are used to generate a decision for the playback session by selecting a feature value in the plurality of feature values based on the plurality of prediction values.
1 . A method comprising:
receiving a data structure for an auto decision process for predicting a prediction value for a decision value of a plurality of decision features, wherein:
the decision feature selects a content delivery network in a plurality of content delivery networks for delivering content to a client device or selects a profile of a plurality of profiles for delivering the content at different bitrates,
the data structure is generated using a decision aware splitting process that splits a node in the data structure using the decision feature and a metric-based splitting process that splits other nodes of the data structure by evaluating features other than the decision feature in the plurality of features using a metric,
a prediction value in a plurality of prediction values that are defined for the decision feature is added to leaf nodes in a last split of leaf nodes in the data structures,
each leaf node has one of the plurality of prediction values added,
the prediction value is determined based on a combination of features associated with the leaf node and respective feature values associated with edges for the combination of features, and
the prediction values for the leaf nodes discriminates between decisions of the decision feature;
determining feature values for a combination of features for a playback session;
evaluating the data structure using the combination of features to determine a plurality of feature values, wherein feature values in the plurality of feature values are associated with edges connected to leaf nodes;
using first feature values in the plurality of feature values to select a first leaf node, wherein the first leaf node has a first prediction value added;
using second feature values in the plurality of feature values to select a second leaf node, wherein the second leaf node has a second prediction value added, wherein the first prediction value is different from the second prediction value due to using the decision aware splitting process that splits the node in the data structure using the decision feature; and
generating a decision for the playback session by selecting a decision value in the plurality of decision values based on the different prediction values in the first prediction value and the second prediction value to select one of the plurality of content delivery networks to deliver the content or one of the plurality of profiles of a bitrate.
2 . The method of claim 1 , wherein the data structure is a unified model that is used to generate the plurality of prediction values for the plurality of feature values for the decision feature.
3 . The method of claim 1 , wherein:
the decision aware splitting process splits a first node of the data structure into a plurality of leaf nodes using the plurality of feature values for the decision feature;
the metric-based splitting process performs:
for leaf nodes in the plurality of leaf nodes, generating a metric value for a metric for features in the plurality of features, wherein the metric value is based on selecting a respective feature for a respective leaf node;
selecting a feature for respective leaf nodes based on the metric value that is generated for features for the respective leaf nodes; and
splitting the plurality of leaf nodes using a plurality of feature values for the selected feature for respective leaf nodes.
4 . A method comprising:
receiving data that includes a plurality of features, wherein a first feature in the plurality of features is designated as a decision feature in which a prediction for a plurality of prediction values that are defined for the decision feature is generated using a data structure, wherein the decision feature selects a content delivery network in a plurality of content delivery networks for delivering content to a client device or selects a profile of a plurality of profiles for delivering the content at different bitrates;
using a decision aware splitting process, splitting a first node of the data structure into a plurality of leaf nodes using a plurality of decision values for the first feature from the data;
using a metric-based splitting process, performing:
for leaf nodes in the plurality of leaf nodes, generating a metric value for a metric for features other than the first feature in the plurality of features from the data, wherein the metric value is based on selecting a respective feature for a respective leaf node;
adding a feature for respective leaf nodes based on the metric value that is generated for features for the respective leaf nodes;
splitting the plurality of leaf nodes using a plurality of feature values for the selected feature for respective leaf nodes, wherein feature values in the plurality of feature values are associated with edges connected to leaf nodes in the plurality of leaf nodes;
ending the metric-based splitting process when a criterium is met based on the data structure;
selecting a respective prediction value from the plurality of prediction values for the first feature and adding the respective prediction value to each leaf node in a last split of leaf nodes to the data structure, wherein:
the prediction value is determined based on a combination of features associated with the leaf node and respective feature values associated with edges for the combination of features,
each leaf node has one of the plurality of prediction values added,
the prediction values for the leaf nodes discriminates between values of the decision feature to select one of the plurality of content delivery networks to deliver the content or one of the plurality of profiles of a bitrate,
a first leaf node has a first prediction value added and a second leaf node has a second prediction value added, and
the first prediction value is different from the second prediction value due to using the decision aware splitting process that splits the node in the data structure using the decision feature; and
outputting the data structure based on the splitting of the first node and the splitting of the plurality of leaf nodes.
5 . The method of claim 4 , wherein the first feature in the plurality of features is used during the decision aware splitting process and not in the metric-based splitting process.
6 . The method of claim 4 , wherein the first node comprises a root node of the data structure.
7 . The method of claim 4 , wherein the first node comprises a node after a root node of the data structure.
8 . The method of claim 4 , wherein the data structure comprises a tree structure that includes nodes and links between nodes.
9 . The method of claim 4 , wherein the first feature is automatically selected for splitting the first node based on using the decision aware splitting process.
10 . The method of claim 4 , wherein the first feature is not used to split nodes using the metric-based splitting process.
11 . The method of claim 4 , further comprising:
adding the plurality of prediction values to the data structure, wherein the plurality of prediction values are configured to predict a performance for the plurality of feature values for the first feature.
12 . The method of claim 11 , wherein the plurality of prediction values are determined based on the data, wherein the data is based on a delivery of the content.
13 . The method of claim 4 , wherein the metric comprises an information gain, wherein a higher metric value for the metric indicates that more information is gained by selecting the respective feature for a leaf node.
14 . The method of claim 4 , wherein:
the data includes data for a delivery of the content, and
the data structure is used to determine a decision for the delivery of the content.
15 . The method of claim 4 , wherein the decision feature selects a profile based on a current bandwidth that is determined during a delivery of the content or selects the content delivery network to switch to during the delivery of thecontent.
16 . The method of claim 4 , wherein using the metric-based splitting process comprises:
adding a new plurality of leaf nodes for a leaf node in the plurality of leaf nodes;
selecting a feature for respective leaf nodes in the new plurality of leaf nodes based on a metric value that is generated for the respective leaf nodes; and
splitting the plurality of leaf nodes using a plurality of feature values for the selected feature.
17 . The method of claim 4 , wherein using the metric-based splitting process comprises:
ending the metric-based splitting process when the criterium of a number of leaf nodes or a number of levels is met based on the data structure.
18 . The method of claim 4 , wherein the data structure comprises a unified data structure to determine predictions for the plurality of feature values for the decision feature.
19 . A non-transitory computer-readable storage medium having stored thereon computer executable instructions, which when executed by a computing device, cause the computing device to be operable for:
receiving data that includes a plurality of features, wherein a first feature in the plurality of features is designated as a decision feature in which a prediction for a plurality of prediction values that are defined for the decision feature is generated using a data structure, wherein the decision feature selects a content delivery network in a plurality of content delivery networks for delivering content to a client device or selects a profile of a plurality of profiles for delivering the content at different bitrates;
using a decision aware splitting process, splitting a first node of the data structure into a plurality of leaf nodes using a plurality of decision values for the first feature from the data;
using a metric-based splitting process, performing:
for leaf nodes in the plurality of leaf nodes, generating a metric value for a metric for features other than the first feature in the plurality of features from the data, wherein the metric value is based on selecting a respective feature for a respective leaf node;
adding a feature for respective leaf nodes based on the metric value that is generated for features for the respective leaf nodes;
splitting the plurality of leaf nodes using a plurality of feature values for the selected feature for respective leaf nodes, wherein feature values in the plurality of feature values are associated with edges connected to leaf nodes in the plurality of leaf nodes;
ending the metric-based splitting process when a criterium is met based on the data structure;
selecting a respective prediction value from the plurality of prediction values for the first feature and adding the respective prediction value to each leaf node in a last split of leaf nodes to the data structure, wherein:
the prediction value is determined based on a combination of features associated with the leaf node and respective feature values associated with edges for the combination of features,
each leaf node has one of the plurality of prediction values added;
the prediction values for the leaf nodes discriminates between values of the decision feature to select one of the plurality of content delivery networks to deliver the content or one of the plurality of profiles of a bitrate,
a first leaf node has a first prediction value added and a second leaf node has a second prediction value added, and
the first prediction value is different from the second prediction value due to using the decision aware splitting process that splits the node in the data structure using the decision feature; and
outputting the data structure based on the splitting of the first node and the splitting of the plurality of leaf nodes.
20 . The non-transitory computer-readable storage medium of claim 19 , wherein the first feature in the plurality of features is used during the decision aware splitting process and not in the metric-based splitting process.