TensorFlow 순위 개요, TensorFlow 순위 개요

TensorFlow Ranking 라이브러리는 최근 연구에서 확립된 접근 방식과 기술을 사용하여 기계 학습 모델의 순위를 지정하는 확장 가능한 학습을 ​​구축하는 데 도움이 됩니다. 순위 모델은 웹 페이지와 같은 유사한 항목의 목록을 사용하여 해당 항목의 최적화된 목록을 생성합니다(예: 관련성이 가장 낮은 페이지에 가장 관련성이 높음). 모델 순위 지정 학습은 검색, 질문 답변, 추천 시스템 및 대화 시스템에 적용됩니다. 이 라이브러리를 사용하면 Keras API 를 사용하여 애플리케이션에 대한 순위 모델 구축을 가속화할 수 있습니다. Ranking 라이브러리는 또한 분산 처리 전략을 사용하여 대규모 데이터 세트에서 효과적으로 작동하도록 모델 구현을 쉽게 확장할 수 있도록 하는 워크플로 유틸리티를 제공합니다.

이 개요는 이 라이브러리를 사용하여 모델의 순위를 지정하는 학습 개발에 대한 간략한 요약을 제공하고 라이브러리에서 지원하는 몇 가지 고급 기술을 소개하며 순위 지정 응용 프로그램을 위한 분산 처리를 지원하기 위해 제공되는 워크플로 유틸리티에 대해 설명합니다.

모델 순위 지정 학습 개발

TensorFlow Ranking 라이브러리를 사용하여 모델을 빌드하는 것은 다음과 같은 일반적인 단계를 따릅니다.

  1. Keras 레이어를 사용하여 점수 함수 지정( tf.keras.layers )
  2. tfr.keras.metrics.NDCGMetric 과 같이 평가에 사용할 메트릭을 정의하십시오.
  3. tfr.keras.losses.SoftmaxLoss 와 같은 손실 함수를 지정합니다.
  4. tf.keras.Model.compile() 을 사용하여 모델을 컴파일하고 데이터로 훈련시키십시오.

영화 추천 튜토리얼 은 이 라이브러리를 사용하여 순위 모델 학습을 구축하는 기본 사항을 안내합니다. 대규모 순위 모델 구축에 대한 자세한 내용은 분산 순위 지원 섹션을 확인하세요.

고급 순위 기술

TensorFlow Ranking 라이브러리는 Google 연구원과 엔지니어가 연구하고 구현한 고급 순위 기술 적용을 지원합니다. 다음 섹션에서는 이러한 기술 중 일부에 대한 개요와 응용 프로그램에서 이 기술을 사용하는 방법을 제공합니다.

BERT 목록 입력 순서

Ranking 라이브러리는 목록 입력의 순서를 최적화하기 위해 BERT 를 LTR 모델링과 결합하는 스코어링 아키텍처인 TFR-BERT의 구현을 제공합니다. 이 접근 방식의 예제 응용 프로그램으로 이 쿼리에 대한 응답으로 순위를 지정하려는 n개의 문서 목록과 쿼리를 고려하십시오. <query, document> 쌍에서 독립적으로 점수가 매겨진 BERT 표현을 학습하는 대신 LTR 모델은 순위 손실 을 적용하여 실제 레이블과 관련하여 전체 순위 목록의 유용성을 최대화하는 BERT 표현을 공동으로 학습합니다. 다음 그림은 이 기술을 보여줍니다.

TensorFlow 순위 BERT 다이어그램
그림 1 : TensorFlow Ranking BERT 아키텍처 다이어그램은 개별 <query,document> 쌍의 BERT 표현을 사용하여 n개의 문서 목록에 대한 공동 LTR 모델을 보여줍니다.

이 접근 방식은 <query, document> 튜플 목록으로 쿼리에 대한 응답으로 순위를 매기기 위해 문서 목록을 평면화합니다. 그런 다음 이러한 튜플은 BERT 사전 훈련된 언어 모델에 공급됩니다. 그러면 전체 문서 목록에 대한 풀링된 BERT 출력이 TensorFlow Ranking에서 사용할 수 있는 특수 순위 손실 중 하나로 공동으로 미세 조정됩니다.

이 아키텍처는 사전 훈련된 언어 모델 성능을 크게 개선하여 특히 여러 사전 훈련된 언어 모델이 결합된 경우 몇 가지 인기 있는 순위 작업에 대한 최첨단 성능을 생성 할 수 있습니다. 이 기술에 대한 자세한 내용은 관련 연구 를 참조하십시오. TensorFlow Ranking 예제 코드 에서 간단한 구현으로 시작할 수 있습니다.

신경 순위 일반화 가법 모델(GAM)

