ESTIMATING EFFECTS WITH LATENT REPRESENTATIONS

In implementations of systems for estimating effects with latent representations, a computing device implements an estimation system to receive input data via a network describing interactions of client devices included in a group of client devices. The estimation system generates a first latent vector representation of a first segment of the client devices and a second latent vector representation of a second segment of the client devices using an encoder of a machine learning model. A change vector is computed based on a difference between the first latent vector representation and the second latent vector representation in a latent space of the machine learning model. The estimation system generates an indication of an effect of a treatment on a third segment of the client devices based on the change vector using a decoder of the machine learning model.

BACKGROUND

A treatment refers to a controlled change or intervention, and a treatment effect is a causal effect of the treatment on particular outcome. For example, in a clinical trial for a new drug, administration of the new drug to a participant in the clinical trial is the treatment. The treatment effect is a change in the participant's health (if any) as a result of receiving the new drug (e.g., a difference between the participant's health before and after receiving the new drug).

SUMMARY

Techniques and systems for estimating effects with latent representations are described. In an example, a computing device implements an estimation system to receive input data via a network describing interactions of client devices included in a group of client devices. In this example, the input data includes categorical data and numerical data describing the interactions of the client devices. The estimation system generates a first latent vector representation of a first segment of the client devices and a second latent vector representation of a second segment of the client devices using an encoder of a machine learning model. In some examples, the machine learning model includes a variational autoencoder.

The estimation system computes a change vector based on a difference between the first latent vector representation and the second latent vector representation in a latent space of the machine learning model. An indication is generated of an effect of a treatment based on a third latent vector representation of a third segment of the client devices and the change vector using a decoder of the machine learning model. For example, the estimation system combines the third latent vector representation and the change vector in the latent space and decodes this latent combination using the decoder in order to generate the indication of the effect of the treatment.

DETAILED DESCRIPTION

Overview

A treatment is a controlled change or intervention, and an effect of the treatment is any outcome which is influenced or caused by the controlled change or intervention. It is possible to estimate an effect of a treatment, for example, as an average difference between outcomes before and after the treatment. However, conventional systems for estimating effects of a treatment require information about the treatment (e.g., as a prior) in order to learn to accurately predict effects of the treatment. As a result, conventional systems are limited to estimating effects for a set of known (pre-defined) treatments. In order to overcome this limitation, techniques and systems for estimating effects with latent representations are described.

In an example, a computing device implements an estimation system to receive input data via a network describing interactions of client devices included in a group of client devices. For example, the interactions of the client devices are interactions with digital templates included in a template database, interactions as part of a collaborative digital content editing session, interactions with digital images included in an image database, and so forth. The estimation system uses the input data to train a machine learning model to generate latent vector representations of segments of client devices included in the group of client devices.

In some examples, the machine learning model includes a variational autoencoder, and the estimation system receives the input data as including categorical data describing the interactions of the client devices as well as numerical data describing the interactions of the client devices. In these examples, the estimation system embeds the categorical data using embedding layers of the machine learning model, and then batch normalizes the embedded categorical data. The estimation system concatenates the batch normalized categorical data and the numerical data as a concatenated vector.

For example, the estimation system processes the concatenated vector using an encoder of the machine learning model to generate a first latent vector representation of a first segment of the client devices in a latent space of the model. In this example, the estimation system regularizes the latent space using a Kullback-Leibler divergence loss. As part of training the machine learning model on the input data to generate the latent vector representations in the latent space, the estimation system uses a binary cross-entropy loss for the categorical data and a mean squared loss for the numerical data. For instance, the estimation system trains the machine learning model on the input data without an indication of a treatment which has been received by the first segment of the client devices.

The treatment is a recommendation of a font to use with a digital template included in the template database, an updated version of an application used to collaboratively edit digital content, a recommendation of a digital template to receive a digital image included in the image database, etc. In some examples, the estimation system has information regarding the treatment received by the first segment of the client devices. Notably, in other examples, the estimation system has no information regarding the treatment.

