Przegląd rankingów TensorFlow, Przegląd rankingów TensorFlow

Biblioteka TensorFlow Ranking pomaga budować skalowalne uczenie się, aby oceniać modele uczenia maszynowego przy użyciu ugruntowanych podejść i technik z najnowszych badań. Model rankingu pobiera listę podobnych elementów, takich jak strony internetowe, i generuje zoptymalizowaną listę tych elementów, na przykład najbardziej odpowiednie dla najmniej istotnych stron. Nauka rangowania modeli ma zastosowanie w wyszukiwaniu, odpowiadaniu na pytania, systemach rekomendujących i systemach dialogowych. Możesz użyć tej biblioteki, aby przyspieszyć budowanie modelu rankingu dla swojej aplikacji przy użyciu interfejsu API Keras . Biblioteka Ranking udostępnia również narzędzia przepływu pracy, które ułatwiają skalowanie implementacji modelu w celu efektywnej pracy z dużymi zestawami danych przy użyciu strategii przetwarzania rozproszonego.

W tym omówieniu przedstawiono krótkie podsumowanie procesu uczenia się oceniania modeli za pomocą tej biblioteki, przedstawiono niektóre zaawansowane techniki obsługiwane przez tę bibliotekę oraz omówiono narzędzia przepływu pracy dostarczane do obsługi przetwarzania rozproszonego dla aplikacji oceniających.

Rozwijanie nauki pozycjonowania modeli

Budowanie modelu za pomocą biblioteki TensorFlow Ranking przebiega zgodnie z następującymi ogólnymi krokami:

  1. Określ funkcję punktacji za pomocą warstw Keras ( tf.keras.layers )
  2. Zdefiniuj metryki, których chcesz użyć do oceny, takie jak tfr.keras.metrics.NDCGMetric
  3. Określ funkcję straty, taką jak tfr.keras.losses.SoftmaxLoss
  4. Skompiluj model za pomocą tf.keras.Model.compile() i naucz go swoimi danymi

Samouczek polecania filmów przedstawia podstawy budowania modelu uczenia się pozycjonowania za pomocą tej biblioteki. Zapoznaj się z sekcją pomocy dotyczącej rankingu rozproszonego , aby uzyskać więcej informacji na temat tworzenia modeli rankingów na dużą skalę.

Zaawansowane techniki rankingowe

Biblioteka TensorFlow Ranking zapewnia wsparcie dla stosowania zaawansowanych technik rankingowych zbadanych i wdrożonych przez badaczy i inżynierów Google. Poniższe sekcje zawierają omówienie niektórych z tych technik i sposobu rozpoczęcia korzystania z nich w aplikacji.

Zamawianie danych wejściowych listy BERT

Biblioteka Ranking zapewnia implementację TFR-BERT, architektury scoringowej, która łączy BERT z modelowaniem LTR w celu optymalizacji kolejności danych wejściowych list. Jako przykładowe zastosowanie tego podejścia rozważ zapytanie i listę n dokumentów, które chcesz uszeregować w odpowiedzi na to zapytanie. Zamiast uczenia się reprezentacji BERT ocenianej niezależnie w parach <query, document> , modele LTR stosują utratę rankingu, aby wspólnie uczyć się reprezentacji BERT, która maksymalizuje użyteczność całej listy rankingowej w odniesieniu do etykiet prawdy podstawowej. Poniższy rysunek ilustruje tę technikę:

Wykres BERT rankingu TensorFlow
Rysunek 1 : Diagram architektury BERT TensorFlow Ranking przedstawiający wspólny model LTR na liście n dokumentów przy użyciu reprezentacji BERT poszczególnych par <zapytanie,dokument>.

Takie podejście spłaszcza listę dokumentów, które mają być uszeregowane w odpowiedzi na zapytanie, do listy krotek <query, document> . Te krotki są następnie wprowadzane do wstępnie wytrenowanego modelu języka BERT. Połączone dane wyjściowe BERT dla całej listy dokumentów są następnie dostrajane wspólnie z jednym ze specjalistycznych strat rankingowych dostępnych w TensorFlow Ranking.

Ta architektura może zapewnić znaczną poprawę wydajności wstępnie wytrenowanego modelu językowego, zapewniając najnowocześniejszą wydajność dla kilku popularnych zadań rankingowych, zwłaszcza w przypadku połączenia wielu wstępnie wyszkolonych modeli językowych. Więcej informacji na temat tej techniki można znaleźć w powiązanych badaniach . Możesz zacząć od prostej implementacji w przykładowym kodzie TensorFlow Ranking.

Uogólnione modele addytywne rankingu neuronowego (GAM)

