SYNTHESIS OF PERSONA ATTRIBUTES

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, to synthesize persona attributes are disclosed. In one aspect, a method includes the actions of accessing training data that includes attributes. The actions further include accessing selection criteria that is configured to select a portion of the training data. The actions further include selecting the portion of the training data by applying the selection criteria to the training data. The actions further include training using machine learning, and using the portion of the training data, a model that is configured to generate given synthetic attributes of given synthetic personas. The actions further include providing, to the model, a request for synthetic attributes of synthetic personas. The actions further include receiving, from the model, the synthetic attributes of the synthetic personas.

TECHNICAL FIELD

This specification generally relates to personas, and, in more detail, to generating attributes of personas.

BACKGROUND

A persona may be a profile of a person. The persona may have various attributes that are also attributes of the person. The attributes may include data related to that person's interactions with various computing systems and non-computer related systems. The attributes may include demographic information of the person and/or the face and voice of the person. Attributes related to the person's interactions with various computing systems may include the person's information creation and sharing network accounts, the devices used to access those accounts, and how the person uses those accounts to interact with other individuals.

SUMMARY

In the world of personas, there may be instances where it is beneficial to create synthetic personas that appear to correspond to actual people. To build a synthetic persona, a user may need to create the various synthetic attributes that make up a synthetic persona. One of those synthetic attributes is an image of the face to correspond to the synthetic persona. One possible way to select an image of a face is to search various image databases for an image that fits the synthetic persona that the user is attempting to build. Simply selecting from images that already exist may cause the synthetic persona to appear fake because the image that corresponds to the persona can be found elsewhere. To improve the likelihood that the synthetic persona appears to belong to a real person, it would be beneficial to generate an image of a face that is unique.

To generate a unique image of a face, a user may interact with a computing device to select a set of training images of faces. The selected training images may include those faces that are similar to the one that the user wishes to generate. In some instances, the user may select to include all the training data without limiting the training images. The computing device may train a model using machine learning and the selected training images. With this model being trained using a specific set of selected training images, the model may generate similar images that are unique. The user may select one of the unique images for inclusion in a synthetic persona. The user may also interact with the model to further adjust various characteristics of the generates images. These characteristics may include color ranges of skin tone, color ranges of hair, color ranges of eyes, minimum frontal breadth, upper face height, height of forehead, face breadth, biogonia breadth (lower jaw width), height of lower face, total face height and/or any other similar characteristic.

An innovative aspect of the subject matter described in this specification may be implemented in methods that include the actions of accessing, by a computing device, training data that includes attributes of personas; accessing, by the computing device, selection criteria that is configured to select a portion of the training data; selecting, by the computing device, the portion of the training data by applying the selection criteria to the training data; training, by the computing device, using machine learning, and using the portion of the training data, a model that is configured to generate given synthetic attributes of given synthetic personas; providing, by the computing device and to the model, a request for synthetic attributes of synthetic personas; and receiving, by the computing device and from the model, the synthetic attributes of the synthetic personas

These and other implementations can each optionally include one or more of the following features. The attributes of the personas are facial images of the persona. The selection criteria comprises color ranges of skin tone, color ranges of hair, color ranges of eyes, minimum frontal breadth, upper face height, height of forehead, face breadth, biogonia breadth, height of lower face, and total face height. The attributes of the persona are voices of the personas. The actions include bypassing, by the computing device, training the model using a remaining portion of the training data.

The actions include accessing, by the computing device, additional selection criteria that is configured to select an additional portion of the training data; selecting, by the computing device, the additional portion of the training data by applying the additional selection criteria to the training data; training, by the computing device, using machine learning, and using the additional portion of the training data, an additional model that is configured to generate given additional synthetic attributes of given additional synthetic personas; providing, by the computing device and to the additional model, an additional request for additional synthetic attributes of additional synthetic personas; and receiving, by the computing device and from the additional model, an additional selection of an additional synthetic attribute of the additional synthetic attributes for use in an additional synthetic persona. The portion of the training data and additional portion of the training data need not share any of the training data. The portion of the training data and additional portion of the training data may share some of the training data. The portion of the training data and the additional portion of the training data may be the same.

