후보 생성 개요

후보 생성은 추천의 첫 번째 단계입니다. 쿼리가 주어지면 시스템은 관련 후보 집합을 생성합니다. 다음 표는 두 가지의 일반적인 후보 생성 방법을 보여줍니다.

유형정의
콘텐츠 기반 필터링 항목 간 유사성을 사용하여 사용자가 좋아하는 항목과 유사한 항목을 추천합니다. 사용자 A가 귀여운 고양이 동영상을 2개 시청하면 시스템은 사용자에게 귀여운 동물 동영상을 추천할 수 있습니다.
협업 필터링 쿼리와 항목 간 유사성을 동시에 사용하여 권장사항을 제공합니다. 사용자 A가 사용자 B와 비슷하고 사용자 B가 동영상 1을 좋아하면 사용자 A가 동영상 1과 유사한 동영상을 보지 못했더라도 시스템에서 사용자 1에게 동영상 1을 추천할 수 있습니다.

임베딩 공간

콘텐츠 기반 및 협업 필터링 모두 각 항목과 각 쿼리(또는 컨텍스트)를 공통 임베딩 공간\(E = \mathbb R^d\)의 임베딩 벡터에 매핑합니다. 일반적으로 임베딩 공간은 저차원이고(즉, \(d\) 코퍼스 크기보다 훨씬 작음) 항목 또는 쿼리 세트의 일부 잠재 구조를 캡처합니다. 보통 동일한 사용자가 시청하는 YouTube 동영상 같은 유사한 항목은 임베딩 공간에서 서로 가깝게 됩니다. '닫기'라는 개념은 유사성 척도로 정의됩니다.

유사성 측정

유사성 측정은 \(s : E \times E \to \mathbb R\) 임베딩을 취하여 유사성을 측정하는 스칼라를 반환하는 함수입니다. 후보 임베딩에 다음과 같이 임베딩을 사용할 수 있습니다. 쿼리 임베딩 \(q \in E\)이 주어지면 시스템은 \(q\)에 가까운 항목 임베딩(즉, 유사성이 높은 임베딩)을 찾습니다. \(s(q, x)\)

유사성의 정도를 판단하기 위해 대부분의 추천 시스템은 다음 중 하나 이상을 사용합니다.

  • 코사인
  • 내적
  • 유클리드 거리

코사인

두 벡터 간 각도의 코사인입니다. \(s(q, x) = \cos(q, x)\)

점 제품

두 벡터의 내적은\(s(q, x) = \langle q, x \rangle = \sum_{i = 1}^d q_i x_i\)입니다. 이 값은 \(s(q, x) = \|x\| \|q\| \cos(q, x)\) (각도의 코사인에 규범의 곱을 곱한 값)로도 결정됩니다. 따라서 임베딩이 정규화되면 도-곱과 코사인이 일치하게 됩니다.

유클리드 거리

유클리드 공간의 일반적인 거리인 \(s(q, x) = \|q - x\| = \left[ \sum_{i = 1}^d (q_i - x_i)^2\right]^{\frac{1}{2}}\)입니다. 거리가 짧을수록 유사성이 높아집니다. 임베딩이 정규화되면 유클리드 제곱 거리는 상수에서 곱과 코사인과 일치합니다. 이 경우에는 \(\frac{1}{2}\|q - x\|^2 = 1 - \langle q, x \rangle\)입니다.

쿼리 임베딩과 세 개의 후보 항목이 포함된 2차원 임베딩 공간을 보여주는 이미지

유사성 측정 비교

오른쪽 그림의 예를 참고하세요. 검은색 벡터는 쿼리 임베딩을 보여줍니다. 다른 세 가지 임베딩 벡터 (항목 A, 항목 B, 항목 C)는 후보 항목을 나타냅니다. 사용된 유사성 척도에 따라 항목의 순위가 다를 수 있습니다.

이미지를 사용하여 세 가지 유사성 측정법인 코사인, 내적, 유클리드 거리를 모두 사용하여 항목 순위를 결정하세요.

어떤 유사성 측정을 선택해야 할까요?

내적과 비교했을 때 내적은 유사성은 임베딩의 표준에 민감합니다. 즉, 임베딩의 표준이 클수록 유사성이 높아지고 (선각이 있는 항목의 경우) 항목이 추천될 가능성이 높아집니다. 이는 다음과 같은 권장사항에 영향을 줄 수 있습니다.

  • 학습 세트에 매우 자주 표시되는 항목 (예: 인기 있는 YouTube 동영상)에는 규범이 큰 임베딩이 포함된 경향이 있습니다. 인기도 정보를 캡처하는 것이 바람직하다면 내적을 선호합니다. 하지만 주의하지 않으면 인기 항목이 추천의 대부분을 차지할 수도 있습니다. 실제로는 항목의 표준에 덜 강조되는 유사성 척도의 다른 변형을 사용할 수 있습니다. 예를 들어\(s(q, x) = \|q\|^\alpha \|x\|^\alpha \cos(q, x)\) 의 경우 \(\alpha \in (0, 1)\)을 정의합니다.

  • 매우 드물게 표시되는 항목은 학습 중에 자주 업데이트되지 않을 수 있습니다. 따라서 대규모 기준으로 초기화되는 경우 시스템에서 더 관련성 높은 항목보다 드문 항목을 추천할 수 있습니다. 이러한 문제를 방지하려면 초기화에 주의하고 적절한 정규화를 사용하세요. 첫 번째 실습에서 이 문제를 자세히 설명하겠습니다.