Netflix와 같은 영화를 추천하기 위해 어떤 통계적 방법이 있습니까?


14

영화를 사용자에게 추천하기 위해 동적 모델을 구현하려고합니다. 추천은 사용자가 영화를 보거나 평가할 때마다 업데이트되어야합니다. 간단하게하기 위해 두 가지 요소를 고려할 생각입니다.

  • 사용자가 다른 영화의 과거 등급
  • 사용자가 특정 과거 영화를 본 시간

그러한 모델을 어떻게 설정하고, 학술 문헌에서 권장하는 것은 무엇입니까?

나는이 분야에서 새로운 사람이고 선형 회귀 모델이 매개 변수 추정에 불필요한 불확실성을 부과하지 않기 위해 복잡한 방법을 사용하지 않고 좋은 결과를 제공 할 수 있다고 추측하고 있습니다. 그러나 실제로 일반적으로 사용되는 기존의 방법이 있습니까?


3
나는 이것이 대답하기에 너무 광범위하다고 생각하지 않습니다. 예를 들어, 2 개의 상향식 답변이 있습니다.
gung-복원 Monica Monica

2
coursera의 Mining Massive Datasets와 무료 서적을 사용해보십시오!
Felipe Gerard

2
아마도 행렬 및 / 또는 텐서 인수 분해를 찾아보고 싶을 것입니다.
Marc Claesen

1
@ usεr11852 내 대답은 질문보다 광범위합니다.
shadowtalker

1
@ usεr11852, 질문 제목은 "어떤 통계적 방법이 있습니까?" 마지막 문장은 회귀 이외의 방법이 있는지 묻습니다. 아래 몇 가지 답변이 이러한 종류의 정보를 제공한다고 생각합니다.
gung-모니 티 복원

답변:


14

이것은 실제로 머신 러닝 분야에서 비교적 유명한 문제입니다. ~ 2006 년에 Netflix는 추천 시스템에 가장 합리적인 개선을 제공하는 알고리즘에 1 백만 달러를 제공했습니다. 수상한 솔루션의 이론은 소개 머신 러닝에 대한 이 Caltech 교과서 에서 간략하게 설명 합니다.

기본적으로 앙상블 학습 방법 이 사용되었습니다. 특히, 한 유형의 혼합 또는 적층 이 사용되었다. 이것은 사소하지는 않지만 직관적입니다. 서로 다른 통계적 접근 방식을 조화롭게 사용하는 직관을 이해하려면 같은 영화를 좋아하는 사람들이 다른 이유를 고려해야합니다. 즉 Joe는 80 년대 액션 영화를 좋아하기 때문에 Topgun을 좋아할 수 있고 Jane은 Kenny Loggins 사운드 트랙으로 영화를 좋아하기 때문에 Topgun을 좋아합니다. 따라서 두 시청자가 시청하고 영화를 높게 평가했다고해서 반드시 다른 영화를 좋아할 가능성은 없습니다. 예측 알고리즘은 이상적으로는 적어도 일부 용량에서 이러한 차이를 수용 할 수있을 것이다.

이렇게하면 솔루션 사운드가 매우 단순 해지지 만 경쟁 알고리즘의 균형을 잡고 각 사례에 가장 적합한 추측의 우선 순위를 정하는 것은 간단하지 않습니다. Netflix가 그러한 큰 현상금을 제공했다는 사실은 도전의 규모를 다소 분명하게 만들어야합니다.

기계 학습을 시작한 경우 위의 자료를 확인하면 관심 수준과 수학 배경에 따라 도움이 될 수 있습니다. 따라서 회귀는 아마도 양호하게 작동하지만 성능은 훨씬 향상됩니다.


2
Netflix 상금 +1 지적한 바와 같이,이상은이 도전이 얼마나 큰지를 보여주는 좋은 지표입니다.
Cort Ammon

11

이 문제의 절반은 무엇을 찾아야 하는지를 아는 것입니다.

태그를 인식하지 않고 추가했을 수도 있지만 실제로 권장 시스템 에 대한 정보를 찾고 있습니다 . 협업 필터링 으로 시작 하거나 해당 페이지에 인용 된 Ricci, Rokach 및 Shapira의 Recommender Systems Handbook 소개 를 시작하는 것이 좋습니다 .


