콘텐츠 기반 필터링(Content-based filtering)

2022. 1. 14. 00:24Recommender System

무엇이 좋은 추천인가? 

어떻게 하면 추천을 잘할 수 있을까?

 

추천시스템을 학습하면서 이러한 질문에 대해 계속해서 고민하고자 합니다! 도매인에 따라 같은 방법론을 적용하기 힘들어 추천방법이 다르고 추천방법에 따라 완전히 다른 결과가 나올 수 있습니다. 앞으로 다양한 추천방법에 대해서 포스팅하겠습니다. 오늘은 추천시스템의 개론과 대표적인 추천시스템 방법론을 소개하겠습니다.

 

추천시스템에는 비개인화 추천과 개인화 추천이 있습니다. 비개인화 추천은 전체 데이터에 대해서 추천하는 방식입니다. 개인화추천은 개인평점, 개인이 시청한 항목 등 개개인의 데이터에 대해서 추천하는 방식입니다. 

 

(1) 비개인화 추천

 - 랭킹 / 평점 / 등급

 - 유사 콘텐츠

 - 연관 분석 

 

(2)개인화 추천

 - 개인 평점

 - 개인이 시청한 항목

 - 취향 분석

 

추천시스템을 평가하기 위해서 정확성, 다양성, 참신성을 고려해야합니다. 추천시스템에서 소비한 아이템이 추천되는지(정확성), 다양한 종류의 아이템이 추천되는지(다양성), 새롭거나 최신의 아이템이 추천되는지(참신성)가 중요한 평가요소입니다. 

 

콘텐츠 기반 필터링(Content-Based Filtering)

 

1. 유사도 측정 방법

콘텐츠 기반 필터링은 아이템이 가진 콘텐츠의 유사도을 기반으로 추천하는 것입니다. "유사하다"에 대한 기준을 세우는 것이 중요합니다. one-hot encoding 또는 embeding 방법을 통해 아이템을 벡터화하고 벡터간의 유사도 계산을 통해 "유사하다"에 대한 기준을 세웁니다.

 

(1) one-hot encoding 원핫인코딩

원핫 인코딩은 표현해야 하는 범주의 개수를 크기로 갖는 벡터를 만들어 데이터를 1과 0으로 표현하는 방법으로 해당 아이템을 1로 나머지를 0으로 표현합니다. 또한 1대신에 단어의 빈도를 계산해 가중치를 주는 TF-IDF 가중치(weight)를 사용해 표현할 수도 있습니다.

 

TF-IDF 가중치(weight)

TF-IDF

TF : 특정 문서 d에서의 특정 단어 t의 등장 횟수 (Term Frequency)

DF : 특정 단어 t가 등장한 문서의 수 (Document Frequency)

 

TF-IDF는 특정 문서 내에 특정 단어가 얼마나 자주 등장하는 지를 의미하는 단어 빈도(TF)와 전체 문서에서 특정 단어가 얼마나 자주 등장하는지를 의미하는 역문서 빈도(DF)를 통해서, 특정 문서내에서 자주 등장하는 단어를 찾아 가중치를 계산하는 방법입니다. 단어의 빈도만 고려하는 것이 아니라 모든 문서에 등장하는 단어의 중요성을 낮춰 유사성을 측정하는 방법입니다. 

 

(2) Embedding 임베딩

embedding은 데이터를 고정된 벡터로 표현하는 것입니다. 딥러닝 기반의 텍스트, 이미지 모델 등을 통해 유사도를 구할 수있습니다. 텍스트 데이터를 임베딩하는 모델은 대표적으로 Word2Vec이 있습니다. Word2Vec으로 단어 벡터를 학습하고, 벡터를 합하거나 TF-IDF 가중 합산을 하는 방식으로 사용되고 있습니다. 이미지 데이터를 임베딩하는 모델은 ImageNet이 있습니다. 분류 레이어(classification layer)의 입력으로 들어가는 보틀넥 피처(Bottleneck feature)를 이미지 임베딩으로 사용하는 방법이 일반적이라고 합니다. 

 

이러한 방식으로 아이템 벡터를 만들고 자카드 유사도, 내적, 코사인 유사도를 통해 벡터의 유사도를 측정합니다. 

 

 