W przypadku niektórych systemów rankingowych, takich jak ocena kwalifikowalności pożyczki, kierowanie reklam lub wytyczne dotyczące leczenia, przejrzystość i możliwość wyjaśnienia mają kluczowe znaczenie. Zastosowanie uogólnionych modeli addytywnych (GAM) z dobrze poznanymi współczynnikami wagowymi może pomóc w lepszym wyjaśnieniu i zinterpretowaniu modelu rankingowego.

GAM zostały gruntownie przestudiowane za pomocą zadań regresji i klasyfikacji, ale mniej jasne jest, jak zastosować je do aplikacji rankingowej. Na przykład, chociaż GAM można po prostu zastosować do modelowania każdego pojedynczego elementu na liście, modelowanie zarówno interakcji elementów, jak i kontekstu, w którym te elementy są klasyfikowane, jest trudniejszym problemem. TensorFlow Ranking zapewnia implementację rankingu neuronowego GAM , rozszerzenie uogólnionych modeli addytywnych zaprojektowanych do rozwiązywania problemów z rankingiem. Implementacja GAM w TensorFlow Ranking umożliwia dodanie określonych wag do funkcji Twojego modelu.

Poniższa ilustracja systemu rankingowego hoteli wykorzystuje trafność, cenę i odległość jako główne cechy rankingu. W tym modelu zastosowano technikę GAM, aby inaczej ważyć te wymiary w zależności od kontekstu urządzenia użytkownika. Na przykład, jeśli zapytanie pochodziło z telefonu, odległość jest ważniejsza, zakładając, że użytkownicy szukają pobliskiego hotelu.

Uogólniony model dodatków dla przykładu rankingu
Rysunek 2 : Stosowanie GAM rankingu neuronowego do wyszukiwania lokalnego. Dla każdej cechy wejściowej, takiej jak cena lub odległość, model podrzędny tworzy wynik cząstkowy, który można zbadać, zapewniając przejrzystość. Funkcje kontekstowe, takie jak typ urządzenia użytkownika, mogą służyć do określania wag wyników podmodeli.

Aby uzyskać więcej informacji na temat używania GAM z modelami rankingowymi, zobacz powiązane badanie . Możesz zacząć od przykładowej implementacji tej techniki w przykładowym kodzie TensorFlow Ranking.

Wsparcie rankingu rozproszonego

TensorFlow Ranking jest przeznaczony do kompleksowego budowania systemów rankingowych na dużą skalę: w tym przetwarzania danych, budowania modeli, oceny i wdrażania produkcyjnego. Może obsługiwać heterogeniczne, gęste i rzadkie funkcje, skalować do milionów punktów danych i jest przeznaczony do obsługi rozproszonych szkoleń dla aplikacji rankingowych na dużą skalę.

Schemat klas TensorFlow Ranking
Rysunek 3 : Diagram klas TensorFlow Ranking wspierających przetwarzanie rozproszone. Zielone moduły można dostosować do swojego modelu rankingowego.

Biblioteka zapewnia zoptymalizowaną architekturę potoku rankingu, aby uniknąć powtarzającego się, szablonowego kodu i tworzyć rozwiązania rozproszone, które można zastosować od trenowania modelu rankingu do jego obsługi. Potok rankingu obsługuje większość rozproszonych strategii TensorFlow , w tym MirroredStrategy , TPUStrategy , MultiWorkerMirroredStrategy i ParameterServerStrategy . Potok rankingu może eksportować wyszkolony model rankingu w formacie tf.saved_model , który obsługuje kilka sygnatur wejściowych. Ponadto potok rankingu zapewnia przydatne wywołania zwrotne, w tym obsługę wizualizacji danych TensorBoard i BackupAndRestore , aby pomóc w naprawie po awariach w długim okresie operacje szkoleniowe.

Biblioteka rankingów pomaga w budowaniu rozproszonej implementacji szkolenia, dostarczając zestaw klas tfr.keras.pipeline , które pobierają konstruktora modelu, konstruktora danych i hiperparametry jako dane wejściowe. Oparta na Keras klasa tfr.keras.ModelBuilder umożliwia tworzenie modelu przetwarzania rozproszonego i współpracuje z rozszerzalnymi klasami InputCreator, Preprocessor i Scorer:

Klasy potoku TensorFlow Ranking współpracują również z DatasetBuilder w celu skonfigurowania danych treningowych, które mogą zawierać hiperparametry . Wreszcie sam potok może zawierać zestaw hiperparametrów jako obiekt PipelineHparams .

Zacznij od budowania modeli rankingu rozproszonego, korzystając z samouczka rankingu rozproszonego .