The estimation system implements the encoder of the machine learning model to generate a second latent vector representation of a second segment of the client devices in the latent space. In one example, the second segment of the client devices has not received the treatment. The estimation system computes a change vector based on an average difference between the first latent vector representation and the second latent vector representation in the latent space of the machine learning model. Since the first segment of the client devices received the treatment and the second segment of the client devices did not receive the treatment, the change vector is representative of an effect of the treatment in the latent space.

For example, the estimation system is capable of leveraging the change vector and the machine learning model to generate a transaction vector for a third segment of the client devices that has not received the treatment. To do so in one example, the estimation system generates a third latent vector representation of the third segment of the client devices using the encoder of the machine learning model. The third latent vector representation is combined with the change vector in the latent space, and the estimation system generates the transaction vector by decoding this combined latent representation using a decoder of the machine learning model.

The transaction vector approximates the third segment after receiving the treatment, and the estimation system is capable of generating the transaction vector without having any information about the treatment. This is not possible using conventional systems that require information about the treatment in order to accurately estimate an effect of the treatment. In addition to leveraging the change vector to estimate effects of treatments, the estimation system is also capable of using the change vector to implement other functionality (e.g., auto-segmentation, segment discovery, segment expansion, etc.) which is a further improvement relative to the conventional systems.

In the following discussion, an example environment is first described that employs examples of techniques described herein. Example procedures are also described which are performable in the example environment and other environments. Consequently, performance of the example procedures is not limited to the example environment and the example environment is not limited to performance of the example procedures.

Example Environment

FIG.1is an illustration of an environment100in an example implementation that is operable to employ digital systems and techniques as described herein. The illustrated environment100includes a computing device102connected to a network104. The computing device102is configurable as a desktop computer, a laptop computer, a mobile device (e.g., assuming a handheld configuration such as a tablet or mobile phone), and so forth. Thus, the computing device102is capable of ranging from a full resource device with substantial memory and processor resources (e.g., personal computers, game consoles) to a low-resource device with limited memory and/or processing resources (e.g., mobile devices). In some examples, the computing device102is representative of a plurality of different devices such as multiple servers utilized to perform operations “over the cloud.”

The illustrated environment100also includes a display device106that is communicatively coupled to the computing device102via a wired or a wireless connection. A variety of device configurations are usable to implement the computing device102and/or the display device106. The computing device102includes a storage device108and an estimation module110. For instance, the storage device108is illustrated to include digital content112such as digital images, electronic documents, digital videos, etc.

The estimation module110is illustrated as having, receiving, and/or transmitting input data114. In an example, the estimation module110receives the input data114via the network104. As shown, the input data114describes interactions of client devices included in a group116of client devices. In this example, the group116of client devices includes a first segment118of the client devices, a second segment120of the client devices, and a third segment122of the client devices.

Consider a first example in which the interactions of the client devices included in the group116are interactions with a font service via the network104. For instance, the font service includes a database of thousands of different fonts. In the first example, users of the client devices manipulate an input device (e.g., a mouse, a keyboard, a stylus, a touchscreen, etc.) to interact with the font service such as to identify fonts included in the database having particular visual features, to create new fonts to be included in the database, to identify fonts included in the database that are visually similar to a particular font that is not included in the database, and so forth.

Consider a second example in which the interactions of the client devices included in the group116are interactions as part of a collaborative digital content editing session conducted via the network104. In this second example, users of the client devices manipulate the input device to participate in the collaborative digital content editing session such as by adding objects to digital content, changing visual features of objects included in the digital content, commenting in relation to an editing operation performed on the digital content by another participant in the collaborative editing session, etc. The computing device102implements the estimation module110to estimate an effect of a treatment on the group116of client devices. For example, the treatment is a controlled change or intervention and the effect of the treatment is any outcome which is influenced or caused by the controlled change or intervention. In some examples, the effect of the treatment on the group116of client devices is an average difference between any variable for client devices included in the group116that receive the treatment and client devices included in the group116that do not receive the treatment.

