추천 시스템
음식 주문, VOD, 오디오 스트리밍, 패션 등 추천 시스템은 오늘날 가장 많이 사용되는 여러 애플리케이션의 토대가 되고 있습니다. TensorFlow 생태계에서 제공하는 오픈소스 라이브러리와 도구로 즉시 프로덕션에서 사용할 수 있는 추천 시스템을 구축하는 방법을 살펴보세요.
추천 시스템은 사용자가 가장 원하는 콘텐츠를 제공함으로써 앱 내에서의 사용자 참여도를 높이고 사용자 경험의 질을 향상시킵니다. 최근 사용되는 추천자는 프로덕션 단계에서 지연 시간을 단축하기 위해 종종 여러 단계로 나눠지는 복잡한 시스템입니다. 검색, 순위 지정, 순위 지정 후 단계를 거치면서 대규모 후보 풀에서 관련성이 낮은 항목들이 점차 필터링되어 사라지며 사용자가 상호작용할 가능성이 가장 높은 옵션 목록이 최종적으로 표시됩니다.
TensorFlow 추천자를 사용해 개발해 보세요. 데이터 준비부터 배포까지 이르는 전반적인 추천자 시스템 개발 워크플로를 원활하게 수행하도록 지원하는 프레임워크로, 간편하게 사용할 수 있습니다.
모델 학습을 마무리했다면 모델을 프로덕션에 배포하여 최종 사용자에게 추천을 표시하세요. TensorFlow Serving은 우수한 추론을 위해 모델을 프로덕션화합니다. TensorFlow Serving은 머신러닝 모델의 처리량을 극대화하는 것을 목표로 하며, 분산된 서빙이 요구되는 대규모 추천 모델을 지원할 수 있습니다.
# Deploy the retrieval model with TensorFlow Serving docker run -t --rm -p 8501:8501 \ -v "RETRIEVAL/MODEL/PATH:/models/retrieval" \ -e MODEL_NAME=retrieval tensorflow/serving & # Retrieve top movies that user 42 may like curl -X POST -H "Content-Type: application/json" \ -d '{"instances":["42"]}' \ http://localhost:8501/v1/models/retrieval:predict # Output # { # "predictions":[ # { # "output_1": [2.032, 1.969, 1.813], # "output_2": ["movie1”, “movie2”, “movie3”] # } # ] # } # Deploy the ranking model with TensorFlow Serving docker run -t --rm -p 8501:8501 \ -v "RANKING/MODEL/PATH:/models/ranking" \ -e MODEL_NAME=ranking tensorflow/serving & # Get the prediction score for user 42 and movie 3 curl -X POST -H "Content-Type: application/json" \ -d '{"instances":[{"user_id":"42", "movie_title":"movie3"}]}' \ http://localhost:8501/v1/models/ranking:predict # Output: # {"predictions": [[3.66357923]]}
추천 엔진의 검색 및 순위 책정 단계 개선하기
대규모 추천 시스템은 검색 및 순위 책정 단계에서 효과적이고 효율적인 방식으로 수백만 개의 후보 중에서 가장 관련성이 높은 항목이 무엇인지 판단해야 합니다. ScaNN 라이브러리의 최첨단 최근접 이웃(ANN) 탐색 알고리즘 및 TensorFlow 순위 지정 라이브러리의 순위 지정 학습(LTR) 기법을 사용해 TensorFlow 추천자를 보완하고 추천을 개선하세요.
ScaNN은 대규모 벡터 유사성 검색을 위한 라이브러리입니다. ScaNN은 최상위 후보를 신속하게 검색하기 위하여 비대칭 해싱 및 비등방성 양자화와 같은 최첨단 ANN 기법을 활용합니다.
TensorFlow Ranking은 확장 가능한 뉴런 LTR 모델 개발을 위한 라이브러리입니다. 순위 지정의 효용을 극대화하기 위해 후보 항목의 순위를 매길 수 있는 추가 기능을 제공합니다.
모델 학습과 추론을 위한 대규모 임베딩 최적화
임베딩 검색 작업은 대규모 추천 시스템에서 매우 중요한 구성요소입니다. 하드웨어 가속과 동적 임베딩 기술을 활용해 대규모 임베딩 테이블에서 흔히 발생하는 성능 병목 현상을 극복하세요.
TPUEmbedding 레이어 API는 Tensor Processing Unit(TPU)에서 대규모 임베딩 테이블의 원활한 학습과 서빙을 지원합니다.
사용자 개인 정보 보호하기
전통적인 추천 엔진은 사용자 상호작용 로그 수집 및 원시 사용자 활동에 기반한 추천 모델 학습에 의존합니다. 책임감 있는 AI 개발 관행을 활용하여 사용자 데이터를 안전하게 보호하세요.
TensorFlow Lite는 사용자의 모든 데이터를 휴대기기 외부로 반출하지 않으면서도 짧은 지연 시간과 우수한 품질의 추천을 제공하는 온디바이스 추천 솔루션입니다.
TensorFlow Federated는 탈중앙화된 데이터에 대한 제휴 학습 및 기타 계산을 위한 프레임워크입니다. Federated 재구성을 통해 제휴 학습 설정에서 행렬 분해를 사용할 수 있으며 추천을 제공할 때 사용자 개인 정보를 보다 강력하게 보호합니다.
고급 기법을 사용하여 보다 정교한 추천자 만들기
전통적인 협업 필터링 모델이 업계에서 여전히 널리 사용되고 있지만, 강화 학습과 그래프 신경망(GNN)과 같은 최첨단 기법을 도입해 추천 시스템을 개발하고자 하는 개발자도 점점 늘어나고 있습니다.
TensorFlow 에이전트 밴딧은 추천 엔진 설정에서 살펴보고 효과적으로 활용할 수 있는 종합적인 밴딧 알고리즘 라이브러리입니다.
TensorFlow GNN은 네트워크 구조를 기반으로 효율적인 항목 추천을 제공할 수 있으며 검색 및 순위 지정 모델과 함께 사용할 수 있는 라이브러리입니다.
최첨단 추천 모델 참고하기
잘 알려진 모델의 성능을 벤치마킹하거나 자체 추천 모델을 개발하려는 경우 NCF, DLRM, DCN v2와 같은 인기 모델의 공식 TensorFlow 구현을 통해 권장사항을 확인하세요.
교육 리소스
단계별 과정 및 동영상을 통해 추천 시스템을 개발하는 과정을 자세히 알아보세요.
실제 추천 시스템
다양한 업계에서 사용되는 애플리케이션 추천 시스템의 예시 및 우수사례를 살펴보세요.