The action of selecting the portion of the training data by applying the selection criteria to the training data includes, based on the selection criteria, determining a range or threshold for a characteristic of the attributes; and for each attribute in the training data: determining a value of the characteristic of the attribute; comparing the value of the characteristic to the range or threshold; and based on comparing the value of the characteristic to the range or threshold, determining whether to select the attribute for inclusion in the portion of the training data. The actions include providing, by the computing device and to the model, a selection of a synthetic attribute of the synthetic attributes and a request to adjust a characteristic of the synthetic attribute; and based on the selection of the synthetic attribute and the request to adjust the characteristic of the synthetic attribute, receiving, by the computing device and from the model, an updated synthetic attribute.

Other implementations of this aspect include corresponding systems, apparatus, and computer programs recorded on computer storage devices, each configured to perform the operations of the methods.

Particular implementations of the subject matter described in this specification can be implemented so as to realize one or more of the following advantages. Different attributes of a persona can be automatically generated and can be unique, which helps create a persona that appears to belong to an actual person.

DETAILED DESCRIPTION

FIG.1illustrates an example system100for training a model that is configured to synthesize attributes of a persona and using that model to synthesize attributes of personas. Briefly, and as described in more detail below, the user102may be interacting with the server106through the synthetic persona client148that may be running on the computing device104. The user102may be attempting to generate a synthetic persona. To do so, the user102may generate some or all of the various attributes of the synthetic persona. One of those attributes may be the face of the synthetic persona. The server106may include various components to assist the user102in generating those attributes.FIG.1includes various stages A through H that may illustrate the performance of actions and/or the movement of data between various components of the system100. The system100may perform these stages in any order.

In more detail, the user102may be interacting with the computing device104. The computing device may include a synthetic persona client148that allows the user102to create complete synthetic personas and their various attributes. These personas are synthetic because they may not correspond to actual persons. The synthetic persona client148may assist the user102in creating the synthetic attributes that have a high likelihood of appearing to belong to personas that correspond to real people. The synthetic persona client148may communicate with the server106. The server106may include various components that communicate with the synthetic persona client148that assist the user102in generating the synthetic attributes. These components may include the synthetic attributes generator118and the training data selector122, which will be discussed in more detail below.

The computing device104and the server106may be any type of computing device that is configured to communicate with other computing devices. For example, the computing device104and/or the server106may be a desktop computer, a laptop computer, a tablet, a smart phone, a wearable device, a mainframe computer, and/or any other similar computing device. In some implementations, the computing device104and/or the server106may be a virtual computing devices that are hosted in the cloud in communication with disaggregated storage devices. In some implementations, the components of the computing device104and/or the server106may be implemented in a single computing device or distributed over multiple computing devices. In some implementations, the user102may be a computing device running an artificial intelligence program. In some implementations, the actions performed by the user102may be performed by more than one user.

The computing device104and the server106may each include a communication interface, one or more processors, memory, and hardware. The communication interface may include communication components that enable the computing device104or the server106to transmit data and receive data from other devices and networks. In some implementations, the communication interface may be configured to communicate over a wide area network, a local area network, the internet, a wired connection, a wireless connection, and/or any other type of network or connection. The wireless connections may include Wi-Fi, short-range radio, infrared, cellular, satellite, radio, and/or any other wireless connection.

The hardware may include additional user interface, data communication, or data storage hardware. For example, the user interfaces may include a data output device (e.g., visual display, audio speakers), and one or more data input devices. The data input devices may include, but are not limited to, combinations of one or more of keypads, keyboards, mouse devices, touch screens that accept gestures, microphones, voice or speech recognition devices, and any other suitable devices.

In stage A, the user102provides information to the synthetic persona client148and the server106to select the training data for the model used to generate the synthetic attributes. The one or more processors of the computing device104may implement the synthetic persona client148. The information may include training parameters136that specify characteristics of the attributes used to train the model. In some implementations, the synthetic persona client148may generate a graphical interface that allows the user102to select the training parameters136from a group of available parameters. For example, the synthetic persona client148may generate an interface that allows the user102to select ranges and/or thresholds for various characteristics of the faces. These face characteristics may include the minimum frontal breadth, the upper face height, the total face height, the height of forehead, the face breadth, the height of lower face, the biogonia breadth (lower jaw width), and/or any other similar face measurements. The user102may select the height of forehead, height of lower face, and the face breadth as the measurements used to select the training data. The user102may specify that the height of forehead should be between 60 and 68 millimeters, the height of the lower face should be between 80 and 84 millimeters, and the face breadth should be between 136 and 142 millimeters. The synthetic persona client148may generate the training parameters136based on this input and transmit the training parameters136to the server106.

