협업 필터링은 사용자와 아이템 간의 상호 상관 관계를 분석하여 새로운 사용자-아이템 관계를 찾아주는 것으로 사용자의 과거 경험과 행동 방식에 의존하여 추천하는 시스템이다. Domain Free 방식으로 관련 지식이 불필요하다는 장점이 있지만, 대표적인 한계점들이 다음과 같이 3가지 존재한다.
메모리 기반 협업 필터링은 Neighborhood Method: 최근접 이웃 기반 필터링이라고도 하는데, 아래와 같은 사용자-아이템 행렬에서 빈 행렬을 채우는 것, 즉 사용자가 아직 평가하지 않은 아이템을 예측하는 것이 목표이다.
유사도 행렬을 나타내면 유저 A와 B가 유사하다. 그러므로 다음과 같이 예측할 수 있다.
→ User A는 B 와 점수를 유사하게 평가했으므로, Item1에 대한 점수가 2라고 예측,
→ User B는 A 와 점수를 유사하게 평가했으므로, Item3에 대한 점수가 3이라고 예측.
유사도 행렬을 나타내면 아이템 1와 2가 동일한 유저에게 비슷한 평가를 받았으므로 유사하다.
그러므로 다음과 같이 예측할 수 있다.
→ User C의 item 2에 대한 평가는 유사한 아이템 1에 의해 3점 정도가 될 것이다.
머신러닝이나 데이터마이닝 방법으로 사용자-아이템의 숨겨진 특성(feature) 값을 계산하여 학습하여 예측 모델을 생성한다. 따라서 추천을 할 때 학습한 모델만 있으면 되기 때문에 확장성과 예측 속도가 빠르다는 장점이 있으나, 모델만 가지고 추천을 하기에 예측 정확도가 떨어질 수 있다. 구체적으로는 다음과 같은 머신러닝, 데이터마이닝 기법이 있다.
Regression
Clustering
Latent Factor Models (잠재요인 기반 협업 필터링)
가장 대중적인 알고리즘인 Matrix Factorization(MF)을 기반으로 사용하는 방식.
점수패턴에서 추론된 20-100개의 벡터로 아이템들과 사용자들을 모두 특성화하여 점수를 설명한다.
즉, 주어진 데이터로는 알 수 없는 사용자-아이템 간의 숨겨진 특성(패턴)을 찾기 위해 주어진 데이터를 사용자-잠재요인, 아이템-잠재요인으로 각각 분해하여 학습시킨다. 이때 잠재요인이 정확하게 무엇인지는 알 수 없지만, 사용자-아이템간의 연관성 있는 특성들이 될 것이라 기대한다.
하지만 수많은 아이템들과 사용자들의 특성을 나타낸 행렬은 크기가 큰 희소행렬의 형태로 나타난다. 그렇게 되면 특징을 파악하기 어렵고, 연산량도 방대해지고,,
그럴 때 필요한 것은?
Decision Tree
Bayesian Network
Neural CF
CF에 딥러닝을 적용한 모델인 Neural Collaborative Filtering
1) 추천시스템에 딥러닝에 적용된 이유
선형회귀나 의사결정트리 등 선형 함수로 구현되는 머신러닝 모델로 풀 수 없는 문제가 있다. 선형의 관계로 설명될 수 없는 데이터 간의 비선형 관계도 파악하기 위해 고안된 모델
2) 구조
input layer - User Latent 벡터와 item Latent 벡터를 붙여서 입력으로 넣음.
embedding layer - User 벡터와 item 벡터가 들어간다. 둘 다 원핫 벡터의 형태로 변환해서 들어가는데, 희소행렬을 그대로 넣지 않고 일종의 임베딩 벡터인 Latent 벡터로 줄여준다. 여기서 위에서 설명한 SVD, PCA 등의 차원 축소 기법을 적용한다.
neural CF layer - 딥러닝 중에서도 FNN 처럼 여러 개의 층을 구성하는 뉴럴 네트워크로, 선형 또는 비선형 활성함수를 사용할지 선택할 수 있다.
Output Layer - Neural CF Layer를 거쳐서 나온 최종 결과값에 시그모이드 비선형 활성함수를 적용해 결과 값이 0과 1 사이의 확률값으로 변환된다. 여기서 0.5를 기준으로 1과 0으로 다시 변환한다. 약간 로지스틱 회귀의 느낌이 난다. 그리고 마지막으로 정답 데이터를 모델에 제공해주며 지도학습을 수행한다.
Wide and Deep Learning
FM(Factorization Machine)
Deep FM(Factorization Machine)