행렬 분해 기반 추천 (matrix factorization)

컴퓨터과학·AI
한 줄 정의: 사용자와 항목의 평가 행렬을 두 개의 잠재요인 행렬 곱으로 쪼개 빈칸을 예측하는 기법입니다.

쉽게 풀면

사용자가 영화에 매긴 별점 표는 대부분이 빈칸입니다. 이 표를 ‘사용자의 취향 벡터’와 ‘영화의 특성 벡터’라는 두 개의 작은 표의 곱으로 근사하면, 두 벡터의 내적으로 빈칸의 점수를 추정할 수 있습니다. 여기서 취향과 특성의 각 축은 사람이 이름 붙인 것이 아니라 데이터에서 저절로 드러난 잠재요인입니다.

왜 중요한가

추천 시스템 연구의 판도를 바꾼 기법으로, 넷플릭스 대회를 계기로 표준 기법이 되었습니다. 희소한 상호작용 데이터에서도 적은 수의 잠재요인만으로 일반화된 예측을 낼 수 있어 계산과 저장이 모두 효율적입니다. 사용자와 항목을 같은 공간의 벡터로 표현한다는 아이디어는 이후 임베딩 기반 추천 모형의 뿌리가 되었습니다.

논문에서는 이렇게 쓰입니다

"잠재요인 수를 64로 설정한 행렬 분해 모형이 이웃 기반 협업 필터링보다 낮은 RMSE를 보였다."

이 방식이 기존의 비슷한 사용자 찾기 방식보다 평점 예측 오차가 작았다는 비교 결과입니다.

조금 더 깊게 보면

관측된 항목에 대해서만 제곱오차에 정규화 항을 더한 목적함수를 두고, 교대 최소제곱이나 확률적 경사 하강법으로 두 행렬을 번갈아 갱신합니다. 사용자 편향과 항목 편향을 따로 두는 확장, 암묵적 피드백을 신뢰도로 반영하는 확장, 시간에 따른 취향 변화를 넣는 확장이 널리 쓰입니다. 결측치를 0으로 채우고 전체를 분해하는 특이값분해와 달리 결측을 건너뛰고 최적화한다는 점이 핵심 차이입니다.

주의할 점

협업 필터링은 상호작용 기록으로 추천한다는 접근 전체를 가리키는 상위 개념이고, 행렬 분해는 그 안에서 잠재요인 모형을 쓰는 구체적 방법입니다. 새 사용자나 새 항목에는 잠재요인이 없어 예측이 불가능한 콜드 스타트 문제가 남습니다.

관련 용어