콘텐츠 기반 필터링의 몇 가지 제한사항을 해결하기 위해 협업 필터링은 사용자와 항목 간의 유사성을 동시에 사용하여 권장사항을 제공합니다. 이로 인해 갑작스러운 추천이 발생할 수 있습니다. 즉, 협업 필터링 모델은 유사한 사용자 B의 관심분야를 기반으로 사용자 A에 항목을 추천할 수 있습니다. 또한 특성을 수동으로 엔지니어링하지 않고도 임베딩을 자동으로 학습할 수 있습니다.
영화 추천 예시
학습 데이터가 피드백 행렬로 구성된 영화 추천 시스템을 예로 들어 보겠습니다.
- 각 행은 사용자를 나타냅니다.
- 각 열은 항목 (영화)을 나타냅니다.
영화에 관한 피드백은 다음 두 가지 카테고리 중 하나에 속합니다.
- 명시적: 사용자는 평점 평점을 통해 특정 영화가 마음에 들었던 정도를 지정합니다.
- 암시적: 사용자가 영화를 시청하면 시스템은 사용자가 관심이 있다고 추론합니다.
단순화하기 위해 피드백 행렬이 바이너리라고 가정합니다. 즉, 값이 1이면 영화에 대한 관심이 있음을 나타냅니다.
사용자가 홈페이지를 방문하면 시스템은 다음 두 가지 모두를 기준으로 영화를 추천해야 합니다.
- 사용자가 과거에 좋아하는 영화와의 유사성
- 비슷한 사용자가 좋아하는 영화
이해를 돕기 위해 다음 표에 설명된 영화에 사용할 특성을 수동으로 엔지니어링하겠습니다.
영화 | 평점 | 설명 |
---|---|---|
다크 나이트 라이즈 | 13세 미만 부모 동반가 | 배트맨이 DC 코믹스 유니버스를 배경으로 한 다크 나이트의 속편에서 고담시의 핵폭발을 막기 위해 애쓰고 있습니다. |
해리 포터와 마법사의 돌 | PG | 고아가 된 소년은 자신이 마법사이며 호그와트 마법학교에 입학하여 사악한 볼드모트 경을 상대로 첫 전투를 벌입니다. |
슈렉 | PG | 사랑스러운 도깨비와 당나귀가 용에 의해 성에 갇힌 피오나 공주를 구하기 위한 여정을 시작했습니다. |
벨빌의 세 쌍둥이 | 13세 미만 부모 동반가 | 자전거를 탄 챔피언이 투르 드 프랑스에서 납치당하자 그의 할머니와 과체중이 강아지에게 와이어를 구하기 위해 떠오르는 재즈 가수 3명의 도움을 받아 해외로 들어갑니다. |
메멘토 | R | 기억 상실증 환자가 자신의 몸에 단서를 채워서 아내의 살인 사건을 해결하려고 합니다. |
1D 임베딩
\([-1, 1]\) 에서 영화가 아동용 (음수 값)인지 성인 (양수 값)인지 나타내는 스칼라를 각 영화에 할당한다고 가정해 보겠습니다. 또한 \([-1, 1]\) 에서 각 사용자가 아동 영화에 대한 관심(-1에 가까움) 또는 성인 영화 (+1에 가까움)를 설명하는 스칼라를 할당한다고 가정해 보겠습니다. 사용자가 좋아할 만한 영화의 경우 영화 임베딩과 사용자 임베딩의 곱이 더 높아야 합니다 (1에 가까움).
아래 다이어그램에서 각 체크표시는 특정 사용자가 시청한 영화를 식별합니다. 세 번째 및 네 번째 사용자는 이 기능에 관해 잘 설명된 환경설정을 갖고 있습니다. 세 번째 사용자는 아동을 위한 영화를 선호하고 네 번째 사용자는 성인을 위한 영화를 선호합니다. 하지만 첫 번째 및 두 번째 사용자 선호는 이 기능만으로는 잘 설명되지 않습니다.
2D 임베딩
한 가지 기능만으로는 모든 사용자의 선호도를 설명할 수 없었습니다. 이 문제를 극복하기 위해 두 번째 기능(각 영화가 블록버스터 또는 예술 영화 중 어느 정도인지)을 추가합니다. 이제 두 번째 기능을 사용하면 각 영화를 다음과 같은 2차원 임베딩으로 나타낼 수 있습니다.
피드백 행렬을 가장 잘 설명하기 위해 같은 임베딩 공간에 사용자를 다시 배치합니다. 각 (사용자, 항목) 쌍의 경우 사용자 임베딩의 곱과 항목 임베딩이 사용자가 영화를 시청할 때 1에 가깝고 그 외의 경우에는 0에 가깝길 원합니다.
이 예에서는 임베딩을 직접 엔지니어링했습니다. 실무에서는 임베딩이 협업 필터링 모델의 힘인 자동으로 학습될 수 있습니다. 다음 두 섹션에서는 이러한 임베딩을 학습하기 위한 다양한 모델과 이를 학습하는 방법을 설명합니다.
이 접근 방식의 공동작업 특성은 모델이 임베딩을 학습할 때 분명합니다. 영화의 임베딩 벡터가 고정되어 있다고 가정해 보겠습니다. 그러면 모델이 사용자의 선호를 가장 잘 설명하는 임베딩 벡터를 학습할 수 있습니다. 따라서 비슷한 선호도를 가진 사용자의 임베딩이 서로 가깝습니다. 마찬가지로 사용자의 임베딩이 고정되어 있다면 영화 임베딩을 학습하여 피드백 매트릭스를 가장 효과적으로 설명할 수 있습니다. 따라서 비슷한 사용자가 좋아하는 영화의 임베딩이 임베딩 공간에서 닫힙니다.