Oracle Application Server Personalization(OracleAS Personalization)を使用すると、パーソナライズされたリコメンデーションを登録顧客と匿名ユーザーに対してリアルタイムかつ動的に提供することによって、ビジネスでのワン・トゥー・ワン・マーケティングを実現できます。 OracleAS Personalizationでは、データ・マイニング・テクノロジを使用して、Webサイトやその他のアプリケーションから収集した大量のデータを分析し、購入、人口統計、レーティング、ナビゲーションの各データから行動様式を把握します。 OracleAS Personalizationにより、「この顧客が購入する可能性が最も高い製品または好みの製品は何か、またどれだけ見込めるか」、「この製品を購入した顧客は、他にどの製品を購入する可能性があるか」、「この顧客のビジネスを存続させるために何を提供すればよいか」などの質問に対する回答が得られます。
この章では、パーソナライズとOracleAS Personalizationの概要について説明します。
パーソナライズにより、個人の嗜好、人口統計および行動を考慮して、関連する固有のリコメンデーションが提供されます。パーソナライズでは、親しい友人から得られるような配慮とタイミングでリコメンデーションが提供されます。
OracleAS Personalizationは、顧客のリコメンデーションを導出または生成するビジネス手法を提供する統合ソフトウェア製品です。
OracleAS Personalizationでは、手動のルールを明示的に定義しなくても、データ・マイニング・テクノロジを使用してリコメンデーションが作成されます。 カスタマイズ、ビジネス・ルール、メモリーベースの協調フィルタリングなど、類似の処理と混同しないようにしてください。
カスタマイズの場合、追跡する株価やスポーツ・チームなどの嗜好をユーザーが明示的に示す必要があります。一方、パーソナライズの場合は、顧客の行動から顧客の関心のある事柄が自動的に導出されます。
「デジタル・カメラを購入する顧客はカメラ用のバッテリーを多数購入する」などのビジネス・ルールは、商取引に携わる人の経験を基に作成されます。 これらのルールは自動化されているわけではなく、通常は特定の顧客に対しては適用されません。
メモリーベースの協調フィルタリングでは、同じ好みの顧客を検索するときに顧客のサイト使用履歴が考慮されます。 パフォーマンスに悪影響を及ぼす可能性があるデータセットまたはサマリー全体が検索されます。
OracleAS Personalizationのリコメンデーションは、顧客ごとにパーソナライズされます。 顧客は、Webサイトの匿名ユーザーまたは登録顧客であると考えられますが、ATMマシンまたは携帯電話を使用してコール・センターに問い合せる顧客の場合もあります。 リコメンデーションを提供するために、アプリケーションはOracleAS Personalizationに対してJava-APIコールを行います。
OracleAS Personalizationは顧客プロファイル・データを収集して、パーソナライズされたリコメンデーションをサポートする予測モデルを作成します。 データ・マイニングによって導出された基盤となるルールは、より高度になる可能性があるため、前述の他の方法よりもよい結果が出る場合があります。 たとえば、「リンクxおよびyをクリックし、aおよびbという人口統計の特性を持つ人はzを購入する傾向がある」などです。
OracleAS Personalizationでは、顧客のWebセッション中などに、顧客のアクティビティがリアルタイムでリコメンデーションに組み込まれます。 OracleAS Personalizationを使用すると、アプリケーションでは、顧客がクリックしたリンクを記録することにより、Webサイトにおけるこの顧客のナビゲーションを記録します。顧客は、リクエストに応答して本や映画、顧客による購入、顧客の人口統計情報の更新などのアイテムのレーティングを行います。 このデータはすべて、Oracleデータベースに格納される顧客のプロファイルの一部になります。 OracleAS Personalizationでは、顧客のすべてのプロファイルを使用して、予測モデルが作成されます。 このデータは、その後のセッションで収集されるデータを利用して更新できるため、新しいモデルが作成される場合は予測の精度が向上します。
OracleAS Personalizationは、既存のWebアプリケーションやその他の顧客アプリケーションと組み合せて使用できます。 OracleAS Personalizationは、アプリケーションからの要求に基づいて、顧客が購入する可能性がある製品のリストを生成します。 リコメンデーションのランク付きリストがアプリケーションに戻されます。
Webサイト・ユーザーに対するリコメンデーションはOracleAS Personalizationの重要な用途の1つですが、OracleAS Personalizationは、その他の状況でもリコメンデーションを提供できます。 OracleAS Personalizationは、顧客データを収集してパーソナライズされたリコメンデーションを提供することが必要なすべてのアプリケーションで使用できます。
リアルタイムのリコメンデーション・インタフェース以外に、OracleAS Personalizationには、リコメンデーションをオフラインで生成するために使用できるバッチ・インタフェースもあります。 このようなリコメンデーションは、マーケティング・キャンペーンなどのときに効果的です。
OracleAS Personalizationコンポーネントは、次のもので構成されます。
リコメンデーション・エンジンApplication Programm Interface(REAPI): アプリケーションによる、OracleAS Personalization予測モデルの作成に使用されるプロファイル・データの提供、およびリコメンデーション・エンジンのOracleAS Personalizationからリアルタイムのリコメンデーションの取得を可能にするJavaクラスの集合です。
リコメンデーション・エンジン(RE): REは、Oracleデータベース内のプログラムと表(REスキーマ)で構成されます。 REでは、顧客や匿名ユーザーに関するデータの収集と前処理、およびそれらの顧客や匿名ユーザーへのリコメンデーションの提供を行うために、Javaで記述されたアプリケーションがサポートされます。 REへのアクセスは、REAPIによって実現されます。REによっては、Webアプリケーションの1つ以上のJavaサーバー・プロセスがサポートされます。
リコメンデーション・エンジン・ファーム(REファーム): 同一の予測モデル・パッケージが移入される1つ以上のREの論理グループです。REファームは通常、1つの管理単位として管理UIから処理されます。 また、スケーラビリティと可用性を向上させるために、REファーム内のREを個別のデータベースに配置することもできます。
管理UI: パッケージのビルド、配布およびレポートのスケジューリング、REファームやREの管理、およびその他のOracleAS Personalization管理を行うためにOracleAS Personalization管理者が使用する、ブラウザベースのユーザー・インタフェースです。 管理UIの詳細は、第2章を参照してください。
マイニング・オブジェクト・リポジトリ(MOR): MORには、OracleAS Personalizationの管理機能を担うすべてのプログラムおよび表が格納されます。 MORへのアクセスは、管理UIによって実現されます。 MORは、予測モデル・パッケージ、パッケージ設定、およびパッケージのビルド・スケジュールと配布スケジュールを保持するスキーマです。 MORには、予測モデルを作成するアルゴリズムが含まれます。
予測モデル・パッケージ: 管理UIを使用して作成されるオブジェクトです。 予測モデル・パッケージには、履歴顧客プロファイル・データから導出されたデータ・マイニング予測モデルが含まれます。 管理者は、管理UIを使用して配布をスケジュールするパッケージを定義します。 ビルド後のパッケージには、指定されたREファーム内のリコメンデーション・エンジンに配布される予測モデル表が含まれます(図1-1を参照)。 このマニュアルでは、予測モデル・パッケージを単に「パッケージ」と呼ぶこともあります。
マイニング・テーブル・リポジトリ(MTR): MTRには、データ・マイニングに使用されるスキーマとすべてのデータが格納されます。 MTRには、予測モデルの作成をサポートするために設計された固定スキーマがあります。
リコメンデーション・エンジン・バッチAPI: バッチ、つまりオフラインでユーザーがリコメンデーションを取得できるようにするJavaクラスの集合です。
OracleAS Personalizationには、Oracle DatabaseとOracle Application Serverの両方が必要です。 この2つの製品は、同じシステムにインストールすることも、別のシステムにインストールすることもできます。
管理UIは、Oracle Application Serverと同じシステムで実行されます。
REAPIとREバッチAPIは、これらを使用するアプリケーションと同じシステムに存在します。 これらのアプリケーションは、必ずしもOracle Application Serverと同じシステム上で実行する必要はありません。
その他のすべてのコンポーネントは、データベースがインストールされているシステムにインストールされます。 MTR、MORおよびREを同じデータベースにインストールする必要はありません。 スケーラビリティと可用性を向上させるために、個別のOracleデータベースにインストールできます。
図1-1に、OracleAS Personalizationのコンポーネントと処理を示します。 この図は、OracleAS Personalizationの処理全体のフロー・チャートです。
既存の顧客データは、MTRスキーマにマッピングされます(手順1)。 MTR内のデータを使用して、MOR内でパッケージがビルドされます(手順2)。 パッケージは、ビルドされるとリコメンデーション・エンジン・ファームに配布され(手順3)、リコメンデーションの生成に使用されます。続いて、このリコメンデーションがアプリケーションに渡されます(手順4)。 REAPIのデータ収集メソッドを介してアプリケーションでデータが収集され、REに戻されます(手順5)。このデータは、最終的にMTRに同期化されて戻されます(手順6)。
MTRの移入
データをMTRに格納するには、2つの方法があります。 最初の方法は、データベース・ビューを使用して、既存の顧客プロファイル・データ(ナビゲーション、購入、レーティングおよび人口統計)をアプリケーション・データベースからMTRスキーマにマッピングする方法です。 この方法を使用すると、パッケージをただちにビルドして、リコメンデーションの生成を開始できます。 ただし、既存のプロファイル・データがない場合は、オプションでOracleAS Personalizationとともにインストールされるシード・データを使用して、MTRを初期化できます。 MTRにデータがないと、予測モデルを作成することはできません。
MTRにデータを格納する2番目の方法は、アプリケーションによってコールされるREAPIのデータ収集メソッドを使用する方法です。 顧客または匿名ユーザーがアプリケーションと情報をやり取りする場合、アプリケーションはREAPIをコールしてRE内のデータを収集します。 REは、データを同期化してMTRに戻します。 後続のパッケージ・ビルドは、このデータを使用して行われます。
REAPIコールを使用してデータを収集するには、REにパッケージが配布されている必要があります。 パッケージをビルドして配布すると、REAPIを使用してデータを収集できます。 図1-2に、処理サイクルの図を示します。
OracleAS Personalizationでは、次の種類のデータが収集されます。
ナビゲーション・データ
レーティング・データ
購入データ
人口統計データ
この4種類のデータのうち、柔軟性が最も高いのがナビゲーション・データです。 ナビゲーション・データとは、アプリケーションで考慮される、顧客に関連するすべてのことを意味します。 たとえば、Webアプリケーションでは、「ヒット」は顧客がページを表示したり、リンクや項目をクリックすることを示します。
ナビゲーション、レーティング、購入および人口統計の各データは、総称して顧客プロファイル・データとも呼ばれます。
OracleAS Personalizationでは、REAPIによって提供されるJavaコールを使用してデータが収集されます。 これらのコールによって、セッションIDで示される特定のセッションの情報が追加されます。REでは、REAPIコールで渡される次のいずれかの引数を検索することにより、正確なセッションIDが特定されます。
appSessionID -- ステートフルWebアプリケーション、つまり、各セッションのIDを格納するアプリケーションで使用されます。
customerID -- ステートレスWebアプリケーション、つまり、各セッションのIDを格納しないアプリケーションで使用されます。
REAPIキャッシュに一時的に格納されるデータは定期的にフラッシュされ、該当するREに送信されます。 その後、セッション・データが使用され、顧客の履歴プロファイル・データおよび予測モデルと組み合せることにより、リコメンデーションが生成されます。最後に、終了したセッションまたはタイムアウトになったセッションに関するデータが、REインスタンスによってマイニング・テーブル・リポジトリ(MTR)に定期的にフラッシュされます。 OracleAS Personalization管理者は、MTRに保存するデータを示す構成パラメータを設定できます。 その後、MTR内のデータは、予測モデルを作成して、パッケージを介した今後の配布に備える目的に使用されます。
OracleAS Personalizationでは、顧客プロファイル・データ、ビンやアイテム分類タクソノミーなどのデータ準備仕様を使用して、予測モデルが作成されます。 OracleAS Personalizationで使用されるデータ・マイニング・アルゴリズムにより、顧客履歴データが分析され、予測モデルが作成されます。
より多くの新しい顧客プロファイル・データが収集され、Oracle Application Serverで使用できるようになると、モデルによって生成されるリコメンデーションの精度も向上します。 したがって、MTRに大量の新しいプロファイル・データが追加された場合は常に、予測モデルを作成しなおす必要があります。 OracleAS Personalizationには、最新のn日分のデータを使用して予測モデルを作成するためのオプションがあります。 たとえば、このスライド・ウィンドウでは最新の90日分を指定できます。
OracleAS Personalization管理者は、パッケージのビルドに関するスケジュールや、リコメンデーション・エンジン(RE)へのパッケージの配布に関するスケジュールを作成して管理します。 管理性と信頼性を向上させるために、同じパッケージを持つリコメンデーション・エンジンは、リコメンデーション・エンジン・ファーム(REファーム)にまとめられます。
OracleAS Personalizationでは、Transactional Naive Bayes(TNB)とPredictive Association Rules(PAR)の2つのアルゴリズムが使用されます。 レーティング関連のリコメンデーションの場合は、TNBによって生成されたモデルが使用されます。 抱合せ販売に関連するリコメンデーションの場合は、PARが使用されます。 アルゴリズムについては、付録Aを参照してください。
タクソノミーは、概念階層とも呼ばれ、製品、Webページ、ドキュメントなど、アイテムのセットの分類を定義します。 OracleAS Personalizationでは、アイテムは複数のカテゴリのメンバーになることができます。また、各カテゴリは別のカテゴリのメンバーになることができます。 たとえば、OracleAS Personalizationを使用するWebサイトのカタログには、最も一般的なカテゴリ(例: 衣類)をベースに持つタクソノミーがあり、より詳細なカテゴリ(衣類→靴→スニーカー→テニス・シューズ)の方向に分岐しています。
アイテムとカテゴリは、特定の構造の複数のカテゴリや別のレベルに属することができます。 たとえば、テニス・シューズは、衣類のカテゴリにもスポーツ用品のカテゴリにも属することができます。
OracleAS Personalizationのタクソノミー・タイプは有向非巡回グラフ(DAG)であり、複数のトップレベル・ノードを含むことができますが、ノードの子をそのノード自体に接続するパスを作成することはできません。また、タクソノミーの様々な部分を切り離しておくこともできます。 図1-3の例はDAGです。
また、OracleAS Personalizationでは複数のタクソノミー(様々な方法によるアイテムの編成)もサポートされています。 一意の各タクソノミーは、一意のタクソノミーIDを使用して指定できます。リコメンデーションの取得方法に応じて各タクソノミーを定義できます(第1.7.3項「フィルタリング・リコメンデーション」を参照)。 タクソノミーは、OracleAS Personalization MTRスキーマ内の表のグループを使用して実装されます。 OracleAS Personalizationで作成された予測モデルは、タクソノミーを使用して、アイテム対アイテムのルール以外に、カテゴリ対カテゴリおよびカテゴリ対アイテムのルールを生成します。
OracleAS Personalizationでは、リコメンデーションのフィルタ処理により、タクソノミーのカテゴリ・レベルにあるアイテムを含めたり除外できます。 アプリケーションでは、REAPIのFilteringSettingsクラスを使用してリコメンデーションをフィルタ処理できます。 このクラスでは、リーフ・アイテムによってカテゴリおよびカテゴリ・サブツリーのフィルタリングを実行できます。
REAPIを使用したフィルタリングの例として、図1-3に示すタクソノミーを考えてみましょう。 「靴」カテゴリからリコメンデーションを取得する場合、Webアプリケーションでは、FilterSettings.setCategorySubTreeFiltering()メソッドを使用して、「スニーカー」、「テニス・シューズ」、「ランニング・シューズ」およびそのサブツリー内のアイテムからリコメンデーションを取得できます。