추천시스템이란 다양한 아이템 중 사용자가 선호할 아이쳄을 제공하는 시스템으로 사용자의 만족도가 증가함으로써 저절로 서비스 제공자의 수익상승에 기여할 수 있다.
어떤 사용자에게 어떤 아이템을 추천할 것?
과 어떤 데이터를 활용할 것
인지를 고려해야한다!
Best
를 어떻게 정하지?에 대한 고민 필요!연관된 다른 아이템
을 추천해줌- 대체재 : 대신 사용가능 한 아이템
- 보완재 : 같이 소비했을 때 효율이 더 올라가는 아이템
추천 알고리즘에는 크게 콘텐츠 기반 필터링(Content-based Filtering)
과 협업 필터링(Collaborative Filtering)
으로 나눌 수 있다.
사용자가 선호하는 아이템의 특성
을 파악해 유사한 아이템을 추천하는 방식
ex)
TF-IDF
를 이용할 수 있음아이템과 사용자의 관계를 이용하여 사용자의 흥미에 맞는 아이템을 추천하는 방식
- ex) 유저와 비슷한 평점을 부여한 유저의 평점을 이용하여 추천함
- ❗️ 유저마다 평점을 부여한 기준이 다를 수 있음
- ex) 유사한 영화에 부여한 평점을 기준으로 평점을 부여함
- 💡 많은 기업들에서
Item-based
를 더 선호함
- 아이템에 대한 정보가 유저의 정보보다 구하기 쉽기 때문
- 아이템의 업데이트 주기가 유저의 업데이트 주기보다 더 길기 때문에 효율적이다.
- 아이템의 수가 유저의 수보다 적기 때문에 아이템간의 관계를 파악하는 것이 더 쉽다.
- ❗️ 데이터가 충분하지 않다면 적절한 추천을 하기 어렵다.
- ❗️ 평가가 적은 데이터는 추천에서 배제될 수가 있다.
점수를 예측하고 가장 높은 점수를 기반으로 추천
점수를 이용해 순위를 매기고 이를 이용하여 추천
TF-IDF (Term Frequency-Inverse Document Frequency)
TF(w)
: 특정 단어 w가 특정 문서 d에 나온 빈도DF(w)
: 특정 단어 w가 나타난 문서의 수IDF(w)
: 전체 문서 수 N을 해당 단어의 DF로 나눈 뒤 로그를 취한 값N
: 전체 문서 수▶︎ 사용자 u가 영화 i에 남길 예상 평점
sim(i,j)
는 영화 i와 j의 유사도를 뜻함(영화 장르의 TF-IDF를 계산해서 나온 벡터를 이용하여 구함)▶︎ 사용자 u가 영화 i에 남길 예상 평점
sim(i,j)
는 영화 i와 j의 유사도를 뜻함(영화 장르의 TF-IDF를 계산하지 않고 영화에 남겨진 평점으로 구함)👉🏻 사용자 간의 유사도를 가중치처럼 적용하여 예상 평점을 구함!
▶︎ 사용자 u가 영화 i에 남길 예상 평점
sim(i,j)
는 사용자 i와 j의 유사도를 뜻함