,

Biblioteka TensorFlow Ranking pomaga budować skalowalne uczenie się, aby oceniać modele uczenia maszynowego przy użyciu ugruntowanych podejść i technik z najnowszych badań. Model rankingu pobiera listę podobnych elementów, takich jak strony internetowe, i generuje zoptymalizowaną listę tych elementów, na przykład najbardziej odpowiednie dla najmniej istotnych stron. Nauka rangowania modeli ma zastosowanie w wyszukiwaniu, odpowiadaniu na pytania, systemach rekomendujących i systemach dialogowych. Możesz użyć tej biblioteki, aby przyspieszyć budowanie modelu rankingu dla swojej aplikacji przy użyciu interfejsu API Keras . Biblioteka Ranking udostępnia również narzędzia przepływu pracy, które ułatwiają skalowanie implementacji modelu w celu efektywnej pracy z dużymi zestawami danych przy użyciu strategii przetwarzania rozproszonego.

W tym omówieniu przedstawiono krótkie podsumowanie procesu uczenia się oceniania modeli za pomocą tej biblioteki, przedstawiono niektóre zaawansowane techniki obsługiwane przez tę bibliotekę oraz omówiono narzędzia przepływu pracy dostarczane do obsługi przetwarzania rozproszonego dla aplikacji oceniających.

Rozwijanie nauki pozycjonowania modeli

Budowanie modelu za pomocą biblioteki TensorFlow Ranking przebiega zgodnie z następującymi ogólnymi krokami:

  1. Określ funkcję punktacji za pomocą warstw Keras ( tf.keras.layers )
  2. Zdefiniuj metryki, których chcesz użyć do oceny, takie jak tfr.keras.metrics.NDCGMetric
  3. Określ funkcję straty, taką jak tfr.keras.losses.SoftmaxLoss
  4. Skompiluj model za pomocą tf.keras.Model.compile() i naucz go swoimi danymi

Samouczek polecania filmów przedstawia podstawy budowania modelu uczenia się pozycjonowania za pomocą tej biblioteki. Zapoznaj się z sekcją pomocy dotyczącej rankingu rozproszonego , aby uzyskać więcej informacji na temat tworzenia modeli rankingów na dużą skalę.

Zaawansowane techniki rankingowe

Biblioteka TensorFlow Ranking zapewnia wsparcie dla stosowania zaawansowanych technik rankingowych zbadanych i wdrożonych przez badaczy i inżynierów Google. Poniższe sekcje zawierają omówienie niektórych z tych technik i sposobu rozpoczęcia korzystania z nich w aplikacji.

Zamawianie danych wejściowych listy BERT

Biblioteka Ranking zapewnia implementację TFR-BERT, architektury scoringowej, która łączy BERT z modelowaniem LTR w celu optymalizacji kolejności danych wejściowych list. Jako przykładowe zastosowanie tego podejścia rozważ zapytanie i listę n dokumentów, które chcesz uszeregować w odpowiedzi na to zapytanie. Zamiast uczenia się reprezentacji BERT ocenianej niezależnie w parach <query, document> , modele LTR stosują utratę rankingu, aby wspólnie uczyć się reprezentacji BERT, która maksymalizuje użyteczność całej listy rankingowej w odniesieniu do etykiet prawdy podstawowej. Poniższy rysunek ilustruje tę technikę:

Wykres BERT rankingu TensorFlow
Rysunek 1 : Diagram architektury BERT TensorFlow Ranking przedstawiający wspólny model LTR na liście n dokumentów przy użyciu reprezentacji BERT poszczególnych par <zapytanie,dokument>.

Takie podejście spłaszcza listę dokumentów, które mają być uszeregowane w odpowiedzi na zapytanie, do listy krotek <query, document> . Te krotki są następnie wprowadzane do wstępnie wytrenowanego modelu języka BERT. Połączone dane wyjściowe BERT dla całej listy dokumentów są następnie dostrajane wspólnie z jednym ze specjalistycznych strat rankingowych dostępnych w TensorFlow Ranking.

Ta architektura może zapewnić znaczną poprawę wydajności wstępnie wytrenowanego modelu językowego, zapewniając najnowocześniejszą wydajność dla kilku popularnych zadań rankingowych, zwłaszcza w przypadku połączenia wielu wstępnie wyszkolonych modeli językowych. Więcej informacji na temat tej techniki można znaleźć w powiązanych badaniach . Możesz zacząć od prostej implementacji w przykładowym kodzie TensorFlow Ranking.

Uogólnione modele addytywne rankingu neuronowego (GAM)