대출 적격성 평가, 광고 타겟팅 또는 치료 지침과 같은 일부 순위 시스템의 경우 투명성과 설명 가능성이 중요한 고려 사항입니다. 가중 요인을 잘 이해하는 일반화된 가법 모델 (GAM)을 적용하면 순위 모델을 더 설명하기 쉽고 해석하기 쉽게 할 수 있습니다.

GAM은 회귀 및 분류 작업으로 광범위하게 연구되었지만 순위 응용 프로그램에 GAM을 적용하는 방법은 명확하지 않습니다. 예를 들어, GAM은 단순히 목록의 각 개별 항목을 모델링하는 데 적용될 수 있지만 항목 상호 작용과 이러한 항목의 순위가 매겨지는 컨텍스트를 모두 모델링하는 것은 더 어려운 문제입니다. TensorFlow Ranking은 순위 문제를 위해 설계된 일반화 추가 모델의 확장인 신경 순위 GAM 의 구현을 제공합니다. GAM의 TensorFlow Ranking 구현 을 통해 모델의 기능에 특정 가중치를 추가할 수 있습니다.

다음 호텔 순위 시스템의 그림은 관련성, 가격 및 거리를 주요 순위 기능으로 사용합니다. 이 모델은 GAM 기술을 적용하여 사용자의 장치 컨텍스트에 따라 이러한 치수를 다르게 측정합니다. 예를 들어, 쿼리가 전화에서 온 경우 사용자가 가까운 호텔을 찾고 있다고 가정하면 거리에 더 많은 가중치가 부여됩니다.

순위 지정을 위한 일반화된 가법 모델
그림 2 : 지역 검색에 신경 순위 GAM을 적용합니다. 가격 또는 거리와 같은 각 입력 기능에 대해 하위 모델은 검사할 수 있는 하위 점수를 생성하여 투명성을 제공합니다. 사용자 장치 유형과 같은 컨텍스트 기능을 사용하여 하위 모델 점수의 가중치를 결정할 수 있습니다.

순위 모델과 함께 GAM을 사용하는 방법에 대한 자세한 내용은 관련 연구 를 참조하십시오. TensorFlow Ranking 예제 코드 에서 이 기술의 샘플 구현을 시작할 수 있습니다.

분산 순위 지원

TensorFlow Ranking은 데이터 처리, 모델 구축, 평가 및 프로덕션 배포를 포함하여 종단 간 대규모 순위 시스템을 구축하도록 설계되었습니다. 이기종 조밀하고 희소한 기능을 처리하고 수백만 개의 데이터 포인트까지 확장할 수 있으며 대규모 순위 응용 프로그램에 대한 분산 교육 을 지원하도록 설계되었습니다.

TensorFlow Ranking 클래스 다이어그램
그림 3 : 분산 처리를 지원하기 위한 TensorFlow Ranking 클래스의 다이어그램. 녹색 모듈은 순위 모델에 맞게 사용자 지정할 수 있습니다.

라이브러리는 최적화된 순위 파이프라인 아키텍처를 제공하여 반복적인 상용구 코드를 방지하고 순위 모델 교육에서 제공에 이르기까지 적용할 수 있는 분산 솔루션을 만듭니다. 순위 파이프라인은 MirroredStrategy , TPUStrategy , MultiWorkerMirroredStrategyParameterServerStrategy 를 포함한 대부분의 TensorFlow 분산 전략 을 지원합니다. 순위 파이프라인은 여러 입력 서명 을 지원하는 tf.saved_model 형식으로 훈련된 순위 모델을 내보낼 수 있습니다. 또한 순위 파이프라인은 TensorBoard 데이터 시각화 및 장기 실행의 실패로부터 복구하는 데 도움이 되는 BackupAndRestore 지원을 포함하여 유용한 콜백을 제공합니다. 훈련 작업.

순위 라이브러리는 모델 빌더, 데이터 빌더 및 하이퍼파라미터를 입력으로 사용하는 tfr.keras.pipeline 클래스 세트를 제공하여 분산 교육 구현을 구축하는 데 도움이 됩니다. Keras 기반 tfr.keras.ModelBuilder 클래스를 사용하면 분산 처리를 위한 모델을 생성할 수 있으며 확장 가능한 InputCreator, Preprocessor 및 Scorer 클래스와 함께 작동합니다.

TensorFlow Ranking 파이프라인 클래스는 또한 DatasetBuilder 와 함께 작동하여 하이퍼파라미터 를 통합할 수 있는 훈련 데이터를 설정합니다. 마지막으로 파이프라인 자체는 PipelineHparams 객체로 하이퍼파라미터 세트를 포함할 수 있습니다.

분산 순위 자습서를 사용하여 분산 순위 모델 구축을 시작하십시오.

