12 月 7 日の Women in ML シンポジウムに参加する今すぐ登録する

TensorFlowランキングの概要、TensorFlowランキングの概要

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

TensorFlowランキングライブラリは、最近の研究で確立されたアプローチと手法を使用して、機械学習モデルをランク付けするためのスケーラブルな学習を構築するのに役立ちます。ランキングモデルは、Webページなどの類似したアイテムのリストを取得し、それらのアイテムの最適化されたリストを生成します。たとえば、最も関連性の低いページに最も関連性があります。モデルのランク付けを学ぶことは、検索、質問応答、レコメンダーシステム、および対話システムに適用されます。このライブラリを使用すると、 KerasAPIを使用してアプリケーションのランキングモデルの構築を加速できます。ランキングライブラリには、分散処理戦略を使用して大規模なデータセットを効果的に処理するためにモデル実装を簡単にスケールアップできるワークフローユーティリティも用意されています。

この概要では、このライブラリを使用してモデルをランク付けするための学習の開発について簡単に説明し、ライブラリでサポートされるいくつかの高度な手法を紹介し、ランク付けアプリケーションの分散処理をサポートするために提供されるワークフローユーティリティについて説明します。

モデルをランク付けするための学習の開発

TensorFlowランキングライブラリを使用してモデルを構築するには、次の一般的な手順に従います。

  1. Kerasレイヤー( tf.keras.layers )を使用してスコアリング関数を指定します
  2. tfr.keras.metrics.NDCGMetricなど、評価に使用するメトリックを定義します
  3. tfr.keras.losses.SoftmaxLossなどの損失関数を指定します
  4. tf.keras.Model.compile()を使用してモデルをコンパイルし、データを使用してトレーニングします

映画のおすすめチュートリアルでは、このライブラリを使用してモデルをランク付けするための学習を構築するための基本について説明します。大規模なランキングモデルの構築の詳細については、分散ランキングサポートセクションを確認してください。

高度なランキング手法

TensorFlowランキングライブラリは、Googleの研究者やエンジニアによって研究および実装された高度なランキング手法を適用するためのサポートを提供します。次のセクションでは、これらの手法のいくつかの概要と、アプリケーションでそれらを使い始める方法について説明します。

BERTリストの入力順序

ランキングライブラリは、リスト入力の順序を最適化するためにBERTとLTRモデリングを結合するスコアリングアーキテクチャであるTFR-BERTの実装を提供します。このアプローチのアプリケーション例として、クエリと、このクエリに応答してランク付けするn個のドキュメントのリストについて考えてみます。 LTRモデルは<query, document>ペア全体で個別にスコアリングされたBERT表現を学習する代わりに、ランキング損失を適用して、グラウンドトゥルースラベルに関してランク付けされたリスト全体の有用性を最大化するBERT表現を共同で学習します。次の図は、この手法を示しています。

TensorFlowランキングBERT図
図1 :個々の<query、document>ペアのBERT表現を使用したn個のドキュメントのリストに対するジョイントLTRモデルを示すTensorFlowランキングBERTアーキテクチャ図。

このアプローチは、クエリに応答してランク付けするドキュメントのリストを<query, document>タプルのリストにフラット化します。これらのタプルは、BERTの事前トレーニング済み言語モデルに送られます。次に、ドキュメントリスト全体のプールされたBERT出力は、TensorFlowランキングで利用可能な特殊なランキング損失の1つと共同で微調整されます。

このアーキテクチャは、事前にトレーニングされた言語モデルのパフォーマンスを大幅に向上させ、特に複数の事前にトレーニングされた言語モデルを組み合わせた場合に、いくつかの一般的ランキングタスクに最先端のパフォーマンスをもたらします。この手法の詳細については、関連する調査を参照してください。 TensorFlowランキングのサンプルコードで簡単な実装を開始できます。

ニューラルランキング一般化加法モデル(GAM)

ローンの適格性評価、広告ターゲティング、または医療のガイダンスなどの一部のランキングシステムでは、透明性と説明性が重要な考慮事項です。よく理解されている重み係数を使用して一般化加法モデル(GAM)を適用すると、ランキングモデルをより説明しやすく解釈しやすくなります。

GAMは回帰および分類タスクで広く研究されてきましたが、ランキングアプリケーションにGAMを適用する方法はあまり明確ではありません。たとえば、GAMはリスト内の個々のアイテムをモデル化するために簡単に適用できますが、アイテムの相互作用とこれらのアイテムがランク付けされるコンテキストの両方をモデル化することは、より困難な問題です。 TensorFlowランキングは、問題のランキング用に設計された一般化された加法モデルの拡張であるニューラルランキングGAMの実装を提供します。 GAMのTensorFlowランキングの実装により、モデルの機能に特定の重みを追加できます。

次のホテルランキングシステムの図では、関連性、価格、距離を主要なランキング機能として使用しています。このモデルは、GAM手法を適用して、ユーザーのデバイスコンテキストに基づいて、これらのディメンションを異なる方法で重み付けします。たとえば、クエリが電話からのものである場合、ユーザーが近くのホテルを探していると仮定すると、距離はより重くなります。

