본문 바로가기
IT 기록/추천 시스템

#3 추천시스템 - 콘텐츠 기반 필터링(Content-based Filtering)

by Lazy Quant 2020. 2. 28.
반응형

[이전 글]#2 추천 시스템 - 후보 생성(Candidate Generation)


1.콘텐츠 기반 필터링(Content-based Filtering) 개요

 콘텐츠 기반 필터링은 Item의 Feature를 사용한다. 사용자의 이전 행동(클릭, 시청, 구매 등) 또는 명시적 피드백(평점, 좋아요 등)을 기반으로 사용자가 좋아하는 것과 유사한 다른 항목을 추천한다.

 

 콘텐츠 기반 필터링을 시연하기 위해 Google Play 스토어의 일부 기능을 직접 설계하고 도출해보겠다. 다음 그림은 각 행이 앱을 나타내고 각 열이 Feature를 나타내는 Feature 매트릭스를 나타낸다. Feature에는 분야(예 : 교육, 캐주얼, 건강), 앱 게시자 및 기타 여러 가지가 포함될 수 있다. 단순화하기 위해 이 Feature 매트릭스가 이진이라고 가정한다. 0이 아닌 값은 앱에 해당 Feature를 가지고 있음을 의미한다.

 

 

 또한 동일한 Feature 공간에 사용자를 나타낸다(그림의 마지막 행). 사용자 관련 Feature 중 일부는 사용자가 명시적으로 제공할 수 있다. 예를 들어, 사용자는 프로필에서 "교육 앱"을 선택할 수 있다. 다른 Feature들은 사용자가 이전에 설치 한 앱으로 암시적인 피드백에 해당한다. 예를 들어, 사용자는 Science R Us에서 게시한 다른 앱을 설치했다.

 

  Model은 이 사용자와 관련된 항목을 추천해야 한다. 이렇게 하려면 먼저 어떤 유사성 측정 함수를 사용할지 선택해야 한다(예 : 내적(Dot Product) 등). 그런 다음이 유사성 측정 함수에 따라 각 후보 항목에 점수를 매기도록 시스템을 설정해야 한다. Model은 다른 사용자에 대한 정보를 사용하지 않았으므로, 추천 사항은 이 사용자에게만 해당된다.


2. 유사도 측정법으로 내적(Dot Product)를 사용

 사용자 임베딩 $x$과 앱 임베딩 $y$가 모두 이진 벡터라고 가정해보자. $\langle x, y\rangle= \sum_{i=1}^{d}x_iy_i$이기 때문에, $x$와 $y$에 나타난 모든 Feature를 더하면 1이 된다. 다시 말해, $\langle x, y\rangle$는 두 벡터에서 동시에 활성화되는 Feature의 수다. 높은 내적은 더 공통적인 특징을 나타내므로, 더 높은 유사성을 나타낸다.

 

 앞의 앱 문제에서 각 앱의 내적을 계산해서 추천한다면, 어떤 앱을 추천 해야할까?

1.TimeWastr가 게시한 Casual 앱

2.Healthcare가 게시한 Health 앱

3.Science R Us가 게시한 Educational 앱

더보기

정답은 3번

1.TimeWastr가 게시한 Casual 앱

2.Healthcare가 게시한 Health 앱

3.Science R Us가 게시한 Educational 앱


3.콘텐츠 기반 필터링의 장단점

 - 장점

 추천 사항은 이 사용자에게만 해당되므로 Model은 다른 사용자에 대한 데이터가 필요하지 않다. 이를 통해 많은 수의 사용자로 쉽게 확장 할 수 있습니다. 또한 이 모델은 사용자의 특정 관심사를 포착하고, 다른 사용자가 거의 관심을 갖지 않는 틈새 상품을 추천할 수 있다.

 

 - 단점

 Item의 Feature를 표현하기 위해 어느정도 수작업으로 설계하는 방식이 필요하다. 그러기 위해서는 많은 도메인 지식이 필요하다. Model의 성능은 Feature가 어떻게 설계되었느냐에 따라 크게 달라질 수 있다. Model은 사용자의 기존 관심사를 기반으로 한 추천 사항만 만들 수 있다. 다시 말해 이 Model은 사용자의 기존 관심사를 확장하는 능력에는 한계가 있다.


[출처] 구글 머신러닝 추천시스템


공감댓글, 그리고 공유는 큰 힘이 됩니다 : )

반응형

댓글