The information that the user102provides to the synthetic persona client148may include measurements other than face measurements. The information provided may depend on the attribute that the user102is attempting to generate. The user102may provide data indicating the attribute that the user is attempting to generate. The user102may also provide data indicating the characteristic of the attribute for selecting the training data. In this case, the synthetic persona client148may provide an interface for the user102to select an attribute. In response to the selection, the synthetic persona client148may provide data indicating the available characteristics of that attribute. The user102may select a characteristic and the ranges and/or thresholds for that characteristics for limiting the training data for the attribute. Some of the attributes that make up a persona may include the voice of the persona, the interactions with various computing accounts associated with the persona, the devices used to access those computing accounts, and/or any other similar attributes. Each of these attributes may have various characteristics. For example, the voice may have pitch, timbre, tone, degree of hoarseness, and/or any other similar characteristic. The devices used to access the computing accounts may include a model number, manufacturer, operating system, installed applications, media access control address, international mobile equipment identity number, and/or any other similar characteristic.

The synthetic persona client148may provide the training parameters136to the server106. The training data selector122of the server106may receive the training parameters136and store them in the training data selection criteria114. The training data selector122may be implemented by one or processors of the server106executing software stored or accessible by the one or more processors. The training data selector122may use the training data selection criteria114to select a subset of training data from the training data108. The training data108may include various attributes that may or may not belong to other personas. For example, the training data108may include various pictures of faces and the pictures may come from various sources. Some of the pictures may be included in other personas, either real or synthetic. Some of the pictures may be stock photos. Some of the pictures may be from various faces gathered from the internet. As another example, the training data108may include various voice samples from various sources. Some of the voice samples may be collected from video or audio clips accessible on the internet. Some of the voice samples may be included in video or audio clips of other personas.

In some implementations, the training data selector122may preprocess the attributes in the training data108. The preprocessing step may involve analyzing each of the attributes in the training data108and determining a value for the various characteristics of the attribute. In the example of attributes that are faces, the training data selector122analyze each of the images of faces in the training data108and determine the value of the various characteristics of each face in each image. The training data selector122may calculate a value for skin tone, color ranges of hair, color ranges of eyes, minimum frontal breadth, upper face height, height of forehead, face breadth, biogonia breadth, height of lower face, total face height, and/or any other similar characteristics. In some implementations, the training data selector122may be unable to determine a characteristic value. In this case, the training data selector122may determine a likely range for the characteristic value based on the image. The training data selector122may determine a likely value for the characteristic value based on the image. In some implementations, these likely ranges or values may be based on other characteristics. For example, given values for the upper face height, height of forehead, and face breadth, the training data selector122may determine a likely range or likely value for the minimum frontal breadth. In some implementations, the training data selector122may determine a confidence score that reflects a likelihood that the correct value of the characteristics falls within the likely range or is the likely value.

In the example ofFIG.1and in stage B, the training data selector122receives the training parameters136from the synthetic persona client148. The training data selector122stores the training parameters136in the training data selection criteria114as the training criteria120. The training data selector122determines that the training parameters136relate to the face attribute of a persona. In response to this determination, the training data selector122analyzes the face images in the training data108. The training data includes face images124,126,128,130,132, and134. Each face image may include various metadata that includes values for the various characteristics of the face image. The training data selector122compares the training criteria120to the characteristics of the face images in the training data108and selects the face images in the training data108that meet the training criteria. Based on this comparison, the training data selector122determines whether the values of the characteristics of the face images in the training data108satisfy the training criteria120. Based on determining that the values of the characteristics of the face images in the training data108satisfy the training criteria120, the training data selector122may select face images130,132, and134. The face images130,132, and134may be included in the selected training data110.

In some instances, a value for a characteristic of the face images may be blank, have a likely value, or have a likely range. The likely values or ranges may have confidence scores associated with them. In some implementations, the training data selector122may bypass selecting a face image if the characteristic value is blank and the training data selector122is unable to determine that the characteristic value corresponds to the selection criteria120. In some implementations, the training data selector122may select a face image if the characteristic value is blank and other characteristic values correspond to the selection criteria120. In some implementations, the training data selector122may select a face image if the likely range of the characteristic overlaps a portion of the selection criteria120. In some implementations, the training data selector122may select a face image if the likely range of the characteristic overlaps at least a threshold portion of the selection criteria120, for example a fifty percent overlap.

