- The
Retrieval
task now accepts a list of factorized metrics instead of a single optional metric.
tfrs.experimental.optimizers.ClippyAdagrad
: a new optimizer based ontf.keras.optimizers.Adagrad
that is able to improve training stability.tfrs.metrics.FactorizedTopK
now accepts sample weights which are used to compute weighted top k metrics.
- Improved support for using TPUEmbedding under parameter server strategy.
A number of changes to make factorized top-K metric computation more accurate and less prone to user error.
-
tfrs.layers.embedding.TPUEmbedding
now supports input features with dynamic shape.batch_size
argument is deprecated and no longer required. -
tfrs.layers.embedding.TPUEmbedding
now supports running on different versions of TPU. -
Pinned TensorFlow to >= 2.9.0 which works with Scann 1.2.7.
-
tfrs.tasks.Ranking.call
now accepts acompute_batch_metrics
argument to allow switching off batch metric computation. Following this change, 'compute_metrics'argument does not impact computation of batch metrics.
tfrs.metrics.FactorizedTopK
requires the candidate ids for positive candidates to be supplied when using approximate top-K sources. Each top-K layer now has anexact
method to broadcast its ability to return exact or approximate top-K results.- Removed
metrics
constructor parameter fortfrs.metrics.FactorizedTopK
.FactorizedTopK
only makes sense with top-k metrics, and this change enforces this. - Replaced the
k
constructor argument intfrs.metrics.FactorizedTopK
withks
: a list ofk
values at which to compute the top k metric.
- The
tfrs.metrics.FactorizedTopK
metric can now compute candidate-id based metrics when given thetrue_candidate_ids
argument in itscall
method.
- The
Retrieval
task now also accepts aloss_metrics
argument.
- Pinned TensorFlow to >= 2.6.0, which works with Scann 1.2.3.
TopK
layer indexing API changed. Indexing with datasets is now done via theindex_from_dataset
method. This change reduces the possibility of misaligning embeddings and candidate identifiers when indexing via indeterministic datasets.
- Fixed error in default arguments to
tfrs.experimental.models.Ranking
(#311). - Fix TPUEmbedding layer to use named parameters.
- Added
batch_metrics
totfrs.tasks.Retrieval
for measuring how good the model is at picking out the true candidate for a query from other candidates in the batch. - Added
tfrs.experimental.layers.embedding.PartialTPUEmbedding
layer, which usestfrs.layers.embedding.TPUEmbedding
for large embedding lookups andtf.keras.layers.Embedding
for smaller embedding lookups.
- Supplying incompatibly-shaped candidates and identifiers inputs to
factorized_top_k
layers will now raise (to prevent issues similar to #286).
- Fixed the bug in
tfrs.layers.loss.SamplingProbablityCorrection
that logits should subtract the log of item probability. tfrs.experimental.optimizers.CompositeOptimizer
: an optimizer that composes multiple individual optimizers which can be applied to different subsets of the model's variables.tfrs.layers.dcn.Cross
andDotInteraction
layers have been moved totfrs.layers.feature_interaction
package.
tfrs.experimental.models.Ranking
, an experimental pre-built model for ranking tasks. Can be used as DLRM like model with Dot Product feature interaction or DCN like model with Cross layer.
TopK
layers now come with aquery_with_exclusions
method, allowing certain candidates to be excluded from top-k retrieval.TPUEmbedding
Keras layer for accelerating embedding lookups for large tables with TPU.
-
factorized_top_k.Streaming
layer now accepts a query model, like otherfactorized_top_k
layers. -
Updated ScaNN to 1.2.0, which requires TensorFlow 2.4.x. When not using ScaNN, any TF >= 2.3 is still supported.
- Pinned TensorFlow to >= 2.3 when ScaNN is not being installed. When ScaNN is being installed, we pin on >= 2.3, < 2.4. This allows users to use TFRS on TF 2.4 when they are not using ScaNN.
- Pinned TensorFlow to 2.3.x and ScaNN to 1.1.1 to ensure TF and ScaNN versions are in lockstep.
- Deep cross networks: efficient ways of learning feature interactions.
- ScaNN integration: efficient approximate maximum inner product search for fast retrieval.
tfrs.tasks.Ranking.call
now accepts acompute_metrics
argument to allow switching off metric computation.tfrs.tasks.Ranking
now accepts label and prediction metrics.- Add metrics setter/getters on
tfrs.tasks.Retrieval
.
-
Corpus retrieval metrics and layers have been reworked.
tfrs.layers.corpus.DatasetTopk
has been removed,tfrs.layers.corpus.DatasetIndexedTopK
renamed totfrs.layers.factorized_top_k.Streaming
,tfrs.layers.ann.BruteForce
renamed totfrs.layers.factorized_top_k.BruteForce
. All top-k retrieval layers (BruteForce
,Streaming
) now follow a common interface.
Dataset
parallelism enabled by default inDatasetTopK
andDatasetIndexedTopK
layers, bringing over 2x speed-ups to evaluations workloads.evaluate_metrics
argument totfrs.tasks.Retrieval.call
renamed tocompute_metrics
.