✅ 넷플릭스 프라이즈 대회에서 입증된 바와 같이, 행렬 분해(matrix factorization) 모델은 암시적 피드백, 시간적 요소, 신뢰 수준과 같은 추가 정보를 통합할 수 있어 상품 추천을 생성하는 데 있어 기존의 최인접 기법(nearest-neighbor techniques)보다 우수하다.
현대 소비자들은 선택의 폭이 넓다.
일반적으로 추천 시스템은 두 가지 전략 중 하나를 기반으로 한다.
콘텐츠 필터링 방식은 각 사용자 또는 제품에 대한 프로필을 생성하여 그 특성을 특성화하는 방식이다.
예) 영화의 경우 장르, 참여 배우, 흥행 인기도 등의 속성이 포함될 수 있다. 프로그램은 프로필을 통해 사용자와 제품을 매칭시킬 수 있다. 물론 콘텐츠 기반 전략은 수집하기 쉽지 않을 수 있는 외부 정보를 수집해야 한다.
예) 판도라닷컴에 사용되는 Music Genome Project가 있다. 여기에서는 전문적인 음악 분석가가 수백 가지의 음악적 특성을 기반으로 뮤직 게놈 프로젝트의 각 곡에 점수를 매긴다. 이러한 특성들은 노래의 음악적 특성뿐만 아니라 청취자의 음악적 선호도를 파악할 수 있는 지표가 된다.
콘텐츠 필터링의 대안은 명시적인 프로필을 만들지 않고도 과거 사용자 행동(예: 이전 거래 또는 제품 평점)에만 의존하는 방식이다. 이 접근 방식을 협업 필터링이라고 하며, 최초의 추천 시스템인 태피스트리 개발자가 만든 용어이다. 협업 필터링은 사용자 간의 관계와 제품 간의 상호 의존성을 분석하여 새로운 사용자-아이템 연관성을 식별한다.
1) 이웃 방법(neighborhood methods)
항목 간 또는 사용자 간의 관계를 계산하는 데 중점을 둔다.
그림1. 사용자 중심의 이웃 방법
조는 왼쪽에 있는 세 편의 영화를 좋아함 → 조를 예측하기 위해 해당 영화를 좋아하는 비슷한 사용자를 찾은 다음 이들이 좋아하는 다른 영화가 무엇인지 확인 → 세 사람 모두 라이언 일병 구하기를 좋아했기 때문에 첫 번째 추천 영화가 됨 → 두 명은 듄을 좋아했으므로 듄이 다음 추천 영화가 됨
2) 잠재 요인 모델(latent factor models)
평점 패턴에서 추론된 20~100개의 요인으로 항목과 사용자 모두를 특성화하여 평점을 설명하려는 대안적인 접근 방식
예) 영화의 경우, 코미디 vs 드라마, 액션의 정도, 어린이에 대한 방침 결정 등과 같은 명백한 관점 혹은 지수 뿐만 아니라, 캐릭터 발달의 깊이 또는 완전히 설명하기 어려운 관점 등과 같은 잘 정의되지 않은 부분들까지도 측정할 수 있다.
그림2. 잠재 요인 접근 방식의 단순화된 그림으로, 남성 vs 여성, 지향적인 사람 vs 현실 도피적인 사람 두 축을 사용하여 사용자와 영화를 모두 특징 짓는다.
2차원 상의 단순화된 예
예) 우리는 Gus가 Dumb and Dumber를 좋아하고 The Color Purple은 싫어하며, Braveheart는 중간정도 되리라고 예상해 볼 수 있다.
잠재 요인 모델(latent factor models)의 가장 성공적인 것은 matrix factorization이다.
matrix factorization
아이템의 평점 패턴으로부터 항목과 사용자 모두를 특징 짓고, 항목과 사용자간의 높은 일치는 추천으로 이어진다.
추천 시스템은 사용자를 나타내는 하나의 차원과 관심 있는 항목을 나타내는 다른 차원으로 행렬에 배치되는 다양한 유형의 입력 데이터에 의존한다.
가장 편리한 데이터
장점
Matrix factorization 모델은 사용자와 아이템을 모두 차원 f의 합동 latent factor 공간에 매핑하고 user-item의 상호작용을 이 공간에 내적하여 모델링 되도록 한다.
가장 큰 과제는 각 항목과 사용자를 요인 벡터 , ∈ 에 매핑을 계산하는 것이다. 추천 시스템이 이 매핑을 완료하면 위 방정식을 사용하여 사용자가 항목에 부여할 평점을 쉽게 예측할 수 있다.
이러한 모델은 특이값 분해(SVD)와 밀접한 관련이 있다.
이전 시스템에서는 누락된 평점을 채우고 평점 매트릭스를 밀도있게 만들기 위해 결측값 대체를 많이 했다.
요인 벡터( 및 )를 학습하기 위해 시스템은 다음 집합에서 정규화된 제곱 오차를 최소화한다.
시스템은 이전에 관찰된 평점을 맞춰 모델을 학습한다. 그러나 목표는 미래의 알지못하는 등급을 예측하는 방식으로 이전 등급을 일반화하는 것이다. 따라서 시스템은 규모에 패널티를 주는 학습된 매개변수를 정규화하여 관찰된 데이터에 과적합 되지 않도록 해야 한다. 상수 λ는 정규화의 정도를 제어, 일반적으로 교차 검증을 통해 결정된다.
방정식 2를 최소화하는 두 가지 접근 방식은 stochastic gradient descent과 alternating least squares (ALS)이다.
Simon Funk는 알고리즘이 훈련 세트의 모든 등급을 반복하는 방정식 2의 확률적 경사 하강 최적화를 대중화했다. 주어진 각 훈련 사례에 대해 시스템은 를 예측하고 관련 예측 오류를 계산한다.
그런 다음 gradient의 반대 방향으로 g에 비례하는 크기로 매개변수를 수정하여 결과를 산출한다:
널리 사용되는 이 방식은 구현이 용이하며 비교적 빠르게 실행된다. 그러나 경우에 따라 ALS 최적화를 사용하는 것이 유리할 수도 있다.
ALS 기법은 q를 고정하는 것과 p를 고정하는 것 사이를 번갈아 가며 사용한다. 모든 p가 고정되면 시스템은 최소제곱 문제를 해결하여 q를 다시 계산하고, 그 반대의 경우도 마찬가지다. 이렇게 하면 각 단계가 수렴할 때까지 방정식 2를 감소시킨다.
일반적으로 확률적 경사 하강이 ALS보다 쉽고 빠르지만, 적어도 두 가지 경우에는 ALS가 더 유리하다.
ALS는 이러한 경우를 효율적으로 처리할 수 있다.
협업 필터링에 대한 matrix factorization의 장점
평점을 전반적으로 높게 주는 사용자가 있고, 그로 인해 일부 항목이 다른 항목보다 높은 평점을 받는다. → 일부 제품은 다른 제품보다 더 나은(또는 더 나쁜) 것으로 인식된다.
시스템은 이러한 값 중 개별 사용자 또는 항목 편향으로 설명할 수 있는 부분을 식별하여 데이터의 실제 상호 작용 부분만 요인 모델링에 적용하려고 시도한다.
평점 와 관련된 편향에 대한 1차 근사치는 다음과 같다:
: 평점과 관련된 편향, : 전체 평균 평점(global average), : 평균으로부터의 아이템 편차(item bias), : 평균으로부터의 사용자 편차(user bias), : user-item interaction
영화 타이타닉에 대한 사용자 Joe의 등급에 대한 1차 추정치를 원한다고 가정:
regularization term 까지:
bias는 관측된 신호의 많은 부분을 포착하는 경향이 있기 때문에 정확한 모델링이 중요하다.
콜드 스타트 문제
해결 방법:
실제로 사용자의 명시적 등급 제공 의지와 상관없이 행동 정보를 수집할 수 있다.
예) 소매업체는 고객이 제공할 수 있는 등급 외에도 고객의 구매 또는 검색 내역을 사용하여 고객의 성향을 파악할 수 있다.
단순성을 위해 Boolean으로 암묵적 피드백이 있는 경우를 고려한다.
여기서 항목 i가 ∈ 와 연결된 새로운 항목 요인 집합이 필요하다. 따라서, 의 항목에 대한 선호도를 보인 사용자가 벡터에 의해 특징지어진다.
예를 들어, 합을 정규화하는 것은 도움이 된다.
다른 정보 소스는 알려진 사용자 속성(예: 인구 통계)이다. 사용자 가 성별, 연령 그룹, 우편 번호, 소득 수준 등을 설명할 수 있는 속성 집합 에 해당하는 Boolean 속성을 고려하면 고유한 요인 벡터 ∈ 는 사용자 관련 속성 집합을 통해 사용자를 설명하는 각 속성에 해당한다.
matrix factorization 모델은 사용자 표현이 향상된 모든 신호 소스를 통합해야 한다.
새로운 선택들이 등장하면서 제품에 대한 인식과 인기는 지속적으로 변화하고 있다. 마찬가지로, 고객의 성향도 바뀌기 때문에 고객의 취향을 재정의 하도록 유도한다. 따라서, 시스템은 사용자-항목 상호 작용의 동적이고 시간이 흐르는 특성을 반영하는 시간적 효과를 설명해야 한다. matrix factorization 접근법은 시간적 효과를 모델링하면 정확도를 크게 향상시킬 수 있다.
1) 아이템의 인기가 시간이 지남에 따라 변할 수 있다는 사실
예) 영화는 배우의 등장과 같은 외부 사건에 의해 인기가 오르내릴 수 있다.
2) 시간이 지남에 따라 사용자가 기준 평점을 변경할 수 있다.
예) 영화에 평균적으로 4점을 부여하는 경향이 있던 사용자는 시간이 흐른 뒤에는 평균적으로 3점을 부여하도록 변할 수 있다.
3) 사용자는 시간이 지남에 따라 선호도가 바뀌므로 Temporal dynamics는 사용자 선호도에 영향을 미치고, 사용자와 항목 간의 상호 작용에도 영향을 미친다.
예) 심리 스릴러 장르의 팬은 1년 후 범죄 드라마의 팬이 될 수도 있다. 마찬가지로 인간은 특정 배우와 감독에 대한 인식이 바뀐다.
: item bias(trend) ⇒
: user bias(taste) ⇒
: user preference(taste) ⇒
모든 평점들이 동일한 신뢰도를 갖는 것이 아니다.
따라서 이 시스템은 "아마도 제품을 좋아할 것" 또는 "아마도 제품에 관심이 없을 것"이라고 명시하는 cruder binary 표현법을 사용한다. 이러한 경우 추정된 선호도와 함께 신뢰 스코어를 첨부하는 것이 가치 있다.
예) 신뢰 스코어는 사용자가 특정 쇼를 얼마나 시청했는지 또는 사용자가 특정 품목을 얼마나 자주 구입했는지와 같은 행동 빈도를 설명하는 사용 가능한 수치에서 비롯될 수 있다.
관측에 대한 신뢰:
덜 의미있는 관측에 더 적은 가중치를 부여, 반복적인 event에 가중치를 크게 부여
최종
2006년, 온라인 DVD 대여 회사인 넷플릭스는 추천인 시스템의 상태를 개선하기 위한 대회를 발표했다.
넷플릭스 알고리즘의 RMSE 성능을 10% 또는 그 이상 향상시킬 수 있는 첫 번째 팀은 100만 달러 상금을 받는다. 만약 어떤 팀도 10% 목표에 도달하지 못한다면, 넷플릭스는 매년 대회 후에 1등으로 그 팀에게 50,000 달러의 진행 상금을 준다.
지금까지 협업 필터링 연구를 위해 공개적으로 사용할 수 있는 유일한 데이터는 규모가 작았으므로 이 대회는 협력 필터링 분야에서 화제였다.
넷플릭스 사용자-영화 행렬을 인수분해(factorization)하면 영화 선호도를 예측하기 위한 가장 설명력이 좋은 차원을 발견할 수 있다. 우리는 행렬 분해에서 처음 몇 개의 가장 중요한 차원을 식별하고 이 새로운 공간에서 영화의 위치를 탐색할 수 있다.
그림 3은 넷플릭스 데이터 행렬 인수분해의 처음 두 요인을 보여주며, 영화는 요소 벡터에 따라 배치된다. 영화를 잘 아는 사람은 잠재 요소에서 명확한 의미를 볼 수 있다.
사진 3. 넷플릭스 상금 데이터의 행렬 분해에서 처음 두 벡터. 선택된 영화는 2차원의 요인 벡터를 기반으로 적절한 위치에 배치된다. 줄거리는 강력한 여성 주연의 영화 무리, 사교성 유머, 기발한 독립 영화를 포함하여 뚜렷한 장르를 보여준다.
첫 번째 요소 벡터(x축)는 한쪽에는 남성 또는 청소년 관객(Half Baked, Freddy vs Jason)을 겨냥한 저급 코미디 및 공포 영화가 있고, 다른 한쪽에는 serious undertones과 여성 주연(Sophie's Choice, Moonstruck)이 이끄는 드라마 또는 코미디가 있다.
두 번째 요인화 축(y축)에는 독립적이고 비평가들의 호평을 받은 기발한 영화들(Punch-Drunk Love, I Heart Huckabees)이 상단에, 그리고 하단에는 주류 공식 영화들(Armageddon, Runaway Bride)이 있다.
이 경계들 사이에는 흥미로운 점들이 있다. 왼쪽 상단에는 indie와 lowbrow가 만나는 '킬 빌(Kill Bill)'과 '내추럴 본 킬러(Natural Born Killers)'가 있는데, 둘 다 폭력적인 주제를 연기하는 예술 영화이다. 오른쪽 하단에는 여성 주도의 진지한 영화들인 사운드 오브 뮤직(The Sound of Music)이 있다. 그리고 중간에 있는 것은 모든 종류의 사람들에게 매력적인 "오즈의 마법사"이다.
서로 이웃한 일부 영화는 일반적으로 같이 놓이지 않는다. 예를 들어 Annie Hall과 and Citizen Kane이 옆에 있는데 스타일적으로는 매우 다르지만 유명 감독들이 높이 평가하는 고전 영화라는 공통점이 많다. 실제로 인수분해(factorization)의 세 번째 차원은 이 두 가지를 분리한다.
인수분해를 위해 여러 가지 다양한 구현과 매개변수화를 시도했다. 그림 4는 factorization의 성능뿐만 아니라 다양한 모델과 매개변수 수가 RMSE에 어떤 영향을 미치는지 보여준다.
그림 4. Matrix factorization 모델의 정확도. 파라미터의 차원이 증가할수록 정확도가 좋아지고, 설명이 더 명확한 매개 변수 세트를 포함할수록 정확하다.
즉, 파라미터의 차원이 증가할수록 정확도가 좋아지고, 설명이 더 명확한 매개 변수 세트를 포함할수록 정확하다.
Matrix factorization 기술은 협업 필터링 기법 내에서 유명한 방법론이 되었다.