In the first example, the treatment is a particular recommended font. For example, the estimation module110recommends the particular font to the first segment118of the client devices and the estimation module110does not recommend the particular font to the second segment120of the client devices. In this example, the effect of the treatment is use of the particular font to render glyphs of text in a digital template.

In the second example, the treatment is a new version of a web-based digital content editing application that is still being tested before release. Continuing the second example, the estimation module110replaces a legacy version of the web-based digital content editing application with the new version for the first segment118of the client devices and the estimation module110does not replace the legacy version for the second segment120of the client devices. For example, the effect of the treatment is a difference between a number of error log entries for the first segment118when using the new version of the application and a number of error log entries for the second segment120using the legacy version of the application.

In order to estimate the effect of the treatment on the group116of client devices, the estimation module110leverages a machine learning model. As used herein, the term “machine learning model” refers to a computer representation that is tunable (e.g., trainable) based on inputs to approximate unknown functions. By way of example, the term “machine learning model” includes a model that utilizes algorithms to learn from, and make predictions on, known data by analyzing the known data to learn to generate outputs that reflect patterns and attributes of the known data. According to various implementations, such a machine learning model uses supervised learning, semi-supervised learning, unsupervised learning, reinforcement learning, and/or transfer learning. For example, the machine learning model is capable of including, but is not limited to, clustering, decision trees, support vector machines, linear regression, logistic regression, Bayesian networks, random forest learning, dimensionality reduction algorithms, boosting algorithms, artificial neural networks (e.g., fully-connected neural networks, deep convolutional neural networks, or recurrent neural networks), deep learning, etc. By way of example, a machine learning model makes high-level abstractions in data by generating data-driven predictions or decisions from the known input data.

In an example, the machine learning model includes a variational autoencoder and the estimation module110receives and processes the input data114to generate a first latent vector representation of the first segment118of the client devices and a second latent vector representation of the second segment120of the client devices in a latent space of the variational autoencoder. For example, the estimation module110generates the first and second latent vector representations using an encoder of the variational autoencoder. The estimation module110computes a change vector based on an average difference between the first latent vector representation and the second latent vector representation in the latent space of the variational autoencoder.

Since the first segment118of the client devices received the treatment and because the second segment120of the client devices did not receive the treatment, the change vector is representative of an effect of the treatment in the latent space of the variational autoencoder. For example, the estimation module110is capable of leveraging the change vector as a representation of the effect of the treatment regardless of whether the treatment is a recommended font as in the first example or whether the treatment is a new version of the web-based digital content editing application as in the second example. Consider an example in which the third segment122of the client devices did not receive the treatment and the estimation module110is capable of estimating an effect of the treatment on the third segment122using the change vector and the variational autoencoder.

To do so, the estimation module110generates a third latent vector representation of the third segment122of the client devices using the encoder of the variational autoencoder. The estimation module110then combines the third latent vector representation of the third segment and the change vector in the latent space of the variational autoencoder. For example, the estimation module110decodes the combination in the latent space using a decoder of the variational autoencoder to generate an estimated effect of the treatment for the third segment122of the client devices.

For instance, the estimation module110is capable of leveraging the change vector and the variational autoencoder to facilitate functionality such as generating indications124,126which are displayed in a user interface128of the display device106. As shown, indication124states “Client devices included in segment118have received the treatment” and indication126states “Client devices included in segment122have not received the treatment.” Notably, the estimation module110is capable of accurately generating the indications124,126without an indication of the treatment (e.g., without knowledge of the treatment). This is not possible using conventional systems for estimating effects that require knowledge of the treatment as a prior in order to accurately estimate effects.

