협업 필터링

콘텐츠 기반 필터링의 한계를 해결하기 위해 협업 필터링에서는 사용자와 항목을 동시에 사용하여 추천을 제공합니다. 이렇게 하면 뜻밖의 추천 즉, 협업 필터링을 통한 모델은 사용자의 관심분야를 바탕으로 사용자 A에게 항목을 유사한 사용자 B가 있다고 가정해 봅시다. 또한 임베딩을 학습하여 특성 추출에 의존하지 않고 자동으로 처리됩니다

영화 추천 예시

학습 데이터가 10억 개 이상의 피드백 매트릭스로 만들 수 있습니다

  • 각 행이 사용자를 나타냅니다.
  • 각 열은 항목 (영화)을 나타냅니다.

영화에 대한 의견은 두 카테고리 중 하나에 속합니다.

  • 음란한 가사: 사용자가 특정 영화를 좋아하는 정도를 지정합니다. 숫자 평점을 제공합니다.
  • 암시적: 사용자가 영화를 시청하면 시스템은 사용자가 관심을 보임

단순화하기 위해 피드백 행렬이 바이너리라고 가정합니다. 즉, 특정 값 1은 영화에 대한 관심을 나타냅니다.

사용자가 홈페이지를 방문하면 시스템이 영화를 추천해야 합니다. 다음 두 가지를 기반으로 합니다.

  • 사용자가 이전에 좋아요 표시한 영화와의 유사성
  • 비슷한 사용자가 좋아한 영화

이해를 돕기 위해 영화의 몇 가지 특성을 수작업으로 제작해 보겠습니다. 다음 표에 설명되어 있습니다.

영화 평점 설명
다크나이트 라이즈 PG-13 배트맨, 핵폭발로부터 고담시를 구하려 고군분투하다 인코더-디코더 아키텍처를 다크 나이트, DC에서 설정됨 만화의 세계.
해리 포터와 마법사의 돌 PG 고아가 된 소년이 마법사라는 사실을 깨닫고 학교에 등록한다 호그와트 학교 첫 전투를 벌이는 마법과 마법사 사악한 볼드모트 왕입니다.
슈렉 PG 사랑스러운 도깨비와 동료 당나귀가 임무에 나선다 피오나 공주를 구하기 위해 자신의 성에 용에게 갇혀 있습니다.
벨빌의 세 쌍둥이 PG-13 자전거 경주 선수 챔피언이 납치당하는 사건 투르 드 프랑스 할머니와 과체중인 강아지가 남편을 구하기 위해 과체중인 강아지를 재즈 가수 세 명의 도움을 받았죠.
메멘토 R 기억 상실증 환자, 아내의 살인을 해결하려고 애쓰다 알 수 있었습니다.

1D 임베딩

각 영화에 \([-1, 1]\) 의 스칼라를 할당한다고 가정해 보겠습니다. 아동용 영화인지 (음수 값) 또는 성인 (양수 값)인지를 나타냅니다. 또한 \([-1, 1]\) 의 각 사용자에게 특정 값을 설명하는 스칼라를 아동용 영화(-1에 가까울수록) 또는 성인에 대한 사용자의 관심 영화 (+1에 가까움)를 표시합니다. 영화 임베딩과 사용자의 곱 사용자가 예상하는 영화의 경우 임베딩이 더 높아야 합니다 (1에 가까움). 추가할 수 있습니다.

1차원 임베딩 공간을 따라 정렬된 여러 영화와 사용자를 보여주는 이미지 이 축을 따라 각 영화의 위치는 아동용 영화 (왼쪽)인지 성인 영화 (오른쪽)인지를 나타냅니다. 사용자의 위치는 아동 또는 성인 영화에 대한 관심을 나타냅니다.

아래 다이어그램에서 각 체크 표시는 특정 영화를 상영하는 사용자가 시청했습니다. 세 번째와 네 번째 사용자는 세 번째 사용자는 어린이용 영화를 선호한다고 네 번째 사용자는 성인용 영화를 선호합니다. 하지만 첫 번째와 두 번째 사용자 이 기능 하나로는 선호도를 잘 설명하지 못합니다.

행은 사용자에, 열은 영화에 해당하는 피드백 매트릭스 이미지입니다. 각 사용자와 각 영화는 앞의 그림에 설명된 것처럼 1차원 임베딩에 매핑되므로 두 임베딩의 곱이 피드백 행렬의 정답 값에 근사합니다.

2D 임베딩

기능 하나로는 모든 사용자의 선호도를 설명하기에 충분하지 않았습니다. 극복하기 위해 두 번째 특성을 추가하겠습니다. 즉, 각 영화가 블록버스터나 예술 영화 등을 예로 들 수 있습니다. 두 번째 특성으로 이제 각 영화를 다음과 같은 2차원 임베딩으로 변환합니다.

2차원 임베딩 공간에 배열된 여러 영화와 사용자를 보여주는 이미지 가로축을 따라 각 영화의 위치는 아동용 영화 (왼쪽)인지 성인 영화 (오른쪽)인지를 나타냅니다. 세로축을 따르는 위치를 통해 동영상이 블록버스터 영화 (위)인지 아니면 예술 영화 (아래)인지를 알 수 있습니다. 사용자의 위치는 각 카테고리에서의 관심분야를 반영합니다.

사용자를 동일한 임베딩 공간에 다시 배치하여 각 (사용자, 항목) 쌍에 대해 사용자 임베딩의 내적과 항목 임베딩의 내적을 사용자가 영화를 보았을 때 1이 되고 그렇지 않은 경우에는 0이 됩니다.

동일한 피드백 매트릭스의 이미지입니다. 이번에는 각 사용자와 각 영화가 이전 그림에서 설명한 것처럼 2차원 임베딩에 매핑됩니다. 이렇게 하면 두 임베딩의 내적이 피드백 행렬의 정답 값에 근사됩니다.

이 예시에서는 임베딩을 직접 엔지니어링했습니다. 실제로 임베딩은 자동으로 학습할 수 있으며, 이는 협업 필터링의 모델을 학습시키는 작업도 반복해야 합니다 다음 두 섹션에서는 인코더-디코더 아키텍처를 학습하기 위한 임베딩과 학습 방법을 알아봅니다.

이 접근 방식의 협업적 특성은 모델이 임베딩을 학습합니다 영화의 임베딩 벡터가 고정되어 있다고 가정해 보겠습니다. 그런 다음 모델은 임베딩 벡터를 학습하여 사용자가 임베딩 벡터를 학습하여 사용자의 선호사항을 반영합니다. 결과적으로 선호도가 비슷한 사용자의 임베딩은 가까워집니다. 마찬가지로 사용자에 대한 임베딩이 수정되면 피드백 행렬을 가장 잘 설명하는 영화 임베딩을 학습할 수 있습니다. 비슷한 사용자가 좋아하는 영화를 퍼간 동영상도 임베딩을 학습합니다.

이해도 확인

사용자가 최근에 쇼핑 앱을 추천했기 때문에 모델이 이 사용자에게 쇼핑 앱을 추천합니다. 유사한 앱을 설치했습니다. 이것은 어떤 필터링의 예인가요?
콘텐츠 기반 필터링
잘하셨습니다. 콘텐츠 기반 필터링은 다른 사용자를 확인하지 않습니다.
협업 필터링
협업 필터링은 다른 사용자를 고려합니다. Google은 한 명의 사용자에게만 관심이 있습니다.