후보 생성은 추천의 첫 번째 단계입니다. 쿼리가 주어지면 시스템에서 관련 후보 집합을 생성합니다. 다음 표에서는 일반적인 후보 생성 방법:
유형 | 정의 | 예 |
---|---|---|
콘텐츠 기반 필터링 | 항목 간 유사성을 사용하여 상품을 추천합니다. 사용자가 좋아하는 것과 비슷하다고 볼 수 있습니다. | 사용자 A가 귀여운 고양이 동영상 2개를 보면 시스템에서 귀여운 동물 동영상을 해당 사용자에게 추천할 수 있습니다. |
협업 필터링 | 쿼리와 항목의 동시 유사성을 사용하여 추천을 제공합니다. | 사용자 A가 사용자 B와 비슷하고 사용자 B가 동영상 1을 좋아한다면 시스템은 동영상 1을 사용자 A에게 추천할 수 있습니다 (사용자 A가 동영상 1과 유사한 모든 동영상을 시청한 사용자). |
임베딩 공간
콘텐츠 기반 필터링과 협업 필터링 모두 각 항목과 각 쿼리를 매핑합니다. 일반적인 임베딩 공간에서 임베딩 벡터로 변환 \(E = \mathbb R^d\)일반적으로 임베딩 공간은 저차원이지만 (즉, \(d\) 이 코퍼스 크기보다 훨씬 작음) 디코더에서 데이터를 캡처하고 항목 또는 검색어 집합의 잠재 구조를 가지고 있기 때문입니다 유사한 상품(예: YouTube) 평소에 같은 사용자가 보는 동영상은 임베딩 레이어입니다. '가까움'의 개념 유사성 측정으로 정의됩니다
유사성 측정
유사성 측정은 \(s : E \times E \to \mathbb R\) 모델의 는 임베딩 쌍을 취해 유사성을 측정하는 스칼라를 반환합니다. 임베딩은 다음과 같이 후보 생성에 사용할 수 있습니다. 쿼리 임베딩 \(q \in E\)을 선택하면 시스템이 항목 임베딩을 찾음 \(x \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}}\) 거리가 짧을수록 유사성이 높아집니다. 참고로 임베딩이 제곱한 유클리드 거리는 내적과 일치함 (및 코사인)을 상수로 전달할 수 있습니다 case \(\frac{1}{2}\|q - x\|^2 = 1 - \langle q, x \rangle\).
유사성 측정 비교
오른쪽 그림의 예를 생각해 보세요. 검은색 벡터는 쿼리 임베딩입니다. 다른 세 개의 임베딩 벡터 (항목 A, 항목 B, 항목 C) 조합 항목을 나타냅니다. 사용된 유사성 측정에 따라 항목 순위가 다를 수 있습니다
이미지를 사용하여 세 가지 코사인, 내적, 유클리드 거리로 구성됩니다.
유사성 측정항목은 무엇인가요?
코사인과 비교할 때 내적 유사성은 다음 질문에 민감합니다. 임베딩 표준입니다. 다시 말해서 표준 가중치의 표준이 커질수록 임베딩일수록 유사성이 더 높음 (예각을 갖는 항목의 경우) 추천될 가능성도 높아집니다 이는 권장사항:
학습 세트에 매우 자주 표시되는 항목 (예: 인기 있는 YouTube 동영상)은 규범이 큰 임베딩을 사용하는 경향이 있습니다. 인기도 정보를 캡처하는 것이 바람직하다면 내적을 선호합니다. 하지만 조심하지 않으면 인기 있는 항목이 추천의 대부분을 차지하게 될 수 있습니다. 실제로는 덜 강조하는 다른 유사성 측정값의 변형을 사용할 수 있음 가중치를 부여합니다. 예를 들어 \(s(q, x) = \|q\|^\alpha \|x\|^\alpha \cos(q, x)\) 일부 \(\alpha \in (0, 1)\).
매우 드물게 표시되는 항목은 Vertex AI Feature Store에서 제공되는 따라서 큰 표준으로 초기화되면 관련성이 높은 상품보다 희귀 상품을 추천할 수도 있습니다. 이를 방지하려면 임베딩 초기화에 주의를 기울이고 적절한 살펴보겠습니다. 첫 번째 연습에서 이 문제를 자세히 살펴보겠습니다.