The threshold may vary. The threshold may be user selectable and/or may vary based on the type of attribute. For example, the threshold for a face characteristic may be different than the threshold for a voice characteristic. The threshold may vary based on the type of characteristic. For example, the threshold for the height of forehead may be different than the threshold for the face breadth. The threshold may vary based on the confidence score associated with the likely value or likely range. The threshold may be indirectly related to the threshold such that a higher confidence score results in a lower threshold and a lower confidence score results in a higher threshold. In other words, as the confidence score increases, which indicates that the likely value or likely range is more likely to be accurate, the threshold may decrease.

With the selected training data110identified, the model trainer116may train a model that is configured to output one or more synthetic attributes that are the same type of attribute as the attributes in the selected training data110. The model trainer116may train the model using machine learning. The model trainer116may store the trained model in the synthetic attributes models112along with data indicating the type of attribute that the model is configured to generate.

The models in the synthetic attributes models112may be configured to generate one or more synthetic attributes in response to receiving varying amounts of input. A first amount of input may be a request to generate multiple synthetic attributes. In response to this input, the model may be configured to output multiple synthetic attributes. The outputted multiple synthetic attributes may be different each time the model receives a request to generate multiple synthetic attributes. The outputted multiple synthetic attributes may also have different characteristics that may be similar to the characteristics of the selected training data110. A second amount of input may be a request to generate multiple synthetic attributes and a specific range or value for one or more particular characteristics of the outputted multiple synthetic attributes. The outputted multiple synthetic attributes may also have different characteristics and may each have the one or more particular characteristics of the inputted value or range.

A third amount of input may be a request to modify an inputted attribute and generate one or more synthetic attributes. In response to this request to modify an inputted attribute and generate one or more synthetic attributes, the model may output one or more synthetic attributes that are similar to the inputted attribute. The one or more synthetic attributes may maintain one or more of the characteristics of the inputted attribute. A fourth amount of input may be a request to modify an inputted attribute, generate one or more synthetic attributes, and adjust a single characteristic of the inputted attribute. In response to the fourth amount of input, the model may output one or more synthetic attributes that maintain the characteristics of the inputted attribute with the exception of the single characteristic, which is adjusted as specified in the input.

In the example ofFIG.1and in stage C, the model trainer116may train a model using the selected training data110. The model trainer116may use machine learning to train the model and may store the model in the synthetic attributes models112. The model may be configured to generate synthetic facial images because the selected training data110are facial images. The generated synthetic facial images may also have characteristics that are similar and/or that match the training criteria120. Other characteristics that were not specified in the training criteria120may be in any range or value in the facial images in the selected training data110.

With the model generated, the user102may attempt to generate synthetic attributes using the synthetic attributes models112. The user102may interact with the synthetic persona client148on the computing device104. The user may request multiple synthetic attributes and specify a type of attribute. The synthetic persona client148may generate an attribute request150and transmit the attribute request150to the server106.

In some implementations, the synthetic persona client148may receive data indicating the synthetic attributes models112that are available to generate synthetic attributes. The synthetic persona client148may output an interface that allows the user102to select a type of synthetic attribute to generate from the available attributes. There may be more than one model that is configured to generate the same type of attribute. This may be the case because different sets of training data were used to train different models. The interface may further identify the training data used to train the corresponding model. The interface may indicate the training criteria used to select the training data. The interface may allow the user to view samples of the training data. The interface may include a name of the model that the user102may have provided during selecting of the training criteria. In response to the selection by the user102of a model, the synthetic persona client148may generate an attribute request150that reflects the selected attribute and includes a request to generate a synthetic attribute of the type of the selected attribute.

In the example ofFIG.1and in stage D, the synthetic persona client148may receive data indicating that the synthetic attributes models112includes models for the persona attributes of faces, voices, and the interactions that the persona has with the various computing accounts associated with the persona. The user102may indicate to the synthetic persona client148that the user102would like to generate a synthetic attribute. In response, the synthetic persona client148may generate and output an interface that allows the user102to select from the available attributes that include faces, voices, and the interactions that the persona has with the various computing accounts associated with the persona. The user102may select the face attribute. The synthetic persona client148may generate the attribute request150that indicates to generate synthetic faces.

The synthetic attributes generator118may receive the attribute request150and access the corresponding model of the synthetic attributes models112. The synthetic attributes models112may provide an input to the corresponding model that requests that the model output multiple synthetic attributes. The model may output the multiple synthetic attributes. In the example ofFIG.1and in stage E, the synthetic attributes generator118may request that the model of the synthetic attributes models112that was trained using the selected training data110generate multiple images of synthetic faces.

