Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Recommendation System

추천 시스템은 사용자가 원하는 항목을 예측하고 순위를 매깁니다. 협업 필터링 및 콘텐츠 기반 필터링, 파이프라인, 과제 및 코드를 다룹니다.

추천 시스템 또는 추천기는 제품, 동영상, 노래, 기사, 게시물 등 사용자가 원할 만한 항목을 예측하고 사용자별로 순위를 매기는 소프트웨어입니다. 별점과 같은 명시적 피드백뿐 아니라 훨씬 더 흔한 클릭, 시청 시간, 구매와 같은 암시적 피드백을 바탕으로 학습하므로, 머신러닝이 가장 널리 배포된 응용 분야 중 하나입니다. 두 가지 이정표가 이 분야를 형성했습니다. Amazon이 2003년에 발표한 항목 간 협업 필터링과 Netflix의 영화 평점 예측을 10% 개선한 팀에 100만 달러를 지급한 Netflix Prize(2006~2009)입니다.

추천 시스템의 작동 방식#

협업 필터링은 누가 무엇과 상호작용했는지에 관한 패턴만 사용합니다. 사용자 기반 방식은 이력이 비슷한 사용자를 찾고, 항목 기반 방식은 같은 사용자들이 좋아한 항목을 찾습니다. Netflix Prize 기간에 널리 알려진 행렬 분해는 사용자와 항목마다 벡터를 학습하며, 두 벡터의 내적을 통해 상호작용을 예측합니다. 콘텐츠 기반 필터링은 장르, 자연어 처리(NLP)로 처리한 텍스트, 이미지 임베딩과 같은 속성으로 항목을 표현하고 사용자가 이미 좋아한 항목과 유사한 항목을 추천합니다. 이 방식은 아직 상호작용이 없는 항목에도 적용할 수 있습니다. 하이브리드 시스템은 두 신호를 결합해 상호작용이 충분히 쌓일 때까지 콘텐츠 특성으로 새 항목을 배치할 수 있습니다.

다음 예제는 소규모 평점 행렬에 항목 기반 협업 필터링을 적용해, 영화별 평점 열 간의 코사인 유사도를 바탕으로 한 사용자가 아직 평가하지 않은 영화의 평점을 예측합니다.

import numpy as np

# Ratings from 4 users (rows) for 5 movies (columns); 0 means not rated
ratings = np.array(
    [
        [5, 4, 0, 1, 0],
        [4, 5, 1, 0, 1],
        [1, 0, 5, 4, 5],
        [0, 1, 4, 5, 0],
    ]
)

# Item-item cosine similarity between the movies' rating columns
norms = np.linalg.norm(ratings, axis=0)
item_sim = ratings.T @ ratings / np.outer(norms, norms)

# Predict user 3's rating of each movie as a similarity-weighted average of their own ratings
user = ratings[3]
rated = user > 0
scores = item_sim[:, rated] @ user[rated] / item_sim[:, rated].sum(axis=1)

for movie in np.flatnonzero(~rated):
    print(f"Movie {movie}: predicted rating {scores[movie]:.2f}")

마지막 행의 사용자 3은 영화 2와 3에 높은 점수를 주고 영화 1에 낮은 점수를 주었습니다. 따라서 영화 2와 3의 평점 패턴을 따르는 영화 4의 예측 평점은 4.10이고, 영화 1의 평점 패턴을 따르는 영화 0의 예측 평점은 2.09입니다. 시스템은 영화 4를 추천합니다.

딥러닝 추천 시스템은 이러한 표현을 엔드투엔드 방식으로 학습합니다. 투 타워 네트워크는 사용자와 항목을 별도로 임베딩하므로 후보 항목을 찾는 작업은 사용자 임베딩과 가장 가까운 항목 임베딩을 대상으로 하는 벡터 검색이 됩니다. 트랜스포머와 같은 시퀀스 모델은 사용자의 이력을 순서대로 읽어 다음 상호작용을 예측합니다.

다단계 파이프라인#

대규모 서비스는 요청마다 수백만 개 항목에 무거운 모델을 실행할 수 없으므로 단계별로 추천을 수행합니다. 후보 생성 또는 검색 단계에서는 협업 필터링이나 임베딩 검색과 같은 저렴한 신호로 카탈로그를 수백 개 항목으로 좁힙니다. 그런 다음 순위 모델이 풍부한 특성으로 각 후보의 클릭, 시청 또는 구매 확률을 평가하고, 마지막 재순위 단계에서 다양성, 최신성, 비즈니스 규칙을 반영합니다. YouTube는 2016년에 이 2단계 설계를 설명했습니다. 표시된 모든 추천은 다음 모델 학습에 사용되는 피드백도 생성하므로, 시스템은 과거의 자체 선택이 형성한 데이터로 학습합니다.