W przypadku niektórych systemów rankingowych, takich jak ocena kwalifikowalności pożyczki, kierowanie reklam lub wytyczne dotyczące leczenia, przejrzystość i możliwość wyjaśnienia mają kluczowe znaczenie. Zastosowanie uogólnionych modeli addytywnych (GAM) z dobrze poznanymi współczynnikami wagowymi może pomóc w lepszym wyjaśnieniu i zinterpretowaniu modelu rankingowego.

GAM zostały gruntownie przestudiowane za pomocą zadań regresji i klasyfikacji, ale mniej jasne jest, jak zastosować je do aplikacji rankingowej. Na przykład, chociaż GAM można po prostu zastosować do modelowania każdego pojedynczego elementu na liście, modelowanie zarówno interakcji elementów, jak i kontekstu, w którym te elementy są klasyfikowane, jest trudniejszym problemem. TensorFlow Ranking zapewnia implementację rankingu neuronowego GAM , rozszerzenie uogólnionych modeli addytywnych zaprojektowanych do rozwiązywania problemów z rankingiem. Implementacja GAM w TensorFlow Ranking umożliwia dodanie określonych wag do funkcji Twojego modelu.

Poniższa ilustracja systemu rankingowego hoteli wykorzystuje trafność, cenę i odległość jako główne cechy rankingu. W tym modelu zastosowano technikę GAM, aby inaczej ważyć te wymiary w zależności od kontekstu urządzenia użytkownika. Na przykład, jeśli zapytanie pochodziło z telefonu, odległość jest ważniejsza, zakładając, że użytkownicy szukają pobliskiego hotelu.

Uogólniony model dodatków dla przykładu rankingu
Rysunek 2 : Stosowanie GAM rankingu neuronowego do wyszukiwania lokalnego. Dla każdej cechy wejściowej, takiej jak cena lub odległość, model podrzędny tworzy wynik cząstkowy, który można zbadać, zapewniając przejrzystość. Funkcje kontekstowe, takie jak typ urządzenia użytkownika, mogą służyć do określania wag wyników podmodeli.

Aby uzyskać więcej informacji na temat używania GAM z modelami rankingowymi, zobacz powiązane badanie . Możesz zacząć od przykładowej implementacji tej techniki w przykładowym kodzie TensorFlow Ranking.

Wsparcie rankingu rozproszonego

TensorFlow Ranking jest przeznaczony do kompleksowego budowania systemów rankingowych na dużą skalę: w tym przetwarzania danych, budowania modeli, oceny i wdrażania produkcyjnego. Może obsługiwać heterogeniczne, gęste i rzadkie funkcje, skalować do milionów punktów danych i jest przeznaczony do obsługi rozproszonych szkoleń dla aplikacji rankingowych na dużą skalę.

Schemat klas TensorFlow Ranking
Rysunek 3 : Diagram klas TensorFlow Ranking wspierających przetwarzanie rozproszone. Zielone moduły można dostosować do swojego modelu rankingowego.

Biblioteka zapewnia zoptymalizowaną architekturę potoku rankingu, aby uniknąć powtarzającego się, szablonowego kodu i tworzyć rozwiązania rozproszone, które można zastosować od trenowania modelu rankingu do jego obsługi. Potok rankingu obsługuje większość rozproszonych strategii TensorFlow , w tym MirroredStrategy , TPUStrategy , MultiWorkerMirroredStrategy i ParameterServerStrategy . Potok rankingu może eksportować wyszkolony model rankingu w formacie tf.saved_model , który obsługuje kilka sygnatur wejściowych. Ponadto potok rankingu zapewnia przydatne wywołania zwrotne, w tym obsługę wizualizacji danych TensorBoard i BackupAndRestore , aby pomóc w naprawie po awariach w długim okresie operacje szkoleniowe.

Biblioteka rankingów pomaga w budowaniu rozproszonej implementacji szkolenia, dostarczając zestaw klas tfr.keras.pipeline , które pobierają konstruktora modelu, konstruktora danych i hiperparametry jako dane wejściowe. Oparta na Keras klasa tfr.keras.ModelBuilder umożliwia tworzenie modelu przetwarzania rozproszonego i współpracuje z rozszerzalnymi klasami InputCreator, Preprocessor i Scorer:

Klasy potoku TensorFlow Ranking współpracują również z DatasetBuilder w celu skonfigurowania danych treningowych, które mogą zawierać hiperparametry . Wreszcie sam potok może zawierać zestaw hiperparametrów jako obiekt PipelineHparams .

Zacznij od budowania modeli rankingu rozproszonego, korzystając z samouczka rankingu rozproszonego .