The synthetic attributes generator118may receive the synthetic attributes from the model of the synthetic attributes models112. The synthetic attributes generator118may generate a synthetic attribute packet152to provide to the synthetic persona client148. The synthetic attribute packet152may include the synthetic attributes generated by the model or data identifying the synthetic attributes. In the example ofFIG.1and in stage F, the synthetic attributes generator118may generate the synthetic attribute packet152that includes facial images140,142, and144and other facial images. The facial images140,142, and144and other facial images include faces generated by the model trained using the selected training data110.

The synthetic persona client148may receive the synthetic attribute packet152and output the synthetic attributes140,142, and144on an interface on the display of the computing device104. The interface may allow the user102to select one of the synthetic attributes. Selecting one of the synthetic attributes may mark the synthetic attribute for inclusion in a synthetic persona. Selecting one of the synthetic attributes may allow the user102to further refine the synthetic attribute as will be described below.

The synthetic persona client148may present the synthetic attributes140,142, and144and allow the user102to select one of the synthetic attributes and adjust one or more characteristics of the synthetic attribute. Upon selection of one of the synthetic attributes140,142, and144, the synthetic persona client148may present the user with the various characteristics of the attribute. For example, if the synthetic attributes are faces, then the various characteristics may include skin tone, hair color, eye color, facial hair, frontal breadth, upper face height, height of forehead, face breadth, biogonia breadth, height of lower face, total face height, and/or any other similar facial characteristic. In some implementations, the interface may indicate the various values for each of the characteristics. The user102may input an adjustment to one or more characteristics. The synthetic persona client148may generate an attribute selection and adjustment packet138that identifies the selected attribute and indicates the adjustment requested by the user102. For example, the hair color of the selected face may be dark brown. The user102may input an adjustment to change the hair color to light brown or input an adjustment amount to make the hair color lighter. The adjustment to make the hair color lighter may be set to a predetermined amount such that the hair color may be lightened, for example, by one level. The user102may specify to lighten the hair color by one or more levels. In some implementations, the predetermined amount may vary for each characteristic and/or may be user selectable.

In the example ofFIG.1and stage G, the synthetic persona client148may present the face images140,142, and144on an interface of the computing device104. The user may select image140. Upon selection of the image140, the synthetic persona client148may generate and output an interface that identifies the various characteristics of the image140. This interface may or may not include the values of each characteristic. The user102may determine that the facial image140includes too much facial hair. The user102may select the facial hair characteristics and input a selection to reduce the amount of facial hair. The reduction amount may be a predetermined amount determined by the synthetic persona client148. The synthetic persona client148may generate an attribute selection and adjustment packet138that identifies the image140and indicates the input from the user102to reduce the amount of facial hair by the selected amount. The synthetic persona client148may transmit the attribute selection and adjustment packet138to the server106.

The synthetic attributes generator118may receive the attribute selection and adjustment packet138. Based on the contents of the attribute selection and adjustment packet138, the synthetic attributes generator118may determine the model of the synthetic attributes models112that generated the attribute140. In some implementations, each synthetic attribute may include metadata that includes data identifying the model that generated the synthetic attribute. The synthetic attributes generator118may access the model that generated the identified attribute and provide the attribute, data identifying the characteristics to adjust and and the adjustment of the characteristic as inputs to the model. The adjustment of the characteristic may indicate an amount to adjust the characteristic. In some instances, the synthetic attributes generator118may provide a value for the characteristic in place or in addition to the adjustment to the characteristic. In some instances, the synthetic attributes generator118may provide an indication to increase or decrease the characteristic in accordance with the user selection. In this case, the model may determine an appropriate adjustment amount based on the training of the model.

In response to receiving the input that includes the identified attribute and the characteristic to adjust and some type of indication of how to adjust the characteristic or a value for the characteristic, the model outputs an updated attribute. The updated attribute may similar to the inputted attribute with the exception of the change to the characteristics. This does not necessarily mean that the other portion of the attribute will be identical to the inputted attribute or that even the values of the other characteristics will be the same as the characteristics of the inputted attribute. Instead, the model will generate a new synthetic attribute that has a high likelihood of appearing to resemble an attribute of an actual person, which may require that some of the characteristics of the inputted attribute may be different in than the characteristics of the new updated attribute.