FIG.2depicts a system200in an example implementation showing operation of an estimation module110. The estimation module110is illustrated to include a normalization module202, a treatment module204, and an effect module206. The estimation module110receives the input data114describing interactions of the client devices included in the group116of client devices which includes numerical data208and categorical data210. For example, the normalization module202receives and processes the input data114including the numerical data208and the categorical data210to generate concatenated data212.

FIG.3illustrates a representation300of generating concatenated data. As shown, the representation300includes the first segment118of the client devices, the second segment120of the client devices, and the third segment122of the client devices. In order to process the numerical data208and the categorical data210using the machine learning model that includes the variational autoencoder, the normalization module202pre-processes the categorical data210using embedding layers302and a normalization layer304(e.g., embedding layers302embed the categorical data210and the normalization layer304batch normalizes the embedded categorical data210). For example, the normalization module202concatenates the batch normalized categorical data210with the numerical data208(e.g., the numerical data208is normalized as received or is already normalized) to generate a concatenated vector306. In this example, the normalization module202generates the concatenated data212as describing the concatenated vector306. The treatment module204receives and processes the concatenated data212to generate change data214.

FIG.4illustrates a representation400of a machine learning model. As shown in the representation400, the machine learning model includes a variational autoencoder that is illustrated as an encoder module402, a decoder module404, and a latent space406. For example, the estimation module110includes the variational autoencoder, and the estimation module110processes the concatenated vector306described by the concatenated data212using an encoder of the variational autoencoder included in the encoder module402. In this example, the encoder includes a dense layer (e.g., output size100) with rectified linear unit (ReLU) activation.

A decoder of the variational autoencoder is included in the decoder module404. For example, the decoder includes dense layers (e.g., output size100with ReLU activation) to decode the latent space406and an extra dense layer to separately decode the numerical data208and the categorical data210. In this example, the numerical data208has linear activation and the categorical data210is decoded as its one-hot encoded representation with softmax activation. The estimation module110trains the variational autoencoder on the input data114without an indication of the treatment. As part of the training, a binary cross-entropy loss is used for the categorical data210, a mean squared loss is used for the numerical data208, and a Kullback-Leibler divergence loss is used for regularization of the latent space406.

FIG.5illustrates a representation500of computing a change vector based on latent representations. The treatment module204processes the concatenated data212using the encoder of the variational autoencoder included in the encoder module402to generate a first latent vector representation of the first segment118of the client devices in the latent space406of the variational autoencoder. For example, the first segment118of the client devices has received the treatment and first latent vector representation includes a representation of the treatment in the latent space406. In this example, the treatment module204also uses the encoder included in the encoder module402to generate a second latent vector representation of the second segment120of the client devices in the latent space406of the variational autoencoder. For instance, the second segment120of the client devices has not received the treatment and the second latent vector representation does not include a representation of the treatment in the latent space406.

The treatment module204computes a change vector502based on a difference between the first latent vector representation and the second latent vector representation in the latent space406of the variational autoencoder. In an example, the treatment module204computes the change vector502as a mean or average difference between the first latent vector representation of the first segment118and the second latent vector representation of the second segment120. Since the treatment has been applied to the first segment118and the treatment has not been applied to the second segment120, the change vector502is representative of an effect of the treatment in the latent space406. For example, the treatment module204generates the change data214as describing the change vector502.

The effect module206receives and processes the change data214and then leverages the change vector502and the variational autoencoder to facilitate a variety of functionality such as estimating an effect of the treatment on the third segment122of the client devices.FIG.6illustrates a representation600of generating an indication of an effect of a treatment based on a change vector. For example, the effect module206implements the encoder module402to generate a third latent vector representation of the third segment122of the client devices in the latent space406of the variational autoencoder. In this example, the third segment122of the client devices has not received the treatment and the effect module206estimates an effect of the treatment on the third segment122by combining the third latent vector representation with the change vector502described by the change data214in the latent space406.

