가져오기

임베딩 모델이 있다고 가정해 보겠습니다. 사용자의 입장에서 어떤 상품을 추천할지 결정하세요.

서빙 시간에 특정 쿼리가 주어지면 다음 중 하나를 실행합니다.

  • 행렬 분해 모델의 경우 쿼리 (또는 사용자) 임베딩은 알려진 시스템은 간단히 그것을 찾기 위해 사용자 임베딩 행렬입니다.
  • DNN 모델의 경우 시스템이 쿼리 임베딩을 계산합니다. \(\psi(x)\) 특성 벡터 \(x\)에서 네트워크를 실행하여 제공할 수 있습니다.

쿼리 임베딩 \(q\)이 있으면 항목 임베딩을 검색합니다. \(V_j\) 비슷한 \(q\) 함수가 포함됩니다 최근접 이웃 문제입니다. 예를 들어 최상위 k를 반환하여 항목 수를 비교할 수 있습니다. \(s(q, V_j)\)

여러 영화와 사용자가 정렬된 2D 스펙트럼 이미지
아동부터 성인 영화, 예술 영화, 블록버스터 등 다양한 주제를 다룹니다. 사용자 1명은
2개의 근처 영화가 있습니다.

관련 상품 추천에도 비슷한 접근 방식을 사용할 수 있습니다. 예를 들어 사용자가 YouTube 동영상을 시청하고 있을 때 시스템은 먼저 다른 항목의 임베딩을 찾음 \(V_j\) 비슷한 값을 사용하는 것이 좋습니다.

대규모 검색

임베딩 공간에서 최근접 이웃을 계산하기 위해 시스템은 모든 잠재적 후보자를 철저히 채점할 수 있습니다. 포괄적인 스코어링 대규모 코퍼스의 경우 비용이 많이 들 수 있지만 다음과 같은 전략을 살펴보겠습니다.

  • 쿼리 임베딩이 정적으로 알려진 경우 시스템은 철저한 스코어링을 오프라인에서 실행할 수 있으며, 각 검색어에 대해 가장 실적이 높은 후보가 표시됩니다. 이는 Kubernetes가 관련 항목을 추천합니다.
  • 근사 최근접 이웃을 사용합니다.