In the example ofFIG.1and in stage H, the synthetic attributes generator118receives the attribute selection and adjustment packet138. The attribute selection and adjustment packet138indicates that the user102selects facial image140and would like a new similar facial image but with less facial hair. The synthetic attributes generator118identifies the corresponding model in the synthetic attributes models112that generated the facial image140. The synthetic attributes generator118provides the model the facial image140, data identifying the characteristic of facial hair, and a request to reduce the facial hair. The request to reduce the facial hair may or may not indicate an amount to reduce the facial hair. In this example, the request to reduce the facial hair does not include an amount. In response to the input, the model outputs a new synthetic facial image146.

The synthetic attributes generator118generates an updated synthetic attribute packet154that includes the new synthetic attribute146and provides the updated synthetic attribute packet154to the synthetic persona client148. The synthetic persona client148may output the new synthetic attribute146on a display or other output device of the computing device104. The synthetic persona client148may generate and output an interface that allows the user to further adjust other characteristics of the new synthetic attribute146, which may result in another cycle of stages G and H. The user102may also select the new synthetic attribute146for inclusion in a synthetic persona.

In the example ofFIG.1and in stage I, the synthetic attributes generator118generates the updated synthetic attribute packet154that includes the new synthetic facial image146. The synthetic persona client148outputs the new synthetic facial image146on the display of the computing device104. The synthetic persona client148may generate and output an interface that allows the user102to select the facial image146for inclusion in a synthetic persona or further adjust any of the characteristics of the facial image146. The user102may select to include the facial image146in the synthetic persona. The user102may repeat the process illustrated by stages A through I for additional synthetic attributes of the synthetic persona.

FIG.2is a flowchart of an example process200for training a model that is configured to synthesize attributes of persona. In general, the process200accesses data that includes various attributes that may or may not be included in personas. The process200selects a portion of that data and trains a model using the portion of the data. The model is configured to generate new synthetic attributes. The process200uses the model to generate and then further update new synthetic attributes. The process200will be described as being performed by the server106ofFIG.1and will include references to other components inFIG.1. In some implementations, the process200may be performed by one or more computing devices, including virtual computing devices.

The server106accesses training data108that includes attributes (210). In some implementations, the attributes of the personas are facial images of the persona. In some implementations, the attributes of the personas are voices of the personas. The server106may collect attributes from crawling the internet, from stock photo, voice, or other attributes sources, and/or from any other similar source. In some implementations, the attributes may or may not include attributes of personas. In some implementations, the attributes may be similar to the attributes used in persona. In the example of attributes being faces, the training data108may include images of faces where at least one eye is showing. The server106accesses selection criteria that is configured to select a portion of the training data (220). In some implementations, the selection criteria comprises color ranges of skin tone, color ranges of hair, color ranges of eyes, minimum frontal breadth, upper face height, height of forehead, face breadth, biogonia breadth, height of lower face, total face height, and/or any other similar characteristics. This may be the case if the attributes are faces.

The server106selects the portion of the training data by applying the selection criteria to the training data (230). In some implementations, the user102provides the ranges and/or thresholds for the characteristics of the attributes in the training data. Based on these ranges and/or thresholds, the server106may select the portion of the training data by comparing the values of the characteristics of the training data to the ranges and/or thresholds. If the values of the characteristics of the training data satisfies the ranges and/or thresholds, then the server106includes that attribute in the portion of the training data.

In some implementations, the server106may generate the ranges and/or thresholds based on a quality provided by the user102. In this case, the user102may not specify a range and/or threshold for a characteristic. Instead, the server106may generate the threshold and/or ranges based on the quality provided by the user102. For example, the user102may provide an input that the training data should include facial images of people who are elderly. Based on this quality, the server106may generate various ranges and/or thresholds for characteristics such as hair color, teeth color, skin elasticity, and/or any other similar characteristics. The server106may perform searches on various databases and/or the internet using the terms included in the quality provided by the user102and terms related to the attribute. For example, the server106may search the internet for “elderly faces.” The server106may analyze the results returned from the searches and determine various ranges and/or thresholds for characteristics that may appear to be common in the results. The server106may apply these ranges and/or thresholds to the training data in a similar manner as described above.

The server106trains using machine learning, and using the portion of the training data, a model that is configured to generate given synthetic attributes of given synthetic personas (240). The server106may bypass training a model using the remaining portion of the training data.

