Oracle® Fusion Middleware Oracle Real-Time Decisionsプラットフォーム開発者ガイド 11g リリース1 (11.1.1) B72429-01 |
|
![]() 前 |
![]() 次 |
チュートリアルのこの章では、インライン・サービスの各要素(特に、パフォーマンス目標、スコアリング・ルール、アドバイザおよびデシジョン)を作成および構成する手順について説明します。これらの要素を組み合せることにより、顧客に対する最適なオファーをOracle RTDが提案できるようになります。
第2章では、クレジット・カード会社のコール・センターにおける通話理由に関連する入力データを追跡して分析するインライン・サービスを作成しました。第3章では、ロード・ジェネレータを使用して、インライン・サービスへのクライアント・リクエスト(インフォーマントのコールを介したリクエスト)をシミュレートしました。
この章では、Tutorialインライン・サービスを拡張して、抱合せ販売のアドバイスをCRMアプリケーションに提供します。ここでは、エージェントが顧客からの通話を通常の方法(Service Completeインフォーマントのコール)で処理した後で、その機会を利用して顧客にオファーを提示するように、プロセスを拡張します。第5章では、オファーに対する顧客のレスポンスを追跡し、レスポンスから学習した内容を別の顧客へのオファー提示に活用します。
この章には次のトピックが含まれます:
このチュートリアルでは、クレジット・カード・サービス・センターへの通話者に対して提示できるオファーの選択肢グループを作成します。コストを最小化するパフォーマンス・メトリックをサポートできるように、選択肢のスコアはコスト・ベースにします。次に、アドバイザを作成して抱合せ販売提案をCRMアプリケーションに渡します。これによって、コール・センター・エージェントがオファーを提示できるようになります。
選択肢グループを使用してオファー(抱合せ販売)インベントリを作成する手順は次のとおりです。
「インライン・サービス・エクスプローラ」で、「選択肢」フォルダを右クリックし、「新規選択肢グループ」を選択します。グループ名にCross Selling Offer
を指定し、「OK」をクリックします。
「選択肢」を開き、新しく作成したグループを選択して開きます。説明を追加します。
「選択肢属性」タブで、「属性」表の横にある「追加」をクリックします。表4-1に示されている属性を追加し、「クライアントへ送信」と「オーバーライド可能」を選択します。
表4-1 「選択肢属性」タブの属性
属性名 | データ型 | クライアントへ送信 | オーバーライド可能 |
---|---|---|---|
Offer Description |
String |
選択済 |
選択済 |
URL |
String |
選択済 |
選択済 |
Agent Script |
String |
選択済 |
選択済 |
注意: これらの属性はクライアント(コール・センター・エージェント)でのオファーの提案に必要なため、クライアントに送信されます。 属性の値は実際のオファーごとに異なるため、これらの属性は上書き可能である必要があります。抱合せ販売のオファー内容は、この選択肢グループ内の選択肢によって表されます。 実際のインライン・サービスでは、具体的なオファーが提示される前に、レベル分けされた選択肢グループが表示される場合があります。各選択肢グループはオファーの論理グループを表し、グループ内のオファーに一様に適用される属性やビジネス・ルールが存在する場合があります。 |
「インライン・サービス・エクスプローラ」で、「選択肢」の下の「Cross Selling Offer」選択肢グループを選択し、表4-2に示すように、属性を持つ選択肢を5つ追加します。各選択肢を追加する手順は次のとおりです。
「インライン・サービス・エクスプローラ」で「Cross Selling Offer」を右クリックし、「新規選択肢」を選択します。Credit Card、Savings Account、Life Insurance、Roth IRAおよびBrokerage Accountの5つの選択肢を追加します。
「インライン・サービス・エクスプローラ」で、「選択肢」にある「Cross Selling Offer」グループを開き、各選択肢を表示します。各選択肢に対して、次の手順を実行して属性を追加します。
「インライン・サービス・エクスプローラ」で、「選択肢」を選択します。選択肢用のエディタで、説明を追加します。
「属性値」タブに、3つの属性「Agent Script」、「Offer Description」および「URL」が表示されます。「属性値」を使用して、表4-2に示す属性値を追加します。
表4-2 選択肢の属性値
選択肢名 | Agent Script | Offer Description | URL |
---|---|---|---|
Brokerage Account |
Would you like to try our new brokerage account? |
Brokerage Account offer |
http://www.offer.com/offer1.html |
Credit Card |
Would you like to try our new credit card? |
Credit Card offer |
http://www.offer.com/offer2.html |
Life Insurance |
Would you like to try our new life insurance? |
Life Insurance offer |
http://www.offer.com/offer3.html |
Roth IRA |
Would you like to try our new Roth IRA? |
Roth IRA offer |
http://www.offer.com/offer4.html |
Savings Account |
Would you like to try our new savings account? |
Savings Account offer |
http://www.offer.com/offer5.html |
「ファイル」→「すべて保存」を選択して、構成を保存します。
パフォーマンス目標を構成する手順は次のとおりです。
「インライン・サービス・エクスプローラ」で、「パフォーマンス目標」要素をダブルクリックし、エディタを起動します。「追加」をクリックして、パフォーマンス・メトリックを追加します。メトリック名をCost
にします。「OK」をクリックします。
「最適化」で、「最小化」を選択し、メトリックを「必須」にします。
注意: 複数のパフォーマンス・メトリックがある場合、「正規化係数」を使用して値を正規化する必要があります。たとえば、あるメトリック(Minimize hold timeという名前)が秒単位で測定される場合、この正規化ファクタでは、1ドルの売上を実現するのに要する最小時間が秒単位で測定されます。 |
「ファイル」→「すべて保存」を選択して、構成を保存します。
各製品には、その維持に必要な平均コスト(年ベース)があります。ドル単位のコストは、構成したCostパフォーマンス目標に関連付ける製品のスコアを表します。
選択肢をスコアリングする手順は次のとおりです。
「インライン・サービス・エクスプローラ」で、「選択肢」にある「Cross Selling Offer」選択肢グループを選択し開きます。「スコア」タブで、「メトリックの選択」をクリックし、パフォーマンス・メトリックの「Cost」を選択し、「OK」をクリックします。これによって、選択肢グループにコスト・スコアが設定されます。実際のスコア値は、選択肢ごとに設定されます。
スコア値は定数である必要はありません。多くの場合、顧客のタイプが異なるとスコア値が大きく異なります。こうした相違は、式(つまり、スコアリング・ルール)を使用して表現できます。たとえば、クレジット・カード・アカウントの維持に必要なコストは、40歳以下の顧客では低くなる場合があります。このロジックをスコアリング・ルールに定義してから、このルールをCredit Cardオファーのコスト・スコアに割り当てます。
「インライン・サービス・エクスプローラ」で、「スコアリング・ルール」フォルダを右クリックし、「新規スコアリング・ルール」を選択します。スコアリング・ルールの名前をCredit Card Score
にします。この新しいスコアリング・ルール用のエディタが起動します。
「条件値の追加」アイコンをクリックし、デフォルト以外のルール条件を設定します。
新しい行が表示されます。その左側のセルに比較式によるルールを指定し、右側のセルにスコア値を指定します。このロジックは次のようになります。左側のセルが真の場合は、右側のセルの値が返されます。それ以外の場合は、ルールの2行目の値が使用されます。
ルールの左側をクリックし、省略記号をクリックします。「値の編集」ダイアログが表示されます。「属性」を選択し、「セッション属性」→「customer」を開き、「Age」を選択したら、「OK」をクリックします。条件演算子アイコンをクリックし、その右下にある三角形をクリックします。
以下を表す記号(<=)を選択します。ルールの右側をクリックし、数値の40
を入力します。「その場合」セルに数値の130
を入力します。2行目を選択し、値として数値の147
を入力します。入力したルールは図4-2のようになります。
作成したCredit Card Scoreスコアリング・ルールを保存します。他のオファーについては、定数値をコスト・スコアに設定します。
「Cross Selling Offer」選択肢グループの選択肢ごとに、「スコア」タブを開きます。Costメトリックの「スコア」列に、表4-3に示す値を入力します。クレジット・カード選択肢にコスト・スコアを設定するには、「スコア」列の省略記号をクリックし、値ソースとして「関数またはルール・コール」を選択します。「コールする関数」ドロップダウン・リストで、「Credit Card Score」を選択します。
表4-3 選択肢のコスト・スコア
選択肢 | コスト・スコア |
---|---|
Brokerage Account |
150 |
Credit Card |
Credit Card Scoreスコアリング・ルール: 年齢<=40の場合は130、それ以外は147 |
Life Insurance |
140 |
Roth IRA |
145 |
Savings Account |
135 |
今回のパフォーマンス目標はコストの最小化にあるため、顧客の年齢が40歳以下の場合はCredit Cardオファー(スコアは130)が選択され、それ以外の場合はSavings Accountオファー(スコアは135)が選択されます。このチュートリアルの後述の項では、別のパフォーマンス目標(売上最大化メトリック)を追加し、これらの競合する2つのパフォーマンス・メトリックがプラットフォームによって最適化される方法について説明します。
「ファイル」→「すべて保存」を選択して、構成を保存します。
外部システムで意思決定を行う必要があるとき、アドバイザがコールされます。この項では、特定の顧客用に選択されたオファーをCRMアプリケーションに返すアドバイザを作成します。
アドバイザの内部構造には、1つ以上の選択肢グループに関連付けるデシジョンが含まれます。これらの選択肢グループには、作成されるオファーが含まれます。デシジョンの結果は、アドバイザに送信される結果です。
アドバイザには2種類のデシジョンがあり、1つは通常の処理用で、もう1つは制御グループ用です。使用した場合、制御グループはOracle RTDによって実現されたパフォーマンス結果を示すベースラインとして機能します。
デシジョンを作成する手順は、次のとおりです。
「インライン・サービス・エクスプローラ」で、「デシジョン」フォルダを右クリックし、「新規デシジョン」を選択します。デシジョン名としてSelect Offer
を指定し、「OK」をクリックします。
Select Offerデシジョンの説明を追加します。「デシジョン」エディタの「選択基準」タブで、「次から選択肢を選択」を探します。「選択」をクリックし、リストから「Cross Selling Offer」を選択し、「OK」をクリックします。
制御グループには、オファーをランダムに選択するデシジョンを作成します。新しいデシジョンを作成し、その名前をRandom Choice
にします。
Random Choiceデシジョンの説明を追加します。「デシジョン」エディタの「選択基準」タブで、「次から選択肢を選択」を探します。「選択」をクリックし、リストから「Cross Selling Offer」を選択し、「OK」をクリックします。
「ランダムに選択」チェック・ボックスを選択します。
注意: 制御グループは、ビジネス・ユーザー予測モデルの結果を既存のビジネス・プロセスと比較できるようにするベースラインとして機能します。制御グループのデシジョンは、Oracle RTDがインストールされていないときのデシジョンを正しく反映するように、正確に定義することが重要です。たとえば、コール・センター用の抱合せ販売アプリケーションで、Oracle RTDの導入前にはエージェントがランダムにオファーを選択していた場合は、制御グループのデシジョンがランダムな選択を返す必要があります。 |
「ファイル」→「すべて保存」を選択して、構成を保存します。
アドバイザを作成する手順は、次のとおりです。
「インライン・サービス・エクスプローラ」で、「統合点」の下の「アドバイザ」フォルダを右クリックし、「新規アドバイザ」を選択します。アドバイザ名にGet Cross Sell Offer
を指定し、「OK」をクリックします。
セッション・キーをGet Cross Sell Offerアドバイザに追加するには、エディタで「セッション・キー」の「選択」をクリックして、「customerId」を選択します。「OK」をクリックします。
「外部システム」で「CRM」を選択します。「順序」に「3
」を入力します。
Service Completeインフォーマントの「順序」を2
に設定したことを思い出してください。このインフォーマントの後にGet Cross Sell Offerアドバイザをコールしようとしているので、順序は3になります。この「順序」は、デシジョン・センターの統合マップでアプリケーション・プロセスを図示する目的にのみ使用され、統合点を特定の順序で実行するものでないことに注意してください。
「レスポンス」タブで、通常処理と制御グループの両方に対してデシジョンを選択します。「デシジョン」には「Select Offer」デシジョンを選択し、「制御グループのデシジョン」にはRandom Choiceデシジョンを選択します。
「デフォルトの選択肢」セクションで、「選択」をクリックし、リストから「Life Insurance」を選択し、「OK」をクリックします。これによって、選択されたオファーがこのアドバイザのデフォルト・レスポンスになります。このデフォルトは、処理に問題(タイムアウトなど)が発生したときに使用されます。
「非同期ロジック」タブで、次のコードを入力します。
logInfo("Integration Point - Get Cross Sell Offer"); logInfo(" Customer age = " + session().getCustomer().getAge() ); // 'choices' is array returned by the 'Select Offer' decision if (choices.size() > 0) { //Get the first offer from array Choice offer = choices.get(0); logInfo(" Offer presented: '" + offer.getSDOLabel() + "'"); }
コードを「ロジック」タブに入力すると、返されるオファーがデシジョンによって決定される前にコードが実行されるため、返されるオファー名を出力できなくなります。前述のコードでは、顧客の年齢と提示されたオファー名が出力されます。コストの最小化を目標としているため、顧客の年齢に基づいて、Savings AccountオファーおよびCredit Cardオファーのみが提示されることを思い出してください。
インライン・サービスを保存します。ツールバーの「デプロイ」ボタンをクリックします。「アクティブ・セッション(テスト用として使用)の終了」 を選択して、その時点でまだアクティブなセッションをすべて削除します。デプロイします。
図4-4に、パフォーマンス目標のCostに基づいてGet Cross Sell OfferアドバイザがCross Selling Offer選択肢グループからオファーを取得するフローを示します。
図4-4 Cross Selling Offer選択肢グループからオファーを取得するGet Cross Sell Offerアドバイザ
デシジョン・センターで統合マップを表示する手順は、次のとおりです。
Webブラウザを起動してURLにhttp://
server_name
:
9704/ui
を指定して、デシジョン・センターを起動します。インストール時に作成したデフォルト管理者資格証明を使用してログインします。デシジョン・センターを実行するには、Real-Time Decision Serverが起動されている必要があります。
インライン・サービスを開くをクリックします。
Tutorialインライン・サービスを選択します。
左側のツリーで、ルート・ノードの「チュートリアル」をクリックします。右側のペインで、「定義」タブの「統合マップ」サブタブをクリックして表示します。図4-5のようなマップが表示されます。
統合マップでは表4-4の記号を使用して、統合点、データ処理、エンティティおよび情報フローが示されます。
アドバイザをテストする手順は、次のとおりです。
デシジョン・スタジオで、「テスト」ビューを使用して、統合点リクエストを送信します。Service Completeインフォーマントを選択し、パラメータ値を入力します。たとえば、顧客IDに7
、エージェント名にJohn
、長さに21
、理由コードに18
(または17
、19
、20
)をそれぞれ入力します。
「送信」アイコンをクリックします。
「ログ」サブタブでメッセージが送信されたことを確認します。このインフォーマント・コールによって、新しいセッションが顧客IDに基づいて作成され、顧客の通話理由、エージェント名およびコールの長さが登録されます。
Get Cross Sell Offerアドバイザを選択します。同一セッションで作業を続行するため、customerIdはそのままにします。「送信」をクリックします。
選択されたオファーとその属性が返され、「テスト」ビューの「レスポンス」ペインに表示されます。
「テスト」ビューの「ログ」サブタブで、customerId = 7のエントリには、次のようなレスポンスが表示されます。
00:24:40,764 Integration Point - Get Cross Sell Offer 00:24:40,764 Customer age = 38 00:24:40,764 Offer presented: 'Credit Card'
「customerId」と他のパラメータで値をそれぞれ異なる値に変えて、手順1から3までを繰り返します。顧客の年齢が40歳以下のときはCredit Cardオファーが返され、40歳を超えるときはSavings Accountオファーが返されることを確認してください。このような結果となる理由は、アドバイザがCostパフォーマンス・メトリックに対してのみ最適化されており、最小コストのオファーが顧客の年齢に応じてSavings AccountまたはCredit Cardのどちらかになるためです(「選択肢のスコアリング」のCredit Card Scoreスコアリング・ルールを参照)。
「テスト」ビューの「トレース」サブタブには、オファーが選択されるまでの一連のプロセス(つまり、各オファーのスコアが計算され最適なオファーが決定されるプロセスから、最終的にパフォーマンス目標(コストの最小化)を満足したオファーが選択されるまでのプロセス)の説明が記録されます。