Configuration de CustomerSampleSize
Pour configurer CustomerSampleSize correctement afin d'optimiser l'exécution de la session Contact Optimization, vous devez prendre en compte certaines considérations.
CustomerSampleSize et les "blocs"
Contact Optimization fonctionne en répartissant les contacts proposés en divers sous-échantillons de clients appelés "blocs". L'ensemble des contacts proposés et de l'historique des contacts appartenant à un même client sont traités avec celui-ci dans le bloc dont il fait partie. Un client peut appartenir à un seul bloc. L'exactitude de l'algorithme d'optimisation dépend de si ces blocs sont statistiquement semblables les unes aux autres. Plus un bloc est grand, plus ce besoin est probable. Les contraintes de capacité interclients sont réparties de manière égale entre les différents blocs. Par exemple, votre session Contact Optimization contient une contrainte selon laquelle l'offre A est limitée à 1 000. Si la session Contact Optimization est exécutée en 10 blocs, chaque bloc est associé à 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 blocs. Plus le bloc est grand, 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 de blocs 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 Contact Optimization et l'apparition d'une erreur liée au manque de mémoire. Dans de nombreux cas, l'utilisation d'une plus grande taille de bloc 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 blocs 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 blocs. 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 d'un bloc est égale à 10 000, chaque bloc est traité par une règle modifiée dans laquelle la valeur maximale est égale à 100. Contact Optimization calcule la valeur maximale de la règle modifiée en divisant la valeur de la règle maximale (1 000) par le nombre de blocs (10).
Lorsqu'une taille de bloc inférieure est utilisée, des blocs supplémentaires risquent d'être créés. 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 de blocs. Si vous réduisez la taille des blocs à 100, leur nombre sera égal à 1 000. La valeur minimale de la règle est alors inférieure au nombre de blocs. La règle modifiée prend alors la valeur 0,02 (20 divisé par 1 000). Dans ce cas, 2 % des blocs utilisent une règle dont la valeur minimale est 1 et les 98 % restants utilisent une valeur minimale égale à 0. Tant que les blocs restent statistiquement semblables en ce qui concerne le canal E-mail, Contact Optimization 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 de blocs. Si 500 clients seulement reçoivent des e-mails, chaque bloc n'a que 50 % de chance de contenir un client recevant un e-mail. En outre, les chances qu'un bloc donné 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), Contact Optimization renvoie en moyenne seulement 5.
Le nombre de blocs dépend de leur taille et du nombre total de clients. La taille maximale d'un bloc é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 de bloc inférieure, qui permettra un traitement plus rapide des blocs.