나는 실제로 태그를 더 깊이 들여다 보았고 대부분 공동 필터링에 대한 예제를 보았습니다. 그 방법으로 가지고있는 문제는 개념을 이해하면 다른 사용자 입력에 의존한다는 것입니다. 한 사용자의 상황에서 다른 데이터가 없거나 선택적으로 다른 데이터가있는 방법을 더 찾고 있습니다. 다른 참고 문헌을 살펴보십시오.
JohnAndrews

1
@ JohnAndrews : ssdecontrol이 가장 관련성 높은 조언을 제공한다고 생각합니다. 추천 시스템 문헌을 조사해야합니다. 예를 들어 많은 기술이 관련되어 있습니다. NNMF , Funk SVD , 가장 가까운 이웃 분류기 등 다양한 변형이 있습니다. 결국 당신은 협업 필터링을 사용하고 싶지만 배경이 없이는 "다이빙"할 수 없습니다.
usεr11852

@JohnAndrews CrossValidated는 특히 태그로 검색하는 경우 특히 주제에 대해 배우기 시작 하기에 좋지 않은 곳 입니다. 대신 연결 한 참고 문헌을 살펴 보는 것은 어떻습니까? Wikipedia 통계 기사는 항상 신뢰할 만하지는 않지만 꽤 좋으며 많은 참고 문헌을 인용합니다.
shadowtalker

6

당신은 코 세라에 앤드류 응의 과정을 체크 아웃해야합니다 : https://www.coursera.org/learn/machine-learning 그것은 당신이 찾고있는 것으로 보인다 추천인 시스템을 구축에 대한 교훈이있다. 본질적으로 그것은 영화를 평가 한 사람들로부터 영화에 대한 합성 속성을 배우고 영화를 평가 / 시청하지 않은 사람들에 대한 추천을 예측하는 데 사용하는 선형 회귀의 한 형태입니다.


3
우리 사이트에 오신 것을 환영합니다! "베어"링크를 제공하는 것이 아니라 링크의 내용을 요약 한 정보를 포함 해 주셔서 감사합니다. 감사합니다.
Silverfish

4

에서 넷플릭스 도전 (2006 10월 - 2009 9월) 매우 큰 앙상블 (107 개 별도의 서브 모델은) 결국 $ 1M 대상을 수상하지만, 첫 번째 간단한 (비가 모여있을) 알고리즘 넷플 릭스 Cinematch을 이길 수 있습니다에 유익하다 벤치마킹은 일반화 된 (희소 행렬) SVD를 기반으로합니다. Cinematch를 꺾는 첫 번째 이정표는 WXYZConsulting이라는 팀이 경쟁을 시작한 지 6 일 만에 달성되었습니다.

SVD (Singular Value Decomposition)[user, movie][u, m]위치 (*) 에서 등급 (1-5 별) 이있는 2 차원 행렬로 시작 하여 중간 행렬이 정방 행렬 인 행렬로 분해되는 행렬 분해 알고리즘 입니다. 사용자와 영화 간의 잠재 상호 작용

이러한 잠재 요인 상호 작용을 각각 더 포함하거나 덜 포함하도록 정사각형 행렬 순위를 더 작거나 크게 만들 수 있습니다.

빠르고 효율적인 스파 스 SVD의 몇 가지 무료 소프트웨어 구현이 있습니다. 예를 들어 redsvd 또는 vowpal-wabbit를 사용하여 직접 작성하기 전에 시도해 볼 수 있습니다.

(*) 대부분의 사용자가 대부분의 영화를 평가하지 않았으므로이 항목의 대부분은 0입니다. 즉, 매트릭스가 매우 희박합니다.

참고 문헌 :


Netflix는 전에 무엇을 사용 했습니까?
jona

2
"Cinematch"라는 알고리즘은 공개되지는 않았지만 "수년에 걸쳐 다듬어 진 다양한 요소의 선형 조합"으로 설명되었습니다. Rating, ... etc.
arielf

정교한 답변에 감사드립니다. 그것에 파고들 것입니다. 선형 조합에 관해서는, 그 초과 매개 변수화의 큰 문제가 아닌가? 그것은 내가 선호하는 접근법 일 것입니다. 그러나 SVD는 유망한 것으로 들립니다.
JohnAndrews

일반화 오류 를 개선하는 요소 만 추가하면 문제가되지 않습니다 . 분명히, 당신은 필요한 자신감을 얻기 위해 보이지 않는 데이터에 대한 모든 추가를 테스트해야합니다.
arielf
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.