2. 장점 : 협업 필터링(Collaborative Filtering)의 한계 해결

콘텐츠 기반 필터링은 협업 필터링의 한계의 대안입니다. 협업필터링에는 사용자 기반의 협업 필터링(User-based CF)와 아이템 기반의 협업 필터링(Item-based CF)가 있습니다. 사용자 정보보다 아이템에 대한 정보를 구하기가 더 쉽고 주기적 업데이트에 효율적이기 때문에 Item-based CF가 더 많이 활용됩니다. 또한 많은 경우 아이템의 수가 사용자의 수보다 적기 때문에, 사용자보다 아이템간의 관계 데이터 획득이 더 쉽고 용이하다는 장점이있습니다. 

 

하지만 협업 필터링에는 다음과 같은 한계가 있습니다. 

1) 콜드 스타트(cold start) : 데이터가 충분하지 않은 초기에 적절한 추천이 어렵다.

2) 계산 효율성 : Sparse Matrix를 다루기 때문에 계산 효율성이 떨어진다. 

3) 비대칭 현상 : 평가가 적은 데이터는 추천에서 완전히 배제될 수 있다.

 

콘텐츠 기반 필터링은 상대적으로 초기에도 데이터가 많아 콜드 스타트의 문제를 해결 할 수 있습니다. 

 

 

3. 콘텐츠 기반 필터링 사례

콘텐츠 기반 필터링은 다양한 서비스에서 적용되고 있습니다. 그 중 3가지를 소개하겠습니다. 

(1) 넷플릭스 콘텐츠 추천

비슷한 콘텐츠 추천

영상의 메타 태그를 통해서 콘텐츠의 내용을 나타내고 이를 기반으로 유사한 콘텐츠를 추천합니다. 드라마 "그해 우리는"을 시청했을 때, 이 드라마와 유사한 콘텐츠를 제시해줍니다. 

 

(2) 카카오웹툰 연관 작품 추천

그림체가 비슷한 작품들 추천

작품 줄거리 텍스트 데이터를 통해 텍스트 임베딩, 작품 이미지를 통한 이미지 임베딩, 그림체 임베딩 등 콘텐츠의 내용을 기반으로 유사한 콘텐츠를 추천합니다. 웹툰과 "타원을 그리는 법" 유사한 작품 "너에게 가는 거리 2091km"를 추천해줍니다. 

 

(3) 틱톡 영상 추천

https://www.veed.io/learn/reverse-engineering-how-tiktok-algorithm-works

영상 제목, 설명을 통해 메타데이터를 얻고 음성 데이터에서 스크립트 그리고 CV를 통해 콘텐츠 내용을 기반으로 유사한 콘텐츠를 추천합니다. 

 

사용자의 콘텐츠 소비 패턴이 뚜렷하다면 콘텐츠 기반 필터링은 효과적인 추천 방법일 것입니다! 콘텐츠를 설명하는 속성은 이미지, 음성, 영상 등 다양하게 확장되고 있습니다. 앞으로 어떤 데이터를 통해 또 어떤 알고리즘과 결합해 추천시스템이 만들어질지 기대가 됩니다. 다음 포스팅에서는 콘텐츠 기반 필터링과 비교 대상이 되는 협업필터링에 대해서 소개하겠습니다. 

 

Reference

https://skyeong.net/265

https://tech.kakao.com/2021/12/27/content-based-filtering-in-kakao/

https://www.veed.io/learn/reverse-engineering-how-tiktok-algorithm-works

 

아이콘 출처

<a href="https://www.flaticon.com/free-icons/man" title="man icons">Man icons created by Good Ware - Flaticon</a>
<a href="https://www.flaticon.com/free-icons/woman" title="woman icons">Woman icons created by dDara - Flaticon</a>
<a href="https://www.flaticon.com/free-icons/clothes" title="clothes icons">Clothes icons created by Freepik - Flaticon</a>
<a href="https://www.flaticon.com/free-icons/tshirt" title="tshirt icons">Tshirt icons created by Freepik - Flaticon</a>
<a href="https://www.flaticon.com/free-icons/shirt" title="shirt icons">Shirt icons created by Freepik - Flaticon</a>