ランキングについて
ランキングとは、項目をランク付けするための機械学習手法です。
ランキングは、電子商取引、ソーシャル・ネットワーク、レコメンデーション・システムなど、多様なアプリケーションで役立ちます。たとえば、ユーザーが記事やオンライン購入するアイテムを検索しているとします。レコメンデーション・システムを構築する場合は、関連性のある類似の記事やアイテムをユーザーに表示して、ユーザーが記事をクリックしたりアイテムを購入したりできるようにすることが重要になります。単純回帰モデルでは、ユーザーが記事をクリックする確率やアイテムを購入する確率を予測できます。ただし、ランキングの手法は、クリックまたは購入の機会を最大化するために、記事やアイテムを順序付けまたはランク付けできるようにするために使用する方が現実的です。記事やアイテムの優先順位は、ユーザーの判断に影響を与えます。
ランキング手法では、ある項目のランキングを別の項目との対比によって予測するようにモデルをトレーニングすることで各項目を直接ランク付けします。トレーニング・モデルでは、項目ごとにスコアを設定することで、項目間のランキングが可能になります。ランクが高い項目には高いスコアが設定され、ランクが低い項目には低いスコアが設定されます。こうしたスコアを使用することで、別の項目と比較してランクの高い項目を予測するモデルが構築されます。
ランキング方法
Oracle Machine Learningは、XGBoostによるペアワイズおよびリストワイズのランキング方式をサポートしています。
トレーニング・データセットについては、複数のセットを用意して、各セットはオブジェクトとそのランキングを表すラベルで構成します。ランキング関数は、トレーニング・データの特定の損失関数を最小化することで構成します。テスト・データを使用して、ランク付けされたオブジェクトのリストを取得するためにランキング関数を適用します。XGBoostでは、回帰関数を使用することでランキングが有効になります。OML4SQLは、XGBoostによるペアワイズおよびリストワイズのランキング方式をサポートしています。
ペアワイズ・ランキング: このアプローチでは、オブジェクトのペアを学習インスタンスと見なします。ペアとリストは、同じcase_id
値を指定することで定義されています。オブジェクトのペアがあれば、このアプローチにより、そのペアに最適な順序が付けられます。ペアワイズの損失は、2つのオブジェクトの順序によって定義されます。OML4SQLの場合、このアルゴリズムでは、ランキングの平均反転回数を最小化することを目的として、ペアワイズ・ランキングの実行にLambdaMARTを使用します。
リストワイズ・ランキング: このアプローチでは、複数のランク付けされたオブジェクトのリストを学習インスタンスとして採用します。リスト内の項目には、同一のcase_id
を設定する必要があります。このアルゴリズムでは、リストワイズ・ランキングを実行するためにLambdaMARTを使用します。
参照:
- 研究論文のプレゼンテーション"Ranking Measures and Loss Functions in Learning to Rank" (https://www.researchgate.net/)を参照してください
- XGBoostの使用可能なモデル設定のリストと解説は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
ノート:
hyperparameterという用語は、モデル設定でも同じ意味で使用されます。