テキストの一般的なシグネチャ

このページでは、テキスト入力を受け入れる TF1 Hub 形式 のモジュ―ルで実装すべき一般的なシグネチャを説明します。(TF2 SavedModel 形式については、同様の SavedModel API をご覧ください。)

テキスト特徴量ベクトル

テキスト特徴量ベクトルモジュールは、テキスト特徴量から密なベクトル表現を作成します。このモジュールは形状 [batch_size] の文字列のバッチを受け入れ、それらを形状 [batch_size, N]float32 テンソルにマッピングします。これは、N 次元へのテキスト埋め込みと呼ばれることがあります。

基本的な使い方

  embed = hub.Module("path/to/module")
  representations = embed([
      "A long sentence.",
      "single-word",
      "http://example.com"])

特徴量カラムの使い方

    feature_columns = [
      hub.text_embedding_column("comment", "path/to/module", trainable=False),
    ]
    input_fn = tf.estimator.inputs.numpy_input_fn(features, labels, shuffle=True)
    estimator = tf.estimator.DNNClassifier(hidden_units, feature_columns)
    estimator.train(input_fn, max_steps=100)

補足

モジュールはさまざまなドメインやタスクで事前にトレーニングされているため、すべてのテキスト特徴量ベクトルモジュールが特定の問題に適しているとは限りません(モジュールの一部が単一の言語でトレーニングされている場合など)。

このインターフェースでは、TPU でのテキスト表現のファインチューニングは行えません。これには、文字列の処理とトレーニング対象変数のインスタンス化を同時に行うモジュールが必要となるためです。