Portrait Optimizer User Guide Version 7.1 © 2016 Pitney Bowes Software Inc. All rights reserved. This document may contain confidential and proprietary information belonging to Pitney Bowes Inc. and/or its subsidiaries and associated companies. Portrait Software, the Portrait Software logo, Portrait, and Portrait Software's Portrait brand are the trademarks of Portrait Software International Limited and may not be used or exploited in any way without the prior express written authorization of Portrait Software International Limited. Acknowledgement of trademarks Other product names, company names, marks, logos and symbols referenced herein may be the trademarks or registered trademarks of their registered owners. Portrait Software Support If you need help with something that is not covered by this documentation, try the Knowledge Base on our web site. http://support.portraitsoftware.com and follow the links to your product. You can also download other Portrait Software documentation from the site. If you do not have a username and password—or you have forgotten them—please contact us through one of the channels below. If you find a problem with the use, installation, or documentation of this product, please contact us using any of the following methods: Email:[email protected] Phone • USA/Canada 1-800-335-3860 (toll-free) • Rest of world +44 800 840 0001 When you report a problem, it helps if you can tell us: • • • • The name of the software application The circumstances in which the problem arose What error messages you saw (if any); The version of the software that you were using. Pitney Bowes Software Inc. February 23, 2016 Contents Chapter 1: Introduction..............................................................................................5 About this document...........................................................................................................6 About Portrait Optimizer.....................................................................................................6 Contact optimization considerations................................................................................7 Chapter 2: Running the Portrait Optimizer wizard...................................................9 Running the Portrait Optimizer wizard............................................................................10 Other Portrait Optimizer file actions................................................................................15 Chapter 3: Running Portrait Optimizer from the Command Line.........................17 Running Portrait Optimizer from the Command Line....................................................18 Chapter 4: Input parameter reference.....................................................................19 Input parameter reference................................................................................................20 Chapter 5: Portrait Optimizer outputs.....................................................................23 Portrait Optimizer outputs................................................................................................24 Contact optimization result file........................................................................................24 Forecast report..................................................................................................................24 Portrait Optimizer model...................................................................................................25 Portrait Dialogue deployment..........................................................................................25 Chapter 6: Administration and configuration.........................................................29 Configuring site specific default parameters.................................................................30 Missing value treatment....................................................................................................30 Cases when optimization can fail....................................................................................30 Convergence......................................................................................................................30 Introduction In this section: • About this document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 • About Portrait Optimizer . . . . . . . . . . . . . . . . . . . . . . . . . . .6 • Contact optimization considerations . . . . . . . . . . . . . . . . .7 1 About this document About this document Purpose of document This document is intended as a user guide for the Portrait Optimizer extension to Portrait Miner and Portrait Dialogue. Who should read this document? Marketers or analysts who want to build constrained decision optimization modules with Portrait Optimizer. What is Portrait Optimizer? Portrait Optimizer is Portrait's solution developing constraint based optimization models to suggest the best decision for each customer from a predefined set of options based on predicted return on investment. This allows you to automatically assign customers to the right channel, offer or campaign taking into account costs, revenues, channel constraints, contact preferences, eligibility and predictive modeling inputs of likelihood and value of responses. Related documentation • Portrait Miner 7.1 Online Help • Portrait Miner 7.1 Integration User Guide The product documentation is also available on the Portrait Support website: http://support.portraitsoftware.com Software release • Portrait Optimizer 7.1 • Portrait Miner 7.1 • Portrait Dialogue 6.1 About Portrait Optimizer Using predictive analytics within contact planning is one way to optimize marketing spend in a customer centric way. However, there are many other opportunities to optimize contact strategies all with the single aim of trying to make the right offer to the right person at the right time. The sheer volume of choices about what to offer, how to offer it and through which channels means optimizing the mix for best use of the available budget is too complex to do manually. Deciding what is the best thing to offer a customer at a particular time is a problem which can be tackled mathematically and so automated to determine the best actions to take to maximize the return on your marketing investment. To make the algorithm relevant within a business context it has to work within the 6 Portrait Optimizer 7.1 Chapter 1: Introduction budgets, costs, contact preferences and other operational constraints and fuse in predictions of how customers are likely to respond to estimate the return. As with other analytical optimization, the benefits of reduced costs and improved responses can only be realized if these optimized decisions can be operationally deployed so that the marketing planners can make use of them within an automated campaign plan. Portrait Optimizer is an extension of Portrait Miner for constrained contact optimization, which is optionally integrated with Portrait Dialogue for operational deployment within an outbound customer management system. Portrait Optimizer is available a licensed component of Portrait Miner. Contact optimization considerations Contact optimization aims to predict contact decisions for a set of customers so as to maximize the Return on Investment (ROI) from a single marketing campaign consisting of a number of distinct outcomes (or decisions or offers) within a set of business constraints on eligible customers, and campaign and offers. ROI is calculated at the customer level – subtracting the costs of that contact with the predicted benefits– and then aggregated to the campaign level. A mathematical solver optimizes the allocation of customers to outcomes using a 'Nelder-Mead' downhill simplex algorithm to maximize over all ROI over all outcomes by finding optimal cutoffs on value models associated with each outcome. The result is a predictive model expressed in the same form as any other Portrait Miner model and deployable to create per-customer predictions. In preparation for contact optimization you need to consider: • Which decision outcomes are available as an offer: these could be for different channels e.g. email, direct mail or telemarketing; different offers e.g. offer mortgages, loans or savings; or even different campaigns e.g. cross-sell, retention or information gathering. • The overall campaign business constraints, in terms of numbers of contacts, costs or revenues generated with either maximum or minimum limits set e.g. don't spend more than $10,000 on this campaign. • The costs for an individual to receive each offer. • The business constraints for each offer in the same terms e.g. don't offer more than 1,000 new mortgages, or offer at least 10,000 direct mail pieces. • Which customers are eligible for the decision overall and for each outcome branch (e.g. don't email opt-outs) and how this compares with the population you plan to deploy the resulting contact optimization model. • How to estimate revenues generated by each offer in terms of fixed values or customer level predictions are to be used to estimate responses and revenue returns on the decision. • How you plan to deploy the results in terms of insights generated, scored analytical datasets, active Portrait-format predictive models or for direct evaluation within Portrait Dialogue. These options are captured as parameters to Portrait Optimizer. Portrait Optimizer User Guide 7 Running the Portrait Optimizer wizard In this section: • Running the Portrait Optimizer wizard . . . . . . . . . . . . . . .10 • Other Portrait Optimizer file actions . . . . . . . . . . . . . . . . .15 2 Running the Portrait Optimizer wizard Running the Portrait Optimizer wizard To use the wizard to run Portrait Optimizer: 1. Log in to Portrait Miner. 2. Start browse to the modeling dataset you want to analyze. 3. Right-click on the (.ftr) modeling dataset (or .qsop parameter file) and select Portrait Optimizer. The Portrait Optimizer wizard starts with a set of steps to lead you through the process of building and deploying contact optimization models. Parameters tab When you start Portrait Optimizer on a modeling dataset, you can choose where the initial contact optimization parameters are sourced from. Either • You choose to select an existing optimization from Portrait Dialogue (through the Portrait Shared Repository, PSR, database), if that integration has been configured. Typically this will be a 'partial' optimization, where the parameters have been defined within Portrait Dialogue's Visual Dialogue application, but no result has been computed yet. • You choose from an existing parameters file ('.qsop'). • You can use the default parameters. Inputs tab You then choose the data source for Portrait Optimizer. 10 Portrait Optimizer 7.1 Chapter 2: Running the Portrait Optimizer wizard • If you have started the wizard from a modeling dataset – you choose the sub-focus to analyze. • If you have started the wizard from a parameters file – you first choose the analysis dataset to analyze (defaulting to a dataset with the same file stem as the parameters) and then the sub-focus. • If you choose to access parameters from Portrait Dialogue, you can browse for the Portrait Dialogue customer domain and the pre-defined (partial) contact optimization. Outputs tab The Outputs tab allows you to configure the destination for the results to be produced by Portrait Optimizer. • If the integration with Portrait Dialogue is installed, you can optionally choose to save the contact optimization rule in the Portrait Dialogue database. • You choose where you want the Portrait Optimizer results to be saved in the Portrait Optimizer archive ('.qsor') file so you can review or share the results at a later date. Portrait Optimizer User Guide 11 Running the Portrait Optimizer wizard • You can optionally choose to save the parameters to a parameters ('.qsop') file so that you can easily run a similar optimization again. • You can optionally choose to deploy the contact optimization model on the modeling data set and save an output focus containing the results as a derived field so that you can perform further exploration and analysis within Portrait Miner. Advanced tab The advanced tab allows the user to configure various features of the optimization algorithm. See Running Portrait Optimizer from the Command Line on p16 for details. Global constraints tab This tab allows you to configure global constraints for the campaign overall. All of these parameters are optional. 12 Portrait Optimizer 7.1 Chapter 2: Running the Portrait Optimizer wizard You can provide a Boolean Portrait Miner (FDL) expression that defines the overall eligible population for the optimization, an expected population size for the deployment scenario and constraints on quantity, cost and value returned. Configure outcomes tab This tab allows you to configure the individual outcomes for the optimization. You can provide (unique) labels, expression for eligible customers, costs, benefits (as another Portrait Miner expression, with a set of pre-configured forms) and constraints (again across quantity, cost and value dimensions). You must provide an outcome label, and these will be the derived label scores in any deployment subsequently evaluated. When you press the Go button Portrait Optimizer checks for contradictory constraints; for example, a 'min' is greater than its partner 'max'. Checks are also made that constrains on each outcome do not contradict the global constraints. For example, if an individual outcome's 'Minimum quantity' is greater than the global 'Maximum quantity' or if the sum of the outcomes maximums is less than the global minimum. If such a setting is found you will get a warning and you can choose to proceed anyway or go back through the wizard to fix the problems. Note that a setting where an outcome's constraints are looser than the global's is not a considered contradictory: for example 'Maximum quantity' is greater than the global 'Maximum quantity'. Portrait Optimizer User Guide 13 Running the Portrait Optimizer wizard Output tab Shows you the progress of the optimization in terms of a report of counts and revenues for each iteration of the algorithm. When the 'number of starts' is one this will show the algorithm 'homing in' on the final result. With more than one start this will happen multiple times so it more difficult to interpret the output. Portrait Optimizer reports on the best result found when the optimization is complete. Audit tab Shows you the optimization forecast report, summarizing the results of the optimization process and outcome allocations made. Publish optimization tab Allows you to deploy the optimization results back to Portrait Dialogue. 14 Portrait Optimizer 7.1 Chapter 2: Running the Portrait Optimizer wizard In analogy with what happened when you selected contact optimization parameters from Portrait Dialogue to start with, you can choose the details of the Portrait Dialogue Customer Domain, and the name of the deployed optimization result. If you pick a name of an optimization which already exists, the new result will replace the existing one; if you pick a new name, then you will create a new optimization in Portrait Dialogue. Other Portrait Optimizer file actions Modeling dataset (.ftr) files The default 'Decision Optimization' action on a modeling dataset starts the Portrait Optimizer wizard on that dataset. Contact optimization parameter (.qsop) files The default 'Decision Optimization' action on a contact optimization file starts the Portrait Optimizer wizard. An alternative action 'Edit' opens a text editor to allow the parameters file to be viewed and edited directly. Contact optimization result archive (.qsor) files The default 'View' action on a contact optimization result archive file views the contact optimization forecast report in a web browser. An alternative action 'Unpack to Folder' allows the archive to be unpacked to allow you to access the individual items within the archive. A 'Publish to Portrait Shared Repository' action allows you to publish a pre-created contact optimization result to Portrait Dialogue. Portrait Optimizer User Guide 15 Running Portrait Optimizer from the Command Line In this section: • Running Portrait Optimizer from the Command Line . . .18 3 Running Portrait Optimizer from the Command Line Running Portrait Optimizer from the Command Line Portrait Optimizer is also provided by a Portrait Miner Data-Build Command (DBC), called qsdecisionoptimizer. In common with all DBCs this allows you to run Portrait Optimizer at the command line to automate or schedule the development of contact optimization models. Synopsis qsdecisionoptimizer -focus <focus file> -spec <QSOP specification file> -output <output QMML file> [-archive] [-componentversion] [-force][-novalidate] [-report <file name>][ -runtimereport] [-savefocus<focus file>][-subfocus<sub focus name>] -weights <field name> Description Use a contact optimization parameters specification to build a contact optimization model on the specified focus, and create a new contact optimization model in an XML-based model format. Optional arguments Option Effect -archive Create the result as a contact optimization archive (.qsor) containing the QMML, XML report and HTML report. -componentversion Show the component version. -force Allow an existing output QMML and/or focus file to be overwritten. -novalidate Do not validate the specification file. -report <file name> The name of a file to write the report XML document to. Ignored ifarchive set. -runtimereport Report results to standard output as the optimization runs. -savefocus<focus file> Save this focus complete with the derivation of the new optimization. -subfocus <sub focus name> The subfocus to use instead of the default. -weights <field name> The name of a focus field containing record weights. Notes The -force option applies only to the output QMML file. An existing report file may be overwritten even if the option is not specified. Other standard Portrait Miner DBC options are, where appropriate, recognized. 18 Portrait Optimizer 7.1 Input parameter reference In this section: • Input parameter reference . . . . . . . . . . . . . . . . . . . . . . . . .20 4 Input parameter reference Input parameter reference Most of the parameters to the optimization are included in an xml format contact optimization parameters (.qsop) specification file. The formal XML-schema for this file is available in the Portrait Optimizer installation, so this section describes the semantics rather than the format. Optimization element The overall parent element contains the options controlling the operation of the optimization and XML namespace attributes. These advanced parameters include: • starts: This controls the number of starting positions for the search for the optimal solution. Higher numbers give a better chance of finding the optimal solution rather than some sub-optimal 'local' maximum. The default value is 3. • startscale: This controls the positioning of the starting position or positions in relation to the min and max values found in each value model. The default value of 1.0 sets the starting positions to be drawn from the full range of possible values. A smaller value will limit the starting positions to a range centered on the min and max values. • convergencethreshold: This controls the point at which the optimization considers that it has found a solution. Lower numbers give a more 'accurate' solution but note that this may be a more accurate non-optimal solution, especially if the number of starts is low. The value is used in evaluating how well the algorithm has converged with respect to the range of possible values for each of the cutoffs. The default value is 0.0001, i.e. a 'solution' has been found such that all points in the search agree the cutoffs to within one ten thousandth of the range of possible values. • dither: Constant value 'models' (e.g. everyone is worth $10) present a problem since the optimization has nothing to work with. A more subtle problem is where a model does provide variation but is 'lumpy', giving many records exactly the same value, making it impossible for the optimization to meet the constraints. Dithering (adding some random noise) to the value models helps deal with these cases. The default value is 0.01 (values are dithered by +-0.5%). Note that this not only allows two records with equal value to be treated differently, it potentially allows a 'worse' record to beat a 'better' one if the values were sufficiently close. If no dithering is desired, set this value to 0. Note that where dithering is used the computed ROI value will differ very slightly from expectations due to the small random amounts added to and subtracted from each model value. • maxevaluations: This controls the maximum number of evaluations used in attempting to converge to a solution for any one of the starts. If none of the starts converge within this number of evaluations the optimization will fail. Default value is 500. • penaltyfactor: The implementation 'steers' the optimization by applying penalties when constraints are broken. This parameter controls the size of these penalties. A value of 1 will penalize by a similar amount to that gained by breaking the constraint. In order to provide some 'steer' a value greater than 1 should be used. Higher values will impose constraints more strongly. The default value is 5.0. • goal: This is a placeholder for future development and is not currently used, but should always have the value "roi". • currencysymbol: This is the symbol used to display all currency values with Portrait Optimizer. 20 Portrait Optimizer 7.1 Chapter 4: Input parameter reference Outcomes element For now only one outcomes element is supported (though the file format allows for future extension in that it encloses outcome elements in an outcomes element allowing a future implementation to deal with multiple outcome sets). The file optionally specifies global (in fact per outcome set) eligibility and constraints. The file defines a number of outcomes each having an associated value with optional cost and eligibility. In addition an outcome may have constraints. This element encloses an outcome set. The optional deploypopsize parameter allows the optimization to be performed with respect to an expected population size where the optimization is to be deployed (i.e. the focus data is uniformly weighted such that the number of records after the global eligibility selection is put in place equals the given deploypopsize. The optional command line parameter '-weights' allows for non-uniform weighting of the dataset, by specifying a weights field in the focus. If a weights field is specified, any deploypopsize parameter is ignored. The weights field must reflect the deployment scenario directly, it is not 're-weighted'. Eligibility element Outcome (or global outcome set) eligibility is optionally indicated by a fragment of FDL that should evaluate to false for a non-eligible record and true for an eligible record in the focus. Global eligibility is optionally indicated by a fragment of FDL that should evaluate to false for a non-eligible record and true for an eligible record in the focus. The global eligibility should reflect the records that will be seen in the expected deployment scenario for the optimization rule. For example, if the outcome involves sending an email, the eligibility condition might be !isnull(EmailAddress), where EmailAddressis a field in the focus. Constraints element Outcome (or outcome set) constraints can be the minimum (min) and/or maximum (max) desired value, quantity or cost. These may be specified as a numeric value only. Portrait Optimizer will attempt to find a solution that meets the constraints but cannot guarantee to do so. There is no checking that the constraints are 'sane', so if you constrain such that 100 offers must be made and that costs must not exceed $1, where each offer costs $10, the DBC will not warn, but will clearly not be able to find a solution. Global constraints are specified in the same way as per outcome constraints. They are applied to the totals for all outcomes. Outcome element There is an outcome element for each contact optimization outcome to be predicted. It contains a name attribute which is used as the label of the outcome predicted in the final contact optimization model. Unit element Outcome per-customer (or unit) estimates for the cost and value of that contact on a per customer basis. Unit value element Portrait Optimizer User Guide 21 Input parameter reference Outcome per unit value is indicated by a fragment of FDL (possibly just a field name or literal value) such that each record in the modeling dataset indicates the expected value in treating the customer. Typically this will be something like propensity to respond * expected response rate, but the DBC makes no assumptions. Unit cost element Outcome per unit cost is optionally indicated by a numeric value only. Note that there is no 'global' cost setting; if an outcome has a cost it must be specified in the outcome otherwise the cost is assumed to be zero. 22 Portrait Optimizer 7.1 Portrait Optimizer outputs In this section: • • • • • Portrait Optimizer outputs . . . . . . . . . . . . . . . . . . . . . . . . .24 Contact optimization result file . . . . . . . . . . . . . . . . . . . . .24 Forecast report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 Portrait Optimizer model . . . . . . . . . . . . . . . . . . . . . . . . . .25 Portrait Dialogue deployment . . . . . . . . . . . . . . . . . . . . . .25 5 Portrait Optimizer outputs Portrait Optimizer outputs Portrait Optimizer creates its results in a single contact optimization results ('.qsor') archive which contains a number of separate result files. These include: • An XML-based contact optimization result file. • An HTML-based contact optimization forecast report. • A QMML-based contact optimization model file. Contact optimization result file The result file that is produced is an annotated copy of the input parameters specification file. It has the same format as the parameters file but also includes a set of result elements, which are added to each of the separate outcome elements and to the outcomes element. An outcome result element provides information on the total outcome-based predicted cost, value, number eligible for this outcome and number actually targeted by the optimization and the name of the enablement field derived in the resulting model with the optimal value cutoff. The global (or rather outcomes element) results contain the same information but accumulated for all outcomes with the exception of the enablement field and cutoffs. The result file can be used as the input parameters file for Portrait Optimizer. Forecast report The forecast report is displayed as part of the Portrait Optimizer wizard and is an HTML-formatted version of the contents of the XML-based results file. It shows the results of the contact optimization model in terms of quantities actually contacted for each outcome (and the campaign as a whole) and how this affects overall Cost, Revenue and Profit measures. For each summary measure, the average per piece is displayed alongside the summary value. 24 Portrait Optimizer 7.1 Chapter 5: Portrait Optimizer outputs Portrait Optimizer model The deployable result of Portrait Optimizer is a model described in Portrait's XML-based model markup language. This compiled QMML file, ultimately contains a rule that determines the appropriate outcome for any given input (in terms of one of the outcome names). This QMML has additional required inputs corresponding to each of the outcomes allowing outcomes to be dynamically enabled or disabled at deploy time. Portrait Dialogue deployment A set of Portrait Miner Data-Build Commands (DBCs) are provided with Portrait Optimizer which manipulate the contact optimization result (.qsor) archive and deploy these results within Portrait Dialogue. The commands all require explicit -username and -password arguments, unless Windows Authentication is enabled in Portrait Dialogue for your user account. cmsoptpublish Deploy a contact optimization result to a Portrait Dialogue Customer Domain with a given name and description. Synopsis cmsoptpublish -domain <domain name>-name <optimization name> -description <text | @filename>-input <QSOR file> [-password <password>][-replace][-username <username>] Optional arguments Option Effect -password <password> The password for Portrait Dialogue deployment. Portrait Optimizer User Guide 25 Portrait Dialogue deployment Option Effect -replace Replace the details for an existing optimization rather than publish a new one. When replacing, the -description parameter is optional. -username <username> The username for Portrait Dialogue deployment. cmsoptlist List the contact optimizations in a Portrait Dialogue Customer Domain. Synopsis cmsoptlist -domain <domain name> [-password <password>] [-username <username>][-xml] Optional arguments Option Effect -password <password> The password for Portrait Dialogue deployment. -xml Show output in XML format. -username <username> The username for Portrait Dialogue deployment. cmsoptretrieve Get a single contact optimization from a Portrait Dialogue Customer Domain and save it to a contact optimization result archive. Synopsis cmsoptretrieve -domain <domain name> -name <optimization name> -output <QSOR file> [-password <password>] [-username <username>] Option Effect -password <password> The password for Portrait Dialogue deployment. -username <username> The username for Portrait Dialogue deployment. cmsoptreport Get a single contact optimization report from a Portrait Dialogue Customer Domain and save it to a file. Synopsis cmsoptreport -domain <domain name> -name <optimization name> -output <HTML file> [-password <password>] [-username <username>] Optional arguments 26 Portrait Optimizer 7.1 Chapter 5: Portrait Optimizer outputs Option Effect -password <password> The password for Portrait Dialogue deployment. -username <username> The username for Portrait Dialogue deployment. cmsoptdescribe Get the parameters of a single contact optimization report from a Portrait Dialogue Customer Domain. It also shows how the rule input-mappings will apply, by describing the mapping to a field or function, if a mapping is defined. Synopsis cmsoptdescribe -domain <domain name> -name <optimization name> [-password <password>] [-username <username>] Optional arguments Option Effect -password <password> The password for Portrait Dialogue deployment. -username <username> The username for Portrait Dialogue deployment. Portrait Optimizer User Guide 27 Administration and configuration In this section: • • • • Configuring site specific default parameters . . . . . . . . . .30 Missing value treatment . . . . . . . . . . . . . . . . . . . . . . . . . . .30 Cases when optimization can fail . . . . . . . . . . . . . . . . . . .30 Convergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 6 Configuring site specific default parameters Configuring site specific default parameters A file (defaultParams.xml) specifying the default parameters for decision optimization is included in the Decision Optimizer installation directory (<PMHOME>/ext/decisionoptimizer). Missing value treatment Customers with missing values for their revenue predictions are excluded from the contact optimization model build. Converting these missing values to 0 is one way to include them in the analysis. Cases when optimization can fail There are cases where it is not possible to compute the optimization for a particular outcome because there are no 'values' or no spread of values. This can occur if the combination of global and outcome eligibility result in zero (or just one) non null 'value' records. It can also occur if the value is constant and dithering has been set to 0. In both of these cases the outcome and its constraints will be ignored and no 'result' will be produced for that particular outcome. Convergence Simplex convergence is based on simplex 'size' rather than the function value. Within the simplex value function, out of bound cutoff values are penalized subtly at first but then harshly as they become more out of bounds. It is important to allow out of bounds values, otherwise records with min or max value will be unlikely to be included or excluded (the algorithm is unlikely to hit the min or max exactly) but we need somemechanism to steer the simplex back to the value range. Within the simplex value function, penalties are based on the maximum value of all value models. Internal derivations use an initial seed of 1 and increment the seed on each use. The DBC is therefore deterministic. Note that different seeds are used for each derivation when dithering so an individual record will not be uniformly better or worse for all value models. 30 Portrait Optimizer 7.1
© Copyright 2026 Paperzz