The server106provides, to the model, a request for synthetic attributes of synthetic personas (250). In some implementations, this request is in response to input from the user102requesting synthetic attributes. In some implementations, the request may specify for the model to generate multiple synthetic attributes. In some implementations, the request may specify which model to use in generating the synthetic attributes.

The server106receives, from the model, the synthetic attributes of the synthetic personas (260). The server106may output the synthetic attributes to a computing device104of the user102. The user102may select one of the synthetic attributes for inclusion in a synthetic persona. In some implementations, the user102may further adjust the characteristics of a selected synthetic attribute as described below in relation toFIG.3.

In some implementations, the server106may generate additional models using the training data. The server106may receive additional selection criteria. Based on this additional selection criteria, the server106may select an additional portion of the attributes in the training data. The additional portion may or may not include some of the attributes in the portion used to train the other model. The server106may train an additional model using the additional portion of the attributes. The server106may then use that additional model to generate other attributes. The server106may label each model based on the training data to identify them for later use in generating synthetic attributes.

FIG.3is a flowchart of an example process300for using a model to synthesize attributes of personas. In general, the process300selects a synthetic attribute generated from a model. The process300further updates that synthetic attribute by specifying a characteristics to change in the synthetic attribute and requesting that the model update the synthetic attribute. That back and forth continues until the process300determines that the updated synthetic attribute is sufficient for inclusion in a synthetic persona. The process300will be described as being performed by the server106ofFIG.1and will include references to other components inFIG.1. In some implementations, the process300may be performed by one or more computing devices, including virtual computing devices.

The server106provides, to the model, a selection of a synthetic attribute of the synthetic attributes and a first request to adjust a first characteristic of the synthetic attribute (310). In some implementations, the first request to adjust the first characteristic includes a value to adjust the first characteristic and a direction, such as increase or decrease, for the value. In some implementations, the first request to adjust the first characteristic includes a request to change the value in one direction or another without specifying the amount of adjustment. In this case, the model may determine an adjustment amount during generation of the updated synthetic attribute. In some implementations, the first request to adjust the first characteristic does not include a specific value to change the first characteristic. Instead, the value to change is predetermined based on the characteristic. For example, a request to darken skin color may be predetermined to be two shades of darkening. A request to increase minimum frontal breadth may be predetermined to be one millimeter of increase.

Based on providing the selection of the synthetic attribute and the request to adjust the first characteristic of the synthetic attribute, the server106receives, from the model, an updated synthetic attribute (320). The server106may output the updated synthetic attribute to the computing device104of the user102. In some implementations, the server106may output data indicating the values of the various characteristics of the updated synthetic attribute. The server106may also output data indicating how the user102has requested to update the various characteristics of the synthetic attribute. This way the user102may have an indication of the characteristics that the user102has adjusted and an amount that the user102has adjusted those characteristics since the model initially output the multiple synthetic attributes.

The server106provides, to the model, a second request to adjust a second characteristic of the updated synthetic attribute (330). The user102may request to further adjust another characteristic. In some implementations, the user102may request to further adjust the same, first characteristic. In some implementations, the second request to adjust the second characteristic includes a value to adjust the second characteristic and a direction, such as increase or decrease, for the value. In some implementations, the second request to adjust the second characteristic includes a request to change the value in one direction or another without specifying the amount of adjustment. In this case, the model may determine an adjustment amount during generation of the further updated synthetic attribute. In some implementations, the second request to adjust the second characteristic does not include a specific value to change the second characteristic. Instead, the value to change is predetermined based on the type of characteristic.

Based on the second request to adjust the second characteristic of the synthetic attribute, the server106receive, from the model, a further updated synthetic attribute (340). The server106may output the further updated synthetic attribute to the computing device104of the user102. In some implementations, the server106may output data indicating the values of the various characteristics of the further updated synthetic attribute. The server106may also output data indicating how the user102has requested to update the various characteristics of the synthetic attribute. This way the user102may have an indication of the characteristics that the user102has adjusted and an amount that the user102has adjusted those characteristics since the model initially output the multiple synthetic attributes.

The server106generates a synthetic persona that includes the further updated synthetic attribute (350). Once the user102is satisfied with the synthetic attribute and does not wish to further adjust any of the characteristics, the user102may include the further updated synthetic attribute in a synthetic persona.

Although a few implementations have been described in detail above, other modifications are possible. In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other actions may be provided, or actions may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.