Configuration de CustomerSampleSize
Pour configurer CustomerSampleSize correctement afin d'optimiser l'exécution de la session Optimize, vous devez prendre en compte certaines considérations.
CustomerSampleSize et les "unités"
Optimize fonctionne en répartissant les contacts proposés en divers sous-échantillons de clients appelés "unités". L'ensemble des contacts proposés et de l'historique des contacts appartenant à un même client sont traités avec celui-ci dans l'unité dont il fait partie. Un client peut appartenir à une seule unité. L'exactitude de l'algorithme d'optimisation dépend de si ces unités sont statistiquement semblables les unes aux autres. Plus une unité est grande, plus ce prérequis est probable. Les contraintes de capacité interclients sont réparties de manière égale entre les différentes unités. Par exemple, votre session Optimize contient une contrainte selon laquelle l'offre A est limitée à 1 000. Si la session Optimize est exécutée en 10 unités, chaque unité est associée à une règle de capacité autorisant 100 offres A au maximum.
Vous utilisez la variable d'optimisation de l'algorithme CustomerSampleSize pour définir la taille maximale des unités. Plus l'unité est grande, plus les résultats sont exacts. Toutefois, la durée d'exécution de la session et les ressources mémoire augmentent également. N'utilisez pas d'unités d'une taille supérieure à 10 000 sans planification préalable. Les ressources mémoire de nombreux systèmes sont insuffisantes pour traiter simultanément plus de 10 000 clients. Cette insuffisance entraîne l'échec de l'exécution de la session Optimize et l'apparition d'une erreur liée au manque de mémoire. Dans de nombreux cas, l'utilisation d'une plus grande taille d'unité risque de ne pas améliorer de manière significative l'optimalité de la solution, tout en requérant davantage de temps et de mémoire. L'optimalité est mesurée par la somme des scores des transactions restantes dans la table des contacts optimisés. Vous devrez probablement régler CustomerSampleSize en fonction de votre problème d'optimisation et de vos besoins en matière de performances.
Dans un scénario d'optimisation simple dans lequel aucune règle de capacité interclients n'est définie, vous n'avez aucun intérêt à utiliser des unités de grande taille.
CustomerSampleSize et les règles de capacité interclients
Pour comprendre les cas où les règles de capacité interclients sont utilisées, vous devez comprendre comment ces règles s'appliquent à plusieurs unités. Prenons par exemple le cas d'une règle de capacité "Nombre min/max d'offres" dont la valeur minimale est définie sur 20 et la valeur maximale sur 1 000 pour le canal E-mail. Si le nombre de clients est égal à 100 000 et que la taille maximale de l'unité est égale à 10 000, chaque unité est traitée par une règle modifiée dans laquelle la valeur maximale est égale à 100. Optimize calcule la valeur maximale de la règle modifiée en divisant la valeur de la règle maximale (1 000) par le nombre d'unités (10).
Lorsqu'une taille d'unité inférieure est utilisée, des unités supplémentaires risquent d'être créées. Dans ce cas, la règle risque alors de dépendre d'un élément (par exemple le canal E-mail) moins nombreux que le nombre d'unités. Si vous réduisez la taille des unités à 100, leur nombre sera égal à 1 000. La valeur minimale de la règle est alors inférieure au nombre d'unités. La règle modifiée prend alors la valeur 0,02 (20 divisé par 1 000). Dans ce cas, 2 % des unités utilisent une règle dont la valeur minimale est 1 et les 98 % restants utilisent une valeur minimale égale à 0. Tant que les unités restent statistiquement semblables en ce qui concerne le canal E-mail, Optimize traite la règle comme prévu. Un problème survient lorsque le nombre de clients auxquels des e-mails ont été envoyés est inférieur au nombre d'unités. Si 500 clients seulement reçoivent des e-mails, chaque unité n'a que 50 % de chance de contenir un client recevant un e-mail. En outre, les chances qu'une unité donnée contienne un client recevant un e-mail et une règle dont la valeur minimale est égale à 1 ne sont que de 1 %. Au lieu de renvoyer la valeur minimale définie (20), Optimize renvoie en moyenne seulement 5.
Le nombre d'unités dépend de leur taille et du nombre total de clients. La taille maximale d'une unité étant égale à 10 000, le nombre minimal de clients associé à un élément important (c'est-à-dire un élément utilisé dans une règle) ne doit pas être inférieur au nombre de clients divisé par 10 000 pour que les résultats soient optimaux. Il semble que, si vous augmentez le nombre de contacts proposés pour conserver la similitude statistique, les performances diminuent et il est vrai qu'un plus grand nombre de contacts proposés entraîne une plus grande utilisation du processeur. Cette utilisation peut être compensée par le choix d'une taille d'unité inférieure, qui permettra un traitement plus rapide des unités.