Campaign | partitions | partition[n] | Optimize | AlgorithmTuning
これらの構成プロパティーは、最適化のチューニングに使用できる設定を定義します。
MaxAlternativesPerCustomerEvaluated
- 説明
顧客に最適の選択肢を見つけるために、提案されたトランザクションまたは選択肢の組み合わせを Contact Optimization でテストする最大回数。
例えば、以下が真である場合:
推奨コンタクト・テーブル (PCT) で顧客に関連付けられているオファーが A、B、C、D であり、これらのオファーのスコアが A=8、B=4、C=2、D=1 である
MaxAlternativesPerCustomerEvaluated プロパティーが 5 である
最大オファー数 =3 のルールが存在する
この場合、試行される選択肢は、以下のようになります。
ABC スコア = 14
ABD スコア = 13
AB スコア = 12
ACD スコア = 11
AC スコア = 10
テストする選択肢の数が多くなる場合があるため、この値を使用して、Contact Optimization が PCT 内の次の顧客に移動する前に、コア・アルゴリズムが 1 人の顧客に対して費やす作業量を制限します。
- デフォルト値
1000
CustomerSampleSize
- 説明
最適化する対象の顧客の数が CustomerSampleSize を超える場合、Contact Optimization は CustomerSampleSize 以下のグループに顧客を分割します。その後、Contact Optimization は、それぞれのサンプル・グループを別々に最適化します。それでも、グループ間にまたがるルール、例えばカスタム・キャパシティー・ルールなどは遵守されます。この数を大きくすると、最適性は向上してもパフォーマンスを損なう場合があります。
最大限に最適な CustomerSampleSize は、顧客の数と同じです。しかし、大きなデータ集合の処理には、多大な時間を要する場合があります。Contact Optimization で一度に処理するために、顧客をより小さなグループに分割することにより、最適性の損失を最小にしてパフォーマンスを向上させることができます。
- デフォルト値
1000
- 有効な値
正の整数
MaxIterationsPerCustomerSample
- 説明
Contact Optimization が 1 つの顧客グループに対して処理する反復の最大数。Contact Optimization は、最適性が達成されるか、反復が MaxIterationsPerCustomerSample と同じになるまで、1 つの顧客グループを処理します。
セッション・ログ内の次の情報を検索し、MaxIterationsPerCustomerSample の設定変更の効果を観察します。
1 顧客チャンクあたりの最大、最小、および平均反復回数
作成された、1 顧客あたりの最大、最小、および平均選択肢数
試行された、1 顧客あたりの最大、最小、および平均選択肢数
イテレーションの標準偏差
- デフォルト値
1000
- 有効な値
正の整数
CustomerRandomSeed
- 説明
ランダム・シードは、Contact Optimization が CustomerSampleSize によって定義されたサンプル・グループにデータを設定する前に、Contact Optimization でレコードのランダムな選択に使用される開始点を表します。顧客の数が CustomerSampleSize より少ない場合、このプロパティーは最適化に効果はありません。
現行のランダム・サンプルで生成される結果に大きな偏りがあると思われる場合は、ランダム・シードを変更できます。
- デフォルト値
1928374656
- 有効な値
正の整数
MaxCustomerSampleProcessingThreads
- 説明
Contact Optimization で最適化アルゴリズムの処理に使用するスレッドの最大数。一般に、MaxCustomerSampleProcessingThreads を大きく設定するほど、パフォーマンスを向上させることができます。ただし、パフォーマンスの向上は、使用する最適化ルールのタイプと数、使用するハードウェアなど、いくつかの要因によって制限されます。Contact Optimization の実装のチューニングに関する詳しい手順については、IBM® 営業担当員にお問い合わせください。
- デフォルト値
1
- 有効な値
正の整数
ProcessingThreadQueueSize
- 説明
PCT から顧客サンプルを読み取るために Contact Optimization で使用できるスレッド数。このスレッド数を増やすと、Contact Optimization セッションのパフォーマンスが向上する場合があります。Contact Optimization の実装のチューニングに関する詳しい手順については、IBM 営業担当員にお問い合わせください。
- デフォルト値
1
- 有効な値
正の整数
PostProcessingThreadQueueSize
- 説明
OCT のステージング・テーブルに顧客サンプルを書き込むために、Contact Optimization で使用できるスレッドの数。このスレッド数を増やすと、Contact Optimization セッションのパフォーマンスが向上する場合があります。Contact Optimization の実装のチューニングに関する詳しい手順については、IBM 営業担当員にお問い合わせください。
- デフォルト値
1
- 有効な値
正の整数
EnableMultithreading
- 説明
true の場合、Contact Optimization は最適化アルゴリズムを処理するときにマルチスレッドの使用を試みます。スレッドの数は、MaxCustomerSampleProcessingThreads、ProcessingThreadQueueSize、および PostProcessingThreadQueueSize 構成プロパティーで構成できます。false の場合、Contact Optimization は最適化アルゴリズムを処理するときに単一のスレッドを使用します。
- デフォルト値
True
- 有効な値
True | False
EnableMaxCapacityConsumption
- 説明
チャネル・キャパシティーを十分活用していない Contact Optimization の結果を受け取った場合、EnableMaxCapacityConsumption を有効にしてチャネル・キャパシティーのロスを削減します。それから、Contact Optimization セッションを再実行します。パラメーターが true に設定されている場合、Contact Optimization は、「顧客間」ルール (「最小/最大オファー数キャパシティー」ルールと「カスタム・キャパシティー」ルール) で設定された最大制約を満たすために拡張アルゴリズムを使用します。ただし、これが使用される場合、セッションに提供するデータによってはセッションの実行時間が長くなる可能性があります。
- デフォルト値
False
- 有効な値
True | False
EnableBufferingHistoryTransactions
- 説明
true の場合、Contact Optimization はコンタクト履歴トランザクションを、Contact Optimization セッションの実行のときに読み取るために、ファイルに書き込みます。false の場合、Contact Optimization は Campaign システム・テーブル内の UA_ContactHistory テーブルから読み取ります。
false の場合、 Contact Optimization は Contact Optimization セッションの間、UA_ContactHistory テーブルに対して読み取りロックを作成します。このロックにより、データベース・ロード・ユーティリティーを使用している場合に、テーブルへの書き込みが失敗することもあります。true の場合、Contact Optimization は照会をファイルに書き込むために要する時間の間だけ、テーブルに対する読み取りロックを作成します。
- デフォルト値
False
- 有効な値
True | False
MinImprovementPercent
- 説明
この構成プロパティーを使用して、最適化の割合が指定のレベルに到達した時点で、顧客のグループの処理を停止します。MinImprovmentPercent プロパティーには、反復処理を続けるスコアの改善率 (単位はパーセンテージ) を設定します。デフォルト値はゼロで、これは可能な反復の数に制限がないことを意味します。
- デフォルト値
0.0
UseFutureContacts
- 説明
どの最適化ルールの中でも時間枠を使用していない場合は、パフォーマンス向上のための Contact Optimization によるコンタクト履歴テーブルに対する照会を防止できます。この動作は、UseFutureContacts 構成プロパティーで制御できます。
UseFutureContacts を false に設定した場合、しかも Contact Optimization セッションの最適化ルールで時間枠を使用していなければ、Contact Optimization はコンタクト履歴テーブルに対する照会を行いません。この設定により、Contact Optimization セッションを実行するために必要な時間が改善されます。ただし、Contact Optimization セッションで時間枠を使用する場合は、コンタクト履歴テーブルに対する照会が行われます。
潜在的な将来のコンタクトをコンタクト履歴に記録する場合は、UseFutureContacts を true に設定する必要があります。例えば、次の週に特定の顧客に特別なプロモーションに関する E メール・コミュニケーションを送信することが分かっている場合は、それらのコンタクトをあらかじめプレースホルダーとしてコンタクト履歴テーブルに入れておくことができます。この場合、UseFutureContacts を true に設定し、Contact Optimization がコンタクト履歴テーブルを必ず照会するようにします。
- デフォルト値
False
- 有効な値
True | False
ContinueOnGenerationLoopError
- 説明
False に設定すると、以下の理由で顧客のセットを処理できなくなる場合に、Contact Optimization は Contact Optimization セッションを停止します。
- 外部アルゴリズムが、そのいずれかの代替解決策でキャパシティー・ルールを満たすことができない。
- コア・アルゴリズムが代替解決策を作成していない。
Contact Optimization は、この条件を以下のエラーでログに記録します。
生成ループは、遊び変数および余剰変数を全部は除去できませんでした (The generation loop was unable to eliminate all slack and surplus variables)
True に設定すると、Contact Optimization は、生成ループ・エラーをトリガーしたセット内のすべての顧客をスキップします。その後、Contact Optimization は、Contact Optimization セッション内の次の顧客セットの処理を続行します。Contact Optimization が一部のルールに違反し、すべてのルールとデータを適用せずにこの結果を生成した可能性があります。Optimize|logging|enableBailoutLogging プロパティーも TRUE に設定した場合、スキップされた顧客は Contact Optimization インストール・ディレクトリーの partition/partition[n]/logs ディレクトリーの unprocessables_10-digit-session-ID.csv に記録されます。生成ループ・エラーが原因でスキップされた顧客の理由は SkippedOnGenerationLoopError になります。
生成ループ・エラーを回避する方法について詳しくは、「Contact Optimization Troubleshooting and Tuning Guide」を参照してください。
- デフォルト値
False
- 有効な値
True | False