ランキング例の一般化された加法モデル
図2 :ローカル検索にニューラルランキングGAMを適用する。価格や距離などの入力機能ごとに、サブモデルは調査可能なサブスコアを生成し、透明性を提供します。ユーザーデバイスタイプなどのコンテキスト機能を使用して、サブモデルスコアの重みを決定できます。

ランキングモデルでGAMを使用する方法の詳細については、関連する調査を参照してください。 TensorFlowランキングのサンプルコードで、この手法のサンプル実装を開始できます。

分散ランキングのサポート

TensorFlowランキングは、データ処理、モデル構築、評価、本番展開など、大規模なランキングシステムをエンドツーエンドで構築するために設計されています。異種の高密度およびスパース機能を処理し、数百万のデータポイントにスケールアップでき、大規模なランキングアプリケーションの分散トレーニングをサポートするように設計されています。

TensorFlowランキングクラスの図
図3 :分散処理をサポートするためのTensorFlowランキングクラスの図。緑のモジュールは、ランキングモデルに合わせてカスタマイズできます。

ライブラリは、最適化されたランキングパイプラインアーキテクチャを提供し、反復的なボイラープレートコードを回避し、ランキングモデルのトレーニングからサービス提供まで適用できる分散ソリューションを作成します。ランキングパイプラインは、 MirroredStrategyTPUStrategyMultiWorkerMirroredStrategyParameterServerStrategyなど、TensorFlowの分散戦略のほとんどをサポートしています。ランキングパイプラインは、トレーニングされたランキングモデルをtf.saved_model形式でエクスポートできます。これは、いくつかの入力シグネチャをサポートします。さらに、ランキングパイプラインは、 TensorBoardデータの視覚化やBackupAndRestoreのサポートなど、長時間実行中の障害からの回復に役立つ便利なコールバックを提供します。トレーニング操作。

ランキングライブラリは、モデルビルダー、データビルダー、ハイパーパラメーターを入力としてtfr.keras.pipelineクラスのセットを提供することにより、分散トレーニング実装の構築を支援します。 Kerasベースのtfr.keras.ModelBuilderクラスを使用すると、分散処理用のモデルを作成でき、拡張可能なInputCreator、Preprocessor、およびScorerクラスと連携します。

TensorFlowランキングパイプラインクラスは、 DatasetBuilderと連携して、ハイパーパラメーターを組み込むことができるトレーニングデータを設定します。最後に、パイプライン自体に一連のハイパーパラメーターをPipelineHparamsオブジェクトとして含めることができます。

分散ランキングチュートリアルを使用して、分散ランキングモデルの構築を開始します。

TensorFlowランキングライブラリは、最近の研究で確立されたアプローチと手法を使用して、機械学習モデルをランク付けするためのスケーラブルな学習を構築するのに役立ちます。ランキングモデルは、Webページなどの類似したアイテムのリストを取得し、それらのアイテムの最適化されたリストを生成します。たとえば、最も関連性の低いページに最も関連性があります。モデルのランク付けを学ぶことは、検索、質問応答、レコメンダーシステム、および対話システムに適用されます。このライブラリを使用すると、 KerasAPIを使用してアプリケーションのランキングモデルの構築を加速できます。ランキングライブラリには、分散処理戦略を使用して大規模なデータセットを効果的に処理するためにモデル実装を簡単にスケールアップできるワークフローユーティリティも用意されています。

この概要では、このライブラリを使用してモデルをランク付けするための学習の開発について簡単に説明し、ライブラリでサポートされるいくつかの高度な手法を紹介し、ランク付けアプリケーションの分散処理をサポートするために提供されるワークフローユーティリティについて説明します。

モデルをランク付けするための学習の開発

TensorFlowランキングライブラリを使用してモデルを構築するには、次の一般的な手順に従います。

  1. Kerasレイヤー( tf.keras.layers )を使用してスコアリング関数を指定します
  2. tfr.keras.metrics.NDCGMetricなど、評価に使用するメトリックを定義します
  3. tfr.keras.losses.SoftmaxLossなどの損失関数を指定します
  4. tf.keras.Model.compile()を使用してモデルをコンパイルし、データを使用してトレーニングします

映画のおすすめチュートリアルでは、このライブラリを使用してモデルをランク付けするための学習を構築するための基本について説明します。大規模なランキングモデルの構築の詳細については、分散ランキングサポートセクションを確認してください。

高度なランキング手法

TensorFlowランキングライブラリは、Googleの研究者やエンジニアによって研究および実装された高度なランキング手法を適用するためのサポートを提供します。次のセクションでは、これらの手法のいくつかの概要と、アプリケーションでそれらを使い始める方法について説明します。

BERTリストの入力順序

ランキングライブラリは、リスト入力の順序を最適化するためにBERTとLTRモデリングを結合するスコアリングアーキテクチャであるTFR-BERTの実装を提供します。このアプローチのアプリケーション例として、クエリと、このクエリに応答してランク付けするn個のドキュメントのリストについて考えてみます。 LTRモデルは<query, document>ペア全体で個別にスコアリングされたBERT表現を学習する代わりに、ランキング損失を適用して、グラウンドトゥルースラベルに関してランク付けされたリスト全体の有用性を最大化するBERT表現を共同で学習します。次の図は、この手法を示しています。

