코딩코딩코딩

파이썬 추천 알고리즘 (사용자 기반 / 콘텐츠 기반 협업 필터링, 하이브리드 추천 시스템) 본문

파이썬/텍스트마이닝

파이썬 추천 알고리즘 (사용자 기반 / 콘텐츠 기반 협업 필터링, 하이브리드 추천 시스템)

hanshow113 2020. 8. 20. 18:53

협업 필터링 (Collaborative Filtering, CF)이란 여러 사용자들로부터 얻은 기호 정보에 따라 다른 사용자들의 관심사를 예측하게 해주는 방법 이라고 정의됩니다.

 

협업 필터링에서 중요한 것은 "여러 사용자들로부터 얻은 정보"입니다. 

 

협업 필터링에는 크게  [사용자 기반 추천,  아이템 기반 추천]  두 가지가 있습니다.

 

1) 사용자 기반 추천 (User-based Recommendation)

비슷한 성향을 지닌 사용자를 기반으로 분석해서 추천해주는 방식입니다.

 

A라는 사람이 [햄버거, 감자튀김, 콜라]를 구매하고,

B라는 사람은 [햄버거, 콜라]를 구매하려 한다고 가정해보겠습니다.

 

이 둘의 구매목록을 보면 이 둘은 유사하다고 인식되어 B에게 감자튀김을 추천해줍니다.

 

 

2) 아이템 기반 추천 (Item-based Recommendation)

이전에 구매했던 아이템을 기반으로 유사한 상품을 추천하는 방식입니다.

 

예를 들어 기존에 [햄버거, 감자튀김]이 함께 구매되는 빈도가 많다고 분석되면 이 둘은 유사도가 높다고 판단됩니다.

따라서 C라는 사람이 햄버거를 구매하려고 하면 유사한 아이템으로 판단되는 감자튀김을 추천해주는 것입니다.

 

 

협업 필터링 방식의 한계

1) 콜드 스타트 ( Cold Start )

협업 필터링의 필수적인 요소는 기존 데이터입니다.

구매 경험이 없는 사용자에게는 사용자 기반 추천이 어려울 것이고, 유사 아이템이 없는 신제품의 경우는 아이템 기반 추천이 어려울 것입니다.

 

이렇듯 콜드 스타트란 초기에 충분한 데이터가 부족해서 예측이 어려운, 즉 시작하기 어렵거나 곤란한 상태를 말합니다.

 

2) 계산 효율

협업 필터링은 사용자별 구매 패턴 혹은 아이템별 유사도를 개별적으로 계산해야 하기 때문에 연산량이 많아 속도가 느리다는 단점이 있습니다.

 

3) 롱 테일 (Long Tail)

 

롱테일 법칙 _ 출처:  https://mbanote2.tistory.com/197

사용자들이 소수의 인기 있는 항목에만 관심을 보여 관심이 저조한 항목은 추천되지 못하는 문제점이 생긴다는 것입니다.

 

 

 

이러한 한계를 극복하기 위해서 콘텐츠 기반 필터링 (Contents-based Filtering) 방식을 고안해냈습니다.

 

이는 말 그대로 콘텐츠에 대한 분석을 기반으로 추천해주는 방법을 말합니다. 영화를 예로 들면 스토리나 등장인물, 감독 등의 데이터를 분석합니다.

 

콘텐츠 자체를 분석하기 위해서는 이를 분류하고 해석해야 하는데 이는 텍스트 마이닝 기술을 활용해 기계가 하거나, 사람이 직접 태깅하는 방식을 통해 이루어집니다.

 

여기에서 생기는 문제점이 바로 "메타 정보의 한정성" 입니다.

상품의 프로파일을 모두 함축하는 데에 한계가 있다는 것입니다. 예를 들어 아이돌 그룹을 좋아하는 A, B 두 사람이 있다고 가정합니다.  A는 그룹 전체를 좋아해 관련 기사를 찾아보지만, B는 그 중 한 멤버만 좋아해 그와 관련된 기사만을 찾아본다고 해봅시다.

그렇다면 이 둘의 데이터를 분석해보면 큰 차이가 없어 정밀성이 떨어지는 문제가 발생할 수 있습니다.

 

 

 

이런 문제점들을 해결하기 위해서 최근에는 하이브리드 추천 시스템(Hybrid Recommendation System)이 개발되고 있습니다. 

이는 협업 필터링의 콜드 스타트 문제 해결을 위해 신규 콘텐츠는 콘텐츠 기반 필터링 기술로 분석하여 추천하고, 데이터가 쌓인 이후에는 협업 필터링을 통해 추천 정확성을 높이는 방식입니다.

 

 

Comments