The effect module206uses the decoder of the variational autoencoder included in the decoder module404to decode the combination of the third latent vector representation and the change vector502in order to generate a final transaction vector602. As described above, the extra dense layer of the decoder is implemented to separately decode the categorical data210as categorical outputs604and the numerical data208as numerical outputs606. For example, the effect module206generates an indication of the effect of the treatment on the third segment122(e.g., the final transaction vector602) for display in the user interface128of the display device106.

By computing the change vector502in the regularized latent space406of the variational autoencoder in this manner, the estimation module110is capable of estimating effects of treatments on the client devices included in the group116of client devices without any knowledge of these treatments. For instance, the estimation module110is capable of computing the change vector502and generating the final transaction vector602to estimate the effect of the treatment on the third segment122without any information as to whether the first segment118or the second segment120received the treatment. In some examples, the estimation module110is capable of estimating effects of treatments based on representations in the latent space406even if these representations are not directly meaningful outside of the latent space406. This is not possible in conventional systems that require information about a treatment as a prior in order to accurately estimate effects of the treatment. Additionally, it is to be appreciated that the described systems for estimating effects with latent representations are leverageable to support a variety of additional functionality such as automatic segmentation of the group116of client devices, segment discovery, segment expansion, and so forth. For example, by computing differences between latent vector representations in the latent space406, it is possible for the computing device102to implement the estimation module110to perform AB testing causal analysis, next action predictions, etc.

In general, functionality, features, and concepts described in relation to the examples above and below are employed in the context of the example procedures described in this section. Further, functionality, features, and concepts described in relation to different figures and examples in this document are interchangeable among one another and are not limited to implementation in the context of a particular figure or procedure. Moreover, blocks associated with different representative procedures and corresponding figures herein are applicable individually, together, and/or combined in different ways. Thus, individual functionality, features, and concepts described in relation to different example environments, devices, components, figures, and procedures herein are usable in any suitable combinations and are not limited to the particular combinations represented by the enumerated examples in this description.

Example Procedures

The following discussion describes techniques which are implementable utilizing the previously described systems and devices. Aspects of each of the procedures are implementable in hardware, firmware, software, or a combination thereof. The procedures are shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks. In portions of the following discussion, reference is made toFIGS.1-6.FIG.7is a flow diagram depicting a procedure700in an example implementation in which an indication of an effect of a treatment is generated based on a change vector.

Input data is received via a network describing interactions of client devices included in a group of client devices (block702). In some examples, the computing device102implements the estimation module110to receive the input data. A first latent vector representation of a first segment of the client devices and a second latent vector representation of a second segment of the client devices are generated using an encoder of a machine learning model (block704). For example, the estimation module110generates the first latent vector representation and the second latent vector representation.

A change vector is computed based on a difference between the first latent vector representation and the second latent vector representation in a latent space of the machine learning model (block706). In an example, the computing device102implements the estimation module110to compute the change vector. An indication of an effect of a treatment on a third segment of the client devices is generated based on the change vector using a decoder of the machine learning model (block708). In one example, the estimation module110generates the indication of the effect of the treatment.

FIG.8is a flow diagram depicting a procedure800in an example implementation in which an indication of an effect of a treatment is generated based on a difference between a first latent vector representation and a second latent vector representation. Input data is received via a network describing interactions of client devices included in a group of client devices, the input data includes categorical data and numerical data (block802). For example, the computing device102implements the estimation module110to receive the input data.

The categorical data and the numerical data are represented as a concatenated vector by batch normalizing the categorical data (block804). In one example, the estimation module110represents the categorical data and the numerical data as the concatenated vector. A first latent vector representation of a first segment of the client devices and a second latent vector representation of a second segment of the client devices are generated based on the concatenated vector using an encoder of a machine learning model (block806). In some examples, the estimation module110generates the first latent vector representation and the second latent vector representation. An indication of an effect of a treatment on a third segment of the client devices is generated based on a difference between the first latent vector representation and the second latent vector representation in a latent space using a decoder of the machine learning model (block808). In an example, the computing device102implements the estimation module110to generate the indication of the effect of the treatment.

