Content-based Filtering

2020-08-25 — Written by jslee
#content-based-filtering#recommendation

content-based filtering은 item feature를 사용하여 이전 actions이나 explicit feedback을 기반으로 사용자가 좋아하는것과 유사한 다른 항목을 추천

Google Play 스토어의 일부 기능을 직접 설계해보자. 다음 그림은 각 행이 앱을 나타내고 각 열이 기능을 나타내는 feature matrix를 보여준다.

feature matrix 출처:https://developers.google.com/machine-learning/recommendation/content-based/basics
feature matrix 출처:https://developers.google.com/machine-learning/recommendation/content-based/basics

사용자를 같은 feature space에 표시가 가능하다. user-felated features 중 일부는 사용자가 명시적(explicit)으로 제공할 수 있다. (내가 어떤 서비스가 관심이 있는지 초기 선택이 필요하다.) 예를 들어서 사용자가 “Entertainment apps”를 선택했을때 다른 features는 이전에 설치된 앱에 따라 implicit 일 수 있다. 예를 들어 사용자가 Science R Us에서 게시 한 다른 앱을 설치

사용자가 선호했다고 말하진 않았지만 선호하는 앱에 따라 추정

모델은 사용자와 relevant items을 추천해야 한다. 이렇게 하려면 먼저 similarity metric (예:dot product)을 선택해야 한다. 그 다음 유사성 메트릭에 따라 각 후보 항목의 점수를 매기도록 시스템을 설정해야 한다. 모델이 다른 사용자에 대한 정보를 사용하지 않았으므로 권장 사항은 이 사용자에게만 해당이 된다.

Using Dot Product as a Similarity Measure

  • user embedding x binary vectors
  • app embedding y binary vectors
  • 두개의 dot product에서 common features가 많이 나타날수록 higher similarity를 의미한다.

Advantages & Disadvantages

  • Advantages

    • 특정 사용자에 대해서 추천하기 때문에, 다른 사용자의 데이터가 필요 없다. 사용자가 많아저도 scale 하기 쉽다.A
    • 특정 유저의 specific interests를 캡처하고, 다른 사용자가 거의 관심을 보이지 않는 틈새 항목을 추천할 수 있다.
  • Disadvantages

    • item의 feature representation은 어느 정도 hand-engineered으로 설계되었으므로 이 기술에는 많은 도메인 지식이 필요하다. 따라서 모델은 수작업(hand-engineered)으로 제작 된 기능만큼 우수 할 수 있다.
    • 모델은 사용자의 기존 관심사를 기반으로만 추천할 수 있다. 즉 모델은 사용자의 관심사를 확장하는 능력이 제한적이다.

참고

@doubly