TensorFlowランキングBERT図
図1 :個々の<query、document>ペアのBERT表現を使用したn個のドキュメントのリストに対するジョイントLTRモデルを示すTensorFlowランキングBERTアーキテクチャ図。

このアプローチは、クエリに応答してランク付けするドキュメントのリストを<query, document>タプルのリストにフラット化します。これらのタプルは、BERTの事前トレーニング済み言語モデルに送られます。次に、ドキュメントリスト全体のプールされたBERT出力は、TensorFlowランキングで利用可能な特殊なランキング損失の1つと共同で微調整されます。

このアーキテクチャは、事前にトレーニングされた言語モデルのパフォーマンスを大幅に向上させ、特に複数の事前にトレーニングされた言語モデルを組み合わせた場合に、いくつかの一般的ランキングタスクに最先端のパフォーマンスをもたらします。この手法の詳細については、関連する調査を参照してください。 TensorFlowランキングのサンプルコードで簡単な実装を開始できます。

ニューラルランキング一般化加法モデル(GAM)

ローンの適格性評価、広告ターゲティング、または医療のガイダンスなどの一部のランキングシステムでは、透明性と説明性が重要な考慮事項です。よく理解されている重み係数を使用して一般化加法モデル(GAM)を適用すると、ランキングモデルをより説明しやすく解釈しやすくなります。

GAMは回帰および分類タスクで広く研究されてきましたが、ランキングアプリケーションにGAMを適用する方法はあまり明確ではありません。たとえば、GAMはリスト内の個々のアイテムをモデル化するために簡単に適用できますが、アイテムの相互作用とこれらのアイテムがランク付けされるコンテキストの両方をモデル化することは、より困難な問題です。 TensorFlowランキングは、問題のランキング用に設計された一般化された加法モデルの拡張であるニューラルランキングGAMの実装を提供します。 GAMのTensorFlowランキングの実装により、モデルの機能に特定の重みを追加できます。

次のホテルランキングシステムの図では、関連性、価格、距離を主要なランキング機能として使用しています。このモデルは、GAM手法を適用して、ユーザーのデバイスコンテキストに基づいて、これらのディメンションを異なる方法で重み付けします。たとえば、クエリが電話からのものである場合、ユーザーが近くのホテルを探していると仮定すると、距離はより重くなります。

ランキング例の一般化された加法モデル
図2 :ローカル検索にニューラルランキングGAMを適用する。価格や距離などの入力機能ごとに、サブモデルは調査可能なサブスコアを生成し、透明性を提供します。ユーザーデバイスタイプなどのコンテキスト機能を使用して、サブモデルスコアの重みを決定できます。

ランキングモデルでGAMを使用する方法の詳細については、関連する調査を参照してください。 TensorFlowランキングのサンプルコードで、この手法のサンプル実装を開始できます。

分散ランキングのサポート

TensorFlowランキングは、データ処理、モデル構築、評価、本番展開など、大規模なランキングシステムをエンドツーエンドで構築するために設計されています。異種の高密度およびスパース機能を処理し、数百万のデータポイントにスケールアップでき、大規模なランキングアプリケーションの分散トレーニングをサポートするように設計されています。

TensorFlowランキングクラスの図
図3 :分散処理をサポートするためのTensorFlowランキングクラスの図。緑のモジュールは、ランキングモデルに合わせてカスタマイズできます。

ライブラリは、最適化されたランキングパイプラインアーキテクチャを提供し、反復的なボイラープレートコードを回避し、ランキングモデルのトレーニングからサービス提供まで適用できる分散ソリューションを作成します。ランキングパイプラインは、 MirroredStrategyTPUStrategyMultiWorkerMirroredStrategyParameterServerStrategyなど、TensorFlowの分散戦略のほとんどをサポートしています。ランキングパイプラインは、トレーニングされたランキングモデルをtf.saved_model形式でエクスポートできます。これは、いくつかの入力シグネチャをサポートします。さらに、ランキングパイプラインは、 TensorBoardデータの視覚化やBackupAndRestoreのサポートなど、長時間実行中の障害からの回復に役立つ便利なコールバックを提供します。トレーニング操作。

ランキングライブラリは、モデルビルダー、データビルダー、ハイパーパラメーターを入力としてtfr.keras.pipelineクラスのセットを提供することにより、分散トレーニング実装の構築を支援します。 Kerasベースのtfr.keras.ModelBuilderクラスを使用すると、分散処理用のモデルを作成でき、拡張可能なInputCreator、Preprocessor、およびScorerクラスと連携します。

TensorFlowランキングパイプラインクラスは、 DatasetBuilderと連携して、ハイパーパラメーターを組み込むことができるトレーニングデータを設定します。最後に、パイプライン自体に一連のハイパーパラメーターをPipelineHparamsオブジェクトとして含めることができます。

分散ランキングチュートリアルを使用して、分散ランキングモデルの構築を開始します。