콘텐츠 기반 필터링
카카오 AI 추천 : 카카오의 콘텐츠 기반 필터링
사용자들의 아이템(콘텐츠 또는 상품) 소비 패턴을 살펴보면
> 기존에 유사한 아이템을 소비하는 경우를 쉽게 볼 수 있다.
> 이런 소비 패턴이 뚜렷한 경우, 아이템의 정보를 활용해 추천하는
> 콘텐츠 기반 필터링(Content-based filtering) 방식이 효과적
콘텐츠 기반 필터링은 위의 그림에 표현된 것과 같이, 사용자가 소비한 아이템에 대해 아이템의 내용이 비슷하거나 관계가 있는 다른 아이템을 추천하는 방법이다.
아이템의 내용은 아이템을 표현할 수 있는 데이터를 지칭하는데, 카테고리, 이름과 같은 텍스트 데이터, 이미지 데이터를 주로 사용한다.
다른 사용자의 아이템 소비 이력을 활용하는 협업 필터링(Collaborative filtering)과는 주로 사용하는 데이터가 다르다는 차이점이 있다.
아이템이 유사한지 확인하기 위해 유사도를 수치로 계산할 수 있어야 한다.
유사도 계산을 위해 일반적으로 아이템을 벡터 형태로 표현하고 이들 벡터 간의 유사도 계산 방법을 많이 활용한다.
널리 사용하는 방법
1. 원 핫 인코딩(One-hot encoding)
2. 임베딩(Embedding)
원 핫 인코딩(One-hot encoding)은 아이템의 카테고리와 같은 범주형 데이터(categorical feature)를 표현하는 간단한 방법
표현해야 하는 범주의 개수를 크기로 갖는 벡터를 만들어 데이터를 1과 0으로 표현하는 방법
벡터의 크기가 고정되어 있기에 다루어야 하는 데이터 크기가 커지더라도 상대적으로 적은 크기의 데이터를 통해 표현이 가능하고 딥러닝을 활용한 텍스트, 이미지 모델을 적용해 좋은 벡터를 얻는다.
1. 텍스트 데이터의 경우는 Word2Vec 모델이 제일 널리 알려지고 사용되는 텍스트 임베딩 모델
2. Word2Vec으로 각 단어의 임베딩 벡터를 학습하고, 텍스트에 등장하는 단어의 벡터를 합하거나 TF-IDF 가중 합산을 하는 방식으로 많이 활용
3.텍스트에 등장하는 단어 사이의 순서를 고려하기 위한 CNN, RNN 모델들이 제안되었고, 최근에는 BERT와 같은 대규모 4.텍스트 모델을 임베딩 모델로 활용하기 위한 다양한 연구가 등장
이미지 데이터의 경우는 ImageNet 데이터의 카테고리 분류를 위해 미리 학습된 모델을 바탕으로 실제 사용할 데이터에 대해 파라미터 미세 조정(Fine-tuning)을 수행한 다음, 분류 레이어(classification layer)의 입력으로 들어가는 보틀넥 피처(Bottleneck feature)를 이미지 임베딩으로 사용하는 방법이 일반적입니다. 인물 사진이나 쇼핑과 같은 일부 도메인에서는 레이어 구조를 수정해 카테고리 분류 대신 유사, 동일성 여부를 직접 판별하는 샴 네트워크(Siamese network), 삼중항 네트워크(Triplet network)를 적용하는 방법
이렇게 표현된 아이템 벡터는 내적(Dot product), 코사인 유사도(Cosine similarity), 피어슨 상관 계수(Pearson correlation coefficient)와 같은 다양한 벡터 유사도 측정 방식을 통해 아이템 유사도를 측정하는 용도로 사용됩니다. 측정된 유사도를 바탕으로 사용자가 최근 소비한 아이템과 유사한 아이템을 추천하면 콘텐츠 기반 필터링을 통한 추천이 됩니다.
출처 kakao tech : 카카오 AI추천 : 카카오의 콘텐츠 기반 필터링 (Content-based Filtering in Kakao)
하이브리드 필터링
사용자에게 만족도 높은 추천결과를 제공하기 위해서는 사용자의 현재 상황을 인지하고 선호도의 특성을 정확히 파악한 뒤, 이에 적합한 아이템을 추천하여야 한다.
추천시스템에서 사용되는 알고리즘들은 각각 추천의 기준이 다르기 떄문에 추천 시스템을 적용하고자 하는 분야의 특성에 알맞은 알고리즘을 선택하고 추천 성능을 향상할 수 있는