프로젝트

프로젝트 회고 (2) 추천 알고리즘 - 거리 기반 추천 알고리즘

뜻 지, 깨달음 오 2022. 11. 30. 07:58

기본적으로 우리 조는 콘텐츠 기반 추천 시스템을 사용하여 유저에게 영화를 추천하려고 했다.

토이프로젝트 특성 상 많은 사용자가 이용할 수 없기 때문에 협업필터링은 별로,,, 안좋을 것 같았다. (개인적인 생각)

 

 

콘텐츠 기반 추천 알고리즘이라 하면

사용자가 과거에 선호한 상품과 유사한 상품을 추천하는 것이다.

우리 조는 영화 디테일 페이지에 방문했다면, 기본적으로 관심이 있는 영화일것이다- 라는 생각을 가지고 알고리즘을 설계했다.

 

처음에 회원가입을 하고 메인페이지로 가면,

제일 상단에 영화를 클릭해야지 추천을 받을 수 있다는 안내가 뜬다.

 

 

영화를 클릭한 후 (해당 영화의 디테일 페이지를 방문한 후)

다시 메인페이지로 나오면

1번 알고리즘인 유클리디안 거리 기반 알고리즘 추천 영화가 뜬다.

 

2차원 평면에서 유클리디안 거리를 구하는 공식은 다음과 같다:

 

(그냥 두 점 사이의 거리 공식이랑 똑같다)

 

이때,

유사할수록 점 사이의 거리가 가깝다-라는 논리를 적용했다.

아래 그래프에서 보면 더 잘 이해할 수 있다.

x,y가 유사한 영화들끼리 3개 그룹이 형성된 것을 확인할 수 있다.

 

우리 조는 vote_average 와 popularity 라는 수치형 인자를 각각 x, y로 만들었다.

그 다음, 아까 유저가 클릭한 영화랑 유클리디안 거리가 제일 작은 영화 30개를 추출해서 메인페이지에서 추천했다.

 

내가 만약에 별로 유명하지도 않고 평점도 안좋은 (약간 마이너한?) 취향이라면

그러한 영화들만 추천해주고

난 유명하고 평점좋은 것들만 본다 하면 그런 영화들만 추천해주는 방식이다.

 

일주일이라는 짧은 시간동안 한 프로젝트였기 때문에,

통계학적인 유사도를 사용할 수 있는 알고리즘 설계 방법중에 가장 간단한 알고리즘으로 설계하였다.