,

TensorFlow Ranking 라이브러리는 최근 연구에서 확립된 접근 방식과 기술을 사용하여 기계 학습 모델의 순위를 지정하는 확장 가능한 학습을 ​​구축하는 데 도움이 됩니다. 순위 모델은 웹 페이지와 같은 유사한 항목의 목록을 사용하여 해당 항목의 최적화된 목록을 생성합니다(예: 관련성이 가장 낮은 페이지에 가장 관련성이 높음). 모델 순위 지정 학습은 검색, 질문 답변, 추천 시스템 및 대화 시스템에 적용됩니다. 이 라이브러리를 사용하면 Keras API 를 사용하여 애플리케이션에 대한 순위 모델 구축을 가속화할 수 있습니다. Ranking 라이브러리는 또한 분산 처리 전략을 사용하여 대규모 데이터 세트에서 효과적으로 작동하도록 모델 구현을 쉽게 확장할 수 있도록 하는 워크플로 유틸리티를 제공합니다.

이 개요는 이 라이브러리를 사용하여 모델의 순위를 지정하는 학습 개발에 대한 간략한 요약을 제공하고 라이브러리에서 지원하는 몇 가지 고급 기술을 소개하며 순위 지정 응용 프로그램을 위한 분산 처리를 지원하기 위해 제공되는 워크플로 유틸리티에 대해 설명합니다.

모델 순위 지정 학습 개발

TensorFlow Ranking 라이브러리를 사용하여 모델을 빌드하는 것은 다음과 같은 일반적인 단계를 따릅니다.

  1. Keras 레이어를 사용하여 점수 함수 지정( tf.keras.layers )
  2. tfr.keras.metrics.NDCGMetric 과 같이 평가에 사용할 메트릭을 정의하십시오.
  3. tfr.keras.losses.SoftmaxLoss 와 같은 손실 함수를 지정합니다.
  4. tf.keras.Model.compile() 을 사용하여 모델을 컴파일하고 데이터로 훈련시키십시오.

영화 추천 튜토리얼 은 이 라이브러리를 사용하여 순위 모델 학습을 구축하는 기본 사항을 안내합니다. 대규모 순위 모델 구축에 대한 자세한 내용은 분산 순위 지원 섹션을 확인하세요.

고급 순위 기술

TensorFlow Ranking 라이브러리는 Google 연구원과 엔지니어가 연구하고 구현한 고급 순위 기술 적용을 지원합니다. 다음 섹션에서는 이러한 기술 중 일부에 대한 개요와 응용 프로그램에서 이 기술을 사용하는 방법을 제공합니다.

BERT 목록 입력 순서

Ranking 라이브러리는 목록 입력의 순서를 최적화하기 위해 BERT 를 LTR 모델링과 결합하는 스코어링 아키텍처인 TFR-BERT의 구현을 제공합니다. 이 접근 방식의 예제 응용 프로그램으로 이 쿼리에 대한 응답으로 순위를 지정하려는 n개의 문서 목록과 쿼리를 고려하십시오. <query, document> 쌍에서 독립적으로 점수가 매겨진 BERT 표현을 학습하는 대신 LTR 모델은 순위 손실 을 적용하여 실제 레이블과 관련하여 전체 순위 목록의 유용성을 최대화하는 BERT 표현을 공동으로 학습합니다. 다음 그림은 이 기술을 보여줍니다.

TensorFlow 순위 BERT 다이어그램
그림 1 : TensorFlow Ranking BERT 아키텍처 다이어그램은 개별 <query,document> 쌍의 BERT 표현을 사용하여 n개의 문서 목록에 대한 공동 LTR 모델을 보여줍니다.

이 접근 방식은 <query, document> 튜플 목록으로 쿼리에 대한 응답으로 순위를 매기기 위해 문서 목록을 평면화합니다. 그런 다음 이러한 튜플은 BERT 사전 훈련된 언어 모델에 공급됩니다. 그러면 전체 문서 목록에 대한 풀링된 BERT 출력이 TensorFlow Ranking에서 사용할 수 있는 특수 순위 손실 중 하나로 공동으로 미세 조정됩니다.

이 아키텍처는 사전 훈련된 언어 모델 성능을 크게 개선하여 특히 여러 사전 훈련된 언어 모델이 결합된 경우 몇 가지 인기 있는 순위 작업에 대한 최첨단 성능을 생성 할 수 있습니다. 이 기술에 대한 자세한 내용은 관련 연구 를 참조하십시오. TensorFlow Ranking 예제 코드 에서 간단한 구현으로 시작할 수 있습니다.

신경 순위 일반화 가법 모델(GAM)