Example System and Device

FIG.9illustrates an example system900that includes an example computing device that is representative of one or more computing systems and/or devices that are usable to implement the various techniques described herein. This is illustrated through inclusion of the estimation module110. The computing device902includes, for example, a server of a service provider, a device associated with a client (e.g., a client device), an on-chip system, and/or any other suitable computing device or computing system.

The example computing device902as illustrated includes a processing system904, one or more computer-readable media906, and one or more I/O interfaces908that are communicatively coupled, one to another. Although not shown, the computing device902further includes a system bus or other data and command transfer system that couples the various components, one to another. For example, a system bus includes any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures. A variety of other examples are also contemplated, such as control and data lines.

The processing system904is representative of functionality to perform one or more operations using hardware. Accordingly, the processing system904is illustrated as including hardware elements910that are configured as processors, functional blocks, and so forth. This includes example implementations in hardware as an application specific integrated circuit or other logic device formed using one or more semiconductors. The hardware elements910are not limited by the materials from which they are formed or the processing mechanisms employed therein. For example, processors are comprised of semiconductor(s) and/or transistors (e.g., electronic integrated circuits (ICs)). In such a context, processor-executable instructions are, for example, electronically-executable instructions.

The computer-readable media906is illustrated as including memory/storage912. The memory/storage912represents memory/storage capacity associated with one or more computer-readable media. In one example, the memory/storage912includes volatile media (such as random access memory (RAM)) and/or nonvolatile media (such as read only memory (ROM), Flash memory, optical disks, magnetic disks, and so forth). In another example, the memory/storage912includes fixed media (e.g., RAM, ROM, a fixed hard drive, and so on) as well as removable media (e.g., Flash memory, a removable hard drive, an optical disc, and so forth). The computer-readable media906is configurable in a variety of other ways as further described below.

Implementations of the described modules and techniques are storable on or transmitted across some form of computer-readable media. For example, the computer-readable media includes a variety of media that is accessible to the computing device902. By way of example, and not limitation, computer-readable media includes “computer-readable storage media” and “computer-readable signal media.”

Combinations of the foregoing are also employable to implement various techniques described herein. Accordingly, software, hardware, or executable modules are implementable as one or more instructions and/or logic embodied on some form of computer-readable storage media and/or by one or more hardware elements910. For example, the computing device902is configured to implement particular instructions and/or functions corresponding to the software and/or hardware modules. Accordingly, implementation of a module that is executable by the computing device902as software is achieved at least partially in hardware, e.g., through use of computer-readable storage media and/or hardware elements910of the processing system904. The instructions and/or functions are executable/operable by one or more articles of manufacture (for example, one or more computing devices902and/or processing systems904) to implement techniques, modules, and examples described herein.

The techniques described herein are supportable by various configurations of the computing device902and are not limited to the specific examples of the techniques described herein. This functionality is also implementable entirely or partially through use of a distributed system, such as over a “cloud”914as described below.

The cloud914includes and/or is representative of a platform916for resources918. The platform916abstracts underlying functionality of hardware (e.g., servers) and software resources of the cloud914. For example, the resources918include applications and/or data that are utilized while computer processing is executed on servers that are remote from the computing device902. In some examples, the resources918also include services provided over the Internet and/or through a subscriber network, such as a cellular or Wi-Fi network.

The platform916abstracts the resources918and functions to connect the computing device902with other computing devices. In some examples, the platform916also serves to abstract scaling of resources to provide a corresponding level of scale to encountered demand for the resources that are implemented via the platform. Accordingly, in an interconnected device embodiment, implementation of functionality described herein is distributable throughout the system900. For example, the functionality is implementable in part on the computing device902as well as via the platform916that abstracts the functionality of the cloud914.