设置 CustomerSampleSize

若要适当地配置 CustomerSampleSize 以实现最短的 Optimize 会话运行时间同时又保留最优性,应考虑一些注意事项。

CustomerSampleSize 和“区块”

Optimize 会将建议的联系人分成若干随机的客户子采样(称为“区块”)。 同属于一个客户的所有建议的联系人和联系历史记录将与该客户一起在其所属的区块(一个客户只能属于一个区块)中进行处理。 优化算法的准确性取决于这些客户区块相互之间在统计学上的相似程度,较大的区块大小会使相似度更高。 交叉客户容量约束在区块中均匀分布。 例如,假定您的 Optimize 会话包含一个指定要约 A 允许的最大值为 1000 的约束,如果对 10 个区块运行 Optimize 会话,则每个区块将包含一个允许要约 A 的最大值为 100 的容量规则。

算法微调变量 CustomerSampleSize 可让您设置最大区块大小。 区块越大,结果就越准确,但需要的会话运行时和内存资源也会随之增加。 在没有经过详细规划之前不要使用大大超过 10,000 的区块大小,这是因为很多系统没有足够的内存资源来一次性处理 10,000 个以上的客户,这样做会导致 Optimize 会话运行失败(内存不足错误)。 大多数情况下,较大的区块大小可能根本不会显著提高解决方案的最优性(用优化的联系人表中存留事务的分数总和来衡量),但仍需要更多的时间和内存来运行。 您可能需要根据具体的优化问题和性能需求来微调 CustomerSampleSize

在一个没有定义交叉客户容量规则的简单优化方案中,使用较大的区块大小不会获得额外的好处。

CustomerSampleSize 和交叉客户容量规则

若要了解使用交叉客户容量规则的情况,您必须了解这些规则是如何应用于多个区块的。 让我们考虑这样一种情况:电子邮件通道存在一个“最小/最大要约数容量”规则,其中最小值设置为 20,最大值设置为 1,000。 如果有 100,000 个客户且最大区块大小为 10,000,则将使用已修改的最大值为 100(用规则的最大值除以区块的数量,在此示例中为 10)的规则处理每个区块。

较小的最大区块大小可能会导致创建更多的区块。 这使得规则可能更依赖于数量少于区块数的某些元素(如电子邮件通道)。 如果区块大小减至 100,则会有 1,000 个区块。 现在,规则的最小值实际上小于区块的数量,这使得规则的最小值修改为 .02(20 除以 1,000)。 在此示例中,2% 的区块使用最小值为 1 的规则,其他 98% 的区块使用最小值为 0 的规则。只要每个区块在电子邮件通道方面存在统计学上的相似性,Optimize 就会按预期方式处理规则。 当向其发送了电子邮件的客户少于区块数量时将会出现问题。 如果仅向 500 个客户发送了电子邮件,则每个区块仅有 50% 的机会包含一个向其发送了电子邮件的客户,某个特定区块同时包含向其发送了电子邮件的客户和最小值为 1 个的规则的可能性仅为 1%。 Optimize 应仅平均返回 5,而不是满足指定的最小值 20。

区块的数量依赖于区块大小和客户总数。 由于最大区块大小为 10,000,这意味着,包含有效元素(在规则中使用的项)的客户的最小数量必须大于等于客户数量除以 10,000 的值以实现最优结果。 通过增加建议的联系人的数量来维持统计相似性的做法可能会降低性能,并且更多的建议的联系人肯定会增加开销。 如果允许使用较小的区块大小,则这样做可能会超过补偿,因为此较小的区块可以更快地处理。



IBM Unica Optimize
 
8.5.0
For more information, see our support and community site: Customer Central