대출 적격성 평가, 광고 타겟팅 또는 치료 지침과 같은 일부 순위 시스템의 경우 투명성과 설명 가능성이 중요한 고려 사항입니다. 가중 요인을 잘 이해하는 일반화된 가법 모델 (GAM)을 적용하면 순위 모델을 더 설명하기 쉽고 해석하기 쉽게 할 수 있습니다.

GAM은 회귀 및 분류 작업으로 광범위하게 연구되었지만 순위 응용 프로그램에 GAM을 적용하는 방법은 명확하지 않습니다. 예를 들어, GAM은 단순히 목록의 각 개별 항목을 모델링하는 데 적용될 수 있지만 항목 상호 작용과 이러한 항목의 순위가 매겨지는 컨텍스트를 모두 모델링하는 것은 더 어려운 문제입니다. TensorFlow Ranking은 순위 문제를 위해 설계된 일반화 추가 모델의 확장인 신경 순위 GAM 의 구현을 제공합니다. GAM의 TensorFlow Ranking 구현 을 통해 모델의 기능에 특정 가중치를 추가할 수 있습니다.

다음 호텔 순위 시스템의 그림은 관련성, 가격 및 거리를 주요 순위 기능으로 사용합니다. 이 모델은 GAM 기술을 적용하여 사용자의 장치 컨텍스트에 따라 이러한 치수를 다르게 측정합니다. 예를 들어, 쿼리가 전화에서 온 경우 사용자가 가까운 호텔을 찾고 있다고 가정하면 거리에 더 많은 가중치가 부여됩니다.

순위 지정을 위한 일반화된 가법 모델
그림 2 : 지역 검색에 신경 순위 GAM을 적용합니다. 가격 또는 거리와 같은 각 입력 기능에 대해 하위 모델은 검사할 수 있는 하위 점수를 생성하여 투명성을 제공합니다. 사용자 장치 유형과 같은 컨텍스트 기능을 사용하여 하위 모델 점수의 가중치를 결정할 수 있습니다.

순위 모델과 함께 GAM을 사용하는 방법에 대한 자세한 내용은 관련 연구 를 참조하십시오. TensorFlow Ranking 예제 코드 에서 이 기술의 샘플 구현을 시작할 수 있습니다.

분산 순위 지원

TensorFlow Ranking은 데이터 처리, 모델 구축, 평가 및 프로덕션 배포를 포함하여 종단 간 대규모 순위 시스템을 구축하도록 설계되었습니다. 이기종 조밀하고 희소한 기능을 처리하고 수백만 개의 데이터 포인트까지 확장할 수 있으며 대규모 순위 응용 프로그램에 대한 분산 교육 을 지원하도록 설계되었습니다.

TensorFlow Ranking 클래스 다이어그램
그림 3 : 분산 처리를 지원하기 위한 TensorFlow Ranking 클래스의 다이어그램. 녹색 모듈은 순위 모델에 맞게 사용자 지정할 수 있습니다.

라이브러리는 최적화된 순위 파이프라인 아키텍처를 제공하여 반복적인 상용구 코드를 방지하고 순위 모델 교육에서 제공에 이르기까지 적용할 수 있는 분산 솔루션을 만듭니다. 순위 파이프라인은 MirroredStrategy , TPUStrategy , MultiWorkerMirroredStrategyParameterServerStrategy 를 포함한 대부분의 TensorFlow 분산 전략 을 지원합니다. 순위 파이프라인은 여러 입력 서명 을 지원하는 tf.saved_model 형식으로 훈련된 순위 모델을 내보낼 수 있습니다. 또한 순위 파이프라인은 TensorBoard 데이터 시각화 및 장기 실행의 실패로부터 복구하는 데 도움이 되는 BackupAndRestore 지원을 포함하여 유용한 콜백을 제공합니다. 훈련 작업.

순위 라이브러리는 모델 빌더, 데이터 빌더 및 하이퍼파라미터를 입력으로 사용하는 tfr.keras.pipeline 클래스 세트를 제공하여 분산 교육 구현을 구축하는 데 도움이 됩니다. Keras 기반 tfr.keras.ModelBuilder 클래스를 사용하면 분산 처리를 위한 모델을 생성할 수 있으며 확장 가능한 InputCreator, Preprocessor 및 Scorer 클래스와 함께 작동합니다.

TensorFlow Ranking 파이프라인 클래스는 또한 DatasetBuilder 와 함께 작동하여 하이퍼파라미터 를 통합할 수 있는 훈련 데이터를 설정합니다. 마지막으로 파이프라인 자체는 PipelineHparams 객체로 하이퍼파라미터 세트를 포함할 수 있습니다.

분산 순위 자습서를 사용하여 분산 순위 모델 구축을 시작하십시오.