최근 시스템은 언어 모델처럼 순위 및 검색 모델을 확장합니다. 2024년 ICML에서 발표한 Meta의 생성형 추천 모델은 각 사용자의 행동을 시퀀스로 다루고 파라미터 수를 1조 5천억 개까지 확장했으며, 온라인 A/B 테스트에서 지표를 12.4% 개선했습니다.

시각적 추천#

패션, 가구, 미술품 카탈로그는 외관을 바탕으로 추천합니다. 따라서 “이와 비슷한 항목” 기능은 제품 사진의 이미지 임베딩을 비교합니다. “룩 전체 쇼핑” 기능은 먼저 객체 탐지를 사용해 장면 사진에서 각 항목을 잘라낸 다음, 카탈로그에서 시각적으로 유사한 제품을 검색합니다. 같은 검색 기능을 학습 데이터 탐색에도 활용할 수 있습니다. Ultralytics Platform의 유사한 이미지 찾기는 공개 및 팀 데이터셋에서 가장 가까운 이미지 최대 24개를 유사도 점수와 함께 보여주고, 데이터셋에 이미 있는 이미지는 건너뛰며, 모델이 검증 과정에서 가장 낮은 성능을 보인 이미지에서 검색을 시작할 수도 있습니다.

응용 분야#

  • 소매 및 전자상거래: 제품 페이지에는 “이 상품을 구매한 고객이 함께 구매한 상품” 목록과 검색 및 구매 이력을 바탕으로 구성된 개인 맞춤형 홈페이지가 표시됩니다.
  • 스트리밍 미디어: 동영상 및 음악 서비스는 시청 및 청취 이력을 바탕으로 콘텐츠 순위를 정하고 재생 목록을 생성하며, Netflix는 각 콘텐츠에 표시되는 이미지도 개인화합니다.
  • 소셜 피드 및 뉴스: 플랫폼은 예상 참여도를 바탕으로 게시물, 짧은 동영상, 기사의 순위를 정하며 사용자가 피드를 열 때마다 순위를 갱신합니다.
  • 패션: 시각적 유사성 검색은 사용자가 보거나 촬영한 항목의 스타일, 색상 또는 패턴과 어울리는 의류를 추천합니다.
  • 검색: 검색 엔진은 명시적인 질의에 답하지만, 추천기는 질의 없이 사용자가 원하는 항목을 예측합니다. 현대 시스템은 검색 및 순위 구성 요소를 공유합니다.
  • 벡터 검색 및 벡터 데이터베이스: 질의 임베딩과 가장 가까운 저장된 임베딩을 찾는 기능으로, 추천기가 검색에 사용하는 기본 구성 요소입니다.
  • 재순위 모델: 짧은 후보 목록의 점수를 더 정확하게 다시 계산하는 2단계 모델로, 추천 시스템의 순위 단계에 해당합니다.
  • 예측 모델링: 순위 단계는 상호작용 확률을 예측하는 모델이며, 전체 추천 시스템은 검색, 순서 지정, 피드백 루프도 처리합니다.

과제#

  • 콜드 스타트: 신규 사용자와 신규 항목에는 상호작용 이력이 없으므로 시스템은 인기도, 온보딩 질문 또는 콘텐츠 특성을 대안으로 사용합니다.
  • 희소성: 각 사용자는 대규모 카탈로그 중 극히 일부 항목과만 상호작용하므로 사용자-항목 행렬의 대부분이 비어 있습니다.
  • 인기도 편향 및 피드백 루프: 기록된 상호작용으로 학습하면 이미 자주 표시된 항목에 유리해져 사용자가 보는 항목의 범위가 좁아지고 필터 버블이 생길 수 있습니다.
  • 평가: 과거 데이터에 적용하는 precision@k 및 NDCG와 같은 오프라인 지표는 사용자가 새 추천을 실제로 어떻게 활용하는지 측정하는 온라인 A/B 테스트 결과와 일치하지 않는 경우가 많습니다.
  • 개인정보 보호: 상세한 행동 프로필은 개인정보이며, EU 및 기타 관할권의 데이터 보호법으로 보호됩니다.
  • 규제: EU 디지털 서비스법은 초대형 온라인 플랫폼과 검색 엔진이 각 추천 시스템에 대해 프로파일링에 기반하지 않는 옵션을 하나 이상 제공하도록 요구합니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요